aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2021-08-12 14:39:51 +0200
committerMitch Curtis <mitch.curtis@qt.io>2021-08-16 12:52:59 +0200
commit809339d1484cf556512534367b8170bc26baf072 (patch)
tree12871313b658f36d058b5ef25af1e247e9c46ce9 /src
parentb01b4f00eae8022c6a97d90f54dac395144ae095 (diff)
Remove qtquickcontrols2 sources and explain where they wentHEADdev
Now that qtquickcontrols2 has been merged into qtdeclarative, we should make it obvious that this repo should no longer be used, by preventing it from being built. Task-number: QTBUG-95173 Pick-to: 6.2 Change-Id: I95bd6a214f3d75a865ab163ee0a1f9ffbeb7a051 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt8
-rw-r--r--src/labs/CMakeLists.txt2
-rw-r--r--src/labs/platform/CMakeLists.txt89
-rw-r--r--src/labs/platform/doc/images/qtlabsplatform-colordialog-gtk.pngbin9786 -> 0 bytes
-rw-r--r--src/labs/platform/doc/images/qtlabsplatform-filedialog-gtk.pngbin39560 -> 0 bytes
-rw-r--r--src/labs/platform/doc/images/qtlabsplatform-folderdialog-gtk.pngbin40008 -> 0 bytes
-rw-r--r--src/labs/platform/doc/images/qtlabsplatform-fontdialog-gtk.pngbin32399 -> 0 bytes
-rw-r--r--src/labs/platform/doc/images/qtlabsplatform-menu.pngbin3687 -> 0 bytes
-rw-r--r--src/labs/platform/doc/images/qtlabsplatform-menubar.pngbin60433 -> 0 bytes
-rw-r--r--src/labs/platform/doc/images/qtlabsplatform-messagedialog-android.pngbin3741 -> 0 bytes
-rw-r--r--src/labs/platform/doc/images/qtlabsplatform-messagedialog-informative-android.pngbin6737 -> 0 bytes
-rw-r--r--src/labs/platform/doc/images/qtlabsplatform-systemtrayicon-menu.pngbin20550 -> 0 bytes
-rw-r--r--src/labs/platform/doc/images/qtlabsplatform-systemtrayicon-message.pngbin33060 -> 0 bytes
-rw-r--r--src/labs/platform/doc/images/qtlabsplatform-systemtrayicon.pngbin16929 -> 0 bytes
-rw-r--r--src/labs/platform/doc/qtlabsplatform.qdocconf41
-rw-r--r--src/labs/platform/doc/src/includes/widgets.qdocinc28
-rw-r--r--src/labs/platform/doc/src/qt6-changes.qdoc57
-rw-r--r--src/labs/platform/doc/src/qtlabsplatform-index.qdoc54
-rw-r--r--src/labs/platform/doc/src/qtlabsplatform-qmltypes.qdoc58
-rw-r--r--src/labs/platform/platform.pri39
-rw-r--r--src/labs/platform/qquickplatformcolordialog.cpp206
-rw-r--r--src/labs/platform/qquickplatformcolordialog_p.h98
-rw-r--r--src/labs/platform/qquickplatformdialog.cpp411
-rw-r--r--src/labs/platform/qquickplatformdialog_p.h153
-rw-r--r--src/labs/platform/qquickplatformfiledialog.cpp662
-rw-r--r--src/labs/platform/qquickplatformfiledialog_p.h197
-rw-r--r--src/labs/platform/qquickplatformfolderdialog.cpp280
-rw-r--r--src/labs/platform/qquickplatformfolderdialog_p.h110
-rw-r--r--src/labs/platform/qquickplatformfontdialog.cpp208
-rw-r--r--src/labs/platform/qquickplatformfontdialog_p.h98
-rw-r--r--src/labs/platform/qquickplatformicon.cpp81
-rw-r--r--src/labs/platform/qquickplatformicon_p.h86
-rw-r--r--src/labs/platform/qquickplatformiconloader.cpp101
-rw-r--r--src/labs/platform/qquickplatformiconloader_p.h86
-rw-r--r--src/labs/platform/qquickplatformmenu.cpp895
-rw-r--r--src/labs/platform/qquickplatformmenu_p.h213
-rw-r--r--src/labs/platform/qquickplatformmenubar.cpp333
-rw-r--r--src/labs/platform/qquickplatformmenubar_p.h120
-rw-r--r--src/labs/platform/qquickplatformmenuitem.cpp641
-rw-r--r--src/labs/platform/qquickplatformmenuitem_p.h191
-rw-r--r--src/labs/platform/qquickplatformmenuitemgroup.cpp392
-rw-r--r--src/labs/platform/qquickplatformmenuitemgroup_p.h123
-rw-r--r--src/labs/platform/qquickplatformmenuseparator.cpp65
-rw-r--r--src/labs/platform/qquickplatformmenuseparator_p.h67
-rw-r--r--src/labs/platform/qquickplatformmessagedialog.cpp382
-rw-r--r--src/labs/platform/qquickplatformmessagedialog_p.h121
-rw-r--r--src/labs/platform/qquickplatformstandardpaths.cpp173
-rw-r--r--src/labs/platform/qquickplatformstandardpaths_p.h92
-rw-r--r--src/labs/platform/qquickplatformsystemtrayicon.cpp443
-rw-r--r--src/labs/platform/qquickplatformsystemtrayicon_p.h145
-rw-r--r--src/labs/platform/qtlabsplatformplugin.cpp117
-rw-r--r--src/labs/platform/widgets/qwidgetplatform_p.h170
-rw-r--r--src/labs/platform/widgets/qwidgetplatformcolordialog.cpp87
-rw-r--r--src/labs/platform/widgets/qwidgetplatformcolordialog_p.h78
-rw-r--r--src/labs/platform/widgets/qwidgetplatformdialog.cpp58
-rw-r--r--src/labs/platform/widgets/qwidgetplatformdialog_p.h66
-rw-r--r--src/labs/platform/widgets/qwidgetplatformfiledialog.cpp140
-rw-r--r--src/labs/platform/widgets/qwidgetplatformfiledialog_p.h84
-rw-r--r--src/labs/platform/widgets/qwidgetplatformfontdialog.cpp87
-rw-r--r--src/labs/platform/widgets/qwidgetplatformfontdialog_p.h78
-rw-r--r--src/labs/platform/widgets/qwidgetplatformmenu.cpp183
-rw-r--r--src/labs/platform/widgets/qwidgetplatformmenu_p.h98
-rw-r--r--src/labs/platform/widgets/qwidgetplatformmenuitem.cpp125
-rw-r--r--src/labs/platform/widgets/qwidgetplatformmenuitem_p.h88
-rw-r--r--src/labs/platform/widgets/qwidgetplatformmessagedialog.cpp87
-rw-r--r--src/labs/platform/widgets/qwidgetplatformmessagedialog_p.h75
-rw-r--r--src/labs/platform/widgets/qwidgetplatformsystemtrayicon.cpp118
-rw-r--r--src/labs/platform/widgets/qwidgetplatformsystemtrayicon_p.h87
-rw-r--r--src/labs/platform/widgets/widgets.pri56
-rw-r--r--src/quickcontrols2/CMakeLists.txt68
-rw-r--r--src/quickcontrols2/basic/AbstractButton.qml47
-rw-r--r--src/quickcontrols2/basic/Action.qml40
-rw-r--r--src/quickcontrols2/basic/ActionGroup.qml40
-rw-r--r--src/quickcontrols2/basic/ApplicationWindow.qml45
-rw-r--r--src/quickcontrols2/basic/BusyIndicator.qml62
-rw-r--r--src/quickcontrols2/basic/Button.qml79
-rw-r--r--src/quickcontrols2/basic/ButtonGroup.qml40
-rw-r--r--src/quickcontrols2/basic/CMakeLists.txt296
-rw-r--r--src/quickcontrols2/basic/CheckBox.qml92
-rw-r--r--src/quickcontrols2/basic/CheckDelegate.qml109
-rw-r--r--src/quickcontrols2/basic/ComboBox.qml140
-rw-r--r--src/quickcontrols2/basic/Container.qml47
-rw-r--r--src/quickcontrols2/basic/Control.qml47
-rw-r--r--src/quickcontrols2/basic/DelayButton.qml104
-rw-r--r--src/quickcontrols2/basic/Dial.qml79
-rw-r--r--src/quickcontrols2/basic/Dialog.qml85
-rw-r--r--src/quickcontrols2/basic/DialogButtonBox.qml72
-rw-r--r--src/quickcontrols2/basic/Drawer.qml78
-rw-r--r--src/quickcontrols2/basic/Frame.qml55
-rw-r--r--src/quickcontrols2/basic/GroupBox.qml73
-rw-r--r--src/quickcontrols2/basic/HorizontalHeaderView.qml67
-rw-r--r--src/quickcontrols2/basic/ItemDelegate.qml76
-rw-r--r--src/quickcontrols2/basic/Label.qml46
-rw-r--r--src/quickcontrols2/basic/Menu.qml80
-rw-r--r--src/quickcontrols2/basic/MenuBar.qml62
-rw-r--r--src/quickcontrols2/basic/MenuBarItem.qml76
-rw-r--r--src/quickcontrols2/basic/MenuItem.qml104
-rw-r--r--src/quickcontrols2/basic/MenuSeparator.qml57
-rw-r--r--src/quickcontrols2/basic/Page.qml56
-rw-r--r--src/quickcontrols2/basic/PageIndicator.qml71
-rw-r--r--src/quickcontrols2/basic/Pane.qml54
-rw-r--r--src/quickcontrols2/basic/Popup.qml63
-rw-r--r--src/quickcontrols2/basic/ProgressBar.qml66
-rw-r--r--src/quickcontrols2/basic/RadioButton.qml85
-rw-r--r--src/quickcontrols2/basic/RadioDelegate.qml102
-rw-r--r--src/quickcontrols2/basic/RangeSlider.qml95
-rw-r--r--src/quickcontrols2/basic/RoundButton.qml80
-rw-r--r--src/quickcontrols2/basic/ScrollBar.qml75
-rw-r--r--src/quickcontrols2/basic/ScrollIndicator.qml75
-rw-r--r--src/quickcontrols2/basic/ScrollView.qml64
-rw-r--r--src/quickcontrols2/basic/SelectionRectangle.qml61
-rw-r--r--src/quickcontrols2/basic/Slider.qml82
-rw-r--r--src/quickcontrols2/basic/SpinBox.qml134
-rw-r--r--src/quickcontrols2/basic/SplitView.qml54
-rw-r--r--src/quickcontrols2/basic/StackView.qml66
-rw-r--r--src/quickcontrols2/basic/SwipeDelegate.qml77
-rw-r--r--src/quickcontrols2/basic/SwipeView.qml65
-rw-r--r--src/quickcontrols2/basic/Switch.qml91
-rw-r--r--src/quickcontrols2/basic/SwitchDelegate.qml108
-rw-r--r--src/quickcontrols2/basic/TabBar.qml69
-rw-r--r--src/quickcontrols2/basic/TabButton.qml72
-rw-r--r--src/quickcontrols2/basic/TextArea.qml74
-rw-r--r--src/quickcontrols2/basic/TextField.qml82
-rw-r--r--src/quickcontrols2/basic/ToolBar.qml53
-rw-r--r--src/quickcontrols2/basic/ToolButton.qml74
-rw-r--r--src/quickcontrols2/basic/ToolSeparator.qml57
-rw-r--r--src/quickcontrols2/basic/ToolTip.qml68
-rw-r--r--src/quickcontrols2/basic/Tumbler.qml74
-rw-r--r--src/quickcontrols2/basic/VerticalHeaderView.qml67
-rw-r--r--src/quickcontrols2/basic/basic.pri67
-rw-r--r--src/quickcontrols2/basic/images/arrow-indicator.pngbin169 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/arrow-indicator@2x.pngbin225 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/arrow-indicator@3x.pngbin285 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/arrow-indicator@4x.pngbin352 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/check.pngbin424 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/check@2x.pngbin713 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/check@3x.pngbin999 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/check@4x.pngbin1188 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/dial-indicator.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/dial-indicator@2x.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/dial-indicator@3x.pngbin284 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/dial-indicator@4x.pngbin307 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/double-arrow.pngbin303 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/double-arrow@2x.pngbin484 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/double-arrow@3x.pngbin673 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/double-arrow@4x.pngbin827 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/drop-indicator.pngbin157 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/drop-indicator@2x.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/drop-indicator@3x.pngbin297 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/images/drop-indicator@4x.pngbin376 -> 0 bytes
-rw-r--r--src/quickcontrols2/basic/impl/CMakeLists.txt25
-rw-r--r--src/quickcontrols2/basic/impl/qquickbasicbusyindicator.cpp223
-rw-r--r--src/quickcontrols2/basic/impl/qquickbasicbusyindicator_p.h93
-rw-r--r--src/quickcontrols2/basic/impl/qquickbasicdial.cpp122
-rw-r--r--src/quickcontrols2/basic/impl/qquickbasicdial_p.h82
-rw-r--r--src/quickcontrols2/basic/impl/qquickbasicprogressbar.cpp280
-rw-r--r--src/quickcontrols2/basic/impl/qquickbasicprogressbar_p.h91
-rw-r--r--src/quickcontrols2/basic/qquickbasicstyle.cpp246
-rw-r--r--src/quickcontrols2/basic/qquickbasicstyle_p.h151
-rw-r--r--src/quickcontrols2/basic/qquickbasictheme.cpp91
-rw-r--r--src/quickcontrols2/basic/qquickbasictheme_p.h65
-rw-r--r--src/quickcontrols2/basic/qtquickcontrols2basicstyleplugin.cpp79
-rw-r--r--src/quickcontrols2/basic/qtquickcontrols2basicstyleplugin.qrc24
-rw-r--r--src/quickcontrols2/configure.cmake62
-rw-r--r--src/quickcontrols2/designer/AbstractButtonSection.qml122
-rw-r--r--src/quickcontrols2/designer/BusyIndicatorSpecifics.qml74
-rw-r--r--src/quickcontrols2/designer/ButtonSection.qml74
-rw-r--r--src/quickcontrols2/designer/ButtonSpecifics.qml63
-rw-r--r--src/quickcontrols2/designer/CMakeLists.txt61
-rw-r--r--src/quickcontrols2/designer/CheckBoxSpecifics.qml64
-rw-r--r--src/quickcontrols2/designer/CheckDelegateSpecifics.qml68
-rw-r--r--src/quickcontrols2/designer/CheckSection.qml68
-rw-r--r--src/quickcontrols2/designer/ComboBoxSpecifics.qml119
-rw-r--r--src/quickcontrols2/designer/ContainerSection.qml59
-rw-r--r--src/quickcontrols2/designer/ControlSection.qml114
-rw-r--r--src/quickcontrols2/designer/ControlSpecifics.qml55
-rw-r--r--src/quickcontrols2/designer/DelayButtonSpecifics.qml81
-rw-r--r--src/quickcontrols2/designer/DialSpecifics.qml172
-rw-r--r--src/quickcontrols2/designer/FrameSpecifics.qml59
-rw-r--r--src/quickcontrols2/designer/GroupBoxSpecifics.qml77
-rw-r--r--src/quickcontrols2/designer/InsetSection.qml119
-rw-r--r--src/quickcontrols2/designer/ItemDelegateSection.qml58
-rw-r--r--src/quickcontrols2/designer/ItemDelegateSpecifics.qml63
-rw-r--r--src/quickcontrols2/designer/LabelSpecifics.qml86
-rw-r--r--src/quickcontrols2/designer/PaddingSection.qml101
-rw-r--r--src/quickcontrols2/designer/PageIndicatorSpecifics.qml98
-rw-r--r--src/quickcontrols2/designer/PageSpecifics.qml101
-rw-r--r--src/quickcontrols2/designer/PaneSection.qml73
-rw-r--r--src/quickcontrols2/designer/PaneSpecifics.qml59
-rw-r--r--src/quickcontrols2/designer/ProgressBarSpecifics.qml121
-rw-r--r--src/quickcontrols2/designer/RadioButtonSpecifics.qml59
-rw-r--r--src/quickcontrols2/designer/RadioDelegateSpecifics.qml63
-rw-r--r--src/quickcontrols2/designer/RangeSliderSpecifics.qml189
-rw-r--r--src/quickcontrols2/designer/RoundButtonSpecifics.qml84
-rw-r--r--src/quickcontrols2/designer/ScrollViewSpecifics.qml90
-rw-r--r--src/quickcontrols2/designer/SliderSpecifics.qml180
-rw-r--r--src/quickcontrols2/designer/SpinBoxSpecifics.qml142
-rw-r--r--src/quickcontrols2/designer/StackViewSpecifics.qml55
-rw-r--r--src/quickcontrols2/designer/SwipeDelegateSpecifics.qml63
-rw-r--r--src/quickcontrols2/designer/SwipeViewSpecifics.qml91
-rw-r--r--src/quickcontrols2/designer/SwitchDelegateSpecifics.qml59
-rw-r--r--src/quickcontrols2/designer/SwitchSpecifics.qml59
-rw-r--r--src/quickcontrols2/designer/TabBarSpecifics.qml107
-rw-r--r--src/quickcontrols2/designer/TabButtonSpecifics.qml59
-rw-r--r--src/quickcontrols2/designer/TextAreaSpecifics.qml104
-rw-r--r--src/quickcontrols2/designer/TextFieldSpecifics.qml101
-rw-r--r--src/quickcontrols2/designer/ToolBarSpecifics.qml79
-rw-r--r--src/quickcontrols2/designer/ToolButtonSpecifics.qml63
-rw-r--r--src/quickcontrols2/designer/ToolSeparatorSpecifics.qml71
-rw-r--r--src/quickcontrols2/designer/TumblerSpecifics.qml102
-rw-r--r--src/quickcontrols2/designer/designer.pri52
-rw-r--r--src/quickcontrols2/designer/images/busyindicator-icon.pngbin320 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/busyindicator-icon16.pngbin229 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/busyindicator-icon@2x.pngbin643 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/button-icon.pngbin162 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/button-icon16.pngbin145 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/button-icon@2x.pngbin259 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/checkbox-icon.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/checkbox-icon16.pngbin230 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/checkbox-icon@2x.pngbin336 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/combobox-icon.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/combobox-icon16.pngbin155 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/combobox-icon@2x.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/delaybutton-icon.pngbin189 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/delaybutton-icon16.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/delaybutton-icon@2x.pngbin286 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/dial-icon.pngbin267 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/dial-icon16.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/dial-icon@2x.pngbin505 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/frame-icon.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/frame-icon16.pngbin117 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/frame-icon@2x.pngbin125 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/groupbox-icon.pngbin133 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/groupbox-icon16.pngbin125 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/groupbox-icon@2x.pngbin136 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/itemdelegate-icon.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/itemdelegate-icon16.pngbin124 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/itemdelegate-icon@2x.pngbin133 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/label-icon.pngbin206 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/label-icon16.pngbin182 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/label-icon@2x.pngbin284 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/page-icon.pngbin190 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/page-icon16.pngbin148 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/page-icon@2x.pngbin195 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/pageindicator-icon.pngbin179 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/pageindicator-icon16.pngbin158 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/pageindicator-icon@2x.pngbin207 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/pane-icon.pngbin93 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/pane-icon16.pngbin92 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/pane-icon@2x.pngbin96 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/progressbar-icon.pngbin101 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/progressbar-icon16.pngbin92 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/progressbar-icon@2x.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/radiobutton-icon.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/radiobutton-icon16.pngbin218 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/radiobutton-icon@2x.pngbin482 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/rangeslider-icon.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/rangeslider-icon16.pngbin231 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/rangeslider-icon@2x.pngbin282 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/roundbutton-icon.pngbin229 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/roundbutton-icon16.pngbin186 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/roundbutton-icon@2x.pngbin381 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/scrollview-icon.pngbin110 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/scrollview-icon16.pngbin116 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/scrollview-icon@2x.pngbin145 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/slider-icon.pngbin190 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/slider-icon16.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/slider-icon@2x.pngbin227 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/spinbox-icon.pngbin144 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/spinbox-icon16.pngbin151 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/spinbox-icon@2x.pngbin178 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/stackview-icon.pngbin162 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/stackview-icon16.pngbin151 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/stackview-icon@2x.pngbin167 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/swipeview-icon.pngbin163 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/swipeview-icon16.pngbin152 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/swipeview-icon@2x.pngbin184 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/switch-icon.pngbin205 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/switch-icon16.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/switch-icon@2x.pngbin314 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/textarea-icon.pngbin149 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/textarea-icon16.pngbin133 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/textarea-icon@2x.pngbin163 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/textfield-icon.pngbin154 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/textfield-icon16.pngbin147 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/textfield-icon@2x.pngbin172 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/toolbar-icon.pngbin131 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/toolbar-icon16.pngbin114 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/toolbar-icon@2x.pngbin140 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/toolbutton-icon.pngbin141 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/toolbutton-icon16.pngbin128 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/toolbutton-icon@2x.pngbin158 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/toolseparator-icon.pngbin111 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/toolseparator-icon16.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/toolseparator-icon@2x.pngbin131 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/tumbler-icon.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/tumbler-icon16.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/images/tumbler-icon@2x.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/designer/qtquickcontrols2.metainfo522
-rw-r--r--src/quickcontrols2/doc/doc.pri6
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-applicationwindow-wireframe.pngbin6143 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-basic-thumbnail.pngbin4352 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-basic.pngbin10801 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator-custom.pngbin944 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator.gifbin17357 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator.pngbin900 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-button-custom.pngbin1299 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-button-flat.gifbin2388 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-button-highlighted.gifbin1856 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-button-icononly.pngbin434 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-button-textbesideicon.pngbin1315 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-button-textonly.pngbin1073 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-button-textundericon.pngbin1147 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-button.gifbin4140 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-custom.pngbin1792 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-group.pngbin2950 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-tristate.gifbin8784 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-checkbox.gifbin6403 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate-custom.pngbin2179 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate-tristate.gifbin10487 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate.gifbin15290 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-combobox-custom.pngbin924 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-combobox-delegate.pngbin989 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-combobox-popup.pngbin989 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-combobox.gifbin7873 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-control.pngbin47718 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-control.svg936
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-customize-buttons.pngbin2542 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-delaybutton-custom.pngbin5112 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-delaybutton.gifbin12595 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-dial-custom.pngbin2847 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-dial-handle.pngbin4203 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-dial-inputMode.svgzbin2753 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-dial-inputmode.pngbin9151 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-dial-no-wrap.gifbin52372 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-dial-wrap.gifbin70792 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-dial.pngbin2603 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-dialogbuttonbox-attached.pngbin1489 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-dialogbuttonbox.pngbin1459 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-drawer-expanded-wireframe.pngbin2260 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-drawer-wireframe.pngbin1534 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-drawer.gifbin55780 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-frame-custom.pngbin1930 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-frame.pngbin2912 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-fusion-palettes.pngbin11034 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-fusion-thumbnail.pngbin6275 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-fusion-violet.pngbin3059 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-fusion.pngbin9302 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-checkable.pngbin5006 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-custom.pngbin3046 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-label.pngbin1662 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-groupbox.pngbin4442 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-4x.pngbin4917 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-inset-boundaries.pngbin6237 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-inset.pngbin1906 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-resized-padding.pngbin20260 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-resized-stretchable.pngbin16437 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-size.pngbin6386 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch.svgzbin7598 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-imagine-customization-dark.pngbin3001 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-imagine-customization.svgzbin2215 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-imagine-thumbnail.pngbin4043 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-imagine.pngbin7918 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate-custom.pngbin1358 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate.gifbin16287 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate.pngbin5645 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-label-custom.pngbin942 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-label.pngbin925 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-macos-dark.pngbin23979 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-macos-light.pngbin22318 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-macos-thumbnail.pngbin22504 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-accent.pngbin1291 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-attributes.pngbin7618 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-background.pngbin1444 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-dark.pngbin10934 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-elevation.pngbin2566 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-foreground.pngbin1377 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-light.pngbin11182 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-purple.pngbin3256 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-theme.pngbin1451 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-thumbnail.pngbin10480 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-variant-dense.pngbin21059 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-material-variant-normal.pngbin22897 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-menu-custom.pngbin7293 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-menu.gifbin4683 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-menu.pngbin3629 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-menubar-custom.pngbin2659 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-menubar.pngbin8870 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-menuseparator-custom.pngbin4644 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-menuseparator.pngbin4672 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-page-wireframe.pngbin1795 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator-custom.pngbin248 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator-delegate.pngbin314 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator.pngbin248 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-pane-custom.pngbin1674 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-pane.pngbin2473 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-popup-custom.pngbin117 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-popup-settings.pngbin10545 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-popup-transformorigin.pngbin7256 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-popup.pngbin62355 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-popup.svg712
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-progressbar-custom.pngbin165 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-progressbar-indeterminate.gifbin5882 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-progressbar.gifbin2072 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-radiobutton-custom.pngbin2207 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-radiobutton.gifbin7993 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-radiodelegate-custom.pngbin2501 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-radiodelegate.gifbin16859 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-rangeslider-custom.pngbin585 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-rangeslider.gifbin24125 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-roundbutton.pngbin662 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-custom.pngbin148 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-non-attached.pngbin4645 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-nosnap.gifbin5271 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-snapalways.gifbin4707 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-snaponrelease.gifbin5646 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar.gifbin32067 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator-custom.pngbin102 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator-non-attached.pngbin4468 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator.gifbin42352 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollview-custom.pngbin4423 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollview-wireframe.pngbin705 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-scrollview.pngbin4424 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-selectionrectangle.pngbin52957 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-slider-custom.pngbin454 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-slider-handle.pngbin439 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-slider-nosnap.gifbin18138 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-slider-snapalways.gifbin7201 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-slider-snaponrelease.gifbin18377 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-slider.gifbin13697 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-custom.pngbin1006 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-double.pngbin737 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-down.pngbin784 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-textual.pngbin1096 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-up.pngbin786 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-spinbox.pngbin775 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-splitview-custom.pngbin125 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-stackview-custom.pngbin110 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-stackview-pop.gifbin23801 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-stackview-push.gifbin42790 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-stackview-replace.gifbin28882 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-stackview-unwind.gifbin23744 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-stackview-visible.pngbin512 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-stackview-wireframe.pngbin227 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-styles.pngbin101053 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-behind.gifbin248344 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-custom.pngbin1818 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-leading-trailing.gifbin132134 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate.gifbin123494 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-swipeview-indicator.pngbin301 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-swipeview-wireframe.pngbin1482 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-swipeview.gifbin35983 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-switch-checked.pngbin1723 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-switch-custom.pngbin1734 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-switch.gifbin3466 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-switch.pngbin2042 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-switchdelegate-custom.pngbin2773 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-switchdelegate.gifbin38688 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-custom.pngbin2644 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-explicit.pngbin2093 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-flickable.pngbin2527 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-wireframe.pngbin348 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tabbar.gifbin8590 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tabbar.pngbin2897 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tabbutton.pngbin2646 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-textarea-custom.pngbin1320 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-textarea-scrollable.pngbin1580 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-textarea.pngbin1968 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-textfield-custom.pngbin2083 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-textfield-disabled.pngbin1261 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-textfield-focused.pngbin1316 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-textfield-normal.pngbin1304 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-textfield.pngbin1680 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-toolbar-custom.pngbin1174 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-toolbar.pngbin1008 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-toolbutton-custom.pngbin1398 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-toolbutton.pngbin1226 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-toolseparator-custom.pngbin3586 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-toolseparator.pngbin5381 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-delay.pngbin1144 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-hover.pngbin1110 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-pressandhold.pngbin1110 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-slider.pngbin1261 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tooltip.pngbin5523 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-custom.pngbin1879 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-delegate.pngbin929 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-wrap.gifbin54328 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-tumbler.pngbin1050 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-universal-accent.pngbin1058 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-universal-attributes.pngbin5298 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-universal-background.pngbin1161 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-universal-button.pngbin674 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-universal-dark.pngbin10373 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-universal-foreground.pngbin985 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-universal-light.pngbin10846 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-universal-theme.pngbin1205 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-universal-thumbnail.pngbin8606 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-universal-violet.pngbin2894 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-windows-thumbnail.pngbin12394 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/images/qtquickcontrols2-windows.pngbin17132 -> 0 bytes
-rw-r--r--src/quickcontrols2/doc/manifest-meta.qdocconf31
-rw-r--r--src/quickcontrols2/doc/qtquickcontrols.qdocconf104
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-action.qml56
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-busyindicator-custom.qml88
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-button-custom.qml55
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-button-icononly.qml34
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-button-textbesideicon.qml35
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-button-textonly.qml34
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-checkbox-custom.qml65
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-checkbox-group.qml58
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-checkdelegate-custom.qml74
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-accepted.qml45
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-custom.qml112
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-find.qml40
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-textat.qml40
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-valuerole.qml58
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-delaybutton-custom.qml82
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-dial-custom.qml67
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog-modal.qml41
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog-modeless.qml41
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog.qml44
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-dialogbuttonbox-attached.qml42
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-dialogbuttonbox.qml38
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-frame-custom.qml43
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-frame.qml41
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox-checkable.qml48
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox-custom.qml57
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox.qml42
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-headerview-simple.qml119
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-itemdelegate-custom.qml59
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-itemdelegate.qml46
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-label-custom.qml36
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-label.qml35
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-material-accent.qml43
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-material-background.qml42
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-material-elevation.qml51
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-material-foreground.qml41
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-material-theme.qml44
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-material-variant.qml212
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-menu-custom.qml133
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-menubar-custom.qml84
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-menubar.qml67
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-menuseparator-custom.qml69
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-menuseparator.qml60
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-overlay-modal.qml55
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-overlay-modeless.qml55
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-overview.cmake4
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator-custom.qml53
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator-interactive.qml58
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator.qml35
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-pane-custom.qml41
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-pane.qml41
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-popup-custom.qml53
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-popup.qml46
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-progressbar-custom.qml56
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-radiobutton-custom.qml65
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-radiodelegate-custom.qml74
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-rangeslider-custom.qml76
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-roundbutton.qml36
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-active.qml46
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-custom.qml46
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-non-attached.qml80
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-policy.qml38
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-active.qml46
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-custom.qml45
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-non-attached.qml84
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-custom.qml81
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-interactive.qml38
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-listview.qml61
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-policy.qml38
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview.qml60
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-selectionrectangle.qml95
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-slider-custom.qml64
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-custom.qml96
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-double.qml56
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-textual.qml55
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox.qml35
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-splitview-custom.qml57
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-splitview-handle-containmentmask.qml63
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-stackview-custom.qml53
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-stackview-visible.qml76
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate-custom.qml72
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate-transition.qml37
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate.qml82
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-swipeview-custom.qml39
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-swipeview-indicator.qml63
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-switch-custom.qml64
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-switchdelegate-custom.qml73
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-custom.qml49
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-explicit.qml52
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-flickable.qml50
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar.qml64
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbutton.qml43
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-textarea-custom.qml42
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-textarea-scrollable.qml47
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-custom.qml43
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-disabled.qml35
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-focused.qml35
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-normal.qml34
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbar-custom.qml59
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbar.qml62
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbutton-custom.qml55
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-toolseparator-custom.qml69
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-toolseparator.qml68
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-custom.qml48
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-hover.qml41
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-pressandhold.qml39
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-slider.qml53
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip.qml51
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-custom.qml78
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-listView.qml46
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-pathView.qml57
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-timePicker.qml86
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-accent.qml43
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-background.qml44
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-foreground.qml41
-rw-r--r--src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-theme.qml44
-rw-r--r--src/quickcontrols2/doc/src/external-pages.qdoc36
-rw-r--r--src/quickcontrols2/doc/src/includes/customize-button-background.qdocinc25
-rw-r--r--src/quickcontrols2/doc/src/includes/inputmethodhints.qdocinc38
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickcombobox.qdocinc6
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickcontrol-background.qdocinc13
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickcontrol-focusreason.qdocinc15
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickdial.qdocinc13
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickicon.qdocinc50
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickimaginestyle.qdocinc57
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickmaterialstyle.qdocinc79
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickoverlay-popup-parent.qdocinc20
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickpopup-padding.qdocinc10
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickstackview.qdocinc5
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickswipedelegate-interaction.qdocinc5
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickswitch.qdocinc28
-rw-r--r--src/quickcontrols2/doc/src/includes/qquickuniversalstyle.qdocinc53
-rw-r--r--src/quickcontrols2/doc/src/qt6-changes.qdoc305
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-basic.qdoc55
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-buttons.qdoc191
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-configuration.qdoc204
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-containers.qdoc113
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-cppclasses.qdoc58
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-customize.qdoc986
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-delegates.qdoc79
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-deployment.qdoc97
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-environment.qdoc78
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-examples.qdoc37
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-fileselectors.qdoc140
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-focus.qdoc48
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-fusion.qdoc93
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-gettingstarted.qdoc86
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-guidelines.qdoc46
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-icons.qdoc166
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-imagine.qdoc2524
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-index.qdoc204
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-indicators.qdoc83
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-input.qdoc123
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-macos.qdoc76
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-material.qdoc404
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-menus.qdoc68
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-navigation.qdoc70
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-popups.qdoc99
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-qmltypes.qdoc130
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-separators.qdoc63
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-styles.qdoc209
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-universal.qdoc288
-rw-r--r--src/quickcontrols2/doc/src/qtquickcontrols2-windows.qdoc74
-rw-r--r--src/quickcontrols2/fusion/ApplicationWindow.qml47
-rw-r--r--src/quickcontrols2/fusion/BusyIndicator.qml70
-rw-r--r--src/quickcontrols2/fusion/Button.qml75
-rw-r--r--src/quickcontrols2/fusion/CMakeLists.txt249
-rw-r--r--src/quickcontrols2/fusion/CheckBox.qml71
-rw-r--r--src/quickcontrols2/fusion/CheckDelegate.qml86
-rw-r--r--src/quickcontrols2/fusion/ComboBox.qml174
-rw-r--r--src/quickcontrols2/fusion/DelayButton.qml115
-rw-r--r--src/quickcontrols2/fusion/Dial.qml73
-rw-r--r--src/quickcontrols2/fusion/Dialog.qml99
-rw-r--r--src/quickcontrols2/fusion/DialogButtonBox.qml73
-rw-r--r--src/quickcontrols2/fusion/Drawer.qml88
-rw-r--r--src/quickcontrols2/fusion/Frame.qml57
-rw-r--r--src/quickcontrols2/fusion/GroupBox.qml76
-rw-r--r--src/quickcontrols2/fusion/HorizontalHeaderView.qml77
-rw-r--r--src/quickcontrols2/fusion/ItemDelegate.qml76
-rw-r--r--src/quickcontrols2/fusion/Label.qml48
-rw-r--r--src/quickcontrols2/fusion/Menu.qml94
-rw-r--r--src/quickcontrols2/fusion/MenuBar.qml73
-rw-r--r--src/quickcontrols2/fusion/MenuBarItem.qml77
-rw-r--r--src/quickcontrols2/fusion/MenuItem.qml102
-rw-r--r--src/quickcontrols2/fusion/MenuSeparator.qml59
-rw-r--r--src/quickcontrols2/fusion/Page.qml58
-rw-r--r--src/quickcontrols2/fusion/PageIndicator.qml73
-rw-r--r--src/quickcontrols2/fusion/Pane.qml56
-rw-r--r--src/quickcontrols2/fusion/Popup.qml66
-rw-r--r--src/quickcontrols2/fusion/ProgressBar.qml116
-rw-r--r--src/quickcontrols2/fusion/RadioButton.qml71
-rw-r--r--src/quickcontrols2/fusion/RadioDelegate.qml86
-rw-r--r--src/quickcontrols2/fusion/RangeSlider.qml81
-rw-r--r--src/quickcontrols2/fusion/RoundButton.qml98
-rw-r--r--src/quickcontrols2/fusion/ScrollBar.qml77
-rw-r--r--src/quickcontrols2/fusion/ScrollIndicator.qml77
-rw-r--r--src/quickcontrols2/fusion/ScrollView.qml64
-rw-r--r--src/quickcontrols2/fusion/Slider.qml67
-rw-r--r--src/quickcontrols2/fusion/SpinBox.qml181
-rw-r--r--src/quickcontrols2/fusion/SplitView.qml55
-rw-r--r--src/quickcontrols2/fusion/SwipeDelegate.qml78
-rw-r--r--src/quickcontrols2/fusion/Switch.qml71
-rw-r--r--src/quickcontrols2/fusion/SwitchDelegate.qml85
-rw-r--r--src/quickcontrols2/fusion/TabBar.qml79
-rw-r--r--src/quickcontrols2/fusion/TabButton.qml96
-rw-r--r--src/quickcontrols2/fusion/TextArea.qml76
-rw-r--r--src/quickcontrols2/fusion/TextField.qml102
-rw-r--r--src/quickcontrols2/fusion/ToolBar.qml82
-rw-r--r--src/quickcontrols2/fusion/ToolButton.qml75
-rw-r--r--src/quickcontrols2/fusion/ToolSeparator.qml66
-rw-r--r--src/quickcontrols2/fusion/ToolTip.qml79
-rw-r--r--src/quickcontrols2/fusion/Tumbler.qml76
-rw-r--r--src/quickcontrols2/fusion/VerticalHeaderView.qml77
-rw-r--r--src/quickcontrols2/fusion/fusion.pri58
-rw-r--r--src/quickcontrols2/fusion/images/arrow.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/images/arrow.svg75
-rw-r--r--src/quickcontrols2/fusion/images/arrow@2x.pngbin145 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/images/arrow@3x.pngbin165 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/images/arrow@4x.pngbin182 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/images/checkmark.pngbin181 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/images/checkmark.svg72
-rw-r--r--src/quickcontrols2/fusion/images/checkmark@2x.pngbin316 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/images/checkmark@3x.pngbin420 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/images/checkmark@4x.pngbin482 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/images/progressmask.pngbin309 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/images/progressmask.svg74
-rw-r--r--src/quickcontrols2/fusion/images/progressmask@2x.pngbin484 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/images/progressmask@3x.pngbin558 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/images/progressmask@4x.pngbin652 -> 0 bytes
-rw-r--r--src/quickcontrols2/fusion/impl/ButtonPanel.qml76
-rw-r--r--src/quickcontrols2/fusion/impl/CMakeLists.txt39
-rw-r--r--src/quickcontrols2/fusion/impl/CheckIndicator.qml91
-rw-r--r--src/quickcontrols2/fusion/impl/RadioIndicator.qml77
-rw-r--r--src/quickcontrols2/fusion/impl/SliderGroove.qml93
-rw-r--r--src/quickcontrols2/fusion/impl/SliderHandle.qml85
-rw-r--r--src/quickcontrols2/fusion/impl/SwitchIndicator.qml136
-rw-r--r--src/quickcontrols2/fusion/impl/qquickfusionbusyindicator.cpp111
-rw-r--r--src/quickcontrols2/fusion/impl/qquickfusionbusyindicator_p.h84
-rw-r--r--src/quickcontrols2/fusion/impl/qquickfusiondial.cpp139
-rw-r--r--src/quickcontrols2/fusion/impl/qquickfusiondial_p.h76
-rw-r--r--src/quickcontrols2/fusion/impl/qquickfusionknob.cpp88
-rw-r--r--src/quickcontrols2/fusion/impl/qquickfusionknob_p.h69
-rw-r--r--src/quickcontrols2/fusion/qquickfusionstyle.cpp153
-rw-r--r--src/quickcontrols2/fusion/qquickfusionstyle_p.h92
-rw-r--r--src/quickcontrols2/fusion/qquickfusiontheme.cpp57
-rw-r--r--src/quickcontrols2/fusion/qquickfusiontheme_p.h65
-rw-r--r--src/quickcontrols2/fusion/qtquickcontrols2fusionstyle.qrc16
-rw-r--r--src/quickcontrols2/fusion/qtquickcontrols2fusionstyleplugin.cpp80
-rw-r--r--src/quickcontrols2/imagine/ApplicationWindow.qml57
-rw-r--r--src/quickcontrols2/imagine/BusyIndicator.qml88
-rw-r--r--src/quickcontrols2/imagine/Button.qml98
-rw-r--r--src/quickcontrols2/imagine/CMakeLists.txt255
-rw-r--r--src/quickcontrols2/imagine/CheckBox.qml106
-rw-r--r--src/quickcontrols2/imagine/CheckDelegate.qml117
-rw-r--r--src/quickcontrols2/imagine/ComboBox.qml173
-rw-r--r--src/quickcontrols2/imagine/DelayButton.qml137
-rw-r--r--src/quickcontrols2/imagine/Dial.qml105
-rw-r--r--src/quickcontrols2/imagine/Dialog.qml116
-rw-r--r--src/quickcontrols2/imagine/DialogButtonBox.qml84
-rw-r--r--src/quickcontrols2/imagine/Drawer.qml96
-rw-r--r--src/quickcontrols2/imagine/Frame.qml69
-rw-r--r--src/quickcontrols2/imagine/GroupBox.qml99
-rw-r--r--src/quickcontrols2/imagine/HorizontalHeaderView.qml67
-rw-r--r--src/quickcontrols2/imagine/ItemDelegate.qml93
-rw-r--r--src/quickcontrols2/imagine/Label.qml63
-rw-r--r--src/quickcontrols2/imagine/Menu.qml107
-rw-r--r--src/quickcontrols2/imagine/MenuItem.qml137
-rw-r--r--src/quickcontrols2/imagine/MenuSeparator.qml79
-rw-r--r--src/quickcontrols2/imagine/Page.qml73
-rw-r--r--src/quickcontrols2/imagine/PageIndicator.qml92
-rw-r--r--src/quickcontrols2/imagine/Pane.qml69
-rw-r--r--src/quickcontrols2/imagine/Popup.qml87
-rw-r--r--src/quickcontrols2/imagine/ProgressBar.qml141
-rw-r--r--src/quickcontrols2/imagine/RadioButton.qml104
-rw-r--r--src/quickcontrols2/imagine/RadioDelegate.qml115
-rw-r--r--src/quickcontrols2/imagine/RangeSlider.qml134
-rw-r--r--src/quickcontrols2/imagine/RoundButton.qml97
-rw-r--r--src/quickcontrols2/imagine/ScrollBar.qml119
-rw-r--r--src/quickcontrols2/imagine/ScrollIndicator.qml111
-rw-r--r--src/quickcontrols2/imagine/ScrollView.qml85
-rw-r--r--src/quickcontrols2/imagine/Slider.qml120
-rw-r--r--src/quickcontrols2/imagine/SpinBox.qml152
-rw-r--r--src/quickcontrols2/imagine/SplitView.qml63
-rw-r--r--src/quickcontrols2/imagine/StackView.qml91
-rw-r--r--src/quickcontrols2/imagine/SwipeDelegate.qml95
-rw-r--r--src/quickcontrols2/imagine/SwipeView.qml90
-rw-r--r--src/quickcontrols2/imagine/Switch.qml134
-rw-r--r--src/quickcontrols2/imagine/SwitchDelegate.qml146
-rw-r--r--src/quickcontrols2/imagine/TabBar.qml87
-rw-r--r--src/quickcontrols2/imagine/TabButton.qml91
-rw-r--r--src/quickcontrols2/imagine/TextArea.qml96
-rw-r--r--src/quickcontrols2/imagine/TextField.qml95
-rw-r--r--src/quickcontrols2/imagine/ToolBar.qml71
-rw-r--r--src/quickcontrols2/imagine/ToolButton.qml94
-rw-r--r--src/quickcontrols2/imagine/ToolSeparator.qml83
-rw-r--r--src/quickcontrols2/imagine/ToolTip.qml85
-rw-r--r--src/quickcontrols2/imagine/Tumbler.qml93
-rw-r--r--src/quickcontrols2/imagine/VerticalHeaderView.qml67
-rw-r--r--src/quickcontrols2/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/9-patch-export.js24
-rw-r--r--src/quickcontrols2/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/manifest.json19
-rw-r--r--src/quickcontrols2/imagine/design/imagine.sketchbin164993 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-background.pngbin67 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-background@2x.pngbin75 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-background@3x.pngbin77 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-background@4x.pngbin78 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-overlay-modal.pngbin70 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@2x.pngbin76 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@3x.pngbin78 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@4x.pngbin79 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-overlay.pngbin70 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-overlay@2x.pngbin76 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-overlay@3x.pngbin78 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/applicationwindow-overlay@4x.pngbin79 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/busyindicator-animation.webpbin30116 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/busyindicator-animation@2x.webpbin56588 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/busyindicator-animation@3x.webpbin77816 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/busyindicator-animation@4x.webpbin103290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-disabled.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-disabled@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-disabled@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-disabled@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-focused.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-focused@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-focused@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-focused@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-hovered.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-hovered@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-hovered@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked-hovered@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-checked@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-disabled.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-disabled@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-disabled@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-disabled@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-checked-pressed.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-checked.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-checked@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-checked@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-checked@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-disabled.9.pngbin117 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-disabled@2x.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-disabled@3x.9.pngbin130 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-disabled@4x.9.pngbin138 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted.9.pngbin117 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted@2x.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted@3x.9.pngbin130 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-highlighted@4x.9.pngbin138 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-hovered.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-hovered@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-hovered@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-hovered@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-pressed.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-pressed@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-pressed@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat-pressed@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat.9.pngbin117 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat@2x.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat@3x.9.pngbin130 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-flat@4x.9.pngbin138 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-focused.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-focused@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-focused@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-focused@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-checked.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-checked@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-checked@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-checked@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-disabled.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-disabled@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-disabled@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-disabled@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-focused.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-focused@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-focused@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-focused@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-hovered.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-hovered@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-hovered@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-hovered@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-pressed.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-pressed@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-pressed@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted-pressed@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-highlighted@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-hovered.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-hovered@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-hovered@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-hovered@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-pressed.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-pressed@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-pressed@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background-pressed@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/button-background@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused.pngbin271 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@2x.pngbin468 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@3x.pngbin599 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@4x.pngbin815 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered.pngbin271 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@2x.pngbin468 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@3x.pngbin599 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@4x.pngbin815 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed.pngbin275 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@2x.pngbin501 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@3x.pngbin626 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@4x.pngbin848 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked.pngbin275 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked@2x.pngbin499 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked@3x.pngbin625 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-checked@4x.pngbin830 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-disabled.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-disabled@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-disabled@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-disabled@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-focused.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-focused@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-focused@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-focused@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-hovered.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-hovered@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-hovered@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-hovered@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused.pngbin131 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@2x.pngbin164 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@3x.pngbin202 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@4x.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered.pngbin131 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@2x.pngbin164 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@3x.pngbin202 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@4x.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed.pngbin131 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@2x.pngbin164 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@3x.pngbin202 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@4x.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked.pngbin131 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@2x.pngbin164 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@3x.pngbin202 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@4x.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-pressed.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-pressed@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-pressed@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator-pressed@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkbox-indicator@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-disabled.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-disabled@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-disabled@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-disabled@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-focused.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-focused@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-focused@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-focused@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-highlighted.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-hovered.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-hovered@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-hovered@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-hovered@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-pressed.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-pressed@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-pressed@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background-pressed@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-background@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused.pngbin271 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@2x.pngbin468 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@3x.pngbin599 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@4x.pngbin815 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered.pngbin271 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@2x.pngbin468 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@3x.pngbin599 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@4x.pngbin815 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed.pngbin275 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@2x.pngbin501 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@3x.pngbin626 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@4x.pngbin848 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked.pngbin275 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@2x.pngbin499 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@3x.pngbin625 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@4x.pngbin830 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-focused.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused.pngbin131 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@2x.pngbin164 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@3x.pngbin202 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@4x.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered.pngbin131 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@2x.pngbin164 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@3x.pngbin202 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@4x.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed.pngbin131 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@2x.pngbin164 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@3x.pngbin202 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@4x.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked.pngbin131 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@2x.pngbin164 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@3x.pngbin202 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@4x.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/checkdelegate-indicator@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-disabled.9.pngbin197 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-disabled@2x.9.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-disabled@3x.9.pngbin387 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-disabled@4x.9.pngbin596 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable-disabled.9.pngbin197 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable-disabled@2x.9.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable-disabled@3x.9.pngbin387 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable-disabled@4x.9.pngbin596 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable-focused.9.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable-focused@2x.9.pngbin338 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable-focused@3x.9.pngbin549 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable-focused@4x.9.pngbin798 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable.9.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable@2x.9.pngbin338 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable@3x.9.pngbin549 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-editable@4x.9.pngbin798 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-focused.9.pngbin197 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-focused@2x.9.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-focused@3x.9.pngbin387 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-focused@4x.9.pngbin596 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-hovered.9.pngbin197 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-hovered@2x.9.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-hovered@3x.9.pngbin387 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-hovered@4x.9.pngbin596 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-open.9.pngbin197 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-open@2x.9.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-open@3x.9.pngbin387 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-open@4x.9.pngbin596 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-pressed.9.pngbin197 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-pressed@2x.9.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-pressed@3x.9.pngbin387 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background-pressed@4x.9.pngbin596 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background.9.pngbin197 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background@2x.9.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background@3x.9.pngbin387 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-background@4x.9.pngbin596 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-disabled.pngbin152 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-disabled@2x.pngbin157 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-disabled@3x.pngbin211 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-disabled@4x.pngbin201 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled.pngbin197 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@2x.pngbin259 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@3x.pngbin386 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@4x.pngbin445 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled.pngbin193 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@2x.pngbin263 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@3x.pngbin394 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@4x.pngbin450 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored.pngbin199 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@2x.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@3x.pngbin402 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@4x.pngbin456 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable.pngbin203 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable@2x.pngbin266 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable@3x.pngbin395 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator-editable@4x.pngbin452 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator@2x.pngbin165 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator@3x.pngbin230 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-indicator@4x.pngbin215 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-popup.9.pngbin424 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-popup@2x.9.pngbin796 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-popup@3x.9.pngbin1212 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/combobox-popup@4x.9.pngbin1644 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked-focused.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-checked@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-disabled.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-disabled@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-disabled@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-disabled@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-focused.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-focused@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-focused@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-focused@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-hovered.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-hovered@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-hovered@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-hovered@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-pressed.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-pressed@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-pressed@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background-pressed@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-background@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-mask.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-mask@2x.9.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-mask@3x.9.pngbin339 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-mask@4x.9.pngbin441 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-progress-disabled.9.pngbin128 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-progress-disabled@2x.9.pngbin137 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-progress-disabled@3x.9.pngbin154 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-progress-disabled@4x.9.pngbin165 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-progress.9.pngbin128 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-progress@2x.9.pngbin137 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-progress@3x.9.pngbin154 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/delaybutton-progress@4x.9.pngbin165 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background-disabled.pngbin3098 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background-disabled@2x.pngbin5609 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background-disabled@3x.pngbin13029 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background-disabled@4x.pngbin18158 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background-focused.pngbin3098 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background-focused@2x.pngbin5609 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background-focused@3x.pngbin13382 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background-focused@4x.pngbin18762 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background.pngbin3098 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background@2x.pngbin5609 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background@3x.pngbin13268 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-background@4x.pngbin18609 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-disabled.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-disabled@2x.pngbin176 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-disabled@3x.pngbin212 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-disabled@4x.pngbin231 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused-hovered.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused-hovered@2x.pngbin176 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused-hovered@3x.pngbin212 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused-hovered@4x.pngbin231 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused-pressed.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused-pressed@2x.pngbin176 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused-pressed@3x.pngbin212 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused-pressed@4x.pngbin231 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused@2x.pngbin176 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused@3x.pngbin212 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-focused@4x.pngbin231 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-hovered.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-hovered@2x.pngbin176 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-hovered@3x.pngbin212 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-hovered@4x.pngbin231 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-pressed.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-pressed@2x.pngbin176 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-pressed@3x.pngbin212 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle-pressed@4x.pngbin231 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle@2x.pngbin176 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle@3x.pngbin212 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dial-handle@4x.pngbin231 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-background.9.pngbin426 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-background@2x.9.pngbin792 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-background@3x.9.pngbin1206 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-background@4x.9.pngbin1625 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-overlay-modal.pngbin70 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-overlay-modal@2x.pngbin76 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-overlay-modal@3x.pngbin78 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-overlay-modal@4x.pngbin79 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-overlay.pngbin70 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-overlay@2x.pngbin76 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-overlay@3x.pngbin78 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialog-overlay@4x.pngbin79 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialogbuttonbox-background.9.pngbin110 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialogbuttonbox-background@2x.9.pngbin118 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialogbuttonbox-background@3x.9.pngbin119 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/dialogbuttonbox-background@4x.9.pngbin119 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-bottom.9.pngbin224 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-bottom@2x.9.pngbin334 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-bottom@3x.9.pngbin443 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-bottom@4x.9.pngbin531 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-left.9.pngbin218 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-left@2x.9.pngbin321 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-left@3x.9.pngbin417 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-left@4x.9.pngbin532 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-right.9.pngbin229 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-right@2x.9.pngbin333 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-right@3x.9.pngbin433 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-right@4x.9.pngbin549 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-top.9.pngbin216 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-top@2x.9.pngbin325 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-top@3x.9.pngbin442 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-background-top@4x.9.pngbin533 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-overlay-modal.pngbin70 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-overlay-modal@2x.pngbin76 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-overlay-modal@3x.pngbin78 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-overlay-modal@4x.pngbin79 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-overlay.pngbin70 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-overlay@2x.pngbin76 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-overlay@3x.pngbin78 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/drawer-overlay@4x.pngbin79 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/frame-background.9.pngbin190 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/frame-background@2x.9.pngbin281 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/frame-background@3x.9.pngbin379 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/frame-background@4x.9.pngbin477 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/groupbox-background.9.pngbin190 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/groupbox-background@2x.9.pngbin281 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/groupbox-background@3x.9.pngbin379 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/groupbox-background@4x.9.pngbin477 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/groupbox-title.9.pngbin112 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/groupbox-title@2x.9.pngbin117 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/groupbox-title@3x.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/groupbox-title@4x.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-disabled.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-disabled@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-disabled@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-disabled@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-focused.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-focused@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-focused@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-focused@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-highlighted.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-hovered.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-hovered@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-hovered@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-hovered@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-pressed.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-pressed@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-pressed@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background-pressed@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/itemdelegate-background@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menu-background.9.pngbin664 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menu-background@2x.9.pngbin1324 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menu-background@3x.9.pngbin2099 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menu-background@4x.9.pngbin2958 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-disabled.pngbin173 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-disabled@2x.pngbin204 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-disabled@3x.pngbin251 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-disabled@4x.pngbin294 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled.pngbin181 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@2x.pngbin212 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@3x.pngbin253 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@4x.pngbin301 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-mirrored.pngbin181 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@2x.pngbin212 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@3x.pngbin253 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@4x.pngbin301 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow.pngbin176 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow@2x.pngbin204 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow@3x.pngbin251 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-arrow@4x.pngbin294 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-background-highlighted.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-background-highlighted@2x.9.pngbin124 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-background-highlighted@3x.9.pngbin128 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-background-highlighted@4x.9.pngbin138 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-background.9.pngbin115 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-background@2x.9.pngbin118 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-background@3x.9.pngbin119 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-background@4x.9.pngbin124 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused.pngbin271 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@2x.pngbin468 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@3x.pngbin599 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@4x.pngbin815 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered.pngbin271 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@2x.pngbin468 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@3x.pngbin599 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@4x.pngbin815 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed.pngbin275 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@2x.pngbin501 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@3x.pngbin626 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@4x.pngbin848 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked.pngbin275 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked@2x.pngbin499 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked@3x.pngbin625 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-checked@4x.pngbin830 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-disabled.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-disabled@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-disabled@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-disabled@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-focused.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-focused@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-focused@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-focused@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-hovered.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-hovered@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-hovered@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-hovered@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-pressed.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-pressed@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-pressed@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator-pressed@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator.pngbin121 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator@2x.pngbin156 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator@3x.pngbin192 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuitem-indicator@4x.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuseparator-separator.9.pngbin98 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuseparator-separator@2x.9.pngbin110 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuseparator-separator@3x.9.pngbin113 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/menuseparator-separator@4x.9.pngbin115 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/page-background.pngbin67 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/page-background@2x.pngbin75 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/page-background@3x.pngbin77 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/page-background@4x.pngbin78 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-current.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-current@2x.pngbin179 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-current@3x.pngbin220 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-current@4x.pngbin280 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@2x.pngbin179 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@3x.pngbin220 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@4x.pngbin280 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-disabled.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@2x.pngbin179 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@3x.pngbin220 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@4x.pngbin280 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-pressed.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@2x.pngbin179 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@3x.pngbin220 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@4x.pngbin280 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate@2x.pngbin179 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate@3x.pngbin220 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pageindicator-delegate@4x.pngbin280 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pane-background.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pane-background@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pane-background@3x.9.pngbin130 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/pane-background@4x.9.pngbin137 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-background.9.pngbin426 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-background@2x.9.pngbin792 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-background@3x.9.pngbin1206 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-background@4x.9.pngbin1625 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-overlay-modal.pngbin70 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-overlay-modal@2x.pngbin76 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-overlay-modal@3x.pngbin78 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-overlay-modal@4x.pngbin79 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-overlay.pngbin70 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-overlay@2x.pngbin76 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-overlay@3x.pngbin78 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/popup-overlay@4x.pngbin79 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-animation.webpbin4760 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-animation@2x.webpbin7932 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-animation@3x.webpbin8154 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-animation@4x.webpbin9646 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-background.9.pngbin194 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-background@2x.9.pngbin284 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-background@3x.9.pngbin405 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-background@4x.9.pngbin580 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-mask.9.pngbin166 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-mask@2x.9.pngbin223 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-mask@3x.9.pngbin293 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-mask@4x.9.pngbin344 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-progress.pngbin76 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-progress@2x.pngbin81 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-progress@3x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/progressbar-progress@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@2x.pngbin442 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@3x.pngbin643 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@4x.pngbin881 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@2x.pngbin442 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@3x.pngbin643 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@4x.pngbin881 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@2x.pngbin442 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@4x.pngbin881 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked.pngbin264 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked@2x.pngbin442 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-checked@4x.pngbin881 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-disabled.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@2x.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@3x.pngbin490 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@4x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-focused.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-focused@2x.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-focused@3x.pngbin490 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-focused@4x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-hovered.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@2x.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@3x.pngbin490 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@4x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-pressed.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@2x.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@3x.pngbin490 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@4x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator@2x.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator@3x.pngbin490 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiobutton-indicator@4x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-disabled.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-disabled@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-disabled@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-disabled@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-focused.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-focused@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-focused@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-focused@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-highlighted.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-hovered.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-hovered@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-hovered@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-hovered@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-pressed.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-pressed@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-pressed@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background-pressed@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-background@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@2x.pngbin442 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@3x.pngbin643 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@4x.pngbin881 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@2x.pngbin442 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@3x.pngbin643 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@4x.pngbin881 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@2x.pngbin442 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@4x.pngbin881 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked.pngbin264 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@2x.pngbin442 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@4x.pngbin881 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@2x.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@3x.pngbin490 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@4x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-focused.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@2x.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@3x.pngbin490 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@4x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@2x.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@3x.pngbin490 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@4x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@2x.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@3x.pngbin490 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@4x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator.pngbin213 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator@2x.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator@3x.pngbin490 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/radiodelegate-indicator@4x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-background-horizontal.9.pngbin167 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-background-horizontal@2x.9.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-background-horizontal@3x.9.pngbin332 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-background-horizontal@4x.9.pngbin444 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-background-vertical.9.pngbin175 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-background-vertical@2x.9.pngbin252 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-background-vertical@3x.9.pngbin328 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-background-vertical@4x.9.pngbin464 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-disabled.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-disabled@2x.pngbin484 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-disabled@3x.pngbin726 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-disabled@4x.pngbin965 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@2x.pngbin519 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@3x.pngbin765 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@4x.pngbin990 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@2x.pngbin519 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@3x.pngbin765 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@4x.pngbin990 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused@2x.pngbin519 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused@3x.pngbin765 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-focused@4x.pngbin998 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-hovered.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-hovered@2x.pngbin484 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-hovered@3x.pngbin726 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-hovered@4x.pngbin965 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-pressed.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-pressed@2x.pngbin484 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-pressed@3x.pngbin726 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle-pressed@4x.pngbin965 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle@2x.pngbin487 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle@3x.pngbin728 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-handle@4x.pngbin976 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled.9.pngbin144 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@2x.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@3x.9.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@4x.9.pngbin273 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-horizontal.9.pngbin144 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@2x.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@3x.9.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@4x.9.pngbin273 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled.9.pngbin143 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@2x.9.pngbin188 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@3x.9.pngbin227 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@4x.9.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-vertical.9.pngbin143 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-vertical@2x.9.pngbin188 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-vertical@3x.9.pngbin227 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/rangeslider-progress-vertical@4x.9.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked-focused.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-checked@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-disabled.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-disabled@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-disabled@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-disabled@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-focused.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-focused@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-focused@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-focused@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-highlighted@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-hovered.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-hovered@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-hovered@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-hovered@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-pressed.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-pressed@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-pressed@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background-pressed@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background.pngbin350 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background@2x.pngbin663 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background@3x.pngbin922 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/roundbutton-background@4x.pngbin1290 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-disabled.pngbin79 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-disabled@2x.pngbin80 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-disabled@3x.pngbin81 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-disabled@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled.pngbin81 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@2x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@3x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered.pngbin81 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@2x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@3x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed.pngbin80 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@2x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@3x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive.pngbin81 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive@2x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive@3x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle-interactive@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle.pngbin79 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle@2x.pngbin80 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle@3x.pngbin81 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollbar-handle@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollindicator-handle.pngbin79 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollindicator-handle@2x.pngbin80 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollindicator-handle@3x.pngbin81 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/scrollindicator-handle@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-background-horizontal.9.pngbin167 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-background-horizontal@2x.9.pngbin243 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-background-horizontal@3x.9.pngbin332 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-background-horizontal@4x.9.pngbin444 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-background-vertical.9.pngbin175 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-background-vertical@2x.9.pngbin252 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-background-vertical@3x.9.pngbin328 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-background-vertical@4x.9.pngbin464 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-disabled.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-disabled@2x.pngbin484 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-disabled@3x.pngbin726 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-disabled@4x.pngbin965 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused-hovered.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused-hovered@2x.pngbin519 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused-hovered@3x.pngbin765 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused-hovered@4x.pngbin990 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused-pressed.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused-pressed@2x.pngbin519 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused-pressed@3x.pngbin765 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused-pressed@4x.pngbin990 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused@2x.pngbin519 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused@3x.pngbin765 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-focused@4x.pngbin998 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-hovered.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-hovered@2x.pngbin484 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-hovered@3x.pngbin726 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-hovered@4x.pngbin965 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-pressed.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-pressed@2x.pngbin484 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-pressed@3x.pngbin726 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle-pressed@4x.pngbin965 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle.pngbin255 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle@2x.pngbin487 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle@3x.pngbin728 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-handle@4x.pngbin976 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled.9.pngbin144 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@2x.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@3x.9.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@4x.9.pngbin273 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-horizontal.9.pngbin144 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-horizontal@2x.9.pngbin185 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-horizontal@3x.9.pngbin228 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-horizontal@4x.9.pngbin273 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-vertical-disabled.9.pngbin143 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@2x.9.pngbin188 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@3x.9.pngbin227 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@4x.9.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-vertical.9.pngbin143 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-vertical@2x.9.pngbin188 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-vertical@3x.9.pngbin227 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/slider-progress-vertical@4x.9.pngbin279 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-disabled.9.pngbin198 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-disabled@2x.9.pngbin277 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-disabled@3x.9.pngbin443 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-disabled@4x.9.pngbin583 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-editable.9.pngbin214 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-editable@2x.9.pngbin337 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-editable@3x.9.pngbin533 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-editable@4x.9.pngbin784 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-focused.9.pngbin214 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-focused@2x.9.pngbin337 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-focused@3x.9.pngbin533 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background-focused@4x.9.pngbin784 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background.9.pngbin214 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background@2x.9.pngbin337 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background@3x.9.pngbin539 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-background@4x.9.pngbin767 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled.9.pngbin150 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@2x.9.pngbin184 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@3x.9.pngbin225 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@4x.9.pngbin256 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused.9.pngbin150 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@2x.9.pngbin184 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@3x.9.pngbin225 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@4x.9.pngbin256 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered.9.pngbin150 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@2x.9.pngbin184 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@3x.9.pngbin225 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@4x.9.pngbin256 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@2x.9.pngbin186 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@3x.9.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@4x.9.pngbin261 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@2x.9.pngbin186 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@3x.9.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@4x.9.pngbin261 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@2x.9.pngbin186 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@3x.9.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@4x.9.pngbin261 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@2x.9.pngbin186 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@3x.9.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@4x.9.pngbin261 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed.9.pngbin150 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@2x.9.pngbin184 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@3x.9.pngbin225 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@4x.9.pngbin256 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable.9.pngbin150 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@2x.9.pngbin184 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@3x.9.pngbin225 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@4x.9.pngbin256 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-focused.9.pngbin150 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@2x.9.pngbin184 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@3x.9.pngbin225 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@4x.9.pngbin256 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered.9.pngbin150 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@2x.9.pngbin184 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@3x.9.pngbin225 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@4x.9.pngbin256 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@2x.9.pngbin186 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@3x.9.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@4x.9.pngbin261 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@2x.9.pngbin186 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@3x.9.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@4x.9.pngbin261 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@2x.9.pngbin186 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@3x.9.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@4x.9.pngbin261 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@2x.9.pngbin186 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@3x.9.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@4x.9.pngbin261 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@2x.9.pngbin186 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@3x.9.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@4x.9.pngbin261 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed.9.pngbin150 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@2x.9.pngbin184 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@3x.9.pngbin225 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@4x.9.pngbin256 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down.9.pngbin150 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down@2x.9.pngbin184 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down@3x.9.pngbin225 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-down@4x.9.pngbin256 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled.9.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@2x.9.pngbin191 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@3x.9.pngbin235 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@4x.9.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused.9.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@2x.9.pngbin191 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@3x.9.pngbin235 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@4x.9.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered.9.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@2x.9.pngbin191 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@3x.9.pngbin235 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@4x.9.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused.9.pngbin157 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@2x.9.pngbin189 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@3x.9.pngbin232 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@4x.9.pngbin265 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered.9.pngbin157 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@2x.9.pngbin189 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@3x.9.pngbin232 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@4x.9.pngbin265 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed.9.pngbin157 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@2x.9.pngbin189 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@3x.9.pngbin232 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@4x.9.pngbin265 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored.9.pngbin157 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@2x.9.pngbin189 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@3x.9.pngbin232 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@4x.9.pngbin265 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed.9.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@2x.9.pngbin191 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@3x.9.pngbin235 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@4x.9.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable.9.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@2x.9.pngbin191 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@3x.9.pngbin235 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@4x.9.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-focused.9.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@2x.9.pngbin191 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@3x.9.pngbin235 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@4x.9.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered.9.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@2x.9.pngbin191 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@3x.9.pngbin235 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@4x.9.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled.9.pngbin157 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@2x.9.pngbin189 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@3x.9.pngbin232 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@4x.9.pngbin265 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused.9.pngbin157 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@2x.9.pngbin189 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@3x.9.pngbin232 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@4x.9.pngbin265 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered.9.pngbin157 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@2x.9.pngbin189 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@3x.9.pngbin232 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@4x.9.pngbin265 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed.9.pngbin157 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@2x.9.pngbin189 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@3x.9.pngbin232 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@4x.9.pngbin265 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored.9.pngbin157 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@2x.9.pngbin189 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@3x.9.pngbin232 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@4x.9.pngbin265 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed.9.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@2x.9.pngbin191 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@3x.9.pngbin235 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@4x.9.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up.9.pngbin160 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up@2x.9.pngbin191 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up@3x.9.pngbin235 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/spinbox-indicator-up@4x.9.pngbin269 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-disabled.pngbin80 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-disabled@2x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-disabled@3x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-disabled@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-hovered.pngbin80 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-hovered@2x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-hovered@3x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-hovered@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-pressed.pngbin80 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-pressed@2x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-pressed@3x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle-pressed@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle.pngbin80 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle@2x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle@3x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/splitview-handle@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-disabled.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-disabled@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-disabled@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-disabled@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-focused.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-focused@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-focused@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-focused@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-highlighted.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-hovered.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-hovered@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-hovered@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-hovered@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-pressed.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-pressed@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-pressed@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background-pressed@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/swipedelegate-background@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle-disabled.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle-disabled@2x.pngbin368 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle-disabled@3x.pngbin517 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle-disabled@4x.pngbin699 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle-pressed.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle-pressed@2x.pngbin368 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle-pressed@3x.pngbin517 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle-pressed@4x.pngbin699 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle@2x.pngbin368 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle@3x.pngbin517 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-handle@4x.pngbin699 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-focused.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-focused@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-focused@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-focused@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-hovered.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-pressed.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-checked@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-disabled.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-disabled@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-disabled@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-disabled@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-focused.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-focused@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-focused@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-focused@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-hovered.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-hovered@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-hovered@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-hovered@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-pressed.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-pressed@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-pressed@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator-pressed@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switch-indicator@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-disabled.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-disabled@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-disabled@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-disabled@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-focused.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-focused@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-focused@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-focused@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-hovered.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-hovered@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-hovered@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-hovered@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-pressed.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-pressed@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-pressed@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background-pressed@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background.9.pngbin120 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-background@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle-disabled.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@2x.pngbin368 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@3x.pngbin517 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@4x.pngbin699 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle-pressed.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@2x.pngbin368 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@3x.pngbin517 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@4x.pngbin699 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle@2x.pngbin368 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle@3x.pngbin517 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-handle@4x.pngbin699 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-focused.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator@2x.pngbin423 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator@3x.pngbin650 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/switchdelegate-indicator@4x.pngbin834 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbar-background.pngbin74 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbar-background@2x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbar-background@3x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbar-background@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-checked.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-checked@2x.9.pngbin137 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-checked@3x.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-checked@4x.9.pngbin169 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@2x.9.pngbin137 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@3x.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@4x.9.pngbin169 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-disabled.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-disabled@2x.9.pngbin137 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-disabled@3x.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-disabled@4x.9.pngbin169 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-hovered.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-hovered@2x.9.pngbin137 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-hovered@3x.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-hovered@4x.9.pngbin169 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-pressed.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-pressed@2x.9.pngbin137 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-pressed@3x.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background-pressed@4x.9.pngbin169 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background@2x.9.pngbin137 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background@3x.9.pngbin153 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tabbutton-background@4x.9.pngbin169 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background-disabled.9.pngbin180 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background-disabled@2x.9.pngbin242 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background-disabled@3x.9.pngbin312 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background-disabled@4x.9.pngbin390 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background-focused.9.pngbin196 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background-focused@2x.9.pngbin285 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background-focused@3x.9.pngbin383 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background-focused@4x.9.pngbin503 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background.9.pngbin196 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background@2x.9.pngbin285 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background@3x.9.pngbin383 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textarea-background@4x.9.pngbin503 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background-disabled.9.pngbin188 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background-disabled@2x.9.pngbin273 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background-disabled@3x.9.pngbin355 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background-disabled@4x.9.pngbin533 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background-focused.9.pngbin205 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background-focused@2x.9.pngbin314 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background-focused@3x.9.pngbin495 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background-focused@4x.9.pngbin712 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background.9.pngbin205 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background@2x.9.pngbin314 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background@3x.9.pngbin495 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/textfield-background@4x.9.pngbin712 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbar-background.pngbin76 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbar-background@2x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbar-background@3x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbar-background@4x.pngbin83 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked-focused.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@2x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@3x.9.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@4x.9.pngbin149 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@2x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@3x.9.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@4x.9.pngbin149 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked@2x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked@3x.9.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-checked@4x.9.pngbin149 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@2x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@3x.9.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@4x.9.pngbin149 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-focused.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-focused@2x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-focused@3x.9.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-focused@4x.9.pngbin149 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-hovered.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-hovered@2x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-hovered@3x.9.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-hovered@4x.9.pngbin149 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-pressed.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-pressed@2x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-pressed@3x.9.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background-pressed@4x.9.pngbin149 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background.9.pngbin122 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background@2x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background@3x.9.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolbutton-background@4x.9.pngbin149 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolseparator-separator-horizontal.9.pngbin125 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@2x.9.pngbin135 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@3x.9.pngbin141 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@4x.9.pngbin151 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolseparator-separator-vertical.9.pngbin128 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolseparator-separator-vertical@2x.9.pngbin133 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolseparator-separator-vertical@3x.9.pngbin138 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/toolseparator-separator-vertical@4x.9.pngbin150 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tooltip-background.9.pngbin195 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tooltip-background@2x.9.pngbin264 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tooltip-background@3x.9.pngbin346 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/images/tooltip-background@4x.9.pngbin415 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/imagine.pri58
-rw-r--r--src/quickcontrols2/imagine/impl/CMakeLists.txt47
-rw-r--r--src/quickcontrols2/imagine/impl/OpacityMask.qml68
-rw-r--r--src/quickcontrols2/imagine/impl/qquickimageselector.cpp338
-rw-r--r--src/quickcontrols2/imagine/impl/qquickimageselector_p.h157
-rw-r--r--src/quickcontrols2/imagine/impl/qquickninepatchimage.cpp469
-rw-r--r--src/quickcontrols2/imagine/impl/qquickninepatchimage_p.h108
-rw-r--r--src/quickcontrols2/imagine/impl/shaders/+glslcore/OpacityMask.frag13
-rw-r--r--src/quickcontrols2/imagine/impl/shaders/+qsb/OpacityMask.fragbin1409 -> 0 bytes
-rw-r--r--src/quickcontrols2/imagine/impl/shaders/OpacityMask.frag7
-rw-r--r--src/quickcontrols2/imagine/impl/shaders/OpacityMask_rhi.frag17
-rw-r--r--src/quickcontrols2/imagine/impl/shaders/compile.bat40
-rw-r--r--src/quickcontrols2/imagine/qquickimaginestyle.cpp168
-rw-r--r--src/quickcontrols2/imagine/qquickimaginestyle_p.h97
-rw-r--r--src/quickcontrols2/imagine/qquickimaginetheme.cpp66
-rw-r--r--src/quickcontrols2/imagine/qquickimaginetheme_p.h65
-rw-r--r--src/quickcontrols2/imagine/qtquickcontrols2imaginestyleplugin.cpp81
-rw-r--r--src/quickcontrols2/macos/Button.qml43
-rw-r--r--src/quickcontrols2/macos/CMakeLists.txt49
-rw-r--r--src/quickcontrols2/macos/CheckBox.qml43
-rw-r--r--src/quickcontrols2/macos/ComboBox.qml65
-rw-r--r--src/quickcontrols2/macos/Dial.qml41
-rw-r--r--src/quickcontrols2/macos/Frame.qml41
-rw-r--r--src/quickcontrols2/macos/GroupBox.qml60
-rw-r--r--src/quickcontrols2/macos/ProgressBar.qml41
-rw-r--r--src/quickcontrols2/macos/RadioButton.qml43
-rw-r--r--src/quickcontrols2/macos/ScrollBar.qml64
-rw-r--r--src/quickcontrols2/macos/ScrollView.qml75
-rw-r--r--src/quickcontrols2/macos/Slider.qml68
-rw-r--r--src/quickcontrols2/macos/SpinBox.qml126
-rw-r--r--src/quickcontrols2/macos/TextArea.qml41
-rw-r--r--src/quickcontrols2/macos/TextField.qml43
-rw-r--r--src/quickcontrols2/macos/macos.pri15
-rw-r--r--src/quickcontrols2/macos/qtquickcontrols2macosstyleplugin.cpp75
-rw-r--r--src/quickcontrols2/material/ApplicationWindow.qml46
-rw-r--r--src/quickcontrols2/material/BusyIndicator.qml61
-rw-r--r--src/quickcontrols2/material/Button.qml117
-rw-r--r--src/quickcontrols2/material/CMakeLists.txt262
-rw-r--r--src/quickcontrols2/material/CheckBox.qml83
-rw-r--r--src/quickcontrols2/material/CheckDelegate.qml97
-rw-r--r--src/quickcontrols2/material/ComboBox.qml179
-rw-r--r--src/quickcontrols2/material/DelayButton.qml116
-rw-r--r--src/quickcontrols2/material/Dial.qml85
-rw-r--r--src/quickcontrols2/material/Dialog.qml112
-rw-r--r--src/quickcontrols2/material/DialogButtonBox.qml78
-rw-r--r--src/quickcontrols2/material/Drawer.qml91
-rw-r--r--src/quickcontrols2/material/Frame.qml63
-rw-r--r--src/quickcontrols2/material/GroupBox.qml81
-rw-r--r--src/quickcontrols2/material/HorizontalHeaderView.qml68
-rw-r--r--src/quickcontrols2/material/ItemDelegate.qml88
-rw-r--r--src/quickcontrols2/material/LICENSE_ANGULARJS.txt19
-rw-r--r--src/quickcontrols2/material/Label.qml46
-rw-r--r--src/quickcontrols2/material/Menu.qml107
-rw-r--r--src/quickcontrols2/material/MenuBar.qml64
-rw-r--r--src/quickcontrols2/material/MenuBarItem.qml88
-rw-r--r--src/quickcontrols2/material/MenuItem.qml111
-rw-r--r--src/quickcontrols2/material/MenuSeparator.qml56
-rw-r--r--src/quickcontrols2/material/Page.qml56
-rw-r--r--src/quickcontrols2/material/PageIndicator.qml71
-rw-r--r--src/quickcontrols2/material/Pane.qml61
-rw-r--r--src/quickcontrols2/material/Popup.qml85
-rw-r--r--src/quickcontrols2/material/ProgressBar.qml67
-rw-r--r--src/quickcontrols2/material/RadioButton.qml83
-rw-r--r--src/quickcontrols2/material/RadioDelegate.qml97
-rw-r--r--src/quickcontrols2/material/RangeSlider.qml92
-rw-r--r--src/quickcontrols2/material/RoundButton.qml114
-rw-r--r--src/quickcontrols2/material/ScrollBar.qml89
-rw-r--r--src/quickcontrols2/material/ScrollIndicator.qml75
-rw-r--r--src/quickcontrols2/material/ScrollView.qml64
-rw-r--r--src/quickcontrols2/material/Slider.qml81
-rw-r--r--src/quickcontrols2/material/SpinBox.qml156
-rw-r--r--src/quickcontrols2/material/SplitView.qml73
-rw-r--r--src/quickcontrols2/material/StackView.qml79
-rw-r--r--src/quickcontrols2/material/SwipeDelegate.qml98
-rw-r--r--src/quickcontrols2/material/SwipeView.qml66
-rw-r--r--src/quickcontrols2/material/Switch.qml79
-rw-r--r--src/quickcontrols2/material/SwitchDelegate.qml97
-rw-r--r--src/quickcontrols2/material/TabBar.qml89
-rw-r--r--src/quickcontrols2/material/TabButton.qml78
-rw-r--r--src/quickcontrols2/material/TextArea.qml83
-rw-r--r--src/quickcontrols2/material/TextField.qml85
-rw-r--r--src/quickcontrols2/material/ToolBar.qml66
-rw-r--r--src/quickcontrols2/material/ToolButton.qml86
-rw-r--r--src/quickcontrols2/material/ToolSeparator.qml57
-rw-r--r--src/quickcontrols2/material/ToolTip.qml83
-rw-r--r--src/quickcontrols2/material/Tumbler.qml75
-rw-r--r--src/quickcontrols2/material/VerticalHeaderView.qml68
-rw-r--r--src/quickcontrols2/material/images/arrow-indicator.pngbin126 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/images/arrow-indicator.svg56
-rw-r--r--src/quickcontrols2/material/images/arrow-indicator@2x.pngbin152 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/images/arrow-indicator@3x.pngbin174 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/images/arrow-indicator@4x.pngbin172 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/images/check.pngbin631 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/images/check@2x.pngbin1273 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/images/check@3x.pngbin1829 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/images/check@4x.pngbin2241 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/images/drop-indicator.pngbin125 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/images/drop-indicator.svg5
-rw-r--r--src/quickcontrols2/material/images/drop-indicator@2x.pngbin158 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/images/drop-indicator@3x.pngbin180 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/images/drop-indicator@4x.pngbin202 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/impl/BoxShadow.qml70
-rw-r--r--src/quickcontrols2/material/impl/CMakeLists.txt41
-rw-r--r--src/quickcontrols2/material/impl/CheckIndicator.qml120
-rw-r--r--src/quickcontrols2/material/impl/CursorDelegate.qml65
-rw-r--r--src/quickcontrols2/material/impl/ElevationEffect.qml279
-rw-r--r--src/quickcontrols2/material/impl/RadioIndicator.qml62
-rw-r--r--src/quickcontrols2/material/impl/RectangularGlow.qml240
-rw-r--r--src/quickcontrols2/material/impl/SliderHandle.qml76
-rw-r--r--src/quickcontrols2/material/impl/SwitchIndicator.qml81
-rw-r--r--src/quickcontrols2/material/impl/qquickmaterialbusyindicator.cpp245
-rw-r--r--src/quickcontrols2/material/impl/qquickmaterialbusyindicator_p.h88
-rw-r--r--src/quickcontrols2/material/impl/qquickmaterialprogressbar.cpp245
-rw-r--r--src/quickcontrols2/material/impl/qquickmaterialprogressbar_p.h91
-rw-r--r--src/quickcontrols2/material/impl/qquickmaterialripple.cpp442
-rw-r--r--src/quickcontrols2/material/impl/qquickmaterialripple_p.h120
-rw-r--r--src/quickcontrols2/material/material.pri60
-rw-r--r--src/quickcontrols2/material/qquickmaterialstyle.cpp1383
-rw-r--r--src/quickcontrols2/material/qquickmaterialstyle_p.h334
-rw-r--r--src/quickcontrols2/material/qquickmaterialtheme.cpp113
-rw-r--r--src/quickcontrols2/material/qquickmaterialtheme_p.h65
-rw-r--r--src/quickcontrols2/material/qt_attribution.json13
-rw-r--r--src/quickcontrols2/material/qtquickcontrols2materialstyleplugin.cpp81
-rw-r--r--src/quickcontrols2/material/qtquickcontrols2materialstyleplugin.qrc20
-rw-r--r--src/quickcontrols2/material/shaders/+glslcore/RectangularGlow.frag25
-rw-r--r--src/quickcontrols2/material/shaders/+hlsl/RectangularGlow.frag21
-rw-r--r--src/quickcontrols2/material/shaders/+qsb/RectangularGlow.fragbin2007 -> 0 bytes
-rw-r--r--src/quickcontrols2/material/shaders/RectangularGlow.frag19
-rw-r--r--src/quickcontrols2/material/shaders/RectangularGlow_rhi.frag28
-rw-r--r--src/quickcontrols2/material/shaders/compile.bat40
-rw-r--r--src/quickcontrols2/qquickdummyregistration_p.h71
-rw-r--r--src/quickcontrols2/qquickstyle.cpp505
-rw-r--r--src/quickcontrols2/qquickstyle.h56
-rw-r--r--src/quickcontrols2/qquickstyle_p.h80
-rw-r--r--src/quickcontrols2/qquickstyleplugin.cpp151
-rw-r--r--src/quickcontrols2/qquickstyleplugin_p.h80
-rw-r--r--src/quickcontrols2/qt_cmdline.cmake6
-rw-r--r--src/quickcontrols2/qtquickcontrols2global.h58
-rw-r--r--src/quickcontrols2/qtquickcontrols2plugin.cpp167
-rw-r--r--src/quickcontrols2/universal/ApplicationWindow.qml54
-rw-r--r--src/quickcontrols2/universal/BusyIndicator.qml60
-rw-r--r--src/quickcontrols2/universal/Button.qml89
-rw-r--r--src/quickcontrols2/universal/CMakeLists.txt258
-rw-r--r--src/quickcontrols2/universal/CheckBox.qml74
-rw-r--r--src/quickcontrols2/universal/CheckDelegate.qml96
-rw-r--r--src/quickcontrols2/universal/ComboBox.qml158
-rw-r--r--src/quickcontrols2/universal/DelayButton.qml94
-rw-r--r--src/quickcontrols2/universal/Dial.qml86
-rw-r--r--src/quickcontrols2/universal/Dialog.qml90
-rw-r--r--src/quickcontrols2/universal/DialogButtonBox.qml75
-rw-r--r--src/quickcontrols2/universal/Drawer.qml78
-rw-r--r--src/quickcontrols2/universal/Frame.qml55
-rw-r--r--src/quickcontrols2/universal/GroupBox.qml75
-rw-r--r--src/quickcontrols2/universal/HorizontalHeaderView.qml69
-rw-r--r--src/quickcontrols2/universal/ItemDelegate.qml86
-rw-r--r--src/quickcontrols2/universal/Label.qml47
-rw-r--r--src/quickcontrols2/universal/Menu.qml82
-rw-r--r--src/quickcontrols2/universal/MenuBar.qml63
-rw-r--r--src/quickcontrols2/universal/MenuBarItem.qml90
-rw-r--r--src/quickcontrols2/universal/MenuItem.qml114
-rw-r--r--src/quickcontrols2/universal/MenuSeparator.qml62
-rw-r--r--src/quickcontrols2/universal/Page.qml56
-rw-r--r--src/quickcontrols2/universal/PageIndicator.qml69
-rw-r--r--src/quickcontrols2/universal/Pane.qml54
-rw-r--r--src/quickcontrols2/universal/Popup.qml64
-rw-r--r--src/quickcontrols2/universal/ProgressBar.qml68
-rw-r--r--src/quickcontrols2/universal/README.md9
-rw-r--r--src/quickcontrols2/universal/RadioButton.qml74
-rw-r--r--src/quickcontrols2/universal/RadioDelegate.qml96
-rw-r--r--src/quickcontrols2/universal/RangeSlider.qml109
-rw-r--r--src/quickcontrols2/universal/RoundButton.qml90
-rw-r--r--src/quickcontrols2/universal/ScrollBar.qml93
-rw-r--r--src/quickcontrols2/universal/ScrollIndicator.qml78
-rw-r--r--src/quickcontrols2/universal/ScrollView.qml64
-rw-r--r--src/quickcontrols2/universal/Slider.qml96
-rw-r--r--src/quickcontrols2/universal/SpinBox.qml147
-rw-r--r--src/quickcontrols2/universal/SplitView.qml55
-rw-r--r--src/quickcontrols2/universal/StackView.qml76
-rw-r--r--src/quickcontrols2/universal/SwipeDelegate.qml92
-rw-r--r--src/quickcontrols2/universal/Switch.qml74
-rw-r--r--src/quickcontrols2/universal/SwitchDelegate.qml96
-rw-r--r--src/quickcontrols2/universal/TabBar.qml70
-rw-r--r--src/quickcontrols2/universal/TabButton.qml69
-rw-r--r--src/quickcontrols2/universal/TextArea.qml93
-rw-r--r--src/quickcontrols2/universal/TextField.qml93
-rw-r--r--src/quickcontrols2/universal/ToolBar.qml53
-rw-r--r--src/quickcontrols2/universal/ToolButton.qml83
-rw-r--r--src/quickcontrols2/universal/ToolSeparator.qml59
-rw-r--r--src/quickcontrols2/universal/ToolTip.qml72
-rw-r--r--src/quickcontrols2/universal/Tumbler.qml75
-rw-r--r--src/quickcontrols2/universal/VerticalHeaderView.qml69
-rw-r--r--src/quickcontrols2/universal/images/checkmark.pngbin222 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/checkmark@2x.pngbin346 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/checkmark@3x.pngbin796 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/checkmark@4x.pngbin613 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/downarrow.pngbin175 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/downarrow@2x.pngbin267 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/downarrow@3x.pngbin329 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/downarrow@4x.pngbin365 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/leftarrow.pngbin158 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/leftarrow@2x.pngbin222 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/leftarrow@3x.pngbin283 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/leftarrow@4x.pngbin315 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/rightarrow.pngbin152 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/rightarrow@2x.pngbin226 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/rightarrow@3x.pngbin258 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/images/rightarrow@4x.pngbin338 -> 0 bytes
-rw-r--r--src/quickcontrols2/universal/impl/CMakeLists.txt36
-rw-r--r--src/quickcontrols2/universal/impl/CheckIndicator.qml81
-rw-r--r--src/quickcontrols2/universal/impl/RadioIndicator.qml80
-rw-r--r--src/quickcontrols2/universal/impl/SwitchIndicator.qml81
-rw-r--r--src/quickcontrols2/universal/impl/qquickuniversalbusyindicator.cpp251
-rw-r--r--src/quickcontrols2/universal/impl/qquickuniversalbusyindicator_p.h89
-rw-r--r--src/quickcontrols2/universal/impl/qquickuniversalfocusrectangle.cpp84
-rw-r--r--src/quickcontrols2/universal/impl/qquickuniversalfocusrectangle_p.h69
-rw-r--r--src/quickcontrols2/universal/impl/qquickuniversalprogressbar.cpp338
-rw-r--r--src/quickcontrols2/universal/impl/qquickuniversalprogressbar_p.h91
-rw-r--r--src/quickcontrols2/universal/qquickuniversalstyle.cpp618
-rw-r--r--src/quickcontrols2/universal/qquickuniversalstyle_p.h246
-rw-r--r--src/quickcontrols2/universal/qquickuniversaltheme.cpp70
-rw-r--r--src/quickcontrols2/universal/qquickuniversaltheme_p.h65
-rw-r--r--src/quickcontrols2/universal/qtquickcontrols2universalstyleplugin.cpp80
-rw-r--r--src/quickcontrols2/universal/qtquickcontrols2universalstyleplugin.qrc20
-rw-r--r--src/quickcontrols2/universal/universal.pri59
-rw-r--r--src/quickcontrols2/windows/Button.qml97
-rw-r--r--src/quickcontrols2/windows/CMakeLists.txt48
-rw-r--r--src/quickcontrols2/windows/CheckBox.qml109
-rw-r--r--src/quickcontrols2/windows/ComboBox.qml130
-rw-r--r--src/quickcontrols2/windows/Frame.qml41
-rw-r--r--src/quickcontrols2/windows/GroupBox.qml41
-rw-r--r--src/quickcontrols2/windows/ProgressBar.qml41
-rw-r--r--src/quickcontrols2/windows/RadioButton.qml41
-rw-r--r--src/quickcontrols2/windows/ScrollBar.qml128
-rw-r--r--src/quickcontrols2/windows/ScrollView.qml67
-rw-r--r--src/quickcontrols2/windows/Slider.qml41
-rw-r--r--src/quickcontrols2/windows/SpinBox.qml124
-rw-r--r--src/quickcontrols2/windows/TextArea.qml41
-rw-r--r--src/quickcontrols2/windows/TextField.qml41
-rw-r--r--src/quickcontrols2/windows/qtquickcontrols2windowsstyleplugin.cpp74
-rw-r--r--src/quickcontrols2/windows/windows.pri14
-rw-r--r--src/quickcontrols2impl/CMakeLists.txt43
-rw-r--r--src/quickcontrols2impl/qquickanimatednode.cpp167
-rw-r--r--src/quickcontrols2impl/qquickanimatednode_p.h112
-rw-r--r--src/quickcontrols2impl/qquickattachedobject.cpp274
-rw-r--r--src/quickcontrols2impl/qquickattachedobject_p.h84
-rw-r--r--src/quickcontrols2impl/qquickchecklabel.cpp49
-rw-r--r--src/quickcontrols2impl/qquickchecklabel_p.h78
-rw-r--r--src/quickcontrols2impl/qquickclippedtext.cpp116
-rw-r--r--src/quickcontrols2impl/qquickclippedtext_p.h98
-rw-r--r--src/quickcontrols2impl/qquickcolor.cpp66
-rw-r--r--src/quickcontrols2impl/qquickcolor_p.h74
-rw-r--r--src/quickcontrols2impl/qquickcolorimage.cpp103
-rw-r--r--src/quickcontrols2impl/qquickcolorimage_p.h90
-rw-r--r--src/quickcontrols2impl/qquickiconimage.cpp213
-rw-r--r--src/quickcontrols2impl/qquickiconimage_p.h96
-rw-r--r--src/quickcontrols2impl/qquickiconimage_p_p.h77
-rw-r--r--src/quickcontrols2impl/qquickiconlabel.cpp642
-rw-r--r--src/quickcontrols2impl/qquickiconlabel_p.h142
-rw-r--r--src/quickcontrols2impl/qquickiconlabel_p_p.h111
-rw-r--r--src/quickcontrols2impl/qquickitemgroup.cpp122
-rw-r--r--src/quickcontrols2impl/qquickitemgroup_p.h85
-rw-r--r--src/quickcontrols2impl/qquickmnemoniclabel.cpp132
-rw-r--r--src/quickcontrols2impl/qquickmnemoniclabel_p.h84
-rw-r--r--src/quickcontrols2impl/qquickpaddedrectangle.cpp211
-rw-r--r--src/quickcontrols2impl/qquickpaddedrectangle_p.h121
-rw-r--r--src/quickcontrols2impl/qquickplaceholdertext.cpp73
-rw-r--r--src/quickcontrols2impl/qquickplaceholdertext_p.h76
-rw-r--r--src/quickcontrols2impl/qquicktumblerview.cpp320
-rw-r--r--src/quickcontrols2impl/qquicktumblerview_p.h111
-rw-r--r--src/quickcontrols2impl/qtquickcontrols2foreign_p.h76
-rw-r--r--src/quickcontrols2impl/qtquickcontrols2implglobal_p.h65
-rw-r--r--src/quickdialogs2/CMakeLists.txt3
-rw-r--r--src/quickdialogs2/quickdialogs2/CMakeLists.txt36
-rw-r--r--src/quickdialogs2/quickdialogs2/doc/images/qtquickdialogs-filedialog-gtk.pngbin39560 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2/doc/images/qtquickdialogs-fontdialog-gtk.pngbin32399 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2/doc/qtquickdialogs.qdocconf41
-rw-r--r--src/quickdialogs2/quickdialogs2/doc/src/includes/fallback.qdocinc1
-rw-r--r--src/quickdialogs2/quickdialogs2/doc/src/qtquickdialogs-module.qdoc44
-rw-r--r--src/quickdialogs2/quickdialogs2/qquickabstractdialog.cpp454
-rw-r--r--src/quickdialogs2/quickdialogs2/qquickabstractdialog_p.h161
-rw-r--r--src/quickdialogs2/quickdialogs2/qquickfiledialog.cpp615
-rw-r--r--src/quickdialogs2/quickdialogs2/qquickfiledialog_p.h165
-rw-r--r--src/quickdialogs2/quickdialogs2/qquickfontdialog.cpp227
-rw-r--r--src/quickdialogs2/quickdialogs2/qquickfontdialog_p.h101
-rw-r--r--src/quickdialogs2/quickdialogs2/qtquickdialogs2foreign_p.h75
-rw-r--r--src/quickdialogs2/quickdialogs2/qtquickdialogs2global_p.h68
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/CMakeLists.txt137
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round.pngbin119 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round.svg136
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@2x.pngbin268 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@3x.pngbin360 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@4x.pngbin422 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square.pngbin135 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square.svg134
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@2x.pngbin160 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@3x.pngbin179 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@4x.pngbin196 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round.pngbin238 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round.svg117
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@2x.pngbin396 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@3x.pngbin546 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@4x.pngbin698 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square.pngbin193 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square.svg83
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@2x.pngbin294 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@3x.pngbin395 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@4x.pngbin474 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round.pngbin205 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round.svg93
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@2x.pngbin306 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@3x.pngbin431 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@4x.pngbin574 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square.pngbin165 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square.svg74
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@2x.pngbin194 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@3x.pngbin241 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@4x.pngbin256 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled.9.pngbin114 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused.9.pngbin114 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted.9.pngbin114 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed.9.pngbin114 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background.9.pngbin113 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background.svg358
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@2x.9.pngbin123 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@3x.9.pngbin127 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@4x.9.pngbin132 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round.pngbin281 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round.svg86
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@2x.pngbin355 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@3x.pngbin453 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@4x.pngbin569 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square.pngbin171 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square.svg79
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@2x.pngbin212 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@3x.pngbin251 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@4x.pngbin274 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square.pngbin138 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square.svg72
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@2x.pngbin163 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@3x.pngbin183 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@4x.pngbin204 -> 0 bytes
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FileDialog.qml196
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FileDialogDelegate.qml88
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FolderBreadcrumbBar.qml107
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FontDialog.qml151
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FileDialog.qml190
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FileDialogDelegate.qml100
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FolderBreadcrumbBar.qml91
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FontDialog.qml167
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FileDialog.qml163
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FileDialogDelegate.qml95
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FolderBreadcrumbBar.qml103
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FontDialog.qml142
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FileDialog.qml165
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FileDialogDelegate.qml93
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FolderBreadcrumbBar.qml101
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FontDialog.qml144
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialog.qml183
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialogDelegate.qml89
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialogDelegateLabel.qml98
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/FolderBreadcrumbBar.qml102
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/FontDialog.qml148
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qml/FontDialogContent.qml267
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickdialogimplfactory.cpp84
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickdialogimplfactory_p.h67
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate.cpp163
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate_p.h93
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl.cpp564
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl_p.h168
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl_p_p.h109
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar.cpp784
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar_p.h126
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar_p_p.h113
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl.cpp836
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl_p.h215
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl_p_p.h104
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfiledialog.cpp226
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfiledialog_p.h91
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfontdialog.cpp173
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfontdialog_p.h86
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qtquickdialogs2quickimplforeign_p.h115
-rw-r--r--src/quickdialogs2/quickdialogs2quickimpl/qtquickdialogs2quickimplglobal_p.h68
-rw-r--r--src/quickdialogs2/quickdialogs2utils/CMakeLists.txt23
-rw-r--r--src/quickdialogs2/quickdialogs2utils/qquickfilenamefilter.cpp158
-rw-r--r--src/quickdialogs2/quickdialogs2utils/qquickfilenamefilter_p.h102
-rw-r--r--src/quickdialogs2/quickdialogs2utils/qtquickdialogs2utilsglobal_p.h67
-rw-r--r--src/quicknativestyle/CMakeLists.txt103
-rw-r--r--src/quicknativestyle/controls/DefaultButton.qml83
-rw-r--r--src/quicknativestyle/controls/DefaultCheckBox.qml93
-rw-r--r--src/quicknativestyle/controls/DefaultComboBox.qml129
-rw-r--r--src/quicknativestyle/controls/DefaultDial.qml60
-rw-r--r--src/quicknativestyle/controls/DefaultFrame.qml62
-rw-r--r--src/quicknativestyle/controls/DefaultGroupBox.qml91
-rw-r--r--src/quicknativestyle/controls/DefaultProgressBar.qml60
-rw-r--r--src/quicknativestyle/controls/DefaultRadioButton.qml96
-rw-r--r--src/quicknativestyle/controls/DefaultScrollBar.qml67
-rw-r--r--src/quicknativestyle/controls/DefaultSlider.qml74
-rw-r--r--src/quicknativestyle/controls/DefaultSpinBox.qml109
-rw-r--r--src/quicknativestyle/controls/DefaultTextArea.qml83
-rw-r--r--src/quicknativestyle/controls/DefaultTextField.qml89
-rw-r--r--src/quicknativestyle/controls/controls.pri14
-rw-r--r--src/quicknativestyle/items/items.pri36
-rw-r--r--src/quicknativestyle/items/qquickstyleitem.cpp563
-rw-r--r--src/quicknativestyle/items/qquickstyleitem.h311
-rw-r--r--src/quicknativestyle/items/qquickstyleitembutton.cpp88
-rw-r--r--src/quicknativestyle/items/qquickstyleitembutton.h60
-rw-r--r--src/quicknativestyle/items/qquickstyleitemcheckbox.cpp89
-rw-r--r--src/quicknativestyle/items/qquickstyleitemcheckbox.h60
-rw-r--r--src/quicknativestyle/items/qquickstyleitemcombobox.cpp89
-rw-r--r--src/quicknativestyle/items/qquickstyleitemcombobox.h60
-rw-r--r--src/quicknativestyle/items/qquickstyleitemdial.cpp111
-rw-r--r--src/quicknativestyle/items/qquickstyleitemdial.h60
-rw-r--r--src/quicknativestyle/items/qquickstyleitemframe.cpp67
-rw-r--r--src/quicknativestyle/items/qquickstyleitemframe.h56
-rw-r--r--src/quicknativestyle/items/qquickstyleitemgroupbox.cpp100
-rw-r--r--src/quicknativestyle/items/qquickstyleitemgroupbox.h70
-rw-r--r--src/quicknativestyle/items/qquickstyleitemprogressbar.cpp114
-rw-r--r--src/quicknativestyle/items/qquickstyleitemprogressbar.h61
-rw-r--r--src/quicknativestyle/items/qquickstyleitemradiobutton.cpp83
-rw-r--r--src/quicknativestyle/items/qquickstyleitemradiobutton.h60
-rw-r--r--src/quicknativestyle/items/qquickstyleitemscrollbar.cpp151
-rw-r--r--src/quicknativestyle/items/qquickstyleitemscrollbar.h74
-rw-r--r--src/quicknativestyle/items/qquickstyleitemscrollviewcorner.cpp119
-rw-r--r--src/quicknativestyle/items/qquickstyleitemscrollviewcorner.h56
-rw-r--r--src/quicknativestyle/items/qquickstyleitemslider.cpp123
-rw-r--r--src/quicknativestyle/items/qquickstyleitemslider.h72
-rw-r--r--src/quicknativestyle/items/qquickstyleitemspinbox.cpp110
-rw-r--r--src/quicknativestyle/items/qquickstyleitemspinbox.h73
-rw-r--r--src/quicknativestyle/items/qquickstyleitemtextfield.cpp86
-rw-r--r--src/quicknativestyle/items/qquickstyleitemtextfield.h60
-rw-r--r--src/quicknativestyle/qstyle/mac/mac.pri12
-rw-r--r--src/quicknativestyle/qstyle/mac/qquickmacstyle_mac.mm6072
-rw-r--r--src/quicknativestyle/qstyle/mac/qquickmacstyle_mac_p.h104
-rw-r--r--src/quicknativestyle/qstyle/mac/qquickmacstyle_mac_p_p.h230
-rw-r--r--src/quicknativestyle/qstyle/qquickcommonstyle.cpp6082
-rw-r--r--src/quicknativestyle/qstyle/qquickcommonstyle.h89
-rw-r--r--src/quicknativestyle/qstyle/qquickcommonstyle_p.h109
-rw-r--r--src/quicknativestyle/qstyle/qquickcommonstylepixmaps_p.h532
-rw-r--r--src/quicknativestyle/qstyle/qquickdrawutil.cpp1145
-rw-r--r--src/quicknativestyle/qstyle/qquickdrawutil.h170
-rw-r--r--src/quicknativestyle/qstyle/qquicknativestyle.cpp47
-rw-r--r--src/quicknativestyle/qstyle/qquicknativestyle.h69
-rw-r--r--src/quicknativestyle/qstyle/qquickstyle.cpp412
-rw-r--r--src/quicknativestyle/qstyle/qquickstyle.h839
-rw-r--r--src/quicknativestyle/qstyle/qquickstyle_p.h121
-rw-r--r--src/quicknativestyle/qstyle/qquickstylehelper.cpp438
-rw-r--r--src/quicknativestyle/qstyle/qquickstylehelper_p.h99
-rw-r--r--src/quicknativestyle/qstyle/qquickstyleoption.cpp652
-rw-r--r--src/quicknativestyle/qstyle/qquickstyleoption.h795
-rw-r--r--src/quicknativestyle/qstyle/qstyle.pri23
-rw-r--r--src/quicknativestyle/qstyle/windows/qquickwindowsstyle.cpp2388
-rw-r--r--src/quicknativestyle/qstyle/windows/qquickwindowsstyle_p.h111
-rw-r--r--src/quicknativestyle/qstyle/windows/qquickwindowsstyle_p_p.h122
-rw-r--r--src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle.cpp2509
-rw-r--r--src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle_p.h109
-rw-r--r--src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle_p_p.h204
-rw-r--r--src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle.cpp4149
-rw-r--r--src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle_p.h102
-rw-r--r--src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle_p_p.h348
-rw-r--r--src/quicknativestyle/qstyle/windows/windows.pri18
-rw-r--r--src/quicknativestyle/qtquickcontrols2nativestyleplugin.cpp164
-rw-r--r--src/quicknativestyle/util/FocusFrame.qml118
-rw-r--r--src/quicknativestyle/util/qquickmacfocusframe.h73
-rw-r--r--src/quicknativestyle/util/qquickmacfocusframe.mm181
-rw-r--r--src/quicknativestyle/util/util.pri11
-rw-r--r--src/quicktemplates2/CMakeLists.txt163
-rw-r--r--src/quicktemplates2/accessible/accessible.pri4
-rw-r--r--src/quicktemplates2/accessible/qaccessiblequickpage.cpp81
-rw-r--r--src/quicktemplates2/accessible/qaccessiblequickpage_p.h70
-rw-r--r--src/quicktemplates2/configure.cmake30
-rw-r--r--src/quicktemplates2/doc/src/qtquicktemplates2-index.qdoc58
-rw-r--r--src/quicktemplates2/doc/src/qtquicktemplates2-qmltypes.qdoc64
-rw-r--r--src/quicktemplates2/qquickabstractbutton.cpp1216
-rw-r--r--src/quicktemplates2/qquickabstractbutton_p.h225
-rw-r--r--src/quicktemplates2/qquickabstractbutton_p_p.h152
-rw-r--r--src/quicktemplates2/qquickaction.cpp586
-rw-r--r--src/quicktemplates2/qquickaction_p.h130
-rw-r--r--src/quicktemplates2/qquickaction_p_p.h135
-rw-r--r--src/quicktemplates2/qquickactiongroup.cpp471
-rw-r--r--src/quicktemplates2/qquickactiongroup_p.h133
-rw-r--r--src/quicktemplates2/qquickapplicationwindow.cpp955
-rw-r--r--src/quicktemplates2/qquickapplicationwindow_p.h197
-rw-r--r--src/quicktemplates2/qquickbusyindicator.cpp130
-rw-r--r--src/quicktemplates2/qquickbusyindicator_p.h91
-rw-r--r--src/quicktemplates2/qquickbutton.cpp162
-rw-r--r--src/quicktemplates2/qquickbutton_p.h92
-rw-r--r--src/quicktemplates2/qquickbutton_p_p.h68
-rw-r--r--src/quicktemplates2/qquickbuttongroup.cpp547
-rw-r--r--src/quicktemplates2/qquickbuttongroup_p.h144
-rw-r--r--src/quicktemplates2/qquickcheckbox.cpp245
-rw-r--r--src/quicktemplates2/qquickcheckbox_p.h97
-rw-r--r--src/quicktemplates2/qquickcheckdelegate.cpp239
-rw-r--r--src/quicktemplates2/qquickcheckdelegate_p.h101
-rw-r--r--src/quicktemplates2/qquickcombobox.cpp2188
-rw-r--r--src/quicktemplates2/qquickcombobox_p.h272
-rw-r--r--src/quicktemplates2/qquickcontainer.cpp912
-rw-r--r--src/quicktemplates2/qquickcontainer_p.h141
-rw-r--r--src/quicktemplates2/qquickcontainer_p_p.h109
-rw-r--r--src/quicktemplates2/qquickcontentitem.cpp61
-rw-r--r--src/quicktemplates2/qquickcontentitem_p.h70
-rw-r--r--src/quicktemplates2/qquickcontrol.cpp2174
-rw-r--r--src/quicktemplates2/qquickcontrol_p.h320
-rw-r--r--src/quicktemplates2/qquickcontrol_p_p.h242
-rw-r--r--src/quicktemplates2/qquickdeferredexecute.cpp150
-rw-r--r--src/quicktemplates2/qquickdeferredexecute_p_p.h94
-rw-r--r--src/quicktemplates2/qquickdeferredpointer_p_p.h188
-rw-r--r--src/quicktemplates2/qquickdelaybutton.cpp266
-rw-r--r--src/quicktemplates2/qquickdelaybutton_p.h100
-rw-r--r--src/quicktemplates2/qquickdial.cpp859
-rw-r--r--src/quicktemplates2/qquickdial_p.h183
-rw-r--r--src/quicktemplates2/qquickdialog.cpp564
-rw-r--r--src/quicktemplates2/qquickdialog_p.h148
-rw-r--r--src/quicktemplates2/qquickdialog_p_p.h84
-rw-r--r--src/quicktemplates2/qquickdialogbuttonbox.cpp853
-rw-r--r--src/quicktemplates2/qquickdialogbuttonbox_p.h173
-rw-r--r--src/quicktemplates2/qquickdialogbuttonbox_p_p.h111
-rw-r--r--src/quicktemplates2/qquickdrawer.cpp813
-rw-r--r--src/quicktemplates2/qquickdrawer_p.h111
-rw-r--r--src/quicktemplates2/qquickdrawer_p_p.h101
-rw-r--r--src/quicktemplates2/qquickframe.cpp88
-rw-r--r--src/quicktemplates2/qquickframe_p.h82
-rw-r--r--src/quicktemplates2/qquickframe_p_p.h63
-rw-r--r--src/quicktemplates2/qquickgroupbox.cpp287
-rw-r--r--src/quicktemplates2/qquickgroupbox_p.h109
-rw-r--r--src/quicktemplates2/qquickheaderview.cpp520
-rw-r--r--src/quicktemplates2/qquickheaderview_p.h137
-rw-r--r--src/quicktemplates2/qquickheaderview_p_p.h136
-rw-r--r--src/quicktemplates2/qquickicon.cpp263
-rw-r--r--src/quicktemplates2/qquickicon_p.h118
-rw-r--r--src/quicktemplates2/qquickindicatorbutton_p.cpp157
-rw-r--r--src/quicktemplates2/qquickindicatorbutton_p.h121
-rw-r--r--src/quicktemplates2/qquickitemdelegate.cpp135
-rw-r--r--src/quicktemplates2/qquickitemdelegate_p.h92
-rw-r--r--src/quicktemplates2/qquickitemdelegate_p_p.h67
-rw-r--r--src/quicktemplates2/qquicklabel.cpp592
-rw-r--r--src/quicktemplates2/qquicklabel_p.h141
-rw-r--r--src/quicktemplates2/qquicklabel_p_p.h141
-rw-r--r--src/quicktemplates2/qquickmenu.cpp1534
-rw-r--r--src/quicktemplates2/qquickmenu_p.h163
-rw-r--r--src/quicktemplates2/qquickmenu_p_p.h144
-rw-r--r--src/quicktemplates2/qquickmenubar.cpp581
-rw-r--r--src/quicktemplates2/qquickmenubar_p.h109
-rw-r--r--src/quicktemplates2/qquickmenubar_p_p.h109
-rw-r--r--src/quicktemplates2/qquickmenubaritem.cpp187
-rw-r--r--src/quicktemplates2/qquickmenubaritem_p.h103
-rw-r--r--src/quicktemplates2/qquickmenubaritem_p_p.h80
-rw-r--r--src/quicktemplates2/qquickmenuitem.cpp281
-rw-r--r--src/quicktemplates2/qquickmenuitem_p.h109
-rw-r--r--src/quicktemplates2/qquickmenuitem_p_p.h88
-rw-r--r--src/quicktemplates2/qquickmenuseparator.cpp94
-rw-r--r--src/quicktemplates2/qquickmenuseparator_p.h82
-rw-r--r--src/quicktemplates2/qquickoverlay.cpp728
-rw-r--r--src/quicktemplates2/qquickoverlay_p.h147
-rw-r--r--src/quicktemplates2/qquickoverlay_p_p.h102
-rw-r--r--src/quicktemplates2/qquickpage.cpp496
-rw-r--r--src/quicktemplates2/qquickpage_p.h123
-rw-r--r--src/quicktemplates2/qquickpage_p_p.h79
-rw-r--r--src/quicktemplates2/qquickpageindicator.cpp352
-rw-r--r--src/quicktemplates2/qquickpageindicator_p.h109
-rw-r--r--src/quicktemplates2/qquickpane.cpp426
-rw-r--r--src/quicktemplates2/qquickpane_p.h107
-rw-r--r--src/quicktemplates2/qquickpane_p_p.h90
-rw-r--r--src/quicktemplates2/qquickpopup.cpp2771
-rw-r--r--src/quicktemplates2/qquickpopup_p.h478
-rw-r--r--src/quicktemplates2/qquickpopup_p_p.h219
-rw-r--r--src/quicktemplates2/qquickpopupanchors.cpp100
-rw-r--r--src/quicktemplates2/qquickpopupanchors_p.h91
-rw-r--r--src/quicktemplates2/qquickpopupanchors_p_p.h75
-rw-r--r--src/quicktemplates2/qquickpopupitem.cpp438
-rw-r--r--src/quicktemplates2/qquickpopupitem_p.h119
-rw-r--r--src/quicktemplates2/qquickpopupitem_p_p.h95
-rw-r--r--src/quicktemplates2/qquickpopuppositioner.cpp310
-rw-r--r--src/quicktemplates2/qquickpopuppositioner_p_p.h87
-rw-r--r--src/quicktemplates2/qquickpresshandler.cpp147
-rw-r--r--src/quicktemplates2/qquickpresshandler_p_p.h84
-rw-r--r--src/quicktemplates2/qquickprogressbar.cpp271
-rw-r--r--src/quicktemplates2/qquickprogressbar_p.h112
-rw-r--r--src/quicktemplates2/qquickradiobutton.cpp121
-rw-r--r--src/quicktemplates2/qquickradiobutton_p.h79
-rw-r--r--src/quicktemplates2/qquickradiodelegate.cpp122
-rw-r--r--src/quicktemplates2/qquickradiodelegate_p.h81
-rw-r--r--src/quicktemplates2/qquickrangeslider.cpp1320
-rw-r--r--src/quicktemplates2/qquickrangeslider_p.h229
-rw-r--r--src/quicktemplates2/qquickroundbutton.cpp135
-rw-r--r--src/quicktemplates2/qquickroundbutton_p.h86
-rw-r--r--src/quicktemplates2/qquickscrollbar.cpp1258
-rw-r--r--src/quicktemplates2/qquickscrollbar_p.h222
-rw-r--r--src/quicktemplates2/qquickscrollbar_p_p.h150
-rw-r--r--src/quicktemplates2/qquickscrollindicator.cpp665
-rw-r--r--src/quicktemplates2/qquickscrollindicator_p.h162
-rw-r--r--src/quicktemplates2/qquickscrollview.cpp623
-rw-r--r--src/quicktemplates2/qquickscrollview_p.h89
-rw-r--r--src/quicktemplates2/qquickselectionrectangle.cpp540
-rw-r--r--src/quicktemplates2/qquickselectionrectangle_p.h143
-rw-r--r--src/quicktemplates2/qquickselectionrectangle_p_p.h110
-rw-r--r--src/quicktemplates2/qquickshortcutcontext.cpp92
-rw-r--r--src/quicktemplates2/qquickshortcutcontext_p_p.h65
-rw-r--r--src/quicktemplates2/qquickslider.cpp893
-rw-r--r--src/quicktemplates2/qquickslider_p.h190
-rw-r--r--src/quicktemplates2/qquickspinbox.cpp1057
-rw-r--r--src/quicktemplates2/qquickspinbox_p.h183
-rw-r--r--src/quicktemplates2/qquicksplitview.cpp2089
-rw-r--r--src/quicktemplates2/qquicksplitview_p.h226
-rw-r--r--src/quicktemplates2/qquicksplitview_p_p.h180
-rw-r--r--src/quicktemplates2/qquickstackelement.cpp320
-rw-r--r--src/quicktemplates2/qquickstackelement_p_p.h106
-rw-r--r--src/quicktemplates2/qquickstacktransition.cpp150
-rw-r--r--src/quicktemplates2/qquickstacktransition_p_p.h79
-rw-r--r--src/quicktemplates2/qquickstackview.cpp1404
-rw-r--r--src/quicktemplates2/qquickstackview_p.cpp350
-rw-r--r--src/quicktemplates2/qquickstackview_p.h224
-rw-r--r--src/quicktemplates2/qquickstackview_p_p.h126
-rw-r--r--src/quicktemplates2/qquickswipe_p.h142
-rw-r--r--src/quicktemplates2/qquickswipedelegate.cpp1527
-rw-r--r--src/quicktemplates2/qquickswipedelegate_p.h126
-rw-r--r--src/quicktemplates2/qquickswipedelegate_p_p.h82
-rw-r--r--src/quicktemplates2/qquickswipeview.cpp478
-rw-r--r--src/quicktemplates2/qquickswipeview_p.h151
-rw-r--r--src/quicktemplates2/qquickswitch.cpp239
-rw-r--r--src/quicktemplates2/qquickswitch_p.h99
-rw-r--r--src/quicktemplates2/qquickswitchdelegate.cpp236
-rw-r--r--src/quicktemplates2/qquickswitchdelegate_p.h99
-rw-r--r--src/quicktemplates2/qquicktabbar.cpp481
-rw-r--r--src/quicktemplates2/qquicktabbar_p.h133
-rw-r--r--src/quicktemplates2/qquicktabbutton.cpp94
-rw-r--r--src/quicktemplates2/qquicktabbutton_p.h81
-rw-r--r--src/quicktemplates2/qquicktextarea.cpp1176
-rw-r--r--src/quicktemplates2/qquicktextarea_p.h222
-rw-r--r--src/quicktemplates2/qquicktextarea_p_p.h173
-rw-r--r--src/quicktemplates2/qquicktextfield.cpp952
-rw-r--r--src/quicktemplates2/qquicktextfield_p.h194
-rw-r--r--src/quicktemplates2/qquicktextfield_p_p.h160
-rw-r--r--src/quicktemplates2/qquicktheme.cpp177
-rw-r--r--src/quicktemplates2/qquicktheme_p.h104
-rw-r--r--src/quicktemplates2/qquicktheme_p_p.h75
-rw-r--r--src/quicktemplates2/qquicktoolbar.cpp156
-rw-r--r--src/quicktemplates2/qquicktoolbar_p.h95
-rw-r--r--src/quicktemplates2/qquicktoolbutton.cpp86
-rw-r--r--src/quicktemplates2/qquicktoolbutton_p.h77
-rw-r--r--src/quicktemplates2/qquicktoolseparator.cpp148
-rw-r--r--src/quicktemplates2/qquicktoolseparator_p.h94
-rw-r--r--src/quicktemplates2/qquicktooltip.cpp585
-rw-r--r--src/quicktemplates2/qquicktooltip_p.h156
-rw-r--r--src/quicktemplates2/qquicktooltippopupitem.cpp106
-rw-r--r--src/quicktemplates2/qquicktooltippopupitem_p_p.h87
-rw-r--r--src/quicktemplates2/qquicktumbler.cpp1046
-rw-r--r--src/quicktemplates2/qquicktumbler_p.h179
-rw-r--r--src/quicktemplates2/qquicktumbler_p_p.h155
-rw-r--r--src/quicktemplates2/qquickvelocitycalculator.cpp102
-rw-r--r--src/quicktemplates2/qquickvelocitycalculator_p_p.h76
-rw-r--r--src/quicktemplates2/qt_cmdline.cmake0
-rw-r--r--src/quicktemplates2/qtquicktemplates2global.cpp63
-rw-r--r--src/quicktemplates2/qtquicktemplates2global_p.h73
-rw-r--r--src/quicktemplates2/qtquicktemplates2plugin.cpp106
-rw-r--r--src/quicktemplates2/quicktemplates2.pri182
2757 files changed, 0 insertions, 173733 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
deleted file mode 100644
index deb79c7b..00000000
--- a/src/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-# Generated from src.pro.
-
-add_subdirectory(quicktemplates2)
-add_subdirectory(quickcontrols2impl)
-add_subdirectory(quickcontrols2)
-add_subdirectory(quickdialogs2)
-add_subdirectory(quicknativestyle)
-add_subdirectory(labs)
diff --git a/src/labs/CMakeLists.txt b/src/labs/CMakeLists.txt
deleted file mode 100644
index 72b278fe..00000000
--- a/src/labs/CMakeLists.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-add_subdirectory(platform)
-
diff --git a/src/labs/platform/CMakeLists.txt b/src/labs/platform/CMakeLists.txt
deleted file mode 100644
index 7fc542d3..00000000
--- a/src/labs/platform/CMakeLists.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-#####################################################################
-## qtlabsplatformplugin Plugin:
-#####################################################################
-
-qt_internal_add_qml_module(qtlabsplatformplugin
- URI "Qt.labs.platform"
- VERSION "1.1"
- CLASS_NAME QtLabsPlatformPlugin
- PLUGIN_TARGET qtlabsplatformplugin
- NO_PLUGIN_OPTIONAL
- NO_GENERATE_PLUGIN_SOURCE
- SOURCES
- qquickplatformcolordialog.cpp qquickplatformcolordialog_p.h
- qquickplatformdialog.cpp qquickplatformdialog_p.h
- qquickplatformfiledialog.cpp qquickplatformfiledialog_p.h
- qquickplatformfolderdialog.cpp qquickplatformfolderdialog_p.h
- qquickplatformfontdialog.cpp qquickplatformfontdialog_p.h
- qquickplatformicon.cpp qquickplatformicon_p.h
- qquickplatformiconloader.cpp qquickplatformiconloader_p.h
- qquickplatformmenu.cpp qquickplatformmenu_p.h
- qquickplatformmenubar.cpp qquickplatformmenubar_p.h
- qquickplatformmenuitem.cpp qquickplatformmenuitem_p.h
- qquickplatformmenuitemgroup.cpp qquickplatformmenuitemgroup_p.h
- qquickplatformmenuseparator.cpp qquickplatformmenuseparator_p.h
- qquickplatformmessagedialog.cpp qquickplatformmessagedialog_p.h
- qquickplatformstandardpaths.cpp qquickplatformstandardpaths_p.h
- qtlabsplatformplugin.cpp
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
-
-qt_internal_extend_target(qtlabsplatformplugin CONDITION TARGET Qt::Widgets
- SOURCES
- widgets/qwidgetplatform_p.h
- LIBRARIES
- Qt::Widgets
-)
-
-qt_internal_extend_target(qtlabsplatformplugin CONDITION TARGET Qt::Widgets AND QT_FEATURE_systemtrayicon AND TARGET Qt::Widgets # special case
- SOURCES
- widgets/qwidgetplatformsystemtrayicon.cpp widgets/qwidgetplatformsystemtrayicon_p.h
-)
-
-qt_internal_extend_target(qtlabsplatformplugin CONDITION TARGET Qt::Widgets AND (QT_FEATURE_colordialog OR QT_FEATURE_filedialog OR QT_FEATURE_fontdialog OR QT_FEATURE_messagebox)
- SOURCES
- widgets/qwidgetplatformdialog.cpp widgets/qwidgetplatformdialog_p.h
-)
-
-qt_internal_extend_target(qtlabsplatformplugin CONDITION TARGET Qt::Widgets AND QT_FEATURE_colordialog AND TARGET Qt::Widgets # special case
- SOURCES
- widgets/qwidgetplatformcolordialog.cpp widgets/qwidgetplatformcolordialog_p.h
-)
-
-qt_internal_extend_target(qtlabsplatformplugin CONDITION TARGET Qt::Widgets AND QT_FEATURE_filedialog AND TARGET Qt::Widgets # special case
- SOURCES
- widgets/qwidgetplatformfiledialog.cpp widgets/qwidgetplatformfiledialog_p.h
-)
-
-qt_internal_extend_target(qtlabsplatformplugin CONDITION TARGET Qt::Widgets AND QT_FEATURE_fontdialog AND TARGET Qt::Widgets # special case
- SOURCES
- widgets/qwidgetplatformfontdialog.cpp widgets/qwidgetplatformfontdialog_p.h
-)
-
-qt_internal_extend_target(qtlabsplatformplugin CONDITION TARGET Qt::Widgets AND QT_FEATURE_menu AND TARGET Qt::Widgets # special case
- SOURCES
- widgets/qwidgetplatformmenu.cpp widgets/qwidgetplatformmenu_p.h
- widgets/qwidgetplatformmenuitem.cpp widgets/qwidgetplatformmenuitem_p.h
-)
-
-qt_internal_extend_target(qtlabsplatformplugin CONDITION TARGET Qt::Widgets AND QT_FEATURE_messagebox AND TARGET Qt::Widgets # special case
- SOURCES
- widgets/qwidgetplatformmessagedialog.cpp widgets/qwidgetplatformmessagedialog_p.h
-)
-
-qt_internal_extend_target(qtlabsplatformplugin CONDITION QT_FEATURE_systemtrayicon
- SOURCES
- qquickplatformsystemtrayicon.cpp qquickplatformsystemtrayicon_p.h
-)
-
-qt_internal_add_docs(qtlabsplatformplugin
- doc/qtlabsplatform.qdocconf
-)
diff --git a/src/labs/platform/doc/images/qtlabsplatform-colordialog-gtk.png b/src/labs/platform/doc/images/qtlabsplatform-colordialog-gtk.png
deleted file mode 100644
index 12197f7f..00000000
--- a/src/labs/platform/doc/images/qtlabsplatform-colordialog-gtk.png
+++ /dev/null
Binary files differ
diff --git a/src/labs/platform/doc/images/qtlabsplatform-filedialog-gtk.png b/src/labs/platform/doc/images/qtlabsplatform-filedialog-gtk.png
deleted file mode 100644
index 9360d747..00000000
--- a/src/labs/platform/doc/images/qtlabsplatform-filedialog-gtk.png
+++ /dev/null
Binary files differ
diff --git a/src/labs/platform/doc/images/qtlabsplatform-folderdialog-gtk.png b/src/labs/platform/doc/images/qtlabsplatform-folderdialog-gtk.png
deleted file mode 100644
index 45f0585c..00000000
--- a/src/labs/platform/doc/images/qtlabsplatform-folderdialog-gtk.png
+++ /dev/null
Binary files differ
diff --git a/src/labs/platform/doc/images/qtlabsplatform-fontdialog-gtk.png b/src/labs/platform/doc/images/qtlabsplatform-fontdialog-gtk.png
deleted file mode 100644
index 0c6217bd..00000000
--- a/src/labs/platform/doc/images/qtlabsplatform-fontdialog-gtk.png
+++ /dev/null
Binary files differ
diff --git a/src/labs/platform/doc/images/qtlabsplatform-menu.png b/src/labs/platform/doc/images/qtlabsplatform-menu.png
deleted file mode 100644
index 7945b45f..00000000
--- a/src/labs/platform/doc/images/qtlabsplatform-menu.png
+++ /dev/null
Binary files differ
diff --git a/src/labs/platform/doc/images/qtlabsplatform-menubar.png b/src/labs/platform/doc/images/qtlabsplatform-menubar.png
deleted file mode 100644
index 7faa8141..00000000
--- a/src/labs/platform/doc/images/qtlabsplatform-menubar.png
+++ /dev/null
Binary files differ
diff --git a/src/labs/platform/doc/images/qtlabsplatform-messagedialog-android.png b/src/labs/platform/doc/images/qtlabsplatform-messagedialog-android.png
deleted file mode 100644
index 3986694f..00000000
--- a/src/labs/platform/doc/images/qtlabsplatform-messagedialog-android.png
+++ /dev/null
Binary files differ
diff --git a/src/labs/platform/doc/images/qtlabsplatform-messagedialog-informative-android.png b/src/labs/platform/doc/images/qtlabsplatform-messagedialog-informative-android.png
deleted file mode 100644
index b2d3cd37..00000000
--- a/src/labs/platform/doc/images/qtlabsplatform-messagedialog-informative-android.png
+++ /dev/null
Binary files differ
diff --git a/src/labs/platform/doc/images/qtlabsplatform-systemtrayicon-menu.png b/src/labs/platform/doc/images/qtlabsplatform-systemtrayicon-menu.png
deleted file mode 100644
index 670df8ed..00000000
--- a/src/labs/platform/doc/images/qtlabsplatform-systemtrayicon-menu.png
+++ /dev/null
Binary files differ
diff --git a/src/labs/platform/doc/images/qtlabsplatform-systemtrayicon-message.png b/src/labs/platform/doc/images/qtlabsplatform-systemtrayicon-message.png
deleted file mode 100644
index beaeed92..00000000
--- a/src/labs/platform/doc/images/qtlabsplatform-systemtrayicon-message.png
+++ /dev/null
Binary files differ
diff --git a/src/labs/platform/doc/images/qtlabsplatform-systemtrayicon.png b/src/labs/platform/doc/images/qtlabsplatform-systemtrayicon.png
deleted file mode 100644
index 2f7a851c..00000000
--- a/src/labs/platform/doc/images/qtlabsplatform-systemtrayicon.png
+++ /dev/null
Binary files differ
diff --git a/src/labs/platform/doc/qtlabsplatform.qdocconf b/src/labs/platform/doc/qtlabsplatform.qdocconf
deleted file mode 100644
index 54ed8204..00000000
--- a/src/labs/platform/doc/qtlabsplatform.qdocconf
+++ /dev/null
@@ -1,41 +0,0 @@
-include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
-include($QT_INSTALL_DOCS/config/exampleurl-qtquickcontrols2.qdocconf)
-
-project = QtLabsPlatform
-description = Qt Labs Platform Reference Documentation
-version = $QT_VERSION
-
-qhp.projects = QtLabsPlatform
-
-qhp.QtLabsPlatform.file = qtlabsplatform.qhp
-qhp.QtLabsPlatform.namespace = org.qt-project.qtlabsplatform.$QT_VERSION_TAG
-qhp.QtLabsPlatform.virtualFolder = qtlabsplatform
-qhp.QtLabsPlatform.indexTitle = Qt Labs Platform
-qhp.QtLabsPlatform.indexRoot =
-
-qhp.QtLabsPlatform.filterAttributes = qtlabsplatform $QT_VERSION qtrefdoc
-qhp.QtLabsPlatform.customFilters.Qt.name = QtLabsPlatform $QT_VERSION
-qhp.QtLabsPlatform.customFilters.Qt.filterAttributes = qtlabsplatform $QT_VERSION
-
-qhp.QtLabsPlatform.subprojects = qmltypes
-qhp.QtLabsPlatform.subprojects.qmltypes.title = QML Types
-qhp.QtLabsPlatform.subprojects.qmltypes.indexTitle = Qt Labs Platform QML Types
-qhp.QtLabsPlatform.subprojects.qmltypes.selectors = qmlclass
-qhp.QtLabsPlatform.subprojects.qmltypes.sortPages = true
-
-depends = qtcore qtgui qtdoc qtqml qtqmlmodels qtquick qtquickcontrols qtwidgets
-
-# This module has no documented C++ types, clear the module header
-moduleheader =
-
-headerdirs += ../
-sourcedirs += ../
-
-imagedirs += images
-
-navigation.landingpage = "Qt Labs Platform"
-navigation.qmltypespage = "Qt Labs Platform QML Types"
-
-tagfile = qtlabsplatform.tags
-
-macro.labs = "\\note \\e{Types in Qt.labs modules are not guaranteed to remain compatible in future versions.}"
diff --git a/src/labs/platform/doc/src/includes/widgets.qdocinc b/src/labs/platform/doc/src/includes/widgets.qdocinc
deleted file mode 100644
index 44ebba6d..00000000
--- a/src/labs/platform/doc/src/includes/widgets.qdocinc
+++ /dev/null
@@ -1,28 +0,0 @@
-//! [1]
-The Qt Labs Platform module uses Qt Widgets as a fallback on platforms that
-do not have a native implementation available. Therefore, applications that
-use types from the Qt Labs Platform module should link to QtWidgets and use
-\l QApplication instead of \l QGuiApplication.
-
-To link against the QtWidgets library, add the following to your qmake project
-file:
-
-\code
-QT += widgets
-\endcode
-
-Create an instance of \l QApplication in \c main():
-
-\code
-#include <QApplication>
-#include <QQmlApplicationEngine>
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
- QQmlApplicationEngine engine;
- engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
- return app.exec();
-}
-\endcode
-//! [1]
diff --git a/src/labs/platform/doc/src/qt6-changes.qdoc b/src/labs/platform/doc/src/qt6-changes.qdoc
deleted file mode 100644
index de1c7a29..00000000
--- a/src/labs/platform/doc/src/qt6-changes.qdoc
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquicklabsplatform-changes-qt6.html
- \title Changes to Qt Quick Labs Platform
- \ingroup changes-qt-5-to-6
- \brief Migrate Qt Quick Labs Platform to Qt 6.
-
- Qt 6 is a result of the conscious effort to make the framework more
- efficient and easy to use.
-
- We try to maintain compatibility for all the public APIs in each release.
- Some changes were inevitable in an effort to make Qt a better framework.
-
- In this topic we summarize those changes in Qt Quick Labs Platform, and
- provide guidance to handle them.
-
- \section1 The Menu type
-
- The deprecated \c iconName and \c iconSource properties were removed. Use
- the \l {Menu::}{icon} property instead.
-
- \section1 The MenuItem type
-
- The deprecated \c iconName and \c iconSource properties were removed. Use
- the \l {MenuItem::}{icon} property instead.
-
- \section1 The SystemTrayIcon type
-
- The deprecated \c iconName and \c iconSource properties were removed. Use
- the \l {SystemTrayIcon::}{icon} property instead.
-*/
diff --git a/src/labs/platform/doc/src/qtlabsplatform-index.qdoc b/src/labs/platform/doc/src/qtlabsplatform-index.qdoc
deleted file mode 100644
index c6eff0ba..00000000
--- a/src/labs/platform/doc/src/qtlabsplatform-index.qdoc
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtlabsplatform-index.html
- \title Qt Labs Platform
-
- \brief The experimental Qt Labs Platform module provides QML types for
- native platform extensions.
-
- The experimental Qt Labs Platform module provides QML types for native
- platform extensions. The module was introduced in Qt 5.8.
-
- \section1 QML Types
-
- \generatelist {qmltypesbymodule Qt.labs.platform}
-
- \labs
-
- \section1 Module Evolution
- \l{Changes to Qt Quick Labs Platform} lists important changes in the
- module API and functionality that were done for the Qt 6 series of Qt.
-
- \section1 Related Information
-
- \list
- \li \l{Qt Quick}
- \li \l{Qt Quick Controls}
- \endlist
-*/
diff --git a/src/labs/platform/doc/src/qtlabsplatform-qmltypes.qdoc b/src/labs/platform/doc/src/qtlabsplatform-qmltypes.qdoc
deleted file mode 100644
index 51b7601a..00000000
--- a/src/labs/platform/doc/src/qtlabsplatform-qmltypes.qdoc
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \qmlmodule Qt.labs.platform 1.1
- \title Qt Labs Platform QML Types
- \ingroup qmlmodules
- \brief Provides QML types for native platform extensions.
-
- The experimental \l{Qt Labs Platform} module provides QML types for native
- platform extensions. These QML types work in conjunction with \l{Qt Quick}
- and \l{Qt Quick Controls}.
-
- The QML types can be imported into your application using the
- following import statement in your .qml file:
-
- \qml
- import Qt.labs.platform
- \endqml
-
- \section1 QML Types
-
- \generatelist {qmltypesbymodule Qt.labs.platform}
-
- \labs
-
- \section1 Related Information
-
- \list
- \li \l {Qt Quick Controls QML Types}
- \endlist
-
- \noautolist
-*/
diff --git a/src/labs/platform/platform.pri b/src/labs/platform/platform.pri
deleted file mode 100644
index ec6e8616..00000000
--- a/src/labs/platform/platform.pri
+++ /dev/null
@@ -1,39 +0,0 @@
-HEADERS += \
- $$PWD/qquickplatformcolordialog_p.h \
- $$PWD/qquickplatformdialog_p.h \
- $$PWD/qquickplatformfiledialog_p.h \
- $$PWD/qquickplatformfolderdialog_p.h \
- $$PWD/qquickplatformfontdialog_p.h \
- $$PWD/qquickplatformicon_p.h \
- $$PWD/qquickplatformiconloader_p.h \
- $$PWD/qquickplatformmenu_p.h \
- $$PWD/qquickplatformmenubar_p.h \
- $$PWD/qquickplatformmenuitem_p.h \
- $$PWD/qquickplatformmenuitemgroup_p.h \
- $$PWD/qquickplatformmenuseparator_p.h \
- $$PWD/qquickplatformmessagedialog_p.h \
- $$PWD/qquickplatformstandardpaths_p.h
-
-SOURCES += \
- $$PWD/qquickplatformcolordialog.cpp \
- $$PWD/qquickplatformdialog.cpp \
- $$PWD/qquickplatformfiledialog.cpp \
- $$PWD/qquickplatformfolderdialog.cpp \
- $$PWD/qquickplatformfontdialog.cpp \
- $$PWD/qquickplatformicon.cpp \
- $$PWD/qquickplatformiconloader.cpp \
- $$PWD/qquickplatformmenu.cpp \
- $$PWD/qquickplatformmenubar.cpp \
- $$PWD/qquickplatformmenuitem.cpp \
- $$PWD/qquickplatformmenuitemgroup.cpp \
- $$PWD/qquickplatformmenuseparator.cpp \
- $$PWD/qquickplatformmessagedialog.cpp \
- $$PWD/qquickplatformstandardpaths.cpp
-
-
-qtConfig(systemtrayicon) {
- HEADERS += \
- $$PWD/qquickplatformsystemtrayicon_p.h
- SOURCES += \
- $$PWD/qquickplatformsystemtrayicon.cpp
-}
diff --git a/src/labs/platform/qquickplatformcolordialog.cpp b/src/labs/platform/qquickplatformcolordialog.cpp
deleted file mode 100644
index 04a5e079..00000000
--- a/src/labs/platform/qquickplatformcolordialog.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformcolordialog_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ColorDialog
- \inherits Dialog
-//! \instantiates QQuickPlatformColorDialog
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief A native color dialog.
-
- The ColorDialog type provides a QML API for native platform color dialogs.
-
- \image qtlabsplatform-colordialog-gtk.png
-
- To show a color dialog, construct an instance of ColorDialog, set the
- desired properties, and call \l {Dialog::}{open()}. The \l currentColor
- property can be used to determine the currently selected color in the
- dialog. The \l color property is updated only after the final selection
- has been made by accepting the dialog.
-
- \code
- MenuItem {
- text: "Color"
- onTriggered: colorDialog.open()
- }
-
- ColorDialog {
- id: colorDialog
- currentColor: document.color
- }
-
- MyDocument {
- id: document
- color: colorDialog.color
- }
- \endcode
-
- \section2 Availability
-
- A native platform color dialog is currently available on the following platforms:
-
- \list
- \li macOS
- \li Linux (when running with the GTK+ platform theme)
- \endlist
-
- \input includes/widgets.qdocinc 1
-
- \labs
-*/
-
-QQuickPlatformColorDialog::QQuickPlatformColorDialog(QObject *parent)
- : QQuickPlatformDialog(QPlatformTheme::ColorDialog, parent),
- m_options(QColorDialogOptions::create())
-{
-}
-
-/*!
- \qmlproperty color Qt.labs.platform::ColorDialog::color
-
- This property holds the final accepted color.
-
- Unlike the \l currentColor property, the \c color property is not updated
- while the user is selecting colors in the dialog, but only after the final
- selection has been made. That is, when the user has clicked \uicontrol OK
- to accept a color. Alternatively, the \l {Dialog::}{accepted()} signal
- can be handled to get the final selection.
-
- \sa currentColor, {Dialog::}{accepted()}
-*/
-QColor QQuickPlatformColorDialog::color() const
-{
- return m_color;
-}
-
-void QQuickPlatformColorDialog::setColor(const QColor &color)
-{
- if (m_color == color)
- return;
-
- m_color = color;
- setCurrentColor(color);
- emit colorChanged();
-}
-
-/*!
- \qmlproperty color Qt.labs.platform::ColorDialog::currentColor
-
- This property holds the currently selected color in the dialog.
-
- Unlike the \l color property, the \c currentColor property is updated
- while the user is selecting colors in the dialog, even before the final
- selection has been made.
-
- \sa color
-*/
-QColor QQuickPlatformColorDialog::currentColor() const
-{
- if (QPlatformColorDialogHelper *colorDialog = qobject_cast<QPlatformColorDialogHelper *>(handle()))
- return colorDialog->currentColor();
- return m_currentColor;
-}
-
-void QQuickPlatformColorDialog::setCurrentColor(const QColor &color)
-{
- if (QPlatformColorDialogHelper *colorDialog = qobject_cast<QPlatformColorDialogHelper *>(handle()))
- colorDialog->setCurrentColor(color);
- m_currentColor = color;
-}
-
-/*!
- \qmlproperty flags Qt.labs.platform::ColorDialog::options
-
- This property holds the various options that affect the look and feel of the dialog.
-
- By default, all options are disabled.
-
- Options should be set before showing the dialog. Setting them while the dialog is
- visible is not guaranteed to have an immediate effect on the dialog (depending on
- the option and on the platform).
-
- Available options:
- \value ColorDialog.ShowAlphaChannel Allow the user to select the alpha component of a color.
- \value ColorDialog.NoButtons Don't display \uicontrol OK and \uicontrol Cancel buttons (useful for "live dialogs").
-*/
-QColorDialogOptions::ColorDialogOptions QQuickPlatformColorDialog::options() const
-{
- return m_options->options();
-}
-
-void QQuickPlatformColorDialog::setOptions(QColorDialogOptions::ColorDialogOptions options)
-{
- if (options == m_options->options())
- return;
-
- m_options->setOptions(options);
- emit optionsChanged();
-}
-
-bool QQuickPlatformColorDialog::useNativeDialog() const
-{
- return QQuickPlatformDialog::useNativeDialog()
- && !m_options->testOption(QColorDialogOptions::DontUseNativeDialog);
-}
-
-void QQuickPlatformColorDialog::onCreate(QPlatformDialogHelper *dialog)
-{
- if (QPlatformColorDialogHelper *colorDialog = qobject_cast<QPlatformColorDialogHelper *>(dialog)) {
- connect(colorDialog, &QPlatformColorDialogHelper::currentColorChanged, this, &QQuickPlatformColorDialog::currentColorChanged);
- colorDialog->setOptions(m_options);
- colorDialog->setCurrentColor(m_currentColor);
- }
-}
-
-void QQuickPlatformColorDialog::onShow(QPlatformDialogHelper *dialog)
-{
- m_options->setWindowTitle(title());
- if (QPlatformColorDialogHelper *colorDialog = qobject_cast<QPlatformColorDialogHelper *>(dialog))
- colorDialog->setOptions(m_options);
-}
-
-void QQuickPlatformColorDialog::accept()
-{
- setColor(currentColor());
- QQuickPlatformDialog::accept();
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/qquickplatformcolordialog_p.h b/src/labs/platform/qquickplatformcolordialog_p.h
deleted file mode 100644
index 1df047d9..00000000
--- a/src/labs/platform/qquickplatformcolordialog_p.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMCOLORDIALOG_P_H
-#define QQUICKPLATFORMCOLORDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickplatformdialog_p.h"
-#include <QtGui/qcolor.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPlatformColorDialog : public QQuickPlatformDialog
-{
- Q_OBJECT
- Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged FINAL)
- Q_PROPERTY(QColor currentColor READ currentColor WRITE setCurrentColor NOTIFY currentColorChanged FINAL)
- Q_PROPERTY(QColorDialogOptions::ColorDialogOptions options READ options WRITE setOptions NOTIFY optionsChanged FINAL)
- Q_FLAGS(QColorDialogOptions::ColorDialogOptions)
-
-public:
- explicit QQuickPlatformColorDialog(QObject *parent = nullptr);
-
- QColor color() const;
- void setColor(const QColor &color);
-
- QColor currentColor() const;
- void setCurrentColor(const QColor &color);
-
- QColorDialogOptions::ColorDialogOptions options() const;
- void setOptions(QColorDialogOptions::ColorDialogOptions options);
-
-Q_SIGNALS:
- void colorChanged();
- void currentColorChanged();
- void optionsChanged();
-
-protected:
- bool useNativeDialog() const override;
- void onCreate(QPlatformDialogHelper *dialog) override;
- void onShow(QPlatformDialogHelper *dialog) override;
- void accept() override;
-
-private:
- QColor m_color;
- QColor m_currentColor; // TODO: QColorDialogOptions::initialColor
- QSharedPointer<QColorDialogOptions> m_options;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformColorDialog)
-
-#endif // QQUICKPLATFORMCOLORDIALOG_P_H
diff --git a/src/labs/platform/qquickplatformdialog.cpp b/src/labs/platform/qquickplatformdialog.cpp
deleted file mode 100644
index 06a26237..00000000
--- a/src/labs/platform/qquickplatformdialog.cpp
+++ /dev/null
@@ -1,411 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformdialog_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtQuick/qquickitem.h>
-#include <QtQuick/qquickwindow.h>
-
-#include "widgets/qwidgetplatform_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Dialog
- \inherits QtObject
-//! \instantiates QQuickPlatformDialog
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief The base class of native dialogs.
-
- The Dialog type provides common QML API for native platform dialogs.
-
- To show a native dialog, construct an instance of one of the concrete
- Dialog implementations, set the desired properties, and call \l open().
- Dialog emits \l accepted() or \l rejected() when the user is done with
- the dialog.
-
- \labs
-*/
-
-/*!
- \qmlsignal void Qt.labs.platform::Dialog::accepted()
-
- This signal is emitted when the dialog has been accepted either
- interactively or by calling \l accept().
-
- \note This signal is \e not emitted when closing the dialog with \l close().
-
- \sa rejected()
-*/
-
-/*!
- \qmlsignal void Qt.labs.platform::Dialog::rejected()
-
- This signal is emitted when the dialog has been rejected either
- interactively or by calling \l reject().
-
- \note This signal is \e not emitted when closing the dialog with \l close().
-
- \sa accepted()
-*/
-
-Q_DECLARE_LOGGING_CATEGORY(qtLabsPlatformDialogs)
-
-QQuickPlatformDialog::QQuickPlatformDialog(QPlatformTheme::DialogType type, QObject *parent)
- : QObject(parent),
- m_visible(false),
- m_complete(false),
- m_result(0),
- m_parentWindow(nullptr),
- m_flags(Qt::Dialog),
- m_modality(Qt::WindowModal),
- m_type(type),
- m_handle(nullptr)
-{
-}
-
-QQuickPlatformDialog::~QQuickPlatformDialog()
-{
- destroy();
-}
-
-QPlatformDialogHelper *QQuickPlatformDialog::handle() const
-{
- return m_handle;
-}
-
-/*!
- \qmldefault
- \qmlproperty list<Object> Qt.labs.platform::Dialog::data
-
- This default property holds the list of all objects declared as children of
- the dialog.
-*/
-QQmlListProperty<QObject> QQuickPlatformDialog::data()
-{
- return QQmlListProperty<QObject>(this, &m_data);
-}
-
-/*!
- \qmlproperty Window Qt.labs.platform::Dialog::parentWindow
-
- This property holds the parent window of the dialog.
-
- Unless explicitly set, the window is automatically resolved by iterating
- the QML parent objects until a \l Window or an \l Item that has a window
- is found.
-*/
-QWindow *QQuickPlatformDialog::parentWindow() const
-{
- return m_parentWindow;
-}
-
-void QQuickPlatformDialog::setParentWindow(QWindow *window)
-{
- if (m_parentWindow == window)
- return;
-
- m_parentWindow = window;
- emit parentWindowChanged();
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::Dialog::title
-
- This property holds the title of the dialog.
-*/
-QString QQuickPlatformDialog::title() const
-{
- return m_title;
-}
-
-void QQuickPlatformDialog::setTitle(const QString &title)
-{
- if (m_title == title)
- return;
-
- m_title = title;
- emit titleChanged();
-}
-
-/*!
- \qmlproperty Qt::WindowFlags Qt.labs.platform::Dialog::flags
-
- This property holds the window flags of the dialog. The default value is \c Qt.Dialog.
-*/
-Qt::WindowFlags QQuickPlatformDialog::flags() const
-{
- return m_flags;
-}
-
-void QQuickPlatformDialog::setFlags(Qt::WindowFlags flags)
-{
- if (m_flags == flags)
- return;
-
- m_flags = flags;
- emit flagsChanged();
-}
-
-/*!
- \qmlproperty Qt::WindowModality Qt.labs.platform::Dialog::modality
-
- This property holds the modality of the dialog. The default value is \c Qt.WindowModal.
-
- Available values:
- \value Qt.NonModal The dialog is not modal and does not block input to other windows.
- \value Qt.WindowModal The dialog is modal to a single window hierarchy and blocks input to its parent window, all grandparent windows, and all siblings of its parent and grandparent windows.
- \value Qt.ApplicationModal The dialog is modal to the application and blocks input to all windows.
-*/
-Qt::WindowModality QQuickPlatformDialog::modality() const
-{
- return m_modality;
-}
-
-void QQuickPlatformDialog::setModality(Qt::WindowModality modality)
-{
- if (m_modality == modality)
- return;
-
- m_modality = modality;
- emit modalityChanged();
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::Dialog::visible
-
- This property holds the visibility of the dialog. The default value is \c false.
-
- \sa open(), close()
-*/
-bool QQuickPlatformDialog::isVisible() const
-{
- return m_handle && m_visible;
-}
-
-void QQuickPlatformDialog::setVisible(bool visible)
-{
- if (visible)
- open();
- else
- close();
-}
-
-/*!
- \qmlproperty int Qt.labs.platform::Dialog::result
-
- This property holds the result code.
-
- Standard result codes:
- \value Dialog.Accepted
- \value Dialog.Rejected
-
- \note MessageDialog sets the result to the value of the clicked standard
- button instead of using the standard result codes.
-*/
-int QQuickPlatformDialog::result() const
-{
- return m_result;
-}
-
-void QQuickPlatformDialog::setResult(int result)
-{
- if (m_result == result)
- return;
-
- m_result = result;
- emit resultChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Dialog::open()
-
- Opens the dialog.
-
- \sa visible, close()
-*/
-void QQuickPlatformDialog::open()
-{
- if (m_visible || !create())
- return;
-
- onShow(m_handle);
- m_visible = m_handle->show(m_flags, m_modality, m_parentWindow);
- if (m_visible)
- emit visibleChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Dialog::close()
-
- Closes the dialog.
-
- \sa visible, open()
-*/
-void QQuickPlatformDialog::close()
-{
- if (!m_handle || !m_visible)
- return;
-
- onHide(m_handle);
- m_handle->hide();
- m_visible = false;
- emit visibleChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Dialog::accept()
-
- Closes the dialog and emits the \l accepted() signal.
-
- \sa reject()
-*/
-void QQuickPlatformDialog::accept()
-{
- done(Accepted);
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Dialog::reject()
-
- Closes the dialog and emits the \l rejected() signal.
-
- \sa accept()
-*/
-void QQuickPlatformDialog::reject()
-{
- done(Rejected);
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Dialog::done(int result)
-
- Closes the dialog and sets the \a result.
-
- \sa accept(), reject(), result
-*/
-void QQuickPlatformDialog::done(int result)
-{
- close();
- setResult(result);
-
- if (result == Accepted)
- emit accepted();
- else if (result == Rejected)
- emit rejected();
-}
-
-void QQuickPlatformDialog::classBegin()
-{
-}
-
-void QQuickPlatformDialog::componentComplete()
-{
- m_complete = true;
- if (!m_parentWindow)
- setParentWindow(findParentWindow());
-}
-
-static const char *qmlTypeName(const QObject *object)
-{
- return object->metaObject()->className() + qstrlen("QQuickPlatform");
-}
-
-bool QQuickPlatformDialog::create()
-{
- if (!m_handle) {
- if (useNativeDialog())
- m_handle = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(m_type);
- if (!m_handle)
- m_handle = QWidgetPlatform::createDialog(m_type, this);
- qCDebug(qtLabsPlatformDialogs) << qmlTypeName(this) << "->" << m_handle;
- if (m_handle) {
- onCreate(m_handle);
- connect(m_handle, &QPlatformDialogHelper::accept, this, &QQuickPlatformDialog::accept);
- connect(m_handle, &QPlatformDialogHelper::reject, this, &QQuickPlatformDialog::reject);
- }
- }
- return m_handle;
-}
-
-void QQuickPlatformDialog::destroy()
-{
- delete m_handle;
- m_handle = nullptr;
-}
-
-bool QQuickPlatformDialog::useNativeDialog() const
-{
- return !QCoreApplication::testAttribute(Qt::AA_DontUseNativeDialogs)
- && QGuiApplicationPrivate::platformTheme()->usePlatformNativeDialog(m_type);
-}
-
-void QQuickPlatformDialog::onCreate(QPlatformDialogHelper *dialog)
-{
- Q_UNUSED(dialog);
-}
-
-void QQuickPlatformDialog::onShow(QPlatformDialogHelper *dialog)
-{
- Q_UNUSED(dialog);
-}
-
-void QQuickPlatformDialog::onHide(QPlatformDialogHelper *dialog)
-{
- Q_UNUSED(dialog);
-}
-
-QWindow *QQuickPlatformDialog::findParentWindow() const
-{
- QObject *obj = parent();
- while (obj) {
- QWindow *window = qobject_cast<QWindow *>(obj);
- if (window)
- return window;
- QQuickItem *item = qobject_cast<QQuickItem *>(obj);
- if (item && item->window())
- return item->window();
- obj = obj->parent();
- }
- return nullptr;
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickplatformdialog_p.cpp"
diff --git a/src/labs/platform/qquickplatformdialog_p.h b/src/labs/platform/qquickplatformdialog_p.h
deleted file mode 100644
index 55a54937..00000000
--- a/src/labs/platform/qquickplatformdialog_p.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMDIALOG_P_H
-#define QQUICKPLATFORMDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtGui/qpa/qplatformdialoghelper.h>
-#include <QtQml/qqmlparserstatus.h>
-#include <QtQml/qqmllist.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QWindow;
-class QPlatformDialogHelper;
-
-class QQuickPlatformDialog : public QObject, public QQmlParserStatus
-{
- Q_OBJECT
- Q_INTERFACES(QQmlParserStatus)
- Q_PROPERTY(QQmlListProperty<QObject> data READ data FINAL)
- Q_PROPERTY(QWindow *parentWindow READ parentWindow WRITE setParentWindow NOTIFY parentWindowChanged FINAL)
- Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged FINAL)
- Q_PROPERTY(Qt::WindowFlags flags READ flags WRITE setFlags NOTIFY flagsChanged FINAL)
- Q_PROPERTY(Qt::WindowModality modality READ modality WRITE setModality NOTIFY modalityChanged FINAL)
- Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
- Q_PROPERTY(int result READ result WRITE setResult NOTIFY resultChanged FINAL)
- Q_CLASSINFO("DefaultProperty", "data")
-
-public:
- explicit QQuickPlatformDialog(QPlatformTheme::DialogType type, QObject *parent = nullptr);
- ~QQuickPlatformDialog();
-
- QPlatformDialogHelper *handle() const;
-
- QQmlListProperty<QObject> data();
-
- QWindow *parentWindow() const;
- void setParentWindow(QWindow *window);
-
- QString title() const;
- void setTitle(const QString &title);
-
- Qt::WindowFlags flags() const;
- void setFlags(Qt::WindowFlags flags);
-
- Qt::WindowModality modality() const;
- void setModality(Qt::WindowModality modality);
-
- bool isVisible() const;
- void setVisible(bool visible);
-
- enum StandardCode { Rejected, Accepted };
- Q_ENUM(StandardCode)
-
- int result() const;
- void setResult(int result);
-
-public Q_SLOTS:
- void open();
- void close();
- virtual void accept();
- virtual void reject();
- virtual void done(int result);
-
-Q_SIGNALS:
- void accepted();
- void rejected();
- void parentWindowChanged();
- void titleChanged();
- void flagsChanged();
- void modalityChanged();
- void visibleChanged();
- void resultChanged();
-
-protected:
- void classBegin() override;
- void componentComplete() override;
-
- bool create();
- void destroy();
-
- virtual bool useNativeDialog() const;
- virtual void onCreate(QPlatformDialogHelper *dialog);
- virtual void onShow(QPlatformDialogHelper *dialog);
- virtual void onHide(QPlatformDialogHelper *dialog);
-
- QWindow *findParentWindow() const;
-
-private:
- bool m_visible;
- bool m_complete;
- int m_result;
- QWindow *m_parentWindow;
- QString m_title;
- Qt::WindowFlags m_flags;
- Qt::WindowModality m_modality;
- QPlatformTheme::DialogType m_type;
- QList<QObject *> m_data;
- QPlatformDialogHelper *m_handle;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformDialog)
-
-#endif // QQUICKPLATFORMDIALOG_P_H
diff --git a/src/labs/platform/qquickplatformfiledialog.cpp b/src/labs/platform/qquickplatformfiledialog.cpp
deleted file mode 100644
index 8bfcfc93..00000000
--- a/src/labs/platform/qquickplatformfiledialog.cpp
+++ /dev/null
@@ -1,662 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformfiledialog_p.h"
-
-#include <QtCore/qlist.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype FileDialog
- \inherits Dialog
-//! \instantiates QQuickPlatformFileDialog
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief A native file dialog.
-
- The FileDialog type provides a QML API for native platform file dialogs.
-
- \image qtlabsplatform-filedialog-gtk.png
-
- To show a file dialog, construct an instance of FileDialog, set the
- desired properties, and call \l {Dialog::}{open()}. The \l currentFile
- or \l currentFiles properties can be used to determine the currently
- selected file(s) in the dialog. The \l file and \l files properties
- are updated only after the final selection has been made by accepting
- the dialog.
-
- \code
- MenuItem {
- text: "Open..."
- onTriggered: fileDialog.open()
- }
-
- FileDialog {
- id: fileDialog
- currentFile: document.source
- folder: StandardPaths.writableLocation(StandardPaths.DocumentsLocation)
- }
-
- MyDocument {
- id: document
- source: fileDialog.file
- }
- \endcode
-
- \section2 Availability
-
- A native platform file dialog is currently available on the following platforms:
-
- \list
- \li iOS
- \li Linux (when running with the GTK+ platform theme)
- \li macOS
- \li Windows
- \endlist
-
- \input includes/widgets.qdocinc 1
-
- \labs
-
- \sa FolderDialog, StandardPaths
-*/
-
-QQuickPlatformFileDialog::QQuickPlatformFileDialog(QObject *parent)
- : QQuickPlatformDialog(QPlatformTheme::FileDialog, parent),
- m_fileMode(OpenFile),
- m_options(QFileDialogOptions::create()),
- m_selectedNameFilter(nullptr)
-{
- m_options->setFileMode(QFileDialogOptions::ExistingFile);
- m_options->setAcceptMode(QFileDialogOptions::AcceptOpen);
-}
-
-/*!
- \qmlproperty enumeration Qt.labs.platform::FileDialog::fileMode
-
- This property holds the mode of the dialog.
-
- Available values:
- \value FileDialog.OpenFile The dialog is used to select an existing file (default).
- \value FileDialog.OpenFiles The dialog is used to select multiple existing files.
- \value FileDialog.SaveFile The dialog is used to select any file. The file does not have to exist.
-*/
-QQuickPlatformFileDialog::FileMode QQuickPlatformFileDialog::fileMode() const
-{
- return m_fileMode;
-}
-
-void QQuickPlatformFileDialog::setFileMode(FileMode mode)
-{
- if (mode == m_fileMode)
- return;
-
- switch (mode) {
- case OpenFile:
- m_options->setFileMode(QFileDialogOptions::ExistingFile);
- m_options->setAcceptMode(QFileDialogOptions::AcceptOpen);
- break;
- case OpenFiles:
- m_options->setFileMode(QFileDialogOptions::ExistingFiles);
- m_options->setAcceptMode(QFileDialogOptions::AcceptOpen);
- break;
- case SaveFile:
- m_options->setFileMode(QFileDialogOptions::AnyFile);
- m_options->setAcceptMode(QFileDialogOptions::AcceptSave);
- break;
- default:
- break;
- }
-
- m_fileMode = mode;
- emit fileModeChanged();
-}
-
-/*!
- \qmlproperty url Qt.labs.platform::FileDialog::file
-
- This property holds the final accepted file.
-
- Unlike the \l currentFile property, the \c file property is not updated
- while the user is selecting files in the dialog, but only after the final
- selection has been made. That is, when the user has clicked \uicontrol OK
- to accept a file. Alternatively, the \l {Dialog::}{accepted()} signal
- can be handled to get the final selection.
-
- \sa currentFile, {Dialog::}{accepted()}
-*/
-QUrl QQuickPlatformFileDialog::file() const
-{
- return addDefaultSuffix(m_files.value(0));
-}
-
-void QQuickPlatformFileDialog::setFile(const QUrl &file)
-{
- setFiles(QList<QUrl>() << file);
-}
-
-/*!
- \qmlproperty list<url> Qt.labs.platform::FileDialog::files
-
- This property holds the final accepted files.
-
- Unlike the \l currentFiles property, the \c files property is not updated
- while the user is selecting files in the dialog, but only after the final
- selection has been made. That is, when the user has clicked \uicontrol OK
- to accept files. Alternatively, the \l {Dialog::}{accepted()} signal
- can be handled to get the final selection.
-
- \sa currentFiles, {Dialog::}{accepted()}
-*/
-QList<QUrl> QQuickPlatformFileDialog::files() const
-{
- return addDefaultSuffixes(m_files);
-}
-
-void QQuickPlatformFileDialog::setFiles(const QList<QUrl> &files)
-{
- if (m_files == files)
- return;
-
- bool firstChanged = m_files.value(0) != files.value(0);
- m_files = files;
- if (firstChanged)
- emit fileChanged();
- emit filesChanged();
-}
-
-/*!
- \qmlproperty url Qt.labs.platform::FileDialog::currentFile
-
- This property holds the currently selected file in the dialog.
-
- Unlike the \l file property, the \c currentFile property is updated
- while the user is selecting files in the dialog, even before the final
- selection has been made.
-
- \sa file, currentFiles
-*/
-QUrl QQuickPlatformFileDialog::currentFile() const
-{
- return currentFiles().value(0);
-}
-
-void QQuickPlatformFileDialog::setCurrentFile(const QUrl &file)
-{
- setCurrentFiles(QList<QUrl>() << file);
-}
-
-/*!
- \qmlproperty list<url> Qt.labs.platform::FileDialog::currentFiles
-
- This property holds the currently selected files in the dialog.
-
- Unlike the \l files property, the \c currentFiles property is updated
- while the user is selecting files in the dialog, even before the final
- selection has been made.
-
- \sa files, currentFile
-*/
-QList<QUrl> QQuickPlatformFileDialog::currentFiles() const
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
- return fileDialog->selectedFiles();
- return m_options->initiallySelectedFiles();
-}
-
-void QQuickPlatformFileDialog::setCurrentFiles(const QList<QUrl> &files)
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle())) {
- for (const QUrl &file : files)
- fileDialog->selectFile(file);
- }
- m_options->setInitiallySelectedFiles(files);
-}
-
-/*!
- \qmlproperty url Qt.labs.platform::FileDialog::folder
-
- This property holds the folder where files are selected.
- For selecting a folder, use FolderDialog instead.
-
- \sa FolderDialog
-*/
-QUrl QQuickPlatformFileDialog::folder() const
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
- return fileDialog->directory();
- return m_options->initialDirectory();
-}
-
-void QQuickPlatformFileDialog::setFolder(const QUrl &folder)
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
- fileDialog->setDirectory(folder);
- m_options->setInitialDirectory(folder);
-}
-
-/*!
- \qmlproperty flags Qt.labs.platform::FileDialog::options
-
- This property holds the various options that affect the look and feel of the dialog.
-
- By default, all options are disabled.
-
- Options should be set before showing the dialog. Setting them while the dialog is
- visible is not guaranteed to have an immediate effect on the dialog (depending on
- the option and on the platform).
-
- Available options:
- \value FileDialog.DontResolveSymlinks Don't resolve symlinks in the file dialog. By default symlinks are resolved.
- \value FileDialog.DontConfirmOverwrite Don't ask for confirmation if an existing file is selected. By default confirmation is requested.
- \value FileDialog.ReadOnly Indicates that the dialog doesn't allow creating directories.
- \value FileDialog.HideNameFilterDetails Indicates if the file name filter details are hidden or not.
-*/
-QFileDialogOptions::FileDialogOptions QQuickPlatformFileDialog::options() const
-{
- return m_options->options();
-}
-
-void QQuickPlatformFileDialog::setOptions(QFileDialogOptions::FileDialogOptions options)
-{
- if (options == m_options->options())
- return;
-
- m_options->setOptions(options);
- emit optionsChanged();
-}
-
-void QQuickPlatformFileDialog::resetOptions()
-{
- setOptions({});
-}
-
-/*!
- \qmlproperty list<string> Qt.labs.platform::FileDialog::nameFilters
-
- This property holds the filters that restrict the types of files that
- can be selected.
-
- \code
- FileDialog {
- nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"]
- }
- \endcode
-
- \note \b{*.*} is not a portable filter, because the historical assumption
- that the file extension determines the file type is not consistent on every
- operating system. It is possible to have a file with no dot in its name (for
- example, \c Makefile). In a native Windows file dialog, \b{*.*} will match
- such files, while in other types of file dialogs it may not. So it is better
- to use \b{*} if you mean to select any file.
-
- \sa selectedNameFilter
-*/
-QStringList QQuickPlatformFileDialog::nameFilters() const
-{
- return m_options->nameFilters();
-}
-
-void QQuickPlatformFileDialog::setNameFilters(const QStringList &filters)
-{
- if (filters == m_options->nameFilters())
- return;
-
- m_options->setNameFilters(filters);
- if (m_selectedNameFilter) {
- int index = m_selectedNameFilter->index();
- if (index < 0 || index >= filters.count())
- index = 0;
- m_selectedNameFilter->update(filters.value(index));
- }
- emit nameFiltersChanged();
-}
-
-void QQuickPlatformFileDialog::resetNameFilters()
-{
- setNameFilters(QStringList());
-}
-
-/*!
- \qmlproperty int Qt.labs.platform::FileDialog::selectedNameFilter.index
- \qmlproperty string Qt.labs.platform::FileDialog::selectedNameFilter.name
- \qmlproperty list<string> Qt.labs.platform::FileDialog::selectedNameFilter.extensions
-
- These properties hold the currently selected name filter.
-
- \table
- \header
- \li Name
- \li Description
- \row
- \li \b index : int
- \li This property determines which \l {nameFilters}{name filter} is selected.
- The specified filter is selected when the dialog is opened. The value is
- updated when the user selects another filter.
- \row
- \li [read-only] \b name : string
- \li This property holds the name of the selected filter. In the
- example below, the name of the first filter is \c {"Text files"}
- and the second is \c {"HTML files"}.
- \row
- \li [read-only] \b extensions : list<string>
- \li This property holds the list of extensions of the selected filter.
- In the example below, the list of extensions of the first filter is
- \c {["txt"]} and the second is \c {["html", "htm"]}.
- \endtable
-
- \code
- FileDialog {
- id: fileDialog
- selectedNameFilter.index: 1
- nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"]
- }
-
- MyDocument {
- id: document
- fileType: fileDialog.selectedNameFilter.extensions[0]
- }
- \endcode
-
- \sa nameFilters
-*/
-QQuickPlatformFileNameFilter *QQuickPlatformFileDialog::selectedNameFilter() const
-{
- if (!m_selectedNameFilter) {
- QQuickPlatformFileDialog *that = const_cast<QQuickPlatformFileDialog *>(this);
- m_selectedNameFilter = new QQuickPlatformFileNameFilter(that);
- m_selectedNameFilter->setOptions(m_options);
- }
- return m_selectedNameFilter;
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::FileDialog::defaultSuffix
-
- This property holds a suffix that is added to selected files that have
- no suffix specified. The suffix is typically used to indicate the file
- type (e.g. "txt" indicates a text file).
-
- If the first character is a dot ('.'), it is removed.
-*/
-QString QQuickPlatformFileDialog::defaultSuffix() const
-{
- return m_options->defaultSuffix();
-}
-
-void QQuickPlatformFileDialog::setDefaultSuffix(const QString &suffix)
-{
- if (suffix == m_options->defaultSuffix())
- return;
-
- m_options->setDefaultSuffix(suffix);
- emit defaultSuffixChanged();
-}
-
-void QQuickPlatformFileDialog::resetDefaultSuffix()
-{
- setDefaultSuffix(QString());
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::FileDialog::acceptLabel
-
- This property holds the label text shown on the button that accepts the dialog.
-
- When set to an empty string, the default label of the underlying platform is used.
- The default label is typically \uicontrol Open or \uicontrol Save depending on which
- \l fileMode the dialog is used in.
-
- The default value is an empty string.
-
- \sa rejectLabel
-*/
-QString QQuickPlatformFileDialog::acceptLabel() const
-{
- return m_options->labelText(QFileDialogOptions::Accept);
-}
-
-void QQuickPlatformFileDialog::setAcceptLabel(const QString &label)
-{
- if (label == m_options->labelText(QFileDialogOptions::Accept))
- return;
-
- m_options->setLabelText(QFileDialogOptions::Accept, label);
- emit acceptLabelChanged();
-}
-
-void QQuickPlatformFileDialog::resetAcceptLabel()
-{
- setAcceptLabel(QString());
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::FileDialog::rejectLabel
-
- This property holds the label text shown on the button that rejects the dialog.
-
- When set to an empty string, the default label of the underlying platform is used.
- The default label is typically \uicontrol Cancel.
-
- The default value is an empty string.
-
- \sa acceptLabel
-*/
-QString QQuickPlatformFileDialog::rejectLabel() const
-{
- return m_options->labelText(QFileDialogOptions::Reject);
-}
-
-void QQuickPlatformFileDialog::setRejectLabel(const QString &label)
-{
- if (label == m_options->labelText(QFileDialogOptions::Reject))
- return;
-
- m_options->setLabelText(QFileDialogOptions::Reject, label);
- emit rejectLabelChanged();
-}
-
-void QQuickPlatformFileDialog::resetRejectLabel()
-{
- setRejectLabel(QString());
-}
-
-bool QQuickPlatformFileDialog::useNativeDialog() const
-{
- return QQuickPlatformDialog::useNativeDialog()
- && !m_options->testOption(QFileDialogOptions::DontUseNativeDialog);
-}
-
-void QQuickPlatformFileDialog::onCreate(QPlatformDialogHelper *dialog)
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
- // TODO: emit currentFileChanged only when the first entry in currentFiles changes
- connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, this, &QQuickPlatformFileDialog::currentFileChanged);
- connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, this, &QQuickPlatformFileDialog::currentFilesChanged);
- connect(fileDialog, &QPlatformFileDialogHelper::directoryEntered, this, &QQuickPlatformFileDialog::folderChanged);
- fileDialog->setOptions(m_options);
- }
-}
-
-void QQuickPlatformFileDialog::onShow(QPlatformDialogHelper *dialog)
-{
- m_options->setWindowTitle(title());
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
- fileDialog->setOptions(m_options); // setOptions only assigns a member and isn't virtual
- if (m_firstShow && m_options->initialDirectory().isValid())
- fileDialog->setDirectory(m_options->initialDirectory());
- if (m_selectedNameFilter) {
- const int index = m_selectedNameFilter->index();
- const QString filter = m_options->nameFilters().value(index);
- m_options->setInitiallySelectedNameFilter(filter);
- fileDialog->selectNameFilter(filter);
- connect(fileDialog, &QPlatformFileDialogHelper::filterSelected, m_selectedNameFilter, &QQuickPlatformFileNameFilter::update);
- }
- }
- if (m_firstShow)
- m_firstShow = false;
-}
-
-void QQuickPlatformFileDialog::onHide(QPlatformDialogHelper *dialog)
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
- if (m_selectedNameFilter)
- disconnect(fileDialog, &QPlatformFileDialogHelper::filterSelected, m_selectedNameFilter, &QQuickPlatformFileNameFilter::update);
- }
-}
-
-void QQuickPlatformFileDialog::accept()
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
- setFiles(fileDialog->selectedFiles());
- QQuickPlatformDialog::accept();
-}
-
-QUrl QQuickPlatformFileDialog::addDefaultSuffix(const QUrl &file) const
-{
- QUrl url = file;
- const QString path = url.path();
- const QString suffix = m_options->defaultSuffix();
- if (!suffix.isEmpty() && !path.endsWith(QLatin1Char('/')) && path.lastIndexOf(QLatin1Char('.')) == -1)
- url.setPath(path + QLatin1Char('.') + suffix);
- return url;
-}
-
-QList<QUrl> QQuickPlatformFileDialog::addDefaultSuffixes(const QList<QUrl> &files) const
-{
- QList<QUrl> urls;
- urls.reserve(files.size());
- for (const QUrl &file : files)
- urls += addDefaultSuffix(file);
- return urls;
-}
-
-QQuickPlatformFileNameFilter::QQuickPlatformFileNameFilter(QObject *parent)
- : QObject(parent), m_index(-1)
-{
-}
-
-int QQuickPlatformFileNameFilter::index() const
-{
- return m_index;
-}
-
-void QQuickPlatformFileNameFilter::setIndex(int index)
-{
- if (m_index == index)
- return;
-
- m_index = index;
- emit indexChanged(index);
-}
-
-QString QQuickPlatformFileNameFilter::name() const
-{
- return m_name;
-}
-
-QStringList QQuickPlatformFileNameFilter::extensions() const
-{
- return m_extensions;
-}
-
-QSharedPointer<QFileDialogOptions> QQuickPlatformFileNameFilter::options() const
-{
- return m_options;
-}
-
-void QQuickPlatformFileNameFilter::setOptions(const QSharedPointer<QFileDialogOptions> &options)
-{
- m_options = options;
-}
-
-static QString extractName(const QString &filter)
-{
- return filter.left(filter.indexOf(QLatin1Char('(')) - 1);
-}
-
-static QString extractExtension(QStringView filter)
-{
- return filter.mid(filter.indexOf(QLatin1Char('.')) + 1).toString();
-}
-
-static QStringList extractExtensions(QStringView filter)
-{
- QStringList extensions;
- const int from = filter.indexOf(QLatin1Char('('));
- const int to = filter.lastIndexOf(QLatin1Char(')')) - 1;
- if (from >= 0 && from < to) {
- const QStringView ref = filter.mid(from + 1, to - from);
- const QList<QStringView> exts = ref.split(QLatin1Char(' '), Qt::SkipEmptyParts);
- for (const QStringView &ref : exts)
- extensions += extractExtension(ref);
- }
-
- return extensions;
-}
-
-void QQuickPlatformFileNameFilter::update(const QString &filter)
-{
- const QStringList filters = nameFilters();
-
- const int oldIndex = m_index;
- const QString oldName = m_name;
- const QStringList oldExtensions = m_extensions;
-
- m_index = filters.indexOf(filter);
- m_name = extractName(filter);
- m_extensions = extractExtensions(filter);
-
- if (oldIndex != m_index)
- emit indexChanged(m_index);
- if (oldName != m_name)
- emit nameChanged(m_name);
- if (oldExtensions != m_extensions)
- emit extensionsChanged(m_extensions);
-}
-
-QStringList QQuickPlatformFileNameFilter::nameFilters() const
-{
- return m_options ? m_options->nameFilters() : QStringList();
-}
-
-QString QQuickPlatformFileNameFilter::nameFilter(int index) const
-{
- return m_options ? m_options->nameFilters().value(index) : QString();
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/qquickplatformfiledialog_p.h b/src/labs/platform/qquickplatformfiledialog_p.h
deleted file mode 100644
index b867f3c8..00000000
--- a/src/labs/platform/qquickplatformfiledialog_p.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMFILEDIALOG_P_H
-#define QQUICKPLATFORMFILEDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickplatformdialog_p.h"
-#include <QtCore/qurl.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPlatformFileNameFilter;
-
-class QQuickPlatformFileDialog : public QQuickPlatformDialog
-{
- Q_OBJECT
- Q_PROPERTY(FileMode fileMode READ fileMode WRITE setFileMode NOTIFY fileModeChanged FINAL)
- Q_PROPERTY(QUrl file READ file WRITE setFile NOTIFY fileChanged FINAL)
- Q_PROPERTY(QList<QUrl> files READ files WRITE setFiles NOTIFY filesChanged FINAL)
- Q_PROPERTY(QUrl currentFile READ currentFile WRITE setCurrentFile NOTIFY currentFileChanged FINAL)
- Q_PROPERTY(QList<QUrl> currentFiles READ currentFiles WRITE setCurrentFiles NOTIFY currentFilesChanged FINAL)
- Q_PROPERTY(QUrl folder READ folder WRITE setFolder NOTIFY folderChanged FINAL)
- Q_PROPERTY(QFileDialogOptions::FileDialogOptions options READ options WRITE setOptions RESET resetOptions NOTIFY optionsChanged FINAL)
- Q_PROPERTY(QStringList nameFilters READ nameFilters WRITE setNameFilters RESET resetNameFilters NOTIFY nameFiltersChanged FINAL)
- Q_PROPERTY(QQuickPlatformFileNameFilter *selectedNameFilter READ selectedNameFilter CONSTANT)
- Q_PROPERTY(QString defaultSuffix READ defaultSuffix WRITE setDefaultSuffix RESET resetDefaultSuffix NOTIFY defaultSuffixChanged FINAL)
- Q_PROPERTY(QString acceptLabel READ acceptLabel WRITE setAcceptLabel RESET resetAcceptLabel NOTIFY acceptLabelChanged FINAL)
- Q_PROPERTY(QString rejectLabel READ rejectLabel WRITE setRejectLabel RESET resetRejectLabel NOTIFY rejectLabelChanged FINAL)
- Q_FLAGS(QFileDialogOptions::FileDialogOptions)
-
-public:
- explicit QQuickPlatformFileDialog(QObject *parent = nullptr);
-
- enum FileMode {
- OpenFile,
- OpenFiles,
- SaveFile
- };
- Q_ENUM(FileMode)
-
- FileMode fileMode() const;
- void setFileMode(FileMode fileMode);
-
- QUrl file() const;
- void setFile(const QUrl &file);
-
- QList<QUrl> files() const;
- void setFiles(const QList<QUrl> &files);
-
- QUrl currentFile() const;
- void setCurrentFile(const QUrl &file);
-
- QList<QUrl> currentFiles() const;
- void setCurrentFiles(const QList<QUrl> &files);
-
- QUrl folder() const;
- void setFolder(const QUrl &folder);
-
- QFileDialogOptions::FileDialogOptions options() const;
- void setOptions(QFileDialogOptions::FileDialogOptions options);
- void resetOptions();
-
- QStringList nameFilters() const;
- void setNameFilters(const QStringList &filters);
- void resetNameFilters();
-
- QQuickPlatformFileNameFilter *selectedNameFilter() const;
-
- QString defaultSuffix() const;
- void setDefaultSuffix(const QString &suffix);
- void resetDefaultSuffix();
-
- QString acceptLabel() const;
- void setAcceptLabel(const QString &label);
- void resetAcceptLabel();
-
- QString rejectLabel() const;
- void setRejectLabel(const QString &label);
- void resetRejectLabel();
-
-Q_SIGNALS:
- void fileModeChanged();
- void fileChanged();
- void filesChanged();
- void currentFileChanged();
- void currentFilesChanged();
- void folderChanged();
- void optionsChanged();
- void nameFiltersChanged();
- void defaultSuffixChanged();
- void acceptLabelChanged();
- void rejectLabelChanged();
-
-protected:
- bool useNativeDialog() const override;
- void onCreate(QPlatformDialogHelper *dialog) override;
- void onShow(QPlatformDialogHelper *dialog) override;
- void onHide(QPlatformDialogHelper *dialog) override;
- void accept() override;
-
-private:
- QUrl addDefaultSuffix(const QUrl &file) const;
- QList<QUrl> addDefaultSuffixes(const QList<QUrl> &files) const;
-
- FileMode m_fileMode;
- QList<QUrl> m_files;
- bool m_firstShow = true;
- QSharedPointer<QFileDialogOptions> m_options;
- mutable QQuickPlatformFileNameFilter *m_selectedNameFilter;
-};
-
-class QQuickPlatformFileNameFilter : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(int index READ index WRITE setIndex NOTIFY indexChanged FINAL)
- Q_PROPERTY(QString name READ name NOTIFY nameChanged FINAL)
- Q_PROPERTY(QStringList extensions READ extensions NOTIFY extensionsChanged FINAL)
-
-public:
- explicit QQuickPlatformFileNameFilter(QObject *parent = nullptr);
-
- int index() const;
- void setIndex(int index);
-
- QString name() const;
- QStringList extensions() const;
-
- QSharedPointer<QFileDialogOptions> options() const;
- void setOptions(const QSharedPointer<QFileDialogOptions> &options);
-
- void update(const QString &filter);
-
-Q_SIGNALS:
- void indexChanged(int index);
- void nameChanged(const QString &name);
- void extensionsChanged(const QStringList &extensions);
-
-private:
- QStringList nameFilters() const;
- QString nameFilter(int index) const;
-
- int m_index;
- QString m_name;
- QStringList m_extensions;
- QSharedPointer<QFileDialogOptions> m_options;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformFileDialog)
-
-#endif // QQUICKPLATFORMFILEDIALOG_P_H
diff --git a/src/labs/platform/qquickplatformfolderdialog.cpp b/src/labs/platform/qquickplatformfolderdialog.cpp
deleted file mode 100644
index a28dc828..00000000
--- a/src/labs/platform/qquickplatformfolderdialog.cpp
+++ /dev/null
@@ -1,280 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformfolderdialog_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype FolderDialog
- \inherits Dialog
-//! \instantiates QQuickPlatformFolderDialog
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief A native folder dialog.
-
- The FolderDialog type provides a QML API for native platform folder dialogs.
-
- \image qtlabsplatform-folderdialog-gtk.png
-
- To show a folder dialog, construct an instance of FolderDialog, set the
- desired properties, and call \l {Dialog::}{open()}. The \l currentFolder
- property can be used to determine the currently selected folder in the
- dialog. The \l folder property is updated only after the final selection
- has been made by accepting the dialog.
-
- \code
- MenuItem {
- text: "Open..."
- onTriggered: folderDialog.open()
- }
-
- FolderDialog {
- id: folderDialog
- currentFolder: viewer.folder
- folder: StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0]
- }
-
- MyViewer {
- id: viewer
- folder: folderDialog.folder
- }
- \endcode
-
- \section2 Availability
-
- A native platform folder dialog is currently available on the following platforms:
-
- \list
- \li iOS
- \li Linux (when running with the GTK+ platform theme)
- \li macOS
- \li Windows
- \endlist
-
- \input includes/widgets.qdocinc 1
-
- \labs
-
- \sa FileDialog, StandardPaths
-*/
-
-QQuickPlatformFolderDialog::QQuickPlatformFolderDialog(QObject *parent)
- : QQuickPlatformDialog(QPlatformTheme::FileDialog, parent),
- m_options(QFileDialogOptions::create())
-{
- m_options->setFileMode(QFileDialogOptions::Directory);
- m_options->setAcceptMode(QFileDialogOptions::AcceptOpen);
-}
-
-/*!
- \qmlproperty url Qt.labs.platform::FolderDialog::folder
-
- This property holds the final accepted folder.
-
- Unlike the \l currentFolder property, the \c folder property is not updated
- while the user is selecting folders in the dialog, but only after the final
- selection has been made. That is, when the user has clicked \uicontrol OK
- to accept a folder. Alternatively, the \l {Dialog::}{accepted()} signal
- can be handled to get the final selection.
-
- \sa currentFolder, {Dialog::}{accepted()}
-*/
-QUrl QQuickPlatformFolderDialog::folder() const
-{
- return m_folder;
-}
-
-void QQuickPlatformFolderDialog::setFolder(const QUrl &folder)
-{
- if (m_folder == folder)
- return;
-
- m_folder = folder;
- setCurrentFolder(folder);
- emit folderChanged();
-}
-
-/*!
- \qmlproperty url Qt.labs.platform::FolderDialog::currentFolder
-
- This property holds the currently selected folder in the dialog.
-
- Unlike the \l folder property, the \c currentFolder property is updated
- while the user is selecting folders in the dialog, even before the final
- selection has been made.
-
- \sa folder
-*/
-QUrl QQuickPlatformFolderDialog::currentFolder() const
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
- return fileDialog->directory();
- return m_options->initialDirectory();
-}
-
-void QQuickPlatformFolderDialog::setCurrentFolder(const QUrl &folder)
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
- fileDialog->setDirectory(folder);
- m_options->setInitialDirectory(folder);
-}
-
-/*!
- \qmlproperty flags Qt.labs.platform::FolderDialog::options
-
- This property holds the various options that affect the look and feel of the dialog.
-
- By default, all options are disabled.
-
- Options should be set before showing the dialog. Setting them while the dialog is
- visible is not guaranteed to have an immediate effect on the dialog (depending on
- the option and on the platform).
-
- Available options:
- \value FolderDialog.ShowDirsOnly Only show directories in the folder dialog. By default both folders and directories are shown.
- \value FolderDialog.DontResolveSymlinks Don't resolve symlinks in the folder dialog. By default symlinks are resolved.
- \value FolderDialog.ReadOnly Indicates that the dialog doesn't allow creating directories.
-*/
-QFileDialogOptions::FileDialogOptions QQuickPlatformFolderDialog::options() const
-{
- return m_options->options();
-}
-
-void QQuickPlatformFolderDialog::setOptions(QFileDialogOptions::FileDialogOptions options)
-{
- if (options == m_options->options())
- return;
-
- m_options->setOptions(options);
- emit optionsChanged();
-}
-
-void QQuickPlatformFolderDialog::resetOptions()
-{
- setOptions({});
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::FolderDialog::acceptLabel
-
- This property holds the label text shown on the button that accepts the dialog.
-
- When set to an empty string, the default label of the underlying platform is used.
- The default label is typically \uicontrol Open.
-
- The default value is an empty string.
-
- \sa rejectLabel
-*/
-QString QQuickPlatformFolderDialog::acceptLabel() const
-{
- return m_options->labelText(QFileDialogOptions::Accept);
-}
-
-void QQuickPlatformFolderDialog::setAcceptLabel(const QString &label)
-{
- if (label == m_options->labelText(QFileDialogOptions::Accept))
- return;
-
- m_options->setLabelText(QFileDialogOptions::Accept, label);
- emit acceptLabelChanged();
-}
-
-void QQuickPlatformFolderDialog::resetAcceptLabel()
-{
- setAcceptLabel(QString());
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::FolderDialog::rejectLabel
-
- This property holds the label text shown on the button that rejects the dialog.
-
- When set to an empty string, the default label of the underlying platform is used.
- The default label is typically \uicontrol Cancel.
-
- The default value is an empty string.
-
- \sa acceptLabel
-*/
-QString QQuickPlatformFolderDialog::rejectLabel() const
-{
- return m_options->labelText(QFileDialogOptions::Reject);
-}
-
-void QQuickPlatformFolderDialog::setRejectLabel(const QString &label)
-{
- if (label == m_options->labelText(QFileDialogOptions::Reject))
- return;
-
- m_options->setLabelText(QFileDialogOptions::Reject, label);
- emit rejectLabelChanged();
-}
-
-void QQuickPlatformFolderDialog::resetRejectLabel()
-{
- setRejectLabel(QString());
-}
-
-bool QQuickPlatformFolderDialog::useNativeDialog() const
-{
- return QQuickPlatformDialog::useNativeDialog()
- && !m_options->testOption(QFileDialogOptions::DontUseNativeDialog);
-}
-
-void QQuickPlatformFolderDialog::onCreate(QPlatformDialogHelper *dialog)
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
- connect(fileDialog, &QPlatformFileDialogHelper::directoryEntered, this, &QQuickPlatformFolderDialog::currentFolderChanged);
- fileDialog->setOptions(m_options);
- }
-}
-
-void QQuickPlatformFolderDialog::onShow(QPlatformDialogHelper *dialog)
-{
- m_options->setWindowTitle(title());
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog))
- fileDialog->setOptions(m_options);
-}
-
-void QQuickPlatformFolderDialog::accept()
-{
- setFolder(currentFolder());
- QQuickPlatformDialog::accept();
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/qquickplatformfolderdialog_p.h b/src/labs/platform/qquickplatformfolderdialog_p.h
deleted file mode 100644
index 69878cb9..00000000
--- a/src/labs/platform/qquickplatformfolderdialog_p.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMFOLDERDIALOG_P_H
-#define QQUICKPLATFORMFOLDERDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This folder is not part of the Qt API. It exists purely as an
-// implementation detail. This header folder may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickplatformdialog_p.h"
-#include <QtCore/qurl.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPlatformFolderDialog : public QQuickPlatformDialog
-{
- Q_OBJECT
- Q_PROPERTY(QUrl folder READ folder WRITE setFolder NOTIFY folderChanged FINAL)
- Q_PROPERTY(QUrl currentFolder READ currentFolder WRITE setCurrentFolder NOTIFY currentFolderChanged FINAL)
- Q_PROPERTY(QFileDialogOptions::FileDialogOptions options READ options WRITE setOptions RESET resetOptions NOTIFY optionsChanged FINAL)
- Q_PROPERTY(QString acceptLabel READ acceptLabel WRITE setAcceptLabel RESET resetAcceptLabel NOTIFY acceptLabelChanged FINAL)
- Q_PROPERTY(QString rejectLabel READ rejectLabel WRITE setRejectLabel RESET resetRejectLabel NOTIFY rejectLabelChanged FINAL)
- Q_FLAGS(QFileDialogOptions::FileDialogOptions)
-
-public:
- explicit QQuickPlatformFolderDialog(QObject *parent = nullptr);
-
- QUrl folder() const;
- void setFolder(const QUrl &folder);
-
- QUrl currentFolder() const;
- void setCurrentFolder(const QUrl &folder);
-
- QFileDialogOptions::FileDialogOptions options() const;
- void setOptions(QFileDialogOptions::FileDialogOptions options);
- void resetOptions();
-
- QString acceptLabel() const;
- void setAcceptLabel(const QString &label);
- void resetAcceptLabel();
-
- QString rejectLabel() const;
- void setRejectLabel(const QString &label);
- void resetRejectLabel();
-
-Q_SIGNALS:
- void folderChanged();
- void currentFolderChanged();
- void optionsChanged();
- void acceptLabelChanged();
- void rejectLabelChanged();
-
-protected:
- bool useNativeDialog() const override;
- void onCreate(QPlatformDialogHelper *dialog) override;
- void onShow(QPlatformDialogHelper *dialog) override;
- void accept() override;
-
-private:
- QUrl m_folder;
- QSharedPointer<QFileDialogOptions> m_options;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformFolderDialog)
-
-#endif // QQUICKPLATFORMFOLDERDIALOG_P_H
diff --git a/src/labs/platform/qquickplatformfontdialog.cpp b/src/labs/platform/qquickplatformfontdialog.cpp
deleted file mode 100644
index f3eca2c3..00000000
--- a/src/labs/platform/qquickplatformfontdialog.cpp
+++ /dev/null
@@ -1,208 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformfontdialog_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype FontDialog
- \inherits Dialog
-//! \instantiates QQuickPlatformFontDialog
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief A native font dialog.
-
- The FontDialog type provides a QML API for native platform font dialogs.
-
- \image qtlabsplatform-fontdialog-gtk.png
-
- To show a font dialog, construct an instance of FontDialog, set the
- desired properties, and call \l {Dialog::}{open()}. The \l currentFont
- property can be used to determine the currently selected font in the
- dialog. The \l font property is updated only after the final selection
- has been made by accepting the dialog.
-
- \code
- MenuItem {
- text: "Font"
- onTriggered: fontDialog.open()
- }
-
- FontDialog {
- id: fontDialog
- currentFont.family: document.font
- }
-
- MyDocument {
- id: document
- font: fontDialog.font
- }
- \endcode
-
- \section2 Availability
-
- A native platform font dialog is currently available on the following platforms:
-
- \list
- \li macOS
- \li Linux (when running with the GTK+ platform theme)
- \endlist
-
- \input includes/widgets.qdocinc 1
-
- \labs
-*/
-
-QQuickPlatformFontDialog::QQuickPlatformFontDialog(QObject *parent)
- : QQuickPlatformDialog(QPlatformTheme::FontDialog, parent),
- m_options(QFontDialogOptions::create())
-{
-}
-
-/*!
- \qmlproperty font Qt.labs.platform::FontDialog::font
-
- This property holds the final accepted font.
-
- Unlike the \l currentFont property, the \c font property is not updated
- while the user is selecting fonts in the dialog, but only after the final
- selection has been made. That is, when the user has clicked \uicontrol OK
- to accept a font. Alternatively, the \l {Dialog::}{accepted()} signal
- can be handled to get the final selection.
-
- \sa currentFont, {Dialog::}{accepted()}
-*/
-QFont QQuickPlatformFontDialog::font() const
-{
- return m_font;
-}
-
-void QQuickPlatformFontDialog::setFont(const QFont &font)
-{
- if (m_font == font)
- return;
-
- m_font = font;
- setCurrentFont(font);
- emit fontChanged();
-}
-
-/*!
- \qmlproperty font Qt.labs.platform::FontDialog::currentFont
-
- This property holds the currently selected font in the dialog.
-
- Unlike the \l font property, the \c currentFont property is updated
- while the user is selecting fonts in the dialog, even before the final
- selection has been made.
-
- \sa font
-*/
-QFont QQuickPlatformFontDialog::currentFont() const
-{
- if (QPlatformFontDialogHelper *fontDialog = qobject_cast<QPlatformFontDialogHelper *>(handle()))
- return fontDialog->currentFont();
- return m_currentFont;
-}
-
-void QQuickPlatformFontDialog::setCurrentFont(const QFont &font)
-{
- if (QPlatformFontDialogHelper *fontDialog = qobject_cast<QPlatformFontDialogHelper *>(handle()))
- fontDialog->setCurrentFont(font);
- m_currentFont = font;
-}
-
-/*!
- \qmlproperty flags Qt.labs.platform::FontDialog::options
-
- This property holds the various options that affect the look and feel of the dialog.
-
- By default, all options are disabled.
-
- Options should be set before showing the dialog. Setting them while the dialog is
- visible is not guaranteed to have an immediate effect on the dialog (depending on
- the option and on the platform).
-
- Available options:
- \value FontDialog.ScalableFonts Show scalable fonts.
- \value FontDialog.NonScalableFonts Show non-scalable fonts.
- \value FontDialog.MonospacedFonts Show monospaced fonts.
- \value FontDialog.ProportionalFonts Show proportional fonts.
- \value FontDialog.NoButtons Don't display \uicontrol OK and \uicontrol Cancel buttons (useful for "live dialogs").
-*/
-QFontDialogOptions::FontDialogOptions QQuickPlatformFontDialog::options() const
-{
- return m_options->options();
-}
-
-void QQuickPlatformFontDialog::setOptions(QFontDialogOptions::FontDialogOptions options)
-{
- if (options == m_options->options())
- return;
-
- m_options->setOptions(options);
- emit optionsChanged();
-}
-
-bool QQuickPlatformFontDialog::useNativeDialog() const
-{
- return QQuickPlatformDialog::useNativeDialog()
- && !m_options->testOption(QFontDialogOptions::DontUseNativeDialog);
-}
-
-void QQuickPlatformFontDialog::onCreate(QPlatformDialogHelper *dialog)
-{
- if (QPlatformFontDialogHelper *fontDialog = qobject_cast<QPlatformFontDialogHelper *>(dialog)) {
- connect(fontDialog, &QPlatformFontDialogHelper::currentFontChanged, this, &QQuickPlatformFontDialog::currentFontChanged);
- fontDialog->setOptions(m_options);
- }
-}
-
-void QQuickPlatformFontDialog::onShow(QPlatformDialogHelper *dialog)
-{
- m_options->setWindowTitle(title());
- if (QPlatformFontDialogHelper *fontDialog = qobject_cast<QPlatformFontDialogHelper *>(dialog))
- fontDialog->setOptions(m_options);
-}
-
-void QQuickPlatformFontDialog::accept()
-{
- setFont(currentFont());
- QQuickPlatformDialog::accept();
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/qquickplatformfontdialog_p.h b/src/labs/platform/qquickplatformfontdialog_p.h
deleted file mode 100644
index e7946477..00000000
--- a/src/labs/platform/qquickplatformfontdialog_p.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMFONTDIALOG_P_H
-#define QQUICKPLATFORMFONTDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickplatformdialog_p.h"
-#include <QtGui/qfont.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPlatformFontDialog : public QQuickPlatformDialog
-{
- Q_OBJECT
- Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged FINAL)
- Q_PROPERTY(QFont currentFont READ currentFont WRITE setCurrentFont NOTIFY currentFontChanged FINAL)
- Q_PROPERTY(QFontDialogOptions::FontDialogOptions options READ options WRITE setOptions NOTIFY optionsChanged FINAL)
- Q_FLAGS(QFontDialogOptions::FontDialogOptions)
-
-public:
- explicit QQuickPlatformFontDialog(QObject *parent = nullptr);
-
- QFont font() const;
- void setFont(const QFont &font);
-
- QFont currentFont() const;
- void setCurrentFont(const QFont &font);
-
- QFontDialogOptions::FontDialogOptions options() const;
- void setOptions(QFontDialogOptions::FontDialogOptions options);
-
-Q_SIGNALS:
- void fontChanged();
- void currentFontChanged();
- void optionsChanged();
-
-protected:
- bool useNativeDialog() const override;
- void onCreate(QPlatformDialogHelper *dialog) override;
- void onShow(QPlatformDialogHelper *dialog) override;
- void accept() override;
-
-private:
- QFont m_font;
- QFont m_currentFont; // TODO: QFontDialogOptions::initialFont
- QSharedPointer<QFontDialogOptions> m_options;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformFontDialog)
-
-#endif // QQUICKPLATFORMFONTDIALOG_P_H
diff --git a/src/labs/platform/qquickplatformicon.cpp b/src/labs/platform/qquickplatformicon.cpp
deleted file mode 100644
index 7096ff8a..00000000
--- a/src/labs/platform/qquickplatformicon.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformicon_p.h"
-
-QT_BEGIN_NAMESPACE
-
-QUrl QQuickPlatformIcon::source() const
-{
- return m_source;
-}
-
-void QQuickPlatformIcon::setSource(const QUrl& source)
-{
- m_source = source;
-}
-
-QString QQuickPlatformIcon::name() const
-{
- return m_name;
-}
-
-void QQuickPlatformIcon::setName(const QString& name)
-{
- m_name = name;
-}
-
-bool QQuickPlatformIcon::isMask() const
-{
- return m_mask;
-}
-
-void QQuickPlatformIcon::setMask(bool mask)
-{
- m_mask = mask;
-}
-
-bool QQuickPlatformIcon::operator==(const QQuickPlatformIcon &other) const
-{
- return m_source == other.m_source && m_name == other.m_name && m_mask == other.m_mask;
-}
-
-bool QQuickPlatformIcon::operator!=(const QQuickPlatformIcon &other) const
-{
- return !(*this == other);
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/qquickplatformicon_p.h b/src/labs/platform/qquickplatformicon_p.h
deleted file mode 100644
index 9add9d6e..00000000
--- a/src/labs/platform/qquickplatformicon_p.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMICON_P_H
-#define QQUICKPLATFORMICON_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qurl.h>
-#include <QtCore/qstring.h>
-
-QT_BEGIN_NAMESPACE
-
-class QObject;
-
-class QQuickPlatformIcon
-{
- Q_GADGET
- Q_PROPERTY(QUrl source READ source WRITE setSource)
- Q_PROPERTY(QString name READ name WRITE setName)
- Q_PROPERTY(bool mask READ isMask WRITE setMask)
-
-public:
- QUrl source() const;
- void setSource(const QUrl &source);
-
- QString name() const;
- void setName(const QString &name);
-
- bool isMask() const;
- void setMask(bool mask);
-
- bool operator==(const QQuickPlatformIcon &other) const;
- bool operator!=(const QQuickPlatformIcon &other) const;
-
-private:
- bool m_mask = false;
- QUrl m_source;
- QString m_name;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPLATFORMICON_P_H
diff --git a/src/labs/platform/qquickplatformiconloader.cpp b/src/labs/platform/qquickplatformiconloader.cpp
deleted file mode 100644
index c7b699b2..00000000
--- a/src/labs/platform/qquickplatformiconloader.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformiconloader_p.h"
-
-#include <QtCore/qobject.h>
-#include <QtCore/qmetaobject.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickPlatformIconLoader::QQuickPlatformIconLoader(int slot, QObject *parent)
- : m_parent(parent),
- m_slot(slot),
- m_enabled(false)
-{
- Q_ASSERT(slot != -1 && parent);
-}
-
-bool QQuickPlatformIconLoader::isEnabled() const
-{
- return m_enabled;
-}
-
-void QQuickPlatformIconLoader::setEnabled(bool enabled)
-{
- m_enabled = enabled;
- if (m_enabled)
- loadIcon();
-}
-
-QIcon QQuickPlatformIconLoader::toQIcon() const
-{
- QIcon fallback = QPixmap::fromImage(image());
- QIcon icon = QIcon::fromTheme(m_icon.name(), fallback);
- icon.setIsMask(m_icon.isMask());
- return icon;
-}
-
-QQuickPlatformIcon QQuickPlatformIconLoader::icon() const
-{
- return m_icon;
-}
-
-void QQuickPlatformIconLoader::setIcon(const QQuickPlatformIcon& icon)
-{
- m_icon = icon;
- if (m_enabled)
- loadIcon();
-}
-
-void QQuickPlatformIconLoader::loadIcon()
-{
- if (m_icon.source().isEmpty()) {
- clear(m_parent);
- } else {
- load(qmlEngine(m_parent), m_icon.source());
- if (m_slot != -1 && isLoading()) {
- connectFinished(m_parent, m_slot);
- m_slot = -1;
- }
- }
-
- if (!isLoading())
- m_parent->metaObject()->method(m_slot).invoke(m_parent);
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/qquickplatformiconloader_p.h b/src/labs/platform/qquickplatformiconloader_p.h
deleted file mode 100644
index d284a513..00000000
--- a/src/labs/platform/qquickplatformiconloader_p.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMICONLOADER_P_H
-#define QQUICKPLATFORMICONLOADER_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qurl.h>
-#include <QtCore/qstring.h>
-#include <QtGui/qicon.h>
-#include <QtQuick/private/qquickpixmapcache_p.h>
-
-#include "qquickplatformicon_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QObject;
-
-class QQuickPlatformIconLoader : public QQuickPixmap
-{
-public:
- QQuickPlatformIconLoader(int slot, QObject *parent);
-
- bool isEnabled() const;
- void setEnabled(bool enabled);
-
- QIcon toQIcon() const;
-
- QQuickPlatformIcon icon() const;
- void setIcon(const QQuickPlatformIcon &icon);
-
-private:
- void loadIcon();
-
- QObject *m_parent;
- int m_slot;
- bool m_enabled;
- QQuickPlatformIcon m_icon;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPLATFORMICONLOADER_P_H
diff --git a/src/labs/platform/qquickplatformmenu.cpp b/src/labs/platform/qquickplatformmenu.cpp
deleted file mode 100644
index 16dffd5e..00000000
--- a/src/labs/platform/qquickplatformmenu.cpp
+++ /dev/null
@@ -1,895 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformmenu_p.h"
-#include "qquickplatformmenubar_p.h"
-#include "qquickplatformmenuitem_p.h"
-#include "qquickplatformiconloader_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtGui/qicon.h>
-#include <QtGui/qcursor.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtGui/private/qhighdpiscaling_p.h>
-#include <QtQml/private/qqmlengine_p.h>
-#include <QtQml/private/qv4scopedvalue_p.h>
-#include <QtQml/private/qv4qobjectwrapper_p.h>
-#include <QtQuick/qquickrendercontrol.h>
-#include <QtQuick/qquickwindow.h>
-#include <QtQuick/qquickitem.h>
-
-#include "widgets/qwidgetplatform_p.h"
-
-#if QT_CONFIG(systemtrayicon)
-#include "qquickplatformsystemtrayicon_p.h"
-#endif
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Menu
- \inherits QtObject
-//! \instantiates QQuickPlatformMenu
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief A native menu.
-
- The Menu type provides a QML API for native platform menu popups.
-
- \image qtlabsplatform-menu.png
-
- Menu can be used in a \l MenuBar, or as a stand-alone context menu.
- The following example shows how to open a context menu on right mouse
- click:
-
- \code
- MouseArea {
- anchors.fill: parent
- acceptedButtons: Qt.RightButton
- onClicked: zoomMenu.open()
- }
-
- Menu {
- id: zoomMenu
-
- MenuItem {
- text: qsTr("Zoom In")
- shortcut: StandardKey.ZoomIn
- onTriggered: zoomIn()
- }
-
- MenuItem {
- text: qsTr("Zoom Out")
- shortcut: StandardKey.ZoomOut
- onTriggered: zoomOut()
- }
- }
- \endcode
-
- \section2 Submenus
-
- To create submenus, declare a Menu as a child of another Menu:
-
- \qml
- Menu {
- title: qsTr("Edit")
-
- Menu {
- title: qsTr("Advanced")
-
- MenuItem {
- text: qsTr("Auto-indent Selection")
- onTriggered: autoIndentSelection()
- }
-
- MenuItem {
- text: qsTr("Rewrap Paragraph")
- onTriggered: rewrapParagraph()
- }
- }
- }
- \endqml
-
- \section2 Dynamically Generating Menu Items
-
- It is possible to dynamically generate menu items. One of the easiest ways
- to do so is with \l Instantiator. For example, to implement a
- "Recent Files" submenu, where the items are based on a list of files stored
- in settings, the following code could be used:
-
- \qml
- Menu {
- title: qsTr("File")
-
- Menu {
- id: recentFilesSubMenu
- title: qsTr("Recent Files")
- enabled: recentFilesInstantiator.count > 0
-
- Instantiator {
- id: recentFilesInstantiator
- model: settings.recentFiles
- delegate: MenuItem {
- text: settings.displayableFilePath(modelData)
- onTriggered: loadFile(modelData)
- }
-
- onObjectAdded: recentFilesSubMenu.insertItem(index, object)
- onObjectRemoved: recentFilesSubMenu.removeItem(object)
- }
-
- MenuSeparator {}
-
- MenuItem {
- text: qsTr("Clear Recent Files")
- onTriggered: settings.clearRecentFiles()
- }
- }
- }
- \endqml
-
- \section2 Availability
-
- A native platform menu is currently available on the following platforms:
-
- \list
- \li macOS
- \li iOS
- \li Android
- \li Linux (only available as a stand-alone context menu when running with the GTK+ platform theme)
- \endlist
-
- \input includes/widgets.qdocinc 1
-
- \labs
-
- \sa MenuItem, MenuSeparator, MenuBar
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::Menu::aboutToShow()
-
- This signal is emitted when the menu is about to be shown to the user.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::Menu::aboutToHide()
-
- This signal is emitted when the menu is about to be hidden from the user.
-*/
-
-Q_DECLARE_LOGGING_CATEGORY(qtLabsPlatformMenus)
-
-QQuickPlatformMenu::QQuickPlatformMenu(QObject *parent)
- : QObject(parent),
- m_complete(false),
- m_enabled(true),
- m_visible(true),
- m_minimumWidth(-1),
- m_type(QPlatformMenu::DefaultMenu),
- m_menuBar(nullptr),
- m_parentMenu(nullptr),
- m_systemTrayIcon(nullptr),
- m_menuItem(nullptr),
- m_iconLoader(nullptr),
- m_handle(nullptr)
-{
-}
-
-QQuickPlatformMenu::~QQuickPlatformMenu()
-{
- if (m_menuBar)
- m_menuBar->removeMenu(this);
- if (m_parentMenu)
- m_parentMenu->removeMenu(this);
-
- unparentSubmenus();
-
- delete m_iconLoader;
- m_iconLoader = nullptr;
- delete m_handle;
- m_handle = nullptr;
-}
-
-void QQuickPlatformMenu::unparentSubmenus()
-{
- for (QQuickPlatformMenuItem *item : qAsConst(m_items)) {
- if (QQuickPlatformMenu *subMenu = item->subMenu())
- subMenu->setParentMenu(nullptr);
- item->setMenu(nullptr);
- }
-}
-
-QPlatformMenu *QQuickPlatformMenu::handle() const
-{
- return m_handle;
-}
-
-QPlatformMenu * QQuickPlatformMenu::create()
-{
- if (!m_handle) {
- if (m_menuBar && m_menuBar->handle())
- m_handle = m_menuBar->handle()->createMenu();
- else if (m_parentMenu && m_parentMenu->handle())
- m_handle = m_parentMenu->handle()->createSubMenu();
-#if QT_CONFIG(systemtrayicon)
- else if (m_systemTrayIcon && m_systemTrayIcon->handle())
- m_handle = m_systemTrayIcon->handle()->createMenu();
-#endif
-
- // TODO: implement ^
- // - QCocoaMenuBar::createMenu()
- // - QCocoaMenu::createSubMenu()
- // - QCocoaSystemTrayIcon::createMenu()
- if (!m_handle)
- m_handle = QGuiApplicationPrivate::platformTheme()->createPlatformMenu();
-
- if (!m_handle)
- m_handle = QWidgetPlatform::createMenu();
-
- qCDebug(qtLabsPlatformMenus) << "Menu ->" << m_handle;
-
- if (m_handle) {
- connect(m_handle, &QPlatformMenu::aboutToShow, this, &QQuickPlatformMenu::aboutToShow);
- connect(m_handle, &QPlatformMenu::aboutToHide, this, &QQuickPlatformMenu::aboutToHide);
-
- for (QQuickPlatformMenuItem *item : qAsConst(m_items))
- m_handle->insertMenuItem(item->create(), nullptr);
-
- if (m_menuItem) {
- if (QPlatformMenuItem *handle = m_menuItem->create())
- handle->setMenu(m_handle);
- }
- }
- }
- return m_handle;
-}
-
-void QQuickPlatformMenu::destroy()
-{
- if (!m_handle)
- return;
-
- // Ensure that all submenus are unparented before we are destroyed,
- // so that they don't try to access a destroyed menu.
- unparentSubmenus();
-
- delete m_handle;
- m_handle = nullptr;
-}
-
-void QQuickPlatformMenu::sync()
-{
- if (!m_complete || !create())
- return;
-
- m_handle->setText(m_title);
- m_handle->setEnabled(m_enabled);
- m_handle->setVisible(m_visible);
- m_handle->setMinimumWidth(m_minimumWidth);
- m_handle->setMenuType(m_type);
- m_handle->setFont(m_font);
-
- if (m_menuBar && m_menuBar->handle())
- m_menuBar->handle()->syncMenu(m_handle);
-#if QT_CONFIG(systemtrayicon)
- else if (m_systemTrayIcon && m_systemTrayIcon->handle())
- m_systemTrayIcon->handle()->updateMenu(m_handle);
-#endif
-
- for (QQuickPlatformMenuItem *item : qAsConst(m_items))
- item->sync();
-}
-
-/*!
- \qmldefault
- \qmlproperty list<Object> Qt.labs.platform::Menu::data
-
- This default property holds the list of all objects declared as children of
- the menu. The data property includes objects that are not \l MenuItem instances,
- such as \l Timer and \l QtObject.
-
- \sa items
-*/
-QQmlListProperty<QObject> QQuickPlatformMenu::data()
-{
- return QQmlListProperty<QObject>(this, nullptr, data_append, data_count, data_at, data_clear);
-}
-
-/*!
- \qmlproperty list<MenuItem> Qt.labs.platform::Menu::items
-
- This property holds the list of items in the menu.
-*/
-QQmlListProperty<QQuickPlatformMenuItem> QQuickPlatformMenu::items()
-{
- return QQmlListProperty<QQuickPlatformMenuItem>(this, nullptr, items_append, items_count, items_at, items_clear);
-}
-
-/*!
- \readonly
- \qmlproperty MenuBar Qt.labs.platform::Menu::menuBar
-
- This property holds the menubar that the menu belongs to, or \c null if the
- menu is not in a menubar.
-*/
-QQuickPlatformMenuBar *QQuickPlatformMenu::menuBar() const
-{
- return m_menuBar;
-}
-
-void QQuickPlatformMenu::setMenuBar(QQuickPlatformMenuBar *menuBar)
-{
- if (m_menuBar == menuBar)
- return;
-
- m_menuBar = menuBar;
- destroy();
- emit menuBarChanged();
-}
-
-/*!
- \readonly
- \qmlproperty Menu Qt.labs.platform::Menu::parentMenu
-
- This property holds the parent menu that the menu belongs to, or \c null if the
- menu is not a sub-menu.
-*/
-QQuickPlatformMenu *QQuickPlatformMenu::parentMenu() const
-{
- return m_parentMenu;
-}
-
-void QQuickPlatformMenu::setParentMenu(QQuickPlatformMenu *menu)
-{
- if (m_parentMenu == menu)
- return;
-
- m_parentMenu = menu;
- destroy();
- emit parentMenuChanged();
-}
-
-/*!
- \readonly
- \qmlproperty SystemTrayIcon Qt.labs.platform::Menu::systemTrayIcon
-
- This property holds the system tray icon that the menu belongs to, or \c null
- if the menu is not in a system tray icon.
-*/
-QQuickPlatformSystemTrayIcon *QQuickPlatformMenu::systemTrayIcon() const
-{
- return m_systemTrayIcon;
-}
-
-void QQuickPlatformMenu::setSystemTrayIcon(QQuickPlatformSystemTrayIcon *icon)
-{
- if (m_systemTrayIcon == icon)
- return;
-
- m_systemTrayIcon = icon;
- destroy();
- emit systemTrayIconChanged();
-}
-
-/*!
- \readonly
- \qmlproperty MenuItem Qt.labs.platform::Menu::menuItem
-
- This property holds the item that presents the menu (in a parent menu).
-*/
-QQuickPlatformMenuItem *QQuickPlatformMenu::menuItem() const
-{
- if (!m_menuItem) {
- QQuickPlatformMenu *that = const_cast<QQuickPlatformMenu *>(this);
- m_menuItem = new QQuickPlatformMenuItem(that);
- m_menuItem->setSubMenu(that);
- m_menuItem->setText(m_title);
- m_menuItem->setIcon(icon());
- m_menuItem->setVisible(m_visible);
- m_menuItem->setEnabled(m_enabled);
- m_menuItem->componentComplete();
- }
- return m_menuItem;
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::Menu::enabled
-
- This property holds whether the menu is enabled. The default value is \c true.
-*/
-bool QQuickPlatformMenu::isEnabled() const
-{
- return m_enabled;
-}
-
-void QQuickPlatformMenu::setEnabled(bool enabled)
-{
- if (m_enabled == enabled)
- return;
-
- if (m_menuItem)
- m_menuItem->setEnabled(enabled);
-
- m_enabled = enabled;
- sync();
- emit enabledChanged();
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::Menu::visible
-
- This property holds whether the menu is visible. The default value is \c true.
-*/
-bool QQuickPlatformMenu::isVisible() const
-{
- return m_visible;
-}
-
-void QQuickPlatformMenu::setVisible(bool visible)
-{
- if (m_visible == visible)
- return;
-
- if (m_menuItem)
- m_menuItem->setVisible(visible);
-
- m_visible = visible;
- sync();
- emit visibleChanged();
-}
-
-/*!
- \qmlproperty int Qt.labs.platform::Menu::minimumWidth
-
- This property holds the minimum width of the menu. The default value is \c -1 (no minimum width).
-*/
-int QQuickPlatformMenu::minimumWidth() const
-{
- return m_minimumWidth;
-}
-
-void QQuickPlatformMenu::setMinimumWidth(int width)
-{
- if (m_minimumWidth == width)
- return;
-
- m_minimumWidth = width;
- sync();
- emit minimumWidthChanged();
-}
-
-/*!
- \qmlproperty enumeration Qt.labs.platform::Menu::type
-
- This property holds the type of the menu.
-
- Available values:
- \value Menu.DefaultMenu A normal menu (default).
- \value Menu.EditMenu An edit menu with pre-populated cut, copy and paste items.
-*/
-QPlatformMenu::MenuType QQuickPlatformMenu::type() const
-{
- return m_type;
-}
-
-void QQuickPlatformMenu::setType(QPlatformMenu::MenuType type)
-{
- if (m_type == type)
- return;
-
- m_type = type;
- sync();
- emit typeChanged();
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::Menu::title
-
- This property holds the menu's title.
-*/
-QString QQuickPlatformMenu::title() const
-{
- return m_title;
-}
-
-void QQuickPlatformMenu::setTitle(const QString &title)
-{
- if (m_title == title)
- return;
-
- if (m_menuItem)
- m_menuItem->setText(title);
-
- m_title = title;
- sync();
- emit titleChanged();
-}
-
-/*!
- \qmlproperty font Qt.labs.platform::Menu::font
-
- This property holds the menu's font.
-
- \sa text
-*/
-QFont QQuickPlatformMenu::font() const
-{
- return m_font;
-}
-
-void QQuickPlatformMenu::setFont(const QFont& font)
-{
- if (m_font == font)
- return;
-
- m_font = font;
- sync();
- emit fontChanged();
-}
-
-/*!
- \since Qt.labs.platform 1.1 (Qt 5.12)
- \qmlproperty url Qt.labs.platform::Menu::icon.source
- \qmlproperty string Qt.labs.platform::Menu::icon.name
- \qmlproperty bool Qt.labs.platform::Menu::icon.mask
-
- This property holds the menu item's icon.
-*/
-QQuickPlatformIcon QQuickPlatformMenu::icon() const
-{
- if (!m_iconLoader)
- return QQuickPlatformIcon();
-
- return iconLoader()->icon();
-}
-
-void QQuickPlatformMenu::setIcon(const QQuickPlatformIcon &icon)
-{
- if (iconLoader()->icon() == icon)
- return;
-
- if (m_menuItem)
- m_menuItem->setIcon(icon);
-
- iconLoader()->setIcon(icon);
- emit iconChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Menu::addItem(MenuItem item)
-
- Adds an \a item to the end of the menu.
-*/
-void QQuickPlatformMenu::addItem(QQuickPlatformMenuItem *item)
-{
- insertItem(m_items.count(), item);
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Menu::insertItem(int index, MenuItem item)
-
- Inserts an \a item at the specified \a index in the menu.
-*/
-void QQuickPlatformMenu::insertItem(int index, QQuickPlatformMenuItem *item)
-{
- if (!item || m_items.contains(item))
- return;
-
- m_items.insert(index, item);
- m_data.append(item);
- item->setMenu(this);
- if (m_handle && item->create()) {
- QQuickPlatformMenuItem *before = m_items.value(index + 1);
- m_handle->insertMenuItem(item->handle(), before ? before->create() : nullptr);
- }
- sync();
- emit itemsChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Menu::removeItem(MenuItem item)
-
- Removes an \a item from the menu.
-*/
-void QQuickPlatformMenu::removeItem(QQuickPlatformMenuItem *item)
-{
- if (!item || !m_items.removeOne(item))
- return;
-
- m_data.removeOne(item);
- if (m_handle)
- m_handle->removeMenuItem(item->handle());
- item->setMenu(nullptr);
- sync();
- emit itemsChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Menu::addMenu(Menu submenu)
-
- Adds a \a submenu to the end of the menu.
-*/
-void QQuickPlatformMenu::addMenu(QQuickPlatformMenu *menu)
-{
- insertMenu(m_items.count(), menu);
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Menu::insertMenu(int index, Menu submenu)
-
- Inserts a \a submenu at the specified \a index in the menu.
-*/
-void QQuickPlatformMenu::insertMenu(int index, QQuickPlatformMenu *menu)
-{
- if (!menu)
- return;
-
- menu->setParentMenu(this);
- insertItem(index, menu->menuItem());
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Menu::removeMenu(Menu submenu)
-
- Removes a \a submenu from the menu.
-*/
-void QQuickPlatformMenu::removeMenu(QQuickPlatformMenu *menu)
-{
- if (!menu)
- return;
-
- menu->setParentMenu(nullptr);
- removeItem(menu->menuItem());
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Menu::clear()
-
- Removes all items from the menu.
-*/
-void QQuickPlatformMenu::clear()
-{
- if (m_items.isEmpty())
- return;
-
- for (QQuickPlatformMenuItem *item : qAsConst(m_items)) {
- m_data.removeOne(item);
- if (m_handle)
- m_handle->removeMenuItem(item->handle());
- item->setMenu(nullptr);
- delete item;
- }
-
- m_items.clear();
- sync();
- emit itemsChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Menu::open(MenuItem item)
-
- Opens the menu at the current mouse position, optionally aligned to a menu \a item.
-*/
-
-/*!
- \qmlmethod void Qt.labs.platform::Menu::open(Item target, MenuItem item)
-
- Opens the menu at the specified \a target item, optionally aligned to a menu \a item.
-*/
-void QQuickPlatformMenu::open(QQmlV4Function *args)
-{
- if (!m_handle)
- return;
-
- if (args->length() > 2) {
- args->v4engine()->throwTypeError();
- return;
- }
-
- QV4::ExecutionEngine *v4 = args->v4engine();
- QV4::Scope scope(v4);
-
- QQuickItem *targetItem = nullptr;
- if (args->length() > 0) {
- QV4::ScopedValue value(scope, (*args)[0]);
- QV4::Scoped<QV4::QObjectWrapper> object(scope, value->as<QV4::QObjectWrapper>());
- if (object)
- targetItem = qobject_cast<QQuickItem *>(object->object());
- }
-
- QQuickPlatformMenuItem *menuItem = nullptr;
- if (args->length() > 1) {
- QV4::ScopedValue value(scope, (*args)[1]);
- QV4::Scoped<QV4::QObjectWrapper> object(scope, value->as<QV4::QObjectWrapper>());
- if (object)
- menuItem = qobject_cast<QQuickPlatformMenuItem *>(object->object());
- }
-
- QPoint offset;
- QWindow *window = findWindow(targetItem, &offset);
-
- QRect targetRect;
- if (targetItem) {
- QRectF sceneBounds = targetItem->mapRectToScene(targetItem->boundingRect());
- targetRect = sceneBounds.toAlignedRect().translated(offset);
- } else {
-#if QT_CONFIG(cursor)
- QPoint pos = QCursor::pos();
- if (window)
- pos = window->mapFromGlobal(pos);
- targetRect.moveTo(pos);
-#endif
- }
- m_handle->showPopup(window,
- QHighDpi::toNativePixels(targetRect, window),
- menuItem ? menuItem->handle() : nullptr);
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::Menu::close()
-
- Closes the menu.
-*/
-void QQuickPlatformMenu::close()
-{
- if (m_handle)
- m_handle->dismiss();
-}
-
-void QQuickPlatformMenu::classBegin()
-{
-}
-
-void QQuickPlatformMenu::componentComplete()
-{
- m_complete = true;
- if (m_handle && m_iconLoader)
- m_iconLoader->setEnabled(true);
- sync();
-}
-
-QQuickPlatformIconLoader *QQuickPlatformMenu::iconLoader() const
-{
- if (!m_iconLoader) {
- QQuickPlatformMenu *that = const_cast<QQuickPlatformMenu *>(this);
- static int slot = staticMetaObject.indexOfSlot("updateIcon()");
- m_iconLoader = new QQuickPlatformIconLoader(slot, that);
- m_iconLoader->setEnabled(m_complete);
- }
- return m_iconLoader;
-}
-
-static QWindow *effectiveWindow(QWindow *window, QPoint *offset)
-{
- QQuickWindow *quickWindow = qobject_cast<QQuickWindow *>(window);
- if (quickWindow) {
- QWindow *renderWindow = QQuickRenderControl::renderWindowFor(quickWindow, offset);
- if (renderWindow)
- return renderWindow;
- }
- return window;
-}
-
-QWindow *QQuickPlatformMenu::findWindow(QQuickItem *target, QPoint *offset) const
-{
- if (target)
- return effectiveWindow(target->window(), offset);
-
- if (m_menuBar && m_menuBar->window())
- return effectiveWindow(m_menuBar->window(), offset);
-
- QObject *obj = parent();
- while (obj) {
- QWindow *window = qobject_cast<QWindow *>(obj);
- if (window)
- return effectiveWindow(window, offset);
-
- QQuickItem *item = qobject_cast<QQuickItem *>(obj);
- if (item && item->window())
- return effectiveWindow(item->window(), offset);
-
- obj = obj->parent();
- }
- return nullptr;
-}
-
-void QQuickPlatformMenu::data_append(QQmlListProperty<QObject> *property, QObject *object)
-{
- QQuickPlatformMenu *menu = static_cast<QQuickPlatformMenu *>(property->object);
- if (QQuickPlatformMenuItem *item = qobject_cast<QQuickPlatformMenuItem *>(object))
- menu->addItem(item);
- else if (QQuickPlatformMenu *subMenu = qobject_cast<QQuickPlatformMenu *>(object))
- menu->addMenu(subMenu);
- else
- menu->m_data.append(object);
-}
-
-qsizetype QQuickPlatformMenu::data_count(QQmlListProperty<QObject> *property)
-{
- QQuickPlatformMenu *menu = static_cast<QQuickPlatformMenu *>(property->object);
- return menu->m_data.count();
-}
-
-QObject *QQuickPlatformMenu::data_at(QQmlListProperty<QObject> *property, qsizetype index)
-{
- QQuickPlatformMenu *menu = static_cast<QQuickPlatformMenu *>(property->object);
- return menu->m_data.value(index);
-}
-
-void QQuickPlatformMenu::data_clear(QQmlListProperty<QObject> *property)
-{
- QQuickPlatformMenu *menu = static_cast<QQuickPlatformMenu *>(property->object);
- menu->m_data.clear();
-}
-
-void QQuickPlatformMenu::items_append(QQmlListProperty<QQuickPlatformMenuItem> *property, QQuickPlatformMenuItem *item)
-{
- QQuickPlatformMenu *menu = static_cast<QQuickPlatformMenu *>(property->object);
- menu->addItem(item);
-}
-
-qsizetype QQuickPlatformMenu::items_count(QQmlListProperty<QQuickPlatformMenuItem> *property)
-{
- QQuickPlatformMenu *menu = static_cast<QQuickPlatformMenu *>(property->object);
- return menu->m_items.count();
-}
-
-QQuickPlatformMenuItem *QQuickPlatformMenu::items_at(QQmlListProperty<QQuickPlatformMenuItem> *property, qsizetype index)
-{
- QQuickPlatformMenu *menu = static_cast<QQuickPlatformMenu *>(property->object);
- return menu->m_items.value(index);
-}
-
-void QQuickPlatformMenu::items_clear(QQmlListProperty<QQuickPlatformMenuItem> *property)
-{
- QQuickPlatformMenu *menu = static_cast<QQuickPlatformMenu *>(property->object);
- menu->clear();
-}
-
-void QQuickPlatformMenu::updateIcon()
-{
- if (!m_handle || !m_iconLoader)
- return;
-
- m_handle->setIcon(m_iconLoader->toQIcon());
- sync();
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickplatformmenu_p.cpp"
diff --git a/src/labs/platform/qquickplatformmenu_p.h b/src/labs/platform/qquickplatformmenu_p.h
deleted file mode 100644
index fc66b61b..00000000
--- a/src/labs/platform/qquickplatformmenu_p.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMMENU_P_H
-#define QQUICKPLATFORMMENU_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtCore/qurl.h>
-#include <QtGui/qfont.h>
-#include <QtGui/qpa/qplatformmenu.h>
-#include <QtQml/qqmlparserstatus.h>
-#include <QtQml/qqmllist.h>
-#include <QtQml/qqml.h>
-
-#include "qquickplatformicon_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QIcon;
-class QWindow;
-class QQuickItem;
-class QPlatformMenu;
-class QQmlV4Function;
-class QQuickPlatformMenuBar;
-class QQuickPlatformMenuItem;
-class QQuickPlatformIconLoader;
-class QQuickPlatformSystemTrayIcon;
-
-class QQuickPlatformMenu : public QObject, public QQmlParserStatus
-{
- Q_OBJECT
- Q_INTERFACES(QQmlParserStatus)
- Q_PROPERTY(QQmlListProperty<QObject> data READ data FINAL)
- Q_PROPERTY(QQmlListProperty<QQuickPlatformMenuItem> items READ items NOTIFY itemsChanged FINAL)
- Q_PROPERTY(QQuickPlatformMenuBar *menuBar READ menuBar NOTIFY menuBarChanged FINAL)
- Q_PROPERTY(QQuickPlatformMenu *parentMenu READ parentMenu NOTIFY parentMenuChanged FINAL)
- Q_PROPERTY(QQuickPlatformSystemTrayIcon *systemTrayIcon READ systemTrayIcon NOTIFY systemTrayIconChanged FINAL)
- Q_PROPERTY(QQuickPlatformMenuItem *menuItem READ menuItem CONSTANT FINAL)
- Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged FINAL)
- Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
- Q_PROPERTY(int minimumWidth READ minimumWidth WRITE setMinimumWidth NOTIFY minimumWidthChanged FINAL)
- Q_PROPERTY(QPlatformMenu::MenuType type READ type WRITE setType NOTIFY typeChanged FINAL)
- Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged FINAL)
- Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged FINAL)
- Q_PROPERTY(QQuickPlatformIcon icon READ icon WRITE setIcon NOTIFY iconChanged FINAL REVISION(1, 1))
- Q_ENUMS(QPlatformMenu::MenuType)
- Q_CLASSINFO("DefaultProperty", "data")
-
-public:
- explicit QQuickPlatformMenu(QObject *parent = nullptr);
- ~QQuickPlatformMenu();
-
- QPlatformMenu *handle() const;
- QPlatformMenu *create();
- void destroy();
- void sync();
-
- QQmlListProperty<QObject> data();
- QQmlListProperty<QQuickPlatformMenuItem> items();
-
- QQuickPlatformMenuBar *menuBar() const;
- void setMenuBar(QQuickPlatformMenuBar *menuBar);
-
- QQuickPlatformMenu *parentMenu() const;
- void setParentMenu(QQuickPlatformMenu *menu);
-
- QQuickPlatformSystemTrayIcon *systemTrayIcon() const;
- void setSystemTrayIcon(QQuickPlatformSystemTrayIcon *icon);
-
- QQuickPlatformMenuItem *menuItem() const;
-
- bool isEnabled() const;
- void setEnabled(bool enabled);
-
- bool isVisible() const;
- void setVisible(bool visible);
-
- int minimumWidth() const;
- void setMinimumWidth(int width);
-
- QPlatformMenu::MenuType type() const;
- void setType(QPlatformMenu::MenuType type);
-
- QString title() const;
- void setTitle(const QString &title);
-
- QFont font() const;
- void setFont(const QFont &font);
-
- QQuickPlatformIcon icon() const;
- void setIcon(const QQuickPlatformIcon &icon);
-
- Q_INVOKABLE void addItem(QQuickPlatformMenuItem *item);
- Q_INVOKABLE void insertItem(int index, QQuickPlatformMenuItem *item);
- Q_INVOKABLE void removeItem(QQuickPlatformMenuItem *item);
-
- Q_INVOKABLE void addMenu(QQuickPlatformMenu *menu);
- Q_INVOKABLE void insertMenu(int index, QQuickPlatformMenu *menu);
- Q_INVOKABLE void removeMenu(QQuickPlatformMenu *menu);
-
- Q_INVOKABLE void clear();
-
-public Q_SLOTS:
- void open(QQmlV4Function *args);
- void close();
-
-Q_SIGNALS:
- void aboutToShow();
- void aboutToHide();
-
- void itemsChanged();
- void menuBarChanged();
- void parentMenuChanged();
- void systemTrayIconChanged();
- void titleChanged();
- void enabledChanged();
- void visibleChanged();
- void minimumWidthChanged();
- void fontChanged();
- void typeChanged();
- Q_REVISION(2, 1) void iconChanged();
-
-protected:
- void classBegin() override;
- void componentComplete() override;
-
- QQuickPlatformIconLoader *iconLoader() const;
-
- QWindow *findWindow(QQuickItem *target, QPoint *offset) const;
-
- static void data_append(QQmlListProperty<QObject> *property, QObject *object);
- static qsizetype data_count(QQmlListProperty<QObject> *property);
- static QObject *data_at(QQmlListProperty<QObject> *property, qsizetype index);
- static void data_clear(QQmlListProperty<QObject> *property);
-
- static void items_append(QQmlListProperty<QQuickPlatformMenuItem> *property, QQuickPlatformMenuItem *item);
- static qsizetype items_count(QQmlListProperty<QQuickPlatformMenuItem> *property);
- static QQuickPlatformMenuItem *items_at(QQmlListProperty<QQuickPlatformMenuItem> *property, qsizetype index);
- static void items_clear(QQmlListProperty<QQuickPlatformMenuItem> *property);
-
-private Q_SLOTS:
- void updateIcon();
-
-private:
- void unparentSubmenus();
-
- bool m_complete;
- bool m_enabled;
- bool m_visible;
- int m_minimumWidth;
- QPlatformMenu::MenuType m_type;
- QString m_title;
- QFont m_font;
- QList<QObject *> m_data;
- QList<QQuickPlatformMenuItem *> m_items;
- QQuickPlatformMenuBar *m_menuBar;
- QQuickPlatformMenu *m_parentMenu;
- QQuickPlatformSystemTrayIcon *m_systemTrayIcon;
- mutable QQuickPlatformMenuItem *m_menuItem;
- mutable QQuickPlatformIconLoader *m_iconLoader;
- QPlatformMenu *m_handle;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformMenu)
-Q_DECLARE_METATYPE(QPlatformMenu::MenuType)
-
-#endif // QQUICKPLATFORMMENU_P_H
diff --git a/src/labs/platform/qquickplatformmenubar.cpp b/src/labs/platform/qquickplatformmenubar.cpp
deleted file mode 100644
index 3b1f4b74..00000000
--- a/src/labs/platform/qquickplatformmenubar.cpp
+++ /dev/null
@@ -1,333 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformmenubar_p.h"
-#include "qquickplatformmenu_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtGui/qpa/qplatformmenu.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtQuick/qquickwindow.h>
-#include <QtQuick/qquickitem.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype MenuBar
- \inherits QtObject
-//! \instantiates QQuickPlatformMenuBar
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief A native menubar.
-
- The MenuBar type provides a QML API for native platform menubars.
-
- \image qtlabsplatform-menubar.png
-
- A menubar consists of a list of drop-down menus.
-
- \code
- MenuBar {
- id: menuBar
-
- Menu {
- id: fileMenu
- title: qsTr("File")
- // ...
- }
-
- Menu {
- id: editMenu
- title: qsTr("&Edit")
- // ...
- }
-
- Menu {
- id: viewMenu
- title: qsTr("&View")
- // ...
- }
-
- Menu {
- id: helpMenu
- title: qsTr("&Help")
- // ...
- }
- }
- \endcode
-
- MenuBar is currently available on the following platforms:
-
- \list
- \li macOS
- \li Android
- \li Linux (only available on desktop environments that provide a global D-Bus menu bar)
- \endlist
-
- \labs
-
- \sa Menu
-*/
-
-Q_DECLARE_LOGGING_CATEGORY(qtLabsPlatformMenus)
-
-QQuickPlatformMenuBar::QQuickPlatformMenuBar(QObject *parent)
- : QObject(parent),
- m_complete(false),
- m_window(nullptr),
- m_handle(nullptr)
-{
- m_handle = QGuiApplicationPrivate::platformTheme()->createPlatformMenuBar();
- qCDebug(qtLabsPlatformMenus) << "MenuBar ->" << m_handle;
-}
-
-QQuickPlatformMenuBar::~QQuickPlatformMenuBar()
-{
- for (QQuickPlatformMenu *menu : qAsConst(m_menus))
- menu->setMenuBar(nullptr);
- delete m_handle;
- m_handle = nullptr;
-}
-
-QPlatformMenuBar *QQuickPlatformMenuBar::handle() const
-{
- return m_handle;
-}
-
-/*!
- \qmldefault
- \qmlproperty list<Object> Qt.labs.platform::MenuBar::data
-
- This default property holds the list of all objects declared as children of
- the menubar. The data property includes objects that are not \l Menu instances,
- such as \l Timer and \l QtObject.
-
- \sa menus
-*/
-QQmlListProperty<QObject> QQuickPlatformMenuBar::data()
-{
- return QQmlListProperty<QObject>(this, nullptr, data_append, data_count, data_at, data_clear);
-}
-
-/*!
- \qmlproperty list<Menu> Qt.labs.platform::MenuBar::menus
-
- This property holds the list of menus in the menubar.
-*/
-QQmlListProperty<QQuickPlatformMenu> QQuickPlatformMenuBar::menus()
-{
- return QQmlListProperty<QQuickPlatformMenu>(this, nullptr, menus_append, menus_count, menus_at, menus_clear);
-}
-
-/*!
- \qmlproperty Window Qt.labs.platform::MenuBar::window
-
- This property holds the menubar's window.
-
- Unless explicitly set, the window is automatically resolved by iterating
- the QML parent objects until a \l Window or an \l Item that has a window
- is found.
-*/
-QWindow *QQuickPlatformMenuBar::window() const
-{
- return m_window;
-}
-
-void QQuickPlatformMenuBar::setWindow(QWindow *window)
-{
- if (m_window == window)
- return;
-
- if (m_handle)
- m_handle->handleReparent(window);
-
- m_window = window;
- emit windowChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::MenuBar::addMenu(Menu menu)
-
- Adds a \a menu to end of the menubar.
-*/
-void QQuickPlatformMenuBar::addMenu(QQuickPlatformMenu *menu)
-{
- insertMenu(m_menus.count(), menu);
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::MenuBar::insertMenu(int index, Menu menu)
-
- Inserts a \a menu at the specified \a index in the menubar.
-*/
-void QQuickPlatformMenuBar::insertMenu(int index, QQuickPlatformMenu *menu)
-{
- if (!menu || m_menus.contains(menu))
- return;
-
- QQuickPlatformMenu *before = m_menus.value(index);
- m_menus.insert(index, menu);
- m_data.append(menu);
- menu->setMenuBar(this);
- if (m_handle)
- m_handle->insertMenu(menu->create(), before ? before->handle() : nullptr);
- menu->sync();
- emit menusChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::MenuBar::removeMenu(Menu menu)
-
- Removes a \a menu from the menubar.
-*/
-void QQuickPlatformMenuBar::removeMenu(QQuickPlatformMenu *menu)
-{
- if (!menu || !m_menus.removeOne(menu))
- return;
-
- m_data.removeOne(menu);
- if (m_handle)
- m_handle->removeMenu(menu->handle());
- menu->setMenuBar(nullptr);
- emit menusChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::MenuBar::clear()
-
- Removes all menus from the menubar.
-*/
-void QQuickPlatformMenuBar::clear()
-{
- if (m_menus.isEmpty())
- return;
-
- for (QQuickPlatformMenu *menu : qAsConst(m_menus)) {
- m_data.removeOne(menu);
- if (m_handle)
- m_handle->removeMenu(menu->handle());
- menu->setMenuBar(nullptr);
- delete menu;
- }
-
- m_menus.clear();
- emit menusChanged();
-}
-
-void QQuickPlatformMenuBar::classBegin()
-{
-}
-
-void QQuickPlatformMenuBar::componentComplete()
-{
- m_complete = true;
- for (QQuickPlatformMenu *menu : qAsConst(m_menus))
- menu->sync();
- if (!m_window)
- setWindow(findWindow());
-}
-
-QWindow *QQuickPlatformMenuBar::findWindow() const
-{
- QObject *obj = parent();
- while (obj) {
- QWindow *window = qobject_cast<QWindow *>(obj);
- if (window)
- return window;
- QQuickItem *item = qobject_cast<QQuickItem *>(obj);
- if (item && item->window())
- return item->window();
- obj = obj->parent();
- }
- return nullptr;
-}
-
-void QQuickPlatformMenuBar::data_append(QQmlListProperty<QObject> *property, QObject *object)
-{
- QQuickPlatformMenuBar *menuBar = static_cast<QQuickPlatformMenuBar *>(property->object);
- QQuickPlatformMenu *menu = qobject_cast<QQuickPlatformMenu *>(object);
- if (menu)
- menuBar->addMenu(menu);
- else
- menuBar->m_data.append(object);
-}
-
-qsizetype QQuickPlatformMenuBar::data_count(QQmlListProperty<QObject> *property)
-{
- QQuickPlatformMenuBar *menuBar = static_cast<QQuickPlatformMenuBar *>(property->object);
- return menuBar->m_data.count();
-}
-
-QObject *QQuickPlatformMenuBar::data_at(QQmlListProperty<QObject> *property, qsizetype index)
-{
- QQuickPlatformMenuBar *menuBar = static_cast<QQuickPlatformMenuBar *>(property->object);
- return menuBar->m_data.value(index);
-}
-
-void QQuickPlatformMenuBar::data_clear(QQmlListProperty<QObject> *property)
-{
- QQuickPlatformMenuBar *menuBar = static_cast<QQuickPlatformMenuBar *>(property->object);
- menuBar->m_data.clear();
-}
-
-void QQuickPlatformMenuBar::menus_append(QQmlListProperty<QQuickPlatformMenu> *property, QQuickPlatformMenu *menu)
-{
- QQuickPlatformMenuBar *menuBar = static_cast<QQuickPlatformMenuBar *>(property->object);
- menuBar->addMenu(menu);
-}
-
-qsizetype QQuickPlatformMenuBar::menus_count(QQmlListProperty<QQuickPlatformMenu> *property)
-{
- QQuickPlatformMenuBar *menuBar = static_cast<QQuickPlatformMenuBar *>(property->object);
- return menuBar->m_menus.count();
-}
-
-QQuickPlatformMenu *QQuickPlatformMenuBar::menus_at(QQmlListProperty<QQuickPlatformMenu> *property, qsizetype index)
-{
- QQuickPlatformMenuBar *menuBar = static_cast<QQuickPlatformMenuBar *>(property->object);
- return menuBar->m_menus.value(index);
-}
-
-void QQuickPlatformMenuBar::menus_clear(QQmlListProperty<QQuickPlatformMenu> *property)
-{
- QQuickPlatformMenuBar *menuBar = static_cast<QQuickPlatformMenuBar *>(property->object);
- menuBar->clear();
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickplatformmenubar_p.cpp"
diff --git a/src/labs/platform/qquickplatformmenubar_p.h b/src/labs/platform/qquickplatformmenubar_p.h
deleted file mode 100644
index e644c86c..00000000
--- a/src/labs/platform/qquickplatformmenubar_p.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMMENUBAR_P_H
-#define QQUICKPLATFORMMENUBAR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtQml/qqmlparserstatus.h>
-#include <QtQml/qqmllist.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QWindow;
-class QPlatformMenuBar;
-class QQuickPlatformMenu;
-
-class QQuickPlatformMenuBar : public QObject, public QQmlParserStatus
-{
- Q_OBJECT
- Q_INTERFACES(QQmlParserStatus)
- Q_PROPERTY(QQmlListProperty<QObject> data READ data FINAL)
- Q_PROPERTY(QQmlListProperty<QQuickPlatformMenu> menus READ menus NOTIFY menusChanged FINAL)
- Q_PROPERTY(QWindow *window READ window WRITE setWindow NOTIFY windowChanged FINAL)
- Q_CLASSINFO("DefaultProperty", "data")
-
-public:
- explicit QQuickPlatformMenuBar(QObject *parent = nullptr);
- ~QQuickPlatformMenuBar();
-
- QPlatformMenuBar *handle() const;
-
- QQmlListProperty<QObject> data();
- QQmlListProperty<QQuickPlatformMenu> menus();
-
- QWindow *window() const;
- void setWindow(QWindow *window);
-
- Q_INVOKABLE void addMenu(QQuickPlatformMenu *menu);
- Q_INVOKABLE void insertMenu(int index, QQuickPlatformMenu *menu);
- Q_INVOKABLE void removeMenu(QQuickPlatformMenu *menu);
- Q_INVOKABLE void clear();
-
-Q_SIGNALS:
- void menusChanged();
- void windowChanged();
-
-protected:
- void classBegin() override;
- void componentComplete() override;
-
- QWindow *findWindow() const;
-
- static void data_append(QQmlListProperty<QObject> *property, QObject *object);
- static qsizetype data_count(QQmlListProperty<QObject> *property);
- static QObject *data_at(QQmlListProperty<QObject> *property, qsizetype index);
- static void data_clear(QQmlListProperty<QObject> *property);
-
- static void menus_append(QQmlListProperty<QQuickPlatformMenu> *property, QQuickPlatformMenu *menu);
- static qsizetype menus_count(QQmlListProperty<QQuickPlatformMenu> *property);
- static QQuickPlatformMenu *menus_at(QQmlListProperty<QQuickPlatformMenu> *property, qsizetype index);
- static void menus_clear(QQmlListProperty<QQuickPlatformMenu> *property);
-
-private:
- bool m_complete;
- QWindow *m_window;
- QList<QObject *> m_data;
- QList<QQuickPlatformMenu *> m_menus;
- QPlatformMenuBar *m_handle;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformMenuBar)
-
-#endif // QQUICKPLATFORMMENUBAR_P_H
diff --git a/src/labs/platform/qquickplatformmenuitem.cpp b/src/labs/platform/qquickplatformmenuitem.cpp
deleted file mode 100644
index 4f61d423..00000000
--- a/src/labs/platform/qquickplatformmenuitem.cpp
+++ /dev/null
@@ -1,641 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformmenuitem_p.h"
-#include "qquickplatformmenu_p.h"
-#include "qquickplatformmenuitemgroup_p.h"
-#include "qquickplatformiconloader_p.h"
-
-#include <QtGui/qicon.h>
-#if QT_CONFIG(shortcut)
-#include <QtGui/qkeysequence.h>
-#endif
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtQuickTemplates2/private/qquickshortcutcontext_p_p.h>
-
-#include "widgets/qwidgetplatform_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype MenuItem
- \inherits QtObject
-//! \instantiates QQuickPlatformMenuItem
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief A native menu item.
-
- The MenuItem type provides a QML API for native platform menu items.
-
- \image qtlabsplatform-menu.png
-
- A menu item consists of an \l icon, \l text, and \l shortcut.
-
- \code
- Menu {
- id: zoomMenu
-
- MenuItem {
- text: qsTr("Zoom In")
- shortcut: StandardKey.ZoomIn
- onTriggered: zoomIn()
- }
-
- MenuItem {
- text: qsTr("Zoom Out")
- shortcut: StandardKey.ZoomOut
- onTriggered: zoomOut()
- }
- }
- \endcode
-
- \labs
-
- \sa Menu, MenuItemGroup
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MenuItem::triggered()
-
- This signal is emitted when the menu item is triggered by the user.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MenuItem::hovered()
-
- This signal is emitted when the menu item is hovered by the user.
-*/
-
-QQuickPlatformMenuItem::QQuickPlatformMenuItem(QObject *parent)
- : QObject(parent),
- m_complete(false),
- m_enabled(true),
- m_visible(true),
- m_separator(false),
- m_checkable(false),
- m_checked(false),
- m_role(QPlatformMenuItem::TextHeuristicRole),
- m_menu(nullptr),
- m_subMenu(nullptr),
- m_group(nullptr),
- m_iconLoader(nullptr),
- m_handle(nullptr)
-{
-}
-
-QQuickPlatformMenuItem::~QQuickPlatformMenuItem()
-{
- if (m_menu)
- m_menu->removeItem(this);
- if (m_group)
- m_group->removeItem(this);
-#if QT_CONFIG(shortcut)
- if (m_shortcutId != -1) {
- QKeySequence sequence;
- if (m_shortcut.metaType().id() == QMetaType::Int)
- sequence = QKeySequence(static_cast<QKeySequence::StandardKey>(m_shortcut.toInt()));
- else
- sequence = QKeySequence::fromString(m_shortcut.toString());
- QGuiApplicationPrivate::instance()->shortcutMap.removeShortcut(m_shortcutId, this, sequence);
- }
-#endif
- delete m_iconLoader;
- m_iconLoader = nullptr;
- delete m_handle;
- m_handle = nullptr;
-}
-
-QPlatformMenuItem *QQuickPlatformMenuItem::handle() const
-{
- return m_handle;
-}
-
-QPlatformMenuItem *QQuickPlatformMenuItem::create()
-{
- if (!m_handle && m_menu && m_menu->handle()) {
- m_handle = m_menu->handle()->createMenuItem();
-
- // TODO: implement QCocoaMenu::createMenuItem()
- if (!m_handle)
- m_handle = QGuiApplicationPrivate::platformTheme()->createPlatformMenuItem();
-
- if (!m_handle)
- m_handle = QWidgetPlatform::createMenuItem();
-
- if (m_handle) {
- connect(m_handle, &QPlatformMenuItem::activated, this, &QQuickPlatformMenuItem::activate);
- connect(m_handle, &QPlatformMenuItem::hovered, this, &QQuickPlatformMenuItem::hovered);
- }
- }
- return m_handle;
-}
-
-void QQuickPlatformMenuItem::sync()
-{
- if (!m_complete || !create())
- return;
-
- m_handle->setEnabled(isEnabled());
- m_handle->setVisible(isVisible());
- m_handle->setIsSeparator(m_separator);
- m_handle->setCheckable(m_checkable);
- m_handle->setChecked(m_checked);
- m_handle->setRole(m_role);
- m_handle->setText(m_text);
- m_handle->setFont(m_font);
- m_handle->setHasExclusiveGroup(m_group && m_group->isExclusive());
- if (m_subMenu) {
- // Sync first as dynamically created menus may need to get the
- // handle recreated
- m_subMenu->sync();
- if (m_subMenu->handle())
- m_handle->setMenu(m_subMenu->handle());
- }
-
-#if QT_CONFIG(shortcut)
- QKeySequence sequence;
- if (m_shortcut.metaType().id() == QMetaType::Int)
- sequence = QKeySequence(static_cast<QKeySequence::StandardKey>(m_shortcut.toInt()));
- else
- sequence = QKeySequence::fromString(m_shortcut.toString());
- m_handle->setShortcut(sequence.toString());
-#endif
-
- if (m_menu && m_menu->handle())
- m_menu->handle()->syncMenuItem(m_handle);
-}
-
-/*!
- \readonly
- \qmlproperty Menu Qt.labs.platform::MenuItem::menu
-
- This property holds the menu that the item belongs to, or \c null if the
- item is not in a menu.
-*/
-QQuickPlatformMenu *QQuickPlatformMenuItem::menu() const
-{
- return m_menu;
-}
-
-void QQuickPlatformMenuItem::setMenu(QQuickPlatformMenu *menu)
-{
- if (m_menu == menu)
- return;
-
- m_menu = menu;
- emit menuChanged();
-}
-
-/*!
- \readonly
- \qmlproperty Menu Qt.labs.platform::MenuItem::subMenu
-
- This property holds the sub-menu that the item contains, or \c null if
- the item is not a sub-menu item.
-*/
-QQuickPlatformMenu *QQuickPlatformMenuItem::subMenu() const
-{
- return m_subMenu;
-}
-
-void QQuickPlatformMenuItem::setSubMenu(QQuickPlatformMenu *menu)
-{
- if (m_subMenu == menu)
- return;
-
- m_subMenu = menu;
- sync();
- emit subMenuChanged();
-}
-
-/*!
- \qmlproperty MenuItemGroup Qt.labs.platform::MenuItem::group
-
- This property holds the group that the item belongs to, or \c null if the
- item is not in a group.
-*/
-QQuickPlatformMenuItemGroup *QQuickPlatformMenuItem::group() const
-{
- return m_group;
-}
-
-void QQuickPlatformMenuItem::setGroup(QQuickPlatformMenuItemGroup *group)
-{
- if (m_group == group)
- return;
-
- bool wasEnabled = isEnabled();
- bool wasVisible = isVisible();
-
- if (group)
- group->addItem(this);
-
- m_group = group;
- sync();
- emit groupChanged();
-
- if (isEnabled() != wasEnabled)
- emit enabledChanged();
- if (isVisible() != wasVisible)
- emit visibleChanged();
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::MenuItem::enabled
-
- This property holds whether the item is enabled. The default value is \c true.
-
- Disabled items cannot be triggered by the user. They do not disappear from menus,
- but they are displayed in a way which indicates that they are unavailable. For
- example, they might be displayed using only shades of gray.
-
- When an item is disabled, it is not possible to trigger it through its \l shortcut.
-*/
-bool QQuickPlatformMenuItem::isEnabled() const
-{
- return m_enabled && (!m_group || m_group->isEnabled());
-}
-
-void QQuickPlatformMenuItem::setEnabled(bool enabled)
-{
- if (m_enabled == enabled)
- return;
-
- bool wasEnabled = isEnabled();
- m_enabled = enabled;
- sync();
- if (isEnabled() != wasEnabled)
- emit enabledChanged();
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::MenuItem::visible
-
- This property holds whether the item is visible. The default value is \c true.
-*/
-bool QQuickPlatformMenuItem::isVisible() const
-{
- return m_visible && (!m_group || m_group->isVisible());
-}
-
-void QQuickPlatformMenuItem::setVisible(bool visible)
-{
- if (m_visible == visible)
- return;
-
- bool wasVisible = isVisible();
- m_visible = visible;
- sync();
- if (isVisible() != wasVisible)
- emit visibleChanged();
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::MenuItem::separator
-
- This property holds whether the item is a separator line. The default value
- is \c false.
-
- \sa MenuSeparator
-*/
-bool QQuickPlatformMenuItem::isSeparator() const
-{
- return m_separator;
-}
-
-void QQuickPlatformMenuItem::setSeparator(bool separator)
-{
- if (m_separator == separator)
- return;
-
- m_separator = separator;
- sync();
- emit separatorChanged();
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::MenuItem::checkable
-
- This property holds whether the item is checkable.
-
- A checkable menu item has an on/off state. For example, in a word processor,
- a "Bold" menu item may be either on or off. A menu item that is not checkable
- is a command item that is simply executed, e.g. file save.
-
- The default value is \c false.
-
- \sa checked, MenuItemGroup
-*/
-bool QQuickPlatformMenuItem::isCheckable() const
-{
- return m_checkable;
-}
-
-void QQuickPlatformMenuItem::setCheckable(bool checkable)
-{
- if (m_checkable == checkable)
- return;
-
- m_checkable = checkable;
- sync();
- emit checkableChanged();
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::MenuItem::checked
-
- This property holds whether the item is checked (on) or unchecked (off).
- The default value is \c false.
-
- \sa checkable, MenuItemGroup
-*/
-bool QQuickPlatformMenuItem::isChecked() const
-{
- return m_checked;
-}
-
-void QQuickPlatformMenuItem::setChecked(bool checked)
-{
- if (m_checked == checked)
- return;
-
- if (checked && !m_checkable)
- setCheckable(true);
-
- m_checked = checked;
- sync();
- emit checkedChanged();
-}
-
-/*!
- \qmlproperty enumeration Qt.labs.platform::MenuItem::role
-
- This property holds the role of the item. The role determines whether
- the item should be placed into the application menu on macOS.
-
- Available values:
- \value MenuItem.NoRole The item should not be put into the application menu
- \value MenuItem.TextHeuristicRole The item should be put in the application menu based on the action's text (default)
- \value MenuItem.ApplicationSpecificRole The item should be put in the application menu with an application-specific role
- \value MenuItem.AboutQtRole The item handles the "About Qt" menu item.
- \value MenuItem.AboutRole The item should be placed where the "About" menu item is in the application menu. The text of
- the menu item will be set to "About <application name>". The application name is fetched from the
- \c{Info.plist} file in the application's bundle (See \l{Qt for macOS - Deployment}).
- \value MenuItem.PreferencesRole The item should be placed where the "Preferences..." menu item is in the application menu.
- \value MenuItem.QuitRole The item should be placed where the Quit menu item is in the application menu.
-
- Specifying the role only has effect on items that are in the immediate
- menus of a menubar, not in the submenus of those menus. For example, if
- you have a "File" menu in your menubar and the "File" menu has a submenu,
- specifying a role for the items in that submenu has no effect. They will
- never be moved to the application menu.
-*/
-QPlatformMenuItem::MenuRole QQuickPlatformMenuItem::role() const
-{
- return m_role;
-}
-
-void QQuickPlatformMenuItem::setRole(QPlatformMenuItem::MenuRole role)
-{
- if (m_role == role)
- return;
-
- m_role = role;
- sync();
- emit roleChanged();
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::MenuItem::text
-
- This property holds the menu item's text.
-*/
-QString QQuickPlatformMenuItem::text() const
-{
- return m_text;
-}
-
-void QQuickPlatformMenuItem::setText(const QString &text)
-{
- if (m_text == text)
- return;
-
- m_text = text;
- sync();
- emit textChanged();
-}
-
-/*!
- \qmlproperty keysequence Qt.labs.platform::MenuItem::shortcut
-
- This property holds the menu item's shortcut.
-
- The shortcut key sequence can be set to one of the
- \l{QKeySequence::StandardKey}{standard keyboard shortcuts}, or it can be
- specified by a string containing a sequence of up to four key presses
- that are needed to \l{triggered}{trigger} the shortcut.
-
- The default value is an empty key sequence.
-
- \code
- MenuItem {
- shortcut: "Ctrl+E,Ctrl+W"
- onTriggered: edit.wrapMode = TextEdit.Wrap
- }
- \endcode
-*/
-QVariant QQuickPlatformMenuItem::shortcut() const
-{
- return m_shortcut;
-}
-
-bool QQuickPlatformMenuItem::event(QEvent *e)
-{
-#if QT_CONFIG(shortcut)
- if (e->type() == QEvent::Shortcut) {
- QShortcutEvent *se = static_cast<QShortcutEvent *>(e);
- if (se->shortcutId() == m_shortcutId) {
- activate();
- return true;
- }
- }
-#endif
- return QObject::event(e);
-}
-
-void QQuickPlatformMenuItem::setShortcut(const QVariant& shortcut)
-{
- if (m_shortcut == shortcut)
- return;
-
-#if QT_CONFIG(shortcut)
- if (m_shortcutId != -1) {
- QKeySequence sequence;
- if (m_shortcut.metaType().id() == QMetaType::Int)
- sequence = QKeySequence(static_cast<QKeySequence::StandardKey>(m_shortcut.toInt()));
- else
- sequence = QKeySequence::fromString(m_shortcut.toString());
- QGuiApplicationPrivate::instance()->shortcutMap.removeShortcut(m_shortcutId, this, sequence);
- }
-#endif
- m_shortcut = shortcut;
- sync();
-#if QT_CONFIG(shortcut)
- QKeySequence sequence;
- if (m_shortcut.metaType().id() == QMetaType::Int)
- sequence = QKeySequence(static_cast<QKeySequence::StandardKey>(m_shortcut.toInt()));
- else
- sequence = QKeySequence::fromString(m_shortcut.toString());
- if (!sequence.isEmpty()) {
- m_shortcutId = QGuiApplicationPrivate::instance()->shortcutMap.addShortcut(this, sequence,
- Qt::WindowShortcut, QQuickShortcutContext::matcher);
- } else {
- m_shortcutId = -1;
- }
-#endif
- emit shortcutChanged();
-}
-
-/*!
- \qmlproperty font Qt.labs.platform::MenuItem::font
-
- This property holds the menu item's font.
-
- \sa text
-*/
-QFont QQuickPlatformMenuItem::font() const
-{
- return m_font;
-}
-
-void QQuickPlatformMenuItem::setFont(const QFont& font)
-{
- if (m_font == font)
- return;
-
- m_font = font;
- sync();
- emit fontChanged();
-}
-
-/*!
- \since Qt.labs.platform 1.1 (Qt 5.12)
- \qmlproperty url Qt.labs.platform::MenuItem::icon.source
- \qmlproperty string Qt.labs.platform::MenuItem::icon.name
- \qmlproperty bool Qt.labs.platform::MenuItem::icon.mask
-
- This property holds the menu item's icon.
-
- \code
- MenuItem {
- icon.mask: true
- icon.name: "edit-undo"
- icon.source: "qrc:/images/undo.png"
- }
- \endcode
-
- \sa QIcon::fromTheme()
-*/
-QQuickPlatformIcon QQuickPlatformMenuItem::icon() const
-{
- if (!m_iconLoader)
- return QQuickPlatformIcon();
-
- return m_iconLoader->icon();
-}
-
-void QQuickPlatformMenuItem::setIcon(const QQuickPlatformIcon &icon)
-{
- if (iconLoader()->icon() == icon)
- return;
-
- iconLoader()->setIcon(icon);
- emit iconChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::MenuItem::toggle()
-
- Toggles the \l checked state to its opposite state.
-*/
-void QQuickPlatformMenuItem::toggle()
-{
- if (m_checkable)
- setChecked(!m_checked);
-}
-
-void QQuickPlatformMenuItem::classBegin()
-{
-}
-
-void QQuickPlatformMenuItem::componentComplete()
-{
- if (m_handle && m_iconLoader)
- m_iconLoader->setEnabled(true);
- m_complete = true;
- sync();
-}
-
-QQuickPlatformIconLoader *QQuickPlatformMenuItem::iconLoader() const
-{
- if (!m_iconLoader) {
- QQuickPlatformMenuItem *that = const_cast<QQuickPlatformMenuItem *>(this);
- static int slot = staticMetaObject.indexOfSlot("updateIcon()");
- m_iconLoader = new QQuickPlatformIconLoader(slot, that);
- m_iconLoader->setEnabled(m_complete);
- }
- return m_iconLoader;
-}
-
-void QQuickPlatformMenuItem::activate()
-{
- toggle();
- emit triggered();
-}
-
-void QQuickPlatformMenuItem::updateIcon()
-{
- if (!m_handle || !m_iconLoader)
- return;
-
- m_handle->setIcon(m_iconLoader->toQIcon());
- sync();
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickplatformmenuitem_p.cpp"
diff --git a/src/labs/platform/qquickplatformmenuitem_p.h b/src/labs/platform/qquickplatformmenuitem_p.h
deleted file mode 100644
index 01b7482d..00000000
--- a/src/labs/platform/qquickplatformmenuitem_p.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMMENUITEM_P_H
-#define QQUICKPLATFORMMENUITEM_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtCore/qurl.h>
-#include <QtGui/qfont.h>
-#include <QtGui/qpa/qplatformmenu.h>
-#include <QtQml/qqmlparserstatus.h>
-#include <QtQml/qqml.h>
-
-#include "qquickplatformicon_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QPlatformMenuItem;
-class QQuickPlatformMenu;
-class QQuickPlatformIconLoader;
-class QQuickPlatformMenuItemGroup;
-
-class QQuickPlatformMenuItem : public QObject, public QQmlParserStatus
-{
- Q_OBJECT
- Q_INTERFACES(QQmlParserStatus)
- Q_PROPERTY(QQuickPlatformMenu *menu READ menu NOTIFY menuChanged FINAL)
- Q_PROPERTY(QQuickPlatformMenu *subMenu READ subMenu NOTIFY subMenuChanged FINAL)
- Q_PROPERTY(QQuickPlatformMenuItemGroup *group READ group WRITE setGroup NOTIFY groupChanged FINAL)
- Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged FINAL)
- Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
- Q_PROPERTY(bool separator READ isSeparator WRITE setSeparator NOTIFY separatorChanged FINAL)
- Q_PROPERTY(bool checkable READ isCheckable WRITE setCheckable NOTIFY checkableChanged FINAL)
- Q_PROPERTY(bool checked READ isChecked WRITE setChecked NOTIFY checkedChanged FINAL)
- Q_PROPERTY(QPlatformMenuItem::MenuRole role READ role WRITE setRole NOTIFY roleChanged FINAL)
- Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged FINAL)
- Q_PROPERTY(QVariant shortcut READ shortcut WRITE setShortcut NOTIFY shortcutChanged FINAL)
- Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged FINAL)
- Q_PROPERTY(QQuickPlatformIcon icon READ icon WRITE setIcon NOTIFY iconChanged FINAL REVISION(1, 1))
- Q_ENUMS(QPlatformMenuItem::MenuRole)
-
-public:
- explicit QQuickPlatformMenuItem(QObject *parent = nullptr);
- ~QQuickPlatformMenuItem();
-
- QPlatformMenuItem *handle() const;
- QPlatformMenuItem *create();
- void sync();
-
- QQuickPlatformMenu *menu() const;
- void setMenu(QQuickPlatformMenu* menu);
-
- QQuickPlatformMenu *subMenu() const;
- void setSubMenu(QQuickPlatformMenu *menu);
-
- QQuickPlatformMenuItemGroup *group() const;
- void setGroup(QQuickPlatformMenuItemGroup *group);
-
- bool isEnabled() const;
- void setEnabled(bool enabled);
-
- bool isVisible() const;
- void setVisible(bool visible);
-
- bool isSeparator() const;
- void setSeparator(bool separator);
-
- bool isCheckable() const;
- void setCheckable(bool checkable);
-
- bool isChecked() const;
- void setChecked(bool checked);
-
- QPlatformMenuItem::MenuRole role() const;
- void setRole(QPlatformMenuItem::MenuRole role);
-
- QString text() const;
- void setText(const QString &text);
-
- QVariant shortcut() const;
- void setShortcut(const QVariant& shortcut);
-
- QFont font() const;
- void setFont(const QFont &font);
-
- QQuickPlatformIcon icon() const;
- void setIcon(const QQuickPlatformIcon &icon);
-
-public Q_SLOTS:
- void toggle();
-
-Q_SIGNALS:
- void triggered();
- void hovered();
-
- void menuChanged();
- void subMenuChanged();
- void groupChanged();
- void enabledChanged();
- void visibleChanged();
- void separatorChanged();
- void checkableChanged();
- void checkedChanged();
- void roleChanged();
- void textChanged();
- void shortcutChanged();
- void fontChanged();
- Q_REVISION(2, 1) void iconChanged();
-
-protected:
- void classBegin() override;
- void componentComplete() override;
-
- QQuickPlatformIconLoader *iconLoader() const;
-
- bool event(QEvent *e) override;
-private Q_SLOTS:
- void activate();
- void updateIcon();
-
-private:
- bool m_complete;
- bool m_enabled;
- bool m_visible;
- bool m_separator;
- bool m_checkable;
- bool m_checked;
- QPlatformMenuItem::MenuRole m_role;
- QString m_text;
- QVariant m_shortcut;
- QFont m_font;
- QQuickPlatformMenu *m_menu;
- QQuickPlatformMenu *m_subMenu;
- QQuickPlatformMenuItemGroup *m_group;
- mutable QQuickPlatformIconLoader *m_iconLoader;
- QPlatformMenuItem *m_handle;
- int m_shortcutId = -1;
-
- friend class QQuickPlatformMenu;
- friend class QQuickPlatformMenuItemGroup;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformMenuItem)
-
-#endif // QQUICKPLATFORMMENUITEM_P_H
diff --git a/src/labs/platform/qquickplatformmenuitemgroup.cpp b/src/labs/platform/qquickplatformmenuitemgroup.cpp
deleted file mode 100644
index fcfcc664..00000000
--- a/src/labs/platform/qquickplatformmenuitemgroup.cpp
+++ /dev/null
@@ -1,392 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Templates module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformmenuitemgroup_p.h"
-#include "qquickplatformmenuitem_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype MenuItemGroup
- \inherits QtObject
-//! \instantiates QQuickPlatformMenuItemGroup
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief A group for managing native menu items.
-
- The MenuItemGroup groups native menu items together.
-
- MenuItemGroup is exclusive by default. In an exclusive menu item
- group, only one item can be checked at any time; checking another
- item automatically unchecks the previously checked one. MenuItemGroup
- can be configured as non-exclusive, which is particularly useful for
- showing, hiding, enabling and disabling items together as a group.
-
- The most straight-forward way to use MenuItemGroup is to assign
- a list of items.
-
- \code
- Menu {
- id: verticalMenu
- title: qsTr("Vertical")
-
- MenuItemGroup {
- id: verticalGroup
- items: verticalMenu.items
- }
-
- MenuItem { text: qsTr("Top"); checkable: true }
- MenuItem { text: qsTr("Center"); checked: true }
- MenuItem { text: qsTr("Bottom"); checkable: true }
- }
- \endcode
-
- The same menu may sometimes contain items that should not be included
- in the same exclusive group. Such cases are best handled using the
- \l {MenuItem::group}{group} property.
-
- \code
- Menu {
- id: horizontalMenu
- title: qsTr("Horizontal")
-
- MenuItemGroup {
- id: horizontalGroup
- }
-
- MenuItem {
- checked: true
- text: qsTr("Left")
- group: horizontalGroup
- }
- MenuItem {
- checkable: true
- text: qsTr("Center")
- group: horizontalGroup
- }
- MenuItem {
- text: qsTr("Right")
- checkable: true
- group: horizontalGroup
- }
-
- MenuItem { separator: true }
- MenuItem { text: qsTr("Justify"); checkable: true }
- MenuItem { text: qsTr("Absolute"); checkable: true }
- }
- \endcode
-
- More advanced use cases can be handled using the addItem() and
- removeItem() methods.
-
- \labs
-
- \sa MenuItem
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MenuItemGroup::triggered(MenuItem item)
-
- This signal is emitted when an \a item in the group is triggered by the user.
-
- \sa MenuItem::triggered()
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MenuItemGroup::hovered(MenuItem item)
-
- This signal is emitted when an \a item in the group is hovered by the user.
-
- \sa MenuItem::hovered()
-*/
-
-QQuickPlatformMenuItemGroup::QQuickPlatformMenuItemGroup(QObject *parent)
- : QObject(parent), m_enabled(true), m_visible(true), m_exclusive(true), m_checkedItem(nullptr)
-{
-}
-
-QQuickPlatformMenuItemGroup::~QQuickPlatformMenuItemGroup()
-{
- clear();
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::MenuItemGroup::enabled
-
- This property holds whether the group is enabled. The default value is \c true.
-
- The enabled state of the group affects the enabled state of each item in the group,
- except that explicitly disabled items are not enabled even if the group is enabled.
-*/
-bool QQuickPlatformMenuItemGroup::isEnabled() const
-{
- return m_enabled;
-}
-
-void QQuickPlatformMenuItemGroup::setEnabled(bool enabled)
-{
- if (m_enabled == enabled)
- return;
-
- m_enabled = enabled;
- emit enabledChanged();
-
- for (QQuickPlatformMenuItem *item : qAsConst(m_items)) {
- if (item->m_enabled) {
- item->sync();
- emit item->enabledChanged();
- }
- }
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::MenuItemGroup::visible
-
- This property holds whether the group is visible. The default value is \c true.
-
- The visibility of the group affects the visibility of each item in the group,
- except that explicitly hidden items are not visible even if the group is visible.
-*/
-bool QQuickPlatformMenuItemGroup::isVisible() const
-{
- return m_visible;
-}
-
-void QQuickPlatformMenuItemGroup::setVisible(bool visible)
-{
- if (m_visible == visible)
- return;
-
- m_visible = visible;
- emit visibleChanged();
-
- for (QQuickPlatformMenuItem *item : qAsConst(m_items)) {
- if (item->m_visible) {
- item->sync();
- emit item->visibleChanged();
- }
- }
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::MenuItemGroup::exclusive
-
- This property holds whether the group is exclusive. The default value is \c true.
-
- In an exclusive menu item group, only one item can be checked at any time;
- checking another item automatically unchecks the previously checked one.
-*/
-bool QQuickPlatformMenuItemGroup::isExclusive() const
-{
- return m_exclusive;
-}
-
-void QQuickPlatformMenuItemGroup::setExclusive(bool exclusive)
-{
- if (m_exclusive == exclusive)
- return;
-
- m_exclusive = exclusive;
- emit exclusiveChanged();
-
- for (QQuickPlatformMenuItem *item : qAsConst(m_items))
- item->sync();
-}
-
-/*!
- \qmlproperty MenuItem Qt.labs.platform::MenuItemGroup::checkedItem
-
- This property holds the currently checked item in the group, or \c null if no item is checked.
-*/
-QQuickPlatformMenuItem *QQuickPlatformMenuItemGroup::checkedItem() const
-{
- return m_checkedItem;
-}
-
-void QQuickPlatformMenuItemGroup::setCheckedItem(QQuickPlatformMenuItem *item)
-{
- if (m_checkedItem == item)
- return;
-
- if (m_checkedItem)
- m_checkedItem->setChecked(false);
-
- m_checkedItem = item;
- emit checkedItemChanged();
-
- if (item)
- item->setChecked(true);
-}
-
-/*!
- \qmlproperty list<MenuItem> Qt.labs.platform::MenuItemGroup::items
-
- This property holds the list of items in the group.
-*/
-QQmlListProperty<QQuickPlatformMenuItem> QQuickPlatformMenuItemGroup::items()
-{
- return QQmlListProperty<QQuickPlatformMenuItem>(this, nullptr, items_append, items_count, items_at, items_clear);
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::MenuItemGroup::addItem(MenuItem item)
-
- Adds an \a item to the group.
-*/
-void QQuickPlatformMenuItemGroup::addItem(QQuickPlatformMenuItem *item)
-{
- if (!item || m_items.contains(item))
- return;
-
- m_items.append(item);
- item->setGroup(this);
-
- connect(item, &QQuickPlatformMenuItem::checkedChanged, this, &QQuickPlatformMenuItemGroup::updateCurrent);
- connect(item, &QQuickPlatformMenuItem::triggered, this, &QQuickPlatformMenuItemGroup::activateItem);
- connect(item, &QQuickPlatformMenuItem::hovered, this, &QQuickPlatformMenuItemGroup::hoverItem);
-
- if (m_exclusive && item->isChecked())
- setCheckedItem(item);
-
- emit itemsChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::MenuItemGroup::removeItem(MenuItem item)
-
- Removes an \a item from the group.
-*/
-void QQuickPlatformMenuItemGroup::removeItem(QQuickPlatformMenuItem *item)
-{
- if (!item || !m_items.contains(item))
- return;
-
- m_items.removeOne(item);
- item->setGroup(nullptr);
-
- disconnect(item, &QQuickPlatformMenuItem::checkedChanged, this, &QQuickPlatformMenuItemGroup::updateCurrent);
- disconnect(item, &QQuickPlatformMenuItem::triggered, this, &QQuickPlatformMenuItemGroup::activateItem);
- disconnect(item, &QQuickPlatformMenuItem::hovered, this, &QQuickPlatformMenuItemGroup::hoverItem);
-
- if (m_checkedItem == item)
- setCheckedItem(nullptr);
-
- emit itemsChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::MenuItemGroup::clear()
-
- Removes all items from the group.
-*/
-void QQuickPlatformMenuItemGroup::clear()
-{
- if (m_items.isEmpty())
- return;
-
- for (QQuickPlatformMenuItem *item : qAsConst(m_items)) {
- item->setGroup(nullptr);
- disconnect(item, &QQuickPlatformMenuItem::checkedChanged, this, &QQuickPlatformMenuItemGroup::updateCurrent);
- disconnect(item, &QQuickPlatformMenuItem::triggered, this, &QQuickPlatformMenuItemGroup::activateItem);
- disconnect(item, &QQuickPlatformMenuItem::hovered, this, &QQuickPlatformMenuItemGroup::hoverItem);
- }
-
- setCheckedItem(nullptr);
-
- m_items.clear();
- emit itemsChanged();
-}
-
-QQuickPlatformMenuItem *QQuickPlatformMenuItemGroup::findCurrent() const
-{
- for (QQuickPlatformMenuItem *item : m_items) {
- if (item->isChecked())
- return item;
- }
- return nullptr;
-}
-
-void QQuickPlatformMenuItemGroup::updateCurrent()
-{
- if (!m_exclusive)
- return;
-
- QQuickPlatformMenuItem *item = qobject_cast<QQuickPlatformMenuItem*>(sender());
- if (item && item->isChecked())
- setCheckedItem(item);
-}
-
-void QQuickPlatformMenuItemGroup::activateItem()
-{
- QQuickPlatformMenuItem *item = qobject_cast<QQuickPlatformMenuItem*>(sender());
- if (item)
- emit triggered(item);
-}
-
-void QQuickPlatformMenuItemGroup::hoverItem()
-{
- QQuickPlatformMenuItem *item = qobject_cast<QQuickPlatformMenuItem*>(sender());
- if (item)
- emit hovered(item);
-}
-
-void QQuickPlatformMenuItemGroup::items_append(QQmlListProperty<QQuickPlatformMenuItem> *prop, QQuickPlatformMenuItem *item)
-{
- QQuickPlatformMenuItemGroup *group = static_cast<QQuickPlatformMenuItemGroup *>(prop->object);
- group->addItem(item);
-}
-
-qsizetype QQuickPlatformMenuItemGroup::items_count(QQmlListProperty<QQuickPlatformMenuItem> *prop)
-{
- QQuickPlatformMenuItemGroup *group = static_cast<QQuickPlatformMenuItemGroup *>(prop->object);
- return group->m_items.count();
-}
-
-QQuickPlatformMenuItem *QQuickPlatformMenuItemGroup::items_at(QQmlListProperty<QQuickPlatformMenuItem> *prop, qsizetype index)
-{
- QQuickPlatformMenuItemGroup *group = static_cast<QQuickPlatformMenuItemGroup *>(prop->object);
- return group->m_items.value(index);
-}
-
-void QQuickPlatformMenuItemGroup::items_clear(QQmlListProperty<QQuickPlatformMenuItem> *prop)
-{
- QQuickPlatformMenuItemGroup *group = static_cast<QQuickPlatformMenuItemGroup *>(prop->object);
- group->clear();
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickplatformmenuitemgroup_p.cpp"
diff --git a/src/labs/platform/qquickplatformmenuitemgroup_p.h b/src/labs/platform/qquickplatformmenuitemgroup_p.h
deleted file mode 100644
index 7407d266..00000000
--- a/src/labs/platform/qquickplatformmenuitemgroup_p.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Templates module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMMENUITEMGROUP_P_H
-#define QQUICKPLATFORMMENUITEMGROUP_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtCore/qlist.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPlatformMenuItem;
-class QQuickPlatformMenuItemGroupPrivate;
-
-class QQuickPlatformMenuItemGroup : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged FINAL)
- Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
- Q_PROPERTY(bool exclusive READ isExclusive WRITE setExclusive NOTIFY exclusiveChanged FINAL)
- Q_PROPERTY(QQuickPlatformMenuItem *checkedItem READ checkedItem WRITE setCheckedItem NOTIFY checkedItemChanged FINAL)
- Q_PROPERTY(QQmlListProperty<QQuickPlatformMenuItem> items READ items NOTIFY itemsChanged FINAL)
-
-public:
- explicit QQuickPlatformMenuItemGroup(QObject *parent = nullptr);
- ~QQuickPlatformMenuItemGroup();
-
- bool isEnabled() const;
- void setEnabled(bool enabled);
-
- bool isVisible() const;
- void setVisible(bool visible);
-
- bool isExclusive() const;
- void setExclusive(bool exclusive);
-
- QQuickPlatformMenuItem *checkedItem() const;
- void setCheckedItem(QQuickPlatformMenuItem *item);
-
- QQmlListProperty<QQuickPlatformMenuItem> items();
-
- Q_INVOKABLE void addItem(QQuickPlatformMenuItem *item);
- Q_INVOKABLE void removeItem(QQuickPlatformMenuItem *item);
- Q_INVOKABLE void clear();
-
-Q_SIGNALS:
- void triggered(QQuickPlatformMenuItem *item);
- void hovered(QQuickPlatformMenuItem *item);
-
- void enabledChanged();
- void visibleChanged();
- void exclusiveChanged();
- void checkedItemChanged();
- void itemsChanged();
-
-private:
- QQuickPlatformMenuItem *findCurrent() const;
- void updateCurrent();
- void activateItem();
- void hoverItem();
-
- static void items_append(QQmlListProperty<QQuickPlatformMenuItem> *prop, QQuickPlatformMenuItem *obj);
- static qsizetype items_count(QQmlListProperty<QQuickPlatformMenuItem> *prop);
- static QQuickPlatformMenuItem *items_at(QQmlListProperty<QQuickPlatformMenuItem> *prop, qsizetype index);
- static void items_clear(QQmlListProperty<QQuickPlatformMenuItem> *prop);
-
- bool m_enabled;
- bool m_visible;
- bool m_exclusive;
- QQuickPlatformMenuItem *m_checkedItem;
- QList<QQuickPlatformMenuItem*> m_items;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformMenuItemGroup)
-
-#endif // QQUICKPLATFORMMENUITEMGROUP_P_H
diff --git a/src/labs/platform/qquickplatformmenuseparator.cpp b/src/labs/platform/qquickplatformmenuseparator.cpp
deleted file mode 100644
index f29d5b9e..00000000
--- a/src/labs/platform/qquickplatformmenuseparator.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformmenuseparator_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype MenuSeparator
- \inherits MenuItem
-//! \instantiates QQuickPlatformMenuSeparator
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief A native menu separator.
-
- The MenuSeparator type is provided for convenience. It is a MenuItem
- that has the \l {MenuItem::}{separator} property set to \c true by default.
-
- \image qtlabsplatform-menubar.png
-
- \labs
-
- \sa Menu, MenuItem
-*/
-
-QQuickPlatformMenuSeparator::QQuickPlatformMenuSeparator(QObject *parent)
- : QQuickPlatformMenuItem(parent)
-{
- setSeparator(true);
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/qquickplatformmenuseparator_p.h b/src/labs/platform/qquickplatformmenuseparator_p.h
deleted file mode 100644
index 9fe973c5..00000000
--- a/src/labs/platform/qquickplatformmenuseparator_p.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMMENUSEPARATOR_P_H
-#define QQUICKPLATFORMMENUSEPARATOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickplatformmenuitem_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPlatformMenuSeparator : public QQuickPlatformMenuItem
-{
- Q_OBJECT
-
-public:
- explicit QQuickPlatformMenuSeparator(QObject *parent = nullptr);
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformMenuSeparator)
-
-#endif // QQUICKPLATFORMMENUSEPARATOR_P_H
diff --git a/src/labs/platform/qquickplatformmessagedialog.cpp b/src/labs/platform/qquickplatformmessagedialog.cpp
deleted file mode 100644
index f2e0970c..00000000
--- a/src/labs/platform/qquickplatformmessagedialog.cpp
+++ /dev/null
@@ -1,382 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformmessagedialog_p.h"
-
-#include <QtQml/qqmlinfo.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype MessageDialog
- \inherits Dialog
-//! \instantiates QQuickPlatformMessageDialog
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief A native message dialog.
-
- The MessageDialog type provides a QML API for native platform message dialogs.
-
- \image qtlabsplatform-messagedialog-android.png
-
- A message dialog is used to inform the user, or ask the user a question.
- A message dialog displays a primary \l text to alert the user to a situation,
- an \l {informativeText}{informative text} to further explain the alert or to
- ask the user a question, and an optional \l {detailedText}{detailed text} to
- provide even more data if the user requests it. A message box can also display
- a configurable set of \l buttons for accepting a user response.
-
- To show a message dialog, construct an instance of MessageDialog, set the
- desired properties, and call \l {Dialog::}{open()}.
-
- \code
- MessageDialog {
- buttons: MessageDialog.Ok
- text: "The document has been modified."
- }
- \endcode
-
- The user must click the \uicontrol OK button to dismiss the message dialog.
- A modal message dialog blocks the rest of the GUI until the message is
- dismissed.
-
- A more elaborate approach than just alerting the user to an event is to
- also ask the user what to do about it. Store the question in the
- \l {informativeText}{informative text} property, and specify the \l buttons
- property to the set of buttons you want as the set of user responses. The
- buttons are specified by combining values using the bitwise OR operator. The
- display order for the buttons is platform dependent.
-
- \code
- MessageDialog {
- text: "The document has been modified."
- informativeText: "Do you want to save your changes?"
- buttons: MessageDialog.Ok | MessageDialog.Cancel
-
- onAccepted: document.save()
- }
- \endcode
-
- \image qtlabsplatform-messagedialog-informative-android.png
-
- The \l clicked() signal passes the information of which button was clicked.
-
- A native platform message dialog is currently available on the following platforms:
-
- \list
- \li iOS
- \li Android
- \endlist
-
- \input includes/widgets.qdocinc 1
-
- \labs
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::clicked(button)
-
- This signal is emitted when a dialog \a button is clicked.
-
- \sa buttons
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::okClicked()
-
- This signal is emitted when \uicontrol Ok is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::saveClicked()
-
- This signal is emitted when \uicontrol Save is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::saveAllClicked()
-
- This signal is emitted when \uicontrol {Save All} is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::openClicked()
-
- This signal is emitted when \uicontrol Open is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::yesClicked()
-
- This signal is emitted when \uicontrol Yes is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::yesToAllClicked()
-
- This signal is emitted when \uicontrol {Yes To All} is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::noClicked()
-
- This signal is emitted when \uicontrol No is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::noToAllClicked()
-
- This signal is emitted when \uicontrol {No To All} is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::abortClicked()
-
- This signal is emitted when \uicontrol Abort is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::retryClicked()
-
- This signal is emitted when \uicontrol Retry is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::ignoreClicked()
-
- This signal is emitted when \uicontrol Ignore is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::closeClicked()
-
- This signal is emitted when \uicontrol Close is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::cancelClicked()
-
- This signal is emitted when \uicontrol Cancel is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::discardClicked()
-
- This signal is emitted when \uicontrol Discard is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::helpClicked()
-
- This signal is emitted when \uicontrol Help is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::applyClicked()
-
- This signal is emitted when \uicontrol Apply is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::resetClicked()
-
- This signal is emitted when \uicontrol Reset is clicked.
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::MessageDialog::restoreDefaultsClicked()
-
- This signal is emitted when \uicontrol {Restore Defaults} is clicked.
-*/
-
-QQuickPlatformMessageDialog::QQuickPlatformMessageDialog(QObject *parent)
- : QQuickPlatformDialog(QPlatformTheme::MessageDialog, parent),
- m_options(QMessageDialogOptions::create())
-{
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::MessageDialog::text
-
- This property holds the text to be displayed on the message dialog.
-
- \sa informativeText, detailedText
-*/
-QString QQuickPlatformMessageDialog::text() const
-{
- return m_options->text();
-}
-
-void QQuickPlatformMessageDialog::setText(const QString &text)
-{
- if (m_options->text() == text)
- return;
-
- m_options->setText(text);
- emit textChanged();
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::MessageDialog::informativeText
-
- This property holds the informative text that provides a fuller description for the message.
-
- Informative text can be used to expand upon the \l text to give more information to the user.
-
- \sa text, detailedText
-*/
-QString QQuickPlatformMessageDialog::informativeText() const
-{
- return m_options->informativeText();
-}
-
-void QQuickPlatformMessageDialog::setInformativeText(const QString &text)
-{
- if (m_options->informativeText() == text)
- return;
-
- m_options->setInformativeText(text);
- emit informativeTextChanged();
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::MessageDialog::detailedText
-
- This property holds the text to be displayed in the details area.
-
- \sa text, informativeText
-*/
-QString QQuickPlatformMessageDialog::detailedText() const
-{
- return m_options->detailedText();
-}
-
-void QQuickPlatformMessageDialog::setDetailedText(const QString &text)
-{
- if (m_options->detailedText() == text)
- return;
-
- m_options->setDetailedText(text);
- emit detailedTextChanged();
-}
-
-/*!
- \qmlproperty flags Qt.labs.platform::MessageDialog::buttons
-
- This property holds a combination of buttons that are used by the message dialog.
- The default value is \c MessageDialog.NoButton.
-
- Possible flags:
- \value MessageDialog.Ok An "OK" button defined with the \c AcceptRole.
- \value MessageDialog.Open An "Open" button defined with the \c AcceptRole.
- \value MessageDialog.Save A "Save" button defined with the \c AcceptRole.
- \value MessageDialog.Cancel A "Cancel" button defined with the \c RejectRole.
- \value MessageDialog.Close A "Close" button defined with the \c RejectRole.
- \value MessageDialog.Discard A "Discard" or "Don't Save" button, depending on the platform, defined with the \c DestructiveRole.
- \value MessageDialog.Apply An "Apply" button defined with the \c ApplyRole.
- \value MessageDialog.Reset A "Reset" button defined with the \c ResetRole.
- \value MessageDialog.RestoreDefaults A "Restore Defaults" button defined with the \c ResetRole.
- \value MessageDialog.Help A "Help" button defined with the \c HelpRole.
- \value MessageDialog.SaveAll A "Save All" button defined with the \c AcceptRole.
- \value MessageDialog.Yes A "Yes" button defined with the \c YesRole.
- \value MessageDialog.YesToAll A "Yes to All" button defined with the \c YesRole.
- \value MessageDialog.No A "No" button defined with the \c NoRole.
- \value MessageDialog.NoToAll A "No to All" button defined with the \c NoRole.
- \value MessageDialog.Abort An "Abort" button defined with the \c RejectRole.
- \value MessageDialog.Retry A "Retry" button defined with the \c AcceptRole.
- \value MessageDialog.Ignore An "Ignore" button defined with the \c AcceptRole.
- \value MessageDialog.NoButton The dialog has no buttons.
-
- \sa clicked()
-*/
-QPlatformDialogHelper::StandardButtons QQuickPlatformMessageDialog::buttons() const
-{
- return m_options->standardButtons();
-}
-
-void QQuickPlatformMessageDialog::setButtons(QPlatformDialogHelper::StandardButtons buttons)
-{
- if (m_options->standardButtons() == buttons)
- return;
-
- m_options->setStandardButtons(buttons);
- emit buttonsChanged();
-}
-
-void QQuickPlatformMessageDialog::onCreate(QPlatformDialogHelper *dialog)
-{
- if (QPlatformMessageDialogHelper *messageDialog = qobject_cast<QPlatformMessageDialogHelper *>(dialog)) {
- connect(messageDialog, &QPlatformMessageDialogHelper::clicked, this, &QQuickPlatformMessageDialog::handleClick);
- messageDialog->setOptions(m_options);
- }
-}
-
-void QQuickPlatformMessageDialog::onShow(QPlatformDialogHelper *dialog)
-{
- m_options->setWindowTitle(title());
- if (QPlatformMessageDialogHelper *messageDialog = qobject_cast<QPlatformMessageDialogHelper *>(dialog))
- messageDialog->setOptions(m_options);
-}
-
-void QQuickPlatformMessageDialog::handleClick(QPlatformDialogHelper::StandardButton button)
-{
- done(button);
- emit clicked(button);
-
- switch (button) {
- case QPlatformDialogHelper::Ok: emit okClicked(); break;
- case QPlatformDialogHelper::Save: emit saveClicked(); break;
- case QPlatformDialogHelper::SaveAll: emit saveAllClicked(); break;
- case QPlatformDialogHelper::Open: emit openClicked(); break;
- case QPlatformDialogHelper::Yes: emit yesClicked(); break;
- case QPlatformDialogHelper::YesToAll: emit yesToAllClicked(); break;
- case QPlatformDialogHelper::No: emit noClicked(); break;
- case QPlatformDialogHelper::NoToAll: emit noToAllClicked(); break;
- case QPlatformDialogHelper::Abort: emit abortClicked(); break;
- case QPlatformDialogHelper::Retry: emit retryClicked(); break;
- case QPlatformDialogHelper::Ignore: emit ignoreClicked(); break;
- case QPlatformDialogHelper::Close: emit closeClicked(); break;
- case QPlatformDialogHelper::Cancel: emit cancelClicked(); break;
- case QPlatformDialogHelper::Discard: emit discardClicked(); break;
- case QPlatformDialogHelper::Help: emit helpClicked(); break;
- case QPlatformDialogHelper::Apply: emit applyClicked(); break;
- case QPlatformDialogHelper::Reset: emit resetClicked(); break;
- case QPlatformDialogHelper::RestoreDefaults: emit restoreDefaultsClicked(); break;
- default: qmlWarning(this) << "unknown button" << int(button); break;
- }
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/qquickplatformmessagedialog_p.h b/src/labs/platform/qquickplatformmessagedialog_p.h
deleted file mode 100644
index 9434a927..00000000
--- a/src/labs/platform/qquickplatformmessagedialog_p.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMMESSAGEDIALOG_P_H
-#define QQUICKPLATFORMMESSAGEDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickplatformdialog_p.h"
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPlatformMessageDialog : public QQuickPlatformDialog
-{
- Q_OBJECT
- Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged FINAL)
- Q_PROPERTY(QString informativeText READ informativeText WRITE setInformativeText NOTIFY informativeTextChanged FINAL)
- Q_PROPERTY(QString detailedText READ detailedText WRITE setDetailedText NOTIFY detailedTextChanged FINAL)
- Q_PROPERTY(QPlatformDialogHelper::StandardButtons buttons READ buttons WRITE setButtons NOTIFY buttonsChanged FINAL)
- Q_FLAGS(QPlatformDialogHelper::StandardButtons)
-
-public:
- explicit QQuickPlatformMessageDialog(QObject *parent = nullptr);
-
- QString text() const;
- void setText(const QString &text);
-
- QString informativeText() const;
- void setInformativeText(const QString &text);
-
- QString detailedText() const;
- void setDetailedText(const QString &text);
-
- QPlatformDialogHelper::StandardButtons buttons() const;
- void setButtons(QPlatformDialogHelper::StandardButtons buttons);
-
-Q_SIGNALS:
- void textChanged();
- void informativeTextChanged();
- void detailedTextChanged();
- void buttonsChanged();
- void clicked(QPlatformDialogHelper::StandardButton button);
-
- void okClicked();
- void saveClicked();
- void saveAllClicked();
- void openClicked();
- void yesClicked();
- void yesToAllClicked();
- void noClicked();
- void noToAllClicked();
- void abortClicked();
- void retryClicked();
- void ignoreClicked();
- void closeClicked();
- void cancelClicked();
- void discardClicked();
- void helpClicked();
- void applyClicked();
- void resetClicked();
- void restoreDefaultsClicked();
-
-protected:
- void onCreate(QPlatformDialogHelper *dialog) override;
- void onShow(QPlatformDialogHelper *dialog) override;
-
-private Q_SLOTS:
- void handleClick(QPlatformDialogHelper::StandardButton button);
-
-private:
- QSharedPointer<QMessageDialogOptions> m_options;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformMessageDialog)
-
-#endif // QQUICKPLATFORMMESSAGEDIALOG_P_H
diff --git a/src/labs/platform/qquickplatformstandardpaths.cpp b/src/labs/platform/qquickplatformstandardpaths.cpp
deleted file mode 100644
index a6fff1c0..00000000
--- a/src/labs/platform/qquickplatformstandardpaths.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformstandardpaths_p.h"
-
-#include <QtQml/qqmlengine.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype StandardPaths
- \inherits QtObject
-//! \instantiates QQuickPlatformStandardPaths
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief Provides access to the standard system paths.
-
- The StandardPaths singleton type provides methods for querying the standard
- system paths. The standard paths are mostly useful in conjunction with the
- FileDialog and FolderDialog types.
-
- \qml
- FileDialog {
- folder: StandardPaths.writableLocation(StandardPaths.DocumentsLocation)
- }
- \endqml
-
- \labs
-
- \sa FileDialog, FolderDialog, QStandardPaths
-*/
-
-static QList<QUrl> toUrlList(const QStringList &paths)
-{
- QList<QUrl> urls;
- urls.reserve(paths.size());
- for (const QString &path : paths)
- urls += QUrl::fromLocalFile(path);
- return urls;
-}
-
-QQuickPlatformStandardPaths::QQuickPlatformStandardPaths(QObject *parent)
- : QObject(parent)
-{
-}
-
-QObject *QQuickPlatformStandardPaths::create(QQmlEngine *engine, QJSEngine *scriptEngine)
-{
- Q_UNUSED(scriptEngine);
- return new QQuickPlatformStandardPaths(engine);
-}
-
-/*!
- \qmlmethod string Qt.labs.platform::StandardPaths::displayName(StandardLocation type)
-
- \include standardpath/functiondocs.qdocinc displayName
-
- \sa QStandardPaths::displayName()
-*/
-QString QQuickPlatformStandardPaths::displayName(QStandardPaths::StandardLocation type)
-{
- return QStandardPaths::displayName(type);
-}
-
-/*!
- \qmlmethod url Qt.labs.platform::StandardPaths::findExecutable(string executableName, list<string> paths)
-
- \include standardpath/functiondocs.qdocinc findExecutable
-
- \sa QStandardPaths::findExecutable()
-*/
-QUrl QQuickPlatformStandardPaths::findExecutable(const QString &executableName, const QStringList &paths)
-{
- return QUrl::fromLocalFile(QStandardPaths::findExecutable(executableName, paths));
-}
-
-/*!
- \qmlmethod url Qt.labs.platform::StandardPaths::locate(StandardLocation type, string fileName, LocateOptions options)
-
- \include standardpath/functiondocs.qdocinc locate
-
- \sa QStandardPaths::locate()
-*/
-QUrl QQuickPlatformStandardPaths::locate(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options)
-{
- return QUrl::fromLocalFile(QStandardPaths::locate(type, fileName, options));
-}
-
-/*!
- \qmlmethod list<url> Qt.labs.platform::StandardPaths::locateAll(StandardLocation type, string fileName, LocateOptions options)
-
- \include standardpath/functiondocs.qdocinc locateAll
-
- \sa QStandardPaths::locateAll()
-*/
-QList<QUrl> QQuickPlatformStandardPaths::locateAll(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options)
-{
- return toUrlList(QStandardPaths::locateAll(type, fileName, options));
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::StandardPaths::setTestModeEnabled(bool testMode)
-
- \include standardpath/functiondocs.qdocinc setTestModeEnabled
-
- \sa QStandardPaths::setTestModeEnabled()
-*/
-void QQuickPlatformStandardPaths::setTestModeEnabled(bool testMode)
-{
- QStandardPaths::setTestModeEnabled(testMode);
-}
-
-/*!
- \qmlmethod list<url> Qt.labs.platform::StandardPaths::standardLocations(StandardLocation type)
-
- \include standardpath/functiondocs.qdocinc standardLocations
-
- \sa QStandardPaths::standardLocations()
-*/
-QList<QUrl> QQuickPlatformStandardPaths::standardLocations(QStandardPaths::StandardLocation type)
-{
- return toUrlList(QStandardPaths::standardLocations(type));
-}
-
-/*!
- \qmlmethod url Qt.labs.platform::StandardPaths::writableLocation(StandardLocation type)
-
- \include standardpath/functiondocs.qdocinc writableLocation
-
- \sa QStandardPaths::writableLocation()
-*/
-QUrl QQuickPlatformStandardPaths::writableLocation(QStandardPaths::StandardLocation type)
-{
- return QUrl::fromLocalFile(QStandardPaths::writableLocation(type));
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/qquickplatformstandardpaths_p.h b/src/labs/platform/qquickplatformstandardpaths_p.h
deleted file mode 100644
index e2f4e11e..00000000
--- a/src/labs/platform/qquickplatformstandardpaths_p.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMSTANDARDPATHS_P_H
-#define QQUICKPLATFORMSTANDARDPATHS_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtCore/qstandardpaths.h>
-#include <QtCore/qurl.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQmlEngine;
-class QJSEngine;
-
-class QQuickPlatformStandardPaths : public QObject
-{
- Q_OBJECT
- Q_ENUMS(QStandardPaths::StandardLocation QStandardPaths::LocateOptions)
-
-public:
- explicit QQuickPlatformStandardPaths(QObject *parent = nullptr);
-
- static QObject *create(QQmlEngine *engine, QJSEngine *scriptEngine);
-
- Q_INVOKABLE static QString displayName(QStandardPaths::StandardLocation type);
- Q_INVOKABLE static QUrl findExecutable(const QString &executableName, const QStringList &paths = QStringList());
- Q_INVOKABLE static QUrl locate(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options = QStandardPaths::LocateFile);
- Q_INVOKABLE static QList<QUrl> locateAll(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options = QStandardPaths::LocateFile);
- Q_INVOKABLE static void setTestModeEnabled(bool testMode);
- Q_INVOKABLE static QList<QUrl> standardLocations(QStandardPaths::StandardLocation type);
- Q_INVOKABLE static QUrl writableLocation(QStandardPaths::StandardLocation type);
-
-private:
- Q_DISABLE_COPY(QQuickPlatformStandardPaths)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformStandardPaths)
-Q_DECLARE_METATYPE(QStandardPaths::StandardLocation)
-Q_DECLARE_METATYPE(QStandardPaths::LocateOptions)
-
-#endif // QQUICKPLATFORMSTANDARDPATHS_P_H
diff --git a/src/labs/platform/qquickplatformsystemtrayicon.cpp b/src/labs/platform/qquickplatformsystemtrayicon.cpp
deleted file mode 100644
index b97e379f..00000000
--- a/src/labs/platform/qquickplatformsystemtrayicon.cpp
+++ /dev/null
@@ -1,443 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformsystemtrayicon_p.h"
-#include "qquickplatformmenu_p.h"
-#include "qquickplatformiconloader_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtGui/private/qguiapplication_p.h>
-
-#include "widgets/qwidgetplatform_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype SystemTrayIcon
- \inherits QtObject
-//! \instantiates QQuickPlatformSystemTrayIcon
- \inqmlmodule Qt.labs.platform
- \since 5.8
- \brief A system tray icon.
-
- The SystemTrayIcon type provides an icon for an application in the system tray.
-
- Many desktop platforms provide a special system tray or notification area,
- where applications can display icons and notification messages.
-
- \image qtlabsplatform-systemtrayicon.png
-
- The following example shows how to create a system tray icon, and how to make
- use of the \l activated() signal:
-
- \code
- SystemTrayIcon {
- visible: true
- icon.source: "qrc:/images/tray-icon.png"
-
- onActivated: {
- window.show()
- window.raise()
- window.requestActivate()
- }
- }
- \endcode
-
- \section2 Tray menu
-
- SystemTrayIcon can have a menu that opens when the icon is activated.
-
- \image qtlabsplatform-systemtrayicon-menu.png
-
- The following example illustrates how to assign a \l Menu to a system tray icon:
-
- \code
- SystemTrayIcon {
- visible: true
- icon.source: "qrc:/images/tray-icon.png"
-
- menu: Menu {
- MenuItem {
- text: qsTr("Quit")
- onTriggered: Qt.quit()
- }
- }
- }
- \endcode
-
- \section2 Notification messages
-
- SystemTrayIcon can display notification messages.
-
- \image qtlabsplatform-systemtrayicon-message.png
-
- The following example presents how to show a notification message using
- \l showMessage(), and how to make use of the \l messageClicked() signal:
-
- \code
- SystemTrayIcon {
- visible: true
- icon.source: "qrc:/images/tray-icon.png"
-
- onMessageClicked: console.log("Message clicked")
- Component.onCompleted: showMessage("Message title", "Something important came up. Click this to know more.")
- }
- \endcode
-
- \section2 Availability
-
- A native system tray icon is currently \l available on the following platforms:
-
- \list
- \li All window managers and independent tray implementations for X11 that implement the
- \l{http://standards.freedesktop.org/systemtray-spec/systemtray-spec-0.2.html}
- {freedesktop.org XEmbed system tray specification}.
- \li All desktop environments that implement the
- \l{http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/StatusNotifierItem}
- {freedesktop.org D-Bus StatusNotifierItem specification}, including recent versions of KDE and Unity.
- \li All supported versions of macOS. Note that the Growl notification system must be installed
- for showMessage() to display messages on OS X prior to 10.8 (Mountain Lion).
- \endlist
-
- \input includes/widgets.qdocinc 1
-
- \labs
-
- \sa Menu
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::SystemTrayIcon::activated(ActivationReason reason)
-
- This signal is emitted when the system tray icon is activated by the user. The
- \a reason argument specifies how the system tray icon was activated.
-
- Available reasons:
-
- \value SystemTrayIcon.Unknown Unknown reason
- \value SystemTrayIcon.Context The context menu for the system tray icon was requested
- \value SystemTrayIcon.DoubleClick The system tray icon was double clicked
- \value SystemTrayIcon.Trigger The system tray icon was clicked
- \value SystemTrayIcon.MiddleClick The system tray icon was clicked with the middle mouse button
-*/
-
-/*!
- \qmlsignal Qt.labs.platform::SystemTrayIcon::messageClicked()
-
- This signal is emitted when a notification message is clicked by the user.
-
- \sa showMessage()
-*/
-
-Q_DECLARE_LOGGING_CATEGORY(qtLabsPlatformTray)
-
-QQuickPlatformSystemTrayIcon::QQuickPlatformSystemTrayIcon(QObject *parent)
- : QObject(parent),
- m_complete(false),
- m_visible(false),
- m_menu(nullptr),
- m_iconLoader(nullptr),
- m_handle(nullptr)
-{
- m_handle = QGuiApplicationPrivate::platformTheme()->createPlatformSystemTrayIcon();
- if (!m_handle)
- m_handle = QWidgetPlatform::createSystemTrayIcon(this);
- qCDebug(qtLabsPlatformTray) << "SystemTrayIcon ->" << m_handle;
-
- if (m_handle) {
- connect(m_handle, &QPlatformSystemTrayIcon::activated, this, &QQuickPlatformSystemTrayIcon::activated);
- connect(m_handle, &QPlatformSystemTrayIcon::messageClicked, this, &QQuickPlatformSystemTrayIcon::messageClicked);
- }
-}
-
-QQuickPlatformSystemTrayIcon::~QQuickPlatformSystemTrayIcon()
-{
- if (m_menu)
- m_menu->setSystemTrayIcon(nullptr);
- cleanup();
- delete m_iconLoader;
- m_iconLoader = nullptr;
- delete m_handle;
- m_handle = nullptr;
-}
-
-QPlatformSystemTrayIcon *QQuickPlatformSystemTrayIcon::handle() const
-{
- return m_handle;
-}
-
-/*!
- \readonly
- \qmlproperty bool Qt.labs.platform::SystemTrayIcon::available
-
- This property holds whether the system tray is available.
-*/
-bool QQuickPlatformSystemTrayIcon::isAvailable() const
-{
- return m_handle && m_handle->isSystemTrayAvailable();
-}
-
-/*!
- \readonly
- \qmlproperty bool Qt.labs.platform::SystemTrayIcon::supportsMessages
-
- This property holds whether the system tray icon supports notification messages.
-
- \sa showMessage()
-*/
-bool QQuickPlatformSystemTrayIcon::supportsMessages() const
-{
- return m_handle && m_handle->supportsMessages();
-}
-
-/*!
- \qmlproperty bool Qt.labs.platform::SystemTrayIcon::visible
-
- This property holds whether the system tray icon is visible.
-
- The default value is \c false.
-*/
-bool QQuickPlatformSystemTrayIcon::isVisible() const
-{
- return m_visible;
-}
-
-void QQuickPlatformSystemTrayIcon::setVisible(bool visible)
-{
- if (m_visible == visible)
- return;
-
- if (m_handle && m_complete) {
- if (visible)
- init();
- else
- cleanup();
- }
-
- m_visible = visible;
- emit visibleChanged();
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::SystemTrayIcon::tooltip
-
- This property holds the tooltip of the system tray icon.
-*/
-QString QQuickPlatformSystemTrayIcon::tooltip() const
-{
- return m_tooltip;
-}
-
-void QQuickPlatformSystemTrayIcon::setTooltip(const QString &tooltip)
-{
- if (m_tooltip == tooltip)
- return;
-
- if (m_handle && m_complete)
- m_handle->updateToolTip(tooltip);
-
- m_tooltip = tooltip;
- emit tooltipChanged();
-}
-
-/*!
- \qmlproperty Menu Qt.labs.platform::SystemTrayIcon::menu
-
- This property holds a menu for the system tray icon.
-*/
-QQuickPlatformMenu *QQuickPlatformSystemTrayIcon::menu() const
-{
- return m_menu;
-}
-
-void QQuickPlatformSystemTrayIcon::setMenu(QQuickPlatformMenu *menu)
-{
- if (m_menu == menu)
- return;
-
- if (m_menu)
- m_menu->setSystemTrayIcon(nullptr);
- if (menu) {
- menu->setSystemTrayIcon(this);
- if (m_handle && m_complete && menu->create())
- m_handle->updateMenu(menu->handle());
- }
-
- m_menu = menu;
- emit menuChanged();
-}
-
-/*!
- \since Qt.labs.platform 1.1 (Qt 5.12)
- \qmlproperty rect Qt.labs.platform::SystemTrayIcon::geometry
-
- This property holds the geometry of the system tray icon.
-*/
-QRect QQuickPlatformSystemTrayIcon::geometry() const
-{
- return m_handle ? m_handle->geometry() : QRect();
-}
-
-/*!
- \since Qt.labs.platform 1.1 (Qt 5.12)
- \qmlproperty url Qt.labs.platform::SystemTrayIcon::icon.source
- \qmlproperty string Qt.labs.platform::SystemTrayIcon::icon.name
- \qmlproperty bool Qt.labs.platform::SystemTrayIcon::icon.mask
-
- This property holds the system tray icon.
-
- \code
- SystemTrayIcon {
- icon.mask: true
- icon.source: "qrc:/images/tray-icon.png"
- }
- \endcode
-*/
-QQuickPlatformIcon QQuickPlatformSystemTrayIcon::icon() const
-{
- if (!m_iconLoader)
- return QQuickPlatformIcon();
-
- return m_iconLoader->icon();
-}
-
-void QQuickPlatformSystemTrayIcon::setIcon(const QQuickPlatformIcon &icon)
-{
- if (iconLoader()->icon() == icon)
- return;
-
- iconLoader()->setIcon(icon);
- emit iconChanged();
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::SystemTrayIcon::show()
-
- Shows the system tray icon.
-*/
-void QQuickPlatformSystemTrayIcon::show()
-{
- setVisible(true);
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::SystemTrayIcon::hide()
-
- Hides the system tray icon.
-*/
-void QQuickPlatformSystemTrayIcon::hide()
-{
- setVisible(false);
-}
-
-/*!
- \qmlmethod void Qt.labs.platform::SystemTrayIcon::showMessage(string title, string message, MessageIcon icon, int msecs)
-
- Shows a system tray message with the given \a title, \a message and \a icon
- for the time specified in \a msecs.
-
- \note System tray messages are dependent on the system configuration and user preferences,
- and may not appear at all. Therefore, it should not be relied upon as the sole means for providing
- critical information.
-
- \sa supportsMessages, messageClicked()
-*/
-void QQuickPlatformSystemTrayIcon::showMessage(const QString &title, const QString &msg, QPlatformSystemTrayIcon::MessageIcon icon, int msecs)
-{
- if (m_handle)
- m_handle->showMessage(title, msg, QIcon(), icon, msecs);
-}
-
-void QQuickPlatformSystemTrayIcon::init()
-{
- if (!m_handle)
- return;
-
- m_handle->init();
- if (m_menu && m_menu->create())
- m_handle->updateMenu(m_menu->handle());
- m_handle->updateToolTip(m_tooltip);
- if (m_iconLoader)
- m_iconLoader->setEnabled(true);
-}
-
-void QQuickPlatformSystemTrayIcon::cleanup()
-{
- if (m_handle)
- m_handle->cleanup();
- if (m_iconLoader)
- m_iconLoader->setEnabled(false);
-}
-
-void QQuickPlatformSystemTrayIcon::classBegin()
-{
-}
-
-void QQuickPlatformSystemTrayIcon::componentComplete()
-{
- m_complete = true;
- if (m_visible)
- init();
-}
-
-QQuickPlatformIconLoader *QQuickPlatformSystemTrayIcon::iconLoader() const
-{
- if (!m_iconLoader) {
- QQuickPlatformSystemTrayIcon *that = const_cast<QQuickPlatformSystemTrayIcon *>(this);
- static int slot = staticMetaObject.indexOfSlot("updateIcon()");
- m_iconLoader = new QQuickPlatformIconLoader(slot, that);
- m_iconLoader->setEnabled(m_complete);
- }
- return m_iconLoader;
-}
-
-void QQuickPlatformSystemTrayIcon::updateIcon()
-{
- if (!m_handle || !m_iconLoader)
- return;
-
- const QRect oldGeometry = m_handle->geometry();
-
- m_handle->updateIcon(m_iconLoader->toQIcon());
-
- if (oldGeometry != m_handle->geometry())
- emit geometryChanged();
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickplatformsystemtrayicon_p.cpp"
diff --git a/src/labs/platform/qquickplatformsystemtrayicon_p.h b/src/labs/platform/qquickplatformsystemtrayicon_p.h
deleted file mode 100644
index d7cc46c0..00000000
--- a/src/labs/platform/qquickplatformsystemtrayicon_p.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMSYSTEMTRAYICON_P_H
-#define QQUICKPLATFORMSYSTEMTRAYICON_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qurl.h>
-#include <QtCore/qrect.h>
-#include <QtGui/qpa/qplatformsystemtrayicon.h>
-#include <QtQml/qqmlparserstatus.h>
-#include <QtQml/qqml.h>
-
-#include "qquickplatformicon_p.h"
-
-QT_REQUIRE_CONFIG(systemtrayicon);
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPlatformMenu;
-class QQuickPlatformIconLoader;
-
-class QQuickPlatformSystemTrayIcon : public QObject, public QQmlParserStatus
-{
- Q_OBJECT
- Q_INTERFACES(QQmlParserStatus)
- Q_PROPERTY(bool available READ isAvailable CONSTANT FINAL)
- Q_PROPERTY(bool supportsMessages READ supportsMessages CONSTANT FINAL)
- Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
- Q_PROPERTY(QString tooltip READ tooltip WRITE setTooltip NOTIFY tooltipChanged FINAL)
- Q_PROPERTY(QQuickPlatformMenu *menu READ menu WRITE setMenu NOTIFY menuChanged FINAL)
- Q_PROPERTY(QRect geometry READ geometry NOTIFY geometryChanged FINAL REVISION(1, 1))
- Q_PROPERTY(QQuickPlatformIcon icon READ icon WRITE setIcon NOTIFY iconChanged FINAL REVISION(1, 1))
- Q_ENUMS(QPlatformSystemTrayIcon::ActivationReason QPlatformSystemTrayIcon::MessageIcon)
-
-public:
- explicit QQuickPlatformSystemTrayIcon(QObject *parent = nullptr);
- ~QQuickPlatformSystemTrayIcon();
-
- QPlatformSystemTrayIcon *handle() const;
-
- bool isAvailable() const;
- bool supportsMessages() const;
-
- bool isVisible() const;
- void setVisible(bool visible);
-
- QString tooltip() const;
- void setTooltip(const QString &tooltip);
-
- QQuickPlatformMenu *menu() const;
- void setMenu(QQuickPlatformMenu *menu);
-
- QRect geometry() const;
-
- QQuickPlatformIcon icon() const;
- void setIcon(const QQuickPlatformIcon &icon);
-
-public Q_SLOTS:
- void show();
- void hide();
-
- void showMessage(const QString &title, const QString &message,
- QPlatformSystemTrayIcon::MessageIcon iconType = QPlatformSystemTrayIcon::Information, int msecs = 10000);
-
-Q_SIGNALS:
- void activated(QPlatformSystemTrayIcon::ActivationReason reason);
- void messageClicked();
- void visibleChanged();
- void tooltipChanged();
- void menuChanged();
- Q_REVISION(2, 1) void geometryChanged();
- Q_REVISION(2, 1) void iconChanged();
-
-protected:
- void init();
- void cleanup();
-
- void classBegin() override;
- void componentComplete() override;
-
- QQuickPlatformIconLoader *iconLoader() const;
-
-private Q_SLOTS:
- void updateIcon();
-
-private:
- bool m_complete;
- bool m_visible;
- QString m_tooltip;
- QQuickPlatformMenu *m_menu;
- mutable QQuickPlatformIconLoader *m_iconLoader;
- QPlatformSystemTrayIcon *m_handle;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlatformSystemTrayIcon)
-Q_DECLARE_METATYPE(QPlatformSystemTrayIcon::ActivationReason)
-Q_DECLARE_METATYPE(QPlatformSystemTrayIcon::MessageIcon)
-
-#endif // QQUICKPLATFORMSYSTEMTRAYICON_P_H
diff --git a/src/labs/platform/qtlabsplatformplugin.cpp b/src/labs/platform/qtlabsplatformplugin.cpp
deleted file mode 100644
index 90bdb121..00000000
--- a/src/labs/platform/qtlabsplatformplugin.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Templates module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtQml/qqmlextensionplugin.h>
-#include <QtQml/qqml.h>
-#include <QtCore/qloggingcategory.h>
-
-#include "qquickplatformdialog_p.h"
-#include "qquickplatformcolordialog_p.h"
-#include "qquickplatformfiledialog_p.h"
-#include "qquickplatformfolderdialog_p.h"
-#include "qquickplatformfontdialog_p.h"
-#include "qquickplatformmessagedialog_p.h"
-
-#include "qquickplatformmenu_p.h"
-#include "qquickplatformmenubar_p.h"
-#include "qquickplatformmenuitem_p.h"
-#include "qquickplatformmenuitemgroup_p.h"
-#include "qquickplatformmenuseparator_p.h"
-
-#include "qquickplatformstandardpaths_p.h"
-#if QT_CONFIG(systemtrayicon)
-# include "qquickplatformsystemtrayicon_p.h"
-#endif
-
-#include "qquickplatformicon_p.h"
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(qtLabsPlatformDialogs, "qt.labs.platform.dialogs")
-Q_LOGGING_CATEGORY(qtLabsPlatformMenus, "qt.labs.platform.menus")
-Q_LOGGING_CATEGORY(qtLabsPlatformTray, "qt.labs.platform.tray")
-
-class QtLabsPlatformPlugin: public QQmlExtensionPlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
-
-public:
- QtLabsPlatformPlugin(QObject *parent = nullptr);
- void registerTypes(const char *uri) override;
-};
-
-QtLabsPlatformPlugin::QtLabsPlatformPlugin(QObject *parent) : QQmlExtensionPlugin(parent)
-{
-}
-
-void QtLabsPlatformPlugin::registerTypes(const char *uri)
-{
- qmlRegisterUncreatableType<QQuickPlatformDialog>(uri, 1, 0, "Dialog", QQuickPlatformDialog::tr("Dialog is an abstract base class"));
- qmlRegisterType<QQuickPlatformColorDialog>(uri, 1, 0, "ColorDialog");
- qmlRegisterType<QQuickPlatformFileDialog>(uri, 1, 0, "FileDialog");
- qmlRegisterAnonymousType<QQuickPlatformFileNameFilter>(uri, 1);
- qmlRegisterType<QQuickPlatformFolderDialog>(uri, 1, 0, "FolderDialog");
- qmlRegisterType<QQuickPlatformFontDialog>(uri, 1, 0, "FontDialog");
- qmlRegisterType<QQuickPlatformMessageDialog>(uri, 1, 0, "MessageDialog");
-
- qmlRegisterType<QQuickPlatformMenu>(uri, 1, 0, "Menu");
- qmlRegisterType<QQuickPlatformMenuBar>(uri, 1, 0, "MenuBar");
- qmlRegisterType<QQuickPlatformMenuItem>(uri, 1, 0, "MenuItem");
- qmlRegisterType<QQuickPlatformMenuItem, 1>(uri, 1, 1, "MenuItem");
- qmlRegisterType<QQuickPlatformMenuItemGroup>(uri, 1, 0, "MenuItemGroup");
- qmlRegisterType<QQuickPlatformMenuSeparator>(uri, 1, 0, "MenuSeparator");
- qRegisterMetaType<QPlatformMenu::MenuType>();
-
- qmlRegisterUncreatableType<QPlatformDialogHelper>(uri, 1, 0, "StandardButton", QQuickPlatformDialog::tr("Cannot create an instance of StandardButton"));
- qmlRegisterSingletonType<QQuickPlatformStandardPaths>(uri, 1, 0, "StandardPaths", QQuickPlatformStandardPaths::create);
- qRegisterMetaType<QStandardPaths::StandardLocation>();
- qRegisterMetaType<QStandardPaths::LocateOptions>();
-
-#if QT_CONFIG(systemtrayicon)
- qmlRegisterType<QQuickPlatformSystemTrayIcon>(uri, 1, 0, "SystemTrayIcon");
- qmlRegisterType<QQuickPlatformSystemTrayIcon, 1>(uri, 1, 1, "SystemTrayIcon");
- qRegisterMetaType<QPlatformSystemTrayIcon::ActivationReason>();
- qRegisterMetaType<QPlatformSystemTrayIcon::MessageIcon>();
-#endif
-
- qmlRegisterAnonymousType<QQuickPlatformIcon>(uri, 1);
- qRegisterMetaType<QQuickPlatformIcon>();
-}
-
-QT_END_NAMESPACE
-
-#include "qtlabsplatformplugin.moc"
diff --git a/src/labs/platform/widgets/qwidgetplatform_p.h b/src/labs/platform/widgets/qwidgetplatform_p.h
deleted file mode 100644
index cbdaa24a..00000000
--- a/src/labs/platform/widgets/qwidgetplatform_p.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QWIDGETPLATFORM_P_H
-#define QWIDGETPLATFORM_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qdebug.h>
-#include <QtCore/qcoreapplication.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtGui/qpa/qplatformdialoghelper.h>
-#include <QtGui/qpa/qplatformsystemtrayicon.h>
-#include <QtGui/qpa/qplatformmenu.h>
-
-#ifdef QT_WIDGETS_LIB
-#include <QtWidgets/qtwidgetsglobal.h>
-#if QT_CONFIG(colordialog)
-#include "qwidgetplatformcolordialog_p.h"
-#endif
-#if QT_CONFIG(filedialog)
-#include "qwidgetplatformfiledialog_p.h"
-#endif
-#if QT_CONFIG(fontdialog)
-#include "qwidgetplatformfontdialog_p.h"
-#endif
-#if QT_CONFIG(messagebox)
-#include "qwidgetplatformmessagedialog_p.h"
-#endif
-#if QT_CONFIG(menu)
-#include "qwidgetplatformmenu_p.h"
-#include "qwidgetplatformmenuitem_p.h"
-#endif
-#ifndef QT_NO_SYSTEMTRAYICON
-#include "qwidgetplatformsystemtrayicon_p.h"
-#endif
-#endif
-
-QT_BEGIN_NAMESPACE
-
-#ifndef QT_WIDGETS_LIB
-typedef QPlatformMenu QWidgetPlatformMenu;
-typedef QPlatformMenuItem QWidgetPlatformMenuItem;
-typedef QPlatformColorDialogHelper QWidgetPlatformColorDialog;
-typedef QPlatformFileDialogHelper QWidgetPlatformFileDialog;
-typedef QPlatformFontDialogHelper QWidgetPlatformFontDialog;
-typedef QPlatformMessageDialogHelper QWidgetPlatformMessageDialog;
-typedef QPlatformSystemTrayIcon QWidgetPlatformSystemTrayIcon;
-#endif
-
-namespace QWidgetPlatform
-{
- static inline bool isAvailable(const char *type)
- {
- if (!qApp->inherits("QApplication")) {
- qCritical("\nERROR: No native %s implementation available."
- "\nQt Labs Platform requires Qt Widgets on this setup."
- "\nAdd 'QT += widgets' to .pro and create QApplication in main().\n", type);
- return false;
- }
- return true;
- }
-
- template<typename T>
- static inline T *createWidget(const char *name, QObject *parent)
- {
- static bool available = isAvailable(name);
-#ifdef QT_WIDGETS_LIB
- if (available)
- return new T(parent);
-#else
- Q_UNUSED(parent);
- Q_UNUSED(available);
-#endif
- return nullptr;
- }
-
- static inline QPlatformMenu *createMenu(QObject *parent = nullptr) {
-#if defined(QT_WIDGETS_LIB) && QT_CONFIG(menu)
- return createWidget<QWidgetPlatformMenu>("Menu", parent);
-#else
- Q_UNUSED(parent);
- return nullptr;
-#endif
- }
- static inline QPlatformMenuItem *createMenuItem(QObject *parent = nullptr) {
-#if defined(QT_WIDGETS_LIB) && QT_CONFIG(menu)
- return createWidget<QWidgetPlatformMenuItem>("MenuItem", parent);
-#else
- Q_UNUSED(parent);
- return nullptr;
-#endif
- }
- static inline QPlatformSystemTrayIcon *createSystemTrayIcon(QObject *parent = nullptr) {
-#ifndef QT_NO_SYSTEMTRAYICON
- return createWidget<QWidgetPlatformSystemTrayIcon>("SystemTrayIcon", parent);
-#else
- Q_UNUSED(parent);
- return nullptr;
-#endif
- }
- static inline QPlatformDialogHelper *createDialog(QPlatformTheme::DialogType type, QObject *parent = nullptr)
- {
-#if !defined(QT_WIDGETS_LIB) || !(QT_CONFIG(colordialog) || QT_CONFIG(filedialog) || QT_CONFIG(fontdialog) || QT_CONFIG(messagebox))
- Q_UNUSED(parent);
-#endif
- switch (type) {
-#if defined(QT_WIDGETS_LIB) && QT_CONFIG(colordialog)
- case QPlatformTheme::ColorDialog: return createWidget<QWidgetPlatformColorDialog>("ColorDialog", parent);
-#endif
-#if defined(QT_WIDGETS_LIB) && QT_CONFIG(filedialog)
- case QPlatformTheme::FileDialog: return createWidget<QWidgetPlatformFileDialog>("FileDialog", parent);
-#endif
-#if defined(QT_WIDGETS_LIB) && QT_CONFIG(fontdialog)
- case QPlatformTheme::FontDialog: return createWidget<QWidgetPlatformFontDialog>("FontDialog", parent);
-#endif
-#if defined(QT_WIDGETS_LIB) && QT_CONFIG(messagebox)
- case QPlatformTheme::MessageDialog: return createWidget<QWidgetPlatformMessageDialog>("MessageDialog", parent);
-#endif
- default: break;
- }
- return nullptr;
- }
-}
-
-QT_END_NAMESPACE
-
-#endif // QWIDGETPLATFORM_P_H
diff --git a/src/labs/platform/widgets/qwidgetplatformcolordialog.cpp b/src/labs/platform/widgets/qwidgetplatformcolordialog.cpp
deleted file mode 100644
index 6c0043ae..00000000
--- a/src/labs/platform/widgets/qwidgetplatformcolordialog.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qwidgetplatformcolordialog_p.h"
-#include "qwidgetplatformdialog_p.h"
-
-#include <QtWidgets/qcolordialog.h>
-
-QT_BEGIN_NAMESPACE
-
-QWidgetPlatformColorDialog::QWidgetPlatformColorDialog(QObject *parent)
- : m_dialog(new QColorDialog)
-{
- setParent(parent);
-
- connect(m_dialog.data(), &QColorDialog::accepted, this, &QPlatformDialogHelper::accept);
- connect(m_dialog.data(), &QColorDialog::rejected, this, &QPlatformDialogHelper::reject);
- connect(m_dialog.data(), &QColorDialog::currentColorChanged, this, &QPlatformColorDialogHelper::currentColorChanged);
-}
-
-QWidgetPlatformColorDialog::~QWidgetPlatformColorDialog()
-{
-}
-
-QColor QWidgetPlatformColorDialog::currentColor() const
-{
- return m_dialog->currentColor();
-}
-
-void QWidgetPlatformColorDialog::setCurrentColor(const QColor &color)
-{
- m_dialog->setCurrentColor(color);
-}
-
-void QWidgetPlatformColorDialog::exec()
-{
- m_dialog->exec();
-}
-
-bool QWidgetPlatformColorDialog::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent)
-{
- QSharedPointer<QColorDialogOptions> options = QPlatformColorDialogHelper::options();
- m_dialog->setWindowTitle(options->windowTitle());
- m_dialog->setOptions(static_cast<QColorDialog::ColorDialogOptions>(int(options->options())) | QColorDialog::DontUseNativeDialog);
-
- return QWidgetPlatformDialog::show(m_dialog.data(), flags, modality, parent);
-}
-
-void QWidgetPlatformColorDialog::hide()
-{
- m_dialog->hide();
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/widgets/qwidgetplatformcolordialog_p.h b/src/labs/platform/widgets/qwidgetplatformcolordialog_p.h
deleted file mode 100644
index 09ed5a1e..00000000
--- a/src/labs/platform/widgets/qwidgetplatformcolordialog_p.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QWIDGETPLATFORMCOLORDIALOG_P_H
-#define QWIDGETPLATFORMCOLORDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpa/qplatformdialoghelper.h>
-
-QT_BEGIN_NAMESPACE
-
-class QColorDialog;
-
-class QWidgetPlatformColorDialog : public QPlatformColorDialogHelper
-{
- Q_OBJECT
-
-public:
- explicit QWidgetPlatformColorDialog(QObject *parent = nullptr);
- ~QWidgetPlatformColorDialog();
-
- QColor currentColor() const override;
- void setCurrentColor(const QColor &color) override;
-
- void exec() override;
- bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent) override;
- void hide() override;
-
-private:
- QScopedPointer<QColorDialog> m_dialog;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWIDGETPLATFORMCOLORDIALOG_P_H
diff --git a/src/labs/platform/widgets/qwidgetplatformdialog.cpp b/src/labs/platform/widgets/qwidgetplatformdialog.cpp
deleted file mode 100644
index 3a206839..00000000
--- a/src/labs/platform/widgets/qwidgetplatformdialog.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qwidgetplatformdialog_p.h"
-
-#include <QtGui/qwindow.h>
-#include <QtWidgets/qdialog.h>
-
-QT_BEGIN_NAMESPACE
-
-bool QWidgetPlatformDialog::show(QDialog *dialog, Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent)
-{
- dialog->setWindowFlags(flags);
- dialog->setWindowModality(modality);
-
- dialog->createWinId();
- QWindow *handle = dialog->windowHandle();
- Q_ASSERT(handle);
- handle->setTransientParent(const_cast<QWindow *>(parent));
-
- dialog->show();
- return true;
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/widgets/qwidgetplatformdialog_p.h b/src/labs/platform/widgets/qwidgetplatformdialog_p.h
deleted file mode 100644
index d4f27655..00000000
--- a/src/labs/platform/widgets/qwidgetplatformdialog_p.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QWIDGETPLATFORMDIALOG_P_H
-#define QWIDGETPLATFORMDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qnamespace.h>
-
-QT_BEGIN_NAMESPACE
-
-class QDialog;
-class QWindow;
-
-class QWidgetPlatformDialog
-{
-public:
- static bool show(QDialog *dialog, Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent);
-};
-
-QT_END_NAMESPACE
-
-#endif // QWIDGETPLATFORMDIALOG_P_H
diff --git a/src/labs/platform/widgets/qwidgetplatformfiledialog.cpp b/src/labs/platform/widgets/qwidgetplatformfiledialog.cpp
deleted file mode 100644
index 21ac6527..00000000
--- a/src/labs/platform/widgets/qwidgetplatformfiledialog.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qwidgetplatformfiledialog_p.h"
-#include "qwidgetplatformdialog_p.h"
-
-#include <QtWidgets/qfiledialog.h>
-
-QT_BEGIN_NAMESPACE
-
-QWidgetPlatformFileDialog::QWidgetPlatformFileDialog(QObject *parent)
- : m_dialog(new QFileDialog)
-{
- setParent(parent);
-
- connect(m_dialog.data(), &QDialog::accepted, this, &QPlatformDialogHelper::accept);
- connect(m_dialog.data(), &QDialog::rejected, this, &QPlatformDialogHelper::reject);
-
- connect(m_dialog.data(), &QFileDialog::fileSelected, [this](const QString &file) {
- emit fileSelected(QUrl::fromLocalFile(file));
- });
- connect(m_dialog.data(), &QFileDialog::filesSelected, [this](const QList<QString> &files) {
- QList<QUrl> urls;
- urls.reserve(files.count());
- for (const QString &file : files)
- urls += QUrl::fromLocalFile(file);
- emit filesSelected(urls);
- });
- connect(m_dialog.data(), &QFileDialog::currentChanged, [this](const QString &path) {
- emit currentChanged(QUrl::fromLocalFile(path));
- });
- connect(m_dialog.data(), &QFileDialog::directoryEntered, this, &QWidgetPlatformFileDialog::directoryEntered);
- connect(m_dialog.data(), &QFileDialog::filterSelected, this, &QWidgetPlatformFileDialog::filterSelected);
-}
-
-QWidgetPlatformFileDialog::~QWidgetPlatformFileDialog()
-{
-}
-
-bool QWidgetPlatformFileDialog::defaultNameFilterDisables() const
-{
- return false; // TODO: ?
-}
-
-void QWidgetPlatformFileDialog::setDirectory(const QUrl &directory)
-{
- m_dialog->setDirectory(directory.toLocalFile());
-}
-
-QUrl QWidgetPlatformFileDialog::directory() const
-{
- return m_dialog->directoryUrl();
-}
-
-void QWidgetPlatformFileDialog::selectFile(const QUrl &filename)
-{
- m_dialog->selectUrl(filename);
-}
-
-QList<QUrl> QWidgetPlatformFileDialog::selectedFiles() const
-{
- return m_dialog->selectedUrls();
-}
-
-void QWidgetPlatformFileDialog::setFilter()
-{
- // TODO: ?
-}
-
-void QWidgetPlatformFileDialog::selectNameFilter(const QString &filter)
-{
- m_dialog->selectNameFilter(filter);
-}
-
-QString QWidgetPlatformFileDialog::selectedNameFilter() const
-{
- return m_dialog->selectedNameFilter();
-}
-
-void QWidgetPlatformFileDialog::exec()
-{
- m_dialog->exec();
-}
-
-bool QWidgetPlatformFileDialog::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent)
-{
- QSharedPointer<QFileDialogOptions> options = QPlatformFileDialogHelper::options();
- m_dialog->setWindowTitle(options->windowTitle());
- m_dialog->setAcceptMode(static_cast<QFileDialog::AcceptMode>(options->acceptMode()));
- m_dialog->setFileMode(static_cast<QFileDialog::FileMode>(options->fileMode()));
- m_dialog->setOptions(static_cast<QFileDialog::Options>(int(options->options())) | QFileDialog::DontUseNativeDialog);
- m_dialog->setNameFilters(options->nameFilters());
- m_dialog->setDefaultSuffix(options->defaultSuffix());
- if (options->isLabelExplicitlySet(QFileDialogOptions::Accept))
- m_dialog->setLabelText(QFileDialog::Accept, options->labelText(QFileDialogOptions::Accept));
- if (options->isLabelExplicitlySet(QFileDialogOptions::Reject))
- m_dialog->setLabelText(QFileDialog::Reject, options->labelText(QFileDialogOptions::Reject));
-
- return QWidgetPlatformDialog::show(m_dialog.data(), flags, modality, parent);
-}
-
-void QWidgetPlatformFileDialog::hide()
-{
- m_dialog->hide();
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/widgets/qwidgetplatformfiledialog_p.h b/src/labs/platform/widgets/qwidgetplatformfiledialog_p.h
deleted file mode 100644
index 3dba6038..00000000
--- a/src/labs/platform/widgets/qwidgetplatformfiledialog_p.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QWIDGETPLATFORMFILEDIALOG_P_H
-#define QWIDGETPLATFORMFILEDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpa/qplatformdialoghelper.h>
-
-QT_BEGIN_NAMESPACE
-
-class QFileDialog;
-
-class QWidgetPlatformFileDialog : public QPlatformFileDialogHelper
-{
- Q_OBJECT
-
-public:
- explicit QWidgetPlatformFileDialog(QObject *parent = nullptr);
- ~QWidgetPlatformFileDialog();
-
- bool defaultNameFilterDisables() const override;
- void setDirectory(const QUrl &directory) override;
- QUrl directory() const override;
- void selectFile(const QUrl &filename) override;
- QList<QUrl> selectedFiles() const override;
- void setFilter() override;
- void selectNameFilter(const QString &filter) override;
- QString selectedNameFilter() const override;
-
- void exec() override;
- bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent) override;
- void hide() override;
-
-private:
- QScopedPointer<QFileDialog> m_dialog;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWIDGETPLATFORMFILEDIALOG_P_H
diff --git a/src/labs/platform/widgets/qwidgetplatformfontdialog.cpp b/src/labs/platform/widgets/qwidgetplatformfontdialog.cpp
deleted file mode 100644
index 315e7c73..00000000
--- a/src/labs/platform/widgets/qwidgetplatformfontdialog.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qwidgetplatformfontdialog_p.h"
-#include "qwidgetplatformdialog_p.h"
-
-#include <QtWidgets/qfontdialog.h>
-
-QT_BEGIN_NAMESPACE
-
-QWidgetPlatformFontDialog::QWidgetPlatformFontDialog(QObject *parent)
- : m_dialog(new QFontDialog)
-{
- setParent(parent);
-
- connect(m_dialog.data(), &QFontDialog::accepted, this, &QPlatformDialogHelper::accept);
- connect(m_dialog.data(), &QFontDialog::rejected, this, &QPlatformDialogHelper::reject);
- connect(m_dialog.data(), &QFontDialog::currentFontChanged, this, &QPlatformFontDialogHelper::currentFontChanged);
-}
-
-QWidgetPlatformFontDialog::~QWidgetPlatformFontDialog()
-{
-}
-
-QFont QWidgetPlatformFontDialog::currentFont() const
-{
- return m_dialog->currentFont();
-}
-
-void QWidgetPlatformFontDialog::setCurrentFont(const QFont &font)
-{
- m_dialog->setCurrentFont(font);
-}
-
-void QWidgetPlatformFontDialog::exec()
-{
- m_dialog->exec();
-}
-
-bool QWidgetPlatformFontDialog::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent)
-{
- QSharedPointer<QFontDialogOptions> options = QPlatformFontDialogHelper::options();
- m_dialog->setWindowTitle(options->windowTitle());
- m_dialog->setOptions(static_cast<QFontDialog::FontDialogOptions>(int(options->options())) | QFontDialog::DontUseNativeDialog);
-
- return QWidgetPlatformDialog::show(m_dialog.data(), flags, modality, parent);
-}
-
-void QWidgetPlatformFontDialog::hide()
-{
- m_dialog->hide();
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/widgets/qwidgetplatformfontdialog_p.h b/src/labs/platform/widgets/qwidgetplatformfontdialog_p.h
deleted file mode 100644
index e5d13b31..00000000
--- a/src/labs/platform/widgets/qwidgetplatformfontdialog_p.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QWIDGETPLATFORMFONTDIALOG_P_H
-#define QWIDGETPLATFORMFONTDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpa/qplatformdialoghelper.h>
-
-QT_BEGIN_NAMESPACE
-
-class QFontDialog;
-
-class QWidgetPlatformFontDialog : public QPlatformFontDialogHelper
-{
- Q_OBJECT
-
-public:
- explicit QWidgetPlatformFontDialog(QObject *parent = nullptr);
- ~QWidgetPlatformFontDialog();
-
- QFont currentFont() const override;
- void setCurrentFont(const QFont &font) override;
-
- void exec() override;
- bool show(Qt::WindowFlags windowFlags, Qt::WindowModality windowModality, QWindow *parent) override;
- void hide() override;
-
-private:
- QScopedPointer<QFontDialog> m_dialog;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWIDGETPLATFORMFONTDIALOG_P_H
diff --git a/src/labs/platform/widgets/qwidgetplatformmenu.cpp b/src/labs/platform/widgets/qwidgetplatformmenu.cpp
deleted file mode 100644
index f04620a3..00000000
--- a/src/labs/platform/widgets/qwidgetplatformmenu.cpp
+++ /dev/null
@@ -1,183 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qwidgetplatformmenu_p.h"
-#include "qwidgetplatformmenuitem_p.h"
-
-#include <QtGui/qaction.h>
-#include <QtGui/qwindow.h>
-#include <QtWidgets/qmenu.h>
-
-QT_BEGIN_NAMESPACE
-
-QWidgetPlatformMenu::QWidgetPlatformMenu(QObject *parent)
- : m_menu(new QMenu)
-{
- setParent(parent);
-
- connect(m_menu.data(), &QMenu::aboutToShow, this, &QPlatformMenu::aboutToShow);
- connect(m_menu.data(), &QMenu::aboutToHide, this, &QPlatformMenu::aboutToHide);
-}
-
-QWidgetPlatformMenu::~QWidgetPlatformMenu()
-{
-}
-
-QMenu *QWidgetPlatformMenu::menu() const
-{
- return m_menu.data();
-}
-
-void QWidgetPlatformMenu::insertMenuItem(QPlatformMenuItem *item, QPlatformMenuItem *before)
-{
- QWidgetPlatformMenuItem *widgetItem = qobject_cast<QWidgetPlatformMenuItem *>(item);
- if (!widgetItem)
- return;
-
- QWidgetPlatformMenuItem *widgetBefore = qobject_cast<QWidgetPlatformMenuItem *>(before);
- m_menu->insertAction(widgetBefore ? widgetBefore->action() : nullptr, widgetItem->action());
- int index = m_items.indexOf(widgetBefore);
- if (index < 0)
- index = m_items.count();
- m_items.insert(index, widgetItem);
-}
-
-void QWidgetPlatformMenu::removeMenuItem(QPlatformMenuItem *item)
-{
- QWidgetPlatformMenuItem *widgetItem = qobject_cast<QWidgetPlatformMenuItem *>(item);
- if (!widgetItem)
- return;
-
- m_items.removeOne(widgetItem);
- m_menu->removeAction(widgetItem->action());
-}
-
-void QWidgetPlatformMenu::syncMenuItem(QPlatformMenuItem *item)
-{
- Q_UNUSED(item);
-}
-
-void QWidgetPlatformMenu::syncSeparatorsCollapsible(bool enable)
-{
- m_menu->setSeparatorsCollapsible(enable);
-}
-
-void QWidgetPlatformMenu::setText(const QString &text)
-{
- m_menu->setTitle(text);
-}
-
-void QWidgetPlatformMenu::setIcon(const QIcon &icon)
-{
- m_menu->setIcon(icon);
-}
-
-void QWidgetPlatformMenu::setEnabled(bool enabled)
-{
- m_menu->menuAction()->setEnabled(enabled);
-}
-
-bool QWidgetPlatformMenu::isEnabled() const
-{
- return m_menu->menuAction()->isEnabled();
-}
-
-void QWidgetPlatformMenu::setVisible(bool visible)
-{
- m_menu->menuAction()->setVisible(visible);
-}
-
-void QWidgetPlatformMenu::setMinimumWidth(int width)
-{
- if (width > 0)
- m_menu->setMinimumWidth(width);
-}
-
-void QWidgetPlatformMenu::setFont(const QFont &font)
-{
- m_menu->setFont(font);
-}
-
-void QWidgetPlatformMenu::setMenuType(MenuType type)
-{
- Q_UNUSED(type);
-}
-
-void QWidgetPlatformMenu::showPopup(const QWindow *window, const QRect &targetRect, const QPlatformMenuItem *item)
-{
- m_menu->createWinId();
- QWindow *handle = m_menu->windowHandle();
- Q_ASSERT(handle);
- handle->setTransientParent(const_cast<QWindow *>(window));
-
- QPoint targetPos = targetRect.bottomLeft();
- if (window)
- targetPos = window->mapToGlobal(targetPos);
-
- const QWidgetPlatformMenuItem *widgetItem = qobject_cast<const QWidgetPlatformMenuItem *>(item);
- m_menu->popup(targetPos, widgetItem ? widgetItem->action() : nullptr);
-}
-
-void QWidgetPlatformMenu::dismiss()
-{
- m_menu->close();
-}
-
-QPlatformMenuItem *QWidgetPlatformMenu::menuItemAt(int position) const
-{
- return m_items.value(position);
-}
-
-QPlatformMenuItem *QWidgetPlatformMenu::menuItemForTag(quintptr tag) const
-{
- for (QWidgetPlatformMenuItem *item : m_items) {
- if (item->tag() == tag)
- return item;
- }
- return nullptr;
-}
-
-QPlatformMenuItem *QWidgetPlatformMenu::createMenuItem() const
-{
- return new QWidgetPlatformMenuItem;
-}
-
-QPlatformMenu *QWidgetPlatformMenu::createSubMenu() const
-{
- return new QWidgetPlatformMenu;
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/widgets/qwidgetplatformmenu_p.h b/src/labs/platform/widgets/qwidgetplatformmenu_p.h
deleted file mode 100644
index 9d1ef57e..00000000
--- a/src/labs/platform/widgets/qwidgetplatformmenu_p.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QWIDGETPLATFORMMENU_P_H
-#define QWIDGETPLATFORMMENU_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpa/qplatformmenu.h>
-
-QT_BEGIN_NAMESPACE
-
-class QMenu;
-class QWidgetPlatformMenuItem;
-
-class QWidgetPlatformMenu : public QPlatformMenu
-{
- Q_OBJECT
-
-public:
- explicit QWidgetPlatformMenu(QObject *parent = nullptr);
- ~QWidgetPlatformMenu();
-
- QMenu *menu() const;
-
- void insertMenuItem(QPlatformMenuItem *item, QPlatformMenuItem *before) override;
- void removeMenuItem(QPlatformMenuItem *item) override;
- void syncMenuItem(QPlatformMenuItem *item) override;
- void syncSeparatorsCollapsible(bool enable) override;
-
- void setText(const QString &text) override;
- void setIcon(const QIcon &icon) override;
- void setEnabled(bool enabled) override;
- bool isEnabled() const override;
- void setVisible(bool visible) override;
- void setMinimumWidth(int width) override;
- void setFont(const QFont &font) override;
- void setMenuType(MenuType type) override;
-
- void showPopup(const QWindow *window, const QRect &targetRect, const QPlatformMenuItem *item) override;
- void dismiss() override;
-
- QPlatformMenuItem *menuItemAt(int position) const override;
- QPlatformMenuItem *menuItemForTag(quintptr tag) const override;
-
- QPlatformMenuItem *createMenuItem() const override;
- QPlatformMenu *createSubMenu() const override;
-
-private:
- QScopedPointer<QMenu> m_menu;
- QList<QWidgetPlatformMenuItem *> m_items;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWIDGETPLATFORMMENU_P_H
diff --git a/src/labs/platform/widgets/qwidgetplatformmenuitem.cpp b/src/labs/platform/widgets/qwidgetplatformmenuitem.cpp
deleted file mode 100644
index ea4de57f..00000000
--- a/src/labs/platform/widgets/qwidgetplatformmenuitem.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qwidgetplatformmenuitem_p.h"
-#include "qwidgetplatformmenu_p.h"
-
-#include <QtGui/qaction.h>
-#include <QtWidgets/qmenu.h>
-
-QT_BEGIN_NAMESPACE
-
-QWidgetPlatformMenuItem::QWidgetPlatformMenuItem(QObject *parent)
- : m_action(new QAction)
-{
- setParent(parent);
- connect(m_action.data(), &QAction::hovered, this, &QPlatformMenuItem::hovered);
- connect(m_action.data(), &QAction::triggered, this, &QPlatformMenuItem::activated);
-}
-
-QWidgetPlatformMenuItem::~QWidgetPlatformMenuItem()
-{
-}
-
-QAction *QWidgetPlatformMenuItem::action() const
-{
- return m_action.data();
-}
-
-void QWidgetPlatformMenuItem::setText(const QString &text)
-{
- m_action->setText(text);
-}
-
-void QWidgetPlatformMenuItem::setIcon(const QIcon &icon)
-{
- m_action->setIcon(icon);
-}
-
-void QWidgetPlatformMenuItem::setMenu(QPlatformMenu *menu)
-{
- QWidgetPlatformMenu *widgetMenu = qobject_cast<QWidgetPlatformMenu *>(menu);
- m_action->setMenu(widgetMenu ? widgetMenu->menu() : nullptr);
-}
-
-void QWidgetPlatformMenuItem::setVisible(bool visible)
-{
- m_action->setVisible(visible);
-}
-
-void QWidgetPlatformMenuItem::setIsSeparator(bool separator)
-{
- m_action->setSeparator(separator);
-}
-
-void QWidgetPlatformMenuItem::setFont(const QFont &font)
-{
- m_action->setFont(font);
-}
-
-void QWidgetPlatformMenuItem::setRole(MenuRole role)
-{
- m_action->setMenuRole(static_cast<QAction::MenuRole>(role));
-}
-
-void QWidgetPlatformMenuItem::setCheckable(bool checkable)
-{
- m_action->setCheckable(checkable);
-}
-
-void QWidgetPlatformMenuItem::setChecked(bool checked)
-{
- m_action->setChecked(checked);
-}
-
-#if QT_CONFIG(shortcut)
-void QWidgetPlatformMenuItem::setShortcut(const QKeySequence &shortcut)
-{
- m_action->setShortcut(shortcut);
-}
-#endif
-
-void QWidgetPlatformMenuItem::setEnabled(bool enabled)
-{
- m_action->setEnabled(enabled);
-}
-
-void QWidgetPlatformMenuItem::setIconSize(int size)
-{
- Q_UNUSED(size);
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/widgets/qwidgetplatformmenuitem_p.h b/src/labs/platform/widgets/qwidgetplatformmenuitem_p.h
deleted file mode 100644
index 43b3fc17..00000000
--- a/src/labs/platform/widgets/qwidgetplatformmenuitem_p.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QWIDGETPLATFORMMENUITEM_P_H
-#define QWIDGETPLATFORMMENUITEM_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpa/qplatformmenu.h>
-
-QT_BEGIN_NAMESPACE
-
-class QAction;
-
-class QWidgetPlatformMenuItem : public QPlatformMenuItem
-{
- Q_OBJECT
-
-public:
- explicit QWidgetPlatformMenuItem(QObject *parent = nullptr);
- ~QWidgetPlatformMenuItem();
-
- QAction *action() const;
-
- void setText(const QString &text) override;
- void setIcon(const QIcon &icon) override;
- void setMenu(QPlatformMenu *menu) override;
- void setVisible(bool visible) override;
- void setIsSeparator(bool separator) override;
- void setFont(const QFont &font) override;
- void setRole(MenuRole role) override;
- void setCheckable(bool checkable) override;
- void setChecked(bool checked) override;
-#if QT_CONFIG(shortcut)
- void setShortcut(const QKeySequence& shortcut) override;
-#endif
- void setEnabled(bool enabled) override;
- void setIconSize(int size) override;
-
-private:
- QScopedPointer<QAction> m_action;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWIDGETPLATFORMMENUITEM_P_H
diff --git a/src/labs/platform/widgets/qwidgetplatformmessagedialog.cpp b/src/labs/platform/widgets/qwidgetplatformmessagedialog.cpp
deleted file mode 100644
index 365692dc..00000000
--- a/src/labs/platform/widgets/qwidgetplatformmessagedialog.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qwidgetplatformmessagedialog_p.h"
-#include "qwidgetplatformdialog_p.h"
-
-#include <QtWidgets/qmessagebox.h>
-#include <QtWidgets/qabstractbutton.h>
-
-QT_BEGIN_NAMESPACE
-
-QWidgetPlatformMessageDialog::QWidgetPlatformMessageDialog(QObject *parent)
- : m_dialog(new QMessageBox)
-{
- setParent(parent);
-
- connect(m_dialog.data(), &QMessageBox::accepted, this, &QPlatformDialogHelper::accept);
- connect(m_dialog.data(), &QMessageBox::rejected, this, &QPlatformDialogHelper::reject);
- connect(m_dialog.data(), &QMessageBox::buttonClicked, [this](QAbstractButton *button) {
- QMessageBox::ButtonRole role = m_dialog->buttonRole(button);
- QMessageBox::StandardButton standardButton = m_dialog->standardButton(button);
- emit clicked(static_cast<StandardButton>(standardButton), static_cast<ButtonRole>(role));
- });
-}
-
-QWidgetPlatformMessageDialog::~QWidgetPlatformMessageDialog()
-{
-}
-void QWidgetPlatformMessageDialog::exec()
-{
- m_dialog->exec();
-}
-
-bool QWidgetPlatformMessageDialog::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent)
-{
- QSharedPointer<QMessageDialogOptions> options = QPlatformMessageDialogHelper::options();
- m_dialog->setWindowTitle(options->windowTitle());
- m_dialog->setIcon(static_cast<QMessageBox::Icon>(options->icon()));
- m_dialog->setText(options->text());
- m_dialog->setInformativeText(options->informativeText());
-#if QT_CONFIG(textedit)
- m_dialog->setDetailedText(options->detailedText());
-#endif
- m_dialog->setStandardButtons(static_cast<QMessageBox::StandardButtons>(int(options->standardButtons())));
-
- return QWidgetPlatformDialog::show(m_dialog.data(), flags, modality, parent);
-}
-
-void QWidgetPlatformMessageDialog::hide()
-{
- m_dialog->hide();
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/widgets/qwidgetplatformmessagedialog_p.h b/src/labs/platform/widgets/qwidgetplatformmessagedialog_p.h
deleted file mode 100644
index 6581337a..00000000
--- a/src/labs/platform/widgets/qwidgetplatformmessagedialog_p.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QWIDGETPLATFORMMESSAGEDIALOG_P_H
-#define QWIDGETPLATFORMMESSAGEDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpa/qplatformdialoghelper.h>
-
-QT_BEGIN_NAMESPACE
-
-class QMessageBox;
-
-class QWidgetPlatformMessageDialog : public QPlatformMessageDialogHelper
-{
- Q_OBJECT
-
-public:
- explicit QWidgetPlatformMessageDialog(QObject *parent = nullptr);
- ~QWidgetPlatformMessageDialog();
-
- void exec() override;
- bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent) override;
- void hide() override;
-
-private:
- QScopedPointer<QMessageBox> m_dialog;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWIDGETPLATFORMMESSAGEDIALOG_P_H
diff --git a/src/labs/platform/widgets/qwidgetplatformsystemtrayicon.cpp b/src/labs/platform/widgets/qwidgetplatformsystemtrayicon.cpp
deleted file mode 100644
index e406ff03..00000000
--- a/src/labs/platform/widgets/qwidgetplatformsystemtrayicon.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qwidgetplatformsystemtrayicon_p.h"
-#include "qwidgetplatformmenu_p.h"
-
-#include <QtWidgets/qsystemtrayicon.h>
-
-QT_BEGIN_NAMESPACE
-
-QWidgetPlatformSystemTrayIcon::QWidgetPlatformSystemTrayIcon(QObject *parent)
- : m_systray(new QSystemTrayIcon)
-{
- setParent(parent);
-
- connect(m_systray.data(), &QSystemTrayIcon::messageClicked, this, &QPlatformSystemTrayIcon::messageClicked);
- connect(m_systray.data(), &QSystemTrayIcon::activated, [this](QSystemTrayIcon::ActivationReason reason) {
- emit activated(static_cast<ActivationReason>(reason));
- });
-}
-
-QWidgetPlatformSystemTrayIcon::~QWidgetPlatformSystemTrayIcon()
-{
-}
-
-void QWidgetPlatformSystemTrayIcon::init()
-{
- m_systray->show();
-}
-
-void QWidgetPlatformSystemTrayIcon::cleanup()
-{
- m_systray->hide();
-}
-
-void QWidgetPlatformSystemTrayIcon::updateIcon(const QIcon &icon)
-{
- m_systray->setIcon(icon);
-}
-
-void QWidgetPlatformSystemTrayIcon::updateToolTip(const QString &tooltip)
-{
- m_systray->setToolTip(tooltip);
-}
-
-void QWidgetPlatformSystemTrayIcon::updateMenu(QPlatformMenu *menu)
-{
-#if QT_CONFIG(menu)
- QWidgetPlatformMenu *widgetMenu = qobject_cast<QWidgetPlatformMenu *>(menu);
- if (!widgetMenu)
- return;
-
- m_systray->setContextMenu(widgetMenu->menu());
-#else
- Q_UNUSED(menu);
-#endif
-}
-
-QRect QWidgetPlatformSystemTrayIcon::geometry() const
-{
- return m_systray->geometry();
-}
-
-void QWidgetPlatformSystemTrayIcon::showMessage(const QString &title, const QString &msg, const QIcon &icon, MessageIcon iconType, int msecs)
-{
- Q_UNUSED(icon);
- m_systray->showMessage(title, msg, static_cast<QSystemTrayIcon::MessageIcon>(iconType), msecs);
-}
-
-bool QWidgetPlatformSystemTrayIcon::isSystemTrayAvailable() const
-{
- return QSystemTrayIcon::isSystemTrayAvailable();
-}
-
-bool QWidgetPlatformSystemTrayIcon::supportsMessages() const
-{
- return QSystemTrayIcon::supportsMessages();
-}
-
-QPlatformMenu *QWidgetPlatformSystemTrayIcon::createMenu() const
-{
- return new QWidgetPlatformMenu;
-}
-
-QT_END_NAMESPACE
diff --git a/src/labs/platform/widgets/qwidgetplatformsystemtrayicon_p.h b/src/labs/platform/widgets/qwidgetplatformsystemtrayicon_p.h
deleted file mode 100644
index 11ea5377..00000000
--- a/src/labs/platform/widgets/qwidgetplatformsystemtrayicon_p.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Labs Platform module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QWIDGETPLATFORMSYSTEMTRAYICON_P_H
-#define QWIDGETPLATFORMSYSTEMTRAYICON_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpa/qplatformsystemtrayicon.h>
-
-QT_REQUIRE_CONFIG(systemtrayicon);
-
-QT_BEGIN_NAMESPACE
-
-class QSystemTrayIcon;
-
-class QWidgetPlatformSystemTrayIcon : public QPlatformSystemTrayIcon
-{
- Q_OBJECT
-
-public:
- explicit QWidgetPlatformSystemTrayIcon(QObject *parent = nullptr);
- ~QWidgetPlatformSystemTrayIcon();
-
- void init() override;
- void cleanup() override;
- void updateIcon(const QIcon &icon) override;
- void updateToolTip(const QString &tooltip) override;
- void updateMenu(QPlatformMenu *menu) override;
- QRect geometry() const override;
- void showMessage(const QString &title, const QString &msg,
- const QIcon &icon, MessageIcon iconType, int msecs) override;
-
- bool isSystemTrayAvailable() const override;
- bool supportsMessages() const override;
-
- QPlatformMenu *createMenu() const override;
-
-private:
- QScopedPointer<QSystemTrayIcon> m_systray;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWIDGETPLATFORMSYSTEMTRAYICON_P_H
diff --git a/src/labs/platform/widgets/widgets.pri b/src/labs/platform/widgets/widgets.pri
deleted file mode 100644
index 54ad7187..00000000
--- a/src/labs/platform/widgets/widgets.pri
+++ /dev/null
@@ -1,56 +0,0 @@
-QT += widgets
-DEPENDPATH += $$PWD
-
-HEADERS += \
- $$PWD/qwidgetplatform_p.h
-
-qtConfig(systemtrayicon) {
- HEADERS += \
- $$PWD/qwidgetplatformsystemtrayicon_p.h
- SOURCES += \
- $$PWD/qwidgetplatformsystemtrayicon.cpp
-}
-
-qtConfig(colordialog) | qtConfig(filedialog) | qtConfig(fontdialog) | qtConfig(messagebox) {
- HEADERS += \
- $$PWD/qwidgetplatformdialog_p.h
- SOURCES += \
- $$PWD/qwidgetplatformdialog.cpp
-}
-
-qtConfig(colordialog) {
- HEADERS += \
- $$PWD/qwidgetplatformcolordialog_p.h
- SOURCES += \
- $$PWD/qwidgetplatformcolordialog.cpp
-}
-
-qtConfig(filedialog) {
- HEADERS += \
- $$PWD/qwidgetplatformfiledialog_p.h
- SOURCES += \
- $$PWD/qwidgetplatformfiledialog.cpp
-}
-
-qtConfig(fontdialog) {
- HEADERS += \
- $$PWD/qwidgetplatformfontdialog_p.h
- SOURCES += \
- $$PWD/qwidgetplatformfontdialog.cpp
-}
-
-qtConfig(menu) {
- HEADERS += \
- $$PWD/qwidgetplatformmenu_p.h \
- $$PWD/qwidgetplatformmenuitem_p.h
- SOURCES += \
- $$PWD/qwidgetplatformmenu.cpp \
- $$PWD/qwidgetplatformmenuitem.cpp
-}
-
-qtConfig(messagebox) {
- HEADERS += \
- $$PWD/qwidgetplatformmessagedialog_p.h
- SOURCES += \
- $$PWD/qwidgetplatformmessagedialog.cpp
-}
diff --git a/src/quickcontrols2/CMakeLists.txt b/src/quickcontrols2/CMakeLists.txt
deleted file mode 100644
index a0c3c56c..00000000
--- a/src/quickcontrols2/CMakeLists.txt
+++ /dev/null
@@ -1,68 +0,0 @@
-#####################################################################
-## QuickControls2 Module:
-#####################################################################
-
-qt_internal_add_qml_module(QuickControls2
- URI "QtQuick.Controls"
- VERSION "${PROJECT_VERSION}"
- DESIGNER_SUPPORTED
- CLASS_NAME QtQuickControls2Plugin
- PLUGIN_TARGET qtquickcontrols2plugin
- IMPORTS
- QtQuick.Controls.impl/auto
- OPTIONAL_IMPORTS
- QtQuick.Controls.Basic/auto
- QtQuick.Controls.Fusion/auto
- QtQuick.Controls.Material/auto
- QtQuick.Controls.Imagine/auto
- QtQuick.Controls.Universal/auto
- QtQuick.Controls.Windows/auto
- QtQuick.Controls.macOS/auto
- NO_PLUGIN_OPTIONAL
- NO_GENERATE_PLUGIN_SOURCE
- SOURCES
- qquickdummyregistration_p.h
- qquickstyle.cpp qquickstyle.h qquickstyle_p.h
- qquickstyleplugin.cpp qquickstyleplugin_p.h
- qtquickcontrols2global.h
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
-
-qt_internal_extend_target(qtquickcontrols2plugin
- SOURCES
- qtquickcontrols2plugin.cpp
- LIBRARIES
- Qt::QuickControls2ImplPrivate
- Qt::QuickControls2Private
- Qt::QuickTemplates2Private
-)
-
-if(QT_FEATURE_quick_designer)
- add_subdirectory(designer)
-endif()
-
-add_subdirectory(basic)
-add_subdirectory(fusion)
-add_subdirectory(imagine)
-add_subdirectory(material)
-add_subdirectory(universal)
-
-if(MACOS)
- add_subdirectory(macos)
-endif()
-
-if(WIN32)
- add_subdirectory(windows)
-endif()
-
-qt_internal_add_docs(QuickControls2
- doc/qtquickcontrols.qdocconf
-)
diff --git a/src/quickcontrols2/basic/AbstractButton.qml b/src/quickcontrols2/basic/AbstractButton.qml
deleted file mode 100644
index a4855c21..00000000
--- a/src/quickcontrols2/basic/AbstractButton.qml
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.AbstractButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-}
diff --git a/src/quickcontrols2/basic/Action.qml b/src/quickcontrols2/basic/Action.qml
deleted file mode 100644
index bb66fc8f..00000000
--- a/src/quickcontrols2/basic/Action.qml
+++ /dev/null
@@ -1,40 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.Action { }
diff --git a/src/quickcontrols2/basic/ActionGroup.qml b/src/quickcontrols2/basic/ActionGroup.qml
deleted file mode 100644
index 70170f0e..00000000
--- a/src/quickcontrols2/basic/ActionGroup.qml
+++ /dev/null
@@ -1,40 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.ActionGroup { }
diff --git a/src/quickcontrols2/basic/ApplicationWindow.qml b/src/quickcontrols2/basic/ApplicationWindow.qml
deleted file mode 100644
index ac50d5fa..00000000
--- a/src/quickcontrols2/basic/ApplicationWindow.qml
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ApplicationWindow {
- id: window
-
- color: window.palette.window
-}
diff --git a/src/quickcontrols2/basic/BusyIndicator.qml b/src/quickcontrols2/basic/BusyIndicator.qml
deleted file mode 100644
index 0c51c9a2..00000000
--- a/src/quickcontrols2/basic/BusyIndicator.qml
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.Basic.impl
-import QtQuick.Templates as T
-
-T.BusyIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
-
- contentItem: BusyIndicatorImpl {
- implicitWidth: 48
- implicitHeight: 48
-
- pen: control.palette.dark
- fill: control.palette.dark
-
- running: control.running
- opacity: control.running ? 1 : 0
- Behavior on opacity { OpacityAnimator { duration: 250 } }
- }
-}
diff --git a/src/quickcontrols2/basic/Button.qml b/src/quickcontrols2/basic/Button.qml
deleted file mode 100644
index f657a0d2..00000000
--- a/src/quickcontrols2/basic/Button.qml
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.Button {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- horizontalPadding: padding + 2
- spacing: 6
-
- icon.width: 24
- icon.height: 24
- icon.color: control.checked || control.highlighted ? control.palette.brightText :
- control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.checked || control.highlighted ? control.palette.brightText :
- control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- visible: !control.flat || control.down || control.checked || control.highlighted
- color: Color.blend(control.checked || control.highlighted ? control.palette.dark : control.palette.button,
- control.palette.mid, control.down ? 0.5 : 0.0)
- border.color: control.palette.highlight
- border.width: control.visualFocus ? 2 : 0
- }
-}
diff --git a/src/quickcontrols2/basic/ButtonGroup.qml b/src/quickcontrols2/basic/ButtonGroup.qml
deleted file mode 100644
index fadc538a..00000000
--- a/src/quickcontrols2/basic/ButtonGroup.qml
+++ /dev/null
@@ -1,40 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.ButtonGroup { }
diff --git a/src/quickcontrols2/basic/CMakeLists.txt b/src/quickcontrols2/basic/CMakeLists.txt
deleted file mode 100644
index 2aa0f8ad..00000000
--- a/src/quickcontrols2/basic/CMakeLists.txt
+++ /dev/null
@@ -1,296 +0,0 @@
-#####################################################################
-## qtquickcontrols2basicstyleplugin Plugin:
-#####################################################################
-
-set(qml_files
- "AbstractButton.qml"
- "Action.qml"
- "ActionGroup.qml"
- "ApplicationWindow.qml"
- "BusyIndicator.qml"
- "Button.qml"
- "ButtonGroup.qml"
- "CheckBox.qml"
- "CheckDelegate.qml"
- "ComboBox.qml"
- "Container.qml"
- "Control.qml"
- "DelayButton.qml"
- "Dial.qml"
- "Dialog.qml"
- "DialogButtonBox.qml"
- "Drawer.qml"
- "Frame.qml"
- "GroupBox.qml"
- "HorizontalHeaderView.qml"
- "ItemDelegate.qml"
- "Label.qml"
- "Menu.qml"
- "MenuBar.qml"
- "MenuBarItem.qml"
- "MenuItem.qml"
- "MenuSeparator.qml"
- "Page.qml"
- "PageIndicator.qml"
- "Pane.qml"
- "Popup.qml"
- "ProgressBar.qml"
- "RadioButton.qml"
- "RadioDelegate.qml"
- "RangeSlider.qml"
- "RoundButton.qml"
- "ScrollBar.qml"
- "ScrollIndicator.qml"
- "ScrollView.qml"
- "SelectionRectangle.qml"
- "Slider.qml"
- "SpinBox.qml"
- "SplitView.qml"
- "StackView.qml"
- "SwipeDelegate.qml"
- "Switch.qml"
- "SwitchDelegate.qml"
- "SwipeView.qml"
- "TabBar.qml"
- "TabButton.qml"
- "TextArea.qml"
- "TextField.qml"
- "ToolBar.qml"
- "ToolButton.qml"
- "ToolSeparator.qml"
- "ToolTip.qml"
- "Tumbler.qml"
- "VerticalHeaderView.qml"
-)
-set_source_files_properties(AbstractButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Action.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.3;6.0"
-)
-set_source_files_properties(ActionGroup.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.3;6.0"
-)
-set_source_files_properties(ApplicationWindow.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(BusyIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Button.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ButtonGroup.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(CheckBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(CheckDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ComboBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Container.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Control.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(DelayButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.2;6.0"
-)
-set_source_files_properties(Dial.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Dialog.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(DialogButtonBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(Drawer.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Frame.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(GroupBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(HorizontalHeaderView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.15;6.0"
-)
-set_source_files_properties(ItemDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Label.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Menu.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(MenuBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.3;6.0"
-)
-set_source_files_properties(MenuBarItem.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.3;6.0"
-)
-set_source_files_properties(MenuItem.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(MenuSeparator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(Page.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(PageIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Pane.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Popup.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ProgressBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RadioButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RadioDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RangeSlider.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RoundButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(ScrollBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ScrollIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ScrollView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.2;6.0"
-)
-set_source_files_properties(SelectionRectangle.qml PROPERTIES
- QT_QML_SOURCE_VERSION "6.2"
-)
-set_source_files_properties(Slider.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SpinBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SplitView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.13;6.0"
-)
-set_source_files_properties(StackView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwipeDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Switch.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwitchDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwipeView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TabBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TabButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TextArea.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TextField.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolSeparator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(ToolTip.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Tumbler.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(VerticalHeaderView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.15;6.0"
-)
-
-qt_internal_add_qml_module(qtquickcontrols2basicstyleplugin
- URI "QtQuick.Controls.Basic"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2BasicStylePlugin
- PLUGIN_TARGET qtquickcontrols2basicstyleplugin
- NO_PLUGIN_OPTIONAL
- NO_GENERATE_PLUGIN_SOURCE
- SOURCES
- qquickbasicstyle.cpp qquickbasicstyle_p.h
- qquickbasictheme.cpp qquickbasictheme_p.h
- qtquickcontrols2basicstyleplugin.cpp
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickControls2Private
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
-
-# Resources:
-set(qtquickcontrols2basicstyleplugin_resource_files
- "images/arrow-indicator.png"
- "images/arrow-indicator@2x.png"
- "images/arrow-indicator@3x.png"
- "images/arrow-indicator@4x.png"
- "images/check.png"
- "images/check@2x.png"
- "images/check@3x.png"
- "images/check@4x.png"
- "images/dial-indicator.png"
- "images/dial-indicator@2x.png"
- "images/dial-indicator@3x.png"
- "images/dial-indicator@4x.png"
- "images/double-arrow.png"
- "images/double-arrow@2x.png"
- "images/double-arrow@3x.png"
- "images/double-arrow@4x.png"
- "images/drop-indicator.png"
- "images/drop-indicator@2x.png"
- "images/drop-indicator@3x.png"
- "images/drop-indicator@4x.png"
-)
-
-qt_internal_add_resource(qtquickcontrols2basicstyleplugin "qtquickcontrols2basicstyleplugin"
- PREFIX
- "/qt-project.org/imports/QtQuick/Controls/Basic"
- FILES
- ${qtquickcontrols2basicstyleplugin_resource_files}
-)
-
-add_subdirectory(impl)
diff --git a/src/quickcontrols2/basic/CheckBox.qml b/src/quickcontrols2/basic/CheckBox.qml
deleted file mode 100644
index 6465460d..00000000
--- a/src/quickcontrols2/basic/CheckBox.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-
-T.CheckBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- // keep in sync with CheckDelegate.qml (shared CheckIndicator.qml was removed for performance reasons)
- indicator: Rectangle {
- implicitWidth: 28
- implicitHeight: 28
-
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
-
- color: control.down ? control.palette.light : control.palette.base
- border.width: control.visualFocus ? 2 : 1
- border.color: control.visualFocus ? control.palette.highlight : control.palette.mid
-
- ColorImage {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- defaultColor: "#353637"
- color: control.palette.text
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Basic/images/check.png"
- visible: control.checkState === Qt.Checked
- }
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 16
- height: 3
- color: control.palette.text
- visible: control.checkState === Qt.PartiallyChecked
- }
- }
-
- contentItem: CheckLabel {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.palette.windowText
- }
-}
diff --git a/src/quickcontrols2/basic/CheckDelegate.qml b/src/quickcontrols2/basic/CheckDelegate.qml
deleted file mode 100644
index 1a1827e3..00000000
--- a/src/quickcontrols2/basic/CheckDelegate.qml
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-
-T.CheckDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 12
- spacing: 12
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.text
-
- contentItem: IconLabel {
- leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.text
- }
-
- // keep in sync with CheckBox.qml (shared CheckIndicator.qml was removed for performance reasons)
- indicator: Rectangle {
- implicitWidth: 28
- implicitHeight: 28
-
- x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- color: control.down ? control.palette.light : control.palette.base
- border.width: control.visualFocus ? 2 : 1
- border.color: control.visualFocus ? control.palette.highlight : control.palette.mid
-
- ColorImage {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- defaultColor: "#353637"
- color: control.palette.text
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Basic/images/check.png"
- visible: control.checkState === Qt.Checked
- }
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 16
- height: 3
- color: control.palette.text
- visible: control.checkState === Qt.PartiallyChecked
- }
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- visible: control.down || control.highlighted
- color: control.down ? control.palette.midlight : control.palette.light
- }
-}
diff --git a/src/quickcontrols2/basic/ComboBox.qml b/src/quickcontrols2/basic/ComboBox.qml
deleted file mode 100644
index 6a1924ed..00000000
--- a/src/quickcontrols2/basic/ComboBox.qml
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ComboBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
- rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
-
- delegate: ItemDelegate {
- width: ListView.view.width
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
- palette.text: control.palette.text
- palette.highlightedText: control.palette.highlightedText
- font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
- highlighted: control.highlightedIndex === index
- hoverEnabled: control.hoverEnabled
- }
-
- indicator: ColorImage {
- x: control.mirrored ? control.padding : control.width - width - control.padding
- y: control.topPadding + (control.availableHeight - height) / 2
- color: control.palette.dark
- defaultColor: "#353637"
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Basic/images/double-arrow.png"
- opacity: enabled ? 1 : 0.3
- }
-
- contentItem: T.TextField {
- leftPadding: !control.mirrored ? 12 : control.editable && activeFocus ? 3 : 1
- rightPadding: control.mirrored ? 12 : control.editable && activeFocus ? 3 : 1
- topPadding: 6 - control.padding
- bottomPadding: 6 - control.padding
-
- text: control.editable ? control.editText : control.displayText
-
- enabled: control.editable
- autoScroll: control.editable
- readOnly: control.down
- inputMethodHints: control.inputMethodHints
- validator: control.validator
- selectByMouse: control.selectTextByMouse
-
- font: control.font
- color: control.editable ? control.palette.text : control.palette.buttonText
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- verticalAlignment: Text.AlignVCenter
-
- background: Rectangle {
- visible: control.enabled && control.editable && !control.flat
- border.width: parent && parent.activeFocus ? 2 : 1
- border.color: parent && parent.activeFocus ? control.palette.highlight : control.palette.button
- color: control.palette.base
- }
- }
-
- background: Rectangle {
- implicitWidth: 140
- implicitHeight: 40
-
- color: control.down ? control.palette.mid : control.palette.button
- border.color: control.palette.highlight
- border.width: !control.editable && control.visualFocus ? 2 : 0
- visible: !control.flat || control.down
- }
-
- popup: T.Popup {
- y: control.height
- width: control.width
- height: Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin)
- topMargin: 6
- bottomMargin: 6
-
- contentItem: ListView {
- clip: true
- implicitHeight: contentHeight
- model: control.delegateModel
- currentIndex: control.highlightedIndex
- highlightMoveDuration: 0
-
- Rectangle {
- z: 10
- width: parent.width
- height: parent.height
- color: "transparent"
- border.color: control.palette.mid
- }
-
- T.ScrollIndicator.vertical: ScrollIndicator { }
- }
-
- background: Rectangle {
- color: control.palette.window
- }
- }
-}
diff --git a/src/quickcontrols2/basic/Container.qml b/src/quickcontrols2/basic/Container.qml
deleted file mode 100644
index 93919075..00000000
--- a/src/quickcontrols2/basic/Container.qml
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.Container {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-}
diff --git a/src/quickcontrols2/basic/Control.qml b/src/quickcontrols2/basic/Control.qml
deleted file mode 100644
index 7a68a431..00000000
--- a/src/quickcontrols2/basic/Control.qml
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.Control {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-}
diff --git a/src/quickcontrols2/basic/DelayButton.qml b/src/quickcontrols2/basic/DelayButton.qml
deleted file mode 100644
index 367384c0..00000000
--- a/src/quickcontrols2/basic/DelayButton.qml
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.DelayButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- horizontalPadding: padding + 2
-
- transition: Transition {
- NumberAnimation {
- duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
- }
- }
-
- contentItem: ItemGroup {
- ClippedText {
- clip: control.progress > 0
- clipX: -control.leftPadding + control.progress * control.width
- clipWidth: (1.0 - control.progress) * control.width
- visible: control.progress < 1
-
- text: control.text
- font: control.font
- opacity: enabled ? 1 : 0.3
- color: control.palette.buttonText
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
-
- ClippedText {
- clip: control.progress > 0
- clipX: -control.leftPadding
- clipWidth: control.progress * control.width
- visible: control.progress > 0
-
- text: control.text
- font: control.font
- opacity: enabled ? 1 : 0.3
- color: control.palette.brightText
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- color: Color.blend(control.palette.button, control.palette.mid, control.down ? 0.5 : 0.0)
- border.color: control.palette.highlight
- border.width: control.visualFocus ? 2 : 0
-
- PaddedRectangle {
- padding: control.visualFocus ? 2 : 0
- width: control.progress * parent.width
- height: parent.height
- color: Color.blend(control.palette.dark, control.palette.mid, control.down ? 0.5 : 0.0)
- }
- }
-}
diff --git a/src/quickcontrols2/basic/Dial.qml b/src/quickcontrols2/basic/Dial.qml
deleted file mode 100644
index 8450e9f9..00000000
--- a/src/quickcontrols2/basic/Dial.qml
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Controls.Basic.impl
-import QtQuick.Templates as T
-
-T.Dial {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- background: DialImpl {
- implicitWidth: 184
- implicitHeight: 184
- color: control.visualFocus ? control.palette.highlight : control.palette.dark
- progress: control.position
- opacity: control.enabled ? 1 : 0.3
- }
-
- handle: ColorImage {
- x: control.background.x + control.background.width / 2 - width / 2
- y: control.background.y + control.background.height / 2 - height / 2
- width: 14
- height: 10
- defaultColor: "#353637"
- color: control.visualFocus ? control.palette.highlight : control.palette.dark
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Basic/images/dial-indicator.png"
- antialiasing: true
- opacity: control.enabled ? 1 : 0.3
- transform: [
- Translate {
- y: -Math.min(control.background.width, control.background.height) * 0.4 + control.handle.height / 2
- },
- Rotation {
- angle: control.angle
- origin.x: control.handle.width / 2
- origin.y: control.handle.height / 2
- }
- ]
- }
-}
diff --git a/src/quickcontrols2/basic/Dialog.qml b/src/quickcontrols2/basic/Dialog.qml
deleted file mode 100644
index 1f2b4fbb..00000000
--- a/src/quickcontrols2/basic/Dialog.qml
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-
-T.Dialog {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- padding: 12
-
- background: Rectangle {
- color: control.palette.window
- border.color: control.palette.dark
- }
-
- header: Label {
- text: control.title
- visible: control.title
- elide: Label.ElideRight
- font.bold: true
- padding: 12
- background: Rectangle {
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 1
- color: control.palette.window
- }
- }
-
- footer: DialogButtonBox {
- visible: count > 0
- }
-
- T.Overlay.modal: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.5)
- }
-
- T.Overlay.modeless: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.12)
- }
-}
diff --git a/src/quickcontrols2/basic/DialogButtonBox.qml b/src/quickcontrols2/basic/DialogButtonBox.qml
deleted file mode 100644
index e4cdbd14..00000000
--- a/src/quickcontrols2/basic/DialogButtonBox.qml
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.DialogButtonBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- (control.count === 1 ? implicitContentWidth * 2 : implicitContentWidth) + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.contentWidth
-
- spacing: 1
- padding: 12
- alignment: count === 1 ? Qt.AlignRight : undefined
-
- delegate: Button {
- width: control.count === 1 ? control.availableWidth / 2 : undefined
- }
-
- contentItem: ListView {
- model: control.contentModel
- spacing: control.spacing
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- snapMode: ListView.SnapToItem
- }
-
- background: Rectangle {
- implicitHeight: 40
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
- color: control.palette.window
- }
-}
diff --git a/src/quickcontrols2/basic/Drawer.qml b/src/quickcontrols2/basic/Drawer.qml
deleted file mode 100644
index 0d286f99..00000000
--- a/src/quickcontrols2/basic/Drawer.qml
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.Drawer {
- id: control
-
- parent: T.Overlay.overlay
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: control.edge === Qt.BottomEdge
- leftPadding: control.edge === Qt.RightEdge
- rightPadding: control.edge === Qt.LeftEdge
- bottomPadding: control.edge === Qt.TopEdge
-
- enter: Transition { SmoothedAnimation { velocity: 5 } }
- exit: Transition { SmoothedAnimation { velocity: 5 } }
-
- background: Rectangle {
- color: control.palette.window
- Rectangle {
- readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge
- width: horizontal ? 1 : parent.width
- height: horizontal ? parent.height : 1
- color: control.palette.dark
- x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0
- y: control.edge === Qt.TopEdge ? parent.height - 1 : 0
- }
- }
-
- T.Overlay.modal: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.5)
- }
-
- T.Overlay.modeless: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.12)
- }
-}
diff --git a/src/quickcontrols2/basic/Frame.qml b/src/quickcontrols2/basic/Frame.qml
deleted file mode 100644
index 22f29806..00000000
--- a/src/quickcontrols2/basic/Frame.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.Frame {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 12
-
- background: Rectangle {
- color: "transparent"
- border.color: control.palette.mid
- }
-}
diff --git a/src/quickcontrols2/basic/GroupBox.qml b/src/quickcontrols2/basic/GroupBox.qml
deleted file mode 100644
index 27ff8ce6..00000000
--- a/src/quickcontrols2/basic/GroupBox.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.GroupBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitLabelWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- spacing: 6
- padding: 12
- topPadding: padding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
-
- label: Text {
- x: control.leftPadding
- width: control.availableWidth
-
- text: control.title
- font: control.font
- color: control.palette.windowText
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-
- background: Rectangle {
- y: control.topPadding - control.bottomPadding
- width: parent.width
- height: parent.height - control.topPadding + control.bottomPadding
-
- color: "transparent"
- border.color: control.palette.mid
- }
-}
diff --git a/src/quickcontrols2/basic/HorizontalHeaderView.qml b/src/quickcontrols2/basic/HorizontalHeaderView.qml
deleted file mode 100644
index e5214593..00000000
--- a/src/quickcontrols2/basic/HorizontalHeaderView.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.HorizontalHeaderView {
- id: control
-
- implicitWidth: syncView ? syncView.width : 0
- implicitHeight: contentHeight
-
- delegate: Rectangle {
- // Qt6: add cellPadding (and font etc) as public API in headerview
- readonly property real cellPadding: 8
-
- implicitWidth: text.implicitWidth + (cellPadding * 2)
- implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2))
- color: "#f6f6f6"
- border.color: "#e4e4e4"
-
- Text {
- id: text
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
- : model[control.textRole])
- : modelData
- width: parent.width
- height: parent.height
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- color: "#ff26282a"
- }
- }
-}
diff --git a/src/quickcontrols2/basic/ItemDelegate.qml b/src/quickcontrols2/basic/ItemDelegate.qml
deleted file mode 100644
index 3a1cb298..00000000
--- a/src/quickcontrols2/basic/ItemDelegate.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ItemDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 12
- spacing: 8
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.text
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.highlighted ? control.palette.highlightedText : control.palette.text
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- visible: control.down || control.highlighted || control.visualFocus
- color: Color.blend(control.down ? control.palette.midlight : control.palette.light,
- control.palette.highlight, control.visualFocus ? 0.15 : 0.0)
- }
-}
diff --git a/src/quickcontrols2/basic/Label.qml b/src/quickcontrols2/basic/Label.qml
deleted file mode 100644
index 9d7dfdfd..00000000
--- a/src/quickcontrols2/basic/Label.qml
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.Label {
- id: control
-
- color: control.palette.windowText
- linkColor: control.palette.link
-}
diff --git a/src/quickcontrols2/basic/Menu.qml b/src/quickcontrols2/basic/Menu.qml
deleted file mode 100644
index 475e58cc..00000000
--- a/src/quickcontrols2/basic/Menu.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.Menu {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- margins: 0
- overlap: 1
-
- delegate: MenuItem { }
-
- contentItem: ListView {
- implicitHeight: contentHeight
- model: control.contentModel
- interactive: Window.window
- ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height
- : false
- clip: true
- currentIndex: control.currentIndex
-
- ScrollIndicator.vertical: ScrollIndicator {}
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 40
- color: control.palette.window
- border.color: control.palette.dark
- }
-
- T.Overlay.modal: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.5)
- }
-
- T.Overlay.modeless: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.12)
- }
-}
diff --git a/src/quickcontrols2/basic/MenuBar.qml b/src/quickcontrols2/basic/MenuBar.qml
deleted file mode 100644
index 79199d12..00000000
--- a/src/quickcontrols2/basic/MenuBar.qml
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-
-T.MenuBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- delegate: MenuBarItem { }
-
- contentItem: Row {
- spacing: control.spacing
- Repeater {
- model: control.contentModel
- }
- }
-
- background: Rectangle {
- implicitHeight: 40
- color: control.palette.button
- }
-}
diff --git a/src/quickcontrols2/basic/MenuBarItem.qml b/src/quickcontrols2/basic/MenuBarItem.qml
deleted file mode 100644
index e7fd1c0b..00000000
--- a/src/quickcontrols2/basic/MenuBarItem.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-
-T.MenuBarItem {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 6
- padding: 6
- leftPadding: 12
- rightPadding: 16
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.buttonText
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.buttonText
- }
-
- background: Rectangle {
- implicitWidth: 40
- implicitHeight: 40
- color: control.down || control.highlighted ? control.palette.mid : "transparent"
- }
-}
diff --git a/src/quickcontrols2/basic/MenuItem.qml b/src/quickcontrols2/basic/MenuItem.qml
deleted file mode 100644
index ab1f12f5..00000000
--- a/src/quickcontrols2/basic/MenuItem.qml
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.MenuItem {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.windowText
-
- contentItem: IconLabel {
- readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0
- readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0
- leftPadding: !control.mirrored ? indicatorPadding : arrowPadding
- rightPadding: control.mirrored ? indicatorPadding : arrowPadding
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.windowText
- }
-
- indicator: ColorImage {
- x: control.mirrored ? control.width - width - control.rightPadding : control.leftPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- visible: control.checked
- source: control.checkable ? "qrc:/qt-project.org/imports/QtQuick/Controls/Basic/images/check.png" : ""
- color: control.palette.windowText
- defaultColor: "#353637"
- }
-
- arrow: ColorImage {
- x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- visible: control.subMenu
- mirror: control.mirrored
- source: control.subMenu ? "qrc:/qt-project.org/imports/QtQuick/Controls/Basic/images/arrow-indicator.png" : ""
- color: control.palette.windowText
- defaultColor: "#353637"
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 40
- x: 1
- y: 1
- width: control.width - 2
- height: control.height - 2
- color: control.down ? control.palette.midlight : control.highlighted ? control.palette.light : "transparent"
- }
-}
diff --git a/src/quickcontrols2/basic/MenuSeparator.qml b/src/quickcontrols2/basic/MenuSeparator.qml
deleted file mode 100644
index bc17dc39..00000000
--- a/src/quickcontrols2/basic/MenuSeparator.qml
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.MenuSeparator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 2
- verticalPadding: padding + 4
-
- contentItem: Rectangle {
- implicitWidth: 188
- implicitHeight: 1
- color: control.palette.mid
- }
-}
diff --git a/src/quickcontrols2/basic/Page.qml b/src/quickcontrols2/basic/Page.qml
deleted file mode 100644
index ff75ee4e..00000000
--- a/src/quickcontrols2/basic/Page.qml
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.Page {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- background: Rectangle {
- color: control.palette.window
- }
-}
diff --git a/src/quickcontrols2/basic/PageIndicator.qml b/src/quickcontrols2/basic/PageIndicator.qml
deleted file mode 100644
index bd5ef290..00000000
--- a/src/quickcontrols2/basic/PageIndicator.qml
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.PageIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- delegate: Rectangle {
- implicitWidth: 8
- implicitHeight: 8
-
- radius: width / 2
- color: control.palette.dark
-
- opacity: index === currentIndex ? 0.95 : pressed ? 0.7 : 0.45
- Behavior on opacity { OpacityAnimator { duration: 100 } }
- }
-
- contentItem: Row {
- spacing: control.spacing
-
- Repeater {
- model: control.count
- delegate: control.delegate
- }
- }
-}
diff --git a/src/quickcontrols2/basic/Pane.qml b/src/quickcontrols2/basic/Pane.qml
deleted file mode 100644
index 181db9e4..00000000
--- a/src/quickcontrols2/basic/Pane.qml
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.Pane {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 12
-
- background: Rectangle {
- color: control.palette.window
- }
-}
diff --git a/src/quickcontrols2/basic/Popup.qml b/src/quickcontrols2/basic/Popup.qml
deleted file mode 100644
index 720483d9..00000000
--- a/src/quickcontrols2/basic/Popup.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.Popup {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 12
-
- background: Rectangle {
- color: control.palette.window
- border.color: control.palette.dark
- }
-
- T.Overlay.modal: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.5)
- }
-
- T.Overlay.modeless: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.12)
- }
-}
diff --git a/src/quickcontrols2/basic/ProgressBar.qml b/src/quickcontrols2/basic/ProgressBar.qml
deleted file mode 100644
index a49538d1..00000000
--- a/src/quickcontrols2/basic/ProgressBar.qml
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Basic.impl
-
-T.ProgressBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- contentItem: ProgressBarImpl {
- implicitHeight: 6
- implicitWidth: 116
- scale: control.mirrored ? -1 : 1
- progress: control.position
- indeterminate: control.visible && control.indeterminate
- color: control.palette.dark
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 6
- y: (control.height - height) / 2
- height: 6
-
- color: control.palette.midlight
- }
-}
diff --git a/src/quickcontrols2/basic/RadioButton.qml b/src/quickcontrols2/basic/RadioButton.qml
deleted file mode 100644
index adb91435..00000000
--- a/src/quickcontrols2/basic/RadioButton.qml
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.RadioButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- // keep in sync with RadioDelegate.qml (shared RadioIndicator.qml was removed for performance reasons)
- indicator: Rectangle {
- implicitWidth: 28
- implicitHeight: 28
-
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
-
- radius: width / 2
- color: control.down ? control.palette.light : control.palette.base
- border.width: control.visualFocus ? 2 : 1
- border.color: control.visualFocus ? control.palette.highlight : control.palette.mid
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 20
- height: 20
- radius: width / 2
- color: control.palette.text
- visible: control.checked
- }
- }
-
- contentItem: CheckLabel {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.palette.windowText
- }
-}
diff --git a/src/quickcontrols2/basic/RadioDelegate.qml b/src/quickcontrols2/basic/RadioDelegate.qml
deleted file mode 100644
index 69be290c..00000000
--- a/src/quickcontrols2/basic/RadioDelegate.qml
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.RadioDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 12
- spacing: 12
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.text
-
- contentItem: IconLabel {
- leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.text
- }
-
- // keep in sync with RadioButton.qml (shared RadioIndicator.qml was removed for performance reasons)
- indicator: Rectangle {
- implicitWidth: 28
- implicitHeight: 28
-
- x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- radius: width / 2
- color: control.down ? control.palette.light : control.palette.base
- border.width: control.visualFocus ? 2 : 1
- border.color: control.visualFocus ? control.palette.highlight : control.palette.mid
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 20
- height: 20
- radius: width / 2
- color: control.palette.text
- visible: control.checked
- }
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- visible: control.down || control.highlighted
- color: control.down ? control.palette.midlight : control.palette.light
- }
-}
diff --git a/src/quickcontrols2/basic/RangeSlider.qml b/src/quickcontrols2/basic/RangeSlider.qml
deleted file mode 100644
index e47cbd52..00000000
--- a/src/quickcontrols2/basic/RangeSlider.qml
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.RangeSlider {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- first.implicitHandleWidth + leftPadding + rightPadding,
- second.implicitHandleWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- first.implicitHandleHeight + topPadding + bottomPadding,
- second.implicitHandleHeight + topPadding + bottomPadding)
-
- padding: 6
-
- first.handle: Rectangle {
- x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
- implicitWidth: 28
- implicitHeight: 28
- radius: width / 2
- border.width: activeFocus ? 2 : 1
- border.color: activeFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight
- color: control.first.pressed ? control.palette.light : control.palette.window
- }
-
- second.handle: Rectangle {
- x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
- implicitWidth: 28
- implicitHeight: 28
- radius: width / 2
- border.width: activeFocus ? 2 : 1
- border.color: activeFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight
- color: control.second.pressed ? control.palette.light : control.palette.window
- }
-
- background: Rectangle {
- x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
- implicitWidth: control.horizontal ? 200 : 6
- implicitHeight: control.horizontal ? 6 : 200
- width: control.horizontal ? control.availableWidth : implicitWidth
- height: control.horizontal ? implicitHeight : control.availableHeight
- radius: 3
- color: control.palette.midlight
- scale: control.horizontal && control.mirrored ? -1 : 1
-
- Rectangle {
- x: control.horizontal ? control.first.position * parent.width + 3 : 0
- y: control.horizontal ? 0 : control.second.visualPosition * parent.height + 3
- width: control.horizontal ? control.second.position * parent.width - control.first.position * parent.width - 6 : 6
- height: control.horizontal ? 6 : control.second.position * parent.height - control.first.position * parent.height - 6
-
- color: control.palette.dark
- }
- }
-}
diff --git a/src/quickcontrols2/basic/RoundButton.qml b/src/quickcontrols2/basic/RoundButton.qml
deleted file mode 100644
index 6ab810fd..00000000
--- a/src/quickcontrols2/basic/RoundButton.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.RoundButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 24
- icon.height: 24
- icon.color: control.checked || control.highlighted ? control.palette.brightText :
- control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.checked || control.highlighted ? control.palette.brightText :
- control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
- }
-
- background: Rectangle {
- implicitWidth: 40
- implicitHeight: 40
- radius: control.radius
- opacity: enabled ? 1 : 0.3
- visible: !control.flat || control.down || control.checked || control.highlighted
- color: Color.blend(control.checked || control.highlighted ? control.palette.dark : control.palette.button,
- control.palette.mid, control.down ? 0.5 : 0.0)
- border.color: control.palette.highlight
- border.width: control.visualFocus ? 2 : 0
- }
-}
diff --git a/src/quickcontrols2/basic/ScrollBar.qml b/src/quickcontrols2/basic/ScrollBar.qml
deleted file mode 100644
index 763f96bb..00000000
--- a/src/quickcontrols2/basic/ScrollBar.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ScrollBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 2
- visible: control.policy !== T.ScrollBar.AlwaysOff
- minimumSize: orientation == Qt.Horizontal ? height / width : width / height
-
- contentItem: Rectangle {
- implicitWidth: control.interactive ? 6 : 2
- implicitHeight: control.interactive ? 6 : 2
-
- radius: width / 2
- color: control.pressed ? control.palette.dark : control.palette.mid
- opacity: 0.0
-
- states: State {
- name: "active"
- when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
- PropertyChanges { target: control.contentItem; opacity: 0.75 }
- }
-
- transitions: Transition {
- from: "active"
- SequentialAnimation {
- PauseAnimation { duration: 450 }
- NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
- }
- }
- }
-}
diff --git a/src/quickcontrols2/basic/ScrollIndicator.qml b/src/quickcontrols2/basic/ScrollIndicator.qml
deleted file mode 100644
index dcb23d65..00000000
--- a/src/quickcontrols2/basic/ScrollIndicator.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ScrollIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 2
-
- contentItem: Rectangle {
- implicitWidth: 2
- implicitHeight: 2
-
- color: control.palette.mid
- visible: control.size < 1.0
- opacity: 0.0
-
- states: State {
- name: "active"
- when: control.active
- PropertyChanges { target: control.contentItem; opacity: 0.75 }
- }
-
- transitions: [
- Transition {
- from: "active"
- SequentialAnimation {
- PauseAnimation { duration: 450 }
- NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
- }
- }
- ]
- }
-}
diff --git a/src/quickcontrols2/basic/ScrollView.qml b/src/quickcontrols2/basic/ScrollView.qml
deleted file mode 100644
index 43c4e428..00000000
--- a/src/quickcontrols2/basic/ScrollView.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ScrollView {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- ScrollBar.vertical: ScrollBar {
- parent: control
- x: control.mirrored ? 0 : control.width - width
- y: control.topPadding
- height: control.availableHeight
- active: control.ScrollBar.horizontal.active
- }
-
- ScrollBar.horizontal: ScrollBar {
- parent: control
- x: control.leftPadding
- y: control.height - height
- width: control.availableWidth
- active: control.ScrollBar.vertical.active
- }
-}
diff --git a/src/quickcontrols2/basic/SelectionRectangle.qml b/src/quickcontrols2/basic/SelectionRectangle.qml
deleted file mode 100644
index 060fb909..00000000
--- a/src/quickcontrols2/basic/SelectionRectangle.qml
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Shapes
-import QtQuick.Templates as T
-
-T.SelectionRectangle {
- id: control
-
- topLeftHandle: Handle {}
- bottomRightHandle: Handle {}
-
- component Handle : Rectangle {
- id: handle
- width: 28
- height: width
- radius: width / 2
- color: SelectionRectangle.dragging ? control.palette.light : control.palette.window
- border.width: 1
- border.color: control.enabled ? control.palette.mid : control.palette.midlight
- visible: SelectionRectangle.control.active
-
- property Item control: SelectionRectangle.control
- }
-
-}
diff --git a/src/quickcontrols2/basic/Slider.qml b/src/quickcontrols2/basic/Slider.qml
deleted file mode 100644
index 425f4975..00000000
--- a/src/quickcontrols2/basic/Slider.qml
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.Slider {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitHandleWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitHandleHeight + topPadding + bottomPadding)
-
- padding: 6
-
- handle: Rectangle {
- x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
- implicitWidth: 28
- implicitHeight: 28
- radius: width / 2
- color: control.pressed ? control.palette.light : control.palette.window
- border.width: control.visualFocus ? 2 : 1
- border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight
- }
-
- background: Rectangle {
- x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
- implicitWidth: control.horizontal ? 200 : 6
- implicitHeight: control.horizontal ? 6 : 200
- width: control.horizontal ? control.availableWidth : implicitWidth
- height: control.horizontal ? implicitHeight : control.availableHeight
- radius: 3
- color: control.palette.midlight
- scale: control.horizontal && control.mirrored ? -1 : 1
-
- Rectangle {
- y: control.horizontal ? 0 : control.visualPosition * parent.height
- width: control.horizontal ? control.position * parent.width : 6
- height: control.horizontal ? 6 : control.position * parent.height
-
- radius: 3
- color: control.palette.dark
- }
- }
-}
diff --git a/src/quickcontrols2/basic/SpinBox.qml b/src/quickcontrols2/basic/SpinBox.qml
deleted file mode 100644
index 772cc583..00000000
--- a/src/quickcontrols2/basic/SpinBox.qml
+++ /dev/null
@@ -1,134 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.SpinBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth + 2 * padding +
- up.implicitIndicatorWidth +
- down.implicitIndicatorWidth)
- implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight,
- up.implicitIndicatorHeight,
- down.implicitIndicatorHeight)
-
- padding: 6
- leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
- rightPadding: padding + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
-
- validator: IntValidator {
- locale: control.locale.name
- bottom: Math.min(control.from, control.to)
- top: Math.max(control.from, control.to)
- }
-
- contentItem: TextInput {
- z: 2
- text: control.displayText
-
- font: control.font
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- horizontalAlignment: Qt.AlignHCenter
- verticalAlignment: Qt.AlignVCenter
-
- readOnly: !control.editable
- validator: control.validator
- inputMethodHints: control.inputMethodHints
-
- Rectangle {
- x: -6 - (control.down.indicator ? 1 : 0)
- y: -6
- width: control.width - (control.up.indicator ? control.up.indicator.width - 1 : 0) - (control.down.indicator ? control.down.indicator.width - 1 : 0)
- height: control.height
- visible: control.activeFocus
- color: "transparent"
- border.color: control.palette.highlight
- border.width: 2
- }
- }
-
- up.indicator: Rectangle {
- x: control.mirrored ? 0 : parent.width - width
- height: parent.height
- implicitWidth: 40
- implicitHeight: 40
- color: control.up.pressed ? control.palette.mid : control.palette.button
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: parent.width / 3
- height: 2
- color: enabled ? control.palette.buttonText : control.palette.mid
- }
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 2
- height: parent.width / 3
- color: enabled ? control.palette.buttonText : control.palette.mid
- }
- }
-
- down.indicator: Rectangle {
- x: control.mirrored ? parent.width - width : 0
- height: parent.height
- implicitWidth: 40
- implicitHeight: 40
- color: control.down.pressed ? control.palette.mid : control.palette.button
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: parent.width / 3
- height: 2
- color: enabled ? control.palette.buttonText : control.palette.mid
- }
- }
-
- background: Rectangle {
- implicitWidth: 140
- color: enabled ? control.palette.base : control.palette.button
- border.color: control.palette.button
- }
-}
diff --git a/src/quickcontrols2/basic/SplitView.qml b/src/quickcontrols2/basic/SplitView.qml
deleted file mode 100644
index 66d24743..00000000
--- a/src/quickcontrols2/basic/SplitView.qml
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-
-T.SplitView {
- id: control
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- handle: Rectangle {
- implicitWidth: control.orientation === Qt.Horizontal ? 6 : control.width
- implicitHeight: control.orientation === Qt.Horizontal ? control.height : 6
- color: T.SplitHandle.pressed ? control.palette.mid
- : (T.SplitHandle.hovered ? control.palette.midlight : control.palette.button)
- }
-}
diff --git a/src/quickcontrols2/basic/StackView.qml b/src/quickcontrols2/basic/StackView.qml
deleted file mode 100644
index cbf13f36..00000000
--- a/src/quickcontrols2/basic/StackView.qml
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.StackView {
- id: control
-
- popEnter: Transition {
- XAnimator { from: (control.mirrored ? -1 : 1) * -control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
- }
-
- popExit: Transition {
- XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * control.width; duration: 400; easing.type: Easing.OutCubic }
- }
-
- pushEnter: Transition {
- XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
- }
-
- pushExit: Transition {
- XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic }
- }
-
- replaceEnter: Transition {
- XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
- }
-
- replaceExit: Transition {
- XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic }
- }
-}
diff --git a/src/quickcontrols2/basic/SwipeDelegate.qml b/src/quickcontrols2/basic/SwipeDelegate.qml
deleted file mode 100644
index f8209a1e..00000000
--- a/src/quickcontrols2/basic/SwipeDelegate.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.SwipeDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 12
- spacing: 12
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.text
-
- swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } }
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.text
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- color: Color.blend(control.down ? control.palette.midlight : control.palette.light,
- control.palette.highlight, control.visualFocus ? 0.15 : 0.0)
- }
-}
diff --git a/src/quickcontrols2/basic/SwipeView.qml b/src/quickcontrols2/basic/SwipeView.qml
deleted file mode 100644
index 6ce4ee6c..00000000
--- a/src/quickcontrols2/basic/SwipeView.qml
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.SwipeView {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- contentItem: ListView {
- model: control.contentModel
- interactive: control.interactive
- currentIndex: control.currentIndex
- focus: control.focus
-
- spacing: control.spacing
- orientation: control.orientation
- snapMode: ListView.SnapOneItem
- boundsBehavior: Flickable.StopAtBounds
-
- highlightRangeMode: ListView.StrictlyEnforceRange
- preferredHighlightBegin: 0
- preferredHighlightEnd: 0
- highlightMoveDuration: 250
- maximumFlickVelocity: 4 * (control.orientation === Qt.Horizontal ? width : height)
- }
-}
diff --git a/src/quickcontrols2/basic/Switch.qml b/src/quickcontrols2/basic/Switch.qml
deleted file mode 100644
index 0d919f9e..00000000
--- a/src/quickcontrols2/basic/Switch.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-
-T.Switch {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- indicator: PaddedRectangle {
- implicitWidth: 56
- implicitHeight: 28
-
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
-
- radius: 8
- leftPadding: 0
- rightPadding: 0
- padding: (height - 16) / 2
- color: control.checked ? control.palette.dark : control.palette.midlight
-
- Rectangle {
- x: Math.max(0, Math.min(parent.width - width, control.visualPosition * parent.width - (width / 2)))
- y: (parent.height - height) / 2
- width: 28
- height: 28
- radius: 16
- color: control.down ? control.palette.light : control.palette.window
- border.width: control.visualFocus ? 2 : 1
- border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight
-
- Behavior on x {
- enabled: !control.down
- SmoothedAnimation { velocity: 200 }
- }
- }
- }
-
- contentItem: CheckLabel {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.palette.windowText
- }
-}
diff --git a/src/quickcontrols2/basic/SwitchDelegate.qml b/src/quickcontrols2/basic/SwitchDelegate.qml
deleted file mode 100644
index 8203e107..00000000
--- a/src/quickcontrols2/basic/SwitchDelegate.qml
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-
-T.SwitchDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 12
- spacing: 12
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.text
-
- indicator: PaddedRectangle {
- implicitWidth: 56
- implicitHeight: 28
-
- x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
-
- radius: 8
- leftPadding: 0
- rightPadding: 0
- padding: (height - 16) / 2
- color: control.checked ? control.palette.dark : control.palette.midlight
-
- Rectangle {
- x: Math.max(0, Math.min(parent.width - width, control.visualPosition * parent.width - (width / 2)))
- y: (parent.height - height) / 2
- width: 28
- height: 28
- radius: 16
- color: control.down ? control.palette.light : control.palette.window
- border.width: control.visualFocus ? 2 : 1
- border.color: control.visualFocus ? control.palette.highlight : control.enabled ? control.palette.mid : control.palette.midlight
-
- Behavior on x {
- enabled: !control.down
- SmoothedAnimation { velocity: 200 }
- }
- }
- }
-
- contentItem: IconLabel {
- leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.text
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- visible: control.down || control.highlighted
- color: control.down ? control.palette.midlight : control.palette.light
- }
-}
diff --git a/src/quickcontrols2/basic/TabBar.qml b/src/quickcontrols2/basic/TabBar.qml
deleted file mode 100644
index f1b11ac2..00000000
--- a/src/quickcontrols2/basic/TabBar.qml
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.TabBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- spacing: 1
-
- contentItem: ListView {
- model: control.contentModel
- currentIndex: control.currentIndex
-
- spacing: control.spacing
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- flickableDirection: Flickable.AutoFlickIfNeeded
- snapMode: ListView.SnapToItem
-
- highlightMoveDuration: 0
- highlightRangeMode: ListView.ApplyRange
- preferredHighlightBegin: 40
- preferredHighlightEnd: width - 40
- }
-
- background: Rectangle {
- color: control.palette.window
- }
-}
diff --git a/src/quickcontrols2/basic/TabButton.qml b/src/quickcontrols2/basic/TabButton.qml
deleted file mode 100644
index 5e38f69c..00000000
--- a/src/quickcontrols2/basic/TabButton.qml
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.TabButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 24
- icon.height: 24
- icon.color: checked ? control.palette.windowText : control.palette.brightText
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.checked ? control.palette.windowText : control.palette.brightText
- }
-
- background: Rectangle {
- implicitHeight: 40
- color: Color.blend(control.checked ? control.palette.window : control.palette.dark,
- control.palette.mid, control.down ? 0.5 : 0.0)
- }
-}
diff --git a/src/quickcontrols2/basic/TextArea.qml b/src/quickcontrols2/basic/TextArea.qml
deleted file mode 100644
index 99d73362..00000000
--- a/src/quickcontrols2/basic/TextArea.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.TextArea {
- id: control
-
- implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
- implicitBackgroundWidth + leftInset + rightInset,
- placeholder.implicitWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight + topInset + bottomInset,
- placeholder.implicitHeight + topPadding + bottomPadding)
-
- padding: 6
- leftPadding: padding + 4
-
- color: control.palette.text
- placeholderTextColor: control.palette.placeholderText
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
-
- PlaceholderText {
- id: placeholder
- x: control.leftPadding
- y: control.topPadding
- width: control.width - (control.leftPadding + control.rightPadding)
- height: control.height - (control.topPadding + control.bottomPadding)
-
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- verticalAlignment: control.verticalAlignment
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- elide: Text.ElideRight
- renderType: control.renderType
- }
-}
diff --git a/src/quickcontrols2/basic/TextField.qml b/src/quickcontrols2/basic/TextField.qml
deleted file mode 100644
index 2833916e..00000000
--- a/src/quickcontrols2/basic/TextField.qml
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.TextField {
- id: control
-
- implicitWidth: implicitBackgroundWidth + leftInset + rightInset
- || Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding,
- placeholder.implicitHeight + topPadding + bottomPadding)
-
- padding: 6
- leftPadding: padding + 4
-
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- placeholderTextColor: control.palette.placeholderText
- verticalAlignment: TextInput.AlignVCenter
-
- PlaceholderText {
- id: placeholder
- x: control.leftPadding
- y: control.topPadding
- width: control.width - (control.leftPadding + control.rightPadding)
- height: control.height - (control.topPadding + control.bottomPadding)
-
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- verticalAlignment: control.verticalAlignment
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- elide: Text.ElideRight
- renderType: control.renderType
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 40
- border.width: control.activeFocus ? 2 : 1
- color: control.palette.base
- border.color: control.activeFocus ? control.palette.highlight : control.palette.mid
- }
-}
diff --git a/src/quickcontrols2/basic/ToolBar.qml b/src/quickcontrols2/basic/ToolBar.qml
deleted file mode 100644
index 1d21c51d..00000000
--- a/src/quickcontrols2/basic/ToolBar.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ToolBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- background: Rectangle {
- implicitHeight: 40
- color: control.palette.button
- }
-}
diff --git a/src/quickcontrols2/basic/ToolButton.qml b/src/quickcontrols2/basic/ToolButton.qml
deleted file mode 100644
index 8a4f8097..00000000
--- a/src/quickcontrols2/basic/ToolButton.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ToolButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 24
- icon.height: 24
- icon.color: visualFocus ? control.palette.highlight : control.palette.buttonText
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.visualFocus ? control.palette.highlight : control.palette.buttonText
- }
-
- background: Rectangle {
- implicitWidth: 40
- implicitHeight: 40
-
- opacity: control.down ? 1.0 : 0.5
- color: control.down || control.checked || control.highlighted ? control.palette.mid : control.palette.button
- }
-}
diff --git a/src/quickcontrols2/basic/ToolSeparator.qml b/src/quickcontrols2/basic/ToolSeparator.qml
deleted file mode 100644
index 774e41ec..00000000
--- a/src/quickcontrols2/basic/ToolSeparator.qml
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ToolSeparator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: vertical ? 6 : 2
- verticalPadding: vertical ? 2 : 6
-
- contentItem: Rectangle {
- implicitWidth: vertical ? 1 : 30
- implicitHeight: vertical ? 30 : 1
- color: control.palette.mid
- }
-}
diff --git a/src/quickcontrols2/basic/ToolTip.qml b/src/quickcontrols2/basic/ToolTip.qml
deleted file mode 100644
index 9d10f7fa..00000000
--- a/src/quickcontrols2/basic/ToolTip.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ToolTip {
- id: control
-
- x: parent ? (parent.width - implicitWidth) / 2 : 0
- y: -implicitHeight - 3
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- margins: 6
- padding: 6
-
- closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
-
- contentItem: Text {
- text: control.text
- font: control.font
- wrapMode: Text.Wrap
- color: control.palette.toolTipText
- }
-
- background: Rectangle {
- border.color: control.palette.dark
- color: control.palette.toolTipBase
- }
-}
diff --git a/src/quickcontrols2/basic/Tumbler.qml b/src/quickcontrols2/basic/Tumbler.qml
deleted file mode 100644
index a69df1f3..00000000
--- a/src/quickcontrols2/basic/Tumbler.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.Tumbler {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- delegate: Text {
- text: modelData
- color: control.visualFocus ? control.palette.highlight : control.palette.text
- font: control.font
- opacity: 1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
-
- contentItem: TumblerView {
- implicitWidth: 60
- implicitHeight: 200
- model: control.model
- delegate: control.delegate
- path: Path {
- startX: control.contentItem.width / 2
- startY: -control.contentItem.delegateHeight / 2
- PathLine {
- x: control.contentItem.width / 2
- y: (control.visibleItemCount + 1) * control.contentItem.delegateHeight - control.contentItem.delegateHeight / 2
- }
- }
-
- property real delegateHeight: control.availableHeight / control.visibleItemCount
- }
-}
diff --git a/src/quickcontrols2/basic/VerticalHeaderView.qml b/src/quickcontrols2/basic/VerticalHeaderView.qml
deleted file mode 100644
index 7c057e01..00000000
--- a/src/quickcontrols2/basic/VerticalHeaderView.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.VerticalHeaderView {
- id: control
-
- implicitWidth: contentWidth
- implicitHeight: syncView ? syncView.height : 0
-
- delegate: Rectangle {
- // Qt6: add cellPadding (and font etc) as public API in headerview
- readonly property real cellPadding: 8
-
- implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2))
- implicitHeight: text.implicitHeight + (cellPadding * 2)
- color: "#f6f6f6"
- border.color: "#e4e4e4"
-
- Text {
- id: text
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
- : model[control.textRole])
- : modelData
- width: parent.width
- height: parent.height
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- color: "#ff26282a"
- }
- }
-}
diff --git a/src/quickcontrols2/basic/basic.pri b/src/quickcontrols2/basic/basic.pri
deleted file mode 100644
index dcea52c7..00000000
--- a/src/quickcontrols2/basic/basic.pri
+++ /dev/null
@@ -1,67 +0,0 @@
-HEADERS += \
- $$PWD/qquickbasicstyle_p.h \
- $$PWD/qquickbasictheme_p.h
-
-SOURCES += \
- $$PWD/qquickbasicstyle.cpp \
- $$PWD/qquickbasictheme.cpp
-
-QML_FILES += \
- $$PWD/AbstractButton.qml \
- $$PWD/Action.qml \
- $$PWD/ActionGroup.qml \
- $$PWD/ApplicationWindow.qml \
- $$PWD/BusyIndicator.qml \
- $$PWD/Button.qml \
- $$PWD/ButtonGroup.qml \
- $$PWD/CheckBox.qml \
- $$PWD/CheckDelegate.qml \
- $$PWD/ComboBox.qml \
- $$PWD/Container.qml \
- $$PWD/Control.qml \
- $$PWD/DelayButton.qml \
- $$PWD/Dial.qml \
- $$PWD/Dialog.qml \
- $$PWD/DialogButtonBox.qml \
- $$PWD/Drawer.qml \
- $$PWD/Frame.qml \
- $$PWD/GroupBox.qml \
- $$PWD/HorizontalHeaderView.qml \
- $$PWD/ItemDelegate.qml \
- $$PWD/Label.qml \
- $$PWD/Menu.qml \
- $$PWD/MenuBar.qml \
- $$PWD/MenuBarItem.qml \
- $$PWD/MenuItem.qml \
- $$PWD/MenuSeparator.qml \
- $$PWD/Page.qml \
- $$PWD/PageIndicator.qml \
- $$PWD/Pane.qml \
- $$PWD/Popup.qml \
- $$PWD/ProgressBar.qml \
- $$PWD/RadioButton.qml \
- $$PWD/RadioDelegate.qml \
- $$PWD/RangeSlider.qml \
- $$PWD/RoundButton.qml \
- $$PWD/ScrollBar.qml \
- $$PWD/ScrollIndicator.qml \
- $$PWD/ScrollView.qml \
- $$PWD/SelectionRectangle.qml \
- $$PWD/Slider.qml \
- $$PWD/SpinBox.qml \
- $$PWD/SplitView.qml \
- $$PWD/StackView.qml \
- $$PWD/SwipeDelegate.qml \
- $$PWD/Switch.qml \
- $$PWD/SwitchDelegate.qml \
- $$PWD/SwipeView.qml \
- $$PWD/TabBar.qml \
- $$PWD/TabButton.qml \
- $$PWD/TextArea.qml \
- $$PWD/TextField.qml \
- $$PWD/ToolBar.qml \
- $$PWD/ToolButton.qml \
- $$PWD/ToolSeparator.qml \
- $$PWD/ToolTip.qml \
- $$PWD/Tumbler.qml \
- $$PWD/VerticalHeaderView.qml
diff --git a/src/quickcontrols2/basic/images/arrow-indicator.png b/src/quickcontrols2/basic/images/arrow-indicator.png
deleted file mode 100644
index d833d52c..00000000
--- a/src/quickcontrols2/basic/images/arrow-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/arrow-indicator@2x.png b/src/quickcontrols2/basic/images/arrow-indicator@2x.png
deleted file mode 100644
index 55c7940a..00000000
--- a/src/quickcontrols2/basic/images/arrow-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/arrow-indicator@3x.png b/src/quickcontrols2/basic/images/arrow-indicator@3x.png
deleted file mode 100644
index c7067c5c..00000000
--- a/src/quickcontrols2/basic/images/arrow-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/arrow-indicator@4x.png b/src/quickcontrols2/basic/images/arrow-indicator@4x.png
deleted file mode 100644
index 4c5cf351..00000000
--- a/src/quickcontrols2/basic/images/arrow-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/check.png b/src/quickcontrols2/basic/images/check.png
deleted file mode 100644
index 479a8442..00000000
--- a/src/quickcontrols2/basic/images/check.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/check@2x.png b/src/quickcontrols2/basic/images/check@2x.png
deleted file mode 100644
index 79663c0b..00000000
--- a/src/quickcontrols2/basic/images/check@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/check@3x.png b/src/quickcontrols2/basic/images/check@3x.png
deleted file mode 100644
index fd0135ab..00000000
--- a/src/quickcontrols2/basic/images/check@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/check@4x.png b/src/quickcontrols2/basic/images/check@4x.png
deleted file mode 100644
index e7e0b640..00000000
--- a/src/quickcontrols2/basic/images/check@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/dial-indicator.png b/src/quickcontrols2/basic/images/dial-indicator.png
deleted file mode 100644
index 92357c51..00000000
--- a/src/quickcontrols2/basic/images/dial-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/dial-indicator@2x.png b/src/quickcontrols2/basic/images/dial-indicator@2x.png
deleted file mode 100644
index f436443b..00000000
--- a/src/quickcontrols2/basic/images/dial-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/dial-indicator@3x.png b/src/quickcontrols2/basic/images/dial-indicator@3x.png
deleted file mode 100644
index d883045b..00000000
--- a/src/quickcontrols2/basic/images/dial-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/dial-indicator@4x.png b/src/quickcontrols2/basic/images/dial-indicator@4x.png
deleted file mode 100644
index 79477712..00000000
--- a/src/quickcontrols2/basic/images/dial-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/double-arrow.png b/src/quickcontrols2/basic/images/double-arrow.png
deleted file mode 100644
index 3ecd7f89..00000000
--- a/src/quickcontrols2/basic/images/double-arrow.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/double-arrow@2x.png b/src/quickcontrols2/basic/images/double-arrow@2x.png
deleted file mode 100644
index eeb03e28..00000000
--- a/src/quickcontrols2/basic/images/double-arrow@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/double-arrow@3x.png b/src/quickcontrols2/basic/images/double-arrow@3x.png
deleted file mode 100644
index f0662d20..00000000
--- a/src/quickcontrols2/basic/images/double-arrow@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/double-arrow@4x.png b/src/quickcontrols2/basic/images/double-arrow@4x.png
deleted file mode 100644
index 10891e91..00000000
--- a/src/quickcontrols2/basic/images/double-arrow@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/drop-indicator.png b/src/quickcontrols2/basic/images/drop-indicator.png
deleted file mode 100644
index 80c1d958..00000000
--- a/src/quickcontrols2/basic/images/drop-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/drop-indicator@2x.png b/src/quickcontrols2/basic/images/drop-indicator@2x.png
deleted file mode 100644
index 6e0f228c..00000000
--- a/src/quickcontrols2/basic/images/drop-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/drop-indicator@3x.png b/src/quickcontrols2/basic/images/drop-indicator@3x.png
deleted file mode 100644
index 199752fb..00000000
--- a/src/quickcontrols2/basic/images/drop-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/images/drop-indicator@4x.png b/src/quickcontrols2/basic/images/drop-indicator@4x.png
deleted file mode 100644
index 58311fbe..00000000
--- a/src/quickcontrols2/basic/images/drop-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/basic/impl/CMakeLists.txt b/src/quickcontrols2/basic/impl/CMakeLists.txt
deleted file mode 100644
index 2b937ae2..00000000
--- a/src/quickcontrols2/basic/impl/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-#####################################################################
-## qtquickcontrols2basicstyleimplplugin Plugin:
-#####################################################################
-
-qt_internal_add_qml_module(qtquickcontrols2basicstyleimplplugin
- URI "QtQuick.Controls.Basic.impl"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2BasicStyleImplPlugin
- PLUGIN_TARGET qtquickcontrols2basicstyleimplplugin
- NO_PLUGIN_OPTIONAL
- SOURCES
- qquickbasicbusyindicator.cpp qquickbasicbusyindicator_p.h
- qquickbasicdial.cpp qquickbasicdial_p.h
- qquickbasicprogressbar.cpp qquickbasicprogressbar_p.h
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::Gui
- Qt::QmlPrivate
- Qt::QuickControls2ImplPrivate
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
diff --git a/src/quickcontrols2/basic/impl/qquickbasicbusyindicator.cpp b/src/quickcontrols2/basic/impl/qquickbasicbusyindicator.cpp
deleted file mode 100644
index 7fb3b024..00000000
--- a/src/quickcontrols2/basic/impl/qquickbasicbusyindicator.cpp
+++ /dev/null
@@ -1,223 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickbasicbusyindicator_p.h"
-
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qsgadaptationlayer_p.h>
-#include <QtQuickControls2Impl/private/qquickanimatednode_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static const int CircleCount = 10;
-static const int TotalDuration = 100 * CircleCount * 2;
-static const QRgb TransparentColor = 0x00000000;
-
-static QPointF moveCircle(const QPointF &pos, qreal rotation, qreal distance)
-{
- return pos - QTransform().rotate(rotation).map(QPointF(0, distance));
-}
-
-class QQuickBasicBusyIndicatorNode : public QQuickAnimatedNode
-{
-public:
- QQuickBasicBusyIndicatorNode(QQuickBasicBusyIndicator *item);
-
- void updateCurrentTime(int time) override;
- void sync(QQuickItem *item) override;
-
-private:
- QColor m_pen;
- QColor m_fill;
-};
-
-QQuickBasicBusyIndicatorNode::QQuickBasicBusyIndicatorNode(QQuickBasicBusyIndicator *item)
- : QQuickAnimatedNode(item)
-{
- setLoopCount(Infinite);
- setDuration(TotalDuration);
- setCurrentTime(item->elapsed());
-
- for (int i = 0; i < CircleCount; ++i) {
- QSGTransformNode *transformNode = new QSGTransformNode;
- appendChildNode(transformNode);
-
- QQuickItemPrivate *d = QQuickItemPrivate::get(item);
- QSGInternalRectangleNode *rectNode = d->sceneGraphContext()->createInternalRectangleNode();
- rectNode->setAntialiasing(true);
- transformNode->appendChildNode(rectNode);
- }
-}
-
-void QQuickBasicBusyIndicatorNode::updateCurrentTime(int time)
-{
- const qreal percentageComplete = time / qreal(TotalDuration);
- const qreal firstPhaseProgress = percentageComplete <= 0.5 ? percentageComplete * 2 : 0;
- const qreal secondPhaseProgress = percentageComplete > 0.5 ? (percentageComplete - 0.5) * 2 : 0;
-
- QSGTransformNode *transformNode = static_cast<QSGTransformNode*>(firstChild());
- Q_ASSERT(transformNode->type() == QSGNode::TransformNodeType);
- for (int i = 0; i < CircleCount; ++i) {
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode*>(transformNode->firstChild());
- Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType);
-
- const bool fill = (firstPhaseProgress > qreal(i) / CircleCount) || (secondPhaseProgress > 0 && secondPhaseProgress < qreal(i) / CircleCount);
- rectNode->setColor(fill ? m_fill : QColor::fromRgba(TransparentColor));
- rectNode->setPenColor(m_pen);
- rectNode->setPenWidth(1);
- rectNode->update();
-
- transformNode = static_cast<QSGTransformNode*>(transformNode->nextSibling());
- }
-}
-
-void QQuickBasicBusyIndicatorNode::sync(QQuickItem *item)
-{
- const qreal w = item->width();
- const qreal h = item->height();
- const qreal sz = qMin(w, h);
- const qreal dx = (w - sz) / 2;
- const qreal dy = (h - sz) / 2;
- const int circleRadius = sz / 12;
-
- m_pen = static_cast<QQuickBasicBusyIndicator *>(item)->pen();
- m_fill = static_cast<QQuickBasicBusyIndicator *>(item)->fill();
-
- QSGTransformNode *transformNode = static_cast<QSGTransformNode *>(firstChild());
- for (int i = 0; i < CircleCount; ++i) {
- Q_ASSERT(transformNode->type() == QSGNode::TransformNodeType);
-
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode *>(transformNode->firstChild());
- Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType);
-
- QPointF pos = QPointF(sz / 2 - circleRadius, sz / 2 - circleRadius);
- pos = moveCircle(pos, 360.0 / CircleCount * i, sz / 2 - circleRadius);
-
- QMatrix4x4 m;
- m.translate(dx + pos.x(), dy + pos.y());
- transformNode->setMatrix(m);
-
- rectNode->setRect(QRectF(QPointF(), QSizeF(circleRadius * 2, circleRadius * 2)));
- rectNode->setRadius(circleRadius);
-
- transformNode = static_cast<QSGTransformNode *>(transformNode->nextSibling());
- }
-}
-
-QQuickBasicBusyIndicator::QQuickBasicBusyIndicator(QQuickItem *parent) :
- QQuickItem(parent)
-{
- setFlag(ItemHasContents);
-}
-
-QColor QQuickBasicBusyIndicator::pen() const
-{
- return m_pen;
-}
-
-void QQuickBasicBusyIndicator::setPen(const QColor &pen)
-{
- if (pen == m_pen)
- return;
-
- m_pen = pen;
- update();
-}
-
-QColor QQuickBasicBusyIndicator::fill() const
-{
- return m_fill;
-}
-
-void QQuickBasicBusyIndicator::setFill(const QColor &fill)
-{
- if (fill == m_fill)
- return;
-
- m_fill = fill;
- update();
-}
-
-bool QQuickBasicBusyIndicator::isRunning() const
-{
- return isVisible();
-}
-
-void QQuickBasicBusyIndicator::setRunning(bool running)
-{
- if (running)
- setVisible(true);
-}
-
-int QQuickBasicBusyIndicator::elapsed() const
-{
- return m_elapsed;
-}
-
-void QQuickBasicBusyIndicator::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- QQuickItem::itemChange(change, data);
- switch (change) {
- case ItemOpacityHasChanged:
- if (qFuzzyIsNull(data.realValue))
- setVisible(false);
- break;
- case ItemVisibleHasChanged:
- update();
- break;
- default:
- break;
- }
-}
-
-QSGNode *QQuickBasicBusyIndicator::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *)
-{
- QQuickBasicBusyIndicatorNode *node = static_cast<QQuickBasicBusyIndicatorNode *>(oldNode);
- if (isRunning() && width() > 0 && height() > 0) {
- if (!node) {
- node = new QQuickBasicBusyIndicatorNode(this);
- node->start();
- }
- node->sync(this);
- } else {
- m_elapsed = node ? node->currentTime() : 0;
- delete node;
- node = nullptr;
- }
- return node;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/basic/impl/qquickbasicbusyindicator_p.h b/src/quickcontrols2/basic/impl/qquickbasicbusyindicator_p.h
deleted file mode 100644
index 7eea6656..00000000
--- a/src/quickcontrols2/basic/impl/qquickbasicbusyindicator_p.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDEFAULTBUSYINDICATOR_P_H
-#define QQUICKDEFAULTBUSYINDICATOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/qquickitem.h>
-#include <QtGui/qcolor.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickBasicBusyIndicator : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(QColor pen READ pen WRITE setPen FINAL)
- Q_PROPERTY(QColor fill READ fill WRITE setFill FINAL)
- Q_PROPERTY(bool running READ isRunning WRITE setRunning)
- QML_NAMED_ELEMENT(BusyIndicatorImpl)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickBasicBusyIndicator(QQuickItem *parent = nullptr);
-
- QColor pen() const;
- void setPen(const QColor &pen);
-
- QColor fill() const;
- void setFill(const QColor &fill);
-
- bool isRunning() const;
- void setRunning(bool running);
-
- int elapsed() const;
-
-protected:
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override;
-
-private:
- int m_elapsed = 0;
- QColor m_pen;
- QColor m_fill;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickBasicBusyIndicator)
-
-#endif // QQUICKDEFAULTBUSYINDICATOR_P_H
diff --git a/src/quickcontrols2/basic/impl/qquickbasicdial.cpp b/src/quickcontrols2/basic/impl/qquickbasicdial.cpp
deleted file mode 100644
index 223e8042..00000000
--- a/src/quickcontrols2/basic/impl/qquickbasicdial.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickbasicdial_p.h"
-
-#include <QtCore/qmath.h>
-#include <QtGui/qpainter.h>
-#include <QtQuick/private/qquickitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickBasicDial::QQuickBasicDial(QQuickItem *parent) :
- QQuickPaintedItem(parent)
-{
-}
-
-qreal QQuickBasicDial::progress() const
-{
- return m_progress;
-}
-
-void QQuickBasicDial::setProgress(qreal progress)
-{
- if (progress == m_progress)
- return;
-
- m_progress = progress;
- update();
-}
-
-QColor QQuickBasicDial::color() const
-{
- return m_color;
-}
-
-void QQuickBasicDial::setColor(const QColor &color)
-{
- if (color == m_color)
- return;
-
- m_color = color;
- update();
-}
-
-void QQuickBasicDial::paint(QPainter *painter)
-{
- if (width() <= 0 || height() <= 0)
- return;
-
- QPen pen(m_color);
- pen.setWidth(8);
- pen.setCapStyle(Qt::FlatCap);
- painter->setPen(pen);
-
- const QRectF bounds = boundingRect();
- const qreal smallest = qMin(bounds.width(), bounds.height());
- QRectF rect = QRectF(pen.widthF() / 2.0 + 1, pen.widthF() / 2.0 + 1, smallest - pen.widthF() - 2, smallest - pen.widthF() - 2);
- rect.moveCenter(bounds.center());
-
- // Make sure the arc is aligned to whole pixels.
- if (rect.x() - int(rect.x()) > 0)
- rect.setX(qCeil(rect.x()));
- if (rect.y() - int(rect.y()) > 0)
- rect.setY(qCeil(rect.y()));
- if (rect.width() - int(rect.width()) > 0)
- rect.setWidth(qFloor(rect.width()));
- if (rect.height() - int(rect.height()) > 0)
- rect.setHeight(qFloor(rect.height()));
-
- painter->setRenderHint(QPainter::Antialiasing);
-
- const qreal startAngle = (140 + 90);
- const qreal spanAngle = (m_progress * 280) * -1;
- QPainterPath path;
- path.arcMoveTo(rect, startAngle);
- path.arcTo(rect, startAngle, spanAngle);
- painter->drawPath(path);
-
- rect.adjust(-pen.widthF() / 2.0, -pen.widthF() / 2.0, pen.widthF() / 2.0, pen.widthF() / 2.0);
- pen.setWidth(1);
- painter->setPen(pen);
-
- path = QPainterPath();
- path.arcMoveTo(rect, 0);
- path.arcTo(rect, 0, 360);
- painter->drawPath(path);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/basic/impl/qquickbasicdial_p.h b/src/quickcontrols2/basic/impl/qquickbasicdial_p.h
deleted file mode 100644
index bd9bbb72..00000000
--- a/src/quickcontrols2/basic/impl/qquickbasicdial_p.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDEFAULTDIAL_P_H
-#define QQUICKDEFAULTDIAL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qcolor.h>
-#include <QtQuick/qquickpainteditem.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickBasicDial : public QQuickPaintedItem
-{
- Q_OBJECT
- Q_PROPERTY(qreal progress READ progress WRITE setProgress FINAL)
- Q_PROPERTY(QColor color READ color WRITE setColor FINAL)
- QML_NAMED_ELEMENT(DialImpl)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickBasicDial(QQuickItem *parent = nullptr);
-
- qreal progress() const;
- void setProgress(qreal progress);
-
- QColor color() const;
- void setColor(const QColor &color);
-
- void paint(QPainter *painter) override;
-
-private:
- qreal m_progress = 0;
- QColor m_color = Qt::black;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKDEFAULTDIAL_P_H
diff --git a/src/quickcontrols2/basic/impl/qquickbasicprogressbar.cpp b/src/quickcontrols2/basic/impl/qquickbasicprogressbar.cpp
deleted file mode 100644
index 717082af..00000000
--- a/src/quickcontrols2/basic/impl/qquickbasicprogressbar.cpp
+++ /dev/null
@@ -1,280 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickbasicprogressbar_p.h"
-
-#include <QtCore/qeasingcurve.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qsgadaptationlayer_p.h>
-#include <QtQuickControls2Impl/private/qquickanimatednode_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static const int Blocks = 4;
-static const int BlockWidth = 16;
-static const int BlockRestingSpacing = 4;
-static const int BlockMovingSpacing = 48;
-static const int BlockSpan = Blocks * (BlockWidth + BlockRestingSpacing) - BlockRestingSpacing;
-static const int TotalDuration = 4000;
-static const int SecondPhaseStart = TotalDuration * 0.4;
-static const int ThirdPhaseStart = TotalDuration * 0.6;
-
-static inline qreal blockStartX(int blockIndex)
-{
- return ((blockIndex + 1) * -BlockWidth) - (blockIndex * BlockMovingSpacing);
-}
-
-static inline qreal blockRestX(int blockIndex, qreal availableWidth)
-{
- const qreal spanRightEdgePos = availableWidth / 2 + BlockSpan / 2.0;
- return spanRightEdgePos - (blockIndex + 1) * BlockWidth - (blockIndex * BlockRestingSpacing);
-}
-
-static inline qreal blockEndX(int blockIndex, qreal availableWidth)
-{
- return availableWidth - blockStartX(Blocks - 1 - blockIndex) - BlockWidth;
-}
-
-class QQuickBasicProgressBarNode : public QQuickAnimatedNode
-{
-public:
- QQuickBasicProgressBarNode(QQuickBasicProgressBar *item);
-
- void updateCurrentTime(int time) override;
- void sync(QQuickItem *item) override;
-
-private:
- bool m_indeterminate = false;
- qreal m_pixelsPerSecond = 0;
-};
-
-QQuickBasicProgressBarNode::QQuickBasicProgressBarNode(QQuickBasicProgressBar *item)
- : QQuickAnimatedNode(item),
- m_pixelsPerSecond(item->width())
-{
- setLoopCount(Infinite);
- setDuration(TotalDuration);
-}
-
-void QQuickBasicProgressBarNode::updateCurrentTime(int time)
-{
- QSGTransformNode *transformNode = static_cast<QSGTransformNode*>(firstChild());
- for (int i = 0; i < Blocks; ++i) {
- Q_ASSERT(transformNode->type() == QSGNode::TransformNodeType);
-
- QMatrix4x4 m;
- const qreal restX = blockRestX(i, m_pixelsPerSecond);
- const qreal timeInSeconds = time / 1000.0;
-
- if (time < SecondPhaseStart) {
- // Move into the resting position for the first phase.
- QEasingCurve easingCurve(QEasingCurve::InQuad);
- const qreal easedCompletion = easingCurve.valueForProgress(time / qreal(SecondPhaseStart));
- const qreal distance = m_pixelsPerSecond * (easedCompletion * (SecondPhaseStart / 1000.0));
- const qreal position = blockStartX(i) + distance;
- const qreal destination = restX;
- m.translate(qMin(position, destination), 0);
- } else if (time < ThirdPhaseStart) {
- // Stay in the same position for the second phase.
- m.translate(restX, 0);
- } else {
- // Move out of view for the third phase.
- const int thirdPhaseSubKickoff = (BlockMovingSpacing / m_pixelsPerSecond) * 1000;
- const int subphase = (time - ThirdPhaseStart) / thirdPhaseSubKickoff;
- // If we're not at this subphase yet, don't try to animate movement,
- // because it will be incorrect.
- if (subphase < i)
- return;
-
- const qreal timeSinceSecondPhase = timeInSeconds - (ThirdPhaseStart / 1000.0);
- // We only want to start keeping track of time once our subphase has started,
- // otherwise we move too much because we account for time that has already elapsed.
- // For example, if we were 60 milliseconds into the third subphase:
- //
- // 0 ..... 1 ..... 2 ...
- // 100 100 60
- //
- // i == 0, timeSinceOurKickoff == 260
- // i == 1, timeSinceOurKickoff == 160
- // i == 2, timeSinceOurKickoff == 60
- const qreal timeSinceOurKickoff = timeSinceSecondPhase - (thirdPhaseSubKickoff / 1000.0 * i);
- const qreal position = restX + (m_pixelsPerSecond * (timeSinceOurKickoff));
- const qreal destination = blockEndX(i, m_pixelsPerSecond);
- m.translate(qMin(position, destination), 0);
- }
-
- transformNode->setMatrix(m);
-
- transformNode = static_cast<QSGTransformNode*>(transformNode->nextSibling());
- }
-}
-
-void QQuickBasicProgressBarNode::sync(QQuickItem *item)
-{
- QQuickBasicProgressBar *bar = static_cast<QQuickBasicProgressBar *>(item);
- if (m_indeterminate != bar->isIndeterminate()) {
- m_indeterminate = bar->isIndeterminate();
- if (m_indeterminate)
- start();
- else
- stop();
- }
- m_pixelsPerSecond = item->width();
-
- QQuickItemPrivate *d = QQuickItemPrivate::get(item);
-
- QMatrix4x4 m;
- m.translate(0, (item->height() - item->implicitHeight()) / 2);
- setMatrix(m);
-
- if (m_indeterminate) {
- if (childCount() != Blocks) {
- // This was previously a regular progress bar; remove the old nodes.
- removeAllChildNodes();
- }
-
- QSGTransformNode *transformNode = static_cast<QSGTransformNode*>(firstChild());
- for (int i = 0; i < Blocks; ++i) {
- if (!transformNode) {
- transformNode = new QSGTransformNode;
- appendChildNode(transformNode);
- }
-
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode*>(transformNode->firstChild());
- if (!rectNode) {
- rectNode = d->sceneGraphContext()->createInternalRectangleNode();
- rectNode->setColor(bar->color());
- transformNode->appendChildNode(rectNode);
- }
-
- QMatrix4x4 m;
- m.translate(blockStartX(i), 0);
- transformNode->setMatrix(m);
-
- rectNode->setRect(QRectF(QPointF(0, 0), QSizeF(BlockWidth, item->implicitHeight())));
- rectNode->update();
-
- transformNode = static_cast<QSGTransformNode *>(transformNode->nextSibling());
- }
- } else {
- if (childCount() > 1) {
- // This was previously an indeterminate progress bar; remove the old nodes.
- removeAllChildNodes();
- }
-
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode *>(firstChild());
- if (!rectNode) {
- rectNode = d->sceneGraphContext()->createInternalRectangleNode();
- rectNode->setColor(bar->color());
- appendChildNode(rectNode);
- }
-
- rectNode->setRect(QRectF(QPointF(0, 0), QSizeF(bar->progress() * item->width(), item->implicitHeight())));
- rectNode->update();
- }
-}
-
-QQuickBasicProgressBar::QQuickBasicProgressBar(QQuickItem *parent) :
- QQuickItem(parent)
-{
- setFlag(ItemHasContents);
-}
-
-qreal QQuickBasicProgressBar::progress() const
-{
- return m_progress;
-}
-
-void QQuickBasicProgressBar::setProgress(qreal progress)
-{
- if (progress == m_progress)
- return;
-
- m_progress = progress;
- update();
-}
-
-bool QQuickBasicProgressBar::isIndeterminate() const
-{
- return m_indeterminate;
-}
-
-void QQuickBasicProgressBar::setIndeterminate(bool indeterminate)
-{
- if (indeterminate == m_indeterminate)
- return;
-
- m_indeterminate = indeterminate;
- setClip(m_indeterminate);
- update();
-}
-
-QColor QQuickBasicProgressBar::color() const
-{
- return m_color;
-}
-
-void QQuickBasicProgressBar::setColor(const QColor &color)
-{
- if (color == m_color)
- return;
-
- m_color = color;
- update();
-}
-
-void QQuickBasicProgressBar::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- QQuickItem::itemChange(change, data);
- if (change == ItemVisibleHasChanged)
- update();
-}
-
-QSGNode *QQuickBasicProgressBar::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *)
-{
- QQuickBasicProgressBarNode *node = static_cast<QQuickBasicProgressBarNode *>(oldNode);
- if (isVisible() && width() > 0 && height() > 0) {
- if (!node)
- node = new QQuickBasicProgressBarNode(this);
- node->sync(this);
- } else {
- delete node;
- node = nullptr;
- }
- return node;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/basic/impl/qquickbasicprogressbar_p.h b/src/quickcontrols2/basic/impl/qquickbasicprogressbar_p.h
deleted file mode 100644
index 1d853ecb..00000000
--- a/src/quickcontrols2/basic/impl/qquickbasicprogressbar_p.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDEFAULTPROGRESSBAR_P_H
-#define QQUICKDEFAULTPROGRESSBAR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/qquickitem.h>
-#include <QtGui/qcolor.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickBasicProgressBar : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(bool indeterminate READ isIndeterminate WRITE setIndeterminate FINAL)
- Q_PROPERTY(qreal progress READ progress WRITE setProgress FINAL)
- Q_PROPERTY(QColor color READ color WRITE setColor FINAL)
- QML_NAMED_ELEMENT(ProgressBarImpl)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickBasicProgressBar(QQuickItem *parent = nullptr);
-
- bool isIndeterminate() const;
- void setIndeterminate(bool indeterminate);
-
- qreal progress() const;
- void setProgress(qreal progress);
-
- QColor color() const;
- void setColor(const QColor &color);
-
-protected:
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override;
-
-private:
- qreal m_progress = 0;
- bool m_indeterminate = false;
- QColor m_color;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickBasicProgressBar)
-
-#endif // QQUICKDEFAULTPROGRESSBAR_P_H
diff --git a/src/quickcontrols2/basic/qquickbasicstyle.cpp b/src/quickcontrols2/basic/qquickbasicstyle.cpp
deleted file mode 100644
index 9dcb7c74..00000000
--- a/src/quickcontrols2/basic/qquickbasicstyle.cpp
+++ /dev/null
@@ -1,246 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickbasicstyle_p.h"
-
-QT_BEGIN_NAMESPACE
-
-QQuickBasicStyle::QQuickBasicStyle(QObject *parent) :
- QObject(parent)
-{
-}
-
-QColor QQuickBasicStyle::backgroundColor() const
-{
- return QColor::fromRgba(0xFFFFFFFF);
-}
-
-QColor QQuickBasicStyle::overlayModalColor() const
-{
- return QColor::fromRgba(0x7F28282A);
-}
-
-QColor QQuickBasicStyle::overlayDimColor() const
-{
- return QColor::fromRgba(0x1F28282A);
-}
-
-QColor QQuickBasicStyle::textColor() const
-{
- return QColor::fromRgba(0xFF353637);
-}
-
-QColor QQuickBasicStyle::textDarkColor() const
-{
- return QColor::fromRgba(0xFF26282A);
-}
-
-QColor QQuickBasicStyle::textLightColor() const
-{
- return QColor::fromRgba(0xFFFFFFFF);
-}
-
-QColor QQuickBasicStyle::textLinkColor() const
-{
- return QColor::fromRgba(0xFF45A7D7);
-}
-
-QColor QQuickBasicStyle::textSelectionColor() const
-{
- return QColor::fromRgba(0xFFFDDD5C);
-}
-
-QColor QQuickBasicStyle::textDisabledColor() const
-{
- return QColor::fromRgba(0xFFBDBEBF);
-}
-
-QColor QQuickBasicStyle::textDisabledLightColor() const
-{
- return QColor::fromRgba(0xFFC2C2C2);
-}
-
-QColor QQuickBasicStyle::textPlaceholderColor() const
-{
- return QColor::fromRgba(0xFF777777);
-}
-
-QColor QQuickBasicStyle::focusColor() const
-{
- return QColor::fromRgba(0xFF0066FF);
-}
-
-QColor QQuickBasicStyle::focusLightColor() const
-{
- return QColor::fromRgba(0xFFF0F6FF);
-}
-
-QColor QQuickBasicStyle::focusPressedColor() const
-{
- return QColor::fromRgba(0xFFCCE0FF);
-}
-
-QColor QQuickBasicStyle::buttonColor() const
-{
- return QColor::fromRgba(0xFFE0E0E0);
-}
-
-QColor QQuickBasicStyle::buttonPressedColor() const
-{
- return QColor::fromRgba(0xFFD0D0D0);
-}
-
-QColor QQuickBasicStyle::buttonCheckedColor() const
-{
- return QColor::fromRgba(0xFF353637);
-}
-
-QColor QQuickBasicStyle::buttonCheckedPressedColor() const
-{
- return QColor::fromRgba(0xFF585A5C);
-}
-
-QColor QQuickBasicStyle::buttonCheckedFocusColor() const
-{
- return QColor::fromRgba(0xFF599BFF);
-}
-
-QColor QQuickBasicStyle::toolButtonColor() const
-{
- return QColor::fromRgba(0x33333333);
-}
-
-QColor QQuickBasicStyle::tabButtonColor() const
-{
- return QColor::fromRgba(0xFF353637);
-}
-
-QColor QQuickBasicStyle::tabButtonPressedColor() const
-{
- return QColor::fromRgba(0xFF585A5C);
-}
-
-QColor QQuickBasicStyle::tabButtonCheckedPressedColor() const
-{
- return QColor::fromRgba(0xFFE4E4E4);
-}
-
-QColor QQuickBasicStyle::delegateColor() const
-{
- return QColor::fromRgba(0xFFEEEEEE);
-}
-
-QColor QQuickBasicStyle::delegatePressedColor() const
-{
- return QColor::fromRgba(0xFFBDBEBF);
-}
-
-QColor QQuickBasicStyle::delegateFocusColor() const
-{
- return QColor::fromRgba(0xFFE5EFFF);
-}
-
-QColor QQuickBasicStyle::indicatorPressedColor() const
-{
- return QColor::fromRgba(0xFFF6F6F6);
-}
-
-QColor QQuickBasicStyle::indicatorDisabledColor() const
-{
- return QColor::fromRgba(0xFFFDFDFD);
-}
-
-QColor QQuickBasicStyle::indicatorFrameColor() const
-{
- return QColor::fromRgba(0xFF909090);
-}
-
-QColor QQuickBasicStyle::indicatorFramePressedColor() const
-{
- return QColor::fromRgba(0xFF808080);
-}
-
-QColor QQuickBasicStyle::indicatorFrameDisabledColor() const
-{
- return QColor::fromRgba(0xFFD6D6D6);
-}
-
-QColor QQuickBasicStyle::frameDarkColor() const
-{
- return QColor::fromRgba(0xFF353637);
-}
-
-QColor QQuickBasicStyle::frameLightColor() const
-{
- return QColor::fromRgba(0xFFBDBEBF);
-}
-
-QColor QQuickBasicStyle::scrollBarColor() const
-{
- return QColor::fromRgba(0xFFBDBEBF);
-}
-
-QColor QQuickBasicStyle::scrollBarPressedColor() const
-{
- return QColor::fromRgba(0xFF28282A);
-}
-
-QColor QQuickBasicStyle::progressBarColor() const
-{
- return QColor::fromRgba(0xFFE4E4E4);
-}
-
-QColor QQuickBasicStyle::pageIndicatorColor() const
-{
- return QColor::fromRgba(0xFF28282A);
-}
-
-QColor QQuickBasicStyle::separatorColor() const
-{
- return QColor::fromRgba(0xFFCCCCCC);
-}
-
-QColor QQuickBasicStyle::disabledDarkColor() const
-{
- return QColor::fromRgba(0xFF353637);
-}
-
-QColor QQuickBasicStyle::disabledLightColor() const
-{
- return QColor::fromRgba(0xFFBDBEBF);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/basic/qquickbasicstyle_p.h b/src/quickcontrols2/basic/qquickbasicstyle_p.h
deleted file mode 100644
index 3f3d84b8..00000000
--- a/src/quickcontrols2/basic/qquickbasicstyle_p.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKBASICSTYLE_P_H
-#define QQUICKBASICSTYLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtGui/qcolor.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickBasicStyle : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QColor backgroundColor READ backgroundColor CONSTANT FINAL)
- Q_PROPERTY(QColor overlayModalColor READ overlayModalColor CONSTANT FINAL)
- Q_PROPERTY(QColor overlayDimColor READ overlayDimColor CONSTANT FINAL)
- Q_PROPERTY(QColor textColor READ textColor CONSTANT FINAL)
- Q_PROPERTY(QColor textDarkColor READ textDarkColor CONSTANT FINAL)
- Q_PROPERTY(QColor textLightColor READ textLightColor CONSTANT FINAL)
- Q_PROPERTY(QColor textLinkColor READ textLinkColor CONSTANT FINAL)
- Q_PROPERTY(QColor textSelectionColor READ textSelectionColor CONSTANT FINAL)
- Q_PROPERTY(QColor textDisabledColor READ textDisabledColor CONSTANT FINAL)
- Q_PROPERTY(QColor textDisabledLightColor READ textDisabledLightColor CONSTANT FINAL)
- Q_PROPERTY(QColor textPlaceholderColor READ textPlaceholderColor CONSTANT FINAL)
- Q_PROPERTY(QColor focusColor READ focusColor CONSTANT FINAL)
- Q_PROPERTY(QColor focusLightColor READ focusLightColor CONSTANT FINAL)
- Q_PROPERTY(QColor focusPressedColor READ focusPressedColor CONSTANT FINAL)
- Q_PROPERTY(QColor buttonColor READ buttonColor CONSTANT FINAL)
- Q_PROPERTY(QColor buttonPressedColor READ buttonPressedColor CONSTANT FINAL)
- Q_PROPERTY(QColor buttonCheckedColor READ buttonCheckedColor CONSTANT FINAL)
- Q_PROPERTY(QColor buttonCheckedPressedColor READ buttonCheckedPressedColor CONSTANT FINAL)
- Q_PROPERTY(QColor buttonCheckedFocusColor READ buttonCheckedFocusColor CONSTANT FINAL)
- Q_PROPERTY(QColor toolButtonColor READ toolButtonColor CONSTANT FINAL)
- Q_PROPERTY(QColor tabButtonColor READ tabButtonColor CONSTANT FINAL)
- Q_PROPERTY(QColor tabButtonPressedColor READ tabButtonPressedColor CONSTANT FINAL)
- Q_PROPERTY(QColor tabButtonCheckedPressedColor READ tabButtonCheckedPressedColor CONSTANT FINAL)
- Q_PROPERTY(QColor delegateColor READ delegateColor CONSTANT FINAL)
- Q_PROPERTY(QColor delegatePressedColor READ delegatePressedColor CONSTANT FINAL)
- Q_PROPERTY(QColor delegateFocusColor READ delegateFocusColor CONSTANT FINAL)
- Q_PROPERTY(QColor indicatorPressedColor READ indicatorPressedColor CONSTANT FINAL)
- Q_PROPERTY(QColor indicatorDisabledColor READ indicatorDisabledColor CONSTANT FINAL)
- Q_PROPERTY(QColor indicatorFrameColor READ indicatorFrameColor CONSTANT FINAL)
- Q_PROPERTY(QColor indicatorFramePressedColor READ indicatorFramePressedColor CONSTANT FINAL)
- Q_PROPERTY(QColor indicatorFrameDisabledColor READ indicatorFrameDisabledColor CONSTANT FINAL)
- Q_PROPERTY(QColor frameDarkColor READ frameDarkColor CONSTANT FINAL)
- Q_PROPERTY(QColor frameLightColor READ frameLightColor CONSTANT FINAL)
- Q_PROPERTY(QColor scrollBarColor READ scrollBarColor CONSTANT FINAL)
- Q_PROPERTY(QColor scrollBarPressedColor READ scrollBarPressedColor CONSTANT FINAL)
- Q_PROPERTY(QColor progressBarColor READ progressBarColor CONSTANT FINAL)
- Q_PROPERTY(QColor pageIndicatorColor READ pageIndicatorColor CONSTANT FINAL)
- Q_PROPERTY(QColor separatorColor READ separatorColor CONSTANT FINAL)
- Q_PROPERTY(QColor disabledDarkColor READ disabledDarkColor CONSTANT FINAL)
- Q_PROPERTY(QColor disabledLightColor READ disabledLightColor CONSTANT FINAL)
- QML_NAMED_ELEMENT(Basic)
- QML_SINGLETON
- QML_ADDED_IN_VERSION(2, 1)
-
-public:
- explicit QQuickBasicStyle(QObject *parent = nullptr);
-
- QColor backgroundColor() const;
- QColor overlayModalColor() const;
- QColor overlayDimColor() const;
- QColor textColor() const;
- QColor textDarkColor() const;
- QColor textLightColor() const;
- QColor textLinkColor() const;
- QColor textSelectionColor() const;
- QColor textDisabledColor() const;
- QColor textDisabledLightColor() const;
- QColor textPlaceholderColor() const;
- QColor focusColor() const;
- QColor focusLightColor() const;
- QColor focusPressedColor() const;
- QColor buttonColor() const;
- QColor buttonPressedColor() const;
- QColor buttonCheckedColor() const;
- QColor buttonCheckedPressedColor() const;
- QColor buttonCheckedFocusColor() const;
- QColor toolButtonColor() const;
- QColor tabButtonColor() const;
- QColor tabButtonPressedColor() const;
- QColor tabButtonCheckedPressedColor() const;
- QColor delegateColor() const;
- QColor delegatePressedColor() const;
- QColor delegateFocusColor() const;
- QColor indicatorPressedColor() const;
- QColor indicatorDisabledColor() const;
- QColor indicatorFrameColor() const;
- QColor indicatorFramePressedColor() const;
- QColor indicatorFrameDisabledColor() const;
- QColor frameDarkColor() const;
- QColor frameLightColor() const;
- QColor scrollBarColor() const;
- QColor scrollBarPressedColor() const;
- QColor progressBarColor() const;
- QColor pageIndicatorColor() const;
- QColor separatorColor() const;
- QColor disabledDarkColor() const;
- QColor disabledLightColor() const;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKBASICSTYLE_P_H
diff --git a/src/quickcontrols2/basic/qquickbasictheme.cpp b/src/quickcontrols2/basic/qquickbasictheme.cpp
deleted file mode 100644
index c65a7bc1..00000000
--- a/src/quickcontrols2/basic/qquickbasictheme.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickbasictheme_p.h"
-
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-QT_BEGIN_NAMESPACE
-
-void QQuickBasicTheme::initialize(QQuickTheme *theme)
-{
- QPalette systemPalette;
-
- systemPalette.setColor(QPalette::Base, QColor::fromRgba(0xFFFFFFFF));
- systemPalette.setColor(QPalette::Disabled, QPalette::Base, QColor::fromRgba(0xFFD6D6D6));
-
- systemPalette.setColor(QPalette::Button, QColor::fromRgba(0xFFE0E0E0));
-
- systemPalette.setColor(QPalette::ButtonText, QColor::fromRgba(0xFF26282A));
- systemPalette.setColor(QPalette::Disabled, QPalette::ButtonText, QColor::fromRgba(0x4D26282A));
-
- systemPalette.setColor(QPalette::BrightText, QColor::fromRgba(0xFFFFFFFF));
- systemPalette.setColor(QPalette::Disabled, QPalette::BrightText, QColor::fromRgba(0x4DFFFFFF));
-
- systemPalette.setColor(QPalette::Dark, QColor::fromRgba(0xFF353637));
-
- systemPalette.setColor(QPalette::Highlight, QColor::fromRgba(0xFF0066FF));
- systemPalette.setColor(QPalette::Disabled, QPalette::Highlight, QColor::fromRgba(0xFFF0F6FF));
-
- systemPalette.setColor(QPalette::HighlightedText, QColor::fromRgba(0xFF090909));
-
- systemPalette.setColor(QPalette::Light, QColor::fromRgba(0xFFF6F6F6));
-
- systemPalette.setColor(QPalette::Link, QColor::fromRgba(0xFF45A7D7));
-
- systemPalette.setColor(QPalette::Mid, QColor::fromRgba(0xFFBDBDBD));
-
- systemPalette.setColor(QPalette::Midlight, QColor::fromRgba(0xFFE4E4E4));
-
- systemPalette.setColor(QPalette::Text, QColor::fromRgba(0xFF353637));
- systemPalette.setColor(QPalette::Disabled, QPalette::Text, QColor::fromRgba(0x7F353637));
-
- systemPalette.setColor(QPalette::Shadow, QColor::fromRgba(0xFF28282A));
-
- systemPalette.setColor(QPalette::ToolTipBase, QColor::fromRgba(0xFFFFFFFF));
- systemPalette.setColor(QPalette::ToolTipText, QColor::fromRgba(0xFF000000));
-
- systemPalette.setColor(QPalette::Window, QColor::fromRgba(0xFFFFFFFF));
-
- systemPalette.setColor(QPalette::WindowText, QColor::fromRgba(0xFF26282A));
- systemPalette.setColor(QPalette::Disabled, QPalette::WindowText, QColor::fromRgba(0xFFBDBEBF));
-
- systemPalette.setColor(QPalette::PlaceholderText, QColor::fromRgba(0x88353637));
-
- theme->setPalette(QQuickTheme::System, systemPalette);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/basic/qquickbasictheme_p.h b/src/quickcontrols2/basic/qquickbasictheme_p.h
deleted file mode 100644
index a0a29953..00000000
--- a/src/quickcontrols2/basic/qquickbasictheme_p.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKBASICTHEME_P_H
-#define QQUICKBASICTHEME_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTheme;
-
-class QQuickBasicTheme
-{
-public:
- static void initialize(QQuickTheme *theme);
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKBASICTHEME_P_H
diff --git a/src/quickcontrols2/basic/qtquickcontrols2basicstyleplugin.cpp b/src/quickcontrols2/basic/qtquickcontrols2basicstyleplugin.cpp
deleted file mode 100644
index 7786223c..00000000
--- a/src/quickcontrols2/basic/qtquickcontrols2basicstyleplugin.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickbasicstyle_p.h"
-#include "qquickbasictheme_p.h"
-
-#include <QtQuickControls2/private/qquickstyleplugin_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-extern void qml_register_types_QtQuick_Controls_Basic();
-
-QT_BEGIN_NAMESPACE
-
-class QtQuickControls2BasicStylePlugin: public QQuickStylePlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
-
-public:
- QtQuickControls2BasicStylePlugin(QObject *parent = nullptr);
-
- QString name() const override;
- void initializeTheme(QQuickTheme *theme) override;
-
- QQuickBasicTheme theme;
-};
-
-QtQuickControls2BasicStylePlugin::QtQuickControls2BasicStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
-{
- volatile auto registration = &qml_register_types_QtQuick_Controls_Basic;
- Q_UNUSED(registration);
-}
-
-QString QtQuickControls2BasicStylePlugin::name() const
-{
- return QStringLiteral("Basic");
-}
-
-void QtQuickControls2BasicStylePlugin::initializeTheme(QQuickTheme *theme)
-{
- this->theme.initialize(theme);
-}
-
-QT_END_NAMESPACE
-
-#include "qtquickcontrols2basicstyleplugin.moc"
diff --git a/src/quickcontrols2/basic/qtquickcontrols2basicstyleplugin.qrc b/src/quickcontrols2/basic/qtquickcontrols2basicstyleplugin.qrc
deleted file mode 100644
index 27fd6ac2..00000000
--- a/src/quickcontrols2/basic/qtquickcontrols2basicstyleplugin.qrc
+++ /dev/null
@@ -1,24 +0,0 @@
-<RCC>
- <qresource prefix="/qt-project.org/imports/QtQuick/Controls/Basic">
- <file>images/arrow-indicator.png</file>
- <file>images/arrow-indicator@2x.png</file>
- <file>images/arrow-indicator@3x.png</file>
- <file>images/arrow-indicator@4x.png</file>
- <file>images/check.png</file>
- <file>images/check@2x.png</file>
- <file>images/check@3x.png</file>
- <file>images/check@4x.png</file>
- <file>images/dial-indicator.png</file>
- <file>images/dial-indicator@2x.png</file>
- <file>images/dial-indicator@3x.png</file>
- <file>images/dial-indicator@4x.png</file>
- <file>images/drop-indicator.png</file>
- <file>images/drop-indicator@2x.png</file>
- <file>images/drop-indicator@3x.png</file>
- <file>images/drop-indicator@4x.png</file>
- <file>images/double-arrow.png</file>
- <file>images/double-arrow@2x.png</file>
- <file>images/double-arrow@3x.png</file>
- <file>images/double-arrow@4x.png</file>
- </qresource>
-</RCC>
diff --git a/src/quickcontrols2/configure.cmake b/src/quickcontrols2/configure.cmake
deleted file mode 100644
index f996cf28..00000000
--- a/src/quickcontrols2/configure.cmake
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-#### Inputs
-
-
-
-#### Libraries
-
-
-
-#### Tests
-
-
-
-#### Features
-
-qt_feature("quickcontrols2-basic" PRIVATE
- LABEL "Basic"
-)
-qt_feature("quickcontrols2-fusion" PRIVATE
- SECTION "Quick Controls 2"
- LABEL "Fusion"
- PURPOSE "Provides the platform agnostic desktop-oriented Fusion style."
- CONDITION QT_FEATURE_quickcontrols2_basic
-)
-qt_feature("quickcontrols2-imagine" PRIVATE
- SECTION "Quick Controls 2"
- LABEL "Imagine"
- PURPOSE "Provides a style based on configurable image assets."
- CONDITION QT_FEATURE_quickcontrols2_basic
-)
-qt_feature("quickcontrols2-material" PRIVATE
- SECTION "Quick Controls 2"
- LABEL "Material"
- PURPOSE "Provides a style based on the Material Design guidelines."
- CONDITION QT_FEATURE_quickcontrols2_basic
-)
-qt_feature("quickcontrols2-universal" PRIVATE
- SECTION "Quick Controls 2"
- LABEL "Universal"
- PURPOSE "Provides a style based on the Universal Design guidelines."
- CONDITION QT_FEATURE_quickcontrols2_basic
-)
-qt_feature("quickcontrols2-macos" PRIVATE
- SECTION "Quick Controls 2"
- LABEL "macOS"
- PURPOSE "Provides a native macOS desktop style."
- CONDITION QT_FEATURE_quickcontrols2_basic
-)
-qt_feature("quickcontrols2-windows" PRIVATE
- SECTION "Quick Controls 2"
- LABEL "Windows"
- PURPOSE "Provides a native Windows desktop style."
- CONDITION QT_FEATURE_quickcontrols2_basic
-)
-qt_configure_add_summary_section(NAME "Qt Quick Controls 2")
-qt_configure_add_summary_entry(
- TYPE "featureList"
- ARGS "quickcontrols2-basic quickcontrols2-fusion quickcontrols2-imagine quickcontrols2-material quickcontrols2-universal quickcontrols2-macos quickcontrols2-windows"
- MESSAGE "Styles"
-)
-qt_configure_end_summary_section() # end of "Qt Quick Controls 2" section
diff --git a/src/quickcontrols2/designer/AbstractButtonSection.qml b/src/quickcontrols2/designer/AbstractButtonSection.qml
deleted file mode 100644
index 2ccb8231..00000000
--- a/src/quickcontrols2/designer/AbstractButtonSection.qml
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Section {
- caption: qsTr("AbstractButton")
-
- SectionLayout {
- Label {
- text: qsTr("Text")
- tooltip: qsTr("The text displayed on the button.")
- }
- SecondColumnLayout {
- LineEdit {
- backendValue: backendValues.text
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Display")
- tooltip: qsTr("Determines how the icon and text are displayed within the button.")
- disabledState: !backendValues.display.isAvailable
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.display
- model: [ "IconOnly", "TextOnly", "TextBesideIcon" ]
- scope: "AbstractButton"
- Layout.fillWidth: true
- enabled: backendValue.isAvailable
- }
- }
-
- Label {
- visible: checkable
- text: qsTr("Checkable")
- tooltip: qsTr("Whether the button is checkable.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.checkable.valueToString
- backendValue: backendValues.checkable
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Checked")
- tooltip: qsTr("Whether the button is checked.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.checked.valueToString
- backendValue: backendValues.checked
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Exclusive")
- tooltip: qsTr("Whether the button is exclusive.")
- disabledState: !backendValues.autoExclusive.isAvailable
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.autoExclusive.valueToString
- backendValue: backendValues.autoExclusive
- Layout.fillWidth: true
- enabled: backendValue.isAvailable
- }
- }
-
- Label {
- text: qsTr("Auto-Repeat")
- tooltip: qsTr("Whether the button repeats pressed(), released() and clicked() signals while the button is pressed and held down.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.autoRepeat.valueToString
- backendValue: backendValues.autoRepeat
- Layout.fillWidth: true
- }
- }
- }
-}
diff --git a/src/quickcontrols2/designer/BusyIndicatorSpecifics.qml b/src/quickcontrols2/designer/BusyIndicatorSpecifics.qml
deleted file mode 100644
index 7b2899d3..00000000
--- a/src/quickcontrols2/designer/BusyIndicatorSpecifics.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("BusyIndicator")
-
- SectionLayout {
- Label {
- text: qsTr("Running")
- tooltip: qsTr("Whether the busy indicator is currently indicating activity.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.running.valueToString
- backendValue: backendValues.running
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/ButtonSection.qml b/src/quickcontrols2/designer/ButtonSection.qml
deleted file mode 100644
index ff70d52c..00000000
--- a/src/quickcontrols2/designer/ButtonSection.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Section {
- id: section
- caption: qsTr("Button")
-
- SectionLayout {
-
- Label {
- text: qsTr("Flat")
- tooltip: qsTr("Whether the button is flat.")
- disabledState: !backendValues.flat.isAvailable
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.flat.valueToString
- backendValue: backendValues.flat
- Layout.fillWidth: true
- enabled: backendValue.isAvailable
- }
- }
- Label {
- text: qsTr("Highlighted")
- tooltip: qsTr("Whether the button is highlighted.")
- disabledState: !backendValues.highlighted.isAvailable
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.highlighted.valueToString
- backendValue: backendValues.highlighted
- Layout.fillWidth: true
- enabled: backendValue.isAvailable
- }
- }
- }
-}
diff --git a/src/quickcontrols2/designer/ButtonSpecifics.qml b/src/quickcontrols2/designer/ButtonSpecifics.qml
deleted file mode 100644
index 5a46e72a..00000000
--- a/src/quickcontrols2/designer/ButtonSpecifics.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- ButtonSection {
- width: parent.width
- }
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/CMakeLists.txt b/src/quickcontrols2/designer/CMakeLists.txt
deleted file mode 100644
index 38d82ace..00000000
--- a/src/quickcontrols2/designer/CMakeLists.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-file(GLOB_RECURSE __aux_qml_glob_files
- RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
- "images/*.png"
-)
-
-qt_copy_or_install(
- FILES
- ${__aux_qml_glob_files}
- DESTINATION "${INSTALL_QMLDIR}/QtQuick/Controls/designer/images"
-)
-
-qt_copy_or_install(
- FILES
- AbstractButtonSection.qml
- BusyIndicatorSpecifics.qml
- ButtonSection.qml
- ButtonSpecifics.qml
- CheckBoxSpecifics.qml
- CheckDelegateSpecifics.qml
- CheckSection.qml
- ComboBoxSpecifics.qml
- ContainerSection.qml
- ControlSection.qml
- ControlSpecifics.qml
- DelayButtonSpecifics.qml
- DialSpecifics.qml
- FrameSpecifics.qml
- GroupBoxSpecifics.qml
- InsetSection.qml
- ItemDelegateSection.qml
- ItemDelegateSpecifics.qml
- LabelSpecifics.qml
- PaddingSection.qml
- PageIndicatorSpecifics.qml
- PageSpecifics.qml
- PaneSection.qml
- PaneSpecifics.qml
- ProgressBarSpecifics.qml
- RadioButtonSpecifics.qml
- RadioDelegateSpecifics.qml
- RangeSliderSpecifics.qml
- RoundButtonSpecifics.qml
- ScrollViewSpecifics.qml
- SliderSpecifics.qml
- SpinBoxSpecifics.qml
- StackViewSpecifics.qml
- SwipeDelegateSpecifics.qml
- SwipeViewSpecifics.qml
- SwitchDelegateSpecifics.qml
- SwitchSpecifics.qml
- TabBarSpecifics.qml
- TabButtonSpecifics.qml
- TextAreaSpecifics.qml
- TextFieldSpecifics.qml
- ToolBarSpecifics.qml
- ToolButtonSpecifics.qml
- ToolSeparatorSpecifics.qml
- TumblerSpecifics.qml
- qtquickcontrols2.metainfo
- DESTINATION "${INSTALL_QMLDIR}/QtQuick/Controls/designer"
-)
diff --git a/src/quickcontrols2/designer/CheckBoxSpecifics.qml b/src/quickcontrols2/designer/CheckBoxSpecifics.qml
deleted file mode 100644
index d3aae9b6..00000000
--- a/src/quickcontrols2/designer/CheckBoxSpecifics.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- CheckSection {
- width: parent.width
- caption: qsTr("CheckBox")
- }
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/CheckDelegateSpecifics.qml b/src/quickcontrols2/designer/CheckDelegateSpecifics.qml
deleted file mode 100644
index 8014480c..00000000
--- a/src/quickcontrols2/designer/CheckDelegateSpecifics.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- CheckSection {
- width: parent.width
- caption: qsTr("CheckDelegate")
- }
-
- ItemDelegateSection {
- width: parent.width
- }
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/CheckSection.qml b/src/quickcontrols2/designer/CheckSection.qml
deleted file mode 100644
index 0f49fa25..00000000
--- a/src/quickcontrols2/designer/CheckSection.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Section {
- SectionLayout {
- Label {
- text: qsTr("Check State")
- tooltip: qsTr("The current check state.")
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.checkState
- model: [ "Unchecked", "PartiallyChecked", "Checked" ]
- scope: "Qt"
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Tri-state")
- tooltip: qsTr("Whether the checkbox has three states.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.tristate.valueToString
- backendValue: backendValues.tristate
- Layout.fillWidth: true
- }
- }
- }
-}
diff --git a/src/quickcontrols2/designer/ComboBoxSpecifics.qml b/src/quickcontrols2/designer/ComboBoxSpecifics.qml
deleted file mode 100644
index 810f19b5..00000000
--- a/src/quickcontrols2/designer/ComboBoxSpecifics.qml
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("ComboBox")
-
- SectionLayout {
- Label {
- text: qsTr("Text Role")
- tooltip: qsTr("The model role used for displaying text.")
- }
- SecondColumnLayout {
- LineEdit {
- backendValue: backendValues.textRole
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Current")
- tooltip: qsTr("The index of the current item.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.currentIndex
- Layout.fillWidth: true
- }
- }
- Label {
- text: qsTr("Editable")
- tooltip: qsTr("Whether the combo box is editable.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.editable.valueToString
- backendValue: backendValues.editable
- Layout.fillWidth: true
- }
- }
- Label {
- text: qsTr("Flat")
- tooltip: qsTr("Whether the combo box button is flat.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.flat.valueToString
- backendValue: backendValues.flat
- Layout.fillWidth: true
- }
- }
- Label {
- text: qsTr("DisplayText")
- tooltip: qsTr("Holds the text that is displayed on the combo box button.")
- }
- SecondColumnLayout {
- LineEdit {
- backendValue: backendValues.displayText
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/ContainerSection.qml b/src/quickcontrols2/designer/ContainerSection.qml
deleted file mode 100644
index 15d1ddf5..00000000
--- a/src/quickcontrols2/designer/ContainerSection.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Section {
- caption: qsTr("Container")
-
- SectionLayout {
- Label {
- text: qsTr("Current")
- tooltip: qsTr("The index of the current item.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.currentIndex
- Layout.fillWidth: true
- }
- }
- }
-}
diff --git a/src/quickcontrols2/designer/ControlSection.qml b/src/quickcontrols2/designer/ControlSection.qml
deleted file mode 100644
index 12033eea..00000000
--- a/src/quickcontrols2/designer/ControlSection.qml
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Section {
- caption: qsTr("Control")
-
- SectionLayout {
- Label {
- text: qsTr("Enabled")
- tooltip: qsTr("Whether the control is enabled.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.enabled.valueToString
- backendValue: backendValues.enabled
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Focus Policy")
- tooltip: qsTr("Focus policy of the control.")
- disabledState: !backendValues.focusPolicy.isAvailable
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.focusPolicy
- model: [ "TabFocus", "ClickFocus", "StrongFocus", "WheelFocus", "NoFocus" ]
- scope: "Qt"
- Layout.fillWidth: true
- enabled: backendValue.isAvailable
- }
- }
-
- Label {
- text: qsTr("Hover")
- tooltip: qsTr("Whether control accepts hover events.")
- disabledState: !backendValues.hoverEnabled.isAvailable
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.hoverEnabled.valueToString
- backendValue: backendValues.hoverEnabled
- Layout.fillWidth: true
- enabled: backendValue.isAvailable
- }
- }
-
- Label {
- text: qsTr("Spacing")
- tooltip: qsTr("Spacing between internal elements of the control.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.spacing
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Wheel")
- tooltip: qsTr("Whether control accepts wheel events.")
- disabledState: !backendValues.wheelEnabled.isAvailable
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.wheelEnabled.valueToString
- backendValue: backendValues.wheelEnabled
- Layout.fillWidth: true
- enabled: backendValue.isAvailable
- }
- }
- }
-}
diff --git a/src/quickcontrols2/designer/ControlSpecifics.qml b/src/quickcontrols2/designer/ControlSpecifics.qml
deleted file mode 100644
index 3937437b..00000000
--- a/src/quickcontrols2/designer/ControlSpecifics.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/DelayButtonSpecifics.qml b/src/quickcontrols2/designer/DelayButtonSpecifics.qml
deleted file mode 100644
index 024fe589..00000000
--- a/src/quickcontrols2/designer/DelayButtonSpecifics.qml
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("DelayButton")
-
- SectionLayout {
- Label {
- text: qsTr("Delay")
- tooltip: qsTr("The delay in milliseconds.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 9999999
- decimals: 0
- stepSize: 1
- backendValue: backendValues.delay
- Layout.fillWidth: true
- }
- }
- }
- }
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/DialSpecifics.qml b/src/quickcontrols2/designer/DialSpecifics.qml
deleted file mode 100644
index 026cb2b1..00000000
--- a/src/quickcontrols2/designer/DialSpecifics.qml
+++ /dev/null
@@ -1,172 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("Dial")
-
- SectionLayout {
- Label {
- text: qsTr("Value")
- tooltip: qsTr("The current value of the dial.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
- maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.value
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("From")
- tooltip: qsTr("The starting value of the dial range.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.from
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("To")
- tooltip: qsTr("The ending value of the dial range.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.to
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Step Size")
- tooltip: qsTr("The step size of the dial.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.stepSize
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Snap Mode")
- tooltip: qsTr("The snap mode of the dial.")
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.snapMode
- model: [ "NoSnap", "SnapOnRelease", "SnapAlways" ]
- scope: "Dial"
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Live")
- tooltip: qsTr("Whether the dial provides live value updates.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.live.valueToString
- backendValue: backendValues.live
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Input Mode")
- tooltip: qsTr("How the dial tracks movement.")
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.inputMode
- model: [ "Circular", "Horizontal", "Vertical" ]
- scope: "Dial"
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Wrap")
- tooltip: qsTr("Whether the dial wraps when dragged.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.wrap.valueToString
- backendValue: backendValues.wrap
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/FrameSpecifics.qml b/src/quickcontrols2/designer/FrameSpecifics.qml
deleted file mode 100644
index 36739956..00000000
--- a/src/quickcontrols2/designer/FrameSpecifics.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- PaneSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/GroupBoxSpecifics.qml b/src/quickcontrols2/designer/GroupBoxSpecifics.qml
deleted file mode 100644
index f808b001..00000000
--- a/src/quickcontrols2/designer/GroupBoxSpecifics.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("GroupBox")
-
- SectionLayout {
- Label {
- text: qsTr("Title")
- tooltip: qsTr("The title of the group box.")
- }
- SecondColumnLayout {
- LineEdit {
- backendValue: backendValues.title
- Layout.fillWidth: true
- }
- }
- }
- }
-
- PaneSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/InsetSection.qml b/src/quickcontrols2/designer/InsetSection.qml
deleted file mode 100644
index 45a4df4f..00000000
--- a/src/quickcontrols2/designer/InsetSection.qml
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Section {
- caption: qsTr("Inset")
-
- SectionLayout {
- Label {
- text: qsTr("Vertical")
- }
- SecondColumnLayout {
- Label {
- text: qsTr("Top")
- tooltip: qsTr("Top inset for the background.")
- width: 42
- }
- SpinBox {
- maximumValue: 10000
- minimumValue: -10000
- realDragRange: 5000
- decimals: 0
- backendValue: backendValues.topInset
- Layout.fillWidth: true
- }
- Item {
- width: 4
- height: 4
- }
-
- Label {
- text: qsTr("Bottom")
- tooltip: qsTr("Bottom inset for the background.")
- width: 42
- }
- SpinBox {
- maximumValue: 10000
- minimumValue: -10000
- realDragRange: 5000
- decimals: 0
- backendValue: backendValues.bottomInset
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Horizontal")
- }
- SecondColumnLayout {
- Label {
- text: qsTr("Left")
- tooltip: qsTr("Left inset for the background.")
- width: 42
- }
- SpinBox {
- maximumValue: 10000
- minimumValue: -10000
- realDragRange: 5000
- decimals: 0
- backendValue: backendValues.leftInset
- Layout.fillWidth: true
- }
- Item {
- width: 4
- height: 4
- }
-
- Label {
- text: qsTr("Right")
- tooltip: qsTr("Right inset for the background.")
- width: 42
- }
- SpinBox {
- maximumValue: 10000
- minimumValue: -10000
- realDragRange: 5000
- decimals: 0
- backendValue: backendValues.rightInset
- Layout.fillWidth: true
- }
- }
- }
-}
diff --git a/src/quickcontrols2/designer/ItemDelegateSection.qml b/src/quickcontrols2/designer/ItemDelegateSection.qml
deleted file mode 100644
index 448a20d9..00000000
--- a/src/quickcontrols2/designer/ItemDelegateSection.qml
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Section {
- id: section
- caption: qsTr("ItemDelegate")
-
- SectionLayout {
- Label {
- text: qsTr("Highlighted")
- tooltip: qsTr("Whether the delegate is highlighted.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.highlighted.valueToString
- backendValue: backendValues.highlighted
- Layout.fillWidth: true
- }
- }
- }
-}
diff --git a/src/quickcontrols2/designer/ItemDelegateSpecifics.qml b/src/quickcontrols2/designer/ItemDelegateSpecifics.qml
deleted file mode 100644
index 1757521d..00000000
--- a/src/quickcontrols2/designer/ItemDelegateSpecifics.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- ItemDelegateSection {
- width: parent.width
- }
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/LabelSpecifics.qml b/src/quickcontrols2/designer/LabelSpecifics.qml
deleted file mode 100644
index 569b44c8..00000000
--- a/src/quickcontrols2/designer/LabelSpecifics.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- StandardTextSection {
- width: parent.width
- showIsWrapping: true
- showFormatProperty: true
- showVerticalAlignment: true
- }
-
- Section {
- anchors.left: parent.left
- anchors.right: parent.right
- caption: qsTr("Text Color")
-
- ColorEditor {
- caption: qsTr("Text Color")
- backendValue: backendValues.color
- supportGradient: false
- }
- }
-
- Section {
- anchors.left: parent.left
- anchors.right: parent.right
- caption: qsTr("Style Color")
-
- ColorEditor {
- caption: qsTr("Style Color")
- backendValue: backendValues.styleColor
- supportGradient: false
- }
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-
- InsetSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/PaddingSection.qml b/src/quickcontrols2/designer/PaddingSection.qml
deleted file mode 100644
index 325c5698..00000000
--- a/src/quickcontrols2/designer/PaddingSection.qml
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Section {
- caption: qsTr("Padding")
-
- SectionLayout {
- Label {
- text: qsTr("Top")
- tooltip: qsTr("Padding between the content and the top edge of the control.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.topPadding
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Left")
- tooltip: qsTr("Padding between the content and the left edge of the control.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.leftPadding
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Right")
- tooltip: qsTr("Padding between the content and the right edge of the control.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.rightPadding
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Bottom")
- tooltip: qsTr("Padding between the content and the bottom edge of the control.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.bottomPadding
- Layout.fillWidth: true
- }
- }
- }
-}
diff --git a/src/quickcontrols2/designer/PageIndicatorSpecifics.qml b/src/quickcontrols2/designer/PageIndicatorSpecifics.qml
deleted file mode 100644
index c73652e9..00000000
--- a/src/quickcontrols2/designer/PageIndicatorSpecifics.qml
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("PageIndicator")
-
- SectionLayout {
- Label {
- text: qsTr("Count")
- tooltip: qsTr("The number of pages.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.count
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Current")
- tooltip: qsTr("The index of the current page.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.currentIndex
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Interactive")
- tooltip: qsTr("Whether the control is interactive.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.interactive.valueToString
- backendValue: backendValues.interactive
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/PageSpecifics.qml b/src/quickcontrols2/designer/PageSpecifics.qml
deleted file mode 100644
index 965ed655..00000000
--- a/src/quickcontrols2/designer/PageSpecifics.qml
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("Page")
-
- SectionLayout {
- Label {
- text: qsTr("Title")
- tooltip: qsTr("Title of the page.")
- }
- SecondColumnLayout {
- LineEdit {
- backendValue: backendValues.title
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Content Width")
- tooltip: qsTr("Content height used for calculating the total implicit width.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.contentWidth
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Content Height")
- tooltip: qsTr("Content height used for calculating the total implicit height.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.contentHeight
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/PaneSection.qml b/src/quickcontrols2/designer/PaneSection.qml
deleted file mode 100644
index 9dcc2097..00000000
--- a/src/quickcontrols2/designer/PaneSection.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Section {
- caption: qsTr("Pane")
-
- SectionLayout {
- Label {
- text: qsTr("Content Width")
- tooltip: qsTr("Content height used for calculating the total implicit width.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.contentWidth
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Content Height")
- tooltip: qsTr("Content height used for calculating the total implicit height.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.contentHeight
- Layout.fillWidth: true
- }
- }
- }
-}
diff --git a/src/quickcontrols2/designer/PaneSpecifics.qml b/src/quickcontrols2/designer/PaneSpecifics.qml
deleted file mode 100644
index 36739956..00000000
--- a/src/quickcontrols2/designer/PaneSpecifics.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- PaneSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/ProgressBarSpecifics.qml b/src/quickcontrols2/designer/ProgressBarSpecifics.qml
deleted file mode 100644
index 14f87925..00000000
--- a/src/quickcontrols2/designer/ProgressBarSpecifics.qml
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("ProgressBar")
-
- SectionLayout {
- Label {
- text: qsTr("Indeterminate")
- tooltip: qsTr("Whether the progress is indeterminate.")
- disabledState: !backendValues.indeterminate.isAvailable
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.indeterminate.valueToString
- backendValue: backendValues.indeterminate
- Layout.fillWidth: true
- enabled: backendValue.isAvailable
- }
- }
-
- Label {
- text: qsTr("Value")
- tooltip: qsTr("The current value of the progress.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
- maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.value
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("From")
- tooltip: qsTr("The starting value for the progress.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.from
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("To")
- tooltip: qsTr("The ending value for the progress.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.to
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/RadioButtonSpecifics.qml b/src/quickcontrols2/designer/RadioButtonSpecifics.qml
deleted file mode 100644
index df0af7e7..00000000
--- a/src/quickcontrols2/designer/RadioButtonSpecifics.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/RadioDelegateSpecifics.qml b/src/quickcontrols2/designer/RadioDelegateSpecifics.qml
deleted file mode 100644
index 1757521d..00000000
--- a/src/quickcontrols2/designer/RadioDelegateSpecifics.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- ItemDelegateSection {
- width: parent.width
- }
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/RangeSliderSpecifics.qml b/src/quickcontrols2/designer/RangeSliderSpecifics.qml
deleted file mode 100644
index 577033ed..00000000
--- a/src/quickcontrols2/designer/RangeSliderSpecifics.qml
+++ /dev/null
@@ -1,189 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("RangeSlider")
-
- SectionLayout {
- Label {
- text: qsTr("First Value")
- tooltip: qsTr("The value of the first range slider handle.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
- maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.first_value
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Second Value")
- tooltip: qsTr("The value of the second range slider handle.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
- maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.second_value
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("From")
- tooltip: qsTr("The starting value of the range slider range.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.from
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("To")
- tooltip: qsTr("The ending value of the range slider range.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.to
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Step Size")
- tooltip: qsTr("The step size of the range slider.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.stepSize
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Snap Mode")
- tooltip: qsTr("The snap mode of the range slider.")
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.snapMode
- model: [ "NoSnap", "SnapOnRelease", "SnapAlways" ]
- scope: "RangeSlider"
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Orientation")
- tooltip: qsTr("The orientation of the range slider.")
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.orientation
- model: [ "Horizontal", "Vertical" ]
- scope: "Qt"
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Live")
- tooltip: qsTr("Whether the range slider provides live value updates.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.live.valueToString
- backendValue: backendValues.live
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Touch drag threshold")
- tooltip: qsTr("The threshold (in logical pixels) at which a touch drag event will be initiated.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 10000
- decimals: 0
- backendValue: backendValues.touchDragThreshold
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/RoundButtonSpecifics.qml b/src/quickcontrols2/designer/RoundButtonSpecifics.qml
deleted file mode 100644
index 58d34689..00000000
--- a/src/quickcontrols2/designer/RoundButtonSpecifics.qml
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("RoundButton")
-
- SectionLayout {
- Label {
- text: qsTr("Radius")
- tooltip: qsTr("Radius of the button.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 10000
- decimals: 0
- backendValue: backendValues.radius
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ButtonSection {
- width: parent.width
- }
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/ScrollViewSpecifics.qml b/src/quickcontrols2/designer/ScrollViewSpecifics.qml
deleted file mode 100644
index ae525b74..00000000
--- a/src/quickcontrols2/designer/ScrollViewSpecifics.qml
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("ScrollView")
-
- SectionLayout {
- Label {
- text: qsTr("Content Width")
- tooltip: qsTr("Content height used for calculating the total implicit width.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.contentWidth
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Content Height")
- tooltip: qsTr("Content height used for calculating the total implicit height.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.contentHeight
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/SliderSpecifics.qml b/src/quickcontrols2/designer/SliderSpecifics.qml
deleted file mode 100644
index 3af20540..00000000
--- a/src/quickcontrols2/designer/SliderSpecifics.qml
+++ /dev/null
@@ -1,180 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("Slider")
-
- SectionLayout {
- Label {
- text: qsTr("Value")
- tooltip: qsTr("The current value of the slider.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
- maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.value
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("From")
- tooltip: qsTr("The starting value of the slider range.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.from
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("To")
- tooltip: qsTr("The ending value of the slider range.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.to
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Step Size")
- tooltip: qsTr("The step size of the slider.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- stepSize: 0.1
- backendValue: backendValues.stepSize
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Snap Mode")
- tooltip: qsTr("The snap mode of the slider.")
- disabledState: !backendValues.snapMode.isAvailable
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.snapMode
- model: [ "NoSnap", "SnapOnRelease", "SnapAlways" ]
- scope: "Slider"
- Layout.fillWidth: true
- enabled: backendValue.isAvailable
- }
- }
-
- Label {
- text: qsTr("Orientation")
- tooltip: qsTr("The orientation of the slider.")
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.orientation
- model: [ "Horizontal", "Vertical" ]
- scope: "Qt"
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Live")
- tooltip: qsTr("Whether the slider provides live value updates.")
- disabledState: !backendValues.live.isAvailable
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.live.valueToString
- backendValue: backendValues.live
- Layout.fillWidth: true
- enabled: backendValue.isAvailable
- }
- }
-
- Label {
- text: qsTr("Touch drag threshold")
- tooltip: qsTr("The threshold (in logical pixels) at which a touch drag event will be initiated.")
- disabledState: !backendValues.touchDragThreshold.isAvailable
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: 0
- maximumValue: 10000
- decimals: 0
- backendValue: backendValues.touchDragThreshold
- Layout.fillWidth: true
- enabled: backendValue.isAvailable
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/SpinBoxSpecifics.qml b/src/quickcontrols2/designer/SpinBoxSpecifics.qml
deleted file mode 100644
index 9c07e8c5..00000000
--- a/src/quickcontrols2/designer/SpinBoxSpecifics.qml
+++ /dev/null
@@ -1,142 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("SpinBox")
-
- SectionLayout {
- Label {
- text: qsTr("Value")
- tooltip: qsTr("The current value of the spinbox.")
- }
- SecondColumnLayout {
- SpinBox {
- minimumValue: Math.min(backendValues.from.value, backendValues.to.value)
- maximumValue: Math.max(backendValues.from.value, backendValues.to.value)
- decimals: 2
- backendValue: backendValues.value
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("From")
- tooltip: qsTr("The starting value of the spinbox range.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- backendValue: backendValues.from
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("To")
- tooltip: qsTr("The ending value of the spinbox range.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- backendValue: backendValues.to
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Step Size")
- tooltip: qsTr("The step size of the spinbox.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 2
- backendValue: backendValues.stepSize
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Editable")
- tooltip: qsTr("Whether the spinbox is editable.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.editable.valueToString
- backendValue: backendValues.editable
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Wrap")
- tooltip: qsTr("Whether the spinbox wraps.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.wrap.valueToString
- backendValue: backendValues.wrap
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/StackViewSpecifics.qml b/src/quickcontrols2/designer/StackViewSpecifics.qml
deleted file mode 100644
index 3937437b..00000000
--- a/src/quickcontrols2/designer/StackViewSpecifics.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/SwipeDelegateSpecifics.qml b/src/quickcontrols2/designer/SwipeDelegateSpecifics.qml
deleted file mode 100644
index 1757521d..00000000
--- a/src/quickcontrols2/designer/SwipeDelegateSpecifics.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- ItemDelegateSection {
- width: parent.width
- }
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/SwipeViewSpecifics.qml b/src/quickcontrols2/designer/SwipeViewSpecifics.qml
deleted file mode 100644
index a28a2917..00000000
--- a/src/quickcontrols2/designer/SwipeViewSpecifics.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("SwipeView")
-
- SectionLayout {
- Label {
- text: qsTr("Interactive")
- tooltip: qsTr("Whether the view is interactive.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.interactive.valueToString
- backendValue: backendValues.interactive
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Orientation")
- tooltip: qsTr("Orientation of the view.")
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.orientation
- model: [ "Horizontal", "Vertical" ]
- scope: "Qt"
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ContainerSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/SwitchDelegateSpecifics.qml b/src/quickcontrols2/designer/SwitchDelegateSpecifics.qml
deleted file mode 100644
index 4236de67..00000000
--- a/src/quickcontrols2/designer/SwitchDelegateSpecifics.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- ItemDelegateSection {
- width: parent.width
- }
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/SwitchSpecifics.qml b/src/quickcontrols2/designer/SwitchSpecifics.qml
deleted file mode 100644
index df0af7e7..00000000
--- a/src/quickcontrols2/designer/SwitchSpecifics.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/TabBarSpecifics.qml b/src/quickcontrols2/designer/TabBarSpecifics.qml
deleted file mode 100644
index 6f02cdaa..00000000
--- a/src/quickcontrols2/designer/TabBarSpecifics.qml
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("TabBar")
-
- SectionLayout {
- Label {
- text: qsTr("Position")
- tooltip: qsTr("Position of the tabbar.")
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.position
- model: [ "Header", "Footer" ]
- scope: "TabBar"
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Content Width")
- tooltip: qsTr("Content height used for calculating the total implicit width.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.contentWidth
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Content Height")
- tooltip: qsTr("Content height used for calculating the total implicit height.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.contentHeight
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ContainerSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/TabButtonSpecifics.qml b/src/quickcontrols2/designer/TabButtonSpecifics.qml
deleted file mode 100644
index df0af7e7..00000000
--- a/src/quickcontrols2/designer/TabButtonSpecifics.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/TextAreaSpecifics.qml b/src/quickcontrols2/designer/TextAreaSpecifics.qml
deleted file mode 100644
index 785d7a50..00000000
--- a/src/quickcontrols2/designer/TextAreaSpecifics.qml
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("TextArea")
-
- SectionLayout {
- Label {
- text: qsTr("Placeholder")
- tooltip: qsTr("Placeholder text displayed when the editor is empty.")
- }
- SecondColumnLayout {
- LineEdit {
- backendValue: backendValues.placeholderText
- Layout.fillWidth: true
- }
-
- }
-
- Label {
- text: qsTr("Hover")
- tooltip: qsTr("Whether text area accepts hover events.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.hoverEnabled.valueToString
- backendValue: backendValues.hoverEnabled
- Layout.fillWidth: true
- }
- }
- }
- }
-
- Section {
- width: parent.width
- caption: qsTr("Placeholder Text Color")
-
- ColorEditor {
- caption: qsTr("Placeholder Text Color")
- backendValue: backendValues.placeholderTextColor
- supportGradient: false
- }
- }
-
- StandardTextSection {
- width: parent.width
- showIsWrapping: true
- showFormatProperty: true
- showVerticalAlignment: true
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-
- InsetSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/TextFieldSpecifics.qml b/src/quickcontrols2/designer/TextFieldSpecifics.qml
deleted file mode 100644
index 33a90f2a..00000000
--- a/src/quickcontrols2/designer/TextFieldSpecifics.qml
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("TextField")
-
- SectionLayout {
- Label {
- text: qsTr("Placeholder")
- tooltip: qsTr("Placeholder text displayed when the editor is empty.")
- }
- SecondColumnLayout {
- LineEdit {
- backendValue: backendValues.placeholderText
- Layout.fillWidth: true
- }
-
- }
-
- Label {
- text: qsTr("Hover")
- tooltip: qsTr("Whether text field accepts hover events.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.hoverEnabled.valueToString
- backendValue: backendValues.hoverEnabled
- Layout.fillWidth: true
- }
- }
- }
- }
-
- Section {
- width: parent.width
- caption: qsTr("Placeholder Text Color")
-
- ColorEditor {
- caption: qsTr("Placeholder Text Color")
- backendValue: backendValues.placeholderTextColor
- supportGradient: false
- }
- }
-
- StandardTextSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-
- InsetSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/ToolBarSpecifics.qml b/src/quickcontrols2/designer/ToolBarSpecifics.qml
deleted file mode 100644
index 2b1b17d2..00000000
--- a/src/quickcontrols2/designer/ToolBarSpecifics.qml
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("ToolBar")
-
- SectionLayout {
- Label {
- text: qsTr("Position")
- tooltip: qsTr("Position of the toolbar.")
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.position
- model: [ "Header", "Footer" ]
- scope: "ToolBar"
- Layout.fillWidth: true
- }
- }
- }
- }
-
- PaneSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/ToolButtonSpecifics.qml b/src/quickcontrols2/designer/ToolButtonSpecifics.qml
deleted file mode 100644
index 5a46e72a..00000000
--- a/src/quickcontrols2/designer/ToolButtonSpecifics.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- ButtonSection {
- width: parent.width
- }
-
- AbstractButtonSection {
- width: parent.width
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/ToolSeparatorSpecifics.qml b/src/quickcontrols2/designer/ToolSeparatorSpecifics.qml
deleted file mode 100644
index a62147ec..00000000
--- a/src/quickcontrols2/designer/ToolSeparatorSpecifics.qml
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("ToolSeparator")
-
- SectionLayout {
- Label {
- text: qsTr("Orientation")
- tooltip: qsTr("The orientation of the separator.")
- }
- SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.orientation
- model: [ "Horizontal", "Vertical" ]
- scope: "Qt"
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/TumblerSpecifics.qml b/src/quickcontrols2/designer/TumblerSpecifics.qml
deleted file mode 100644
index 25fb9275..00000000
--- a/src/quickcontrols2/designer/TumblerSpecifics.qml
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import HelperWidgets
-import QtQuick.Layouts
-
-Column {
- width: parent.width
-
- Section {
- width: parent.width
- caption: qsTr("Tumbler")
-
- SectionLayout {
- Label {
- text: qsTr("Visible Count")
- tooltip: qsTr("The count of visible items.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.visibleItemCount
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Current")
- tooltip: qsTr("The index of the current item.")
- }
- SecondColumnLayout {
- SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
- decimals: 0
- backendValue: backendValues.currentIndex
- Layout.fillWidth: true
- }
- }
-
- Label {
- text: qsTr("Wrap")
- tooltip: qsTr("Whether the tumbler wrap.")
- }
- SecondColumnLayout {
- CheckBox {
- text: backendValues.wrap.valueToString
- backendValue: backendValues.wrap
- Layout.fillWidth: true
- }
- }
- }
- }
-
- ControlSection {
- width: parent.width
- }
-
- FontSection {
- width: parent.width
- }
-
- PaddingSection {
- width: parent.width
- }
-}
diff --git a/src/quickcontrols2/designer/designer.pri b/src/quickcontrols2/designer/designer.pri
deleted file mode 100644
index 6692b203..00000000
--- a/src/quickcontrols2/designer/designer.pri
+++ /dev/null
@@ -1,52 +0,0 @@
-AUX_QML_FILES += \
- $$PWD/qtquickcontrols2.metainfo
-
-AUX_QML_FILES += \
- $$PWD/AbstractButtonSection.qml \
- $$PWD/BusyIndicatorSpecifics.qml \
- $$PWD/ButtonSection.qml \
- $$PWD/ButtonSpecifics.qml \
- $$PWD/CheckBoxSpecifics.qml \
- $$PWD/CheckDelegateSpecifics.qml \
- $$PWD/CheckSection.qml \
- $$PWD/ComboBoxSpecifics.qml \
- $$PWD/ContainerSection.qml \
- $$PWD/ControlSection.qml \
- $$PWD/ControlSpecifics.qml \
- $$PWD/DelayButtonSpecifics.qml \
- $$PWD/DialSpecifics.qml \
- $$PWD/FrameSpecifics.qml \
- $$PWD/GroupBoxSpecifics.qml \
- $$PWD/InsetSection.qml \
- $$PWD/ItemDelegateSection.qml \
- $$PWD/ItemDelegateSpecifics.qml \
- $$PWD/LabelSpecifics.qml \
- $$PWD/PaddingSection.qml \
- $$PWD/PageSpecifics.qml \
- $$PWD/PageIndicatorSpecifics.qml \
- $$PWD/PaneSection.qml \
- $$PWD/PaneSpecifics.qml \
- $$PWD/ProgressBarSpecifics.qml \
- $$PWD/RadioButtonSpecifics.qml \
- $$PWD/RadioDelegateSpecifics.qml \
- $$PWD/RangeSliderSpecifics.qml \
- $$PWD/RoundButtonSpecifics.qml \
- $$PWD/ScrollViewSpecifics.qml \
- $$PWD/SliderSpecifics.qml \
- $$PWD/SpinBoxSpecifics.qml \
- $$PWD/StackViewSpecifics.qml \
- $$PWD/SwipeDelegateSpecifics.qml \
- $$PWD/SwipeViewSpecifics.qml \
- $$PWD/SwitchSpecifics.qml \
- $$PWD/SwitchDelegateSpecifics.qml \
- $$PWD/TabBarSpecifics.qml \
- $$PWD/TabButtonSpecifics.qml \
- $$PWD/TextAreaSpecifics.qml \
- $$PWD/TextFieldSpecifics.qml \
- $$PWD/ToolBarSpecifics.qml \
- $$PWD/ToolButtonSpecifics.qml \
- $$PWD/ToolSeparatorSpecifics.qml \
- $$PWD/TumblerSpecifics.qml
-
-AUX_QML_FILES += \
- $$files($$PWD/images/*.png)
diff --git a/src/quickcontrols2/designer/images/busyindicator-icon.png b/src/quickcontrols2/designer/images/busyindicator-icon.png
deleted file mode 100644
index 666d1ed9..00000000
--- a/src/quickcontrols2/designer/images/busyindicator-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/busyindicator-icon16.png b/src/quickcontrols2/designer/images/busyindicator-icon16.png
deleted file mode 100644
index 5aa57d7f..00000000
--- a/src/quickcontrols2/designer/images/busyindicator-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/busyindicator-icon@2x.png b/src/quickcontrols2/designer/images/busyindicator-icon@2x.png
deleted file mode 100644
index bb2278ff..00000000
--- a/src/quickcontrols2/designer/images/busyindicator-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/button-icon.png b/src/quickcontrols2/designer/images/button-icon.png
deleted file mode 100644
index c44909f6..00000000
--- a/src/quickcontrols2/designer/images/button-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/button-icon16.png b/src/quickcontrols2/designer/images/button-icon16.png
deleted file mode 100644
index 5c921deb..00000000
--- a/src/quickcontrols2/designer/images/button-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/button-icon@2x.png b/src/quickcontrols2/designer/images/button-icon@2x.png
deleted file mode 100644
index f90a1ba7..00000000
--- a/src/quickcontrols2/designer/images/button-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/checkbox-icon.png b/src/quickcontrols2/designer/images/checkbox-icon.png
deleted file mode 100644
index ee669b3a..00000000
--- a/src/quickcontrols2/designer/images/checkbox-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/checkbox-icon16.png b/src/quickcontrols2/designer/images/checkbox-icon16.png
deleted file mode 100644
index 8d89eab8..00000000
--- a/src/quickcontrols2/designer/images/checkbox-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/checkbox-icon@2x.png b/src/quickcontrols2/designer/images/checkbox-icon@2x.png
deleted file mode 100644
index 51c5601d..00000000
--- a/src/quickcontrols2/designer/images/checkbox-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/combobox-icon.png b/src/quickcontrols2/designer/images/combobox-icon.png
deleted file mode 100644
index 2d31b17c..00000000
--- a/src/quickcontrols2/designer/images/combobox-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/combobox-icon16.png b/src/quickcontrols2/designer/images/combobox-icon16.png
deleted file mode 100644
index 15fc3505..00000000
--- a/src/quickcontrols2/designer/images/combobox-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/combobox-icon@2x.png b/src/quickcontrols2/designer/images/combobox-icon@2x.png
deleted file mode 100644
index 5f823905..00000000
--- a/src/quickcontrols2/designer/images/combobox-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/delaybutton-icon.png b/src/quickcontrols2/designer/images/delaybutton-icon.png
deleted file mode 100644
index 5a55bd9f..00000000
--- a/src/quickcontrols2/designer/images/delaybutton-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/delaybutton-icon16.png b/src/quickcontrols2/designer/images/delaybutton-icon16.png
deleted file mode 100644
index cd21394e..00000000
--- a/src/quickcontrols2/designer/images/delaybutton-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/delaybutton-icon@2x.png b/src/quickcontrols2/designer/images/delaybutton-icon@2x.png
deleted file mode 100644
index 7beee2fa..00000000
--- a/src/quickcontrols2/designer/images/delaybutton-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/dial-icon.png b/src/quickcontrols2/designer/images/dial-icon.png
deleted file mode 100644
index b3b63e35..00000000
--- a/src/quickcontrols2/designer/images/dial-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/dial-icon16.png b/src/quickcontrols2/designer/images/dial-icon16.png
deleted file mode 100644
index 8d8c7c09..00000000
--- a/src/quickcontrols2/designer/images/dial-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/dial-icon@2x.png b/src/quickcontrols2/designer/images/dial-icon@2x.png
deleted file mode 100644
index 22547a16..00000000
--- a/src/quickcontrols2/designer/images/dial-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/frame-icon.png b/src/quickcontrols2/designer/images/frame-icon.png
deleted file mode 100644
index 32abc8bf..00000000
--- a/src/quickcontrols2/designer/images/frame-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/frame-icon16.png b/src/quickcontrols2/designer/images/frame-icon16.png
deleted file mode 100644
index e5b65ad5..00000000
--- a/src/quickcontrols2/designer/images/frame-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/frame-icon@2x.png b/src/quickcontrols2/designer/images/frame-icon@2x.png
deleted file mode 100644
index 8b876f38..00000000
--- a/src/quickcontrols2/designer/images/frame-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/groupbox-icon.png b/src/quickcontrols2/designer/images/groupbox-icon.png
deleted file mode 100644
index 5542ecf8..00000000
--- a/src/quickcontrols2/designer/images/groupbox-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/groupbox-icon16.png b/src/quickcontrols2/designer/images/groupbox-icon16.png
deleted file mode 100644
index 9cf43248..00000000
--- a/src/quickcontrols2/designer/images/groupbox-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/groupbox-icon@2x.png b/src/quickcontrols2/designer/images/groupbox-icon@2x.png
deleted file mode 100644
index 80dab3c7..00000000
--- a/src/quickcontrols2/designer/images/groupbox-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/itemdelegate-icon.png b/src/quickcontrols2/designer/images/itemdelegate-icon.png
deleted file mode 100644
index 822cf3e7..00000000
--- a/src/quickcontrols2/designer/images/itemdelegate-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/itemdelegate-icon16.png b/src/quickcontrols2/designer/images/itemdelegate-icon16.png
deleted file mode 100644
index b3ed007a..00000000
--- a/src/quickcontrols2/designer/images/itemdelegate-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/itemdelegate-icon@2x.png b/src/quickcontrols2/designer/images/itemdelegate-icon@2x.png
deleted file mode 100644
index cb81308f..00000000
--- a/src/quickcontrols2/designer/images/itemdelegate-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/label-icon.png b/src/quickcontrols2/designer/images/label-icon.png
deleted file mode 100644
index 788bef07..00000000
--- a/src/quickcontrols2/designer/images/label-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/label-icon16.png b/src/quickcontrols2/designer/images/label-icon16.png
deleted file mode 100644
index b68d3845..00000000
--- a/src/quickcontrols2/designer/images/label-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/label-icon@2x.png b/src/quickcontrols2/designer/images/label-icon@2x.png
deleted file mode 100644
index 7001413d..00000000
--- a/src/quickcontrols2/designer/images/label-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/page-icon.png b/src/quickcontrols2/designer/images/page-icon.png
deleted file mode 100644
index b5ac87e8..00000000
--- a/src/quickcontrols2/designer/images/page-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/page-icon16.png b/src/quickcontrols2/designer/images/page-icon16.png
deleted file mode 100644
index bc6810b6..00000000
--- a/src/quickcontrols2/designer/images/page-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/page-icon@2x.png b/src/quickcontrols2/designer/images/page-icon@2x.png
deleted file mode 100644
index 23db032f..00000000
--- a/src/quickcontrols2/designer/images/page-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/pageindicator-icon.png b/src/quickcontrols2/designer/images/pageindicator-icon.png
deleted file mode 100644
index edb6b377..00000000
--- a/src/quickcontrols2/designer/images/pageindicator-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/pageindicator-icon16.png b/src/quickcontrols2/designer/images/pageindicator-icon16.png
deleted file mode 100644
index 0fb89675..00000000
--- a/src/quickcontrols2/designer/images/pageindicator-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/pageindicator-icon@2x.png b/src/quickcontrols2/designer/images/pageindicator-icon@2x.png
deleted file mode 100644
index 7be0ee81..00000000
--- a/src/quickcontrols2/designer/images/pageindicator-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/pane-icon.png b/src/quickcontrols2/designer/images/pane-icon.png
deleted file mode 100644
index 62ebe487..00000000
--- a/src/quickcontrols2/designer/images/pane-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/pane-icon16.png b/src/quickcontrols2/designer/images/pane-icon16.png
deleted file mode 100644
index 2b804844..00000000
--- a/src/quickcontrols2/designer/images/pane-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/pane-icon@2x.png b/src/quickcontrols2/designer/images/pane-icon@2x.png
deleted file mode 100644
index 55bb116a..00000000
--- a/src/quickcontrols2/designer/images/pane-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/progressbar-icon.png b/src/quickcontrols2/designer/images/progressbar-icon.png
deleted file mode 100644
index a023f73c..00000000
--- a/src/quickcontrols2/designer/images/progressbar-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/progressbar-icon16.png b/src/quickcontrols2/designer/images/progressbar-icon16.png
deleted file mode 100644
index 6fede21d..00000000
--- a/src/quickcontrols2/designer/images/progressbar-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/progressbar-icon@2x.png b/src/quickcontrols2/designer/images/progressbar-icon@2x.png
deleted file mode 100644
index 00694003..00000000
--- a/src/quickcontrols2/designer/images/progressbar-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/radiobutton-icon.png b/src/quickcontrols2/designer/images/radiobutton-icon.png
deleted file mode 100644
index d38170e2..00000000
--- a/src/quickcontrols2/designer/images/radiobutton-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/radiobutton-icon16.png b/src/quickcontrols2/designer/images/radiobutton-icon16.png
deleted file mode 100644
index 07b46a8a..00000000
--- a/src/quickcontrols2/designer/images/radiobutton-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/radiobutton-icon@2x.png b/src/quickcontrols2/designer/images/radiobutton-icon@2x.png
deleted file mode 100644
index 4bbddda4..00000000
--- a/src/quickcontrols2/designer/images/radiobutton-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/rangeslider-icon.png b/src/quickcontrols2/designer/images/rangeslider-icon.png
deleted file mode 100644
index 1c4c7b29..00000000
--- a/src/quickcontrols2/designer/images/rangeslider-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/rangeslider-icon16.png b/src/quickcontrols2/designer/images/rangeslider-icon16.png
deleted file mode 100644
index 3be4624d..00000000
--- a/src/quickcontrols2/designer/images/rangeslider-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/rangeslider-icon@2x.png b/src/quickcontrols2/designer/images/rangeslider-icon@2x.png
deleted file mode 100644
index aee69b33..00000000
--- a/src/quickcontrols2/designer/images/rangeslider-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/roundbutton-icon.png b/src/quickcontrols2/designer/images/roundbutton-icon.png
deleted file mode 100644
index d4b470dc..00000000
--- a/src/quickcontrols2/designer/images/roundbutton-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/roundbutton-icon16.png b/src/quickcontrols2/designer/images/roundbutton-icon16.png
deleted file mode 100644
index f6f36666..00000000
--- a/src/quickcontrols2/designer/images/roundbutton-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/roundbutton-icon@2x.png b/src/quickcontrols2/designer/images/roundbutton-icon@2x.png
deleted file mode 100644
index 4553e165..00000000
--- a/src/quickcontrols2/designer/images/roundbutton-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/scrollview-icon.png b/src/quickcontrols2/designer/images/scrollview-icon.png
deleted file mode 100644
index 5ef73ff1..00000000
--- a/src/quickcontrols2/designer/images/scrollview-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/scrollview-icon16.png b/src/quickcontrols2/designer/images/scrollview-icon16.png
deleted file mode 100644
index f8ca7a36..00000000
--- a/src/quickcontrols2/designer/images/scrollview-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/scrollview-icon@2x.png b/src/quickcontrols2/designer/images/scrollview-icon@2x.png
deleted file mode 100644
index 0eb7f966..00000000
--- a/src/quickcontrols2/designer/images/scrollview-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/slider-icon.png b/src/quickcontrols2/designer/images/slider-icon.png
deleted file mode 100644
index bd0a9729..00000000
--- a/src/quickcontrols2/designer/images/slider-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/slider-icon16.png b/src/quickcontrols2/designer/images/slider-icon16.png
deleted file mode 100644
index a08622df..00000000
--- a/src/quickcontrols2/designer/images/slider-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/slider-icon@2x.png b/src/quickcontrols2/designer/images/slider-icon@2x.png
deleted file mode 100644
index 93842e4c..00000000
--- a/src/quickcontrols2/designer/images/slider-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/spinbox-icon.png b/src/quickcontrols2/designer/images/spinbox-icon.png
deleted file mode 100644
index 37277c5e..00000000
--- a/src/quickcontrols2/designer/images/spinbox-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/spinbox-icon16.png b/src/quickcontrols2/designer/images/spinbox-icon16.png
deleted file mode 100644
index f88711dd..00000000
--- a/src/quickcontrols2/designer/images/spinbox-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/spinbox-icon@2x.png b/src/quickcontrols2/designer/images/spinbox-icon@2x.png
deleted file mode 100644
index b62a3bad..00000000
--- a/src/quickcontrols2/designer/images/spinbox-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/stackview-icon.png b/src/quickcontrols2/designer/images/stackview-icon.png
deleted file mode 100644
index a6ced349..00000000
--- a/src/quickcontrols2/designer/images/stackview-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/stackview-icon16.png b/src/quickcontrols2/designer/images/stackview-icon16.png
deleted file mode 100644
index 0f19d0ef..00000000
--- a/src/quickcontrols2/designer/images/stackview-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/stackview-icon@2x.png b/src/quickcontrols2/designer/images/stackview-icon@2x.png
deleted file mode 100644
index 9b5ef951..00000000
--- a/src/quickcontrols2/designer/images/stackview-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/swipeview-icon.png b/src/quickcontrols2/designer/images/swipeview-icon.png
deleted file mode 100644
index 031cb27c..00000000
--- a/src/quickcontrols2/designer/images/swipeview-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/swipeview-icon16.png b/src/quickcontrols2/designer/images/swipeview-icon16.png
deleted file mode 100644
index 446c4696..00000000
--- a/src/quickcontrols2/designer/images/swipeview-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/swipeview-icon@2x.png b/src/quickcontrols2/designer/images/swipeview-icon@2x.png
deleted file mode 100644
index 0ccb978c..00000000
--- a/src/quickcontrols2/designer/images/swipeview-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/switch-icon.png b/src/quickcontrols2/designer/images/switch-icon.png
deleted file mode 100644
index e0181592..00000000
--- a/src/quickcontrols2/designer/images/switch-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/switch-icon16.png b/src/quickcontrols2/designer/images/switch-icon16.png
deleted file mode 100644
index 9abd2756..00000000
--- a/src/quickcontrols2/designer/images/switch-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/switch-icon@2x.png b/src/quickcontrols2/designer/images/switch-icon@2x.png
deleted file mode 100644
index 787f54ca..00000000
--- a/src/quickcontrols2/designer/images/switch-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/textarea-icon.png b/src/quickcontrols2/designer/images/textarea-icon.png
deleted file mode 100644
index f1b2dc0f..00000000
--- a/src/quickcontrols2/designer/images/textarea-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/textarea-icon16.png b/src/quickcontrols2/designer/images/textarea-icon16.png
deleted file mode 100644
index 4afc1fba..00000000
--- a/src/quickcontrols2/designer/images/textarea-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/textarea-icon@2x.png b/src/quickcontrols2/designer/images/textarea-icon@2x.png
deleted file mode 100644
index c32ecc71..00000000
--- a/src/quickcontrols2/designer/images/textarea-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/textfield-icon.png b/src/quickcontrols2/designer/images/textfield-icon.png
deleted file mode 100644
index ba5537ac..00000000
--- a/src/quickcontrols2/designer/images/textfield-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/textfield-icon16.png b/src/quickcontrols2/designer/images/textfield-icon16.png
deleted file mode 100644
index c4a62a65..00000000
--- a/src/quickcontrols2/designer/images/textfield-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/textfield-icon@2x.png b/src/quickcontrols2/designer/images/textfield-icon@2x.png
deleted file mode 100644
index e05fd41b..00000000
--- a/src/quickcontrols2/designer/images/textfield-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/toolbar-icon.png b/src/quickcontrols2/designer/images/toolbar-icon.png
deleted file mode 100644
index 5cb5b2e1..00000000
--- a/src/quickcontrols2/designer/images/toolbar-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/toolbar-icon16.png b/src/quickcontrols2/designer/images/toolbar-icon16.png
deleted file mode 100644
index 569373af..00000000
--- a/src/quickcontrols2/designer/images/toolbar-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/toolbar-icon@2x.png b/src/quickcontrols2/designer/images/toolbar-icon@2x.png
deleted file mode 100644
index fd9e6cee..00000000
--- a/src/quickcontrols2/designer/images/toolbar-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/toolbutton-icon.png b/src/quickcontrols2/designer/images/toolbutton-icon.png
deleted file mode 100644
index 3298f695..00000000
--- a/src/quickcontrols2/designer/images/toolbutton-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/toolbutton-icon16.png b/src/quickcontrols2/designer/images/toolbutton-icon16.png
deleted file mode 100644
index 9ab7861c..00000000
--- a/src/quickcontrols2/designer/images/toolbutton-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/toolbutton-icon@2x.png b/src/quickcontrols2/designer/images/toolbutton-icon@2x.png
deleted file mode 100644
index e5958cde..00000000
--- a/src/quickcontrols2/designer/images/toolbutton-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/toolseparator-icon.png b/src/quickcontrols2/designer/images/toolseparator-icon.png
deleted file mode 100644
index 5e99f06f..00000000
--- a/src/quickcontrols2/designer/images/toolseparator-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/toolseparator-icon16.png b/src/quickcontrols2/designer/images/toolseparator-icon16.png
deleted file mode 100644
index 68f22c5d..00000000
--- a/src/quickcontrols2/designer/images/toolseparator-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/toolseparator-icon@2x.png b/src/quickcontrols2/designer/images/toolseparator-icon@2x.png
deleted file mode 100644
index 549c11c6..00000000
--- a/src/quickcontrols2/designer/images/toolseparator-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/tumbler-icon.png b/src/quickcontrols2/designer/images/tumbler-icon.png
deleted file mode 100644
index 98eb8232..00000000
--- a/src/quickcontrols2/designer/images/tumbler-icon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/tumbler-icon16.png b/src/quickcontrols2/designer/images/tumbler-icon16.png
deleted file mode 100644
index ff5f95cf..00000000
--- a/src/quickcontrols2/designer/images/tumbler-icon16.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/images/tumbler-icon@2x.png b/src/quickcontrols2/designer/images/tumbler-icon@2x.png
deleted file mode 100644
index 236abf0c..00000000
--- a/src/quickcontrols2/designer/images/tumbler-icon@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/designer/qtquickcontrols2.metainfo b/src/quickcontrols2/designer/qtquickcontrols2.metainfo
deleted file mode 100644
index d27f1b90..00000000
--- a/src/quickcontrols2/designer/qtquickcontrols2.metainfo
+++ /dev/null
@@ -1,522 +0,0 @@
-MetaInfo {
- Type {
- name: "QtQuick.Controls.BusyIndicator"
- icon: "images/busyindicator-icon16.png"
-
- ItemLibraryEntry {
- name: "Busy Indicator"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/busyindicator-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
- }
- }
-
- Type {
- name: "QtQuick.Controls.Button"
- icon: "images/button-icon16.png"
-
- ItemLibraryEntry {
- name: "Button"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/button-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Button\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.CheckBox"
- icon: "images/checkbox-icon16.png"
-
- ItemLibraryEntry {
- name: "Check Box"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/checkbox-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Check Box\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.CheckDelegate"
- icon: "images/checkbox-icon16.png"
-
- ItemLibraryEntry {
- name: "Check Delegate"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/checkbox-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Check Delegate\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.ComboBox"
- icon: "images/combobox-icon16.png"
-
- ItemLibraryEntry {
- name: "Combo Box"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/combobox-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
- }
- }
-
- Type {
- name: "QtQuick.Controls.DelayButton"
- icon: "images/button-icon16.png"
-
- ItemLibraryEntry {
- name: "Delay Button"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/delaybutton-icon.png"
- version: "2.2"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Delay Button\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.Dial"
- icon: "images/dial-icon16.png"
-
- ItemLibraryEntry {
- name: "Dial"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/dial-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
- }
- }
-
- Type {
- name: "QtQuick.Controls.Frame"
- icon: "images/frame-icon16.png"
-
- ItemLibraryEntry {
- name: "Frame"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/frame-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "width"; type: "int"; value: 200 }
- Property { name: "height"; type: "int"; value: 200 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.GroupBox"
- icon: "images/groupbox-icon16.png"
-
- ItemLibraryEntry {
- name: "Group Box"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/groupbox-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "width"; type: "int"; value: 200 }
- Property { name: "height"; type: "int"; value: 200 }
- Property { name: "title"; type: "binding"; value: "qsTr(\"Group Box\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.ItemDelegate"
- icon: "images/itemdelegate-icon16.png"
-
- ItemLibraryEntry {
- name: "Item Delegate"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/itemdelegate-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Item Delegate\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.Label"
- icon: "images/label-icon16.png"
-
- ItemLibraryEntry {
- name: "Label"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/label-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Label\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.Page"
- icon: "images/page-icon16.png"
-
- ItemLibraryEntry {
- name: "Page"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/page-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "width"; type: "int"; value: 200 }
- Property { name: "height"; type: "int"; value: 200 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.PageIndicator"
- icon: "images/pageindicator-icon16.png"
-
- ItemLibraryEntry {
- name: "Page Indicator"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/pageindicator-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "count"; type: "int"; value: 3 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.Pane"
- icon: "images/pane-icon16.png"
-
- ItemLibraryEntry {
- name: "Pane"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/pane-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "width"; type: "int"; value: 200 }
- Property { name: "height"; type: "int"; value: 200 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.ProgressBar"
- icon: "images/progressbar-icon16.png"
-
- ItemLibraryEntry {
- name: "Progress Bar"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/progressbar-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "value"; type: "real"; value: 0.5 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.RadioButton"
- icon: "images/radiobutton-icon16.png"
-
- ItemLibraryEntry {
- name: "Radio Button"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/radiobutton-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Radio Button\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.RadioDelegate"
- icon: "images/radiobutton-icon16.png"
-
- ItemLibraryEntry {
- name: "Radio Delegate"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/radiobutton-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Radio Delegate\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.RangeSlider"
- icon: "images/rangeslider-icon16.png"
-
- ItemLibraryEntry {
- name: "Range Slider"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/rangeslider-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "first.value"; type: "real"; value: 0.25 }
- Property { name: "second.value"; type: "real"; value: 0.75 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.RoundButton"
- icon: "images/roundbutton-icon16.png"
-
- ItemLibraryEntry {
- name: "Round Button"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/roundbutton-icon.png"
- version: "2.1"
- requiredImport: "QtQuick.Controls"
- Property { name: "text"; type: "string"; value: "+" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.Slider"
- icon: "images/slider-icon16.png"
-
- ItemLibraryEntry {
- name: "Slider"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/slider-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "value"; type: "real"; value: 0.5 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.SpinBox"
- icon: "images/spinbox-icon16.png"
-
- ItemLibraryEntry {
- name: "Spin Box"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/spinbox-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
- }
- }
-
- Type {
- name: "QtQuick.Controls.ScrollView"
- icon: "images/scrollview-icon16.png"
-
- ItemLibraryEntry {
- name: "Scroll View"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/scrollview-icon.png"
- version: "2.2"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "width"; type: "int"; value: 200 }
- Property { name: "height"; type: "int"; value: 200 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.StackView"
- icon: "images/stackview-icon16.png"
-
- ItemLibraryEntry {
- name: "Stack View"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/stackview-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "width"; type: "int"; value: 200 }
- Property { name: "height"; type: "int"; value: 200 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.SwipeDelegate"
- icon: "images/itemdelegate-icon16.png"
-
- ItemLibraryEntry {
- name: "Swipe Delegate"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/itemdelegate-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Swipe Delegate\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.SwipeView"
- icon: "images/swipeview-icon16.png"
-
- ItemLibraryEntry {
- name: "Swipe View"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/swipeview-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "width"; type: "int"; value: 200 }
- Property { name: "height"; type: "int"; value: 200 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.Switch"
- icon: "images/switch-icon16.png"
-
- ItemLibraryEntry {
- name: "Switch"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/switch-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Switch\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.SwitchDelegate"
- icon: "images/switch-icon16.png"
-
- ItemLibraryEntry {
- name: "Switch Delegate"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/switch-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Switch Delegate\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.TabBar"
- icon: "images/toolbar-icon16.png"
-
- ItemLibraryEntry {
- name: "Tab Bar"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/toolbar-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
- Property { name: "width"; type: "int"; value: 240 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.TabButton"
- icon: "images/toolbutton-icon16.png"
-
- ItemLibraryEntry {
- name: "Tab Button"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/toolbutton-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
- Property { name: "text"; type: "binding"; value: "qsTr(\"Tab Button\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.TextArea"
- icon: "images/textarea-icon16.png"
-
- ItemLibraryEntry {
- name: "Text Area"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/textarea-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "placeholderText"; type: "binding"; value: "qsTr(\"Text Area\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.TextField"
- icon: "images/textfield-icon16.png"
-
- ItemLibraryEntry {
- name: "Text Field"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/textfield-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "placeholderText"; type: "binding"; value: "qsTr(\"Text Field\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.ToolBar"
- icon: "images/toolbar-icon16.png"
-
- ItemLibraryEntry {
- name: "Tool Bar"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/toolbar-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "width"; type: "int"; value: 360 }
- }
- }
-
- Type {
- name: "QtQuick.Controls.ToolButton"
- icon: "images/toolbutton-icon16.png"
-
- ItemLibraryEntry {
- name: "Tool Button"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/toolbutton-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "text"; type: "binding"; value: "qsTr(\"Tool Button\")" }
- }
- }
-
- Type {
- name: "QtQuick.Controls.ToolSeparator"
- icon: "images/toolseparator-icon16.png"
-
- ItemLibraryEntry {
- name: "Tool Separator"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/toolseparator-icon.png"
- version: "2.1"
- requiredImport: "QtQuick.Controls"
- }
- }
-
- Type {
- name: "QtQuick.Controls.Tumbler"
- icon: "images/tumbler-icon16.png"
-
- ItemLibraryEntry {
- name: "Tumbler"
- category: "Qt Quick - Controls 2"
- libraryIcon: "images/tumbler-icon.png"
- version: "2.0"
- requiredImport: "QtQuick.Controls"
-
- Property { name: "model"; type: "int"; value: "10" }
- }
- }
-}
diff --git a/src/quickcontrols2/doc/doc.pri b/src/quickcontrols2/doc/doc.pri
deleted file mode 100644
index 4bd8bd95..00000000
--- a/src/quickcontrols2/doc/doc.pri
+++ /dev/null
@@ -1,6 +0,0 @@
-QMAKE_DOCS = $$PWD/qtquickcontrols.qdocconf
-
-OTHER_FILES += \
- $$files($$PWD/snippets/*.qml) \
- $$files($$PWD/src/*.qdoc) \
- $$files($$PWD/src/templates/*.qdoc)
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-applicationwindow-wireframe.png b/src/quickcontrols2/doc/images/qtquickcontrols2-applicationwindow-wireframe.png
deleted file mode 100644
index f3137800..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-applicationwindow-wireframe.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-basic-thumbnail.png b/src/quickcontrols2/doc/images/qtquickcontrols2-basic-thumbnail.png
deleted file mode 100644
index e971a7aa..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-basic-thumbnail.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-basic.png b/src/quickcontrols2/doc/images/qtquickcontrols2-basic.png
deleted file mode 100644
index 099db170..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-basic.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator-custom.png
deleted file mode 100644
index fefae223..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator.gif
deleted file mode 100644
index 653d200f..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator.png b/src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator.png
deleted file mode 100644
index 4be09579..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-busyindicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-button-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-button-custom.png
deleted file mode 100644
index 46d3e3eb..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-button-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-button-flat.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-button-flat.gif
deleted file mode 100644
index e2bd8b6f..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-button-flat.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-button-highlighted.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-button-highlighted.gif
deleted file mode 100644
index 7de076d3..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-button-highlighted.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-button-icononly.png b/src/quickcontrols2/doc/images/qtquickcontrols2-button-icononly.png
deleted file mode 100644
index 9c8dd0f4..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-button-icononly.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-button-textbesideicon.png b/src/quickcontrols2/doc/images/qtquickcontrols2-button-textbesideicon.png
deleted file mode 100644
index 3dc64fb9..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-button-textbesideicon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-button-textonly.png b/src/quickcontrols2/doc/images/qtquickcontrols2-button-textonly.png
deleted file mode 100644
index 737beb16..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-button-textonly.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-button-textundericon.png b/src/quickcontrols2/doc/images/qtquickcontrols2-button-textundericon.png
deleted file mode 100644
index 37c40c7c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-button-textundericon.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-button.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-button.gif
deleted file mode 100644
index 10d626a3..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-button.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-custom.png
deleted file mode 100644
index c6c3d1bc..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-group.png b/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-group.png
deleted file mode 100644
index d5a0d51b..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-group.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-tristate.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-tristate.gif
deleted file mode 100644
index 56a15867..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox-tristate.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox.gif
deleted file mode 100644
index d70c0ee4..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-checkbox.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate-custom.png
deleted file mode 100644
index c0dd0689..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate-tristate.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate-tristate.gif
deleted file mode 100644
index 8d058d6c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate-tristate.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate.gif
deleted file mode 100644
index da3fab98..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-checkdelegate.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-combobox-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-combobox-custom.png
deleted file mode 100644
index 4f7206dc..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-combobox-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-combobox-delegate.png b/src/quickcontrols2/doc/images/qtquickcontrols2-combobox-delegate.png
deleted file mode 100644
index cf310648..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-combobox-delegate.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-combobox-popup.png b/src/quickcontrols2/doc/images/qtquickcontrols2-combobox-popup.png
deleted file mode 100644
index cf310648..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-combobox-popup.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-combobox.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-combobox.gif
deleted file mode 100644
index 966a2d4a..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-combobox.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-control.png b/src/quickcontrols2/doc/images/qtquickcontrols2-control.png
deleted file mode 100644
index 0f004a89..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-control.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-control.svg b/src/quickcontrols2/doc/images/qtquickcontrols2-control.svg
deleted file mode 100644
index 4b2057d1..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-control.svg
+++ /dev/null
@@ -1,936 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="760"
- height="580"
- viewBox="0 0 759.99997 579.99999"
- id="svg2"
- version="1.1"
- inkscape:version="0.92.3 (2405546, 2018-03-11)"
- sodipodi:docname="qtquickcontrols2-control.svg"
- inkscape:export-filename="/home/jpnurmi/Projects/qt-dev/qtquickcontrols2/src/imports/controls/doc/images/qtquickcontrols2-control.png"
- inkscape:export-xdpi="192"
- inkscape:export-ydpi="192">
- <defs
- id="defs4">
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Mstart"
- orient="auto"
- refY="0"
- refX="0"
- id="Arrow1Mstart"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4191"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="matrix(0.4,0,0,0.4,4,0)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="Arrow2Mend"
- orient="auto"
- refY="0"
- refX="0"
- id="Arrow2Mend"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4212"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
- d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
- transform="scale(-0.6)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-3"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-9"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-0"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-5"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-9"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-2"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-1"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-2"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-9-6"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-2-2"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-1-1"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-2-7"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2-5"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4-7"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9-4"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1-1"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-1"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-8"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-96"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-4"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-9-6-4"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-2-2-7"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-1-1-6"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-2-7-8"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2-5-6"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4-7-2"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9-4-8"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1-1-9"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2-5-6-9"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4-7-2-6"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9-4-8-4"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1-1-9-8"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-1-7"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-8-9"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-96-7"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-4-4"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2-5-6-9-1"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4-7-2-6-7"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9-4-8-4-0"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1-1-9-8-6"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-1-9"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-8-3"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-96-3"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-4-46"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2-5-6-9-5"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4-7-2-6-6"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9-4-8-4-1"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1-1-9-8-7"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-1-9-7"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-8-3-7"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-96-3-2"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-4-46-3"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2-5-6-9-5-8"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4-7-2-6-6-1"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9-4-8-4-1-3"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1-1-9-8-7-6"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="1.4142136"
- inkscape:cx="138.75529"
- inkscape:cy="425.28174"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:window-width="3840"
- inkscape:window-height="2031"
- inkscape:window-x="0"
- inkscape:window-y="55"
- inkscape:window-maximized="1"
- fit-margin-top="0"
- fit-margin-left="0"
- fit-margin-right="0"
- fit-margin-bottom="0"
- units="px" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(91.482322,-32.9581)">
- <rect
- style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.05102265;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect4136"
- width="518.94897"
- height="298.94897"
- x="29.043194"
- y="193.48361" />
- <rect
- style="fill:#ffd5d5;fill-opacity:1;stroke:none;stroke-width:0.83021182;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect4136-3"
- width="440"
- height="220"
- x="68.517685"
- y="232.9581" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(1.1690183,0,0,1.1690183,115.80023,-231.31953)"><flowRegion
- id="flowRegion4140"
- style="fill:#ff2a2a"><rect
- id="rect4142"
- width="129.78784"
- height="31.668232"
- x="-34.519978"
- y="400.22751"
- style="font-size:15.41801071px;fill:#ff2a2a" /></flowRegion><flowPara
- id="flowPara4144"
- style="font-size:20.55734825px;line-height:1.25;fill:#ff2a2a">Background</flowPara><flowPara
- id="flowPara4146"
- style="font-size:20.55734825px;line-height:1.25;fill:#ff2a2a"> </flowPara></flowRoot> <rect
- style="fill:#d7e3f4;fill-opacity:1;stroke:none;stroke-width:22.32431984;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.58381503"
- id="rect4148"
- width="360"
- height="140"
- x="108.51768"
- y="272.95813" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0055d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,184.57261,41.294224)"><flowRegion
- id="flowRegion4140-6"
- style="fill:#0055d4"><rect
- id="rect4142-6"
- width="334.36047"
- height="80.812172"
- x="42.426407"
- y="481.62601"
- style="font-size:40px;fill:#0055d4" /></flowRegion><flowPara
- id="flowPara4146-6"
- style="font-size:40px;line-height:1.25;fill:#0055d4">Content item</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-1"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,247.75903,220.21488)"><flowRegion
- id="flowRegion4140-6-9"><rect
- id="rect4142-6-0"
- width="270.72089"
- height="68.690361"
- x="42.426407"
- y="481.62601"
- style="font-size:25px;fill:#000000" /></flowRegion><flowPara
- id="flowPara4146-6-2"
- style="font-size:17.5px;line-height:1.25">Width</flowPara></flowRoot> <path
- style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.93053311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-3);marker-end:url(#TriangleOutL-0)"
- d="M 33.168982,505.52033 H 543.32948"
- id="path4179-8"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-9);marker-end:url(#TriangleOutL-1)"
- d="M 16.517683,487.33858 V 198.57762"
- id="path4179-9"
- inkscape:connector-curvature="0" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-1-7"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,-50.003525,47.195824)"><flowRegion
- id="flowRegion4140-6-9-7"><rect
- id="rect4142-6-0-5"
- width="270.72089"
- height="68.690361"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#000000" /></flowRegion><flowPara
- id="flowPara4146-6-2-9"
- style="font-size:17.5px;line-height:1.25;fill:#000000">Height</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-3"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,206.65956,-144.78636)"><flowRegion
- id="flowRegion4140-6-67"><rect
- id="rect4142-6-5"
- width="334.36047"
- height="80.812172"
- x="42.426407"
- y="481.62601"
- style="font-size:60px;fill:#000000" /></flowRegion><flowPara
- style="font-size:60px;line-height:1.25"
- id="flowPara14323">Popup</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#0055d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,41.217752,149.93493)"><flowRegion
- id="flowRegion4140-6-6-4-6"
- style="text-align:center;text-anchor:middle;fill:#0055d4"><rect
- id="rect4142-6-1-4-2"
- width="252.53812"
- height="61.619293"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;text-align:center;text-anchor:middle;fill:#0055d4" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#0055d4"
- id="flowPara10048-9">Bottom</flowPara><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#0055d4"
- id="flowPara5290">padding</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-1"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0055d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,384.82399,-69.046412)"><flowRegion
- id="flowRegion4140-6-6-4-6-2"
- style="fill:#0055d4"><rect
- id="rect4142-6-1-4-2-7"
- width="71.826065"
- height="43.785866"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#0055d4" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#0055d4"
- id="flowPara10048-9-0">Top</flowPara><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#0055d4"
- id="flowPara4830">padding</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-9"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0055d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,458.14041,-0.80935844)"><flowRegion
- id="flowRegion4140-6-6-4-6-3"
- style="fill:#0055d4"><rect
- id="rect4142-6-1-4-2-6"
- width="81.109558"
- height="93.762154"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#0055d4" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#0055d4"
- id="flowPara4386">Right padding</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-9-2"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0055d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,19.173452,87.133114)"><flowRegion
- id="flowRegion4140-6-6-4-6-3-5"
- style="fill:#0055d4"><rect
- id="rect4142-6-1-4-2-6-4"
- width="81.109558"
- height="93.762154"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#0055d4" /></flowRegion><flowPara
- style="font-size:17.02554321px;line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#0055d4"
- id="flowPara4386-0">Left padding</flowPara></flowRoot> <path
- style="fill:#ff2a2a;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:0.87824047;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-9-6);marker-end:url(#TriangleOutL-1-1)"
- d="M 72.916183,227.96278 V 198.98852"
- id="path4179-9-8"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:0.87323481;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-2-5);marker-end:url(#TriangleOutL-9-4)"
- d="M 34.529058,238.58445 H 63.562954"
- id="path4179-7-8"
- inkscape:connector-curvature="0" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-1-5"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,47.895402,-88.000508)"><flowRegion
- id="flowRegion4140-6-6-4-6-2-9"
- style="fill:#ff2a2a"><rect
- id="rect4142-6-1-4-2-7-7"
- width="66.476036"
- height="55.080368"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#ff2a2a" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ff2a2a"
- id="flowPara11237">Top inset</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-9-2-3"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,0.4414194,-43.952242)"><flowRegion
- id="flowRegion4140-6-6-4-6-3-5-8"
- style="fill:#ff2a2a"><rect
- id="rect4142-6-1-4-2-6-4-8"
- width="75.759529"
- height="93.167732"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#ff2a2a" /></flowRegion><flowPara
- style="font-size:17.02554321px;line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ff2a2a"
- id="flowPara4386-0-3">Left inset</flowPara></flowRoot> <path
- style="fill:#0055d4;fill-rule:evenodd;stroke:#0055d4;stroke-width:0.97500122;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-1);marker-end:url(#TriangleOutL-96)"
- d="M 462.28757,267.38769 V 199.50991"
- id="path4179-3"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#ff2a2a;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:0.87794411;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-9-6-4);marker-end:url(#TriangleOutL-1-1-6)"
- d="M 504.22784,486.94146 V 457.98675"
- id="path4179-9-8-9"
- inkscape:connector-curvature="0" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-1-5-0"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,424.36985,170.98794)"><flowRegion
- id="flowRegion4140-6-6-4-6-2-9-6"
- style="fill:#ff2a2a"><rect
- id="rect4142-6-1-4-2-7-7-8"
- width="91.442841"
- height="44.974762"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#ff2a2a" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ff2a2a"
- id="flowPara11237-7">Bottom inset</flowPara></flowRoot> <path
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:0.87314719;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-2-5-6);marker-end:url(#TriangleOutL-9-4-8)"
- d="M 513.47562,448.6218 H 542.5037"
- id="path4179-7-8-6"
- inkscape:connector-curvature="0" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-9-2-3-0"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,479.24023,126.32002)"><flowRegion
- id="flowRegion4140-6-6-4-6-3-5-8-7"
- style="fill:#ff2a2a"><rect
- id="rect4142-6-1-4-2-6-4-8-0"
- width="75.759529"
- height="93.167732"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#ff2a2a" /></flowRegion><flowPara
- style="font-size:17.02554321px;line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ff2a2a"
- id="flowPara3807">Right inset</flowPara></flowRoot> <path
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.05938387;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-2-5-6-9);marker-end:url(#TriangleOutL-9-4-8-4)"
- d="m 474.52523,278.31524 h 66.93934"
- id="path4179-7-8-6-0"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#0055d4;fill-rule:evenodd;stroke:#0055d4;stroke-width:0.97513783;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-1-7);marker-end:url(#TriangleOutL-96-7)"
- d="M 114.58911,486.37854 V 418.48175"
- id="path4179-3-9"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.05900466;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-2-5-6-9-1);marker-end:url(#TriangleOutL-9-4-8-4-0)"
- d="M 35.582232,406.88667 H 102.47366"
- id="path4179-7-8-6-0-0"
- inkscape:connector-curvature="0" />
- <rect
- style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.38;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect4136-9"
- width="638.62036"
- height="418.6203"
- x="-30.792475"
- y="133.64795" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-3-8"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,192.12072,-213.92909)"><flowRegion
- id="flowRegion4140-6-67-1"><rect
- id="rect4142-6-5-6"
- width="334.36047"
- height="80.812172"
- x="42.426407"
- y="481.62601"
- style="font-size:60px;fill:#000000" /></flowRegion><flowPara
- style="font-size:60px;line-height:1.25"
- id="flowPara14323-3">Window</flowPara></flowRoot> <path
- style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.83036995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-1-9);marker-end:url(#TriangleOutL-96-3)"
- d="M 16.507747,188.209 V 138.97553"
- id="path4179-3-1"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.90094262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-2-5-6-9-5);marker-end:url(#TriangleOutL-9-4-8-4-1)"
- d="m 553.67227,505.52244 h 48.41379"
- id="path4179-7-8-6-0-2"
- inkscape:connector-curvature="0" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-1-2"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,-53.285062,-138.90295)"><flowRegion
- id="flowRegion4140-6-6-4-6-2-92"
- style="fill:#000000"><rect
- id="rect4142-6-1-4-2-7-8"
- width="71.826065"
- height="43.785866"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#000000" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#000000"
- id="flowPara10048-9-0-1">Top</flowPara><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#000000"
- id="flowPara4830-2">margin</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-1-2-4"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,530.78767,225.71855)"><flowRegion
- id="flowRegion4140-6-6-4-6-2-92-7"
- style="fill:#000000"><rect
- id="rect4142-6-1-4-2-7-8-8"
- width="71.826065"
- height="43.785866"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#000000" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#000000"
- id="flowPara10048-9-0-1-6">Right</flowPara><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#000000"
- id="flowPara4830-2-3">margin</flowPara></flowRoot> <path
- style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.83036995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-1-9-7);marker-end:url(#TriangleOutL-96-3-2)"
- d="M 16.459117,546.78218 V 497.54871"
- id="path4179-3-1-7"
- inkscape:connector-curvature="0" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-1-2-2"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,-0.06072146,225.50386)"><flowRegion
- id="flowRegion4140-6-6-4-6-2-92-5"
- style="fill:#000000"><rect
- id="rect4142-6-1-4-2-7-8-3"
- width="71.826065"
- height="43.785866"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#000000" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#000000"
- id="flowPara10048-9-0-1-7">Bottom</flowPara><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#000000"
- id="flowPara4830-2-6">margin</flowPara></flowRoot> <path
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.89733517;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-2-5-6-9-5-8);marker-end:url(#TriangleOutL-9-4-8-4-1-3)"
- d="M -25.075855,505.54405 H 22.951007"
- id="path4179-7-8-6-0-2-4"
- inkscape:connector-curvature="0" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-1-2-2-0"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,-55.529842,180.17847)"><flowRegion
- id="flowRegion4140-6-6-4-6-2-92-5-3"
- style="fill:#000000"><rect
- id="rect4142-6-1-4-2-7-8-3-5"
- width="71.826065"
- height="43.785866"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#000000" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#000000"
- id="flowPara10048-9-0-1-7-8">Left</flowPara><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#000000"
- id="flowPara4830-2-6-5">margin</flowPara></flowRoot> </g>
-</svg>
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-customize-buttons.png b/src/quickcontrols2/doc/images/qtquickcontrols2-customize-buttons.png
deleted file mode 100644
index 551e8a0c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-customize-buttons.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-delaybutton-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-delaybutton-custom.png
deleted file mode 100644
index a7bd7c19..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-delaybutton-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-delaybutton.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-delaybutton.gif
deleted file mode 100644
index 16a198f9..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-delaybutton.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-dial-custom.png
deleted file mode 100644
index 6312c999..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-handle.png b/src/quickcontrols2/doc/images/qtquickcontrols2-dial-handle.png
deleted file mode 100644
index 9e22b2e7..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-handle.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-inputMode.svgz b/src/quickcontrols2/doc/images/qtquickcontrols2-dial-inputMode.svgz
deleted file mode 100644
index 005ab7b3..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-inputMode.svgz
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-inputmode.png b/src/quickcontrols2/doc/images/qtquickcontrols2-dial-inputmode.png
deleted file mode 100644
index 5bbc41a4..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-inputmode.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-no-wrap.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-dial-no-wrap.gif
deleted file mode 100644
index 24f6790b..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-no-wrap.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-wrap.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-dial-wrap.gif
deleted file mode 100644
index cfb1fb5b..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-dial-wrap.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-dial.png b/src/quickcontrols2/doc/images/qtquickcontrols2-dial.png
deleted file mode 100644
index 71c54113..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-dial.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-dialogbuttonbox-attached.png b/src/quickcontrols2/doc/images/qtquickcontrols2-dialogbuttonbox-attached.png
deleted file mode 100644
index c17f38ac..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-dialogbuttonbox-attached.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-dialogbuttonbox.png b/src/quickcontrols2/doc/images/qtquickcontrols2-dialogbuttonbox.png
deleted file mode 100644
index 33b5f45f..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-dialogbuttonbox.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-drawer-expanded-wireframe.png b/src/quickcontrols2/doc/images/qtquickcontrols2-drawer-expanded-wireframe.png
deleted file mode 100644
index 0c92f865..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-drawer-expanded-wireframe.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-drawer-wireframe.png b/src/quickcontrols2/doc/images/qtquickcontrols2-drawer-wireframe.png
deleted file mode 100644
index 74806f17..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-drawer-wireframe.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-drawer.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-drawer.gif
deleted file mode 100644
index 736f34f6..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-drawer.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-frame-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-frame-custom.png
deleted file mode 100644
index f628b20c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-frame-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-frame.png b/src/quickcontrols2/doc/images/qtquickcontrols2-frame.png
deleted file mode 100644
index e3cb31dc..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-frame.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-fusion-palettes.png b/src/quickcontrols2/doc/images/qtquickcontrols2-fusion-palettes.png
deleted file mode 100644
index d8061161..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-fusion-palettes.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-fusion-thumbnail.png b/src/quickcontrols2/doc/images/qtquickcontrols2-fusion-thumbnail.png
deleted file mode 100644
index c270c6ef..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-fusion-thumbnail.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-fusion-violet.png b/src/quickcontrols2/doc/images/qtquickcontrols2-fusion-violet.png
deleted file mode 100644
index 99e5b597..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-fusion-violet.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-fusion.png b/src/quickcontrols2/doc/images/qtquickcontrols2-fusion.png
deleted file mode 100644
index 7119ef22..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-fusion.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-checkable.png b/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-checkable.png
deleted file mode 100644
index 820ad79c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-checkable.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-custom.png
deleted file mode 100644
index 029679ce..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-label.png b/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-label.png
deleted file mode 100644
index c26795a7..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox-label.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox.png b/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox.png
deleted file mode 100644
index ea2f9ea5..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-groupbox.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-4x.png b/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-4x.png
deleted file mode 100644
index bab99a5e..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-inset-boundaries.png b/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-inset-boundaries.png
deleted file mode 100644
index c42df81e..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-inset-boundaries.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-inset.png b/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-inset.png
deleted file mode 100644
index 0627d085..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-inset.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-resized-padding.png b/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-resized-padding.png
deleted file mode 100644
index 0a606c99..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-resized-padding.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-resized-stretchable.png b/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-resized-stretchable.png
deleted file mode 100644
index 9598b13a..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-resized-stretchable.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-size.png b/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-size.png
deleted file mode 100644
index db645375..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch-size.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch.svgz b/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch.svgz
deleted file mode 100644
index 5a1a1094..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-9-patch.svgz
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-customization-dark.png b/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-customization-dark.png
deleted file mode 100644
index 144ac97c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-customization-dark.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-customization.svgz b/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-customization.svgz
deleted file mode 100644
index fb830563..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-customization.svgz
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-thumbnail.png b/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-thumbnail.png
deleted file mode 100644
index ecf2bb16..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine-thumbnail.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine.png b/src/quickcontrols2/doc/images/qtquickcontrols2-imagine.png
deleted file mode 100644
index ffe2c267..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-imagine.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate-custom.png
deleted file mode 100644
index 35f8892f..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate.gif
deleted file mode 100644
index dccb6efc..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate.png b/src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate.png
deleted file mode 100644
index 7242f343..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-itemdelegate.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-label-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-label-custom.png
deleted file mode 100644
index 5730ff23..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-label-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-label.png b/src/quickcontrols2/doc/images/qtquickcontrols2-label.png
deleted file mode 100644
index 0bafcf86..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-label.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-macos-dark.png b/src/quickcontrols2/doc/images/qtquickcontrols2-macos-dark.png
deleted file mode 100644
index 97d8a5a4..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-macos-dark.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-macos-light.png b/src/quickcontrols2/doc/images/qtquickcontrols2-macos-light.png
deleted file mode 100644
index 4a598ad4..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-macos-light.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-macos-thumbnail.png b/src/quickcontrols2/doc/images/qtquickcontrols2-macos-thumbnail.png
deleted file mode 100644
index 57fd98d6..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-macos-thumbnail.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-accent.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-accent.png
deleted file mode 100644
index a85afc68..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-accent.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-attributes.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-attributes.png
deleted file mode 100644
index bb54071d..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-attributes.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-background.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-background.png
deleted file mode 100644
index 62028f52..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-background.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-dark.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-dark.png
deleted file mode 100644
index f6e45b3b..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-dark.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-elevation.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-elevation.png
deleted file mode 100644
index d152f145..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-elevation.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-foreground.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-foreground.png
deleted file mode 100644
index 0d0e1b65..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-foreground.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-light.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-light.png
deleted file mode 100644
index c9abe2cb..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-light.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-purple.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-purple.png
deleted file mode 100644
index b955736b..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-purple.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-theme.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-theme.png
deleted file mode 100644
index 1d09a825..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-theme.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-thumbnail.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-thumbnail.png
deleted file mode 100644
index d758ff18..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-thumbnail.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-variant-dense.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-variant-dense.png
deleted file mode 100644
index 02f39b78..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-variant-dense.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-material-variant-normal.png b/src/quickcontrols2/doc/images/qtquickcontrols2-material-variant-normal.png
deleted file mode 100644
index c1e366c5..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-material-variant-normal.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-menu-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-menu-custom.png
deleted file mode 100644
index 922bf591..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-menu-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-menu.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-menu.gif
deleted file mode 100644
index 93a873a3..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-menu.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-menu.png b/src/quickcontrols2/doc/images/qtquickcontrols2-menu.png
deleted file mode 100644
index 926c33ee..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-menu.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-menubar-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-menubar-custom.png
deleted file mode 100644
index b6007e46..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-menubar-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-menubar.png b/src/quickcontrols2/doc/images/qtquickcontrols2-menubar.png
deleted file mode 100644
index 873b7a19..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-menubar.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-menuseparator-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-menuseparator-custom.png
deleted file mode 100644
index 78635b9c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-menuseparator-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-menuseparator.png b/src/quickcontrols2/doc/images/qtquickcontrols2-menuseparator.png
deleted file mode 100644
index 35307817..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-menuseparator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-page-wireframe.png b/src/quickcontrols2/doc/images/qtquickcontrols2-page-wireframe.png
deleted file mode 100644
index f612c243..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-page-wireframe.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator-custom.png
deleted file mode 100644
index a767a51a..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator-delegate.png b/src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator-delegate.png
deleted file mode 100644
index 95acde70..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator-delegate.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator.png b/src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator.png
deleted file mode 100644
index e2a0a157..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-pageindicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-pane-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-pane-custom.png
deleted file mode 100644
index 03a0369f..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-pane-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-pane.png b/src/quickcontrols2/doc/images/qtquickcontrols2-pane.png
deleted file mode 100644
index 3801cc3e..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-pane.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-popup-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-popup-custom.png
deleted file mode 100644
index cb7813d3..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-popup-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-popup-settings.png b/src/quickcontrols2/doc/images/qtquickcontrols2-popup-settings.png
deleted file mode 100644
index 5122158e..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-popup-settings.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-popup-transformorigin.png b/src/quickcontrols2/doc/images/qtquickcontrols2-popup-transformorigin.png
deleted file mode 100644
index 16d26177..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-popup-transformorigin.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-popup.png b/src/quickcontrols2/doc/images/qtquickcontrols2-popup.png
deleted file mode 100644
index 8fc424a8..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-popup.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-popup.svg b/src/quickcontrols2/doc/images/qtquickcontrols2-popup.svg
deleted file mode 100644
index e39f3dce..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-popup.svg
+++ /dev/null
@@ -1,712 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="640"
- height="420"
- viewBox="0 0 639.99997 419.99999"
- id="svg2"
- version="1.1"
- inkscape:version="0.92.3 (2405546, 2018-03-11)"
- sodipodi:docname="qtquickcontrols2-control.svg"
- inkscape:export-filename="/home/jpnurmi/Projects/qt-dev/qtquickcontrols2/src/imports/controls/doc/images/qtquickcontrols2-control.png"
- inkscape:export-xdpi="192"
- inkscape:export-ydpi="192">
- <defs
- id="defs4">
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Mstart"
- orient="auto"
- refY="0"
- refX="0"
- id="Arrow1Mstart"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4191"
- d="M 0,0 5,-5 -12.5,0 5,5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="matrix(0.4,0,0,0.4,4,0)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="Arrow2Mend"
- orient="auto"
- refY="0"
- refX="0"
- id="Arrow2Mend"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4212"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
- d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
- transform="scale(-0.6)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-3"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-9"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-0"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-5"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-9"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-2"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-1"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-2"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-9-6"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-2-2"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-1-1"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-2-7"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2-5"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4-7"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9-4"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1-1"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-1"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-8"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-96"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-4"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-9-6-4"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-2-2-7"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-1-1-6"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-2-7-8"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2-5-6"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4-7-2"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9-4-8"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1-1-9"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2-5-6-9"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4-7-2-6"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9-4-8-4"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1-1-9-8"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-1-7"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4318-8-9"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-96-7"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- id="path4327-4-4"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)"
- inkscape:connector-curvature="0" />
- </marker>
- <marker
- inkscape:stockid="TriangleInL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleInL-2-5-6-9-1"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4318-4-7-2-6-7"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(-0.8)" />
- </marker>
- <marker
- inkscape:stockid="TriangleOutL"
- orient="auto"
- refY="0"
- refX="0"
- id="TriangleOutL-9-4-8-4-0"
- style="overflow:visible"
- inkscape:isstock="true">
- <path
- inkscape:connector-curvature="0"
- id="path4327-1-1-9-8-6"
- d="M 5.77,0 -2.88,5 V -5 Z"
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.00000003pt;stroke-opacity:1"
- transform="scale(0.8)" />
- </marker>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="2.8284271"
- inkscape:cx="328.65009"
- inkscape:cy="205.42326"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:window-width="3840"
- inkscape:window-height="2031"
- inkscape:window-x="0"
- inkscape:window-y="55"
- inkscape:window-maximized="1"
- fit-margin-top="0"
- fit-margin-left="0"
- fit-margin-right="0"
- fit-margin-bottom="0"
- units="px" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(91.482322,-192.9581)">
- <rect
- style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.05102265;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect4136"
- width="518.94897"
- height="298.94897"
- x="-30.956812"
- y="253.48361" />
- <rect
- style="fill:#ffd5d5;fill-opacity:1;stroke:none;stroke-width:0.83021182;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect4136-3"
- width="440"
- height="220"
- x="8.5176783"
- y="292.9581" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(1.1690183,0,0,1.1690183,55.80022,-171.31953)"><flowRegion
- id="flowRegion4140"
- style="fill:#ff2a2a"><rect
- id="rect4142"
- width="129.78784"
- height="31.668232"
- x="-34.519978"
- y="400.22751"
- style="font-size:15.41801071px;fill:#ff2a2a" /></flowRegion><flowPara
- id="flowPara4144"
- style="font-size:20.55734825px;line-height:1.25;fill:#ff2a2a">Background</flowPara><flowPara
- id="flowPara4146"
- style="font-size:20.55734825px;line-height:1.25;fill:#ff2a2a"> </flowPara></flowRoot> <rect
- style="fill:#d7e3f4;fill-opacity:1;stroke:none;stroke-width:22.32431984;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.58381503"
- id="rect4148"
- width="360"
- height="140"
- x="48.517677"
- y="332.95813" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0055d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,124.5726,101.29422)"><flowRegion
- id="flowRegion4140-6"
- style="fill:#0055d4"><rect
- id="rect4142-6"
- width="334.36047"
- height="80.812172"
- x="42.426407"
- y="481.62601"
- style="font-size:40px;fill:#0055d4" /></flowRegion><flowPara
- id="flowPara4146-6"
- style="font-size:40px;line-height:1.25;fill:#0055d4">Content item</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-1"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,187.75902,280.21488)"><flowRegion
- id="flowRegion4140-6-9"><rect
- id="rect4142-6-0"
- width="270.72089"
- height="68.690361"
- x="42.426407"
- y="481.62601"
- style="font-size:25px;fill:#000000" /></flowRegion><flowPara
- id="flowPara4146-6-2"
- style="font-size:17.5px;line-height:1.25">Width</flowPara></flowRoot> <path
- style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.93053311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-3);marker-end:url(#TriangleOutL-0)"
- d="M -26.831023,563.52033 H 483.32947"
- id="path4179-8"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-9);marker-end:url(#TriangleOutL-1)"
- d="M -41.482322,547.33858 V 258.57762"
- id="path4179-9"
- inkscape:connector-curvature="0" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-1-7"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,-110.00353,107.19582)"><flowRegion
- id="flowRegion4140-6-9-7"><rect
- id="rect4142-6-0-5"
- width="270.72089"
- height="68.690361"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#000000" /></flowRegion><flowPara
- id="flowPara4146-6-2-9"
- style="font-size:17.5px;line-height:1.25;fill:#000000">Height</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-3"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,138.50125,-84.786365)"><flowRegion
- id="flowRegion4140-6-67"><rect
- id="rect4142-6-5"
- width="334.36047"
- height="80.812172"
- x="42.426407"
- y="481.62601"
- style="font-size:60px;fill:#000000" /></flowRegion><flowPara
- id="flowPara4146-6-3"
- style="font-size:60px;line-height:1.25">Control</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#0055d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,-18.782253,209.93493)"><flowRegion
- id="flowRegion4140-6-6-4-6"
- style="text-align:center;text-anchor:middle;fill:#0055d4"><rect
- id="rect4142-6-1-4-2"
- width="252.53812"
- height="61.619293"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;text-align:center;text-anchor:middle;fill:#0055d4" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#0055d4"
- id="flowPara10048-9">Bottom</flowPara><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#0055d4"
- id="flowPara5290">padding</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-1"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0055d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,324.82398,-9.0464154)"><flowRegion
- id="flowRegion4140-6-6-4-6-2"
- style="fill:#0055d4"><rect
- id="rect4142-6-1-4-2-7"
- width="71.826065"
- height="43.785866"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#0055d4" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#0055d4"
- id="flowPara10048-9-0">Top</flowPara><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#0055d4"
- id="flowPara4830">padding</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-9"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0055d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,398.1404,59.190638)"><flowRegion
- id="flowRegion4140-6-6-4-6-3"
- style="fill:#0055d4"><rect
- id="rect4142-6-1-4-2-6"
- width="81.109558"
- height="93.762154"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#0055d4" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#0055d4"
- id="flowPara4386">Right padding</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-9-2"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0055d4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,-40.826553,147.13311)"><flowRegion
- id="flowRegion4140-6-6-4-6-3-5"
- style="fill:#0055d4"><rect
- id="rect4142-6-1-4-2-6-4"
- width="81.109558"
- height="93.762154"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#0055d4" /></flowRegion><flowPara
- style="font-size:17.02554321px;line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#0055d4"
- id="flowPara4386-0">Left padding</flowPara></flowRoot> <path
- style="fill:#ff2a2a;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:0.87824047;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-9-6);marker-end:url(#TriangleOutL-1-1)"
- d="M 12.916178,287.96278 V 258.98852"
- id="path4179-9-8"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:0.87323481;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-2-5);marker-end:url(#TriangleOutL-9-4)"
- d="M -25.470947,298.58445 H 3.5629489"
- id="path4179-7-8"
- inkscape:connector-curvature="0" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-1-5"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,-12.104603,-28.000512)"><flowRegion
- id="flowRegion4140-6-6-4-6-2-9"
- style="fill:#ff2a2a"><rect
- id="rect4142-6-1-4-2-7-7"
- width="66.476036"
- height="55.080368"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#ff2a2a" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ff2a2a"
- id="flowPara11237">Top inset</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-9-2-3"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,-59.558586,16.047754)"><flowRegion
- id="flowRegion4140-6-6-4-6-3-5-8"
- style="fill:#ff2a2a"><rect
- id="rect4142-6-1-4-2-6-4-8"
- width="75.759529"
- height="93.167732"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#ff2a2a" /></flowRegion><flowPara
- style="font-size:17.02554321px;line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ff2a2a"
- id="flowPara4386-0-3">Left inset</flowPara></flowRoot> <path
- style="fill:#0055d4;fill-rule:evenodd;stroke:#0055d4;stroke-width:0.97500122;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-1);marker-end:url(#TriangleOutL-96)"
- d="M 402.28756,327.38769 V 259.50991"
- id="path4179-3"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#ff2a2a;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:0.87794411;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-9-6-4);marker-end:url(#TriangleOutL-1-1-6)"
- d="M 444.22783,546.94146 V 517.98675"
- id="path4179-9-8-9"
- inkscape:connector-curvature="0" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-1-5-0"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,364.36984,230.98794)"><flowRegion
- id="flowRegion4140-6-6-4-6-2-9-6"
- style="fill:#ff2a2a"><rect
- id="rect4142-6-1-4-2-7-7-8"
- width="91.442841"
- height="44.974762"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#ff2a2a" /></flowRegion><flowPara
- style="font-size:17.5px;line-height:1.25;text-align:center;text-anchor:middle;fill:#ff2a2a"
- id="flowPara11237-7">Bottom inset</flowPara></flowRoot> <path
- style="fill:#ff2a2a;fill-opacity:1;fill-rule:evenodd;stroke:#ff2a2a;stroke-width:0.87314719;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-2-5-6);marker-end:url(#TriangleOutL-9-4-8)"
- d="m 453.47561,508.6218 h 29.02808"
- id="path4179-7-8-6"
- inkscape:connector-curvature="0" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot4138-6-2-7-5-9-2-3-0"
- style="font-style:normal;font-weight:normal;line-height:0.01%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff2a2a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- transform="matrix(0.6007979,0,0,0.6007979,419.24022,186.32002)"><flowRegion
- id="flowRegion4140-6-6-4-6-3-5-8-7"
- style="fill:#ff2a2a"><rect
- id="rect4142-6-1-4-2-6-4-8-0"
- width="75.759529"
- height="93.167732"
- x="42.426407"
- y="481.62601"
- style="font-size:17.5px;fill:#ff2a2a" /></flowRegion><flowPara
- style="font-size:17.02554321px;line-height:125%;text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#ff2a2a"
- id="flowPara3807">Right inset</flowPara></flowRoot> <path
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.05938387;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-2-5-6-9);marker-end:url(#TriangleOutL-9-4-8-4)"
- d="m 414.52522,338.31524 h 66.93934"
- id="path4179-7-8-6-0"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#0055d4;fill-rule:evenodd;stroke:#0055d4;stroke-width:0.97513783;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-1-7);marker-end:url(#TriangleOutL-96-7)"
- d="M 54.589106,546.37854 V 478.48175"
- id="path4179-3-9"
- inkscape:connector-curvature="0" />
- <path
- style="fill:#0055d4;fill-opacity:1;fill-rule:evenodd;stroke:#0055d4;stroke-width:1.05900466;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleInL-2-5-6-9-1);marker-end:url(#TriangleOutL-9-4-8-4-0)"
- d="M -24.417773,466.88667 H 42.473651"
- id="path4179-7-8-6-0-0"
- inkscape:connector-curvature="0" />
- </g>
-</svg>
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-progressbar-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-progressbar-custom.png
deleted file mode 100644
index 9d73df2c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-progressbar-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-progressbar-indeterminate.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-progressbar-indeterminate.gif
deleted file mode 100644
index d6756d16..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-progressbar-indeterminate.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-progressbar.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-progressbar.gif
deleted file mode 100644
index 49af5f45..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-progressbar.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-radiobutton-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-radiobutton-custom.png
deleted file mode 100644
index 5c85179f..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-radiobutton-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-radiobutton.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-radiobutton.gif
deleted file mode 100644
index 4cbf3ed9..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-radiobutton.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-radiodelegate-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-radiodelegate-custom.png
deleted file mode 100644
index 7d32699b..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-radiodelegate-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-radiodelegate.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-radiodelegate.gif
deleted file mode 100644
index b6afd6fe..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-radiodelegate.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-rangeslider-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-rangeslider-custom.png
deleted file mode 100644
index 47379a30..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-rangeslider-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-rangeslider.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-rangeslider.gif
deleted file mode 100644
index db565b0a..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-rangeslider.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-roundbutton.png b/src/quickcontrols2/doc/images/qtquickcontrols2-roundbutton.png
deleted file mode 100644
index 4dce37f2..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-roundbutton.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-custom.png
deleted file mode 100644
index 690bc8be..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-non-attached.png b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-non-attached.png
deleted file mode 100644
index eba363dd..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-non-attached.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-nosnap.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-nosnap.gif
deleted file mode 100644
index f61ac5b4..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-nosnap.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-snapalways.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-snapalways.gif
deleted file mode 100644
index 438d4a33..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-snapalways.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-snaponrelease.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-snaponrelease.gif
deleted file mode 100644
index c2fa67b0..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar-snaponrelease.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar.gif
deleted file mode 100644
index ed3ab607..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollbar.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator-custom.png
deleted file mode 100644
index b1183bc5..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator-non-attached.png b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator-non-attached.png
deleted file mode 100644
index a61e0487..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator-non-attached.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator.gif
deleted file mode 100644
index 73007820..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollindicator.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollview-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollview-custom.png
deleted file mode 100644
index 8f4bd928..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollview-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollview-wireframe.png b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollview-wireframe.png
deleted file mode 100644
index 8a39056a..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollview-wireframe.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollview.png b/src/quickcontrols2/doc/images/qtquickcontrols2-scrollview.png
deleted file mode 100644
index 1a4039e1..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-scrollview.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-selectionrectangle.png b/src/quickcontrols2/doc/images/qtquickcontrols2-selectionrectangle.png
deleted file mode 100644
index 69e47b29..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-selectionrectangle.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-slider-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-slider-custom.png
deleted file mode 100644
index dbbacb34..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-slider-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-slider-handle.png b/src/quickcontrols2/doc/images/qtquickcontrols2-slider-handle.png
deleted file mode 100644
index 5450d574..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-slider-handle.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-slider-nosnap.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-slider-nosnap.gif
deleted file mode 100644
index ab233c5b..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-slider-nosnap.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-slider-snapalways.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-slider-snapalways.gif
deleted file mode 100644
index 8eb4011f..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-slider-snapalways.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-slider-snaponrelease.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-slider-snaponrelease.gif
deleted file mode 100644
index f3b1d5c7..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-slider-snaponrelease.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-slider.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-slider.gif
deleted file mode 100644
index 2ee56334..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-slider.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-custom.png
deleted file mode 100644
index d1e883fc..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-double.png b/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-double.png
deleted file mode 100644
index d3f5876c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-double.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-down.png b/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-down.png
deleted file mode 100644
index 1d5dcf7b..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-down.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-textual.png b/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-textual.png
deleted file mode 100644
index 5513d6e6..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-textual.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-up.png b/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-up.png
deleted file mode 100644
index 1ee1c479..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox-up.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox.png b/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox.png
deleted file mode 100644
index 835bb1d6..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-spinbox.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-splitview-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-splitview-custom.png
deleted file mode 100644
index da820cca..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-splitview-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-custom.png
deleted file mode 100644
index 5ee6049e..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-pop.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-pop.gif
deleted file mode 100644
index 1971c2e0..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-pop.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-push.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-push.gif
deleted file mode 100644
index 0218cc0f..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-push.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-replace.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-replace.gif
deleted file mode 100644
index 63a6b2b4..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-replace.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-unwind.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-unwind.gif
deleted file mode 100644
index 28c051d8..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-unwind.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-visible.png b/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-visible.png
deleted file mode 100644
index d937b417..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-visible.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-wireframe.png b/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-wireframe.png
deleted file mode 100644
index f28b5c67..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-stackview-wireframe.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-styles.png b/src/quickcontrols2/doc/images/qtquickcontrols2-styles.png
deleted file mode 100644
index 992dd47e..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-styles.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-behind.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-behind.gif
deleted file mode 100644
index 97d6a592..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-behind.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-custom.png
deleted file mode 100644
index 5813b73c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-leading-trailing.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-leading-trailing.gif
deleted file mode 100644
index 0641bd14..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate-leading-trailing.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate.gif
deleted file mode 100644
index 86c380b7..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-swipedelegate.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-swipeview-indicator.png b/src/quickcontrols2/doc/images/qtquickcontrols2-swipeview-indicator.png
deleted file mode 100644
index 998ec9f7..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-swipeview-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-swipeview-wireframe.png b/src/quickcontrols2/doc/images/qtquickcontrols2-swipeview-wireframe.png
deleted file mode 100644
index 3cc2b83c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-swipeview-wireframe.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-swipeview.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-swipeview.gif
deleted file mode 100644
index 4af26c10..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-swipeview.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-switch-checked.png b/src/quickcontrols2/doc/images/qtquickcontrols2-switch-checked.png
deleted file mode 100644
index 7a0cde1b..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-switch-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-switch-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-switch-custom.png
deleted file mode 100644
index 6d535ef9..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-switch-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-switch.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-switch.gif
deleted file mode 100644
index 5f956304..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-switch.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-switch.png b/src/quickcontrols2/doc/images/qtquickcontrols2-switch.png
deleted file mode 100644
index 7f613f33..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-switch.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-switchdelegate-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-switchdelegate-custom.png
deleted file mode 100644
index f5337e2c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-switchdelegate-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-switchdelegate.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-switchdelegate.gif
deleted file mode 100644
index 950b1073..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-switchdelegate.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-custom.png
deleted file mode 100644
index 8c8e4acc..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-explicit.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-explicit.png
deleted file mode 100644
index b1de5f71..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-explicit.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-flickable.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-flickable.png
deleted file mode 100644
index 0c253f82..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-flickable.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-wireframe.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-wireframe.png
deleted file mode 100644
index 35a64ae2..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar-wireframe.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar.gif
deleted file mode 100644
index 31db1f9e..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar.png
deleted file mode 100644
index 9f113497..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbar.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbutton.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tabbutton.png
deleted file mode 100644
index 3df2f531..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tabbutton.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-textarea-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-textarea-custom.png
deleted file mode 100644
index 6220a13f..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-textarea-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-textarea-scrollable.png b/src/quickcontrols2/doc/images/qtquickcontrols2-textarea-scrollable.png
deleted file mode 100644
index ae868a27..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-textarea-scrollable.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-textarea.png b/src/quickcontrols2/doc/images/qtquickcontrols2-textarea.png
deleted file mode 100644
index fc221bd7..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-textarea.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-custom.png
deleted file mode 100644
index 91023170..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-disabled.png b/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-disabled.png
deleted file mode 100644
index b143d210..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-focused.png b/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-focused.png
deleted file mode 100644
index de7f9599..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-normal.png b/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-normal.png
deleted file mode 100644
index 4229c706..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-textfield-normal.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-textfield.png b/src/quickcontrols2/doc/images/qtquickcontrols2-textfield.png
deleted file mode 100644
index a008383a..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-textfield.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-toolbar-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-toolbar-custom.png
deleted file mode 100644
index 425e5f8c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-toolbar-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-toolbar.png b/src/quickcontrols2/doc/images/qtquickcontrols2-toolbar.png
deleted file mode 100644
index e5a33eee..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-toolbar.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-toolbutton-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-toolbutton-custom.png
deleted file mode 100644
index b78269d0..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-toolbutton-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-toolbutton.png b/src/quickcontrols2/doc/images/qtquickcontrols2-toolbutton.png
deleted file mode 100644
index 610c1a7c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-toolbutton.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-toolseparator-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-toolseparator-custom.png
deleted file mode 100644
index 6703eeba..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-toolseparator-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-toolseparator.png b/src/quickcontrols2/doc/images/qtquickcontrols2-toolseparator.png
deleted file mode 100644
index 88ced123..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-toolseparator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-delay.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-delay.png
deleted file mode 100644
index 59813835..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-delay.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-hover.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-hover.png
deleted file mode 100644
index 62a9cf84..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-hover.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-pressandhold.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-pressandhold.png
deleted file mode 100644
index 62a9cf84..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-pressandhold.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-slider.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-slider.png
deleted file mode 100644
index a15e723a..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip-slider.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip.png
deleted file mode 100644
index 4238d52a..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tooltip.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-custom.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-custom.png
deleted file mode 100644
index bbfa9b0c..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-custom.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-delegate.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-delegate.png
deleted file mode 100644
index a28da93e..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-delegate.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-wrap.gif b/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-wrap.gif
deleted file mode 100644
index 8f59eedc..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler-wrap.gif
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler.png b/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler.png
deleted file mode 100644
index 38339dfa..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-tumbler.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-accent.png b/src/quickcontrols2/doc/images/qtquickcontrols2-universal-accent.png
deleted file mode 100644
index e1d74f7a..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-accent.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-attributes.png b/src/quickcontrols2/doc/images/qtquickcontrols2-universal-attributes.png
deleted file mode 100644
index 7a7ef347..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-attributes.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-background.png b/src/quickcontrols2/doc/images/qtquickcontrols2-universal-background.png
deleted file mode 100644
index 4f1bfbd2..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-background.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-button.png b/src/quickcontrols2/doc/images/qtquickcontrols2-universal-button.png
deleted file mode 100644
index 6c764ec9..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-button.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-dark.png b/src/quickcontrols2/doc/images/qtquickcontrols2-universal-dark.png
deleted file mode 100644
index 952651dc..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-dark.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-foreground.png b/src/quickcontrols2/doc/images/qtquickcontrols2-universal-foreground.png
deleted file mode 100644
index b0ecf23a..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-foreground.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-light.png b/src/quickcontrols2/doc/images/qtquickcontrols2-universal-light.png
deleted file mode 100644
index e65447a4..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-light.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-theme.png b/src/quickcontrols2/doc/images/qtquickcontrols2-universal-theme.png
deleted file mode 100644
index d1281346..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-theme.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-thumbnail.png b/src/quickcontrols2/doc/images/qtquickcontrols2-universal-thumbnail.png
deleted file mode 100644
index db7fe5b0..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-thumbnail.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-violet.png b/src/quickcontrols2/doc/images/qtquickcontrols2-universal-violet.png
deleted file mode 100644
index ec459457..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-universal-violet.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-windows-thumbnail.png b/src/quickcontrols2/doc/images/qtquickcontrols2-windows-thumbnail.png
deleted file mode 100644
index 15408d3b..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-windows-thumbnail.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/images/qtquickcontrols2-windows.png b/src/quickcontrols2/doc/images/qtquickcontrols2-windows.png
deleted file mode 100644
index 324a0341..00000000
--- a/src/quickcontrols2/doc/images/qtquickcontrols2-windows.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/doc/manifest-meta.qdocconf b/src/quickcontrols2/doc/manifest-meta.qdocconf
deleted file mode 100644
index 30400da5..00000000
--- a/src/quickcontrols2/doc/manifest-meta.qdocconf
+++ /dev/null
@@ -1,31 +0,0 @@
-# Additional meta information (attributes for matched entries, as well as tags)
-# to be added to manifest.xml files.
-#
-# manifestmeta.filters = <filter1>,<filter2>,...
-#
-# manifestmeta.<filter>.names = <Module1>/<name1>,<Module2>/<name2>,..
-# manifestmeta.<filter>.attributes = <attribute1:value1>,<attribute2:value2>,..
-# manifestmeta.<filter>.tags = <tag1>,<tag2>,..
-#
-# <filter>.names specify all the module/name combinations to apply the
-# attributes/tags to. You can use simple wildcard matching by appending
-# '*' at the end of name.
-#
-# Note: You cannot use operators (+, =, -) in the names.
-#
-# Examples: add a 'isHighlighted' attribute for two 'Analog Clock' examples,
-# add a 'database' tag for QtSql examples, and a 'qt5' tag for all examples
-#
-# manifestmeta.filters = highlighted sql global
-#
-# manifestmeta.highlighted.names = "QtGui/Analog Clock Window Example" \
-# "QtWidgets/Analog Clock Example"
-# manifestmeta.highlighted.attributes = isHighlighted:true
-#
-# manifestmeta.sql.names = "QtSql/*"
-# manifestmeta.sql.tags = database
-#
-# manifestmeta.global.names = *
-# manifestmeta.global.tags = qt5
-
-manifestmeta.highlighted.names = "QtQuickControls/Qt Quick Controls - Gallery"
diff --git a/src/quickcontrols2/doc/qtquickcontrols.qdocconf b/src/quickcontrols2/doc/qtquickcontrols.qdocconf
deleted file mode 100644
index 3078730c..00000000
--- a/src/quickcontrols2/doc/qtquickcontrols.qdocconf
+++ /dev/null
@@ -1,104 +0,0 @@
-include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
-include($QT_INSTALL_DOCS/config/exampleurl-qtquickcontrols2.qdocconf)
-include(manifest-meta.qdocconf)
-
-moduleheader = QtQuickControls2
-
-project = QtQuickControls
-description = Qt Quick Controls Reference Documentation
-version = $QT_VERSION
-
-qhp.projects = QtQuickControls
-
-qhp.QtQuickControls.file = qtquickcontrols.qhp
-qhp.QtQuickControls.namespace = org.qt-project.qtquickcontrols.$QT_VERSION_TAG
-qhp.QtQuickControls.virtualFolder = qtquickcontrols
-qhp.QtQuickControls.indexTitle = Qt Quick Controls
-qhp.QtQuickControls.indexRoot =
-
-qhp.QtQuickControls.filterAttributes = qtquickcontrols $QT_VERSION qtrefdoc
-qhp.QtQuickControls.customFilters.Qt.name = QtQuickControls $QT_VERSION
-qhp.QtQuickControls.customFilters.Qt.filterAttributes = qtquickcontrols $QT_VERSION
-
-qhp.QtQuickControls.subprojects = qmltypes classes examples
-qhp.QtQuickControls.subprojects.qmltypes.title = QML Types
-qhp.QtQuickControls.subprojects.qmltypes.indexTitle = Qt Quick Controls QML Types
-qhp.QtQuickControls.subprojects.qmltypes.selectors = qmlclass
-qhp.QtQuickControls.subprojects.qmltypes.sortPages = true
-qhp.QtQuickControls.subprojects.classes.title = C++ Classes
-qhp.QtQuickControls.subprojects.classes.indexTitle = Qt Quick Controls C++ Classes
-qhp.QtQuickControls.subprojects.classes.selectors = class fake:headerfile
-qhp.QtQuickControls.subprojects.classes.sortPages = true
-qhp.QtQuickControls.subprojects.examples.title = Examples
-qhp.QtQuickControls.subprojects.examples.indexTitle = Qt Quick Controls Examples
-qhp.QtQuickControls.subprojects.examples.selectors = fake:example
-
-depends = qtcore qtgui qtdoc qtqml qtqmlmodels qtquick qtsql qtwidgets qtlabsplatform qmake qtcmake
-
-# Specify the install path under QT_INSTALL_EXAMPLES
-# Note: paths passed to \example command must contain the parent directory, e.g.
-# \example controls/tabs
-exampledirs += ../../../examples/quickcontrols2 \
- ../../quicktemplates2 \
- snippets
-
-examples.fileextensions += "*.conf"
-
-examplesinstallpath = quickcontrols2
-
-headerdirs += ../../quicktemplates2 \
- ..
-
-sourcedirs += ../../quicktemplates2 \
- .. \
- ../../quicktemplates2/doc/src \
- src
-
-# Exclude .qml files from the doc build to prevent conflicts with .qml files
-# in style-specific directories; all types are documented in .cpp/.qdoc files
-sources.fileextensions = "*.c++ *.cc *.cpp *.cxx *.mm *.qdoc"
-
-imagedirs += images \
- ..
-
-navigation.landingpage = "Qt Quick Controls"
-navigation.qmltypespage = "Qt Quick Controls QML Types"
-navigation.cppclassespage = "Qt Quick Controls C++ Classes"
-
-tagfile = qtquickcontrols.tags
-
-# \styleimport {QtQuick.Controls.Universal 2.0}
-macro.styleimport.HTML = "<table class=\"alignedsummary\"><tbody><tr><td class=\"memItemLeft rightAlign topAlign\"> Import Statement:</td><td class=\"memItemRight bottomAlign\"> import \1</td></tr><tr><td class=\"memItemLeft rightAlign topAlign\"> Since:</td><td class=\"memItemRight bottomAlign\"> \2</td></tr></tbody></table>"
-
-# \styleproperty {Universal.accent} {enumeration} {html-target-id}
-# \target html-target-id
-# This property holds ...
-# (empty line)
-# \endstyleproperty
-macro.styleproperty.HTML = "<div class=\"qmlproto\"><table class=\"qmlname\"><tbody><tr valign=\"top\" class=\"odd\" id=\"\3\"><td class=\"tblQmlPropNode\"><p><span class=\"name\">\1</span> : <span class=\"type\">\2</span></p></td></tr></tbody></table></div>"
-macro.endstyleproperty = "\\br"
-
-# \stylemethod {returntype} {methodname} {argtype} {argname} {html-target-id}
-# \target html-target-id
-# This property holds ...
-# (empty line)
-# \endstylemethod
-macro.stylemethod.HTML = "<div class=\"qmlproto\"><table class=\"qmlname\"><tbody><tr valign=\"top\" class=\"odd\" id=\"\5\"><td class=\"tblQmlFuncNode\"><p><span class=\"type\">\1</span> <span class=\"name\">\2</span>(<span class="type">\3</span> <i>\4</i>)</p></td></tr></tbody></table></div>"
-macro.endstylemethod = "\\br"
-
-# \stylemethod2 {returntype} {methodname} {arg1type} {arg1name} {arg2type} {arg2name} {html-target-id}
-# \target html-target-id
-# This method returns ...
-# (empty line)
-# \endstylemethod2
-macro.stylemethod2.HTML = "<div class=\"qmlproto\"><table class=\"qmlname\"><tbody><tr valign=\"top\" class=\"odd\" id=\"\7\"><td class=\"tblQmlFuncNode\"><p><span class=\"type\">\1</span> <span class=\"name\">\2</span>(<span class="type">\3</span> <i>\4</i>, <span class="type">\5</span> <i>\6</i>)</p></td></tr></tbody></table></div>"
-macro.endstylemethod2 = "\\br"
-
-# \stylecolor {#6A00FF} {(default)}
-macro.stylecolor.HTML = "<div style=\"padding:10px;color:#fff;background:\1;\">\1 \2</div>"
-
-macro.nbsp.HTML = "&nbsp;"
-
-#Add output suffix to the html filenames
-outputsuffixes = QML
-outputsuffixes.QML = 2
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-action.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-action.qml
deleted file mode 100644
index 1b65a824..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-action.qml
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- //! [action]
- Action {
- id: copyAction
- text: qsTr("&Copy")
- icon.name: "edit-copy"
- shortcut: StandardKey.Copy
- onTriggered: window.activeFocusItem.copy()
- }
- //! [action]
-
- //! [toolbutton]
- ToolButton {
- id: toolButton
- action: copyAction
- }
- //! [toolbutton]
-
- //! [menuitem]
- MenuItem {
- id: menuItem
- action: copyAction
- text: qsTr("&Copy selected Text")
- }
- //! [menuitem]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-busyindicator-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-busyindicator-custom.qml
deleted file mode 100644
index 8daffed7..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-busyindicator-custom.qml
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-BusyIndicator {
- id: control
-
- contentItem: Item {
- implicitWidth: 64
- implicitHeight: 64
-
- Item {
- id: item
- x: parent.width / 2 - 32
- y: parent.height / 2 - 32
- width: 64
- height: 64
- opacity: control.running ? 1 : 0
-
- Behavior on opacity {
- OpacityAnimator {
- duration: 250
- }
- }
-
- RotationAnimator {
- target: item
- running: control.visible && control.running
- from: 0
- to: 360
- loops: Animation.Infinite
- duration: 1250
- }
-
- Repeater {
- id: repeater
- model: 6
-
- Rectangle {
- x: item.width / 2 - width / 2
- y: item.height / 2 - height / 2
- implicitWidth: 10
- implicitHeight: 10
- radius: 5
- color: "#21be2b"
- transform: [
- Translate {
- y: -Math.min(item.width, item.height) * 0.5 + 5
- },
- Rotation {
- angle: index / repeater.count * 360
- origin.x: 5
- origin.y: 5
- }
- ]
- }
- }
- }
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-custom.qml
deleted file mode 100644
index 095657b5..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-custom.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-Button {
- id: control
- text: qsTr("Button")
-
- contentItem: Text {
- text: control.text
- font: control.font
- opacity: enabled ? 1.0 : 0.3
- color: control.down ? "#17a81a" : "#21be2b"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- opacity: enabled ? 1 : 0.3
- border.color: control.down ? "#17a81a" : "#21be2b"
- border.width: 1
- radius: 2
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-icononly.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-icononly.qml
deleted file mode 100644
index d7400005..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-icononly.qml
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Button {
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Controls/Basic/images/check.png"
- display: Button.IconOnly
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-textbesideicon.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-textbesideicon.qml
deleted file mode 100644
index 3e2aa619..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-textbesideicon.qml
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Button {
- text: "Button"
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Controls/Basic/images/check.png"
- display: Button.TextBesideIcon
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-textonly.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-textonly.qml
deleted file mode 100644
index 59054f77..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-button-textonly.qml
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Button {
- text: "Button"
- display: Button.TextOnly
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-checkbox-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-checkbox-custom.qml
deleted file mode 100644
index 93ebe46d..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-checkbox-custom.qml
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-CheckBox {
- id: control
- text: qsTr("CheckBox")
- checked: true
-
- indicator: Rectangle {
- implicitWidth: 26
- implicitHeight: 26
- x: control.leftPadding
- y: parent.height / 2 - height / 2
- radius: 3
- border.color: control.down ? "#17a81a" : "#21be2b"
-
- Rectangle {
- width: 14
- height: 14
- x: 6
- y: 6
- radius: 2
- color: control.down ? "#17a81a" : "#21be2b"
- visible: control.checked
- }
- }
-
- contentItem: Text {
- text: control.text
- font: control.font
- opacity: enabled ? 1.0 : 0.3
- color: control.down ? "#17a81a" : "#21be2b"
- verticalAlignment: Text.AlignVCenter
- leftPadding: control.indicator.width + control.spacing
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-checkbox-group.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-checkbox-group.qml
deleted file mode 100644
index c5032165..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-checkbox-group.qml
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-Column {
- ButtonGroup {
- id: childGroup
- exclusive: false
- checkState: parentBox.checkState
- }
-
- CheckBox {
- id: parentBox
- text: qsTr("Parent")
- checkState: childGroup.checkState
- }
-
- CheckBox {
- checked: true
- text: qsTr("Child 1")
- leftPadding: indicator.width
- ButtonGroup.group: childGroup
- }
-
- CheckBox {
- text: qsTr("Child 2")
- leftPadding: indicator.width
- ButtonGroup.group: childGroup
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-checkdelegate-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-checkdelegate-custom.qml
deleted file mode 100644
index 91970f52..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-checkdelegate-custom.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-CheckDelegate {
- id: control
- text: qsTr("CheckDelegate")
- checked: true
-
- contentItem: Text {
- rightPadding: control.indicator.width + control.spacing
- text: control.text
- font: control.font
- opacity: enabled ? 1.0 : 0.3
- color: control.down ? "#17a81a" : "#21be2b"
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-
- indicator: Rectangle {
- implicitWidth: 26
- implicitHeight: 26
- x: control.width - width - control.rightPadding
- y: control.topPadding + control.availableHeight / 2 - height / 2
- radius: 3
- color: "transparent"
- border.color: control.down ? "#17a81a" : "#21be2b"
-
- Rectangle {
- width: 14
- height: 14
- x: 6
- y: 6
- radius: 2
- color: control.down ? "#17a81a" : "#21be2b"
- visible: control.checked
- }
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- visible: control.down || control.highlighted
- color: control.down ? "#bdbebf" : "#eeeeee"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-accepted.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-accepted.qml
deleted file mode 100644
index b420e3a5..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-accepted.qml
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [combobox]
-ComboBox {
- editable: true
- model: ListModel {
- id: model
- ListElement { text: "Banana" }
- ListElement { text: "Apple" }
- ListElement { text: "Coconut" }
- }
- onAccepted: {
- if (find(editText) === -1)
- model.append({text: editText})
- }
-}
-//! [combobox]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-custom.qml
deleted file mode 100644
index fea7e6d5..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-custom.qml
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-ComboBox {
- id: control
- model: ["First", "Second", "Third"]
-
- delegate: ItemDelegate {
- width: control.width
- contentItem: Text {
- text: modelData
- color: "#21be2b"
- font: control.font
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
- highlighted: control.highlightedIndex === index
- }
-
- indicator: Canvas {
- id: canvas
- x: control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
- width: 12
- height: 8
- contextType: "2d"
-
- Connections {
- target: control
- function onPressedChanged() { canvas.requestPaint(); }
- }
-
- onPaint: {
- context.reset();
- context.moveTo(0, 0);
- context.lineTo(width, 0);
- context.lineTo(width / 2, height);
- context.closePath();
- context.fillStyle = control.pressed ? "#17a81a" : "#21be2b";
- context.fill();
- }
- }
-
- contentItem: Text {
- leftPadding: 0
- rightPadding: control.indicator.width + control.spacing
-
- text: control.displayText
- font: control.font
- color: control.pressed ? "#17a81a" : "#21be2b"
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
-
- background: Rectangle {
- implicitWidth: 120
- implicitHeight: 40
- border.color: control.pressed ? "#17a81a" : "#21be2b"
- border.width: control.visualFocus ? 2 : 1
- radius: 2
- }
-
- popup: Popup {
- y: control.height - 1
- width: control.width
- implicitHeight: contentItem.implicitHeight
- padding: 1
-
- contentItem: ListView {
- clip: true
- implicitHeight: contentHeight
- model: control.popup.visible ? control.delegateModel : null
- currentIndex: control.highlightedIndex
-
- ScrollIndicator.vertical: ScrollIndicator { }
- }
-
- background: Rectangle {
- border.color: "#21be2b"
- radius: 2
- }
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-find.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-find.qml
deleted file mode 100644
index c14ebbbe..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-find.qml
+++ /dev/null
@@ -1,40 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [find]
-ComboBox {
- model: ListModel {
- ListElement { text: "Banana" }
- ListElement { text: "Apple" }
- ListElement { text: "Coconut" }
- }
- Component.onCompleted: currentIndex = find("Coconut")
-}
-//! [find]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-textat.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-textat.qml
deleted file mode 100644
index 524886d0..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-textat.qml
+++ /dev/null
@@ -1,40 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [textat]
-ComboBox {
- model: ListModel {
- ListElement { text: "Banana" }
- ListElement { text: "Apple" }
- ListElement { text: "Coconut" }
- }
- onActivated: (index) => { print(textAt(index)) }
-}
-//! [textat]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-valuerole.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-valuerole.qml
deleted file mode 100644
index a4c40c0f..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-combobox-valuerole.qml
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [file]
-ApplicationWindow {
- width: 640
- height: 480
- visible: true
-
- // Used as an example of a backend - this would usually be
- // e.g. a C++ type exposed to QML.
- QtObject {
- id: backend
- property int modifier
- }
-
- ComboBox {
- textRole: "text"
- valueRole: "value"
- // When an item is selected, update the backend.
- onActivated: backend.modifier = currentValue
- // Set the initial currentIndex to the value stored in the backend.
- Component.onCompleted: currentIndex = indexOfValue(backend.modifier)
- model: [
- { value: Qt.NoModifier, text: qsTr("No modifier") },
- { value: Qt.ShiftModifier, text: qsTr("Shift") },
- { value: Qt.ControlModifier, text: qsTr("Control") }
- ]
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-delaybutton-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-delaybutton-custom.qml
deleted file mode 100644
index 0b86f1d0..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-delaybutton-custom.qml
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-DelayButton {
- id: control
- checked: true
- text: qsTr("Delay\nButton")
-
- contentItem: Text {
- text: control.text
- font: control.font
- opacity: enabled ? 1.0 : 0.3
- color: "white"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 100
- opacity: enabled ? 1 : 0.3
- color: control.down ? "#17a81a" : "#21be2b"
- radius: size / 2
-
- readonly property real size: Math.min(control.width, control.height)
- width: size
- height: size
- anchors.centerIn: parent
-
- Canvas {
- id: canvas
- anchors.fill: parent
-
- Connections {
- target: control
- function onProgressChanged() { canvas.requestPaint(); }
- }
-
- onPaint: {
- var ctx = getContext("2d")
- ctx.clearRect(0, 0, width, height)
- ctx.strokeStyle = "white"
- ctx.lineWidth = parent.size / 20
- ctx.beginPath()
- var startAngle = Math.PI / 5 * 3
- var endAngle = startAngle + control.progress * Math.PI / 5 * 9
- ctx.arc(width / 2, height / 2, width / 2 - ctx.lineWidth / 2 - 2, startAngle, endAngle)
- ctx.stroke()
- }
- }
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dial-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-dial-custom.qml
deleted file mode 100644
index 170e9ccf..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dial-custom.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-Dial {
- id: control
- background: Rectangle {
- x: control.width / 2 - width / 2
- y: control.height / 2 - height / 2
- width: Math.max(64, Math.min(control.width, control.height))
- height: width
- color: "transparent"
- radius: width / 2
- border.color: control.pressed ? "#17a81a" : "#21be2b"
- opacity: control.enabled ? 1 : 0.3
- }
-
- handle: Rectangle {
- id: handleItem
- x: control.background.x + control.background.width / 2 - width / 2
- y: control.background.y + control.background.height / 2 - height / 2
- width: 16
- height: 16
- color: control.pressed ? "#17a81a" : "#21be2b"
- radius: 8
- antialiasing: true
- opacity: control.enabled ? 1 : 0.3
- transform: [
- Translate {
- y: -Math.min(control.background.width, control.background.height) * 0.4 + handleItem.height / 2
- },
- Rotation {
- angle: control.angle
- origin.x: handleItem.width / 2
- origin.y: handleItem.height / 2
- }
- ]
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog-modal.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog-modal.qml
deleted file mode 100644
index d60e4e30..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog-modal.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: dialog.implicitWidth
- height: dialog.implicitHeight
-//! [1]
-Dialog {
- id: dialog
- modal: true
- standardButtons: Dialog.Ok
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog-modeless.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog-modeless.qml
deleted file mode 100644
index 6acb74e5..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog-modeless.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: dialog.implicitWidth
- height: dialog.implicitHeight
-//! [1]
-Dialog {
- id: dialog
- modal: false
- standardButtons: Dialog.Ok
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog.qml
deleted file mode 100644
index 13fbb0e8..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialog.qml
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: dialog.implicitWidth
- height: dialog.implicitHeight
-//! [1]
-Dialog {
- id: dialog
- title: "Title"
- standardButtons: Dialog.Ok | Dialog.Cancel
-
- onAccepted: console.log("Ok clicked")
- onRejected: console.log("Cancel clicked")
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialogbuttonbox-attached.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialogbuttonbox-attached.qml
deleted file mode 100644
index 45a0b9e9..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialogbuttonbox-attached.qml
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-DialogButtonBox {
- Button {
- text: qsTr("Save")
- DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole
- }
- Button {
- text: qsTr("Close")
- DialogButtonBox.buttonRole: DialogButtonBox.DestructiveRole
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialogbuttonbox.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialogbuttonbox.qml
deleted file mode 100644
index bcfd405b..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-dialogbuttonbox.qml
+++ /dev/null
@@ -1,38 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-DialogButtonBox {
- standardButtons: DialogButtonBox.Ok | DialogButtonBox.Cancel
-
- onAccepted: console.log("Ok clicked")
- onRejected: console.log("Cancel clicked")
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-frame-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-frame-custom.qml
deleted file mode 100644
index 798f95da..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-frame-custom.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-Frame {
- background: Rectangle {
- color: "transparent"
- border.color: "#21be2b"
- radius: 2
- }
-
- Label {
- text: qsTr("Content goes here!")
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-frame.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-frame.qml
deleted file mode 100644
index 71b9b310..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-frame.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-
-//! [1]
-Frame {
- ColumnLayout {
- anchors.fill: parent
- CheckBox { text: qsTr("E-mail") }
- CheckBox { text: qsTr("Calendar") }
- CheckBox { text: qsTr("Contacts") }
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox-checkable.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox-checkable.qml
deleted file mode 100644
index 91689d9f..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox-checkable.qml
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-
-//! [1]
-GroupBox {
- label: CheckBox {
- id: checkBox
- checked: true
- text: qsTr("Synchronize")
- }
-
- ColumnLayout {
- anchors.fill: parent
- enabled: checkBox.checked
- CheckBox { text: qsTr("E-mail") }
- CheckBox { text: qsTr("Calendar") }
- CheckBox { text: qsTr("Contacts") }
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox-custom.qml
deleted file mode 100644
index e3355b23..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox-custom.qml
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-GroupBox {
- id: control
- title: qsTr("GroupBox")
-
- background: Rectangle {
- y: control.topPadding - control.bottomPadding
- width: parent.width
- height: parent.height - control.topPadding + control.bottomPadding
- color: "transparent"
- border.color: "#21be2b"
- radius: 2
- }
-
- label: Label {
- x: control.leftPadding
- width: control.availableWidth
- text: control.title
- color: "#21be2b"
- elide: Text.ElideRight
- }
-
- Label {
- text: qsTr("Content goes here!")
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox.qml
deleted file mode 100644
index e9f1c7dc..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-groupbox.qml
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-
-//! [1]
-GroupBox {
- title: qsTr("Synchronize")
- ColumnLayout {
- anchors.fill: parent
- CheckBox { text: qsTr("E-mail") }
- CheckBox { text: qsTr("Calendar") }
- CheckBox { text: qsTr("Contacts") }
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-headerview-simple.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-headerview-simple.qml
deleted file mode 100644
index 6878904f..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-headerview-simple.qml
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//![file]
-import QtQuick
-import QtQuick.Controls
-import Qt.labs.qmlmodels
-
-ApplicationWindow {
- visible: true
- width: 640
- height: 480
-
- //! [horizontal]
- HorizontalHeaderView {
- id: horizontalHeader
- syncView: tableView
- anchors.left: tableView.left
- }
- //! [horizontal]
-
- //! [vertical]
- VerticalHeaderView {
- id: verticalHeader
- syncView: tableView
- anchors.top: tableView.top
- }
- //! [vertical]
-
- TableView {
- id: tableView
- anchors.fill: parent
- anchors.topMargin: horizontalHeader.height
- anchors.leftMargin: verticalHeader.width
- columnSpacing: 1
- rowSpacing: 1
- clip: true
-
- model: TableModel {
- TableModelColumn { display: "name" }
- TableModelColumn { display: "color" }
-
- rows: [
- {
- "name": "cat",
- "color": "black"
- },
- {
- "name": "dog",
- "color": "brown"
- },
- {
- "name": "bird",
- "color": "white"
- }
- ]
- }
-
- delegate: Rectangle {
- implicitWidth: 100
- implicitHeight: 50
- border.width: 1
-
- Text {
- text: display
- anchors.centerIn: parent
- }
- }
- }
-}
-
-//![file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-itemdelegate-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-itemdelegate-custom.qml
deleted file mode 100644
index fd52b46f..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-itemdelegate-custom.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-ItemDelegate {
- id: control
- text: qsTr("ItemDelegate")
-
- contentItem: Text {
- rightPadding: control.spacing
- text: control.text
- font: control.font
- color: control.enabled ? (control.down ? "#17a81a" : "#21be2b") : "#bdbebf"
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- opacity: enabled ? 1 : 0.3
- color: control.down ? "#dddedf" : "#eeeeee"
-
- Rectangle {
- width: parent.width
- height: 1
- color: control.down ? "#17a81a" : "#21be2b"
- anchors.bottom: parent.bottom
- }
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-itemdelegate.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-itemdelegate.qml
deleted file mode 100644
index 70d6104f..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-itemdelegate.qml
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-ListView {
- width: 160
- height: 240
-
- model: Qt.fontFamilies()
-
- delegate: ItemDelegate {
- text: modelData
- width: parent.width
- onClicked: console.log("clicked:", modelData)
- }
-
- ScrollIndicator.vertical: ScrollIndicator { }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-label-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-label-custom.qml
deleted file mode 100644
index cc88d00f..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-label-custom.qml
+++ /dev/null
@@ -1,36 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-Label {
- text: qsTr("Label")
- color: "#21be2b"
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-label.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-label.qml
deleted file mode 100644
index c492af50..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-label.qml
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-Label {
- text: "Label"
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-accent.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-accent.qml
deleted file mode 100644
index aa4c62b8..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-accent.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-import QtQuick.Controls.Material
-
-Pane {
- padding: 4
-
-//! [1]
-Button {
- text: qsTr("Button")
- highlighted: true
- Material.accent: Material.Orange
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-background.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-background.qml
deleted file mode 100644
index f64e48d2..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-background.qml
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.Material
-
-Pane {
- padding: 4
-
-//! [1]
-Button {
- text: qsTr("Button")
- highlighted: true
- Material.background: Material.Teal
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-elevation.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-elevation.qml
deleted file mode 100644
index f9e189f1..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-elevation.qml
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.Material
-
-Pane {
- contentWidth: 120
- contentHeight: 120
- padding: 10
- bottomPadding: 20
-
-//! [1]
-Pane {
- width: 120
- height: 120
-
- Material.elevation: 6
-
- Label {
- text: qsTr("I'm a card!")
- anchors.centerIn: parent
- }
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-foreground.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-foreground.qml
deleted file mode 100644
index 070576f5..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-foreground.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.Material
-
-Pane {
- padding: 4
-
-//! [1]
-Button {
- text: qsTr("Button")
- Material.foreground: Material.Pink
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-theme.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-theme.qml
deleted file mode 100644
index 586433c3..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-theme.qml
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.Material
-
-Pane {
- padding: 10
-
-//! [1]
-Pane {
- Material.theme: Material.Dark
-
- Button {
- text: qsTr("Button")
- }
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-variant.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-variant.qml
deleted file mode 100644
index 1283fb43..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-material-variant.qml
+++ /dev/null
@@ -1,212 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.Material
-import QtQuick.Layouts
-
-Pane {
- implicitWidth: 400
- implicitHeight: 600
- padding: 10
-
- readonly property color measurementColor: "darkorange"
- readonly property int barLeftMargin: 10
- readonly property int textTopMargin: 12
-
- Component {
- id: measurementComponent
-
- Rectangle {
- color: measurementColor
- width: 1
- height: parent.height
-
- Rectangle {
- width: 5
- height: 1
- color: measurementColor
- anchors.horizontalCenter: parent.horizontalCenter
- }
-
- Rectangle {
- width: 5
- height: 1
- color: measurementColor
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- }
-
- Text {
- x: 8
- text: parent.height
- height: parent.height
- color: measurementColor
- verticalAlignment: Text.AlignVCenter
- }
- }
- }
-
- ColumnLayout {
- anchors.fill: parent
- spacing: 20
-
- ColumnLayout {
- spacing: textTopMargin
-
- Button {
- id: button
- text: qsTr("Button")
-
- Loader {
- sourceComponent: measurementComponent
- height: parent.height
- anchors.left: parent.right
- anchors.leftMargin: barLeftMargin
- }
-
- }
- Text {
- text: "Roboto " + button.font.pixelSize
- color: measurementColor
- }
- }
-
- ColumnLayout {
- spacing: textTopMargin
-
- ItemDelegate {
- id: itemDelegate
- text: qsTr("ItemDelegate")
-
- Loader {
- sourceComponent: measurementComponent
- height: parent.height
- anchors.left: parent.right
- anchors.leftMargin: barLeftMargin
- }
-
- }
- Text {
- text: "Roboto " + itemDelegate.font.pixelSize
- color: measurementColor
- }
- }
-
- ColumnLayout {
- spacing: textTopMargin
-
- CheckDelegate {
- id: checkDelegate
- text: qsTr("CheckDelegate")
-
- Loader {
- sourceComponent: measurementComponent
- height: parent.height
- anchors.left: parent.right
- anchors.leftMargin: barLeftMargin
- }
-
- }
- Text {
- text: "Roboto " + checkDelegate.font.pixelSize
- color: measurementColor
- }
- }
-
- ColumnLayout {
- spacing: textTopMargin
-
- RadioDelegate {
- id: radioDelegate
- text: qsTr("RadioDelegate")
-
- Loader {
- sourceComponent: measurementComponent
- height: parent.height
- anchors.left: parent.right
- anchors.leftMargin: barLeftMargin
- }
-
- }
- Text {
- text: "Roboto " + radioDelegate.font.pixelSize
- color: measurementColor
- }
- }
-
- ColumnLayout {
- spacing: textTopMargin
-
- ComboBox {
- id: comboBox
- model: [ qsTr("ComboBox") ]
-
- Loader {
- sourceComponent: measurementComponent
- height: parent.height
- anchors.left: parent.right
- anchors.leftMargin: barLeftMargin
- }
-
- }
- Text {
- text: "Roboto " + comboBox.font.pixelSize
- color: measurementColor
- }
- }
-
- ColumnLayout {
- spacing: textTopMargin
-
- Item {
- implicitWidth: groupBox.implicitWidth
- implicitHeight: groupBox.implicitHeight
-
- GroupBox {
- id: groupBox
- title: qsTr("GroupBox")
- }
- Loader {
- sourceComponent: measurementComponent
- height: parent.height
- anchors.left: parent.right
- anchors.leftMargin: barLeftMargin
- }
- }
- Text {
- text: "Roboto " + groupBox.font.pixelSize
- color: measurementColor
- }
- }
-
- Item {
- Layout.fillHeight: true
- }
- }
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-menu-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-menu-custom.qml
deleted file mode 100644
index 3e766e8a..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-menu-custom.qml
+++ /dev/null
@@ -1,133 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ApplicationWindow {
- id: window
- width: menu.width
- height: menu.height
- visible: true
-
- Component.onCompleted: menu.popup(menu.itemAt(1))
-
-// Indent it like this so that the indenting in the generated doc is normal.
-Menu {
- id: menu
-
- Action { text: qsTr("Tool Bar"); checkable: true }
- Action { text: qsTr("Side Bar"); checkable: true; checked: true }
- Action { text: qsTr("Status Bar"); checkable: true; checked: true }
-
- MenuSeparator {
- contentItem: Rectangle {
- implicitWidth: 200
- implicitHeight: 1
- color: "#21be2b"
- }
- }
-
- Menu {
- title: qsTr("Advanced")
- // ...
- }
-
- topPadding: 2
- bottomPadding: 2
-
- delegate: MenuItem {
- id: menuItem
- implicitWidth: 200
- implicitHeight: 40
-
- arrow: Canvas {
- x: parent.width - width
- implicitWidth: 40
- implicitHeight: 40
- visible: menuItem.subMenu
- onPaint: {
- var ctx = getContext("2d")
- ctx.fillStyle = menuItem.highlighted ? "#ffffff" : "#21be2b"
- ctx.moveTo(15, 15)
- ctx.lineTo(width - 15, height / 2)
- ctx.lineTo(15, height - 15)
- ctx.closePath()
- ctx.fill()
- }
- }
-
- indicator: Item {
- implicitWidth: 40
- implicitHeight: 40
- Rectangle {
- width: 26
- height: 26
- anchors.centerIn: parent
- visible: menuItem.checkable
- border.color: "#21be2b"
- radius: 3
- Rectangle {
- width: 14
- height: 14
- anchors.centerIn: parent
- visible: menuItem.checked
- color: "#21be2b"
- radius: 2
- }
- }
- }
-
- contentItem: Text {
- leftPadding: menuItem.indicator.width
- rightPadding: menuItem.arrow.width
- text: menuItem.text
- font: menuItem.font
- opacity: enabled ? 1.0 : 0.3
- color: menuItem.highlighted ? "#ffffff" : "#21be2b"
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 40
- opacity: enabled ? 1 : 0.3
- color: menuItem.highlighted ? "#21be2b" : "transparent"
- }
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 40
- color: "#ffffff"
- border.color: "#21be2b"
- radius: 2
- }
-}
-} //! [eof]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-menubar-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-menubar-custom.qml
deleted file mode 100644
index 4b3d641e..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-menubar-custom.qml
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-ApplicationWindow {
- id: window
- visible: true
- width: menuBar.implicitWidth
- height: menuBar.height
-
- Component.onCompleted: menuBar.itemAt(1).highlighted = true
-
- header:
-
-// Indent it like this so that the indenting in the generated doc is normal.
-MenuBar {
- id: menuBar
-
- Menu { title: qsTr("File") }
- Menu { title: qsTr("Edit") }
- Menu { title: qsTr("View") }
- Menu { title: qsTr("Help") }
-
- delegate: MenuBarItem {
- id: menuBarItem
-
- contentItem: Text {
- text: menuBarItem.text
- font: menuBarItem.font
- opacity: enabled ? 1.0 : 0.3
- color: menuBarItem.highlighted ? "#ffffff" : "#21be2b"
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
-
- background: Rectangle {
- implicitWidth: 40
- implicitHeight: 40
- opacity: enabled ? 1 : 0.3
- color: menuBarItem.highlighted ? "#21be2b" : "transparent"
- }
- }
-
- background: Rectangle {
- implicitWidth: 40
- implicitHeight: 40
- color: "#ffffff"
-
- Rectangle {
- color: "#21be2b"
- width: parent.width
- height: 1
- anchors.bottom: parent.bottom
- }
- }
-}
-} //! [eof]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-menubar.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-menubar.qml
deleted file mode 100644
index 7ae22ae8..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-menubar.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [begin]
-ApplicationWindow {
- id: window
- width: 320
- height: 260
- visible: true
-
- //! [skipfrom]
- Component.onCompleted: {
- menuBar.itemAt(0).triggered()
- menuBar.itemAt(0).menu.itemAt(2).highlighted = true
- }
- //! [skipto]
-
- menuBar: MenuBar {
- Menu {
- title: qsTr("&File")
- Action { text: qsTr("&New...") }
- Action { text: qsTr("&Open...") }
- Action { text: qsTr("&Save") }
- Action { text: qsTr("Save &As...") }
- MenuSeparator { }
- Action { text: qsTr("&Quit") }
- }
- Menu {
- title: qsTr("&Edit")
- Action { text: qsTr("Cu&t") }
- Action { text: qsTr("&Copy") }
- Action { text: qsTr("&Paste") }
- }
- Menu {
- title: qsTr("&Help")
- Action { text: qsTr("&About") }
- }
- }
-}
-//! [end]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-menuseparator-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-menuseparator-custom.qml
deleted file mode 100644
index fa7fa14a..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-menuseparator-custom.qml
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-Item {
- id: window
- width: menu.contentItem.width
- height: menu.contentItem.height
- visible: true
-
-// Indent it like this so that the indenting in the generated doc is normal.
-Menu {
- id: menu
- contentItem.parent: window
-
- MenuItem {
- text: qsTr("New...")
- }
- MenuItem {
- text: qsTr("Open...")
- }
- MenuItem {
- text: qsTr("Save")
- }
-
- MenuSeparator {
- padding: 0
- topPadding: 12
- bottomPadding: 12
- contentItem: Rectangle {
- implicitWidth: 200
- implicitHeight: 1
- color: "#1E000000"
- }
- }
-
- MenuItem {
- text: qsTr("Exit")
- }
-}
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-menuseparator.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-menuseparator.qml
deleted file mode 100644
index cd5d5441..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-menuseparator.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-Item {
- id: window
- width: menu.contentItem.width
- height: menu.contentItem.height
- visible: true
-
-// Indent it like this so that the indenting in the generated doc is normal.
-Menu {
- id: menu
- contentItem.parent: window
-
- MenuItem {
- text: qsTr("New...")
- }
- MenuItem {
- text: qsTr("Open...")
- }
- MenuItem {
- text: qsTr("Save")
- }
-
- MenuSeparator {}
-
- MenuItem {
- text: qsTr("Exit")
- }
-}
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-overlay-modal.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-overlay-modal.qml
deleted file mode 100644
index 9751f057..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-overlay-modal.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Window
-
-Item {
- id: root
- width: 200
- height: 200
-
- Binding {
- target: popup
- property: "visible"
- value: root.Window.active
- }
-//! [1]
-Popup {
- id: popup
- width: 400
- height: 400
- modal: true
- visible: true
-
- Overlay.modal: Rectangle {
- color: "#aacfdbe7"
- }
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-overlay-modeless.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-overlay-modeless.qml
deleted file mode 100644
index a4951d13..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-overlay-modeless.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Window
-
-Item {
- id: root
- width: 200
- height: 200
-
- Binding {
- target: popup
- property: "visible"
- value: root.Window.active
- }
-//! [1]
-Popup {
- id: popup
- width: 400
- height: 400
- dim: true
- visible: true
-
- Overlay.modeless: Rectangle {
- color: "#aacfdbe7"
- }
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-overview.cmake b/src/quickcontrols2/doc/snippets/qtquickcontrols2-overview.cmake
deleted file mode 100644
index 5bbbcff5..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-overview.cmake
+++ /dev/null
@@ -1,4 +0,0 @@
-#! [0]
-find_package(Qt6 COMPONENTS QuickControls2 REQUIRED)
-target_link_libraries(mytarget PRIVATE Qt6::QuickControls2)
-#! [0]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator-custom.qml
deleted file mode 100644
index ba0d2db9..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator-custom.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-PageIndicator {
- id: control
- count: 5
- currentIndex: 2
-
- delegate: Rectangle {
- implicitWidth: 8
- implicitHeight: 8
-
- radius: width / 2
- color: "#21be2b"
-
- opacity: index === control.currentIndex ? 0.95 : pressed ? 0.7 : 0.45
-
- Behavior on opacity {
- OpacityAnimator {
- duration: 100
- }
- }
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator-interactive.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator-interactive.qml
deleted file mode 100644
index 8f2221ee..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator-interactive.qml
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick.Controls
-
-Pane {
-//! [1]
-SwipeView {
- id: view
- currentIndex: pageIndicator.currentIndex
- anchors.fill: parent
-
- Page {
- title: qsTr("Home")
- }
- Page {
- title: qsTr("Discover")
- }
- Page {
- title: qsTr("Activity")
- }
-}
-
-PageIndicator {
- id: pageIndicator
- interactive: true
- count: view.count
- currentIndex: view.currentIndex
-
- anchors.bottom: parent.bottom
- anchors.horizontalCenter: parent.horizontalCenter
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator.qml
deleted file mode 100644
index b3912efe..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-pageindicator.qml
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-PageIndicator {
- count: 5
- currentIndex: 2
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-pane-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-pane-custom.qml
deleted file mode 100644
index 855423c4..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-pane-custom.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-Pane {
- background: Rectangle {
- color: "#eeeeee"
- }
-
- Label {
- text: qsTr("Content goes here!")
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-pane.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-pane.qml
deleted file mode 100644
index a8c8672e..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-pane.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-
-//! [1]
-Pane {
- ColumnLayout {
- anchors.fill: parent
- CheckBox { text: qsTr("E-mail") }
- CheckBox { text: qsTr("Calendar") }
- CheckBox { text: qsTr("Contacts") }
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-popup-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-popup-custom.qml
deleted file mode 100644
index ad5481e3..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-popup-custom.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Window
-
-Item {
- id: root
- width: 200
- height: 200
-
- Binding {
- target: popup
- property: "visible"
- value: root.Window.active
- }
-//! [1]
-Popup {
- id: popup
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 200
- border.color: "#444"
- }
- contentItem: Column {}
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-popup.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-popup.qml
deleted file mode 100644
index 76ec20cd..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-popup.qml
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
-//! [centerIn]
-ApplicationWindow {
- id: window
- // ...
-
- Pane {
- // ...
-
- Popup {
- anchors.centerIn: Overlay.overlay
- }
- }
-}
-//! [centerIn]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-progressbar-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-progressbar-custom.qml
deleted file mode 100644
index d9616157..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-progressbar-custom.qml
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-ProgressBar {
- id: control
- value: 0.5
- padding: 2
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 6
- color: "#e6e6e6"
- radius: 3
- }
-
- contentItem: Item {
- implicitWidth: 200
- implicitHeight: 4
-
- Rectangle {
- width: control.visualPosition * parent.width
- height: parent.height
- radius: 2
- color: "#17a81a"
- }
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-radiobutton-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-radiobutton-custom.qml
deleted file mode 100644
index b33ce6b6..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-radiobutton-custom.qml
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-RadioButton {
- id: control
- text: qsTr("RadioButton")
- checked: true
-
- indicator: Rectangle {
- implicitWidth: 26
- implicitHeight: 26
- x: control.leftPadding
- y: parent.height / 2 - height / 2
- radius: 13
- border.color: control.down ? "#17a81a" : "#21be2b"
-
- Rectangle {
- width: 14
- height: 14
- x: 6
- y: 6
- radius: 7
- color: control.down ? "#17a81a" : "#21be2b"
- visible: control.checked
- }
- }
-
- contentItem: Text {
- text: control.text
- font: control.font
- opacity: enabled ? 1.0 : 0.3
- color: control.down ? "#17a81a" : "#21be2b"
- verticalAlignment: Text.AlignVCenter
- leftPadding: control.indicator.width + control.spacing
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-radiodelegate-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-radiodelegate-custom.qml
deleted file mode 100644
index ed3dae67..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-radiodelegate-custom.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-RadioDelegate {
- id: control
- text: qsTr("RadioDelegate")
- checked: true
-
- contentItem: Text {
- rightPadding: control.indicator.width + control.spacing
- text: control.text
- font: control.font
- opacity: enabled ? 1.0 : 0.3
- color: control.down ? "#17a81a" : "#21be2b"
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-
- indicator: Rectangle {
- implicitWidth: 26
- implicitHeight: 26
- x: control.width - width - control.rightPadding
- y: parent.height / 2 - height / 2
- radius: 13
- color: "transparent"
- border.color: control.down ? "#17a81a" : "#21be2b"
-
- Rectangle {
- width: 14
- height: 14
- x: 6
- y: 6
- radius: 7
- color: control.down ? "#17a81a" : "#21be2b"
- visible: control.checked
- }
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- visible: control.down || control.highlighted
- color: control.down ? "#bdbebf" : "#eeeeee"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-rangeslider-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-rangeslider-custom.qml
deleted file mode 100644
index fcddc400..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-rangeslider-custom.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-RangeSlider {
- id: control
- first.value: 0.25
- second.value: 0.75
-
- background: Rectangle {
- x: control.leftPadding
- y: control.topPadding + control.availableHeight / 2 - height / 2
- implicitWidth: 200
- implicitHeight: 4
- width: control.availableWidth
- height: implicitHeight
- radius: 2
- color: "#bdbebf"
-
- Rectangle {
- x: control.first.visualPosition * parent.width
- width: control.second.visualPosition * parent.width - x
- height: parent.height
- color: "#21be2b"
- radius: 2
- }
- }
-
- first.handle: Rectangle {
- x: control.leftPadding + control.first.visualPosition * (control.availableWidth - width)
- y: control.topPadding + control.availableHeight / 2 - height / 2
- implicitWidth: 26
- implicitHeight: 26
- radius: 13
- color: control.first.pressed ? "#f0f0f0" : "#f6f6f6"
- border.color: "#bdbebf"
- }
-
- second.handle: Rectangle {
- x: control.leftPadding + control.second.visualPosition * (control.availableWidth - width)
- y: control.topPadding + control.availableHeight / 2 - height / 2
- implicitWidth: 26
- implicitHeight: 26
- radius: 13
- color: control.second.pressed ? "#f0f0f0" : "#f6f6f6"
- border.color: "#bdbebf"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-roundbutton.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-roundbutton.qml
deleted file mode 100644
index 201ee244..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-roundbutton.qml
+++ /dev/null
@@ -1,36 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-RoundButton {
- text: "\u2713" // Unicode Character 'CHECK MARK'
- onClicked: textArea.readOnly = true
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-active.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-active.qml
deleted file mode 100644
index bd417955..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-active.qml
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: 100
- height: 100
-
- //! [1]
- Flickable {
- anchors.fill: parent
-
- contentWidth: parent.width * 2
- contentHeight: parent.height * 2
-
- ScrollBar.horizontal: ScrollBar { id: hbar; active: vbar.active }
- ScrollBar.vertical: ScrollBar { id: vbar; active: hbar.active }
- }
- //! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-custom.qml
deleted file mode 100644
index 0aea2572..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-custom.qml
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-ScrollBar {
- id: control
- size: 0.3
- position: 0.2
- active: true
- orientation: Qt.Vertical
-
- contentItem: Rectangle {
- implicitWidth: 6
- implicitHeight: 100
- radius: width / 2
- color: control.pressed ? "#81e889" : "#c2f4c6"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-non-attached.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-non-attached.qml
deleted file mode 100644
index 7ca66615..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-non-attached.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: 200
- height: 200
-
-//! [1]
-Rectangle {
- id: frame
- clip: true
- width: 160
- height: 160
- border.color: "black"
- anchors.centerIn: parent
-
- Text {
- id: content
- text: "ABC"
- font.pixelSize: 160
- x: -hbar.position * width
- y: -vbar.position * height
- }
-
- ScrollBar {
- id: vbar
- hoverEnabled: true
- active: hovered || pressed
- orientation: Qt.Vertical
- size: frame.height / content.height
- anchors.top: parent.top
- anchors.right: parent.right
- anchors.bottom: parent.bottom
- }
-
- ScrollBar {
- id: hbar
- hoverEnabled: true
- active: hovered || pressed
- orientation: Qt.Horizontal
- size: frame.width / content.width
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.bottom: parent.bottom
- }
-}
-//! [1]
-
-Component.onCompleted: {
- hbar.active = true
- vbar.active = true
-}
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-policy.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-policy.qml
deleted file mode 100644
index c608dac4..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollbar-policy.qml
+++ /dev/null
@@ -1,38 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-Flickable {
- contentHeight: 2000
- ScrollBar.vertical: ScrollBar {
- policy: ScrollBar.AlwaysOn
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-active.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-active.qml
deleted file mode 100644
index 719b9393..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-active.qml
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: 100
- height: 100
-
- //! [1]
- Flickable {
- anchors.fill: parent
-
- contentWidth: parent.width * 2
- contentHeight: parent.height * 2
-
- ScrollIndicator.horizontal: ScrollIndicator { id: hbar; active: vbar.active }
- ScrollIndicator.vertical: ScrollIndicator { id: vbar; active: hbar.active }
- }
- //! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-custom.qml
deleted file mode 100644
index b18d391c..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-custom.qml
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-ScrollIndicator {
- id: control
- size: 0.3
- position: 0.2
- active: true
- orientation: Qt.Vertical
-
- contentItem: Rectangle {
- implicitWidth: 2
- implicitHeight: 100
- color: "#c2f4c6"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-non-attached.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-non-attached.qml
deleted file mode 100644
index 0d6c4529..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollindicator-non-attached.qml
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: 200
- height: 200
-
-//! [1]
-Rectangle {
- id: frame
- clip: true
- width: 160
- height: 160
- border.color: "black"
- anchors.centerIn: parent
-
- Text {
- id: content
- text: "ABC"
- font.pixelSize: 169
-
- MouseArea {
- id: mouseArea
- drag.target: content
- drag.minimumX: frame.width - width
- drag.minimumY: frame.height - height
- drag.maximumX: 0
- drag.maximumY: 0
- anchors.fill: content
- }
- }
-
- ScrollIndicator {
- id: verticalIndicator
- active: mouseArea.pressed
- orientation: Qt.Vertical
- size: frame.height / content.height
- position: -content.y / content.height
- anchors { top: parent.top; right: parent.right; bottom: parent.bottom }
- }
-
- ScrollIndicator {
- id: horizontalIndicator
- active: mouseArea.pressed
- orientation: Qt.Horizontal
- size: frame.width / content.width
- position: -content.x / content.width
- anchors { left: parent.left; right: parent.right; bottom: parent.bottom }
- }
-}
-//! [1]
-
-Component.onCompleted: {
- horizontalIndicator.active = true;
- verticalIndicator.active = true;
-}
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-custom.qml
deleted file mode 100644
index 1a80d263..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-custom.qml
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: 200
- height: 200
-
- Binding {
- target: control.ScrollBar.horizontal
- property: "active"
- value: true
- }
-
- Binding {
- target: control.ScrollBar.vertical
- property: "active"
- value: true
- }
-
-//! [file]
-ScrollView {
- id: control
-
- width: 200
- height: 200
- focus: true
-
- Label {
- text: "ABC"
- font.pixelSize: 224
- }
-
- ScrollBar.vertical: ScrollBar {
- parent: control
- x: control.mirrored ? 0 : control.width - width
- y: control.topPadding
- height: control.availableHeight
- active: control.ScrollBar.horizontal.active
- }
-
- ScrollBar.horizontal: ScrollBar {
- parent: control
- x: control.leftPadding
- y: control.height - height
- width: control.availableWidth
- active: control.ScrollBar.vertical.active
- }
-
- background: Rectangle {
- border.color: control.activeFocus ? "#21be2b" : "#bdbebf"
- }
-}
-//! [file]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-interactive.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-interactive.qml
deleted file mode 100644
index 83861720..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-interactive.qml
+++ /dev/null
@@ -1,38 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [file]
-ScrollView {
- // ...
- ScrollBar.horizontal.interactive: true
- ScrollBar.vertical.interactive: true
-}
-//! [file]
-
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-listview.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-listview.qml
deleted file mode 100644
index f1fbb627..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-listview.qml
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- id: root
- width: 200
- height: 200
-
- Binding {
- target: root.children[0].ScrollBar.horizontal
- property: "active"
- value: true
- }
-
- Binding {
- target: root.children[0].ScrollBar.vertical
- property: "active"
- value: true
- }
-
-//! [file]
-ScrollView {
- width: 200
- height: 200
-
- ListView {
- model: 20
- delegate: ItemDelegate {
- text: "Item " + index
- }
- }
-}
-//! [file]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-policy.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-policy.qml
deleted file mode 100644
index 78098eaa..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview-policy.qml
+++ /dev/null
@@ -1,38 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [file]
-ScrollView {
- // ...
- ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
- ScrollBar.vertical.policy: ScrollBar.AlwaysOn
-}
-//! [file]
-
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview.qml
deleted file mode 100644
index c96ae1ed..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-scrollview.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Rectangle {
- id: root
- width: 200
- height: 200
- border.color: "#ddd"
-
- Binding {
- target: root.children[0].ScrollBar.horizontal
- property: "active"
- value: true
- }
-
- Binding {
- target: root.children[0].ScrollBar.vertical
- property: "active"
- value: true
- }
-
-//! [file]
-ScrollView {
- width: 200
- height: 200
-
- Label {
- text: "ABC"
- font.pixelSize: 224
- }
-}
-//! [file]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-selectionrectangle.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-selectionrectangle.qml
deleted file mode 100644
index c8668324..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-selectionrectangle.qml
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Controls
-import QtQml.Models
-import Qt.labs.qmlmodels
-
-Window {
- width: 480
- height: 640
- visible: true
- visibility: Window.AutomaticVisibility
-
-//![0]
- TableView {
- id: tableView
- anchors.fill: parent
- clip: true
-
- model: TableModel {
- TableModelColumn { display: "name" }
- rows: [ { "name": "Harry" }, { "name": "Hedwig" } ]
- }
-
- selectionModel: ItemSelectionModel {
- model: tableView.model
- }
-
- delegate: Rectangle {
- implicitWidth: 100
- implicitHeight: 30
- color: selected ? "blue" : "lightgray"
-
- required property bool selected
-
- Text { text: display }
- }
- }
-
- SelectionRectangle {
- target: tableView
- }
-//![0]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-slider-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-slider-custom.qml
deleted file mode 100644
index c3d7f4b2..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-slider-custom.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-Slider {
- id: control
- value: 0.5
-
- background: Rectangle {
- x: control.leftPadding
- y: control.topPadding + control.availableHeight / 2 - height / 2
- implicitWidth: 200
- implicitHeight: 4
- width: control.availableWidth
- height: implicitHeight
- radius: 2
- color: "#bdbebf"
-
- Rectangle {
- width: control.visualPosition * parent.width
- height: parent.height
- color: "#21be2b"
- radius: 2
- }
- }
-
- handle: Rectangle {
- x: control.leftPadding + control.visualPosition * (control.availableWidth - width)
- y: control.topPadding + control.availableHeight / 2 - height / 2
- implicitWidth: 26
- implicitHeight: 26
- radius: 13
- color: control.pressed ? "#f0f0f0" : "#f6f6f6"
- border.color: "#bdbebf"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-custom.qml
deleted file mode 100644
index 89f6244f..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-custom.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-SpinBox {
- id: control
- value: 50
- editable: true
-
- contentItem: TextInput {
- z: 2
- text: control.textFromValue(control.value, control.locale)
-
- font: control.font
- color: "#21be2b"
- selectionColor: "#21be2b"
- selectedTextColor: "#ffffff"
- horizontalAlignment: Qt.AlignHCenter
- verticalAlignment: Qt.AlignVCenter
-
- readOnly: !control.editable
- validator: control.validator
- inputMethodHints: Qt.ImhFormattedNumbersOnly
- }
-
- up.indicator: Rectangle {
- x: control.mirrored ? 0 : parent.width - width
- height: parent.height
- implicitWidth: 40
- implicitHeight: 40
- color: control.up.pressed ? "#e4e4e4" : "#f6f6f6"
- border.color: enabled ? "#21be2b" : "#bdbebf"
-
- Text {
- text: "+"
- font.pixelSize: control.font.pixelSize * 2
- color: "#21be2b"
- anchors.fill: parent
- fontSizeMode: Text.Fit
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
- }
-
- down.indicator: Rectangle {
- x: control.mirrored ? parent.width - width : 0
- height: parent.height
- implicitWidth: 40
- implicitHeight: 40
- color: control.down.pressed ? "#e4e4e4" : "#f6f6f6"
- border.color: enabled ? "#21be2b" : "#bdbebf"
-
- Text {
- text: "-"
- font.pixelSize: control.font.pixelSize * 2
- color: "#21be2b"
- anchors.fill: parent
- fontSizeMode: Text.Fit
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
- }
-
- background: Rectangle {
- implicitWidth: 140
- border.color: "#bdbebf"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-double.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-double.qml
deleted file mode 100644
index 852ee5be..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-double.qml
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-SpinBox {
- id: spinbox
- from: 0
- value: 110
- to: 100 * 100
- stepSize: 100
- anchors.centerIn: parent
-
- property int decimals: 2
- property real realValue: value / 100
-
- validator: DoubleValidator {
- bottom: Math.min(spinbox.from, spinbox.to)
- top: Math.max(spinbox.from, spinbox.to)
- }
-
- textFromValue: function(value, locale) {
- return Number(value / 100).toLocaleString(locale, 'f', spinbox.decimals)
- }
-
- valueFromText: function(text, locale) {
- return Number.fromLocaleString(locale, text) * 100
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-textual.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-textual.qml
deleted file mode 100644
index c1879d93..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox-textual.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-SpinBox {
- from: 0
- to: items.length - 1
- value: 1 // "Medium"
-
- property var items: ["Small", "Medium", "Large"]
-
- validator: RegularExpressionValidator {
- regularExpression: new RegExp("(Small|Medium|Large)", "i")
- }
-
- textFromValue: function(value) {
- return items[value];
- }
-
- valueFromText: function(text) {
- for (var i = 0; i < items.length; ++i) {
- if (items[i].toLowerCase().indexOf(text.toLowerCase()) === 0)
- return i
- }
- return sb.value
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox.qml
deleted file mode 100644
index 87722749..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-spinbox.qml
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-SpinBox {
- value: 50
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-splitview-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-splitview-custom.qml
deleted file mode 100644
index 570c3acd..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-splitview-custom.qml
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: 200
- height: 100
-
- //! [1]
- SplitView {
- id: splitView
- anchors.fill: parent
-
- handle: Rectangle {
- implicitWidth: 4
- implicitHeight: 4
- color: SplitHandle.pressed ? "#81e889"
- : (SplitHandle.hovered ? Qt.lighter("#c2f4c6", 1.1) : "#c2f4c6")
- }
-
- Rectangle {
- implicitWidth: 150
- color: "#444"
- }
- Rectangle {
- implicitWidth: 50
- color: "#666"
- }
- }
- //! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-splitview-handle-containmentmask.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-splitview-handle-containmentmask.qml
deleted file mode 100644
index 39af8994..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-splitview-handle-containmentmask.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: 200
- height: 100
-
- //! [1]
- SplitView {
- id: splitView
- anchors.fill: parent
-
- handle: Rectangle {
- implicitWidth: 4
- implicitHeight: 4
- color: SplitHandle.pressed ? "#81e889"
- : (SplitHandle.hovered ? Qt.lighter("#c2f4c6", 1.1) : "#c2f4c6")
-
- containmentMask: Item {
- x: -width / 2
- width: 64
- height: splitView.height
- }
- }
-
- Rectangle {
- implicitWidth: 150
- color: "#444"
- }
- Rectangle {
- implicitWidth: 50
- color: "#666"
- }
- }
- //! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-stackview-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-stackview-custom.qml
deleted file mode 100644
index 64cdb3ce..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-stackview-custom.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-StackView {
- id: control
-
- popEnter: Transition {
- XAnimator {
- from: (control.mirrored ? -1 : 1) * -control.width
- to: 0
- duration: 400
- easing.type: Easing.OutCubic
- }
- }
-
- popExit: Transition {
- XAnimator {
- from: 0
- to: (control.mirrored ? -1 : 1) * control.width
- duration: 400
- easing.type: Easing.OutCubic
- }
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-stackview-visible.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-stackview-visible.qml
deleted file mode 100644
index 0e1a0dd4..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-stackview-visible.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-StackView {
- id: stackView
- property real offset: 10
- width: 100; height: 100
-
- initialItem: Component {
- id: page
- Rectangle {
- property real pos: StackView.index * stackView.offset
- property real hue: Math.random()
- color: Qt.hsla(hue, 0.5, 0.8, 0.6)
- border.color: Qt.hsla(hue, 0.5, 0.5, 0.9)
- StackView.visible: true
- }
- }
-
- pushEnter: Transition {
- id: pushEnter
- ParallelAnimation {
- PropertyAction { property: "x"; value: pushEnter.ViewTransition.item.pos }
- NumberAnimation { properties: "y"; from: pushEnter.ViewTransition.item.pos + stackView.offset; to: pushEnter.ViewTransition.item.pos; duration: 400; easing.type: Easing.OutCubic }
- NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 400; easing.type: Easing.OutCubic }
- }
- }
- popExit: Transition {
- id: popExit
- ParallelAnimation {
- PropertyAction { property: "x"; value: popExit.ViewTransition.item.pos }
- NumberAnimation { properties: "y"; from: popExit.ViewTransition.item.pos; to: popExit.ViewTransition.item.pos + stackView.offset; duration: 400; easing.type: Easing.OutCubic }
- NumberAnimation { property: "opacity"; from: 1; to: 0; duration: 400; easing.type: Easing.OutCubic }
- }
- }
-
- pushExit: Transition {
- id: pushExit
- PropertyAction { property: "x"; value: pushExit.ViewTransition.item.pos }
- PropertyAction { property: "y"; value: pushExit.ViewTransition.item.pos }
- }
- popEnter: Transition {
- id: popEnter
- PropertyAction { property: "x"; value: popEnter.ViewTransition.item.pos }
- PropertyAction { property: "y"; value: popEnter.ViewTransition.item.pos }
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate-custom.qml
deleted file mode 100644
index c89b96a4..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate-custom.qml
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-SwipeDelegate {
- id: control
- text: qsTr("SwipeDelegate")
-
- Component {
- id: component
-
- Rectangle {
- color: SwipeDelegate.pressed ? "#333" : "#444"
- width: parent.width
- height: parent.height
- clip: true
-
- Label {
- text: qsTr("Press me!")
- color: "#21be2b"
- anchors.centerIn: parent
- }
- }
- }
-
- swipe.left: component
- swipe.right: component
-
- contentItem: Text {
- text: control.text
- font: control.font
- color: control.enabled ? (control.down ? "#17a81a" : "#21be2b") : "#bdbebf"
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
-
- Behavior on x {
- enabled: !control.down
- NumberAnimation {
- easing.type: Easing.InOutCubic
- duration: 400
- }
- }
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate-transition.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate-transition.qml
deleted file mode 100644
index dc0d58a2..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate-transition.qml
+++ /dev/null
@@ -1,37 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-SwipeDelegate {
- swipe.transition: Transition {
- SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic }
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate.qml
deleted file mode 100644
index dcab908e..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipedelegate.qml
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-ListView {
- id: listView
- anchors.fill: parent
- model: ListModel {
- ListElement { sender: "Bob Bobbleton"; title: "How are you going?" }
- ListElement { sender: "Rug Emporium"; title: "SALE! All rugs MUST go!" }
- ListElement { sender: "Electric Co."; title: "Electricity bill 15/07/2016 overdue" }
- ListElement { sender: "Tips"; title: "Five ways this tip will save your life" }
- }
- delegate: SwipeDelegate {
- id: swipeDelegate
- text: model.sender + " - " + model.title
- width: parent.width
-
- ListView.onRemove: SequentialAnimation {
- PropertyAction {
- target: swipeDelegate
- property: "ListView.delayRemove"
- value: true
- }
- NumberAnimation {
- target: swipeDelegate
- property: "height"
- to: 0
- easing.type: Easing.InOutQuad
- }
- PropertyAction {
- target: swipeDelegate
- property: "ListView.delayRemove"
- value: false
- }
- }
-
- swipe.right: Label {
- id: deleteLabel
- text: qsTr("Delete")
- color: "white"
- verticalAlignment: Label.AlignVCenter
- padding: 12
- height: parent.height
- anchors.right: parent.right
-
- SwipeDelegate.onClicked: listView.model.remove(index)
-
- background: Rectangle {
- color: deleteLabel.SwipeDelegate.pressed ? Qt.darker("tomato", 1.1) : "tomato"
- }
- }
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipeview-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipeview-custom.qml
deleted file mode 100644
index b8cddb31..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipeview-custom.qml
+++ /dev/null
@@ -1,39 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-SwipeView {
- id: control
-
- background: Rectangle {
- color: "#eeeeee"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipeview-indicator.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipeview-indicator.qml
deleted file mode 100644
index 98b381f1..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-swipeview-indicator.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: 200
- height: 320
-
- //! [1]
- SwipeView {
- id: view
-
- currentIndex: 1
- anchors.fill: parent
-
- Item {
- id: firstPage
- }
- Item {
- id: secondPage
- }
- Item {
- id: thirdPage
- }
- }
-
- PageIndicator {
- id: indicator
-
- count: view.count
- currentIndex: view.currentIndex
-
- anchors.bottom: view.bottom
- anchors.horizontalCenter: parent.horizontalCenter
- }
- //! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-switch-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-switch-custom.qml
deleted file mode 100644
index 9adccbed..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-switch-custom.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-Switch {
- id: control
- text: qsTr("Switch")
-
- indicator: Rectangle {
- implicitWidth: 48
- implicitHeight: 26
- x: control.leftPadding
- y: parent.height / 2 - height / 2
- radius: 13
- color: control.checked ? "#17a81a" : "#ffffff"
- border.color: control.checked ? "#17a81a" : "#cccccc"
-
- Rectangle {
- x: control.checked ? parent.width - width : 0
- width: 26
- height: 26
- radius: 13
- color: control.down ? "#cccccc" : "#ffffff"
- border.color: control.checked ? (control.down ? "#17a81a" : "#21be2b") : "#999999"
- }
- }
-
- contentItem: Text {
- text: control.text
- font: control.font
- opacity: enabled ? 1.0 : 0.3
- color: control.down ? "#17a81a" : "#21be2b"
- verticalAlignment: Text.AlignVCenter
- leftPadding: control.indicator.width + control.spacing
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-switchdelegate-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-switchdelegate-custom.qml
deleted file mode 100644
index bea35f29..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-switchdelegate-custom.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-SwitchDelegate {
- id: control
- text: qsTr("SwitchDelegate")
- checked: true
-
- contentItem: Text {
- rightPadding: control.indicator.width + control.spacing
- text: control.text
- font: control.font
- opacity: enabled ? 1.0 : 0.3
- color: control.down ? "#17a81a" : "#21be2b"
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-
- indicator: Rectangle {
- implicitWidth: 48
- implicitHeight: 26
- x: control.width - width - control.rightPadding
- y: parent.height / 2 - height / 2
- radius: 13
- color: control.checked ? "#17a81a" : "transparent"
- border.color: control.checked ? "#17a81a" : "#cccccc"
-
- Rectangle {
- x: control.checked ? parent.width - width : 0
- width: 26
- height: 26
- radius: 13
- color: control.down ? "#cccccc" : "#ffffff"
- border.color: control.checked ? (control.down ? "#17a81a" : "#21be2b") : "#999999"
- }
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- visible: control.down || control.highlighted
- color: control.down ? "#bdbebf" : "#eeeeee"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-custom.qml
deleted file mode 100644
index eba48256..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-custom.qml
+++ /dev/null
@@ -1,49 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-TabBar {
- id: control
-
- background: Rectangle {
- color: "#eeeeee"
- }
-
- TabButton {
- text: qsTr("Home")
- }
- TabButton {
- text: qsTr("Discover")
- }
- TabButton {
- text: qsTr("Activity")
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-explicit.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-explicit.qml
deleted file mode 100644
index 5f548255..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-explicit.qml
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: 360
- height: childrenRect.height
-
-//! [1]
-TabBar {
- width: parent.width
- TabButton {
- text: "First"
- width: implicitWidth
- }
- TabButton {
- text: "Second"
- width: implicitWidth
- }
- TabButton {
- text: "Third"
- width: implicitWidth
- }
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-flickable.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-flickable.qml
deleted file mode 100644
index 8e41bbf0..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar-flickable.qml
+++ /dev/null
@@ -1,50 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: 360
- height: bar.height
-
-//! [1]
-TabBar {
- id: bar
- width: parent.width
-
- Repeater {
- model: ["First", "Second", "Third", "Fourth", "Fifth"]
-
- TabButton {
- text: modelData
- width: Math.max(100, bar.width / 5)
- }
- }
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar.qml
deleted file mode 100644
index 7a02f375..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbar.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-
-Column {
- width: 300
-
- //! [1]
- TabBar {
- id: bar
- width: parent.width
- TabButton {
- text: qsTr("Home")
- }
- TabButton {
- text: qsTr("Discover")
- }
- TabButton {
- text: qsTr("Activity")
- }
- }
-
- StackLayout {
- width: parent.width
- currentIndex: bar.currentIndex
- Item {
- id: homeTab
- }
- Item {
- id: discoverTab
- }
- Item {
- id: activityTab
- }
- }
- //! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbutton.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbutton.qml
deleted file mode 100644
index e7240db4..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tabbutton.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-TabBar {
- TabButton {
- text: qsTr("Home")
- }
- TabButton {
- text: qsTr("Discover")
- }
- TabButton {
- text: qsTr("Activity")
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textarea-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-textarea-custom.qml
deleted file mode 100644
index e4f1b397..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textarea-custom.qml
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-TextArea {
- id: control
- placeholderText: qsTr("Enter description")
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 40
- border.color: control.enabled ? "#21be2b" : "transparent"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textarea-scrollable.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-textarea-scrollable.qml
deleted file mode 100644
index 52d9996e..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textarea-scrollable.qml
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-Item {
- width: 100
- height: 100
-
- Binding { target: view.ScrollBar.vertical; property: "active"; value: true }
-
- //! [1]
- ScrollView {
- id: view
- anchors.fill: parent
-
- TextArea {
- text: "TextArea\n...\n...\n...\n...\n...\n...\n"
- }
- }
- //! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-custom.qml
deleted file mode 100644
index 8f1aba23..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-custom.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-TextField {
- id: control
- placeholderText: qsTr("Enter description")
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 40
- color: control.enabled ? "transparent" : "#353637"
- border.color: control.enabled ? "#21be2b" : "transparent"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-disabled.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-disabled.qml
deleted file mode 100644
index 3d92b647..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-disabled.qml
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-TextField {
- width: 80
- text: "Disabled"
- enabled: false
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-focused.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-focused.qml
deleted file mode 100644
index f2761988..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-focused.qml
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-TextField {
- width: 80
- text: "Focused"
- focus: true
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-normal.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-normal.qml
deleted file mode 100644
index c9208c0e..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-textfield-normal.qml
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-TextField {
- width: 80
- text: "Normal"
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbar-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbar-custom.qml
deleted file mode 100644
index 2cb9d0c5..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbar-custom.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-
-//! [file]
-ToolBar {
- id: control
-
- background: Rectangle {
- implicitHeight: 40
- color: "#eeeeee"
-
- Rectangle {
- width: parent.width
- height: 1
- anchors.bottom: parent.bottom
- color: "transparent"
- border.color: "#21be2b"
- }
- }
-
- RowLayout {
- anchors.fill: parent
- ToolButton {
- text: qsTr("Undo")
- }
- ToolButton {
- text: qsTr("Redo")
- }
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbar.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbar.qml
deleted file mode 100644
index 2ed5c23f..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbar.qml
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-
-Item {
- width: children[0].implicitWidth * 2
- height: children[0].implicitHeight
- Binding {
- target: children[0]
- property: "width"
- value: width
- }
-//! [1]
-ToolBar {
- RowLayout {
- anchors.fill: parent
- ToolButton {
- text: qsTr("‹")
- onClicked: stack.pop()
- }
- Label {
- text: "Title"
- elide: Label.ElideRight
- horizontalAlignment: Qt.AlignHCenter
- verticalAlignment: Qt.AlignVCenter
- Layout.fillWidth: true
- }
- ToolButton {
- text: qsTr("â‹®")
- onClicked: menu.open()
- }
- }
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbutton-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbutton-custom.qml
deleted file mode 100644
index 8eb27430..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolbutton-custom.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-ToolButton {
- id: control
- text: qsTr("ToolButton")
- width: 120
-
- contentItem: Text {
- text: control.text
- font: control.font
- opacity: enabled ? 1.0 : 0.3
- color: control.down ? "#17a81a" : "#21be2b"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
-
- background: Rectangle {
- implicitWidth: 40
- implicitHeight: 40
- color: Qt.darker("#33333333", control.enabled && (control.checked || control.highlighted) ? 1.5 : 1.0)
- opacity: enabled ? 1 : 0.3
- visible: control.down || (control.enabled && (control.checked || control.highlighted))
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolseparator-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolseparator-custom.qml
deleted file mode 100644
index f630256d..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolseparator-custom.qml
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Window
-import QtQuick.Controls
-
-//! [file]
-ToolBar {
- RowLayout {
- anchors.fill: parent
-
- ToolButton {
- text: qsTr("Action 1")
- }
- ToolButton {
- text: qsTr("Action 2")
- }
-
- ToolSeparator {
- padding: vertical ? 10 : 2
- topPadding: vertical ? 2 : 10
- bottomPadding: vertical ? 2 : 10
-
- contentItem: Rectangle {
- implicitWidth: parent.vertical ? 1 : 24
- implicitHeight: parent.vertical ? 24 : 1
- color: "#c3c3c3"
- }
- }
-
- ToolButton {
- text: qsTr("Action 3")
- }
- ToolButton {
- text: qsTr("Action 4")
- }
-
- Item {
- Layout.fillWidth: true
- }
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolseparator.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolseparator.qml
deleted file mode 100644
index 514b97fa..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-toolseparator.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Window
-import QtQuick.Controls
-
-//! [1]
-ToolBar {
- RowLayout {
- anchors.fill: parent
-
- ToolButton {
- text: qsTr("Action 1")
- }
- ToolButton {
- text: qsTr("Action 2")
- }
-
- ToolSeparator {}
-
- ToolButton {
- text: qsTr("Action 3")
- }
- ToolButton {
- text: qsTr("Action 4")
- }
-
- ToolSeparator {}
-
- ToolButton {
- text: qsTr("Action 5")
- }
- ToolButton {
- text: qsTr("Action 6")
- }
-
- Item {
- Layout.fillWidth: true
- }
- }
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-custom.qml
deleted file mode 100644
index 7b40c974..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-custom.qml
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-Item {
-ToolTip {
- id: control
- text: qsTr("A descriptive tool tip of what the button does")
-
- contentItem: Text {
- text: control.text
- font: control.font
- color: "#21be2b"
- }
-
- background: Rectangle {
- border.color: "#21be2b"
- }
-}
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-hover.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-hover.qml
deleted file mode 100644
index 6d1ee4c4..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-hover.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-Button {
- text: qsTr("Button")
- hoverEnabled: true
-
- ToolTip.delay: 1000
- ToolTip.timeout: 5000
- ToolTip.visible: hovered
- ToolTip.text: qsTr("This tool tip is shown after hovering the button for a second.")
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-pressandhold.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-pressandhold.qml
deleted file mode 100644
index cea49553..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-pressandhold.qml
+++ /dev/null
@@ -1,39 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [1]
-Button {
- text: qsTr("Button")
-
- ToolTip.visible: pressed
- ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval
- ToolTip.text: qsTr("This tool tip is shown after pressing and holding the button down.")
-}
-//! [1]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-slider.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-slider.qml
deleted file mode 100644
index 5f408224..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip-slider.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Controls
-
-Item {
- id: root
- width: slider.width
- height: slider.height * 2.0
-
- Binding { target: slider.anchors; property: "centerIn"; value: root }
- Binding { target: slider.anchors; property: "verticalCenterOffset"; value: slider.height / 2 }
- Binding { target: slider; property: "pressed"; value: root.Window.active }
-
- //! [1]
- Slider {
- id: slider
- value: 0.5
-
- ToolTip {
- parent: slider.handle
- visible: slider.pressed
- text: slider.value.toFixed(1)
- }
- }
- //! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip.qml
deleted file mode 100644
index 2e5231dc..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tooltip.qml
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Controls
-
-Item {
- id: root
- width: 360
- height: button.height * 2
-
- property Button button: children[0]
-
- Binding { target: button; property: "down"; value: root.Window.active }
- Binding { target: button.anchors; property: "bottom"; value: root.bottom }
- Binding { target: button.anchors; property: "horizontalCenter"; value: root.horizontalCenter }
-
- //! [1]
- Button {
- text: qsTr("Save")
-
- ToolTip.visible: down
- ToolTip.text: qsTr("Save the active project")
- }
- //! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-custom.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-custom.qml
deleted file mode 100644
index 792e0e14..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-custom.qml
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [file]
-import QtQuick
-import QtQuick.Controls
-
-Tumbler {
- id: control
- model: 15
-
- background: Item {
- Rectangle {
- opacity: control.enabled ? 0.2 : 0.1
- border.color: "#000000"
- width: parent.width
- height: 1
- anchors.top: parent.top
- }
-
- Rectangle {
- opacity: control.enabled ? 0.2 : 0.1
- border.color: "#000000"
- width: parent.width
- height: 1
- anchors.bottom: parent.bottom
- }
- }
-
- delegate: Text {
- text: qsTr("Item %1").arg(modelData + 1)
- font: control.font
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- opacity: 1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)
- }
-
- Rectangle {
- anchors.horizontalCenter: control.horizontalCenter
- y: control.height * 0.4
- width: 40
- height: 1
- color: "#21be2b"
- }
-
- Rectangle {
- anchors.horizontalCenter: control.horizontalCenter
- y: control.height * 0.6
- width: 40
- height: 1
- color: "#21be2b"
- }
-}
-//! [file]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-listView.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-listView.qml
deleted file mode 100644
index 54ce78af..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-listView.qml
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [contentItem]
-Tumbler {
- id: tumbler
-
- contentItem: ListView {
- model: tumbler.model
- delegate: tumbler.delegate
-
- snapMode: ListView.SnapToItem
- highlightRangeMode: ListView.StrictlyEnforceRange
- preferredHighlightBegin: height / 2 - (height / tumbler.visibleItemCount / 2)
- preferredHighlightEnd: height / 2 + (height / tumbler.visibleItemCount / 2)
- clip: true
- }
-}
-//! [contentItem]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-pathView.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-pathView.qml
deleted file mode 100644
index 408b7479..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-pathView.qml
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-
-//! [contentItem]
-Tumbler {
- id: tumbler
-
- contentItem: PathView {
- id: pathView
- model: tumbler.model
- delegate: tumbler.delegate
- clip: true
- pathItemCount: tumbler.visibleItemCount + 1
- preferredHighlightBegin: 0.5
- preferredHighlightEnd: 0.5
- dragMargin: width / 2
-
- path: Path {
- startX: pathView.width / 2
- startY: -pathView.delegateHeight / 2
- PathLine {
- x: pathView.width / 2
- y: pathView.pathItemCount * pathView.delegateHeight - pathView.delegateHeight / 2
- }
- }
-
- property real delegateHeight: tumbler.availableHeight / tumbler.visibleItemCount
- }
-}
-//! [contentItem]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-timePicker.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-timePicker.qml
deleted file mode 100644
index d9edb2cb..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-tumbler-timePicker.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [tumbler]
-import QtQuick
-import QtQuick.Window
-import QtQuick.Controls
-
-Rectangle {
- width: frame.implicitWidth + 10
- height: frame.implicitHeight + 10
-
- function formatText(count, modelData) {
- var data = count === 12 ? modelData + 1 : modelData;
- return data.toString().length < 2 ? "0" + data : data;
- }
-
- FontMetrics {
- id: fontMetrics
- }
-
- Component {
- id: delegateComponent
-
- Label {
- text: formatText(Tumbler.tumbler.count, modelData)
- opacity: 1.0 - Math.abs(Tumbler.displacement) / (Tumbler.tumbler.visibleItemCount / 2)
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- font.pixelSize: fontMetrics.font.pixelSize * 1.25
- }
- }
-
- Frame {
- id: frame
- padding: 0
- anchors.centerIn: parent
-
- Row {
- id: row
-
- Tumbler {
- id: hoursTumbler
- model: 12
- delegate: delegateComponent
- }
-
- Tumbler {
- id: minutesTumbler
- model: 60
- delegate: delegateComponent
- }
-
- Tumbler {
- id: amPmTumbler
- model: ["AM", "PM"]
- delegate: delegateComponent
- }
- }
- }
-}
-//! [tumbler]
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-accent.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-accent.qml
deleted file mode 100644
index f429359e..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-accent.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-import QtQuick.Controls.Universal
-
-Pane {
- padding: 10
-
-//! [1]
-Button {
- text: qsTr("Button")
- highlighted: true
- Universal.accent: Universal.Orange
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-background.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-background.qml
deleted file mode 100644
index 558618e6..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-background.qml
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.Universal
-
-Pane {
- padding: 10
-
-//! [1]
-Pane {
- Universal.background: Universal.Steel
-
- Button {
- text: qsTr("Button")
- }
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-foreground.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-foreground.qml
deleted file mode 100644
index 39a292d8..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-foreground.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.Universal
-
-Pane {
- padding: 10
-
-//! [1]
-Button {
- text: qsTr("Button")
- Universal.foreground: Universal.Pink
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-theme.qml b/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-theme.qml
deleted file mode 100644
index b55bf188..00000000
--- a/src/quickcontrols2/doc/snippets/qtquickcontrols2-universal-theme.qml
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.Universal
-
-Pane {
- padding: 10
-
-//! [1]
-Pane {
- Universal.theme: Universal.Dark
-
- Button {
- text: qsTr("Button")
- }
-}
-//! [1]
-}
diff --git a/src/quickcontrols2/doc/src/external-pages.qdoc b/src/quickcontrols2/doc/src/external-pages.qdoc
deleted file mode 100644
index 05005798..00000000
--- a/src/quickcontrols2/doc/src/external-pages.qdoc
+++ /dev/null
@@ -1,36 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \externalpage https://doc.qt.io/qt-5/qtquickcontrols2-differences.html
- \title Qt 5.15: Qt Quick Controls vs Qt Quick Controls 1
-*/
-
-/*!
- \externalpage https://doc.qt.io/qtcreator/creator-project-creating.html#selecting-project-type
- \title Qt Creator: Project Types
-*/
diff --git a/src/quickcontrols2/doc/src/includes/customize-button-background.qdocinc b/src/quickcontrols2/doc/src/includes/customize-button-background.qdocinc
deleted file mode 100644
index 0acad02d..00000000
--- a/src/quickcontrols2/doc/src/includes/customize-button-background.qdocinc
+++ /dev/null
@@ -1,25 +0,0 @@
-//! [file]
-\qml
-import QtQuick
-import QtQuick.Controls
-
-ApplicationWindow {
- width: 400
- height: 400
- visible: true
-
- Button {
- id: button
- text: "A Special Button"
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- color: button.down ? "#d6d6d6" : "#f6f6f6"
- border.color: "#26282a"
- border.width: 1
- radius: 4
- }
- }
-}
-\endqml
-//! [file]
diff --git a/src/quickcontrols2/doc/src/includes/inputmethodhints.qdocinc b/src/quickcontrols2/doc/src/includes/inputmethodhints.qdocinc
deleted file mode 100644
index 73710e1e..00000000
--- a/src/quickcontrols2/doc/src/includes/inputmethodhints.qdocinc
+++ /dev/null
@@ -1,38 +0,0 @@
-//! [flags]
-The value is a bit-wise combination of flags or \c Qt.ImhNone if no hints are set.
-
-Flags that alter behavior are:
-
-\list
-\li Qt.ImhHiddenText - Characters should be hidden, as is typically used when entering passwords.
-\li Qt.ImhSensitiveData - Typed text should not be stored by the active input method
- in any persistent storage like predictive user dictionary.
-\li Qt.ImhNoAutoUppercase - The input method should not try to automatically switch to upper case
- when a sentence ends.
-\li Qt.ImhPreferNumbers - Numbers are preferred (but not required).
-\li Qt.ImhPreferUppercase - Upper case letters are preferred (but not required).
-\li Qt.ImhPreferLowercase - Lower case letters are preferred (but not required).
-\li Qt.ImhNoPredictiveText - Do not use predictive text (i.e. dictionary lookup) while typing.
-
-\li Qt.ImhDate - The text editor functions as a date field.
-\li Qt.ImhTime - The text editor functions as a time field.
-\endlist
-
-Flags that restrict input (exclusive flags) are:
-
-\list
-\li Qt.ImhDigitsOnly - Only digits are allowed.
-\li Qt.ImhFormattedNumbersOnly - Only number input is allowed. This includes decimal point and minus sign.
-\li Qt.ImhUppercaseOnly - Only upper case letter input is allowed.
-\li Qt.ImhLowercaseOnly - Only lower case letter input is allowed.
-\li Qt.ImhDialableCharactersOnly - Only characters suitable for phone dialing are allowed.
-\li Qt.ImhEmailCharactersOnly - Only characters suitable for email addresses are allowed.
-\li Qt.ImhUrlCharactersOnly - Only characters suitable for URLs are allowed.
-\endlist
-
-Masks:
-
-\list
-\li Qt.ImhExclusiveInputMask - This mask yields nonzero if any of the exclusive flags are used.
-\endlist
-//! [flags]
diff --git a/src/quickcontrols2/doc/src/includes/qquickcombobox.qdocinc b/src/quickcontrols2/doc/src/includes/qquickcombobox.qdocinc
deleted file mode 100644
index 5e19f5f1..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickcombobox.qdocinc
+++ /dev/null
@@ -1,6 +0,0 @@
-//! [functions-after-component-completion]
-
-\note This function can only be used after
-\l {Component::completed()}{Component.completed()} is emitted for the ComboBox.
-
-//! [functions-after-component-completion]
diff --git a/src/quickcontrols2/doc/src/includes/qquickcontrol-background.qdocinc b/src/quickcontrols2/doc/src/includes/qquickcontrol-background.qdocinc
deleted file mode 100644
index 02d92de0..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickcontrol-background.qdocinc
+++ /dev/null
@@ -1,13 +0,0 @@
-//! [notes]
-
-\note If the background item has no explicit size specified, it automatically
- follows the control's size. In most cases, there is no need to specify
- width or height for a background item.
-
-\note Most controls use the implicit size of the background item to calculate
-the implicit size of the control itself. If you replace the background item
-with a custom one, you should also consider providing a sensible implicit
-size for it (unless it is an item like \l Image which has its own implicit
-size).
-
-//! [notes]
diff --git a/src/quickcontrols2/doc/src/includes/qquickcontrol-focusreason.qdocinc b/src/quickcontrols2/doc/src/includes/qquickcontrol-focusreason.qdocinc
deleted file mode 100644
index b69e9e60..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickcontrol-focusreason.qdocinc
+++ /dev/null
@@ -1,15 +0,0 @@
-This property holds the reason of the last focus change.
-
-\note This property does not indicate whether the control has \l {Item::activeFocus}
- {active focus}, but the reason why the control either gained or lost focus.
-
-\value Qt.MouseFocusReason A mouse action occurred.
-\value Qt.TabFocusReason The Tab key was pressed.
-\value Qt.BacktabFocusReason A Backtab occurred. The input for this may include the Shift or Control keys; e.g. Shift+Tab.
-\value Qt.ActiveWindowFocusReason The window system made this window either active or inactive.
-\value Qt.PopupFocusReason The application opened/closed a pop-up that grabbed/released the keyboard focus.
-\value Qt.ShortcutFocusReason The user typed a label's buddy shortcut
-\value Qt.MenuBarFocusReason The menu bar took focus.
-\value Qt.OtherFocusReason Another reason, usually application-specific.
-
-\sa Item::activeFocus
diff --git a/src/quickcontrols2/doc/src/includes/qquickdial.qdocinc b/src/quickcontrols2/doc/src/includes/qquickdial.qdocinc
deleted file mode 100644
index 3370b3d8..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickdial.qdocinc
+++ /dev/null
@@ -1,13 +0,0 @@
-//! [inputMode]
-Dial supports three \l {inputMode}{input modes}: \c Dial.Circular,
-\c Dial.Horizontal and \c Dial.Vertical. The circular input mode operates on an
-absolute input system, where the position of the cursor within the dial
-directly reflects its value. The horizontal and vertical input modes use a
-relative input system, where changes in the cursor's position are "added" to
-the value of the dial.
-
-The following image illustrates the directions in which the various input modes
-track movement:
-
-\image qtquickcontrols2-dial-inputmode.png
-//! [inputMode]
diff --git a/src/quickcontrols2/doc/src/includes/qquickicon.qdocinc b/src/quickcontrols2/doc/src/includes/qquickicon.qdocinc
deleted file mode 100644
index beef5624..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickicon.qdocinc
+++ /dev/null
@@ -1,50 +0,0 @@
-//! [grouped-properties]
-\table
-\header
- \li Name
- \li Description
-\row
- \li name
- \li This property holds the name of the icon to use.
-
- The icon will be loaded from the platform theme. If the icon is found
- in the theme, it will always be used; even if \l icon.source is also set.
- If the icon is not found, \l icon.source will be used instead.
-
- For more information on theme icons, see \l {QIcon::fromTheme()}.
-\row
- \li source
- \li This property holds the name of the icon to use.
-
- The icon will be loaded as a regular image.
-
- If \l icon.name is set and refers to a valid theme icon, it will always
- be used instead of this property.
-\row
- \li width
- \li This property holds the width of the icon.
-
- The icon's width will never exceed this value, though it will
- shrink when necessary.
-\row
- \li height
- \li This property holds the height of the icon.
-
- The icon's height will never exceed this value, though it will
- shrink when necessary.
-\row
- \li color
- \li This property holds the color of the icon.
-
- The icon is tinted with the specified color, unless the color is
- set to \c "transparent".
-
-\row
- \li cache
- \li This property specifies whether the icon should be cached.
-
- The default value is true.
-
- This property was introduced in QtQuick.Controls 2.13.
-\endtable
-//! [grouped-properties]
diff --git a/src/quickcontrols2/doc/src/includes/qquickimaginestyle.qdocinc b/src/quickcontrols2/doc/src/includes/qquickimaginestyle.qdocinc
deleted file mode 100644
index f6fe5a97..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickimaginestyle.qdocinc
+++ /dev/null
@@ -1,57 +0,0 @@
-//! [conf]
-\table
- \header
- \li Variable
- \li Description
- \row
- \li \c Path
- \li Specifies the \l {imagine-path-attached-prop}{path} to the directory that contains
- the Imagine style assets. If not specified, the built-in assets are used.
-
- For example, to specify a path to a directory stored in the
- \l {The Qt Resource System}{resource system}:
-
- \badcode
- [Imagine]
- Path=:/imagine-assets
- \endcode
-
- To specify a relative path to a local directory:
-
- \badcode
- [Imagine]
- Path=imagine-assets
- \endcode
-
- \note Due to a technical limitation, the path should not be named
- \e "imagine" if it is relative to the \c qtquickcontrols2.conf file.
-\endtable
-//! [conf]
-
-//! [env]
-\table
- \header
- \li Variable
- \li Description
- \row
- \li \c QT_QUICK_CONTROLS_IMAGINE_PATH
- \li Specifies the path to the directory that contains the Imagine style assets.
- If not specified, the built-in assets are used.
-
- For example, to specify a path to a directory stored in the
- \l {The Qt Resource System}{resource system}:
-
- \badcode
- QT_QUICK_CONTROLS_IMAGINE_PATH=:/imagine-assets
- \endcode
-
- To specify a relative path to a local directory:
-
- \badcode
- QT_QUICK_CONTROLS_IMAGINE_PATH=imagine-assets
- \endcode
-
- \note Due to a technical limitation, the path should not be named
- \e "imagine" if it is relative to the \c qtquickcontrols2.conf file.
-\endtable
-//! [env]
diff --git a/src/quickcontrols2/doc/src/includes/qquickmaterialstyle.qdocinc b/src/quickcontrols2/doc/src/includes/qquickmaterialstyle.qdocinc
deleted file mode 100644
index 72c97bb6..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickmaterialstyle.qdocinc
+++ /dev/null
@@ -1,79 +0,0 @@
-//! [conf]
-\table
- \header
- \li Variable
- \li Description
- \row
- \li \c Theme
- \li Specifies the default \l {material-theme-attached-prop}{Material theme}.
- The value can be one of the available themes, for example \c "Dark".
- \row
- \li \c Variant
- \li Specifies the Material variant. The Material Design has two
- variants: a normal variant designed for touch devices, and a dense
- variant for desktop. The dense variant uses smaller sizes for
- controls and their fonts.
-
- The value can be \c "Normal" or \c "Dense".
- \row
- \li \c Accent
- \li Specifies the default \l {material-accent-attached-prop}{Material accent color}.
- The value can be any \l {colorbasictypedocs}{color}, but it is recommended to use
- one of the \l {pre-defined Material colors}, for example \c "Teal".
- \row
- \li \c Primary
- \li Specifies the default \l {material-primary-attached-prop}{Material primary color}.
- The value can be any \l {colorbasictypedocs}{color}, but it is recommended to use
- one of the \l {pre-defined Material colors}, for example \c "BlueGrey".
- \row
- \li \c Foreground
- \li Specifies the default \l {material-foreground-attached-prop}{Material foreground color}.
- The value can be any \l {colorbasictypedocs}{color}, or one of the \l {pre-defined Material colors},
- for example \c "Brown".
- \row
- \li \c Background
- \li Specifies the default \l {material-background-attached-prop}{Material background color}.
- The value can be any \l {colorbasictypedocs}{color}, or one of the \l {pre-defined Material colors},
- for example \c "Grey".
-\endtable
-//! [conf]
-
-//! [env]
-\table
- \header
- \li Variable
- \li Description
- \row
- \li \c QT_QUICK_CONTROLS_MATERIAL_THEME
- \li Specifies the default \l {material-theme-attached-prop}{Material theme}.
- The value can be one of the available themes, for example \c "Dark".
- \row
- \li \c QT_QUICK_CONTROLS_MATERIAL_VARIANT
- \li Specifies the Material variant. The Material Design has two
- variants: a normal variant designed for touch devices, and a dense
- variant for desktop. The dense variant uses smaller sizes for
- controls and their fonts.
-
- The value can be \c "Normal" or \c "Dense".
- \row
- \li \c QT_QUICK_CONTROLS_MATERIAL_ACCENT
- \li Specifies the default \l {material-accent-attached-prop}{Material accent color}.
- The value can be any \l {colorbasictypedocs}{color}, but it is recommended to use
- one of the \l {pre-defined Material colors}, for example \c "Teal".
- \row
- \li \c QT_QUICK_CONTROLS_MATERIAL_PRIMARY
- \li Specifies the default \l {material-primary-attached-prop}{Material primary color}.
- The value can be any \l {colorbasictypedocs}{color}, but it is recommended to use
- one of the \l {pre-defined Material colors}, for example \c "BlueGrey".
- \row
- \li \c QT_QUICK_CONTROLS_MATERIAL_FOREGROUND
- \li Specifies the default \l {material-foreground-attached-prop}{Material foreground color}.
- The value can be any \l {colorbasictypedocs}{color}, or one of the \l {pre-defined Material colors},
- for example \c "Brown".
- \row
- \li \c QT_QUICK_CONTROLS_MATERIAL_BACKGROUND
- \li Specifies the default \l {material-background-attached-prop}{Material background color}.
- The value can be any \l {colorbasictypedocs}{color}, or one of the \l {pre-defined Material colors},
- for example \c "Grey".
-\endtable
-//! [env]
diff --git a/src/quickcontrols2/doc/src/includes/qquickoverlay-popup-parent.qdocinc b/src/quickcontrols2/doc/src/includes/qquickoverlay-popup-parent.qdocinc
deleted file mode 100644
index 5562f6a0..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickoverlay-popup-parent.qdocinc
+++ /dev/null
@@ -1,20 +0,0 @@
-The following example uses the attached \l {Overlay::overlay}{Overlay.overlay}
-property to position a popup in the center of the window, despite the position
-of the button that opens the popup:
-
-\code
-Button {
- onClicked: popup.open()
-
- Popup {
- id: popup
-
- parent: Overlay.overlay
-
- x: Math.round((parent.width - width) / 2)
- y: Math.round((parent.height - height) / 2)
- width: 100
- height: 100
- }
-}
-\endcode
diff --git a/src/quickcontrols2/doc/src/includes/qquickpopup-padding.qdocinc b/src/quickcontrols2/doc/src/includes/qquickpopup-padding.qdocinc
deleted file mode 100644
index 31f5d2db..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickpopup-padding.qdocinc
+++ /dev/null
@@ -1,10 +0,0 @@
-//! [padding]
-
-The padding properties are used to control the geometry of the
-\l {contentItem}{content item}.
-
-Popup uses the same approach to padding as \l {Control::padding}{Control}.
-For a visual explanation of the padding system, see the \l {Control Layout}
-section of the documentation.
-
-//! [padding]
diff --git a/src/quickcontrols2/doc/src/includes/qquickstackview.qdocinc b/src/quickcontrols2/doc/src/includes/qquickstackview.qdocinc
deleted file mode 100644
index 20c9bdc3..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickstackview.qdocinc
+++ /dev/null
@@ -1,5 +0,0 @@
-//! [pop-ownership]
-Only items that StackView created itself (from a \l Component or \l [QML]
-url) will be destroyed when popped. See \l {Item Ownership} for more
-information.
-//! [pop-ownership]
diff --git a/src/quickcontrols2/doc/src/includes/qquickswipedelegate-interaction.qdocinc b/src/quickcontrols2/doc/src/includes/qquickswipedelegate-interaction.qdocinc
deleted file mode 100644
index 05aeadb6..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickswipedelegate-interaction.qdocinc
+++ /dev/null
@@ -1,5 +0,0 @@
-Both interactive and non-interactive items can be used here. Normal
-event handling rules apply; if an interactive control like \l Button
-is used, interaction signals of SwipeDelegate such as
-\l {AbstractButton::}{clicked()} will not get emitted if the button
-is clicked.
diff --git a/src/quickcontrols2/doc/src/includes/qquickswitch.qdocinc b/src/quickcontrols2/doc/src/includes/qquickswitch.qdocinc
deleted file mode 100644
index 985f85d9..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickswitch.qdocinc
+++ /dev/null
@@ -1,28 +0,0 @@
-//! [position]
-
-This property holds the logical position of the thumb indicator.
-
-The position is expressed as a fraction of the indicator's size, in the range
-\c 0.0 - \c 1.0. The position can be used for example to determine whether
-the thumb has been dragged past the halfway point. For visualizing a thumb
-indicator, the right-to-left aware \l visualPosition should be used instead.
-
-\sa visualPosition
-
-//! [position]
-
-
-//! [visualPosition]
-
-This property holds the visual position of the thumb indicator.
-
-The position is expressed as a fraction of the indicator's size, in the range
-\c 0.0 - \c 1.0. When the control is \l {Control::mirrored}{mirrored}, the
-value is equal to \c {1.0 - position}. This makes the value suitable for
-visualizing the thumb indicator taking right-to-left support into account.
-In order to for example determine whether the thumb has been dragged past
-the halfway point, the logical \l position should be used instead.
-
-\sa position
-
-//! [visualPosition]
diff --git a/src/quickcontrols2/doc/src/includes/qquickuniversalstyle.qdocinc b/src/quickcontrols2/doc/src/includes/qquickuniversalstyle.qdocinc
deleted file mode 100644
index a7ecbaef..00000000
--- a/src/quickcontrols2/doc/src/includes/qquickuniversalstyle.qdocinc
+++ /dev/null
@@ -1,53 +0,0 @@
-//! [conf]
-\table
- \header
- \li Variable
- \li Description
- \row
- \li \c Theme
- \li Specifies the default \l {universal-theme-attached-prop}{Universal theme}.
- The value can be one of the available themes, for example \c "Dark".
- \row
- \li \c Accent
- \li Specifies the default \l {universal-accent-attached-prop}{Universal accent color}.
- The value can be any \l {colorbasictypedocs}{color}, but it is recommended to use
- one of the \l {pre-defined Universal colors}, for example \c "Violet".
- \row
- \li \c Foreground
- \li Specifies the default \l {universal-foreground-attached-prop}{Universal foreground color}.
- The value can be any \l {colorbasictypedocs}{color}, or one of the \l {pre-defined Universal colors},
- for example \c "Brown".
- \row
- \li \c Background
- \li Specifies the default \l {universal-background-attached-prop}{Universal background color}.
- The value can be any \l {colorbasictypedocs}{color}, or one of the \l {pre-defined Universal colors},
- for example \c "Steel".
-\endtable
-//! [conf]
-
-//! [env]
-\table
- \header
- \li Variable
- \li Description
- \row
- \li \c QT_QUICK_CONTROLS_UNIVERSAL_THEME
- \li Specifies the default \l {universal-theme-attached-prop}{Universal theme}.
- The value can be one of the available themes, for example \c "Dark".
- \row
- \li \c QT_QUICK_CONTROLS_UNIVERSAL_ACCENT
- \li Specifies the default \l {universal-accent-attached-prop}{Universal accent color}.
- The value can be any \l {colorbasictypedocs}{color}, but it is recommended to use
- one of the \l {pre-defined Universal colors}, for example \c "Violet".
- \row
- \li \c QT_QUICK_CONTROLS_UNIVERSAL_FOREGROUND
- \li Specifies the default \l {universal-foreground-attached-prop}{Universal foreground color}.
- The value can be any \l {colorbasictypedocs}{color}, or one of the \l {pre-defined Universal colors},
- for example \c "Brown".
- \row
- \li \c QT_QUICK_CONTROLS_UNIVERSAL_BACKGROUND
- \li Specifies the default \l {universal-background-attached-prop}{Universal background color}.
- The value can be any \l {colorbasictypedocs}{color}, or one of the \l {pre-defined Universal colors},
- for example \c "Steel".
-\endtable
-//! [env]
diff --git a/src/quickcontrols2/doc/src/qt6-changes.qdoc b/src/quickcontrols2/doc/src/qt6-changes.qdoc
deleted file mode 100644
index efc1b84b..00000000
--- a/src/quickcontrols2/doc/src/qt6-changes.qdoc
+++ /dev/null
@@ -1,305 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols-changes-qt6.html
- \title Changes to Qt Quick Controls
- \ingroup changes-qt-5-to-6
- \brief Migrate Qt Quick Controls to Qt 6.
-
- Qt 6 is a result of the conscious effort to make the framework more
- efficient and easy to use.
-
- We try to maintain compatibility for all the public APIs in each release.
- Some changes were inevitable in an effort to make Qt a better framework.
-
- In this topic we summarize those changes in Qt Quick Controls, and provide
- guidance to handle them.
-
- \section1 Migrating from Qt Quick Controls 1
-
- Qt Quick Controls 1 was deprecated in Qt 5.11 and is removed from
- Qt 6.0. Use Qt Quick Controls (previously known as Qt Quick Controls 2)
- instead. For more information, refer to the
- \l{Qt 5.15: Qt Quick Controls vs Qt Quick Controls 1} topic in the Qt 5
- documentation.
-
- \section1 Type registration changes
-
- Qt Quick Controls has undergone some large, mostly internal changes in Qt
- 6. By making use of the improved type registration introduced in Qt 5.15,
- we pave the way for compilation of the module's QML files to C++ and enable
- tooling to become more effective. In particular, Qt Creator's QML code
- model should have a more complete picture of types, making its completion
- and error checking of Qt Quick Controls code more reliable. Static analysis
- tools like qmllint and qmlformat also benefit by becoming aware of the
- types that are now declared at compile time in C++.
-
- As a result of these changes, some things are done a little differently.
-
- \section2 Custom styles are now proper QML modules
-
- To enable compile time type registration, each Qt Quick Controls style is
- now a proper QML module. Previously, a single \c Button.qml was sufficient
- to create your own style. While convenient, this required some non-standard
- API, which in turn required adaptation in tooling like Qt Designer.
-
- Now, all QML types that a style implements must be declared in that style's
- qmldir file:
-
- \code
- module MyStyle
- Button 1.0 Button.qml
- \endcode
-
- \omit
- TODO: Once we have documentation for the CMake function qt6_add_qml_module,
- this would be a good place to link to it, stating that you don't have to
- manually write the qmldir files.
- \endomit
-
- By unifying this with the rest of the QML world, styles become more
- familiar to developers and hopefully easier to understand for beginners. As
- a consequence, the following API had to be removed:
-
- \list
- \li QQuickStyle::addStylePath()
- \li QQuickStyle::availableStyles()
- \li QQuickStyle::path()
- \li QQuickStyle::stylePathList()
- \li QT_QUICK_CONTROLS_STYLE_PATH
- \endlist
-
- Now that the styles are required to be found in the QML engine's import
- path like any other QML module, it is no longer necessary or possible to
- support this API.
-
- \section3 Style names
-
- In addition, there is now only one valid, case-sensitive form for style
- names: "Material", "MyStyle", and so on. That is: the style name must
- exactly match the name of the QML module. This also applies to file
- selectors, where previously, all style names were lower case. For example,
- where the following was a valid structure for a Qt 5 project:
-
- \badcode
- MyProject
- ├── main.qml
- ├── HomePage.qml
- └── +material
- └───HomePage.qml
- \endcode
-
- In Qt 6, \c +material becomes \c +Material:
-
- \badcode
- MyProject
- ├── main.qml
- ├── HomePage.qml
- └── +Material
- └───HomePage.qml
- \endcode
-
- All of the existing ways to \l {Using Styles in Qt Quick Controls}{run an
- application with a specific style} are still supported.
-
- \section2 Runtime and compile time style selection
-
- Importing a style now has extra meaning due to the way that imports work
- internally. Previously, importing \c QtQuick.Controls would register the
- control types from the current style with the QML engine:
-
- \qml
- import QtQuick.Controls
- \endqml
-
- We refer to this as runtime style selection, as the style is selected at
- runtime.
-
- Explicitly importing \c QtQuick.Controls.Material would then simply expose
- any extra API provided by that style (for example, the attached Material
- type):
-
- \qml
- import QtQuick.Controls.Material
- \endqml
-
- Now, explicitly importing a style does both.
-
- This effectively means that the control types (like Button) from the last
- imported style will be used. We refer to this as compile time style
- selection.
-
- This has implications for existing code. Namely, if your application
- supports more than one style, move these imports into their own QML files
- that are file-selected.
-
- For example, if you have the following \c main.qml:
-
- \qml
- import QtQuick.Controls
- import QtQuick.Controls.Material
- import QtQuick.Controls.Universal
-
- ApplicationWindow {
- width: 600
- height: 400
- visible: true
-
- Material.theme: darkMode ? Material.Dark : Material.Light
- Universal.theme: darkMode ? Universal.Dark : Universal.Light
-
- // Child items, etc.
- }
- \endqml
-
- You can move the common code into a "base" component:
-
- \qml
- // MainWindow.qml
-
- import QtQuick.Controls
-
- ApplicationWindow {}
- \endqml
-
- Then, add a \c +Material subdirectory, and in it, add the Material-specific code into \c MainWindow.qml:
-
- \qml
- // +Material/MainWindow.qml
-
- import QtQuick.Controls.Material
-
- ApplicationWindow {
- Material.theme: darkMode ? Material.Dark : Material.Light
- }
- \endqml
-
- Do the same for Universal:
-
- \qml
- // +Universal/MainWindow.qml
-
- import QtQuick.Controls.Universal
-
- ApplicationWindow {
- Universal.theme: darkMode ? Universal.Dark : Universal.Light
- }
- \endqml
-
- Then, in \c main.qml:
-
- \qml
- import QtQuick.Controls
-
- MainWindow {
- width: 600
- height: 400
- visible: true
-
- // Child items, etc.
- }
- \endqml
-
- See also: \l {Using File Selectors with Qt Quick Controls}.
-
- \section1 Default Style
-
- The Default style was renamed to "Basic", as it is no longer the default
- style. Instead, the default style is now chosen based on the platform
- that Qt was built for:
-
- \list
- \li Android: \l {Material Style}
- \li Linux: \l {Fusion Style}
- \li macOS: \macos Style
- \li Windows: Windows Style
- \li All other platforms: \l {Basic Style}
- \endlist
-
- Therefore, applications that didn't specify a style in Qt 5 and have customized
- controls should \l {Using Styles in Qt Quick Controls}{explicitly specify}
- the Basic style in Qt 6 to ensure that those controls look and behave as
- they did with Qt 5.
-
- \section1 Palette
-
- The palette API was moved to QQuickItem. The various APIs that use palettes
- in Qt Quick Controls are unchanged.
-
- \section1 Controls
-
- \section2 ApplicationWindow
-
- The deprecated overlay properties and attached API were removed. Use the
- \l Overlay attached type instead.
-
- \section2 ComboBox
-
- The \l {ComboBox::}{pressed} property is now read-only. To modify the
- visual pressed state of a ComboBox, use the \l {ComboBox::}{down} property
- instead.
-
- \section2 Container
-
- The deprecated \c removeItem(var) function was removed.
- \l {Container::}{removeItem(Item)} or \l {Container::}{takeItem(int)} can
- be used instead.
-
- \section2 Dialog
-
- \l {Dialog}'s \l {Dialog::}{accepted()} and \l {Dialog::}{rejected()}
- signals are now emitted before \l {Popup::}{closed()} when calling
- \l {Dialog::}{done()}, \l {Dialog::}{accept()} and \l {Dialog::}{reject()}.
-
- \section2 Menu
-
- The deprecated \c removeItem(var) function was removed.
- \l {Menu::}{removeItem(Item)} or \l {Menu::}{takeItem(int)} can be used
- instead.
-
- \section2 ToolTip
-
- \l {ToolTip}'s timeout now begins only after \l {Popup::}{opened()} has
- been emitted. This results in tooltips with enter transitions being visible
- for the entire duration of the timeout property. This means that they are
- visible slightly longer than they were before, so it may be worthwhile to
- visually check tooltips in your application and adjust timeouts if
- necessary.
-
- \section2 StackView
-
- The StackView.Transition enum value was deprecated. The operation argument
- can be omitted in order to use the default transition for any given
- operation.
-
- \section2 Tumbler
-
- \l {Item::}{implicitWidth} and \l {Item::}{implicitHeight} must now be
- provided for \l {Tumbler}'s \l {Control::}{contentItem}, making it
- consistent with all other controls.
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-basic.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-basic.qdoc
deleted file mode 100644
index ee8d3ce4..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-basic.qdoc
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-basic.html
- \title Basic Style
-
- The Basic style is a basic all-round style.
-
- The Basic style is a simple and light-weight style that offers the maximum
- performance for Qt Quick Controls. It is built with a minimal amount of Qt
- Quick primitives, and keeps animations and transitions to the minimum.
-
- \image qtquickcontrols2-basic.png
-
- The style is selected by default when running Qt Quick Controls applications.
- It is built into the module's resources, so by default it is shipped with
- any application that depends on the Qt Quick Controls module
-
- \note The Basic style is used as a fallback for other styles. If a style
- does not implement a certain control, the Basic style implementation of
- that control is selected.
-
- \b {See also} \l {Material Style}, \l {Universal Style}
-
- \section1 Related Information
-
- \list
- \li \l{Styling Qt Quick Controls}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-buttons.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-buttons.qdoc
deleted file mode 100644
index 6a4c5926..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-buttons.qdoc
+++ /dev/null
@@ -1,191 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-buttons.html
- \title Button Controls
- \ingroup qtquickcontrols2-guidelines
- \brief Guidelines for button controls
-
- Qt Quick Controls offers a selection of button-like controls.
-
- \annotatedlist qtquickcontrols2-buttons
-
- Each type of button has its own specific use case. The following
- sections offer guidelines for choosing the appropriate type of button,
- depending on the use case.
-
- \section1 Button Control
-
- \l Button is a clickable control that starts an action, or opens or
- closes a popup. A button usually has a text label but it can also
- contain an icon.
-
- Button is a very suitable control when a popup or dialog needs
- to perform an action. The most common examples are Apply, Cancel,
- Save, Close and Help.
-
- \image qtquickcontrols2-button.gif
-
- Recommendations:
-
- \list
- \li The button's text should be a verb describing the action, or a noun matching
- the title of the popup that will be opened.
- \li Don't use a button to set state. \l Switch is more suitable for that.
- \li Use the default font unless you have UI guidelines specifying otherwise.
- \li If the text is localized, consider the influence of a longer text on the layout.
- \endlist
-
- \b {See also} \l Button and \l AbstractButton
-
- \section1 CheckBox Control
-
- \image qtquickcontrols2-checkbox.gif
-
- \l CheckBox is used to build multi-selection option lists. Any number of
- options can be selected, including none, but the options should
- not be mutually exclusive.
-
- Use a single CheckBox for a yes/no choice, such as when you have
- to accept the terms of service agreement in a form.
-
- For a single yes/no choice, it is also possible to use a switch. If the choice
- concerns an option, it is best to use a CheckBox. If it concerns action to
- be taken, a switch is recommended.
-
- When options can be grouped, you can use a partially checked CheckBox to
- represent the whole group. Use the checkbox's
- \l {CheckBox::checkState}{partially checked state} when a user selects
- some, but not all, sub-items in the group.
-
- The three availables check states are: checked, partially checked and
- unchecked.
-
- The checkable options are often listed vertically.
-
- Recommendations:
- \list
- \li The checkbox label should be a statement that the check mark makes true,
- and that the absence of a check mark makes false.
- \li The checkbox label should not contain a negative statement.
- \li Use the default font, unless you have UI guidelines specifying otherwise.
- \li If the text is localized, consider the influence of a longer text on the layout.
- \endlist
-
- \b {See also} \l CheckBox
-
- \section1 DelayButton Control
-
- \l DelayButton is a button that incorporates a delay before triggering an action.
- This delay prevents accidental presses.
-
- \image qtquickcontrols2-delaybutton.gif
-
- Recommendations:
- \list
- \li Use in touch user interfaces.
- \li Use for actions that must be triggered with care.
- \endlist
-
- \b {See also} \l Button and \l AbstractButton
-
- \section1 RadioButton Control
-
- \image qtquickcontrols2-radiobutton.gif
-
- \l RadioButton is used to select only one option from a set of options.
- Selecting one option automatically deselects the one selected before.
-
- If there are only two mutually exclusive options, combine them into a
- single checkbox or a switch.
-
- Recommendations:
-
- \list
- \li Limit the label text to one line.
- \li Ensure that a sensible default option is checked.
- \li List RadioButton options vertically.
- \li If the text is localized, consider the influence of a longer text on the layout.
- \li Use the default font, unless you have UI guidelines that specify otherwise.
- \li Just like with CheckBox, do not make the list too large.
- \li In order to avoid confusion, do not put two groups of radio buttons next to each
- other.
- \endlist
-
- \b {See also} \l RadioButton
-
- \section1 RoundButton Control
-
- \l RoundButton is a clickable control that starts an action, or opens or
- closes a popup. A round button with a square image icon or one-letter font
- icon is circular. A circular RoundButton takes less space than a normal
- \l Button, and can also be used as a floating action button.
-
- \image qtquickcontrols2-roundbutton.png
-
- Recommendations:
-
- \list
- \li Keep labels short and concise.
- \li If the text is localized, consider the influence of a longer text on the layout.
- \endlist
-
- \b {See also} \l RoundButton
-
- \section1 Switch Control
-
- \image qtquickcontrols2-switch.png
-
- \l Switch represents a physical switch that allows users to choose between an "on"
- or "off" state.
- Use a switch for binary operations that take effect immediately after it has been
- switched on. For example, a switch to turn WIFI on or off.
-
- Recommendations:
-
- \list
- \li Keep labels short and concise.
- \li If the text is localized, consider the influence of a longer text on the layout.
- \endlist
-
- \b {See also} \l Switch
-
- \section1 ToolButton Control
-
- \image qtquickcontrols2-toolbutton.png
-
- \l ToolButton is nearly identical to \l Button, but it has a graphical
- appearance that makes it more suitable for insertion into a \l ToolBar.
-
- \b {See also} \l ToolButton
-
- \section1 Related Information
- \list
- \li \l {Qt Quick Controls Guidelines}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-configuration.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-configuration.qdoc
deleted file mode 100644
index 8ac2b275..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-configuration.qdoc
+++ /dev/null
@@ -1,204 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-configuration.html
- \keyword Qt Quick Controls Configuration File
- \title Qt Quick Controls Configuration File
- \keyword Qt Quick Controls 2 Configuration File
-
- Qt Quick Controls support a special configuration file, \c qtquickcontrols2.conf,
- which is built into an application's resources.
-
- The configuration file can specify the preferred style and certain style-specific
- attributes. The following example specifies that the preferred style is the \l {Material style}.
- Furthermore, when the application is run with the Material style, its theme is light and the
- accent and primary colors are teal and blue grey, respectively. However, if the application
- is run with the \l {Universal style} instead, the accent color is red and the appropriate theme
- is chosen based on the system theme colors.
-
- \code
- [Controls]
- Style=Material
-
- [Universal]
- Theme=System
- Accent=Red
-
- [Material]
- Theme=Light
- Accent=Teal
- Primary=BlueGrey
- \endcode
-
- It is possible to specify a custom location for the configuration file with
- the \l {Supported Environment Variables in Qt Quick Controls}
- {QT_QUICK_CONTROLS_CONF} environment variable.
-
- \section1 Controls Section
-
- The following values can be specified in a \c Controls section of the
- configuration file:
-
- \table
- \header
- \li Variable
- \li Description
- \row
- \li \c Style
- \li Specifies the style to run the application with.
- The value can be the name of one of the \l {Available Styles}{built-in styles}
- or a \l {Creating a Custom Style}{custom style}.
- \row
- \li \c FallbackStyle
- \li Specifies the style to use for controls that are not implemented.
- The style must be one of the \l {Available Styles}{built-in styles}.
- By default, the \l {Basic Style}{Basic} style is used.
- \endtable
-
- \section1 Imagine Section
-
- The following table lists values that can be used to configure the
- \l {Imagine style} in an \c Imagine section of the configuration file:
-
- \include qquickimaginestyle.qdocinc conf
-
- \section1 Material Section
-
- The following table lists values that can be used to configure the
- \l {Material style} in a \c Material section of the configuration file:
-
- \include qquickmaterialstyle.qdocinc conf
-
- \section1 Universal Section
-
- The following table lists values that can be used to configure the
- \l {Universal style} in a \c Universal section of the configuration file:
-
- \include qquickuniversalstyle.qdocinc conf
-
- \section1 Font Configuration
-
- The default \l {Control::font}{font} can be specified in a \c Font sub-group
- in each style's section in the configuration file. The \c Font sub-group can
- be defined in two alternative ways:
-
- \code
- [Basic]
- Font\Family=Open Sans
- Font\PixelSize=20
-
- [Material\Font]
- Family=Open Sans
- PixelSize=20
- \endcode
-
- Supported font attributes:
- \table
- \header
- \li Variable
- \li Description
- \row
- \li \c Family
- \li The \l {QFont::family}{font family}.
- \row
- \li \c PointSize
- \li The \l {QFont::pointSizeF}{point size}.
- \row
- \li \c PixelSize
- \li The \l {QFont::pixelSize}{pixel size}.
- \row
- \li \c StyleHint
- \li The \l {QFont::styleHint}{style hint}.
- Available values: \c SansSerif, \c Helvetica, \c Serif, \c Times, \c TypeWriter, \c Courier,
- \c OldEnglish, \c Decorative, \c Monospace, \c Fantasy, \c Cursive.
- \row
- \li \c Weight
- \li The \l {QFont::}{weight}. Qt uses a weighting scale from \c 1 to \c 1000 compatible with OpenType. A weight of \c 1 will be thin,
- whilst \c 1000 will be extremely black.
- Available pre-defined weights: \c Thin (100), \c ExtraLight (200), \c Light (300), \c Normal (400),
- \c Medium (500), \c DemiBold (600), \c Bold (700), \c ExtraBold (800),
- \c Black (900).
- \row
- \li \c Style
- \li The \l {QFont::}{style}.
- Available values: \c StyleNormal, \c StyleItalic, \c StyleOblique.
- \endtable
-
- \section1 Palette Configuration
-
- The default \c palette can be configured for each style using the
- \c Palette sub-group in the configuration file. The \c Palette sub-group can be
- defined in two alternative ways:
-
- \code
- [Fusion]
- Palette\Window=#dedede
- Palette\WindowText=#212121
- \endcode
-
- or:
- \code
- [Fusion\Palette]
- Window=#dedede
- WindowText=#212121
- \endcode
-
- See \l [QtQuick]{Palette} QML type for more information.
-
- \section1 Using the Configuration File in a Project
-
- In order to make it possible for Qt Quick Controls to find the configuration file,
- it must be built into application's resources using the \l {The Qt Resource System}.
- Here's an example \c .qrc file:
-
- \code
- <!DOCTYPE RCC><RCC version="1.0">
- <qresource prefix="/">
- <file>qtquickcontrols2.conf</file>
- </qresource>
- </RCC>
- \endcode
-
- \note Qt Quick Controls uses a file selector to load the configuration file. It
- is possible to provide a different configuration file for different platforms and
- locales. See \l QFileSelector documentation for more details.
-
- Finally, the \c .qrc file must be listed in the application's \c .pro file so that
- the build system knows about it. For example:
-
- \code
- RESOURCES = application.qrc
- \endcode
-
- \section1 Related Information
-
- \list
- \li \l{Styling Qt Quick Controls}
- \li \l{Supported Environment Variables in Qt Quick Controls}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-containers.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-containers.qdoc
deleted file mode 100644
index 81e24c26..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-containers.qdoc
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-containers.html
- \title Container Controls
- \ingroup qtquickcontrols2-guidelines
- \brief Guidelines for container controls
-
- Qt Quick Controls offers a selection of container-like controls.
-
- \annotatedlist qtquickcontrols2-containers
-
- Each type of container can be used to group a set of controls together.
- The following sections offer guidelines for choosing the appropriate type
- of container, depending on the use case.
-
- \section1 ApplicationWindow Control
-
- \image qtquickcontrols2-applicationwindow-wireframe.png
-
- \l ApplicationWindow creates the root window of an application, and makes
- it easy to add an optional header and footer to that window.
-
- \section1 Frame Control
-
- \image qtquickcontrols2-frame.png
-
- \l Frame is used to layout a logical group of controls together, within
- a visual frame.
-
- \section1 GroupBox Control
-
- \image qtquickcontrols2-groupbox.png
-
- \l GroupBox is used to layout a logical group of controls together,
- within a titled visual frame.
-
- \section1 Page Control
-
- \image qtquickcontrols2-page-wireframe.png
-
- \l Page provides page-specific header and footer items.
- It is perfectly possible to use ApplicationWindow for setting the header
- and the footer, but if you have a header and footer which varies per
- screen, then it is better to use \l Page.
-
- \section1 Pane Control
-
- \image qtquickcontrols2-pane.png
-
- \l Pane provides a background color that matches with the application
- style and theme. Pane does not provide a layout of its own, but requires
- you to position its contents, for instance by using a \l RowLayout or
- a \l ColumnLayout.
-
- \section1 ScrollView Control
-
- \image qtquickcontrols2-scrollview-wireframe.png
-
- \l ScrollView provides scrolling for user-defined content.
-
- \section1 StackView Control
-
- \image qtquickcontrols2-stackview-wireframe.png
-
- \l StackView organizes content pages into a stack using a last-in-first-out
- principle: the last item to be "pushed" onto the stack is the first one to
- be removed, and the top-most item is always the one that is visible.
-
- \section1 SwipeView Control
-
- \image qtquickcontrols2-swipeview-wireframe.png
-
- \l SwipeView organizes content pages into a swipable strip.
-
- \section1 TabBar Control
-
- \image qtquickcontrols2-tabbar-wireframe.png
-
- \l TabBar organizes content pages into tabs.
-
- \section1 ToolBar Control
-
- \image qtquickcontrols2-toolbar.png
-
- \l ToolBar is a container of application-wide and context-sensitive
- actions and controls.
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-cppclasses.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-cppclasses.qdoc
deleted file mode 100644
index 293ac6de..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-cppclasses.qdoc
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \module QtQuickControls2
- \keyword Qt Quick Controls C++ Classes
- \title Qt Quick Controls C++ Classes
- \keyword Qt Quick Controls 2 C++ Classes
- \ingroup modules
- \qtcmakepackage QuickControls2
- \qtvariable quickcontrols2
-
- \brief Provides classes for setting up the controls from C++.
-
- The C++ types can be included into your application using the following
- include statement:
-
- \code
- #include <QtQuickControls2>
- \endcode
-
- \note If you are using a few classes from this module, we recommend including
- those specific classes only instead of the module.
-
- To link against the corresponding C++ libraries, add the following to your
- qmake project file:
-
- \code
- QT += quickcontrols2
- \endcode
-
- The \l{Qt Quick Controls} page contains information about how to use the
- module.
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-customize.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-customize.qdoc
deleted file mode 100644
index ba62425f..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-customize.qdoc
+++ /dev/null
@@ -1,986 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-customize.html
- \keyword Customizing Qt Quick Controls 2
- \title Customizing Qt Quick Controls
- \brief A set of UI controls to create user interfaces in Qt Quick
-
- Qt Quick Controls consist of a hierarchy (tree) of items. In order to
- provide a custom look and feel, the default QML implementation of each
- item can be replaced with a custom one.
-
- \section1 Customizing a Control
-
- Sometimes you'll want to create a "one-off" look for a specific part of
- your UI, and use a complete style everywhere else. Perhaps you're happy
- with the style you're using, but there's a certain button that has some
- special significance.
-
- The first way to create this button is to simply define it in-place,
- wherever it is needed. For example, perhaps you're not satisfied with the
- Basic style's Button having square corners. To make them rounded, you
- can override the \l {Control::}{background} item and set the radius
- property of Rectangle:
-
- \include customize-button-background.qdocinc file
-
- The second way to create the button is good if you plan to use your rounded
- button in several places. It involves moving the code into its own QML file
- within your project.
-
- For this approach, we'll copy the background code from the Basic style's
- \c Button.qml. This file can be found in the following path in your Qt
- installation:
-
- \c {$QTDIR/qml/QtQuick/Controls/Basic/Button.qml}
-
- After doing that, we'll simply add the following line:
-
- \code
- radius: 4
- \endcode
-
- To avoid confusion with the controls in the
- module itself, we'll call the file \c MyButton.qml. To use the control in
- your application, refer to it by its filename:
-
- \qml
- import QtQuick.Controls
-
- ApplicationWindow {
- MyButton {
- text: qsTr("A Special Button")
- }
- }
- \endqml
-
- The third way to create the button is a bit more structured, both in terms
- of where the file sits in the file system and how it is used in QML. First,
- copy an existing file as you did above, but this time, put it into a
- subfolder in your project named (for example) \c controls. To use the
- control, first import the folder into a namespace:
-
- \qml
- import QtQuick.Controls
- import "controls" as MyControls
-
- ApplicationWindow {
- MyControls.Button {
- text: qsTr("A Special Button")
- }
- }
- \endqml
-
- As you now have the \c MyControls namespace, you can name the controls after
- their actual counterparts in the Qt Quick Controls module. You can repeat
- this process for any control that you wish to add.
-
- An added benefit of these three methods is that it's not necessary to
- implement the template from scratch.
-
- \section1 Creating a Custom Style
-
- There are several ways to go about creating your own styles. Below, we'll
- explain the various approaches.
-
- \section2 Definition of a Style
-
- In Qt Quick Controls, a style is essentially a set of QML files within a
- single directory. There are four requirements for a style to be
- \l {Using Styles in Qt Quick Controls}{usable}:
-
- \list
- \li At least one QML file whose name matches a control (for example,
- \c Button.qml) must exist.
- \li Each QML file must contain the relevant type from the \l {Qt Quick Templates 2}
- {QtQuick.Templates} import as the root item. For example,
- Button.qml must contain a Button template as its root item.
-
- If we instead used the corresponding type from the \l {Qt Quick Controls}
- {QtQuick.Controls} import as we did in the previous section, it would not work:
- the control we were defining would try to derive from itself.
- \li A \l {Module Definition qmldir Files}{qmldir} file must exist alongside
- the QML file(s). Below is an example of a simple \c qmldir file for a style that
- provides a button:
-
- \badcode
- module MyStyle
- Button 2.15 Button.qml
- \endcode
-
- If you're using \l {Compile-Time Style Selection}{compile-time style
- selection}, the qmldir should also import the fallback style:
-
- \badcode
- # ...
- import QtQuick.Controls.Basic auto
- \endcode
-
- This can also be done for \l {Run-Time Style Selection}{run-time style selection}
- instead of using, for example, \l QQuickStyle::setFallbackStyle().
-
- The directory structure for such a style looks like this:
-
- \badcode
- MyStyle
- ├─── Button.qml
- └─── qmldir
- \endcode
- \li The files must be in a directory that is findable via the \l {QML Import Path}.
-
- For example, if the path to \e MyStyle directory mentioned above was
- \c /home/user/MyApp/MyStyle, then \c /home/user/MyApp must be added to
- the QML import path.
-
- To \l {Using Styles in Qt Quick Controls}{use} \e MyStyle in \e MyApp,
- refer to it by name:
-
- \list
- \li \c {./MyApp -style MyStyle}
- \endlist
-
- The style name must match the casing of the style directory; passing
- \e mystyle or \e MYSTYLE is not supported.
- \endlist
-
- By default, the styling system uses the Basic style as a fallback for
- controls that aren't implemented. To customize or extend any other built-in
- style, it is possible to specify a different fallback style using
- \l[QtQuickControls2]{QQuickStyle}.
-
- What this means is that you can implement as many controls as you like for
- your custom style, and place them almost anywhere. It also allows users to
- create their own styles for your application.
-
- \section3 Previewing Custom Styles in Qt Quick Designer
-
- Using the approach above, it is possible to preview a custom style
- in Qt Quick Designer. In order to do so,
- ensure that the project has a
- \l {Qt Quick Controls Configuration File}{qtquickcontrols2.conf} file,
- and that the following entry exists:
-
- \badcode
- [Controls]
- Style=MyStyle
- \endcode
-
- For more information, take a look at the
- \l {Qt Quick Controls - Flat Style}{Flat Style example}.
-
- \section2 Style-specific C++ Extensions
-
- Sometimes you may need to use C++ to extend your custom style. There are two
- ways to expose such types to QML:
-
- \list
- \li If the style that uses the type is the only style used by an application,
- it's enough to register it with the QML engine via qmlRegisterType():
-
- \code
- qmlRegisterType<ACoolCppItem>("MyApp", 1, 0, "ACoolItem");
- \endcode
-
- See \l {Using C++ Data From QML} for more information about this.
- \li If the style that uses the type is one of many styles used by an
- application, it may be better to only register it when necessary. This
- is the point at which it would make sense to implement your own
- \l {Creating C++ Plugins for QML}{QML plugin}.
-
- Using a plugin as part of your style is not that much different from
- using a set of QML files. The only difference is that the plugin and
- its \c qmldir file must be present in the same directory as the QML
- files.
- \endlist
-
- \section3 Considerations for custom styles
-
- When implementing your own style and customizing controls, there are some
- points to keep in mind to ensure that your application is as performant as
- possible.
-
- \section4 Avoid assigning an id to styles' implementations of item delegates
-
- As explained in \l {Definition of a Style}, when you implement your
- own style for a control, you start off with the relevant template for
- that control. For example, a style's \c Button.qml will be structured
- similarly to this:
-
- \qml
- T.Button {
- // ...
-
- background: Rectangle {
- // ...
- }
-
- contentItem: Text {
- // ...
- }
-
- // ...
- }
- \endqml
-
- When you use a Button in your application, the \c background and
- \c contentItem items will be created and parented to the root \c Button
- item:
-
- \qml
- // Creates the Button root item, the Rectangle background,
- // and the Text contentItem.
- Button {
- text: qsTr("Confirm")
- }
- \endqml
-
- Suppose you then needed to do a one-off customization of the Button (as
- explained in \l {Customizing a Control}):
-
- \include customize-button-background.qdocinc file
-
- In QML, this would normally result in both the default \c background
- implementation and the one-off, custom \c background items being created.
- Qt Quick Controls uses a technique that avoids creating both items, and
- instead only creates the custom \c background, greatly improving the
- creation performance of controls.
-
- This technique relies on the absence of an \l {The id Attribute}{id} in the
- style's implementation of that item. If an id is assigned, the technique
- cannot work, and both items will be created. For example, it can be
- tempting to assign an id to the \c background or \c contentItem so that
- other objects within the file can refer to those items:
-
- \qml
- T.Button {
- // ...
-
- background: Rectangle {
- id: backgroundRect
- // ...
- }
-
- contentItem: Text {
- // Use backgroundRect in some way...
- }
-
- // ...
- }
- \endqml
-
- With this code, every time a Button instance with a customized background
- is created, both backgrounds will be created, resulting in sub-optimal
- creation performance.
-
- Prior to Qt 5.15, the old, unused background would be deleted to release
- the resources associated with it. However, as the control does not own the
- items, it should not delete them. As of Qt 5.15, old items are no longer
- deleted, and so the \c backgroundRect item will live longer than it needs
- to—typically until the application exits. Although the old item will be
- hidden, visually unparented from the control, and removed from the
- accessibility tree, it is important to keep the creation time and memory
- usage of these unused items in mind when assigning an id in this context.
-
- \section4 Avoid imperative assignments of custom items
-
- The technique mentioned in the section above only works when an item is
- \l {Prefer Declarative Bindings Over Imperative Assignments}{declaratively}
- assigned for the first time, and so imperative assignments will result in
- orphaned items. Always use declarative bindings to assign custom items
- when possible.
-
- \section3 Attached properties
-
- It is common for a style to have certain properties or attributes that
- apply to all controls. \l {Attached Properties and Attached Signal
- Handlers}{Attached properties} are a great way of extending an item in QML
- without having to modify any existing C++ belonging to that item. For
- example, both the \l {Material Style}{Material} and \l {Universal
- Style}{Universal} styles have an attached theme property that controls
- whether an item and its children will be rendered in a light or dark theme.
-
- As an example, let's add an attached property that controls elevation. Our
- style will illustrate the elevation with a drop shadow; the higher the
- elevation, the larger the shadow.
-
- The first step is to \l {Qt Creator: Project Types}{create a new Qt Quick
- Controls application} in Qt Creator. After that, we
- \l {Qt Creator: Creating C++ Classes}{add a C++ type} that stores the elevation. Since
- the type will be used for every control supported by our style, and because
- we may wish to add other attached properties later on, we'll call it
- MyStyle. Here is \c MyStyle.h:
-
- \code
- #ifndef MYSTYLE_H
- #define MYSTYLE_H
-
- #include <QObject>
- #include <QtQml>
-
- class MyStyle : public QObject
- {
- Q_OBJECT
- Q_PROPERTY(int elevation READ elevation WRITE setElevation NOTIFY elevationChanged)
-
- public:
- explicit MyStyle(QObject *parent = nullptr);
-
- static MyStyle *qmlAttachedProperties(QObject *object);
-
- int elevation() const;
- void setElevation(int elevation);
-
- signals:
- void elevationChanged();
-
- private:
- int m_elevation;
- };
-
- QML_DECLARE_TYPEINFO(MyStyle, QML_HAS_ATTACHED_PROPERTIES)
-
- #endif // MYSTYLE_H
- \endcode
-
- \c MyStyle.cpp:
-
- \code
- #include "mystyle.h"
-
- MyStyle::MyStyle(QObject *parent) :
- QObject(parent),
- m_elevation(0)
- {
- }
-
- MyStyle *MyStyle::qmlAttachedProperties(QObject *object)
- {
- return new MyStyle(object);
- }
-
- int MyStyle::elevation() const
- {
- return m_elevation;
- }
-
- void MyStyle::setElevation(int elevation)
- {
- if (elevation == m_elevation)
- return;
-
- m_elevation = elevation;
- emit elevationChanged();
- }
- \endcode
-
- The \c MyStyle type is special in the sense that it shouldn't be
- instantiated, but rather used for its attached properties. For that reason,
- we register it in the following manner in \c main.cpp:
-
- \code
- #include <QGuiApplication>
- #include <QQmlApplicationEngine>
-
- #include "mystyle.h"
-
- int main(int argc, char *argv[])
- {
- QGuiApplication app(argc, argv);
-
- qmlRegisterUncreatableType<MyStyle>("MyStyle", 1, 0, "MyStyle", "MyStyle is an attached property");
-
- QQmlApplicationEngine engine;
- // Make the directory containing our style known to the QML engine.
- engine.addImportPath(":/");
- engine.load(QUrl(QLatin1String("qrc:/main.qml")));
-
- return app.exec();
- }
- \endcode
-
- We then copy \c Button.qml from the Basic style in
- \c {$QTDIR/qml/QtQuick/Controls/Basic/} into a new \c myproject folder in our
- project directory. Add the newly copied \c Button.qml to \c qml.qrc, which is
- the resource file that contains our QML files.
-
- Next, we add a drop shadow to the \l {Control::}{background} delegate of
- the Button:
-
- \code
- // ...
- import QtGraphicalEffects
- import MyStyle
- // ...
-
- background: Rectangle {
- // ...
-
- layer.enabled: control.enabled && control.MyStyle.elevation > 0
- layer.effect: DropShadow {
- verticalOffset: 1
- color: control.visualFocus ? "#330066ff" : "#aaaaaa"
- samples: control.MyStyle.elevation
- spread: 0.5
- }
- }
- \endcode
-
- Note that we:
-
- \list
- \li Don't bother using the drop shadow when the elevation is \c 0
- \li Change the shadow's color depending on whether or not the button has
- focus
- \li Make the size of the shadow depend on the elevation
- \endlist
-
- To try out the attached property, we create a \l Row with two Buttons in
- \c main.qml:
-
- \qml
- import QtQuick
- import QtQuick.Controls
-
- import MyStyle 1.0
-
- ApplicationWindow {
- id: window
- width: 400
- height: 400
- visible: true
-
- Row {
- spacing: 20
- anchors.centerIn: parent
-
- Button {
- text: "Button 1"
- }
- Button {
- text: "Button 2"
- MyStyle.elevation: 10
- }
- }
- }
- \endqml
-
- One button has no elevation, and the other has an elevation of \c 10.
-
- With that in place, we can run our example. To tell the application to
- use our new style, we pass \c {-style MyStyle} as an application
- argument, but there are \l {Using Styles in Qt Quick Controls}{many
- ways} to specify the style to use.
-
- The end result:
-
- \image qtquickcontrols2-customize-buttons.png
-
- Note that the \c {import MyStyle 1.0} statement is only necessary
- because we are using the attached property belonging to \c MyStyle.
- Both buttons will use our custom style, even if we were to remove the
- import.
-
- \section1 Customization Reference
-
- The following snippets present examples where the Basic style's controls
- have been customized using the same approach as the
- \l {Customizing a Control} section. The code can be used as a starting
- point to implement a custom look and feel.
-
- \section2 Customizing ApplicationWindow
-
- ApplicationWindow consists of one visual item:
- \l {ApplicationWindow::background}{background}.
-
- \code
- import
- import QtQuick.Controls
-
- ApplicationWindow {
- visible: true
-
- background: Rectangle {
- gradient: Gradient {
- GradientStop { position: 0; color: "#ffffff" }
- GradientStop { position: 1; color: "#c1bbf9" }
- }
- }
- }
- \endcode
-
-
- \section2 Customizing BusyIndicator
-
- BusyIndicator consists of two visual items: \l {Control::background}{background}
- and \l {Control::contentItem}{contentItem}.
-
- \image qtquickcontrols2-busyindicator-custom.png
-
- \snippet qtquickcontrols2-busyindicator-custom.qml file
-
-
- \section2 Customizing Button
-
- Button consists of two visual items: \l {Control::background}{background}
- and \l {Control::contentItem}{content item}.
-
- \image qtquickcontrols2-button-custom.png
-
- \snippet qtquickcontrols2-button-custom.qml file
-
-
- \section2 Customizing CheckBox
-
- CheckBox consists of three visual items: \l {Control::background}{background},
- \l {Control::contentItem}{contentItem} and \l {AbstractButton::indicator}{indicator}.
-
- \image qtquickcontrols2-checkbox-custom.png
-
- \snippet qtquickcontrols2-checkbox-custom.qml file
-
- \section2 Customizing CheckDelegate
-
- CheckDelegate consists of three visual items: \l {Control::background}{background},
- \l {Control::contentItem}{contentItem} and \l {AbstractButton::indicator}{indicator}.
-
- \image qtquickcontrols2-checkdelegate-custom.png
-
- \snippet qtquickcontrols2-checkdelegate-custom.qml file
-
-
- \section2 Customizing ComboBox
-
- ComboBox consists of \l {Control::background}{background},
- \l {Control::contentItem}{content item}, \l {ComboBox::popup}{popup},
- \l {ComboBox::indicator}{indicator}, and \l {ComboBox::delegate}{delegate}.
-
- \image qtquickcontrols2-combobox-custom.png
-
- \snippet qtquickcontrols2-combobox-custom.qml file
-
-
- \section2 Customizing DelayButton
-
- DelayButton consists of two visual items: \l {Control::background}{background}
- and \l {Control::contentItem}{content item}.
-
- \image qtquickcontrols2-delaybutton-custom.png
-
- \snippet qtquickcontrols2-delaybutton-custom.qml file
-
-
- \section2 Customizing Dial
-
- Dial consists of two visual items: \l {Control::background}{background}
- and \l {Dial::handle}{handle}.
-
- \image qtquickcontrols2-dial-custom.png
-
- \snippet qtquickcontrols2-dial-custom.qml file
-
-
- \section2 Customizing Drawer
-
- Drawer can have a visual \l {Control::background}{background}
- item.
-
- \code
- background: Rectangle {
- Rectangle {
- x: parent.width - 1
- width: 1
- height: parent.height
- color: "#21be2b"
- }
- }
- \endcode
-
-
- \section2 Customizing Frame
-
- Frame consists of one visual item: \l {Control::background}{background}.
-
- \image qtquickcontrols2-frame-custom.png
-
- \snippet qtquickcontrols2-frame-custom.qml file
-
-
- \section2 Customizing GroupBox
-
- GroupBox consists of two visual items: \l {Control::background}{background}
- and \l {GroupBox::label}{label}.
-
- \image qtquickcontrols2-groupbox-custom.png
-
- \snippet qtquickcontrols2-groupbox-custom.qml file
-
-
- \section2 Customizing ItemDelegate
-
- ItemDelegate consists of two visual items: \l {Control::background}{background}
- and \l {Control::contentItem}{content item}.
-
- \image qtquickcontrols2-itemdelegate-custom.png
-
- \snippet qtquickcontrols2-itemdelegate-custom.qml file
-
-
- \section2 Customizing Label
-
- Label can have a visual \l {Label::background}{background} item.
-
- \image qtquickcontrols2-label-custom.png
-
- \snippet qtquickcontrols2-label-custom.qml file
-
-
- \section2 Customizing Menu
-
- \list
- \li \l Menu consists of a visual \l {Popup::background}{background} item.
- \li \l MenuItem consists of four visual items: \l {Control::background}{background},
- \l {Control::contentItem}{content item}, \l {AbstractButton::}{indicator}, and
- \l {MenuItem::}{arrow}.
- \li \l MenuSeparator consists of a visual \l {Control::background}{background} and
- \l {Control::contentItem}{content item}.
- \endlist
-
- \image qtquickcontrols2-menu-custom.png
-
- \quotefromfile qtquickcontrols2-menu-custom.qml
- \skipto import QtQuick
- \printuntil import QtQuick.Controls
- \skipto Menu
- \printto eof
-
-
- \section2 Customizing MenuBar
-
- MenuBar can have a visual \l {Control::background}{background} item,
- and MenuBarItem consists of two visual items: \l {Control::background}
- {background} and \l {Control::contentItem}{content item}.
-
- \image qtquickcontrols2-menubar-custom.png
-
- \quotefromfile qtquickcontrols2-menubar-custom.qml
- \skipto import QtQuick
- \printuntil import QtQuick.Controls
- \skipto MenuBar
- \printto eof
-
-
- \section2 Customizing PageIndicator
-
- PageIndicator consists of a \l {Control::background}{background}, \l {Control::contentItem}{content item}, and \l {PageIndicator::delegate}{delegate}.
-
- \image qtquickcontrols2-pageindicator-custom.png
-
- \snippet qtquickcontrols2-pageindicator-custom.qml file
-
-
- \section2 Customizing Pane
-
- Pane consists of a \l {Control::background}{background}.
-
- \image qtquickcontrols2-pane-custom.png
-
- \snippet qtquickcontrols2-pane-custom.qml file
-
-
- \section2 Customizing Popup
-
- Popup consists of a \l {Popup::background}{background} and
- \l {Popup::contentItem}{content item}.
-
- \image qtquickcontrols2-popup-custom.png
-
- \quotefromfile qtquickcontrols2-popup-custom.qml
- \skipto import QtQuick
- \printuntil import QtQuick.Controls
- \codeline
- \skipto Popup
- \printuntil {
- \printuntil }
- \printuntil }
- \printuntil }
-
-
- \section2 Customizing ProgressBar
-
- ProgressBar consists of two visual items: \l {Control::background}{background}
- and \l {Control::contentItem}{content item}.
-
- \image qtquickcontrols2-progressbar-custom.png
-
- \snippet qtquickcontrols2-progressbar-custom.qml file
-
-
- \section2 Customizing RadioButton
-
- RadioButton consists of three visual items: \l {Control::background}{background},
- \l {Control::contentItem}{content item} and \l {AbstractButton::indicator}{indicator}.
-
- \image qtquickcontrols2-radiobutton-custom.png
-
- \snippet qtquickcontrols2-radiobutton-custom.qml file
-
-
- \section2 Customizing RadioDelegate
-
- RadioDelegate consists of three visual items: \l {Control::background}{background},
- \l {Control::contentItem}{contentItem} and \l {AbstractButton::indicator}{indicator}.
-
- \image qtquickcontrols2-radiodelegate-custom.png
-
- \snippet qtquickcontrols2-radiodelegate-custom.qml file
-
-
- \section2 Customizing RangeSlider
-
- RangeSlider consists of three visual items:
- \l {Control::background}{background},
- \l {RangeSlider::first}{first.handle} and
- \l {RangeSlider::second.handle}{second.handle}.
-
- \image qtquickcontrols2-rangeslider-custom.png
-
- \snippet qtquickcontrols2-rangeslider-custom.qml file
-
-
- \section2 Customizing RoundButton
-
- RoundButton can be customized in the same manner as
- \l {Customizing Button}{Button}.
-
-
- \section2 Customizing ScrollBar
-
- ScrollBar consists of two visual items: \l {Control::background}{background}
- and \l {Control::contentItem}{content item}.
-
- \image qtquickcontrols2-scrollbar-custom.png
-
- \snippet qtquickcontrols2-scrollbar-custom.qml file
-
-
- \section2 Customizing ScrollIndicator
-
- ScrollIndicator consists of two visual items: \l {Control::background}{background}
- and \l {Control::contentItem}{content item}.
-
- \image qtquickcontrols2-scrollindicator-custom.png
-
- \snippet qtquickcontrols2-scrollindicator-custom.qml file
-
-
- \section2 Customizing ScrollView
-
- ScrollView consists of a \l {Control::background}{background} item,
- and horizontal and vertical scroll bars.
-
- \image qtquickcontrols2-scrollview-custom.png
-
- \snippet qtquickcontrols2-scrollview-custom.qml file
-
-
- \section2 Customizing Slider
-
- Slider consists of two visual items: \l {Control::background}{background},
- and \l {Slider::handle}{handle}.
-
- \image qtquickcontrols2-slider-custom.png
-
- \snippet qtquickcontrols2-slider-custom.qml file
-
-
- \section2 Customizing SpinBox
-
- SpinBox consists of four visual items: \l {Control::background}{background},
- \l {Control::contentItem}{contentItem}, \l {SpinBox::up.indicator}{up indicator},
- and \l {SpinBox::down.indicator}{down indicator}.
-
- \image qtquickcontrols2-spinbox-custom.png
-
- \snippet qtquickcontrols2-spinbox-custom.qml file
-
-
- \section2 Customizing SplitView
-
- SplitView consists of a visual \l {SplitView::handle}{handle} delegate.
-
- \image qtquickcontrols2-splitview-custom.png
-
- \snippet qtquickcontrols2-splitview-custom.qml 1
-
-
- \section2 Customizing StackView
-
- StackView can have a visual \l {Control::background}{background}
- item, and it allows customizing the transitions that are used for
- push, pop, and replace operations.
-
- \snippet qtquickcontrols2-stackview-custom.qml file
-
-
- \section2 Customizing SwipeDelegate
-
- SwipeDelegate consists of six visual items: \l {Control::background}{background},
- \l {Control::contentItem}{content item}, \l {AbstractButton::indicator}{indicator},
- \c swipe.left, \c swipe.right, and \c swipe.behind.
-
- \image qtquickcontrols2-swipedelegate-custom.png
-
- \snippet qtquickcontrols2-swipedelegate-custom.qml file
-
-
- \section2 Customizing SwipeView
-
- SwipeView can have a visual \l {Control::background}{background}
- item. The navigation is implemented by the \l {Control::contentItem}
- {content item}.
-
- \snippet qtquickcontrols2-swipeview-custom.qml file
-
-
- \section2 Customizing Switch
-
- Switch consists of three visual items: \l {Control::background}{background},
- \l {Control::contentItem}{content item} and \l {AbstractButton::indicator}{indicator}.
-
- \image qtquickcontrols2-switch-custom.png
-
- \snippet qtquickcontrols2-switch-custom.qml file
-
- \section2 Customizing SwitchDelegate
-
- SwitchDelegate consists of three visual items: \l {Control::background}{background},
- \l {Control::contentItem}{contentItem} and \l {AbstractButton::indicator}{indicator}.
-
- \image qtquickcontrols2-switchdelegate-custom.png
-
- \snippet qtquickcontrols2-switchdelegate-custom.qml file
-
-
- \section2 Customizing TabBar
-
- TabBar consists of two visual items: \l {Control::background}{background},
- and \l {Control::contentItem}{contentItem}.
-
- \image qtquickcontrols2-tabbar-custom.png
-
- \snippet qtquickcontrols2-tabbar-custom.qml file
-
-
- \section2 Customizing TabButton
-
- TabButton can be customized in the same manner as
- \l {Customizing Button}{Button}.
-
-
- \section2 Customizing TextArea
-
- TextArea consists of a \l {TextArea::background}{background} item.
-
- \image qtquickcontrols2-textarea-custom.png
-
- \snippet qtquickcontrols2-textarea-custom.qml file
-
-
- \section2 Customizing TextField
-
- TextField consists of a \l {TextField::background}{background} item.
-
- \image qtquickcontrols2-textfield-custom.png
-
- \snippet qtquickcontrols2-textfield-custom.qml file
-
-
- \section2 Customizing ToolBar
-
- ToolBar consists of one visual item: \l {Control::background}{background}.
-
- \image qtquickcontrols2-toolbar-custom.png
-
- \snippet qtquickcontrols2-toolbar-custom.qml file
-
-
- \section2 Customizing ToolButton
-
- ToolButton consists of two visual items: \l {Control::background}{background}
- and \l {Control::contentItem}{content item}.
-
- \image qtquickcontrols2-toolbutton-custom.png
-
- \snippet qtquickcontrols2-toolbutton-custom.qml file
-
-
- \section2 Customizing ToolSeparator
-
- ToolSeparator consists of two visual items: \l {Control::background}{background}
- and \l {Control::contentItem}{content item}.
-
- \image qtquickcontrols2-toolseparator-custom.png
-
- \snippet qtquickcontrols2-toolseparator-custom.qml file
-
-
- \section2 Customizing ToolTip
-
- ToolTip consists of two visual items: \l {Popup::background}{background}
- and \l {Popup::contentItem}{content item}.
-
- \quotefromfile qtquickcontrols2-tooltip-custom.qml
- \skipto import QtQuick
- \printuntil import QtQuick.Controls
- \skipto ToolTip
- \printuntil }
- \printuntil }
- \printuntil }
-
-
- \section2 Customizing Tumbler
-
- Tumbler consists of three visual items:
- \l {Control::background}{background},
- \l {Control::contentItem}{contentItem}, and
- \l {Tumbler::delegate}{delegate}.
-
- \image qtquickcontrols2-tumbler-custom.png
-
- \snippet qtquickcontrols2-tumbler-custom.qml file
-
- If you want to define your own contentItem, use either a \l ListView or
- \l PathView as the root item. For a wrapping Tumbler, use PathView:
-
- \snippet qtquickcontrols2-tumbler-pathView.qml contentItem
-
- For a non-wrapping Tumbler, use ListView:
-
- \snippet qtquickcontrols2-tumbler-listView.qml contentItem
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-delegates.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-delegates.qdoc
deleted file mode 100644
index bea87abf..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-delegates.qdoc
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-delegates.html
- \title Delegate Controls
- \ingroup qtquickcontrols2-guidelines
- \brief Guidelines for delegate controls
-
- Qt Quick Controls offers a selection of controls that are used as
- delegates in views.
-
- \annotatedlist qtquickcontrols2-delegates
-
- Each type of delegate has its own specific target use case. The following
- sections offer guidelines for choosing the appropriate type of delegate,
- depending on the use case.
-
- \section1 ItemDelegate Control
-
- \image qtquickcontrols2-itemdelegate.gif
-
- \l ItemDelegate presents a checkable control that can be pressed and
- clicked by the user.
-
- \section1 RadioDelegate Control
-
- \image qtquickcontrols2-radiodelegate.gif
-
- \l RadioDelegate presents a checkable control that can be toggled on
- (checked) or off (unchecked). Radio delegates are typically used to select
- one option from a set of options.
-
- \b {See also} \l {RadioButton Control}.
-
- \section1 SwipeDelegate Control
-
- \image qtquickcontrols2-swipedelegate.gif
-
- \l SwipeDelegate presents a view item that can be swiped left or right to
- expose more options or information.
-
- \section1 SwitchDelegate Control
-
- \image qtquickcontrols2-switchdelegate.gif
-
- \l SwitchDelegate presents a switchable delegate that can be toggled on or off.
-
- \b {See also} \l {Switch Control}.
-
- \section1 Related Information
- \list
- \li \l {Qt Quick Controls Guidelines}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-deployment.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-deployment.qdoc
deleted file mode 100644
index a84d0d87..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-deployment.qdoc
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-deployment.html
- \title Deploying Qt Quick Controls Applications
-
- Deployment of Qt Quick Controls applications is very similar to
- deployment of other types of Qt applications. However, there are a few
- factors to consider.
-
- \section1 Deploying an Application with Several Styles
-
- Suppose you have an application that will be deployed to both Android and
- Windows devices. To ensure that only the minimum set of files that are
- necessary for the application to run are deployed to each device, you can
- use file selectors. For example, your directory structure could look like
- this:
-
- \code
- resources.qrc
- main.qml
- +windows/MyPage.qml
- +windows/qtquickcontrols2.conf
- +android/MyPage.qml
- +android/qtquickcontrols2.conf
- \endcode
-
- In the project above, \c main.qml would import \c QtQuick.Controls, for
- example, but shouldn't import, say, \c QtQuick.Controls.Material. Any code
- that is style-specific is moved out into separate files; just as we've done
- for \c MyPage.qml.
-
- The \c +windows/qtquickcontrols2.conf file would contain configuration
- options specific to the Universal style:
-
- \code
- [Controls]
- Style=Universal
-
- [Universal]
- Theme=Dark
- Accent=Red
- \endcode
-
- The \c +android/qtquickcontrols2.conf file would contain configuration
- options specific to the Material style:
-
- \code
- [Controls]
- Style=Material
-
- [Material]
- Theme=Light
- Accent=Brown
- \endcode
-
- \section1 Static Builds
-
- For dynamically built applications, it is not necessary to import a
- specific style that should be usable by that application. For statically
- built applications, Qt's build system must be involved to ensure that
- QML plugins function as expected. Specifically, \c qmake uses
- \c qmlimportscanner to scan the QML files in your application for import
- statements. For this reason, any styles that should be usable by a
- statically built application must explicitly import that style. Where the
- import occurs is up to the developer, but it is recommended to follow the
- approach mentioned in the \l {Deploying an Application with Several Styles}
- section, so that only the minimum set of files that are necessary for a
- particular device are deployed.
-
- \sa {Deploying Qt Applications}, {Using Styles in Qt Quick Controls}
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-environment.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-environment.qdoc
deleted file mode 100644
index 4484acf3..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-environment.qdoc
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-environment.html
- \title Supported Environment Variables in Qt Quick Controls
-
- This page contains a list of all environment variables that Qt Quick Controls
- supports. The environment variables are primarily meant for testing purposes, but
- they can also be used to set system-wide defaults.
-
- \table
- \header
- \li Variable
- \li Description
- \row
- \li \c QT_QUICK_CONTROLS_STYLE
- \li Specifies the default \l {Styling Qt Quick Controls}{Qt Quick Controls style}.
- The value can be either one of the built-in styles, for example \c "Material",
- or a custom style such as \c "MyStyle".
- \row
- \li \c QT_QUICK_CONTROLS_FALLBACK_STYLE
- \li Specifies a fallback style for \l {Creating a Custom Style}{custom styles}.
- The value can be one of the built-in styles, for example \c "Material",
- \row
- \li \c QT_QUICK_CONTROLS_CONF
- \li Specifies the location of the \l {Qt Quick Controls configuration file}.
- By default, the configuration file is loaded from the application's
- resources in \c ":/qtquickcontrols2.conf".
- \row
- \li \c QT_QUICK_CONTROLS_HOVER_ENABLED
- \li Specifies whether Qt Quick Controls use \l {Control::hoverEnabled}{hover effects}.
- The value can be set to \c 0 or \c 1 to disable or enable hover effects, respectively.
- \endtable
-
- \l {Imagine style} specific environment variables:
-
- \include qquickimaginestyle.qdocinc env
-
- \l {Material style} specific environment variables:
-
- \include qquickmaterialstyle.qdocinc env
-
- \l {Universal style} specific environment variables:
-
- \include qquickuniversalstyle.qdocinc env
-
- \section1 Related Information
-
- \list
- \li \l{Styling Qt Quick Controls}
- \li \l{Qt Quick Controls Configuration File}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-examples.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-examples.qdoc
deleted file mode 100644
index 2924114f..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-examples.qdoc
+++ /dev/null
@@ -1,37 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \group qtquickcontrols2-examples
- \ingroup all-examples
- \keyword Qt Quick Controls Examples
- \title Qt Quick Controls Examples
- \keyword Qt Quick Controls 2 Examples
- \brief A collection of examples for \l {Qt Quick Controls}
-
- These examples demonstrate creating user interfaces using \l {Qt Quick Controls}.
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-fileselectors.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-fileselectors.qdoc
deleted file mode 100644
index 4c782de1..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-fileselectors.qdoc
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-fileselectors.html
- \title Using File Selectors with Qt Quick Controls
-
- \l {QFileSelector}{File selectors} provide a convenient way of selecting
- file variants. Qt offers the platform name and the locale as built-in
- selectors. Qt Quick Controls extends the built-in selectors with the name
- (lowercase) of the style that an application is running with.
-
- By using file selectors, style-specific tweaks can be applied without
- creating a hard dependency to a style. From the available file variants,
- only the selected QML file is loaded by the QML engine. Each file variant
- can assume the context, that is, a specific style. This typically leads
- to some code duplication, but on the other hand, cuts the aforementioned
- hard dependency to the style, and leads to simpler and more efficient
- QML code.
-
- The following example demonstrates a custom rounded button that has a
- styled drop shadow in the \l {Material Style}{Material style}, and looks
- flat in other styles. The files are organized so that the Material version
- of \c CustomButton.qml is placed into a \c +Material sub-directory.
-
- \code
- :/main.qml
- :/CustomButton.qml
- :/+Material/CustomButton.qml
- \endcode
-
- By default, \c main.qml will use \c CustomButton.qml for the \c CustomButton
- type. However, when the application is run with the Material style, the
- \c Material selector will be present and the \c +Material/CustomButton.qml
- version will be used instead.
-
- \code
- // main.qml
- import QtQuick
- import QtQuick.Controls
-
- ApplicationWindow {
- id: window
- visible: true
-
- CustomButton {
- text: "Button"
- anchors.centerIn: parent
- }
- }
- \endcode
-
- The base implementation of the custom button is a simple rounded
- flat button.
-
- \code
- // CustomButton.qml
- import QtQuick
- import QtQuick.Controls
-
- Button {
- id: control
-
- background: Rectangle {
- radius: width / 2
- implicitWidth: 36
- implicitHeight: 36
- color: control.pressed ? "#ccc" : "#eee"
- }
- }
- \endcode
-
- The Material style's implementation of the custom button imports the
- Material style, requests a dark theme to get light text, and creates
- a drop shadow for the background.
-
- \code
- // +Material/CustomButton.qml
- import QtQuick
- import QtGraphicalEffects
- import QtQuick.Controls
- import QtQuick.Controls.Material
-
- Button {
- id: control
-
- Material.theme: Material.Dark
-
- background: Rectangle {
- implicitWidth: 48
- implicitHeight: 48
- color: Material.accentColor
- radius: width / 2
-
- layer.enabled: control.enabled
- layer.effect: DropShadow {
- verticalOffset: 1
- color: Material.dropShadowColor
- samples: control.pressed ? 20 : 10
- spread: 0.5
- }
- }
- }
- \endcode
-
- \note It is recommended to use \l QQmlApplicationEngine, which internally
- creates a \l QQmlFileSelector instance. This is all that is needed to take
- QML file selectors into use.
-
- \section1 Related Information
- \list
- \li \l {QFileSelector}
- \li \l {QQmlFileSelector}
- \li \l {Styling Qt Quick Controls}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-focus.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-focus.qdoc
deleted file mode 100644
index 77bc9883..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-focus.qdoc
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-focus.html
- \keyword Focus Management in Qt Quick Controls 2
- \title Focus Management in Qt Quick Controls
- \brief Overview of focus handling with Qt Quick Controls
-
- Qt Quick Controls follows the standard
- \l {Keyboard Focus in Qt Quick}{Qt Quick focus system}, while also
- providing some added convenience. For example, the
- \l {Control::}{focusPolicy} property can be used to control the ways in
- which a control receives focus.
-
- \section1 Focus Scope Controls
-
- Qt Quick Controls offers a selection of controls that act as
- \l {Acquiring Focus and Focus Scopes}{focus scopes}:
-
- \annotatedlist qtquickcontrols2-focusscopes
-
- \sa {Keyboard Focus in Qt Quick}
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-fusion.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-fusion.qdoc
deleted file mode 100644
index ca67985f..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-fusion.qdoc
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-fusion.html
- \title Fusion Style
-
- The Fusion style is a desktop-oriented style.
-
- The Fusion style is a platform-agnostic style that offers a desktop-oriented
- look and feel. It implements the same design language as the
- \l {Qt Widget Gallery}{Fusion style for Qt Widgets}.
-
- \image qtquickcontrols2-fusion.png
-
- To run an application with the Fusion style, see
- \l {Using Styles in Qt Quick Controls}.
-
- \note The Fusion style is not a native desktop style. The style runs on any
- platform, and looks similar everywhere. Minor differences may occur due to
- differences in the standard system palettes, available fonts, and font
- rendering engines.
-
- \section2 Customization
-
- The Fusion style uses the standard system \l[QtQuick]{Palette}
- to provide colors that match the desktop environment.
-
- \image qtquickcontrols2-fusion-palettes.png
-
- Custom palettes can be specified for any control,
- \l{Popup::palette}{popup}, or \l{Window::palette}{application window}.
- Explicit palette attributes are automatically propagated from parent to children,
- overriding any system defaults for that attribute. In the following example,
- the window and all three switches appear with a violet highlight color:
-
- \table
- \row
- \li
- \qml
- import QtQuick 2.12
- import QtQuick.Controls 2.12
-
- ApplicationWindow {
- visible: true
-
- palette.highlight: "violet"
-
- Column {
- anchors.centerIn: parent
-
- Switch { text: qsTr("First"); checked: true }
- Switch { text: qsTr("Second"); checked: true }
- Switch { text: qsTr("Third") }
- }
- }
- \endqml
- \li
- \image qtquickcontrols2-fusion-violet.png
- \endtable
-
- \b {See also} \l {Basic Style}, \l {Material Style}, \l {Universal Style}
-
- \section1 Related Information
-
- \list
- \li \l{Styling Qt Quick Controls}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-gettingstarted.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-gettingstarted.qdoc
deleted file mode 100644
index 09209d21..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-gettingstarted.qdoc
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-gettingstarted.html
- \keyword Getting Started with Qt Quick Controls 2
- \title Getting Started with Qt Quick Controls
-
- A basic example of a QML file that makes use of controls is shown here:
-
- \qml
- import QtQuick
- import QtQuick.Controls
-
- ApplicationWindow {
- title: "My Application"
- width: 640
- height: 480
- visible: true
-
- Button {
- text: "Push Me"
- anchors.centerIn: parent
- }
- }
- \endqml
-
- \section1 Setting Up Controls from C++
-
- Although QQuickView has traditionally been used to display QML files in a
- C++ application, doing this means you can only set window properties from
- C++.
-
- With Qt Quick Controls, declare an ApplicationWindow as the root item of
- your application and launch it by using QQmlApplicationEngine instead.
- This ensures that you can control top level window properties from QML.
-
- A basic example of a source file that makes use of controls is shown here:
-
- \code
- #include <QGuiApplication>
- #include <QQmlApplicationEngine>
-
- int main(int argc, char *argv[])
- {
- QGuiApplication app(argc, argv);
- QQmlApplicationEngine engine;
- engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
- return app.exec();
- }
- \endcode
-
- \section2 Using C++ Data From QML
-
- If you need to register a C++ class to use from QML, you can call
- qmlRegisterType() before declaring your QQmlApplicationEngine.
- See \l [QtQml] {Defining QML Types from C++} for more information.
-
- If you need to expose data to QML components, you need to make them
- available to the context of the current QML engine. See QQmlContext for
- more information.
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-guidelines.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-guidelines.qdoc
deleted file mode 100644
index 83d6db93..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-guidelines.qdoc
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-guidelines.html
- \keyword Qt Quick Controls Guidelines
- \title Qt Quick Controls Guidelines
- \keyword Qt Quick Controls 2 Guidelines
-
- Qt Quick Controls offers a selection of controls that can be used to
- build complete interfaces in Qt Quick.
-
- Below you will find practical guidelines on how and when to use
- the controls.
-
- \annotatedlist qtquickcontrols2-guidelines
-
- \section1 Related Information
- \list
- \li \l{Qt Quick Controls QML Types}{All Qt Quick Controls QML Types}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-icons.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-icons.qdoc
deleted file mode 100644
index ea8579dc..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-icons.qdoc
+++ /dev/null
@@ -1,166 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-icons.html
- \keyword Icons in Qt Quick Controls 2
- \title Icons in Qt Quick Controls
-
- Qt Quick Controls comes with support for icons since Qt 5.10. This means,
- Buttons, item delegates, and menu items are now capable of presenting an
- icon in addition to a text label.
-
- \section1 Using Icons
-
- \l {AbstractButton::icon}{AbstractButton} and \l {Action::icon}{Action} provide
- the following properties through which icons can be set:
- \list
- \li \c icon.name
- \li \c icon.source
- \li \c icon.width
- \li \c icon.height
- \li \c icon.color
- \li \c icon.cache
- \endlist
-
- Theme icons are referenced by a name, and regular icons by a source URL. Both
- \c icon.name and \c icon.source can be set to ensure that an icon will always
- be found. If the icon is found in the theme, it will always be used; even if
- \c icon.source is also set. If the icon is not found in the theme, \c icon.source
- will be used instead.
-
- \code
- Button {
- icon.name: "edit-cut"
- icon.source: "images/cut.png"
- }
- \endcode
-
- Each \l {Styling Qt Quick Controls}{Qt Quick Controls 2 style} requests a
- default icon size and color according to their guidelines, but it is possible
- to override these by setting the \c icon.width, \c icon.height, and \c icon.color
- properties.
-
- The image that is loaded by an icon whose \c width and \c height are not set
- depends on the type of icon in use. For theme icons, the closest available size
- will be chosen. For regular icons, the behavior is the same as the \l {Image::}
- {sourceSize} property of \l Image.
-
- The icon color is specified by default so that it matches the text color in
- different states. In order to use an icon with the original colors, set the
- color to \c "transparent".
-
- \code
- Button {
- icon.color: "transparent"
- icon.source: "images/logo.png"
- }
- \endcode
-
- For buttons, the \l {AbstractButton::}{display} property can be used to control
- how the icon and text are displayed within the button.
-
- \section1 Icon Themes
-
- Compliant icon themes must follow the freedesktop icon theme specification,
- which can be obtained here: \l {http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html}.
-
- Traditionally, only Linux and UNIX support icon themes on the platform level,
- but it is possible to bundle a compliant icon theme in an application to use
- themed icons on any platform.
-
- The default \l {QIcon::themeSearchPaths()}{icon theme search paths} depend on
- the platform. On Linux and UNIX, the search path will use the \c XDG_DATA_DIRS
- environment variable if available. All platforms have the resource directory
- \c :/icons as a fallback. Custom icon theme search paths can be set with
- \l QIcon::setThemeSearchPaths().
-
- The following example bundles an icon theme called \e mytheme into the application's
- resources using \l {The Qt Resource System}{Qt's resource system}.
-
- \badcode
- <RCC>
- <qresource prefix="/">
- <file>icons/mytheme/index.theme</file>
- <file>icons/mytheme/32x32/myicon.png</file>
- <file>icons/mytheme/32x32@2/myicon.png</file>
- </qresource>
- </RCC>
- \endcode
-
- The \c index.theme file describes the general attributes of the icon theme, and
- lists the available theme icon directories:
-
- \badcode
- [Icon Theme]
- Name=mytheme
- Comment=My Icon Theme
-
- Directories=32x32,32x32@2
-
- [32x32]
- Size=32
- Type=Fixed
-
- [32x32@2]
- Size=32
- Scale=2
- Type=Fixed
- \endcode
-
- In order to use the bundled icon theme, an application should call \l QIcon::setThemeName()
- before loading the main QML file:
-
- \code
- #include <QGuiApplication>
- #include <QQmlApplicationEngine>
- #include <QIcon>
-
- int main(int argc, char *argv[])
- {
- QGuiApplication app(argc, argv);
-
- QIcon::setThemeName("mytheme"); // <--
-
- QQmlApplicationEngine engine;
- engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
- return app.exec();
- }
- \endcode
-
- Now it is possible to use named icons from the bundled icon theme without having
- to specify any fallback source:
-
- \code
- Button {
- icon.name: "myicon"
- }
- \endcode
-
- The \l {Qt Quick Controls - Gallery}{Gallery example} and \l {Qt Quick Controls 2 - Wearable Demo}
- {Wearable Demo} provide complete runnable applications with a bundled icon theme.
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-imagine.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-imagine.qdoc
deleted file mode 100644
index aed0f894..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-imagine.qdoc
+++ /dev/null
@@ -1,2524 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-imagine.html
- \title Imagine Style
-
- The Imagine Style is based on configurable image assets. \l{detailed-desc-imagine}{More...}
-
- \styleimport {QtQuick.Controls.Imagine 2.12} {Qt 5.10}
-
- \section1 Attached Properties
-
- \list
- \li \l {imagine-path-attached-prop}{\b path} : string
- \endlist
-
- \section1 Detailed Description
- \target detailed-desc-imagine
-
- 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.
-
- \image qtquickcontrols2-imagine.png
- \caption The Imagine style with the default images
-
- To run an application with the Imagine style, see
- \l {Using Styles in Qt Quick Controls}.
-
- \section2 File Names
-
- The image files are named using the following convention:
-
- \c <control>-<element>-<states>
-
- The \c <control> and \c <element> sections are mandatory, but the
- \c <states> section is optional. For example, if a single file named
- \c "button-background.9.png" is provided for \l {Button}, it will be used
- for every state that \c Button supports. It is up to the developer to
- decide the set of states that they will provide images for. However, it
- is recommended to provide images for the most common control states where
- possible, such as \c disabled, \c pressed, etc. This will ensure that
- interactive controls visually behave as the end user would expect them to.
-
- \section2 Element Reference
-
- The following table lists which elements are supported for each control,
- along with the possible states for that element, and the file extension
- that it expects. An element is an image that represents a certain visual
- part of the control. For example, \c {Button}'s \c "background" element
- represents its \l {Control::}{background}.
-
- \table
- \header
- \li Control
- \li Element
- \li States
- \li Extension
- \row
- \li \l ApplicationWindow
- \li background
- \li active
- \li .9.png (or .png)
- \row
- \li \l BusyIndicator
- \li animation
- \li disabled, running, mirrored, hovered
- \li .webp
- \row
- \li
- \li background
- \li same as above
- \li .webp
- \row
- \li \l Button
- \li background
- \li disabled, pressed, checked, checkable, focused, highlighted, flat, mirrored, hovered
- \li .9.png
- \row
- \li \l CheckBox
- \li background
- \li disabled, pressed, checked, partially-checked, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li indicator
- \li same as above
- \li .png
- \row
- \li \l CheckDelegate
- \li background
- \li disabled, pressed, checked, partially-checked, focused, highlighted, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li indicator
- \li same as above
- \li .png
- \row
- \li \l ComboBox
- \li background
- \li disabled, pressed, editable, open, focused, mirrored, hovered, flat
- \li .9.png (or .png)
- \row
- \li
- \li indicator
- \li same as above
- \li .png
- \row
- \li
- \li popup
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l DelayButton
- \li background
- \li disabled, pressed, checked, checkable, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li progress
- \li same as above
- \li .9.png (or .png)
- \row
- \li
- \li mask
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l Dial
- \li background
- \li disabled, pressed, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li handle
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l Dialog
- \li background
- \li modal, dim
- \li .9.png (or .png)
- \row
- \li
- \li title
- \li same as above
- \li .9.png (or .png)
- \row
- \li
- \li overlay
- \li modal
- \li .9.png (or .png)
- \row
- \li \l DialogButtonBox
- \li background
- \li disabled, mirrored
- \li .9.png (or .png)
- \row
- \li \l Drawer
- \li background
- \li modal, dim, top, left, right, bottom
- \li .9.png (or .png)
- \row
- \li
- \li overlay
- \li modal
- \li .9.png (or .png)
- \row
- \li \l Frame
- \li background
- \li disabled, mirrored
- \li .9.png (or .png)
- \row
- \li \l GroupBox
- \li background
- \li disabled, mirrored
- \li .9.png (or .png)
- \row
- \li
- \li title
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l ItemDelegate
- \li background
- \li disabled, pressed, focused, highlighted, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li \l Label
- \li background
- \li disabled, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li \l Menu
- \li background
- \li modal, dim
- \li .9.png (or .png)
- \row
- \li
- \li overlay
- \li modal
- \li .9.png (or .png)
- \row
- \li \l MenuItem
- \li arrow
- \li disabled, pressed, checked, focused, highlighted, mirrored, hovered
- \li .png
- \row
- \li
- \li background
- \li same as above
- \li .9.png (or .png)
- \row
- \li
- \li indicator
- \li same as above
- \li .png
- \row
- \li \l MenuSeparator
- \li background
- \li disabled, mirrored
- \li .9.png (or .png)
- \row
- \li
- \li separator
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l Page
- \li background
- \li disabled, mirrored
- \li .9.png (or .png)
- \row
- \li \l PageIndicator
- \li background
- \li disabled, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li delegate
- \li disabled, pressed, current, mirrored, hovered
- \li .png
- \row
- \li \l Pane
- \li background
- \li disabled, mirrored
- \li .9.png (or .png)
- \row
- \li \l Popup
- \li background
- \li modal, dim
- \li .9.png (or .png)
- \row
- \li
- \li overlay
- \li modal
- \li .9.png (or .png)
- \row
- \li \l ProgressBar
- \li animation
- \li disabled, mirrored, hovered
- \li .png
- \row
- \li
- \li background
- \li disabled, indeterminate, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li mask
- \li same as above
- \li .9.png (or .png)
- \row
- \li
- \li progress
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l RadioButton
- \li background
- \li disabled, pressed, checked, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li indicator
- \li same as above
- \li .png
- \row
- \li \l RadioDelegate
- \li background
- \li disabled, pressed, checked, focused, highlighted, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li indicator
- \li same as above
- \li .png
- \row
- \li \l RangeSlider
- \li background
- \li vertical, horizontal, disabled, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li \l RangeSlider
- \li progress
- \li same as above
- \li .9.png (or .png)
- \row
- \li
- \li handle
- \li first, second, vertical, horizontal, disabled, pressed, focused, mirrored, hovered
- \li .png
- \row
- \li \l RoundButton
- \li background
- \li disabled, pressed, checked, checkable, focused, highlighted, flat, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li \l ScrollBar
- \li background
- \li vertical, horizontal, disabled, interactive, pressed, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li handle
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l ScrollIndicator
- \li background
- \li vertical, horizontal, disabled, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li handle
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l ScrollView
- \li background
- \li disabled, mirrored
- \li .9.png (or .png)
- \row
- \li \l Slider
- \li background
- \li vertical, horizontal, disabled, pressed, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li handle
- \li same as above
- \li .9.png (or .png)
- \row
- \li
- \li progress
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l SpinBox
- \li background
- \li disabled, editable, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li editor
- \li disabled, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li indicator
- \li up, down, disabled, editable, pressed, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li \l StackView
- \li background
- \li disabled, mirrored
- \li .9.png (or .png)
- \row
- \li \l SwipeDelegate
- \li background
- \li disabled, pressed, focused, highlighted, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li \l SwipeView
- \li background
- \li vertical, horizontal, disabled, interactive, focused, mirrored
- \li .9.png (or .png)
- \row
- \li \l Switch
- \li background
- \li disabled, pressed, checked, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li handle
- \li same as above
- \li .9.png (or .png)
- \row
- \li
- \li indicator
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l SwitchDelegate
- \li background
- \li disabled, pressed, checked, focused, highlighted, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li
- \li handle
- \li same as above
- \li .9.png (or .png)
- \row
- \li
- \li indicator
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l TabBar
- \li background
- \li disabled, header, footer, mirrored
- \li .9.png (or .png)
- \row
- \li \l TabButton
- \li background
- \li disabled, pressed, checked, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li \l TextArea
- \li background
- \li disabled, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li \l TextField
- \li background
- \li disabled, focused, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li \l ToolBar
- \li background
- \li disabled, header, footer, mirrored
- \li .9.png (or .png)
- \row
- \li \l ToolButton
- \li background
- \li disabled, pressed, checked, checkable, focused, highlighted, flat, mirrored, hovered
- \li .9.png (or .png)
- \row
- \li \l ToolSeparator
- \li background
- \li vertical, horizontal, disabled, mirrored
- \li .9.png (or .png)
- \row
- \li
- \li separator
- \li same as above
- \li .9.png (or .png)
- \row
- \li \l ToolTip
- \li background
- \li
- \li .9.png (or .png)
- \row
- \li \l Tumbler
- \li background
- \li disabled, focused, mirrored, hovered
- \li .9.png (or .png)
- \endtable
-
- \section2 Asset Examples
-
- The following table lists examples of assets (taken from the default
- Imagine style assets) for all controls. The list is not exhaustive,
- as not all elements need assets, but it can be used as a guide
- when creating your own assets.
-
- \table
- \header
- \li Control
- \li Element
- \li States
- \li Asset
- \li Notes
- \row
- \li \l ApplicationWindow
- \li background
- \li
- \li \image imagine/images/applicationwindow-background.png
- \li \l {sup1}{See footnote} \sup 1
- \row
- \li
- \li overlay
- \li
- \li \image imagine/images/applicationwindow-overlay.png
- \li \l {sup1}{See footnote} \sup 1
- \row
- \li
- \li overlay
- \li modal
- \li \image imagine/images/applicationwindow-overlay-modal.png
- \li \l {sup1}{See footnote} \sup 1
- \row
- \li \l Button
- \li background
- \li
- \li \image imagine/images/button-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/button-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/button-background-focused.9.png
- \li
- \row
- \li
- \li background
- \li pressed
- \li \image imagine/images/button-background-pressed.9.png
- \li
- \row
- \li
- \li background
- \li checked
- \li \image imagine/images/button-background-checked.9.png
- \li
- \row
- \li
- \li background
- \li checked, disabled
- \li \image imagine/images/button-background-checked-disabled.9.png
- \li
- \row
- \li
- \li background
- \li checked, focused
- \li \image imagine/images/button-background-checked-focused.9.png
- \li
- \row
- \li
- \li background
- \li checked, hovered
- \li \image imagine/images/button-background-checked-hovered.9.png
- \li
- \row
- \li
- \li background
- \li highlighted
- \li \image imagine/images/button-background-highlighted.9.png
- \li
- \row
- \li
- \li background
- \li highlighted, disabled
- \li \image imagine/images/button-background-highlighted-disabled.9.png
- \li
- \row
- \li
- \li background
- \li highlighted, focused
- \li \image imagine/images/button-background-highlighted-focused.9.png
- \li
- \row
- \li
- \li background
- \li highlighted, hovered
- \li \image imagine/images/button-background-highlighted-hovered.9.png
- \li
- \row
- \li
- \li background
- \li highlighted, pressed
- \li \image imagine/images/button-background-highlighted-pressed.9.png
- \li
- \row
- \li
- \li background
- \li highlighted, checked
- \li \image imagine/images/button-background-highlighted-checked.9.png
- \li
- \row
- \li
- \li background
- \li hovered
- \li \image imagine/images/button-background-hovered.9.png
- \li
- \row
- \li
- \li background
- \li flat
- \li \image imagine/images/button-background-flat.9.png
- \li
- \row
- \li
- \li background
- \li flat, disabled
- \li \image imagine/images/button-background-flat-disabled.9.png
- \li
- \row
- \li
- \li background
- \li flat, hovered
- \li \image imagine/images/button-background-flat-hovered.9.png
- \li
- \row
- \li
- \li background
- \li flat, pressed
- \li \image imagine/images/button-background-flat-pressed.9.png
- \li
- \row
- \li
- \li background
- \li flat, checked
- \li \image imagine/images/button-background-flat-checked.9.png
- \li
- \row
- \li \l CheckBox
- \li indicator
- \li
- \li \image imagine/images/checkbox-indicator.png
- \li
- \row
- \li
- \li indicator
- \li disabled
- \li \image imagine/images/checkbox-indicator-disabled.png
- \li
- \row
- \li
- \li indicator
- \li pressed
- \li \image imagine/images/checkbox-indicator-pressed.png
- \li
- \row
- \li
- \li indicator
- \li checked
- \li \image imagine/images/checkbox-indicator-checked.png
- \li
- \row
- \li
- \li indicator
- \li checked, pressed
- \li \image imagine/images/checkbox-indicator-checked-pressed.png
- \li
- \row
- \li
- \li indicator
- \li checked, hovered
- \li \image imagine/images/checkbox-indicator-checked-hovered.png
- \li
- \row
- \li
- \li indicator
- \li checked, focused
- \li \image imagine/images/checkbox-indicator-checked-focused.png
- \li
- \row
- \li
- \li indicator
- \li partially, checked
- \li \image imagine/images/checkbox-indicator-partially-checked.png
- \li
- \row
- \li
- \li indicator
- \li partially, checked, pressed
- \li \image imagine/images/checkbox-indicator-partially-checked-pressed.png
- \li
- \row
- \li
- \li indicator
- \li partially, checked, focused
- \li \image imagine/images/checkbox-indicator-partially-checked-focused.png
- \li
- \row
- \li
- \li indicator
- \li partially, checked, hovered
- \li \image imagine/images/checkbox-indicator-partially-checked-hovered.png
- \li
- \row
- \li
- \li indicator
- \li focused
- \li \image imagine/images/checkbox-indicator-focused.png
- \li
- \row
- \li
- \li indicator
- \li hovered
- \li \image imagine/images/checkbox-indicator-hovered.png
- \li
- \row
- \li \l CheckDelegate
- \li background
- \li
- \li \image imagine/images/checkdelegate-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/checkdelegate-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li pressed
- \li \image imagine/images/checkdelegate-background-pressed.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/checkdelegate-background-focused.9.png
- \li
- \row
- \li
- \li background
- \li hovered
- \li \image imagine/images/checkdelegate-background-hovered.9.png
- \li
- \row
- \li
- \li indicator
- \li
- \li \image imagine/images/checkdelegate-indicator.png
- \li
- \row
- \li
- \li indicator
- \li disabled
- \li \image imagine/images/checkdelegate-indicator-disabled.png
- \li
- \row
- \li
- \li indicator
- \li pressed
- \li \image imagine/images/checkdelegate-indicator-pressed.png
- \li
- \row
- \li
- \li indicator
- \li checked
- \li \image imagine/images/checkdelegate-indicator-checked.png
- \li
- \row
- \li
- \li indicator
- \li checked, pressed
- \li \image imagine/images/checkdelegate-indicator-checked-pressed.png
- \li
- \row
- \li
- \li indicator
- \li checked, focused
- \li \image imagine/images/checkdelegate-indicator-checked-focused.png
- \li
- \row
- \li
- \li indicator
- \li checked, hovered
- \li \image imagine/images/checkdelegate-indicator-checked-hovered.png
- \li
- \row
- \li
- \li indicator
- \li focused
- \li \image imagine/images/checkdelegate-indicator-focused.png
- \li
- \row
- \li
- \li indicator
- \li hovered
- \li \image imagine/images/checkdelegate-indicator-hovered.png
- \li
- \row
- \li
- \li indicator
- \li partially, checked
- \li \image imagine/images/checkdelegate-indicator-partially-checked.png
- \li
- \row
- \li
- \li indicator
- \li partially, checked, pressed
- \li \image imagine/images/checkdelegate-indicator-partially-checked-pressed.png
- \li
- \row
- \li
- \li indicator
- \li partially, checked, focused
- \li \image imagine/images/checkdelegate-indicator-partially-checked-focused.png
- \li
- \row
- \li
- \li indicator
- \li partially, checked, hovered
- \li \image imagine/images/checkdelegate-indicator-partially-checked-hovered.png
- \li
- \row
- \li
- \li indicator
- \li hovered
- \li \image imagine/images/checkdelegate-indicator-hovered.png
- \li
- \row
- \li \l ComboBox
- \li background
- \li
- \li \image imagine/images/combobox-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/combobox-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/combobox-background-focused.9.png
- \li
- \row
- \li
- \li background
- \li hovered
- \li \image imagine/images/combobox-background-hovered.9.png
- \li
- \row
- \li
- \li background
- \li pressed
- \li \image imagine/images/combobox-background-pressed.9.png
- \li
- \row
- \li
- \li background
- \li open
- \li \image imagine/images/combobox-background-open.9.png
- \li
- \row
- \li
- \li background
- \li editable
- \li \image imagine/images/combobox-background-editable.9.png
- \li
- \row
- \li
- \li background
- \li editable, focused
- \li \image imagine/images/combobox-background-editable-focused.9.png
- \li
- \row
- \li
- \li background
- \li editable, disabled
- \li \image imagine/images/combobox-background-editable-disabled.9.png
- \li
- \row
- \li
- \li indicator
- \li
- \li \image imagine/images/combobox-indicator.png
- \li
- \row
- \li
- \li indicator
- \li disabled
- \li \image imagine/images/combobox-indicator-disabled.png
- \li
- \row
- \li
- \li indicator
- \li editable
- \li \image imagine/images/combobox-indicator-editable.png
- \li
- \row
- \li
- \li indicator
- \li editable, disabled
- \li \image imagine/images/combobox-indicator-editable-disabled.png
- \li
- \row
- \li
- \li indicator
- \li editable, mirrored
- \li \image imagine/images/combobox-indicator-editable-mirrored.png
- \li
- \row
- \li
- \li indicator
- \li editable, mirrored, disabled
- \li \image imagine/images/combobox-indicator-editable-mirrored-disabled.png
- \li
- \row
- \li
- \li popup
- \li
- \li \image imagine/images/combobox-popup.9.png
- \li
- \row
- \li \l DelayButton
- \li background
- \li
- \li \image imagine/images/delaybutton-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/delaybutton-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li disabled, checked
- \li \image imagine/images/delaybutton-background-disabled-checked.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/delaybutton-background-focused.9.png
- \li
- \row
- \li
- \li background
- \li pressed
- \li \image imagine/images/delaybutton-background-pressed.9.png
- \li
- \row
- \li
- \li background
- \li checked
- \li \image imagine/images/delaybutton-background-checked.9.png
- \li
- \row
- \li
- \li background
- \li checked, focused
- \li \image imagine/images/delaybutton-background-checked-focused.9.png
- \li
- \row
- \li
- \li background
- \li checked, hovered
- \li \image imagine/images/delaybutton-background-checked-hovered.9.png
- \li
- \row
- \li
- \li background
- \li hovered
- \li \image imagine/images/delaybutton-background-hovered.9.png
- \li
- \row
- \li
- \li progress
- \li
- \li \image imagine/images/delaybutton-progress.9.png
- \li
- \row
- \li
- \li progress
- \li disabled
- \li \image imagine/images/delaybutton-progress-disabled.9.png
- \li
- \row
- \li
- \li mask
- \li
- \li \image imagine/images/delaybutton-mask.9.png
- \li
- \row
- \li \l Dial
- \li background
- \li
- \li \image imagine/images/dial-background.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/dial-background-disabled.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/dial-background-focused.png
- \li
- \row
- \li
- \li handle
- \li
- \li \image imagine/images/dial-handle.png
- \li
- \row
- \li
- \li handle
- \li disabled
- \li \image imagine/images/dial-handle-disabled.png
- \li
- \row
- \li
- \li handle
- \li focused
- \li \image imagine/images/dial-handle-focused.png
- \li
- \row
- \li
- \li handle
- \li focused, pressed
- \li \image imagine/images/dial-handle-focused-pressed.png
- \li
- \row
- \li
- \li handle
- \li focused, hovered
- \li \image imagine/images/dial-handle-focused-hovered.png
- \li
- \row
- \li
- \li handle
- \li pressed
- \li \image imagine/images/dial-handle-pressed.png
- \li
- \row
- \li
- \li handle
- \li hovered
- \li \image imagine/images/dial-handle-hovered.png
- \li
- \row
- \li \l Dialog
- \li background
- \li
- \li \image imagine/images/dialog-background.9.png
- \li
- \row
- \li
- \li overlay
- \li
- \li \image imagine/images/dialog-overlay.png
- \li \l {sup1}{See footnote} \sup 1
- \row
- \li
- \li overlay
- \li modal
- \li \image imagine/images/dialog-overlay-modal.png
- \li \l {sup1}{See footnote} \sup 1
- \row
- \li \l DialogButtonBox
- \li background
- \li
- \li \image imagine/images/dialogbuttonbox-background.9.png
- \li
- \row
- \li \l Drawer
- \li background
- \li left
- \li \image imagine/images/drawer-background-left.9.png
- \li
- \row
- \li
- \li background
- \li right
- \li \image imagine/images/drawer-background-right.9.png
- \li
- \row
- \li
- \li background
- \li top
- \li \image imagine/images/drawer-background-top.9.png
- \li
- \row
- \li
- \li background
- \li bottom
- \li \image imagine/images/drawer-background-bottom.9.png
- \li
- \row
- \li
- \li overlay
- \li
- \li \image imagine/images/drawer-overlay.png
- \li \l {sup1}{See footnote} \sup 1
- \row
- \li
- \li overlay
- \li modal
- \li \image imagine/images/drawer-overlay-modal.png
- \li \l {sup1}{See footnote} \sup 1
- \row
- \li \l Frame
- \li background
- \li
- \li \image imagine/images/frame-background.9.png
- \li
- \row
- \li \l GroupBox
- \li background
- \li
- \li \image imagine/images/groupbox-background.9.png
- \li
- \row
- \li
- \li title
- \li
- \li \image imagine/images/groupbox-title.9.png
- \li
- \row
- \li \l ItemDelegate
- \li background
- \li
- \li \image imagine/images/itemdelegate-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/itemdelegate-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li pressed
- \li \image imagine/images/itemdelegate-background-pressed.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/itemdelegate-background-focused.9.png
- \li
- \row
- \li
- \li background
- \li hovered
- \li \image imagine/images/itemdelegate-background-hovered.9.png
- \li
- \row
- \li
- \li background
- \li highlighted
- \li \image imagine/images/itemdelegate-background-highlighted.9.png
- \li
- \row
- \li \l Menu
- \li background
- \li
- \li \image imagine/images/menu-background.9.png
- \li
- \row
- \li \l MenuItem
- \li background
- \li
- \li \image imagine/images/menuitem-background.9.png
- \li
- \row
- \li
- \li background
- \li highlighted
- \li \image imagine/images/menuitem-background-highlighted.9.png
- \li
- \row
- \li
- \li arrow
- \li
- \li \image imagine/images/menuitem-arrow.png
- \li
- \row
- \li
- \li arrow
- \li mirrored
- \li \image imagine/images/menuitem-arrow-mirrored.png
- \li
- \row
- \li
- \li arrow
- \li disabled
- \li \image imagine/images/menuitem-arrow-disabled.png
- \li
- \row
- \li
- \li arrow
- \li mirrored, disabled
- \li \image imagine/images/menuitem-arrow-mirrored-disabled.png
- \li
- \row
- \li
- \li indicator
- \li
- \li \image imagine/images/menuitem-indicator.png
- \li
- \row
- \li
- \li indicator
- \li disabled
- \li \image imagine/images/menuitem-indicator-disabled.png
- \li
- \row
- \li
- \li indicator
- \li pressed
- \li \image imagine/images/menuitem-indicator-pressed.png
- \li
- \row
- \li
- \li indicator
- \li checked
- \li \image imagine/images/menuitem-indicator-checked.png
- \li
- \row
- \li
- \li indicator
- \li checked, pressed
- \li \image imagine/images/menuitem-indicator-checked-pressed.png
- \li
- \row
- \li
- \li indicator
- \li checked, focused
- \li \image imagine/images/menuitem-indicator-checked-focused.png
- \li
- \row
- \li
- \li indicator
- \li checked, hovered
- \li \image imagine/images/menuitem-indicator-checked-hovered.png
- \li
- \row
- \li
- \li indicator
- \li focused
- \li \image imagine/images/menuitem-indicator-focused.png
- \li
- \row
- \li
- \li indicator
- \li hovered
- \li \image imagine/images/menuitem-indicator-hovered.png
- \li
- \row
- \li \l MenuSeparator
- \li separator
- \li
- \li \image imagine/images/menuseparator-separator.9.png
- \li
- \row
- \li \l Page
- \li background
- \li
- \li \image imagine/images/page-background.png
- \li \l {sup1}{See footnote} \sup 1
- \row
- \li \l PageIndicator
- \li delegate
- \li
- \li \image imagine/images/pageindicator-delegate.png
- \li
- \row
- \li
- \li delegate
- \li disabled
- \li \image imagine/images/pageindicator-delegate-disabled.png
- \li
- \row
- \li
- \li delegate
- \li disabled, current
- \li \image imagine/images/pageindicator-delegate-disabled-current.png
- \li
- \row
- \li
- \li delegate
- \li pressed
- \li \image imagine/images/pageindicator-delegate-pressed.png
- \li
- \row
- \li
- \li delegate
- \li current
- \li \image imagine/images/pageindicator-delegate-current.png
- \li
- \row
- \li \l Pane
- \li background
- \li
- \li \image imagine/images/pane-background.9.png
- \li
- \row
- \li \l Popup
- \li background
- \li
- \li \image imagine/images/popup-background.9.png
- \li \l {sup1}{See footnote} \sup 1
- \row
- \li
- \li overlay
- \li
- \li \image imagine/images/popup-overlay.png
- \li \l {sup1}{See footnote} \sup 1
- \row
- \li
- \li overlay
- \li modal
- \li \image imagine/images/popup-overlay-modal.png
- \li
- \row
- \li \l ProgressBar
- \li background
- \li
- \li \image imagine/images/progressbar-background.9.png
- \li
- \row
- \li
- \li progress
- \li
- \li \image imagine/images/progressbar-progress.png
- \li
- \row
- \li
- \li mask
- \li
- \li \image imagine/images/progressbar-mask.9.png
- \li
- \row
- \li \l RadioButton
- \li indicator
- \li
- \li \image imagine/images/radiobutton-indicator.png
- \li
- \row
- \li
- \li indicator
- \li disabled
- \li \image imagine/images/radiobutton-indicator-disabled.png
- \li
- \row
- \li
- \li indicator
- \li pressed
- \li \image imagine/images/radiobutton-indicator-pressed.png
- \li
- \row
- \li
- \li indicator
- \li checked
- \li \image imagine/images/radiobutton-indicator-checked.png
- \li
- \row
- \li
- \li indicator
- \li checked, focused
- \li \image imagine/images/radiobutton-indicator-checked-focused.png
- \li
- \row
- \li
- \li indicator
- \li checked, hovered
- \li \image imagine/images/radiobutton-indicator-checked-hovered.png
- \li
- \row
- \li
- \li indicator
- \li checked, pressed
- \li \image imagine/images/radiobutton-indicator-checked-pressed.png
- \li
- \row
- \li
- \li indicator
- \li focused
- \li \image imagine/images/radiobutton-indicator-focused.png
- \li
- \row
- \li
- \li indicator
- \li hovered
- \li \image imagine/images/radiobutton-indicator-hovered.png
- \li
- \row
- \li \l RadioDelegate
- \li background
- \li
- \li \image imagine/images/radiodelegate-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/radiodelegate-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li pressed
- \li \image imagine/images/radiodelegate-background-pressed.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/radiodelegate-background-focused.9.png
- \li
- \row
- \li
- \li background
- \li hovered
- \li \image imagine/images/radiodelegate-background-hovered.9.png
- \li
- \row
- \li
- \li indicator
- \li
- \li \image imagine/images/radiodelegate-indicator.png
- \li
- \row
- \li
- \li indicator
- \li disabled
- \li \image imagine/images/radiodelegate-indicator-disabled.png
- \li
- \row
- \li
- \li indicator
- \li pressed
- \li \image imagine/images/radiodelegate-indicator-pressed.png
- \li
- \row
- \li
- \li indicator
- \li checked
- \li \image imagine/images/radiodelegate-indicator-checked.png
- \li
- \row
- \li
- \li indicator
- \li checked, focused
- \li \image imagine/images/radiodelegate-indicator-checked-focused.png
- \li
- \row
- \li
- \li indicator
- \li checked, hovered
- \li \image imagine/images/radiodelegate-indicator-checked-hovered.png
- \li
- \row
- \li
- \li indicator
- \li checked, pressed
- \li \image imagine/images/radiodelegate-indicator-checked-pressed.png
- \li
- \row
- \li
- \li indicator
- \li focused
- \li \image imagine/images/radiodelegate-indicator-focused.png
- \li
- \row
- \li
- \li indicator
- \li hovered
- \li \image imagine/images/radiodelegate-indicator-hovered.png
- \li
- \row
- \li \l RangeSlider
- \li background
- \li vertical
- \li \image imagine/images/rangeslider-background-vertical.9.png
- \li
- \row
- \li
- \li background
- \li horizontal
- \li \image imagine/images/rangeslider-background-horizontal.9.png
- \li
- \row
- \li
- \li progress
- \li vertical
- \li \image imagine/images/rangeslider-progress-vertical.9.png
- \li
- \row
- \li
- \li progress
- \li vertical, disabled
- \li \image imagine/images/rangeslider-progress-vertical-disabled.9.png
- \li
- \row
- \li
- \li progress
- \li horizontal
- \li \image imagine/images/rangeslider-progress-horizontal.9.png
- \li
- \row
- \li
- \li progress
- \li horizontal, disabled
- \li \image imagine/images/rangeslider-progress-horizontal-disabled.9.png
- \li
- \row
- \li
- \li handle
- \li
- \li \image imagine/images/rangeslider-handle.png
- \li
- \row
- \li
- \li handle
- \li disabled
- \li \image imagine/images/rangeslider-handle-disabled.png
- \li
- \row
- \li
- \li handle
- \li focused
- \li \image imagine/images/rangeslider-handle-focused.png
- \li
- \row
- \li
- \li handle
- \li focused, hovered
- \li \image imagine/images/rangeslider-handle-focused-hovered.png
- \li
- \row
- \li
- \li handle
- \li focused, pressed
- \li \image imagine/images/rangeslider-handle-focused-pressed.png
- \li
- \row
- \li
- \li handle
- \li hovered
- \li \image imagine/images/rangeslider-handle-hovered.png
- \li
- \row
- \li
- \li handle
- \li pressed
- \li \image imagine/images/rangeslider-handle-pressed.png
- \li
- \row
- \li \l RoundButton
- \li background
- \li
- \li \image imagine/images/roundbutton-background.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/roundbutton-background-disabled.png
- \li
- \row
- \li
- \li background
- \li disabled, checked
- \li \image imagine/images/roundbutton-background-disabled-checked.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/roundbutton-background-focused.png
- \li
- \row
- \li
- \li background
- \li pressed
- \li \image imagine/images/roundbutton-background-pressed.png
- \li
- \row
- \li
- \li background
- \li checked
- \li \image imagine/images/roundbutton-background-checked.png
- \li
- \row
- \li
- \li background
- \li checked, focused
- \li \image imagine/images/roundbutton-background-checked-focused.png
- \li
- \row
- \li
- \li background
- \li checked, hovered
- \li \image imagine/images/roundbutton-background-checked-hovered.png
- \li
- \row
- \li
- \li background
- \li highlighted
- \li \image imagine/images/roundbutton-background-highlighted.png
- \li
- \row
- \li
- \li background
- \li highlighted, pressed
- \li \image imagine/images/roundbutton-background-highlighted-pressed.png
- \li
- \row
- \li
- \li background
- \li highlighted, focused
- \li \image imagine/images/roundbutton-background-highlighted-focused.png
- \li
- \row
- \li
- \li background
- \li highlighted, hovered
- \li \image imagine/images/roundbutton-background-highlighted-hovered.png
- \li
- \row
- \li
- \li background
- \li hovered
- \li \image imagine/images/roundbutton-background-hovered.png
- \li
- \row
- \li \l ScrollBar
- \li handle
- \li
- \li \image imagine/images/scrollbar-handle.png
- \li
- \row
- \li
- \li handle
- \li disabled
- \li \image imagine/images/scrollbar-handle-disabled.png
- \li
- \row
- \li
- \li handle
- \li interactive
- \li \image imagine/images/scrollbar-handle-interactive.png
- \li
- \row
- \li
- \li handle
- \li interactive, disabled
- \li \image imagine/images/scrollbar-handle-interactive-disabled.png
- \li
- \row
- \li
- \li handle
- \li interactive, pressed
- \li \image imagine/images/scrollbar-handle-interactive-pressed.png
- \li
- \row
- \li
- \li handle
- \li interactive, hovered
- \li \image imagine/images/scrollbar-handle-interactive-hovered.png
- \li
- \row
- \li \l ScrollIndicator
- \li handle
- \li
- \li \image imagine/images/scrollindicator-handle.png
- \li
- \row
- \li \l Slider
- \li background
- \li vertical
- \li \image imagine/images/slider-background-vertical.9.png
- \li
- \row
- \li
- \li background
- \li horizontal
- \li \image imagine/images/slider-background-horizontal.9.png
- \li
- \row
- \li
- \li progress
- \li vertical
- \li \image imagine/images/slider-progress-vertical.9.png
- \li
- \row
- \li
- \li progress
- \li vertical, disabled
- \li \image imagine/images/slider-progress-vertical-disabled.9.png
- \li
- \row
- \li
- \li progress
- \li horizontal
- \li \image imagine/images/slider-progress-horizontal.9.png
- \li
- \row
- \li
- \li progress
- \li horizontal, disabled
- \li \image imagine/images/slider-progress-horizontal-disabled.9.png
- \li
- \row
- \li
- \li handle
- \li
- \li \image imagine/images/slider-handle.png
- \li
- \row
- \li
- \li handle
- \li disabled
- \li \image imagine/images/slider-handle-disabled.png
- \li
- \row
- \li
- \li handle
- \li focused
- \li \image imagine/images/slider-handle-focused.png
- \li
- \row
- \li
- \li handle
- \li focused, hovered
- \li \image imagine/images/slider-handle-focused-hovered.png
- \li
- \row
- \li
- \li handle
- \li focused, pressed
- \li \image imagine/images/slider-handle-focused-pressed.png
- \li
- \row
- \li
- \li handle
- \li hovered
- \li \image imagine/images/slider-handle-hovered.png
- \li
- \row
- \li
- \li handle
- \li pressed
- \li \image imagine/images/slider-handle-pressed.png
- \li
- \row
- \li \l SpinBox
- \li background
- \li
- \li \image imagine/images/spinbox-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/spinbox-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/spinbox-background-focused.9.png
- \li
- \row
- \li
- \li background
- \li editable
- \li \image imagine/images/spinbox-background-editable.9.png
- \li
- \row
- \li
- \li indicator
- \li up
- \li \image imagine/images/spinbox-indicator-up.9.png
- \li
- \row
- \li
- \li indicator
- \li up, disabled
- \li \image imagine/images/spinbox-indicator-up-disabled.9.png
- \li
- \row
- \li
- \li indicator
- \li up, pressed
- \li \image imagine/images/spinbox-indicator-up-pressed.9.png
- \li
- \row
- \li
- \li indicator
- \li up, focused
- \li \image imagine/images/spinbox-indicator-up-focused.9.png
- \li
- \row
- \li
- \li indicator
- \li up, mirrored
- \li \image imagine/images/spinbox-indicator-up-mirrored.9.png
- \li
- \row
- \li
- \li indicator
- \li up, hovered
- \li \image imagine/images/spinbox-indicator-up-hovered.9.png
- \li
- \row
- \li
- \li indicator
- \li up, editable
- \li \image imagine/images/spinbox-indicator-up-editable.9.png
- \li
- \row
- \li
- \li indicator
- \li up, editable, pressed
- \li \image imagine/images/spinbox-indicator-up-editable-pressed.9.png
- \li
- \row
- \li
- \li indicator
- \li up, editable, focused
- \li \image imagine/images/spinbox-indicator-up-editable-focused.9.png
- \li
- \row
- \li
- \li indicator
- \li up, editable, mirrored
- \li \image imagine/images/spinbox-indicator-up-editable-mirrored.9.png
- \li
- \row
- \li
- \li indicator
- \li up, editable, hovered
- \li \image imagine/images/spinbox-indicator-up-editable-hovered.9.png
- \li
- \row
- \li
- \li indicator
- \li down
- \li \image imagine/images/spinbox-indicator-down.9.png
- \li
- \row
- \li
- \li indicator
- \li down, disabled
- \li \image imagine/images/spinbox-indicator-down-disabled.9.png
- \li
- \row
- \li
- \li indicator
- \li down, pressed
- \li \image imagine/images/spinbox-indicator-down-pressed.9.png
- \li
- \row
- \li
- \li indicator
- \li down, focused
- \li \image imagine/images/spinbox-indicator-down-focused.9.png
- \li
- \row
- \li
- \li indicator
- \li down, mirrored
- \li \image imagine/images/spinbox-indicator-down-mirrored.9.png
- \li
- \row
- \li
- \li indicator
- \li down, hovered
- \li \image imagine/images/spinbox-indicator-down-hovered.9.png
- \li
- \row
- \li
- \li indicator
- \li down, editable
- \li \image imagine/images/spinbox-indicator-down-editable.9.png
- \li
- \row
- \li
- \li indicator
- \li down, editable, pressed
- \li \image imagine/images/spinbox-indicator-down-editable-pressed.9.png
- \li
- \row
- \li
- \li indicator
- \li down, editable, focused
- \li \image imagine/images/spinbox-indicator-down-editable-focused.9.png
- \li
- \row
- \li
- \li indicator
- \li down, editable, mirrored
- \li \image imagine/images/spinbox-indicator-down-editable-mirrored.9.png
- \li
- \row
- \li
- \li indicator
- \li down, editable, hovered
- \li \image imagine/images/spinbox-indicator-down-editable-hovered.9.png
- \li
- \row
- \li \l SwipeDelegate
- \li background
- \li
- \li \image imagine/images/swipedelegate-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/swipedelegate-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li pressed
- \li \image imagine/images/swipedelegate-background-pressed.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/swipedelegate-background-focused.9.png
- \li
- \row
- \li
- \li background
- \li hovered
- \li \image imagine/images/swipedelegate-background-hovered.9.png
- \li
- \row
- \li \l Switch
- \li indicator
- \li
- \li \image imagine/images/switch-indicator.png
- \li
- \row
- \li
- \li indicator
- \li disabled
- \li \image imagine/images/switch-indicator-disabled.png
- \li
- \row
- \li
- \li indicator
- \li pressed
- \li \image imagine/images/switch-indicator-pressed.png
- \li
- \row
- \li
- \li indicator
- \li checked
- \li \image imagine/images/switch-indicator-checked.png
- \li
- \row
- \li
- \li indicator
- \li checked, focused
- \li \image imagine/images/switch-indicator-checked-focused.png
- \li
- \row
- \li
- \li indicator
- \li checked, hovered
- \li \image imagine/images/switch-indicator-checked-hovered.png
- \li
- \row
- \li
- \li indicator
- \li checked, pressed
- \li \image imagine/images/switch-indicator-checked-pressed.png
- \li
- \row
- \li
- \li indicator
- \li focused
- \li \image imagine/images/switch-indicator-focused.png
- \li
- \row
- \li
- \li indicator
- \li hovered
- \li \image imagine/images/switch-indicator-hovered.png
- \li
- \row
- \li
- \li handle
- \li
- \li \image imagine/images/switch-handle.png
- \li
- \row
- \li
- \li handle
- \li disabled
- \li \image imagine/images/switch-handle-disabled.png
- \li
- \row
- \li
- \li handle
- \li pressed
- \li \image imagine/images/switch-handle-pressed.png
- \li
- \row
- \li \l SwitchDelegate
- \li background
- \li
- \li \image imagine/images/switchdelegate-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/switchdelegate-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li pressed
- \li \image imagine/images/switchdelegate-background-pressed.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/switchdelegate-background-focused.9.png
- \li
- \row
- \li
- \li background
- \li hovered
- \li \image imagine/images/switchdelegate-background-hovered.9.png
- \li
- \row
- \li
- \li indicator
- \li
- \li \image imagine/images/switchdelegate-indicator.png
- \li
- \row
- \li
- \li indicator
- \li disabled
- \li \image imagine/images/switchdelegate-indicator-disabled.png
- \li
- \row
- \li
- \li indicator
- \li pressed
- \li \image imagine/images/switchdelegate-indicator-pressed.png
- \li
- \row
- \li
- \li indicator
- \li checked
- \li \image imagine/images/switchdelegate-indicator-checked.png
- \li
- \row
- \li
- \li indicator
- \li checked, focused
- \li \image imagine/images/switchdelegate-indicator-checked-focused.png
- \li
- \row
- \li
- \li indicator
- \li checked, hovered
- \li \image imagine/images/switchdelegate-indicator-checked-hovered.png
- \li
- \row
- \li
- \li indicator
- \li checked, pressed
- \li \image imagine/images/switchdelegate-indicator-checked-pressed.png
- \li
- \row
- \li
- \li indicator
- \li focused
- \li \image imagine/images/switchdelegate-indicator-focused.png
- \li
- \row
- \li
- \li indicator
- \li hovered
- \li \image imagine/images/switchdelegate-indicator-hovered.png
- \li
- \row
- \li
- \li handle
- \li
- \li \image imagine/images/switchdelegate-handle.png
- \li
- \row
- \li
- \li handle
- \li disabled
- \li \image imagine/images/switchdelegate-handle-disabled.png
- \li
- \row
- \li \l TabBar
- \li background
- \li
- \li \image imagine/images/tabbar-background.png
- \li
- \row
- \li \l TabButton
- \li background
- \li
- \li \image imagine/images/tabbutton-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/tabbutton-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li pressed
- \li \image imagine/images/tabbutton-background-pressed.9.png
- \li
- \row
- \li
- \li background
- \li checked
- \li \image imagine/images/tabbutton-background-checked.9.png
- \li
- \row
- \li
- \li background
- \li hovered
- \li \image imagine/images/tabbutton-background-hovered.9.png
- \li
- \row
- \li
- \li background
- \li disabled, checked
- \li \image imagine/images/tabbutton-background-disabled-checked.9.png
- \li
- \row
- \li \l TextArea
- \li background
- \li
- \li \image imagine/images/textarea-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/textarea-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/textarea-background-focused.9.png
- \li
- \row
- \li \l TextField
- \li background
- \li
- \li \image imagine/images/textfield-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled
- \li \image imagine/images/textfield-background-disabled.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/textfield-background-focused.9.png
- \li
- \row
- \li \l ToolBar
- \li background
- \li
- \li \image imagine/images/toolbar-background.png
- \li
- \row
- \li \l ToolButton
- \li background
- \li
- \li \image imagine/images/toolbutton-background.9.png
- \li
- \row
- \li
- \li background
- \li disabled, checked
- \li \image imagine/images/toolbutton-background-disabled-checked.9.png
- \li
- \row
- \li
- \li background
- \li focused
- \li \image imagine/images/toolbutton-background-focused.9.png
- \li
- \row
- \li
- \li background
- \li pressed
- \li \image imagine/images/toolbutton-background-pressed.9.png
- \li
- \row
- \li
- \li background
- \li checked
- \li \image imagine/images/toolbutton-background-checked.9.png
- \li
- \row
- \li
- \li background
- \li checked, focused
- \li \image imagine/images/toolbutton-background-checked-focused.9.png
- \li
- \row
- \li
- \li background
- \li checked, hovered
- \li \image imagine/images/toolbutton-background-checked-hovered.9.png
- \li
- \row
- \li
- \li background
- \li hovered
- \li \image imagine/images/toolbutton-background-hovered.9.png
- \li
- \row
- \li \l ToolSeparator
- \li separator
- \li horizontal
- \li \image imagine/images/toolseparator-separator-horizontal.9.png
- \li
- \row
- \li
- \li separator
- \li vertical
- \li \image imagine/images/toolseparator-separator-vertical.9.png
- \li
- \row
- \li \l ToolTip
- \li background
- \li
- \li \image imagine/images/tooltip-background.9.png
- \li
- \endtable
-
- \target sup1
- \sup 1 A 1x1 image containing one color, stretched to fill the control.
-
- \section2 9-Patch Images
-
- The Imagine style uses \l
- {https://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch}{9-patch
- images} in order to give designers control over how a particular element
- responds to being resized. Here is an example of a 9-patch image that
- represents a \l {Button}'s \l {Control::}{background}, alongside a
- magnified version (to make it easier to see the 9-patch lines):
-
- \image qtquickcontrols2-imagine-9-patch-4x.png
-
- The content of the image is 44 pixels wide by 32 pixels high. Every 9-patch
- image needs a one pixel thick line (collectively referred to as
- "9-patch lines") around every side, so the actual size of the image becomes
- 46 pixels wide by 34 pixels high. Note that the 9-patch lines must be one
- pixel thick regardless of the target DPI of the image. For example,
- the 9-patch lines for button-background.9.png and button-background@2x.9.png
- must both be one pixel thick.
-
- The 9-patch lines must be black, and the remaining areas must be transparent
- or white:
-
- \image qtquickcontrols2-imagine-9-patch-size.png
-
- \section3 Stretchable Areas
-
- The 9-patch lines on the top and left edges determine which parts of the
- image are stretched when it is resized.
-
- Below are examples of the 9-patch image being resized to one and a half
- times its original size in various dimensions:
-
- \image qtquickcontrols2-imagine-9-patch-resized-stretchable.png
-
- Notice how the the rounded corners keep their original size, as they are
- outside the range of the lines.
-
- \section3 Padding Areas
-
- The 9-patch lines on the right and bottom edges determine how much space
- is available for the control's \l {Control::}{contentItem}, which means it
- can also be thought of as controlling the \l {Control::}{padding}. For a
- diagram that illustrates padding, see \l {Control Layout}.
-
- Below are more examples of the 9-patch image being resized, but this time
- demonstrating how the padding 9-patch lines work.
-
- \image qtquickcontrols2-imagine-9-patch-resized-padding.png
-
- The \c contentItem can take up as much space as it needs within the shaded
- areas. If the padding lines are left out, the \c contentItem will take as
- much space as it needs without exceeding the stretchable areas.
-
- \section3 Inset Areas
-
- In some cases it is necessary for a control to have a drop shadow, for
- example. However, if we were to add a drop shadow to the button above, it
- would affect its size, which presents problems for both layouting and
- mouse/touch input boundaries.
-
- Inset areas accounts for this by telling the control that a certain area of
- the 9-patch image should go outside of the control:
-
- \image qtquickcontrols2-imagine-9-patch-inset.png
-
- In the image below, the dashed line represents the button's clickable area,
- as well as the space that it will take up in a layout. The shadow is marked
- by the striped area behind it:
-
- \image qtquickcontrols2-imagine-9-patch-inset-boundaries.png
-
- \section3 Exporting 9-Patch Images
-
- Various vector and bitmap editors can be used to create 9-patch images
- suitable for use with the Imagine style. The following sections briefly
- explain the export process for each editor, and the last section explains
- how to ensure the exported images are 9-patch-conformant.
-
- \section4 Illustrator
-
- See Adobe's
- \l {https://helpx.adobe.com/in/illustrator/using/collect-assets-export-for-screens.html#panel}
- {Asset Export panel} documentation.
-
- \section4 Inkscape
-
- The \l {https://github.com/mitchcurtis/inkscape-9-patch-export}
- {Inkscape 9-Patch Export Extension} can be used to export assets with
- Inkscape.
-
- \section4 Photoshop
-
- See Adobe's
- \l {https://helpx.adobe.com/photoshop/using/generate-assets-layers.html}
- {Generate image assets from layers} documentation.
-
- \section4 Sketch
-
- See Sketch's \l {https://sketchapp.com/docs/exporting/}{Exporting} documentation.
-
- Qt Quick Controls also provides a
- \l {http://code.qt.io/cgit/qt/qtquickcontrols2.git/tree/src/quickcontrols2/imagine/design}
- {plugin} for Sketch that automatically fixes the thickness of the 9-patch lines
- after the assets are exported. To install this file, double-click on it.
- Once Sketch has confirmed that the 9-patch export plugin has been installed,
- the plugin will automatically process images when they are exported.
-
- \section4 Fixing 9-Patch Lines
-
- When exporting 9-patch images in several DPI variants (\c {@2x}, \c {@3x},
- etc.), the 9-patch lines will typically be scaled up along with the image.
- There are several ways to fix this, but perhaps the simplest approach is
- to use \l {https://www.imagemagick.org/script/mogrify.php}{ImageMagick's mogrify}
- tool. The tool has a \c -shave feature that can be used to crop the image
- to reduce the thickness of the 9-patch lines:
-
- \badcode
- mogrify -shave 1x1 -path path/to/images *@2x.9.png
- mogrify -shave 2x2 -path path/to/images *@3x.9.png
- mogrify -shave 3x3 -path path/to/images *@4x.9.png
- \endcode
-
- Regular DPI images (those without the \c @Nx prefix) are not affected, so it
- is only necessary to run the command on images intended for high DPI displays.
-
- \section2 Animated Images
-
- The \l {https://developers.google.com/speed/webp/}{WebP} and GIF animated
- image formats are supported by the Imagine style.
-
- \section2 Customization
-
- \section3 Path
-
- The Imagine style allows customizing the \l {imagine-path-attached-prop}{path}
- that is used to do the image asset selection. The path can be specified for any
- window or item, and it automatically propagates to children in the same manner as
- \l {Control::font}{fonts}. In the following example, the window and all three radio
- buttons appear with dark image assets (files that are located in "qrc:/themes/dark").
-
- \table
- \row
- \li
- \qml
- import QtQuick 2.12
- import QtQuick.Controls 2.12
- import QtQuick.Controls.Imagine 2.12
-
- ApplicationWindow {
- visible: true
-
- Imagine.path: "qrc:/themes/dark"
-
- Column {
- anchors.centerIn: parent
-
- RadioButton { text: qsTr("Small") }
- RadioButton { text: qsTr("Medium"); checked: true }
- RadioButton { text: qsTr("Large") }
- }
- }
- \endqml
- \li
- \image qtquickcontrols2-imagine-customization-dark.png
- \endtable
-
- In addition to specifying the path in QML, it is also possible to specify
- it via an \l {imagine-customization-environment-variable}{environment variable}
- or in a \l {imagine-customization-configuration-file}{configuration file}.
- Attributes specified in QML take precedence over all other methods.
-
- \section4 Configuration File
- \target imagine-customization-configuration-file
-
- \include qquickimaginestyle.qdocinc conf
-
- See \l {Qt Quick Controls Configuration File} for more details about the
- configuration file.
-
- \section4 Environment Variables
- \target imagine-customization-environment-variable
-
- \include qquickimaginestyle.qdocinc env
-
- See \l {Supported Environment Variables in Qt Quick Controls} for the full
- list of supported environment variables.
-
- \section3 Palette
-
- The Imagine style supports palette customization via the \l {Item::}{palette}
- property and the \l {Palette Configuration}{qtquickcontrols2.conf} file.
- As with other styles, the exact \l[QML]{Palette}{palette roles}
- that the Imagine style uses are style-dependent. However, as most of the visual
- appearance of controls (for example: backgrounds) are managed through image assets,
- only the roles that are typically used for text will have an effect.
-
- \section3 Font
-
- Custom fonts can be set via the \l {Control::}{font} property and the
- \l {Font Configuration}{configuration} file.
-
- \section2 Dependency
-
- The Imagine style must be separately imported to gain access to the
- attributes that are specific to the Imagine style. It should be noted
- that regardless of the references to the Imagine style, the same
- application code runs with any other style. Imagine-specific attributes
- only have an effect when the application is run with the Imagine style.
-
- If the Imagine style is imported in a QML file that is always loaded, the
- Imagine style must be deployed with the application in order to be able
- to run the application regardless of which style the application is run with.
- By using \l {Using File Selectors with Qt Quick Controls}{file selectors},
- style-specific tweaks can be applied without creating a hard dependency to
- a style.
-
- \b {See also} \l {Styling Qt Quick Controls}
-
- \section1 Attached Property Documentation
-
- \styleproperty {Imagine.path} {string} {imagine-path-attached-prop}
- \target imagine-path-attached-prop
- This attached property holds the path to the image assets...
-
- \code
- Button {
- Imagine.path: "qrc:/themes/dark"
- }
- \endcode
-
- \endstyleproperty
-
- \section1 Related Information
-
- \list
- \li \l{Styling Qt Quick Controls}
- \li \l{Qt Quick Controls - Imagine Style Example: Automotive}{Automotive Example}
- \li \l{Qt Quick Controls - Imagine Style Example: Music Player}{Music Player Example}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-index.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-index.qdoc
deleted file mode 100644
index 7b64e776..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-index.qdoc
+++ /dev/null
@@ -1,204 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols-index.html
- \keyword Qt Quick Controls 2
- \title Qt Quick Controls
-
- \brief Provides a set of UI controls for Qt Quick.
-
- Qt Quick Controls provides a set of controls that can be used
- to build complete interfaces in Qt Quick. The module was introduced
- in Qt 5.7.
-
- \image qtquickcontrols2-styles.png
-
- Qt Quick Controls comes with a selection customizable styles.
- See \l {Styling Qt Quick Controls} for more details.
-
-
- \section1 Using the Module
-
- \section2 QML API
-
- The \l{Qt Quick Controls QML Types}{QML types} can be imported into your
- application using the following import statement in your \c {.qml} file:
-
- \qml
- import QtQuick.Controls
- \endqml
-
- \section2 C++ API
-
- Using the \l{Qt Quick Controls C++ Classes}{C++ API} requires linking against the module library,
- either directly or through other dependencies.
- Several build tools have dedicated support for this, including CMake and qmake.
-
- \section3 Building with CMake
- Use the \c find_package() command to locate the needed module components in the Qt6 package:
-
- \snippet qtquickcontrols2-overview.cmake 0
-
- See also the \l{Build with CMake} overview.
-
- \section3 Building with qmake
- To configure the module for building with qmake,
- add the module as a value of the QT variable in the project's .pro file:
-
- \code
- QT += quickcontrols2
- \endcode
-
- \section2 Building From Source
-
- The \b{Qt Image Formats} module is recommended, but not
- required. It provides support for the \c {.webp} format used by the
- \l {Animated Images}{Imagine style}.
-
- \section1 Versions
-
- Qt Quick Controls 2.0 was introduced in Qt 5.7. Subsequent minor Qt releases
- increment the import version of the Qt Quick Controls modules by one,
- until Qt 5.12, where the import versions match Qt's minor version.
-
- In Qt 6, both the major and minor versions match, and version numbers may
- be omitted from imports in QML. If the version is omitted, the latest
- version will be used.
-
- The experimental Qt Labs modules use import version 1.0.
-
- \table
- \header
- \li \c Qt
- \li \l {Qt Quick QML Types}{\c QtQuick}
- \li \l {Qt Quick Controls QML Types}{\c QtQuick.Controls},\br
- \l {Material Style}{\c QtQuick.Controls.Material},\br
- \l {Universal Style}{\c QtQuick.Controls.Universal},\br
- \l {Qt Quick Templates 2 QML Types}{\c QtQuick.Templates}
- \li \l {Qt Labs Platform QML Types}{\c Qt.labs.platform}
- \row
- \li 5.7
- \li 2.7
- \li 2.0
- \li 1.0
- \row
- \li 5.8
- \li 2.8
- \li 2.1
- \li 1.0
- \row
- \li 5.9
- \li 2.9
- \li 2.2
- \li 1.0
- \row
- \li 5.10
- \li 2.10
- \li 2.3
- \li 1.0
- \row
- \li 5.11
- \li 2.11
- \li 2.4
- \li 1.0
- \row
- \li 5.12
- \li 2.12
- \li 2.12
- \li 1.0
- \row
- \li 6.0
- \li 6.0
- \li 6.0
- \li 1.0
- \row
- \li ...
- \li ...
- \li ...
- \li ...
- \endtable
-
- \section1 Module Evolution
- \l{Changes to Qt Quick Controls} lists important changes in the
- module API and functionality that were done for the Qt 6 series of Qt.
-
- \section1 License and Attributions
-
- Qt Quick Controls is available under commercial licenses from \l{The Qt Company}.
- In addition, it is available under the
- \l{GNU Lesser General Public License, version 3}, or
- the \l{GNU General Public License, version 2}.
- See \l{Qt Licensing} for further details.
-
- Furthermore Qt Quick Controls potentially contains third party
- modules under following permissive licenses:
-
- \generatelist{groupsbymodule attributions-qtquickcontrols}
-
- \section1 Topics
-
- \list
- \li \l{Getting Started with Qt Quick Controls}{Getting Started}
- \li \l{Qt Quick Controls Guidelines}{Guidelines}
- \li \l{Styling Qt Quick Controls}{Styling}
- \li \l{Icons in Qt Quick Controls}{Icons}
- \li \l{Customizing Qt Quick Controls}{Customization}
- \li \l{Using File Selectors with Qt Quick Controls}{Using File Selectors}
- \li \l{Deploying Qt Quick Controls Applications}{Deployment}
- \li \l{Qt Quick Controls Configuration File}{Configuration File}
- \li \l{Supported Environment Variables in Qt Quick Controls}{Environment Variables}
- \endlist
-
- \section1 Reference
-
- \list
- \li \l{Qt Quick Controls QML Types}{QML Types}
- \li \l{Qt Quick Controls C++ Classes}{C++ Classes}
- \endlist
-
- \section1 Examples
-
- \list
- \li \l{Qt Quick Controls - Gallery}{Gallery}
- \li \l{Qt Quick Controls - Chat Tutorial}{Chat Tutorial}
- \li \l{Qt Quick Controls - Text Editor}{Text Editor}
- \li \l{Qt Quick Controls - Wearable Demo}{Wearable Demo}
- \li \l{Qt Quick Controls - Imagine Style Example: Automotive}{Automotive Example}
- \li \l{Qt Quick Controls - Imagine Style Example: Music Player}{Music Player Example}
- \li \l{Qt Quick Controls Examples}{All Examples}
- \endlist
-
- \section1 Related Modules
-
- \list
- \li \l{Qt Quick}
- \li \l{Qt Quick Layouts}
- \li \l{Qt Quick Templates 2}
- \li \l{Qt Labs Platform}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-indicators.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-indicators.qdoc
deleted file mode 100644
index 9f9e357b..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-indicators.qdoc
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-indicators.html
- \title Indicator Controls
- \ingroup qtquickcontrols2-guidelines
- \brief Guidelines for indicator controls
-
- Qt Quick Controls offers a selection of indicator-like controls.
-
- \annotatedlist qtquickcontrols2-indicators
-
- Each type of indicator has its own specific target use case. The following
- sections offer guidelines for choosing the appropriate type of indicator,
- depending on the use case.
-
- \section1 BusyIndicator Control
-
- \image qtquickcontrols2-busyindicator.png
-
- BusyIndicator can be used to show that an operation is in progress,
- and that the UI has to wait for the operation to complete.
-
- \section1 PageIndicator Control
-
- \image qtquickcontrols2-pageindicator.png
-
- \l PageIndicator is used to indicate the currently active page in
- a container of multiple pages.
-
- \section1 ProgressBar Control
-
- \image qtquickcontrols2-progressbar.gif
-
- \l ProgressBar indicates the progress of an operation. The value should be
- updated regularly.
-
- \section1 ScrollBar Control
-
- \image qtquickcontrols2-scrollbar.gif
-
- \l ScrollBar is an interactive bar that indicates the current scroll
- position, and can be used to scroll to a specific position in a
- \l Flickable.
-
- \section1 ScrollIndicator Control
-
- \image qtquickcontrols2-scrollindicator.gif
-
- \l ScrollIndicator is a non-interactive indicator that indicates the
- current scroll position, and can be used to scroll to a specific position in a
- \l {Flickable}.
-
- \section1 Related Information
- \list
- \li \l {Qt Quick Controls Guidelines}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-input.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-input.qdoc
deleted file mode 100644
index 6bc037e0..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-input.qdoc
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-input.html
- \title Input Controls
- \ingroup qtquickcontrols2-guidelines
- \brief Guidelines for input controls
-
- Qt Quick Controls offers a variety of input controls for both numeric
- and textual input.
-
- \annotatedlist qtquickcontrols2-input
-
- Each type of input control has its own specific target use case. The
- following sections offer guidelines for choosing the appropriate type
- of input control, depending on the use case.
-
- \section1 ComboBox Control
-
- \image qtquickcontrols2-combobox.gif
-
- \l ComboBox is used to select a value from a static multiple-line drop-down list.
- It is not possible to add new values, and only one option can be selected.
-
- Recommendations:
- \list
- \li If the number of values is very large, consider applying a filter.
- \li If the list is very limited, consider using RadioButton. This has the
- advantage that the user can see all options at the same time.
- \li Select a default value, the value that will be chosen most often.
- \endlist
-
- \b {See also} \l {CheckBox Control}, \l {Tumbler Control}.
-
- \section1 Dial Control
-
- \image qtquickcontrols2-dial.png
-
- \l Dial is similar to a traditional dial knob that is found on devices such
- as stereos or industrial equipment.
-
- The dial is rotated by clicking and dragging, with the handle indicating the
- value of the dial.
-
- For applications where fast input is important, the circular
- \l {Dial::inputMode}{input mode} is useful, as clicking on the dial will
- move it directly to that position.
-
- For applications where precise input is important, the horizontal and
- vertical input modes are recommended, as these allow small adjustments to
- be made relative to where the dial is clicked. These modes are also better
- for dials where large jumps in values could be unsafe, such as a dial that
- controls audio volume.
-
- \b {See also} \l {Tumbler Control}.
-
- \section1 TextArea Control
-
- \image qtquickcontrols2-textarea.png
-
- \l TextArea is a multi-line text editor.
-
- \section1 TextField Control
-
- \image qtquickcontrols2-textfield.png
-
- \l TextField is a single line text editor.
-
- \b {See also} \l {Tumbler Control}.
-
- \section1 Slider Control
-
- \image qtquickcontrols2-slider.gif
-
- \l Slider is used to select a value by sliding a handle along a track.
-
- \section1 RangeSlider Control
-
- \image qtquickcontrols2-rangeslider.gif
-
- \l RangeSlider is used to select a range specified by two values,
- by sliding each handle along a track.
-
- \b {See also} \l {Slider Control}.
-
- \section1 Tumbler Control
-
- \image qtquickcontrols2-tumbler.png
-
- \l Tumbler is a spinnable wheel of items that can be selected.
-
- \b {See also} \l {ComboBox Control}.
-
- \section1 Related Information
- \list
- \li \l {Qt Quick Controls Guidelines}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-macos.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-macos.qdoc
deleted file mode 100644
index 382a23a6..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-macos.qdoc
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-macOS.html
- \title macOS Style
-
- The macOS style is a style that looks native on macOS.
- \l {detailed-desc-macOS}{More...}
-
- \styleimport {QtQuick.Controls.macOS} {Qt 6.0}
-
- \target detailed-desc-macOS
-
- The macOS style is a style that looks native on macOS. The controls are drawn run-time using
- native frameworks, and is therefore only available for applications running on macOS.
-
- \note Be aware that the apperance of this style can change from one minor Qt version to the
- next, to better blend in with native applications on the platform.
-
- \table
- \row
- \li \image qtquickcontrols2-macos-light.png
- \caption The macOS style in light theme
- \li \image qtquickcontrols2-macos-dark.png
- \caption The macOS style in dark theme
- \endtable
-
- To run an application with the macOS style, see
- \l {Using Styles in Qt Quick Controls}.
-
- \section2 Current state
-
- The macOS style is under development, and some controls are not yet supported. Those
- controls are: \l BusyIndicator, \l DelayButton, \l PageIndicator, \l RangeSlider, \l Switch, \l TabBar and
- \l Tumbler. Those will fall back to use the \l {Fusion Style}.
-
- \section2 Customization
-
- The goal of the macOS style is to for the controls look and feel as similar as possible to the
- native controls in UIKit. The style will follow the theme and colors configured globally from
- System Preferences, and does not come with a separate customization API on top of that.
-
- \note If you want to style a control, you should set both the
- \l {Control::background}{background} and the \l {Control::contentItem}{contentItem}, rather than
- just one of them. This is because the macOS style will in some cases draw both the contents and
- the background into the default background item, which will not look good if the application
- combines this with a custom contentItem. By setting them both, you are guaranteed that the
- control will look the same on all platforms, for all styles.
-
- \b {See also} \l {Styling Qt Quick Controls}
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-material.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-material.qdoc
deleted file mode 100644
index f08c5ec3..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-material.qdoc
+++ /dev/null
@@ -1,404 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-material.html
- \title Material Style
-
- The Material Style is based on the Google Material Design Guidelines.
- \l{detailed-desc-material}{More...}
-
- \styleimport {QtQuick.Controls.Material 2.12} {Qt 5.7}
-
- \section1 Attached Properties
-
- \list
- \li \l {material-accent-attached-prop}{\b accent} : color
- \li \l {material-background-attached-prop}{\b background} : color
- \li \l {material-elevation-attached-prop}{\b elevation} : int
- \li \l {material-foreground-attached-prop}{\b foreground} : color
- \li \l {material-primary-attached-prop}{\b primary} : color
- \li \l {material-theme-attached-prop}{\b theme} : enumeration
- \endlist
-
- \section1 Attached Methods
-
- \list
- \li color \l {material-color-attached-method}{\b color}(enumeration predefined, enumeration shade)
- \endlist
-
- \section1 Detailed Description
- \target detailed-desc-material
-
- The Material style is based on the \l {https://www.google.com/design/spec/material-design/introduction.html}
- {Google Material Design Guidelines}. It allows for a unified experience
- across platforms and device sizes.
-
- \table
- \row
- \li \image qtquickcontrols2-material-light.png
- \caption The Material style in light theme
- \li \image qtquickcontrols2-material-dark.png
- \caption The Material style in dark theme
- \endtable
-
- To run an application with the Material style, see
- \l {Using Styles in Qt Quick Controls}.
-
- \note The Material style is not a native Android style. The Material
- style is a 100% cross-platform Qt Quick Controls style implementation that
- follows the Google Material Design Guidelines. The style runs on any
- platform, and looks more or less identical everywhere. Minor differences
- may occur due to differences in available system fonts and font rendering
- engines.
-
- \section2 Customization
-
- The Material style allows customizing five attributes, \l {material-theme-attached-prop}{theme},
- \l {material-primary-attached-prop}{primary}, \l {material-accent-attached-prop}{accent},
- \l {material-foreground-attached-prop}{foreground}, and \l {material-background-attached-prop}{background}.
-
- \image qtquickcontrols2-material-attributes.png
-
- All attributes can be specified for any window or item, and they automatically
- propagate to children in the same manner as \l {Control::font}{fonts}. In the
- following example, the window and all three radio buttons appear in the dark
- theme using a purple accent color:
-
- \table
- \row
- \li
- \qml
- import QtQuick 2.12
- import QtQuick.Controls 2.12
- import QtQuick.Controls.Material 2.12
-
- ApplicationWindow {
- visible: true
-
- Material.theme: Material.Dark
- Material.accent: Material.Purple
-
- Column {
- anchors.centerIn: parent
-
- RadioButton { text: qsTr("Small") }
- RadioButton { text: qsTr("Medium"); checked: true }
- RadioButton { text: qsTr("Large") }
- }
- }
- \endqml
- \li
- \image qtquickcontrols2-material-purple.png
- \endtable
-
- In addition to specifying the attributes in QML, it is also possible to
- specify them via environment variables or in a configuration file. Attributes
- specified in QML take precedence over all other methods.
-
- \section3 Configuration File
-
- \include qquickmaterialstyle.qdocinc conf
-
- See \l {Qt Quick Controls Configuration File} for more details about the
- configuration file.
-
- \section3 Environment Variables
-
- \include qquickmaterialstyle.qdocinc env
-
- See \l {Supported Environment Variables in Qt Quick Controls} for the full
- list of supported environment variables.
-
- \section2 Dependency
-
- The Material style must be separately imported to gain access to the
- attributes that are specific to the Material style. It should be noted
- that regardless of the references to the Material style, the same
- application code runs with any other style. Material-specific attributes
- only have an effect when the application is run with the Material style.
-
- If the Material style is imported in a QML file that is always loaded, the
- Material style must be deployed with the application in order to be able
- to run the application regardless of which style the application is run with.
- By using \l {Using File Selectors with Qt Quick Controls}{file selectors},
- style-specific tweaks can be applied without creating a hard dependency to
- a style.
-
- \section2 Pre-defined Material Colors
-
- Even though primary and accent can be any \l {colorbasictypedocs}{color}, it
- is recommended to use one of the pre-defined colors that have been designed
- to work well with the rest of the Material style palette:
-
- Available pre-defined colors:
- \value Material.Red \stylecolor {#F44336} {}
- \value Material.Pink \stylecolor {#E91E63} {(default accent)}
- \value Material.Purple \stylecolor {#9C27B0} {}
- \value Material.DeepPurple \stylecolor {#673AB7} {}
- \value Material.Indigo \stylecolor {#3F51B5} {(default primary)}
- \value Material.Blue \stylecolor {#2196F3} {}
- \value Material.LightBlue \stylecolor {#03A9F4} {}
- \value Material.Cyan \stylecolor {#00BCD4} {}
- \value Material.Teal \stylecolor {#009688} {}
- \value Material.Green \stylecolor {#4CAF50} {}
- \value Material.LightGreen \stylecolor {#8BC34A} {}
- \value Material.Lime \stylecolor {#CDDC39} {}
- \value Material.Yellow \stylecolor {#FFEB3B} {}
- \value Material.Amber \stylecolor {#FFC107} {}
- \value Material.Orange \stylecolor {#FF9800} {}
- \value Material.DeepOrange \stylecolor {#FF5722} {}
- \value Material.Brown \stylecolor {#795548} {}
- \value Material.Grey \stylecolor {#9E9E9E} {}
- \value Material.BlueGrey \stylecolor {#607D8B} {}
-
- When the dark theme is in use, different \l {Pre-defined Shades}{shades} of
- the pre-defined colors are used by default:
-
- \value Material.Red \stylecolor {#EF9A9A} {}
- \value Material.Pink \stylecolor {#F48FB1} {(default accent)}
- \value Material.Purple \stylecolor {#CE93D8} {}
- \value Material.DeepPurple \stylecolor {#B39DDB} {}
- \value Material.Indigo \stylecolor {#9FA8DA} {(default primary)}
- \value Material.Blue \stylecolor {#90CAF9} {}
- \value Material.LightBlue \stylecolor {#81D4FA} {}
- \value Material.Cyan \stylecolor {#80DEEA} {}
- \value Material.Teal \stylecolor {#80CBC4} {}
- \value Material.Green \stylecolor {#A5D6A7} {}
- \value Material.LightGreen \stylecolor {#C5E1A5} {}
- \value Material.Lime \stylecolor {#E6EE9C} {}
- \value Material.Yellow \stylecolor {#FFF59D} {}
- \value Material.Amber \stylecolor {#FFE082} {}
- \value Material.Orange \stylecolor {#FFCC80} {}
- \value Material.DeepOrange \stylecolor {#FFAB91} {}
- \value Material.Brown \stylecolor {#BCAAA4} {}
- \value Material.Grey \stylecolor {#EEEEEE} {}
- \value Material.BlueGrey \stylecolor {#B0BEC5} {}
-
- \section2 Pre-defined Shades
-
- There are several different
- \l {https://material.google.com/style/color.html#color-color-palette}{shades}
- of each \l {Pre-defined Material Colors}{pre-defined color} that can be passed
- to the \l {material-color-attached-method}{Material.color()} function:
- \value Material.Shade50
- \value Material.Shade100
- \value Material.Shade200
- \value Material.Shade300
- \value Material.Shade400
- \value Material.Shade500
- \value Material.Shade600
- \value Material.Shade700
- \value Material.Shade800
- \value Material.Shade900
- \value Material.ShadeA100
- \value Material.ShadeA200
- \value Material.ShadeA400
- \value Material.ShadeA700
-
- \b {See also} \l {Basic Style}, \l {Universal Style}
-
- \section2 Variants
-
- The Material style also supports a dense variant, where controls like
- buttons and delegates are smaller in height and use smaller font sizes.
- It is recommended to use the dense variant on desktop platforms, where
- a mouse and keyboard allow more precise and flexible user interaction.
-
- To use the dense variant, either set the
- \c QT_QUICK_CONTROLS_MATERIAL_VARIANT environment variable to \c Dense,
- or specify \c Variant=Dense in the
- \l {Qt Quick Controls Configuration File}{qtquickcontrols2.conf} file.
- The default value in both cases is \c Normal.
-
- The following images illustrate the differences between some of the
- controls when using the normal and dense variants:
-
- \table
- \row
- \li
- \image qtquickcontrols2-material-variant-normal.png
- \li
- \image qtquickcontrols2-material-variant-dense.png
- \endtable
-
- Note that the heights shown above may vary based on differences in fonts
- across platforms.
-
- \section1 Attached Property Documentation
-
- \styleproperty {Material.accent} {color} {material-accent-attached-prop}
- \target material-accent-attached-prop
- This attached property holds the accent color of the theme. The property
- can be attached to any window or item. The value is propagated to children.
-
- The default value is \c Material.Pink.
-
- In the following example, the accent color of the highlighted button is
- changed to \c Material.Orange:
-
- \table
- \row
- \li
- \snippet qtquickcontrols2-material-accent.qml 1
- \li
- \image qtquickcontrols2-material-accent.png
- \endtable
-
- \note Even though the accent can be any \l {colorbasictypedocs}{color}, it is
- recommended to use one of the \l {pre-defined Material colors} that have been
- designed to work well with the rest of the Material style palette.
-
- \endstyleproperty
-
- \styleproperty {Material.background} {color} {material-background-attached-prop}
- \target material-background-attached-prop
- This attached property holds the background color of the theme. The property
- can be attached to any window or item. The value is propagated to children.
-
- The default value is theme-specific (light or dark).
-
- In the following example, the background color of the button is changed to
- \c Material.Teal:
-
- \table
- \row
- \li
- \snippet qtquickcontrols2-material-background.qml 1
- \li
- \image qtquickcontrols2-material-background.png
- \endtable
-
- \endstyleproperty
-
- \styleproperty {Material.elevation} {int} {material-elevation-attached-prop}
- \target material-elevation-attached-prop
- This attached property holds the elevation of the control. The higher the
- elevation, the deeper the shadow. The property can be attached to any control,
- but not all controls visualize elevation.
-
- The default value is control-specific.
-
- In the following example, the elevation of the pane is set to \c 6
- in order to achieve the look of an
- \l {https://material.google.com/components/cards.html}{elevated card}:
-
- \table
- \row
- \li
- \snippet qtquickcontrols2-material-elevation.qml 1
- \li
- \image qtquickcontrols2-material-elevation.png
- \endtable
-
- \endstyleproperty
-
- \styleproperty {Material.foreground} {color} {material-foreground-attached-prop}
- \target material-foreground-attached-prop
- This attached property holds the foreground color of the theme. The property
- can be attached to any window or item. The value is propagated to children.
-
- The default value is theme-specific (light or dark).
-
- In the following example, the foreground color of the button is set to \c
- Material.Pink:
-
- \table
- \row
- \li
- \snippet qtquickcontrols2-material-foreground.qml 1
- \li
- \image qtquickcontrols2-material-foreground.png
- \endtable
-
- \endstyleproperty
-
- \styleproperty {Material.primary} {color} {material-primary-attached-prop}
- \target material-primary-attached-prop
- This attached property holds the primary color of the theme. The property
- can be attached to any window or item. The value is propagated to children.
-
- The primary color is used as the background color of ToolBar by default.
-
- The default value is \c Material.Indigo.
-
- \note Even though the primary can be any \l {colorbasictypedocs}{color}, it is
- recommended to use one of the \l {pre-defined Material colors} that have been
- designed to work well with the rest of the Material style palette.
-
- \endstyleproperty
-
- \styleproperty {Material.theme} {enumeration} {material-theme-attached-prop}
- \target material-theme-attached-prop
- This attached property holds whether the theme is light or dark. The property
- can be attached to any window or item. The value is propagated to children.
-
- Available themes:
- \value Material.Light Light theme (default)
- \value Material.Dark Dark theme
- \value Material.System System theme
-
- Setting the theme to \c System chooses either the light or dark theme based
- on the system theme colors. However, when reading the value of the theme
- property, the value is never \c System, but the actual theme.
-
- In the following example, the theme for both the pane and the button is set
- to \c Material.Dark:
-
- \table
- \row
- \li
- \snippet qtquickcontrols2-material-theme.qml 1
- \li
- \image qtquickcontrols2-material-theme.png
- \endtable
-
- \endstyleproperty
-
- \section1 Attached Method Documentation
-
- \stylemethod2 {color} {color} {enumeration} {predefined} {enumeration} {shade} {material-color-attached-method}
- \target material-color-attached-method
- This attached method returns the effective color value of the specified
- \l {pre-defined Material colors}{pre-defined Material color} combined with
- the given \l {pre-defined shades}{shade}. If omitted, the shade argument
- defaults to \c Material.Shade500.
-
- \qml
- Rectangle {
- color: Material.color(Material.Red)
- }
- \endqml
-
- \endstylemethod2
-
- \section1 Related Information
-
- \list
- \li \l{Styling Qt Quick Controls}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-menus.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-menus.qdoc
deleted file mode 100644
index 43db2092..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-menus.qdoc
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-menus.html
- \title Menu Controls
- \ingroup qtquickcontrols2-guidelines
- \brief Guidelines for menu controls
-
- \annotatedlist qtquickcontrols2-menus
-
- Each type of menu control has its own specific target use case. The
- following sections offer guidelines for choosing the appropriate type
- of menu control, depending on the use case.
-
- \section1 Menu Control
-
- \image qtquickcontrols2-menu.png
-
- \l Menu control can be used for context menus; for example, after
- right-clicking. It can also be used for popup menus; for example, a
- menu that is shown after clicking a button.
-
- \l MenuItem is an item in the Menu control. Each item in a menu:
- \list
- \li displays text to the user
- \li allows checking/unchecking
- \li is highlighted (for example, on keyboard navigation)
- \li performs some action on activation
- \endlist
-
- \section1 MenuBar Control
-
- \image qtquickcontrols2-menubar.png
-
- \l MenuBar control can be used for window menu bars.
-
- \l MenuBarItem is an item in the MenuBar control. Each item in a menu bar:
- \list
- \li displays text to the user
- \li is highlighted (for example, on keyboard navigation)
- \li pops up the respective menu on activation
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-navigation.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-navigation.qdoc
deleted file mode 100644
index 95928d13..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-navigation.qdoc
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-navigation.html
- \title Navigation Controls
- \ingroup qtquickcontrols2-guidelines
- \brief Guidelines for navigation controls
-
- Qt Quick Controls offers a selection of navigation models.
-
- \annotatedlist qtquickcontrols2-navigation
-
- The following sections offer guidelines for choosing the appropriate type
- of navigation model, depending on the use case.
-
- \section1 StackView Control
-
- \image qtquickcontrols2-stackview-wireframe.png
-
- \l StackView provides a stack-based navigation model which can be used
- with a set of interlinked pages. StackView works according to a last-in
- first-out principle: the page pushed last on the stack is the one visible.
- Popping a page removes the last page and makes the previous one visible.
-
- \section1 SwipeView Control
-
- \image qtquickcontrols2-swipeview-wireframe.png
-
- \l SwipeView provides a navigation model that simplifies horizontal paged
- scrolling. The page indicator on the bottom shows which is the presently
- active page.
-
- \section1 TabBar Control
-
- \image qtquickcontrols2-tabbar-wireframe.png
-
- \l TabBar is a bar with icons or text that allows the user to switch
- between different subtasks, views, or modes.
-
- \section1 TabButton Control
-
- \image qtquickcontrols2-tabbutton.png
-
- \l TabButton is a button with a layout suitable for a TabBar control.
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-popups.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-popups.qdoc
deleted file mode 100644
index c26b4c4b..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-popups.qdoc
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-popups.html
- \title Popup Controls
- \ingroup qtquickcontrols2-guidelines
- \brief Guidelines for popup controls
-
- \annotatedlist qtquickcontrols2-popups
-
- Each type of popup control has its own specific target use case. The
- following sections offer guidelines for choosing the appropriate type
- of popup control, depending on the use case.
-
- \section1 Drawer Control
-
- \image qtquickcontrols2-drawer-expanded-wireframe.png
-
- \l Drawer provides a swipe-based side panel, similar to those often used
- in touch interfaces to provide a central location for navigation.
-
- The drawer can be positioned at any of the four edges of the screen. It allows
- the user to add navigation without taking up valuable screen space. The user can
- show and hide the drawer at any time with a simple swipe movement.
-
- \section1 Menu Control
-
- \image qtquickcontrols2-menu.png
-
- The \l Menu control displays a vertical list of items that can be selected. It can
- be used for offering a list of actions that can be taken in a given context.
-
- \b {See also} \l {Drawer Control}.
-
- \section1 Popup Control
-
- \image qtquickcontrols2-popup-settings.png
-
- A \l Popup displays content over other application content.
- It prompts the user to make a decision or enter information.
-
- Popups can be modal or non-modal. A modal popup blocks users from interacting
- with the application until they have made a choice and closed the popup.
-
- A popup can be used for:
-
- \list
- \li communicating a message to the user that they must read and acknowledge.
- \li displaying an error message.
- \li prompting the user to make a choice and/or enter a value.
- \endlist
-
- \section1 ToolTip Control
-
- \image qtquickcontrols2-tooltip.png
-
- \l ToolTip shows a short piece of text that informs the user of a control's
- function. It is typically placed above or below the parent control.
-
- Recommendations:
- \list
- \li Use a tooltip if a control has little or no descriptive text, or needs
- a short explanation.
- \li Use a tooltip only if the information on a particular control is not
- available elsewhere in the screen.
- \li Keep the tooltip text short so that it does not cover other content
- while being displayed.
- \endlist
-
- \section1 Related Information
- \list
- \li \l {Qt Quick Controls Guidelines}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-qmltypes.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-qmltypes.qdoc
deleted file mode 100644
index 0251a6f9..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-qmltypes.qdoc
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \qmlmodule QtQuick.Controls 2.\QtMinorVersion
- \keyword Qt Quick Controls QML Types
- \title Qt Quick Controls QML Types
- \keyword Qt Quick Controls 2 QML Types
- \ingroup qmlmodules
- \brief Provides QML types for user interfaces (Qt Quick Controls).
-
- \l{Qt Quick Controls} provides QML types for creating user interfaces.
- These QML types work in conjunction with \l{Qt Quick} and
- \l{Qt Quick Layouts}.
-
- Qt Quick Controls QML types can be imported into your application
- using the following import statement in your .qml file:
-
- \qml
- import QtQuick.Controls
- \endqml
-
- \section1 QML Types
- \generatelist {qmltypesbymodule QtQuick.Controls}
- \noautolist
-
- \section1 Using Qt Quick Controls types in property declarations
-
- As mentioned in \l {Qt Quick Templates 2 QML Types}, each type in Qt Quick
- Controls is backed by a C++ "template" type. These types are \l {Qt Quick
- Templates 2}{non-visual implementations of controls' logic and behavior}.
-
- For example, the \l Menu type's API and behavior is defined by the C++
- type in Qt Quick Templates. Each \l {Definition of a Style}{style} that
- wants to provide a Menu must have a Menu.qml available, and the root
- item in that file must be the Menu from Qt Quick Templates. When you
- import QtQuick.Controls and create a Menu in QML, the type you get is
- actually the QML Menu defined by the style's Menu.qml.
-
- In order to use a control as the type in a property declaration, you should
- use the corresponding type from Qt Quick Templates. For example, suppose
- you had a \c PopupOpener component, which was a Button that opened a
- Popup:
-
- \qml
- // PopupButton.qml
- import QtQuick.Controls
-
- Button {
- required property Popup popup
-
- onClicked: popup.open()
- }
-
- // main.qml
- PopupButton {
- popup: saveChangesDialog
- }
-
- Dialog {
- id: saveChangesDialog
-
- // ...
- }
- \endqml
-
- Running this code will result in an error:
-
- \badcode
- Unable to assign Dialog_QMLTYPE to Popup_QMLTYPE
- \endcode
-
- This is because of the inheritance hierarchy:
-
- \badcode
- Popup (C++ type in QtQuick.Templates)
- │ └── Popup (QML type in QtQuick.Controls)
- └── Dialog (C++ type in QtQuick.Templates)
- └── Dialog (QML type in QtQuick.Controls)
- \endcode
-
- Dialog from \c QtQuick.Controls does not derive from the Popup from
- \c QtQuick.Controls, but from \c QtQuick.Templates.
-
- Instead, use the Popup from Qt Quick Templates as the property type:
-
- \qml
- // PopupButton.qml
- import QtQuick.Controls
- import QtQuick.Templates as T
-
- Button {
- required property T.Popup popup
-
- onClicked: popup.open()
- }
- \endqml
-
- For more information on the Qt Quick Controls module, see the
- \l {Qt Quick Controls} module documentation.
-
- \section1 Related Information
- \list
- \li \l {Qt Quick Controls Guidelines}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-separators.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-separators.qdoc
deleted file mode 100644
index 481a744e..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-separators.qdoc
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-separators.html
- \title Separator Controls
- \ingroup qtquickcontrols2-guidelines
- \brief Guidelines for separator controls
-
- Qt Quick Controls offers a selection of separators.
-
- \annotatedlist qtquickcontrols2-separators
-
- Each type of separator has its own specific use case. The following
- sections offer guidelines for choosing the appropriate type of separator,
- depending on the use case.
-
- \section1 MenuSeparator Control
-
- \image qtquickcontrols2-menuseparator.png
-
- \l MenuSeparator should be used to separate items (typically MenuItem
- controls) in a Menu. Grouping related menu items together makes it easier
- for the user to interact with the menu. For example, a typical desktop
- user interface might have \c Undo and \c Redo items in one group, and
- \c Cut, \c Copy and \c Paste in another.
-
- \section1 ToolSeparator Control
-
- \image qtquickcontrols2-toolseparator.png
-
- \l ToolSeparator should be used to separate items (typically ToolButton
- controls) in a ToolBar. It can be used in horizontal or vertical toolbars.
-
- \section1 Related Information
- \list
- \li \l {Qt Quick Controls Guidelines}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-styles.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-styles.qdoc
deleted file mode 100644
index 12993fbf..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-styles.qdoc
+++ /dev/null
@@ -1,209 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-styles.html
- \title Styling Qt Quick Controls
-
- \section1 Available Styles
-
- Qt Quick Controls comes with a selection of styles.
-
- \section2 Basic Style
-
- \image qtquickcontrols2-basic-thumbnail.png
- The \l {Basic Style} is a simple and light-weight all-round style that offers
- the maximum performance for Qt Quick Controls.
-
- \section2 Fusion Style
-
- \image qtquickcontrols2-fusion-thumbnail.png
- The \l {Fusion Style} is a platform-agnostic style that offers a desktop-oriented
- look and feel for Qt Quick Controls.
-
- \section2 Imagine Style
-
- \image qtquickcontrols2-imagine-thumbnail.png
- The \l {Imagine Style} is based on image assets. The style comes with a default
- set of images which can easily be changed by providing a directory
- with images using a predefined naming convention.
-
- \section2 macOS Style
-
- \image qtquickcontrols2-macos-thumbnail.png
- The \l {macOS Style} is a native-looking style for macOS.
- \note this style is only available for applications running on macOS.
-
- \section2 Material Style
-
- \image qtquickcontrols2-material-thumbnail.png
- The \l {Material Style} offers an appealing design based on the
- \l {https://www.google.com/design/spec/material-design/introduction.html}
- {Google Material Design Guidelines}, but requires more system resources than
- the Basic style.
-
- \section2 Universal Style
-
- \image qtquickcontrols2-universal-thumbnail.png
- The \l {Universal Style} offers an appealing design based on the
- \l {https://dev.windows.com/design}{Microsoft Universal Design Guidelines},
- but requires more system resources than the Basic style.
-
- \section2 Windows Style
-
- \image qtquickcontrols2-windows-thumbnail.png
- The \l {Windows Style} is a native-looking style for Windows.
- \note this style is only available for applications running on Windows.
-
- \section1 Using Styles in Qt Quick Controls
-
- There are two ways of using styles in Qt Quick Controls:
- run-time style selection and compile-time style selection.
-
- \section2 Compile-Time Style Selection
-
- Compile-time style selection involves using QML imports to specify the
- style. For example, to import the Material style:
-
- \qml
- import QtQuick.Controls.Material
-
- ApplicationWindow {
- // ...
- }
- \endqml
-
- Notice that QtQuick.Controls (which is responsible for run-time style
- selection) is not imported. The fallback style is specified by the qmldir
- of the style:
-
- \badcode
- module QtQuick.Controls.Material
- # ...
- import QtQuick.Controls.Basic auto
- \endcode
-
- The benefit of compile-time style selection is that the QtQuick.Controls plugin
- is not used and therefore does not need to be deployed with the application.
-
- Explicit imports are also necessary if your application is built
- \l {Static Builds}{statically}.
-
- \section2 Run-Time Style Selection
-
- Run-time style selection involves importing \c QtQuick.Controls:
-
- \qml
- import QtQuick.Controls
- \endqml
-
- The QtQuick.Controls plugin will import the style and fallback
- style that were set at runtime via one of the following approaches:
-
- \list
- \li \l[CPP]{QQuickStyle::setStyle()}
- \li The \c -style command line argument
- \li The \c QT_QUICK_CONTROLS_STYLE environment variable
- \li The \c qtquickcontrols2.conf configuration file
- \endlist
-
- The priority of these approaches follows the order they are listed,
- from highest to lowest. That is, using \c QQuickStyle to set the style will
- always take priority over using the command line argument, for example.
-
- The benefit of run-time style selection is that a single application binary
- can support multiple styles, meaning that the end user can choose which
- style to run the application with.
-
- \section3 Using QQuickStyle in C++
-
- \l[CPP]{QQuickStyle} provides C++ API for configuring a specific
- style. The following example runs a Qt Quick Controls application
- with the Material style:
-
- \code
- QQuickStyle::setStyle("Material");
- \endcode
-
- See the detailed description of \l[CPP]{QQuickStyle} for more
- details.
-
- \section3 Command line argument
-
- Passing a \c -style command line argument is the convenient way to test different
- styles. It takes precedence over the other methods listed below. The following
- example runs a Qt Quick Controls application with the Material style:
-
- \code
- ./app -style material
- \endcode
-
- \section3 Environment variable
-
- Setting the \c QT_QUICK_CONTROLS_STYLE environment variable can be used to set
- a system-wide style preference. It takes precedence over the configuration file
- mentioned below. The following example runs a Qt Quick Controls application with
- the Universal style:
-
- \code
- QT_QUICK_CONTROLS_STYLE=universal ./app
- \endcode
-
- See \l {Supported Environment Variables in Qt Quick Controls} for the full list
- of supported environment variables.
-
- \section3 Configuration file
-
- Qt Quick Controls support a special configuration file, \c :/qtquickcontrols2.conf,
- that is built into an application's resources.
-
- The configuration file can specify the preferred style (may be overridden by either
- of the methods described earlier) and certain style-specific attributes. The following
- example specifies that the preferred style is the Material style.
-
- \code
- [Controls]
- Style=Material
- \endcode
-
- See \l {Qt Quick Controls Configuration File} for more details about the
- configuration file.
-
- \section1 Related Information
- \list
- \li \l {Basic Style}
- \li \l {Fusion Style}
- \li \l {Imagine Style}
- \li \l {Material Style}
- \li \l {Universal Style}
- \li \l {Customizing Qt Quick Controls}
- \li \l {Using File Selectors with Qt Quick Controls}
- \li \l {Deploying Qt Quick Controls Applications}
- \li \l {Qt Quick Controls Configuration File}
- \li \l {Supported Environment Variables in Qt Quick Controls}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-universal.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-universal.qdoc
deleted file mode 100644
index 72267050..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-universal.qdoc
+++ /dev/null
@@ -1,288 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-universal.html
- \title Universal Style
-
- The Universal Style is based on the Microsoft Universal Design Guidelines.
- \l {detailed-desc-universal}{More...}
-
- \styleimport {QtQuick.Controls.Universal 2.12} {Qt 5.7}
-
- \section1 Attached Properties
-
- \list
- \li \l {universal-accent-attached-prop}{\b accent} : color
- \li \l {universal-background-attached-prop}{\b background} : color
- \li \l {universal-foreground-attached-prop}{\b foreground} : color
- \li \l {universal-theme-attached-prop}{\b theme} : enumeration
- \endlist
-
- \section1 Attached Methods
-
- \list
- \li color \l {color-attached-method}{\b color}(enumeration predefined)
- \endlist
-
- \section1 Detailed Description
- \target detailed-desc-universal
-
- The Universal style is a device-agnostic style based on the
- \l {https://dev.windows.com/design}{Microsoft Universal Design Guidelines}.
- The Universal style has been designed to look good on all devices, from
- phones and tablets to PCs.
-
- \table
- \row
- \li \image qtquickcontrols2-universal-light.png
- \caption The Universal style in light theme
- \li \image qtquickcontrols2-universal-dark.png
- \caption The Universal style in dark theme
- \endtable
-
- To run an application with the Universal style, see
- \l {Using Styles in Qt Quick Controls}.
-
- \note The Universal style is not a native Windows 10 style. The Universal
- style is a 100% cross-platform Qt Quick Controls style implementation that
- follows the Microsoft Universal Design Guidelines. The style runs on any
- platform, and looks more or less identical everywhere. Minor differences
- may occur due to differences in available system fonts and font rendering
- engines.
-
- \section2 Customization
-
- The Universal style allows customizing four attributes, \l {universal-theme-attached-prop}{theme},
- \l {universal-accent-attached-prop}{accent}, \l {universal-foreground-attached-prop}{foreground}, and
- \l {universal-background-attached-prop}{background}.
-
- \image qtquickcontrols2-universal-attributes.png
-
- Both attributes can be specified for any window or item, and they automatically
- propagate to children in the same manner as \l {Control::font}{fonts}. In the
- following example, the window and all three radio buttons appear in the dark
- theme using a violet accent color:
-
- \table
- \row
- \li
- \qml
- import QtQuick 2.12
- import QtQuick.Controls 2.12
- import QtQuick.Controls.Universal 2.12
-
- ApplicationWindow {
- visible: true
-
- Universal.theme: Universal.Dark
- Universal.accent: Universal.Violet
-
- Column {
- anchors.centerIn: parent
-
- RadioButton { text: qsTr("Small") }
- RadioButton { text: qsTr("Medium"); checked: true }
- RadioButton { text: qsTr("Large") }
- }
- }
- \endqml
- \li
- \image qtquickcontrols2-universal-violet.png
- \endtable
-
- In addition to specifying the attributes in QML, it is also possible to
- specify them via environment variables or in a configuration file. Attributes
- specified in QML take precedence over all other methods.
-
- \section3 Configuration File
-
- \include qquickuniversalstyle.qdocinc conf
-
- See \l {Qt Quick Controls Configuration File} for more details about the
- configuration file.
-
- \section3 Environment Variables
-
- \include qquickuniversalstyle.qdocinc env
-
- See \l {Supported Environment Variables in Qt Quick Controls} for the full
- list of supported environment variables.
-
- \section2 Dependency
-
- The Universal style must be separately imported to gain access to the
- attributes that are specific to the Universal style. It should be noted
- that regardless of the references to the Universal style, the same
- application code runs with any other style. Universal-specific attributes
- only have an effect when the application is run with the Universal style.
-
- If the Universal style is imported in a QML file that is always loaded, the
- Universal style must be deployed with the application in order to be able
- to run the application regardless of which style the application is run with.
- By using \l {Using File Selectors with Qt Quick Controls}{file selectors},
- style-specific tweaks can be applied without creating a hard dependency to
- a style.
-
- \section2 Pre-defined Universal Colors
-
- Available pre-defined colors:
- \value Universal.Lime \stylecolor {#A4C400} {}
- \value Universal.Green \stylecolor {#60A917} {}
- \value Universal.Emerald \stylecolor {#008A00} {}
- \value Universal.Teal \stylecolor {#00ABA9} {}
- \value Universal.Cyan \stylecolor {#1BA1E2} {}
- \value Universal.Cobalt \stylecolor {#3E65FF} {(default accent)}
- \value Universal.Indigo \stylecolor {#6A00FF} {}
- \value Universal.Violet \stylecolor {#AA00FF} {}
- \value Universal.Pink \stylecolor {#F472D0} {}
- \value Universal.Magenta \stylecolor {#D80073} {}
- \value Universal.Crimson \stylecolor {#A20025} {}
- \value Universal.Red \stylecolor {#E51400} {}
- \value Universal.Orange \stylecolor {#FA6800} {}
- \value Universal.Amber \stylecolor {#F0A30A} {}
- \value Universal.Yellow \stylecolor {#E3C800} {}
- \value Universal.Brown \stylecolor {#825A2C} {}
- \value Universal.Olive \stylecolor {#6D8764} {}
- \value Universal.Steel \stylecolor {#647687} {}
- \value Universal.Mauve \stylecolor {#76608A} {}
- \value Universal.Taupe \stylecolor {#87794E} {}
-
- \b {See also} \l {Basic Style}, \l {Material Style}
-
- \section1 Attached Property Documentation
-
- \styleproperty {Universal.accent} {color} {universal-accent-attached-prop}
- \target universal-accent-attached-prop
- This attached property holds the accent color of the theme. The property
- can be attached to any window or item. The value is propagated to children.
-
- The default value is \c Universal.Cobalt.
-
- In the following example, the accent color of the highlighted button is
- changed to \c Universal.Orange:
-
- \table
- \row
- \li
- \snippet qtquickcontrols2-universal-accent.qml 1
- \li
- \image qtquickcontrols2-universal-accent.png
- \endtable
-
- \note Even though the accent can be any \l {colorbasictypedocs}{color}, it is
- recommended to use one of the \l {pre-defined Universal colors} that have been
- designed to work well with the rest of the Universal style palette.
-
- \endstyleproperty
-
- \styleproperty {Universal.background} {color} {universal-background-attached-prop}
- \target universal-background-attached-prop
- This attached property holds the background color of the theme. The property
- can be attached to any window or item. The value is propagated to children.
-
- The default value is theme-specific (light or dark).
-
- In the following example, the background color of the pane is changed to
- \c Universal.Steel:
-
- \table
- \row
- \li
- \snippet qtquickcontrols2-universal-background.qml 1
- \li
- \image qtquickcontrols2-universal-background.png
- \endtable
-
- \endstyleproperty
-
- \styleproperty {Universal.foreground} {color} {universal-foreground-attached-prop}
- \target universal-foreground-attached-prop
- This attached property holds the foreground color of the theme. The property
- can be attached to any window or item. The value is propagated to children.
-
- The default value is theme-specific (light or dark).
-
- In the following example, the foreground color of the button is set to \c
- Universal.Pink:
-
- \table
- \row
- \li
- \snippet qtquickcontrols2-universal-foreground.qml 1
- \li
- \image qtquickcontrols2-universal-foreground.png
- \endtable
-
- \styleproperty {Universal.theme} {enumeration} {universal-theme-attached-prop}
- \target universal-theme-attached-prop
- This attached property holds whether the theme is light or dark. The property
- can be attached to any window or item. The value is propagated to children.
-
- Available themes:
- \value Universal.Light Light theme (default)
- \value Universal.Dark Dark theme
- \value Universal.System System theme
-
- Setting the theme to \c System chooses either the light or dark theme based
- on the system theme colors. However, when reading the value of the theme
- property, the value is never \c System, but the actual theme.
-
- In the following example, the theme for both the pane and the button is set
- to \c Universal.Dark:
-
- \table
- \row
- \li
- \snippet qtquickcontrols2-universal-theme.qml 1
- \li
- \image qtquickcontrols2-universal-theme.png
- \endtable
-
- \endstyleproperty
-
- \section1 Attached Method Documentation
-
- \stylemethod {color} {color} {enumeration} {predefined} {color-attached-method}
- \target color-attached-method
- This attached method returns the effective color value of the specified
- \l {pre-defined Universal colors}{pre-defined Universal color}.
-
- \qml
- Rectangle {
- color: Universal.color(Universal.Red)
- }
- \endqml
-
- \endstylemethod
-
- \section1 Related Information
-
- \list
- \li \l{Styling Qt Quick Controls}
- \endlist
-*/
diff --git a/src/quickcontrols2/doc/src/qtquickcontrols2-windows.qdoc b/src/quickcontrols2/doc/src/qtquickcontrols2-windows.qdoc
deleted file mode 100644
index 8b63703b..00000000
--- a/src/quickcontrols2/doc/src/qtquickcontrols2-windows.qdoc
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquickcontrols2-Windows.html
- \title Windows Style
-
- The Windows style is a style that looks native on Windows.
- \l {detailed-desc-Windows}{More...}
-
- \styleimport {QtQuick.Controls.Windows} {Qt 6.0}
-
- \target detailed-desc-Windows
-
- The Windows style is a style that looks native on Windows. The controls are drawn run-time using
- native libraries, and is therefore only available for applications running on Windows.
-
- \note Be aware that the apperance of this style can change from one minor Qt version to the
- next, to better blend in with native applications on the platform.
-
- \table
- \row
- \li \image qtquickcontrols2-windows.png
- \caption The Windows style
- \endtable
-
- To run an application with the Windows style, see
- \l {Using Styles in Qt Quick Controls}.
-
- \section2 Current state
-
- The Windows style is under development, and some controls are not yet supported. Those
- controls are: \l BusyIndicator, \l DelayButton, \l PageIndicator, \l RangeSlider, \l Switch, \l TabBar and
- \l Tumbler. Those will fall back to use the \l {Fusion Style}.
-
- \section2 Customization
-
- The goal of the Windows style is to for the controls look and feel as similar as possible to the
- native controls on Windows. The style will follow the theme and colors configured globally from
- Windows Settings, and does not come with a separate customization API on top of that.
-
- \note If you want to style a control, you should set both the
- \l {Control::background}{background} and the \l {Control::contentItem}{contentItem}, rather than
- just one of them. This is because the Windows style will in some cases draw both the contents and
- the background into the default background item, which will not look good if the application
- combines this with a custom contentItem. By setting them both, you are guaranteed that the
- control will look the same on all platforms, for all styles.
-
- \b {See also} \l {Styling Qt Quick Controls}
-*/
diff --git a/src/quickcontrols2/fusion/ApplicationWindow.qml b/src/quickcontrols2/fusion/ApplicationWindow.qml
deleted file mode 100644
index 090d361c..00000000
--- a/src/quickcontrols2/fusion/ApplicationWindow.qml
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Templates as T
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.ApplicationWindow {
- id: window
-
- color: window.palette.window
-}
diff --git a/src/quickcontrols2/fusion/BusyIndicator.qml b/src/quickcontrols2/fusion/BusyIndicator.qml
deleted file mode 100644
index f46900ea..00000000
--- a/src/quickcontrols2/fusion/BusyIndicator.qml
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.BusyIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
-
- contentItem: BusyIndicatorImpl {
- implicitWidth: 28
- implicitHeight: 28
- color: control.palette.text
-
- running: control.running
- opacity: control.running ? 1 : 0
- Behavior on opacity { OpacityAnimator { duration: 250 } }
-
- RotationAnimator on rotation {
- running: control.running || contentItem.visible
- from: 0
- to: 360
- duration: 1000
- loops: Animation.Infinite
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/Button.qml b/src/quickcontrols2/fusion/Button.qml
deleted file mode 100644
index f635fe8b..00000000
--- a/src/quickcontrols2/fusion/Button.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Button {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 4
- spacing: 6
-
- icon.width: 16
- icon.height: 16
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.buttonText
- }
-
- background: ButtonPanel {
- implicitWidth: 80
- implicitHeight: 24
-
- control: control
- visible: !control.flat || control.down || control.checked || control.highlighted || control.visualFocus || control.hovered
- }
-}
diff --git a/src/quickcontrols2/fusion/CMakeLists.txt b/src/quickcontrols2/fusion/CMakeLists.txt
deleted file mode 100644
index 56f98908..00000000
--- a/src/quickcontrols2/fusion/CMakeLists.txt
+++ /dev/null
@@ -1,249 +0,0 @@
-#####################################################################
-## qtquickcontrols2fusionstyleplugin Plugin:
-#####################################################################
-
-set(qml_files
- "ApplicationWindow.qml"
- "BusyIndicator.qml"
- "Button.qml"
- "CheckBox.qml"
- "CheckDelegate.qml"
- "ComboBox.qml"
- "DelayButton.qml"
- "Dial.qml"
- "Dialog.qml"
- "DialogButtonBox.qml"
- "Drawer.qml"
- "Frame.qml"
- "GroupBox.qml"
- "HorizontalHeaderView.qml"
- "ItemDelegate.qml"
- "Label.qml"
- "Menu.qml"
- "MenuBar.qml"
- "MenuBarItem.qml"
- "MenuItem.qml"
- "MenuSeparator.qml"
- "Page.qml"
- "PageIndicator.qml"
- "Pane.qml"
- "Popup.qml"
- "ProgressBar.qml"
- "RadioButton.qml"
- "RadioDelegate.qml"
- "RangeSlider.qml"
- "RoundButton.qml"
- "ScrollBar.qml"
- "ScrollView.qml"
- "ScrollIndicator.qml"
- "Slider.qml"
- "SpinBox.qml"
- "SplitView.qml"
- "SwipeDelegate.qml"
- "SwitchDelegate.qml"
- "Switch.qml"
- "TabBar.qml"
- "TabButton.qml"
- "TextArea.qml"
- "TextField.qml"
- "ToolBar.qml"
- "ToolButton.qml"
- "ToolSeparator.qml"
- "ToolTip.qml"
- "Tumbler.qml"
- "VerticalHeaderView.qml"
-)
-set_source_files_properties(ApplicationWindow.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(BusyIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Button.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(CheckBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(CheckDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ComboBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(DelayButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.2;6.0"
-)
-set_source_files_properties(Dial.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Dialog.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(DialogButtonBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(Drawer.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Frame.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(GroupBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(HorizontalHeaderView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.15;6.0"
-)
-set_source_files_properties(ItemDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Label.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Menu.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(MenuBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.3;6.0"
-)
-set_source_files_properties(MenuBarItem.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.3;6.0"
-)
-set_source_files_properties(MenuItem.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(MenuSeparator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(Page.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(PageIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Pane.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Popup.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ProgressBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RadioButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RadioDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RangeSlider.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RoundButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(ScrollBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ScrollView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ScrollIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Slider.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SpinBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SplitView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.13;6.0"
-)
-set_source_files_properties(SwipeDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwitchDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Switch.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TabBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TabButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TextArea.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TextField.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolSeparator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(ToolTip.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Tumbler.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(VerticalHeaderView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.15;6.0"
-)
-
-qt_internal_add_qml_module(qtquickcontrols2fusionstyleplugin
- URI "QtQuick.Controls.Fusion"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2FusionStylePlugin
- IMPORTS
- QtQuick.Controls.Basic/auto
- PLUGIN_TARGET qtquickcontrols2fusionstyleplugin
- NO_PLUGIN_OPTIONAL
- NO_GENERATE_PLUGIN_SOURCE
- SOURCES
- qquickfusionstyle.cpp qquickfusionstyle_p.h
- qquickfusiontheme.cpp qquickfusiontheme_p.h
- qtquickcontrols2fusionstyleplugin.cpp
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickControls2Private
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
-
-qt_internal_add_resource(qtquickcontrols2fusionstyleplugin "qtquickcontrols2fusionstyle"
- PREFIX
- "/qt-project.org/imports/QtQuick/Controls/Fusion"
- FILES
- "images/arrow.png"
- "images/arrow@2x.png"
- "images/arrow@3x.png"
- "images/arrow@4x.png"
- "images/checkmark.png"
- "images/checkmark@2x.png"
- "images/checkmark@3x.png"
- "images/checkmark@4x.png"
- "images/progressmask.png"
- "images/progressmask@2x.png"
- "images/progressmask@3x.png"
- "images/progressmask@4x.png"
-)
-
-add_subdirectory(impl)
diff --git a/src/quickcontrols2/fusion/CheckBox.qml b/src/quickcontrols2/fusion/CheckBox.qml
deleted file mode 100644
index ed49a144..00000000
--- a/src/quickcontrols2/fusion/CheckBox.qml
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.CheckBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- indicator: CheckIndicator {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.palette.windowText
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-}
diff --git a/src/quickcontrols2/fusion/CheckDelegate.qml b/src/quickcontrols2/fusion/CheckDelegate.qml
deleted file mode 100644
index 93c087e4..00000000
--- a/src/quickcontrols2/fusion/CheckDelegate.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.CheckDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 16
- icon.height: 16
-
- contentItem: IconLabel {
- leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
- }
-
- indicator: CheckIndicator {
- x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- control: control
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 20
- color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
- : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
- }
-}
diff --git a/src/quickcontrols2/fusion/ComboBox.qml b/src/quickcontrols2/fusion/ComboBox.qml
deleted file mode 100644
index dfe21f70..00000000
--- a/src/quickcontrols2/fusion/ComboBox.qml
+++ /dev/null
@@ -1,174 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.ComboBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
- rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
-
- delegate: MenuItem {
- width: ListView.view.width
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
- font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
- highlighted: control.highlightedIndex === index
- hoverEnabled: control.hoverEnabled
- }
-
- indicator: ColorImage {
- x: control.mirrored ? control.padding : control.width - width - control.padding
- y: control.topPadding + (control.availableHeight - height) / 2
- color: control.editable ? control.palette.text : control.palette.buttonText
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
- width: 20
- fillMode: Image.Pad
- }
-
- contentItem: T.TextField {
- topPadding: 4
- leftPadding: 4 - control.padding
- rightPadding: 4 - control.padding
- bottomPadding: 4
-
- text: control.editable ? control.editText : control.displayText
-
- enabled: control.editable
- autoScroll: control.editable
- readOnly: control.down
- inputMethodHints: control.inputMethodHints
- validator: control.validator
- selectByMouse: control.selectTextByMouse
-
- font: control.font
- color: control.editable ? control.palette.text : control.palette.buttonText
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- verticalAlignment: Text.AlignVCenter
-
- background: PaddedRectangle {
- clip: true
- radius: 2
- padding: 1
- leftPadding: control.mirrored ? -2 : padding
- rightPadding: !control.mirrored ? -2 : padding
- color: control.palette.base
- visible: control.editable && !control.flat
-
- Rectangle {
- x: parent.width - width
- y: 1
- width: 1
- height: parent.height - 2
- color: Fusion.buttonOutline(control.palette, control.activeFocus, control.enabled)
- }
-
- Rectangle {
- x: 1
- y: 1
- width: parent.width - 3
- height: 1
- color: Fusion.topShadow
- }
- }
-
- Rectangle {
- x: 1 - control.leftPadding
- y: 1
- width: control.width - 2
- height: control.height - 2
- color: "transparent"
- border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255)
- visible: control.activeFocus
- radius: 1.7
- }
- }
-
- background: ButtonPanel {
- implicitWidth: 120
- implicitHeight: 24
-
- control: control
- visible: !control.flat || control.down
- // ### TODO: fix control.contentItem.activeFocus
- highlighted: control.visualFocus || control.contentItem.activeFocus
- }
-
- popup: T.Popup {
- width: control.width
- height: Math.min(contentItem.implicitHeight + 2, control.Window.height - topMargin - bottomMargin)
- topMargin: 6
- bottomMargin: 6
- padding: 1
-
- contentItem: ListView {
- clip: true
- implicitHeight: contentHeight
- model: control.delegateModel
- currentIndex: control.highlightedIndex
- highlightRangeMode: ListView.ApplyRange
- highlightMoveDuration: 0
-
- T.ScrollBar.vertical: ScrollBar { }
- }
-
- background: Rectangle {
- color: control.popup.palette.window
- border.color: Fusion.outline(control.palette)
-
- Rectangle {
- z: -1
- x: 1; y: 1
- width: parent.width
- height: parent.height
- color: control.palette.shadow
- opacity: 0.2
- }
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/DelayButton.qml b/src/quickcontrols2/fusion/DelayButton.qml
deleted file mode 100644
index 239ee6c8..00000000
--- a/src/quickcontrols2/fusion/DelayButton.qml
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.DelayButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
-
- transition: Transition {
- NumberAnimation {
- duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
- }
- }
-
- contentItem: ItemGroup {
- ClippedText {
- clip: control.progress > 0
- clipX: -control.leftPadding + (control.mirrored ? 0 : control.progress * control.width)
- clipWidth: control.width
- visible: control.mirrored ? control.progress > 0 : control.progress < 1
-
- text: control.text
- font: control.font
- color: control.mirrored ? control.palette.brightText : control.palette.buttonText
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
-
- ClippedText {
- clip: control.progress > 0
- clipX: -control.leftPadding
- clipWidth: (control.mirrored ? 1.0 - control.progress : control.progress) * control.width
- visible: control.mirrored ? control.progress < 1 : control.progress > 0
-
- text: control.text
- font: control.font
- color: control.mirrored ? control.palette.buttonText : control.palette.brightText
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
- }
-
- background: ButtonPanel {
- implicitWidth: 80
- implicitHeight: 24
-
- control: control
- highlighted: false
- scale: control.mirrored ? -1 : 1
-
- Rectangle {
- width: control.progress * parent.width
- height: parent.height
-
- radius: 2
- border.color: Qt.darker(Fusion.highlight(control.palette), 1.4)
- gradient: Gradient {
- GradientStop {
- position: 0
- color: Qt.lighter(Fusion.highlight(control.palette), 1.2)
- }
- GradientStop {
- position: 1
- color: Fusion.highlight(control.palette)
- }
- }
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/Dial.qml b/src/quickcontrols2/fusion/Dial.qml
deleted file mode 100644
index 71bab3a7..00000000
--- a/src/quickcontrols2/fusion/Dial.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Dial {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- background: DialImpl {
- implicitWidth: 100
- implicitHeight: 100
- highlight: control.visualFocus
- }
-
- handle: KnobImpl {
- x: control.background.x + control.background.width / 2 - width / 2
- y: control.background.y + control.background.height / 2 - height / 2
- width: control.width / 7
- height: control.height / 7
- transform: [
- Translate {
- y: -Math.min(control.background.width, control.background.height) * 0.42 + control.handle.height
- },
- Rotation {
- angle: control.angle
- origin.x: control.handle.width / 2
- origin.y: control.handle.height / 2
- }
- ]
- }
-}
diff --git a/src/quickcontrols2/fusion/Dialog.qml b/src/quickcontrols2/fusion/Dialog.qml
deleted file mode 100644
index af7fa492..00000000
--- a/src/quickcontrols2/fusion/Dialog.qml
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Dialog {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- padding: 6
-
- background: Rectangle {
- color: control.palette.window
- border.color: control.palette.mid
- radius: 2
-
- Rectangle {
- z: -1
- x: 1; y: 1
- width: parent.width
- height: parent.height
- color: control.palette.shadow
- opacity: 0.2
- radius: 2
- }
- }
-
- header: Label {
- text: control.title
- visible: control.title
- elide: Label.ElideRight
- font.bold: true
- padding: 6
- background: Rectangle {
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 1
- color: control.palette.window
- radius: 2
- }
- }
-
- footer: DialogButtonBox {
- visible: count > 0
- }
-
- T.Overlay.modal: Rectangle {
- color: Fusion.topShadow
- }
-
- T.Overlay.modeless: Rectangle {
- color: Fusion.topShadow
- }
-}
diff --git a/src/quickcontrols2/fusion/DialogButtonBox.qml b/src/quickcontrols2/fusion/DialogButtonBox.qml
deleted file mode 100644
index 4b62228f..00000000
--- a/src/quickcontrols2/fusion/DialogButtonBox.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.DialogButtonBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- spacing: 6
- padding: 6
- alignment: Qt.AlignRight
-
- delegate: Button { }
-
- contentItem: ListView {
- model: control.contentModel
- spacing: control.spacing
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- snapMode: ListView.SnapToItem
- }
-
- background: Rectangle {
- implicitHeight: 32
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
- color: control.palette.window
- radius: 2
- }
-}
diff --git a/src/quickcontrols2/fusion/Drawer.qml b/src/quickcontrols2/fusion/Drawer.qml
deleted file mode 100644
index 85268b50..00000000
--- a/src/quickcontrols2/fusion/Drawer.qml
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Drawer {
- id: control
-
- parent: T.Overlay.overlay
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: control.edge === Qt.BottomEdge
- leftPadding: control.edge === Qt.RightEdge
- rightPadding: control.edge === Qt.LeftEdge
- bottomPadding: control.edge === Qt.TopEdge
-
- enter: Transition { SmoothedAnimation { velocity: 5 } }
- exit: Transition { SmoothedAnimation { velocity: 5 } }
-
- background: Rectangle {
- color: control.palette.window
- readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge
- Rectangle {
- width: parent.horizontal ? 1 : parent.width
- height: parent.horizontal ? parent.height : 1
- color: control.palette.mid
- x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0
- y: control.edge === Qt.TopEdge ? parent.height - 1 : 0
- }
- Rectangle {
- width: parent.horizontal ? 1 : parent.width
- height: parent.horizontal ? parent.height : 1
- color: control.palette.shadow
- opacity: 0.2
- x: control.edge === Qt.LeftEdge ? parent.width : 0
- y: control.edge === Qt.TopEdge ? parent.height : 0
- }
- }
-
- T.Overlay.modal: Rectangle {
- color: Fusion.topShadow
- }
-
- T.Overlay.modeless: Rectangle {
- color: Fusion.topShadow
- }
-}
diff --git a/src/quickcontrols2/fusion/Frame.qml b/src/quickcontrols2/fusion/Frame.qml
deleted file mode 100644
index 1e1916f1..00000000
--- a/src/quickcontrols2/fusion/Frame.qml
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Frame {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 9
-
- background: Rectangle {
- color: "transparent"
- border.color: Qt.lighter(Fusion.outline(control.palette), 1.08)
- }
-}
diff --git a/src/quickcontrols2/fusion/GroupBox.qml b/src/quickcontrols2/fusion/GroupBox.qml
deleted file mode 100644
index 943a2427..00000000
--- a/src/quickcontrols2/fusion/GroupBox.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.GroupBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitLabelWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- spacing: 6
- padding: 9
- topPadding: padding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
-
- label: Text {
- x: control.leftPadding
- width: control.availableWidth
-
- text: control.title
- font: control.font
- color: control.palette.windowText
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-
- background: Rectangle {
- y: control.topPadding - control.bottomPadding
- width: parent.width
- height: parent.height - control.topPadding + control.bottomPadding
-
- radius: 2
- color: Color.transparent("black", 3 / 255)
- border.color: Qt.lighter(Fusion.outline(control.palette), 1.08)
- }
-}
diff --git a/src/quickcontrols2/fusion/HorizontalHeaderView.qml b/src/quickcontrols2/fusion/HorizontalHeaderView.qml
deleted file mode 100644
index 76f42b29..00000000
--- a/src/quickcontrols2/fusion/HorizontalHeaderView.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.HorizontalHeaderView {
- id: control
-
- implicitWidth: syncView ? syncView.width : 0
- implicitHeight: contentHeight
-
- delegate: Rectangle {
- // Qt6: add cellPadding (and font etc) as public API in headerview
- readonly property real cellPadding: 8
-
- implicitWidth: text.implicitWidth + (cellPadding * 2)
- implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2))
- border.color: "#cacaca"
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: "#fbfbfb"
- }
- GradientStop {
- position: 1
- color: "#e0dfe0"
- }
- }
-
- Text {
- id: text
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
- : model[control.textRole])
- : modelData
- width: parent.width
- height: parent.height
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- color: "#ff26282a"
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/ItemDelegate.qml b/src/quickcontrols2/fusion/ItemDelegate.qml
deleted file mode 100644
index 12154d2f..00000000
--- a/src/quickcontrols2/fusion/ItemDelegate.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.ItemDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 16
- icon.height: 16
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 20
- color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
- : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
- }
-}
diff --git a/src/quickcontrols2/fusion/Label.qml b/src/quickcontrols2/fusion/Label.qml
deleted file mode 100644
index 55db94f9..00000000
--- a/src/quickcontrols2/fusion/Label.qml
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Label {
- id: control
-
- color: control.palette.windowText
- linkColor: control.palette.link
-}
diff --git a/src/quickcontrols2/fusion/Menu.qml b/src/quickcontrols2/fusion/Menu.qml
deleted file mode 100644
index 7808850c..00000000
--- a/src/quickcontrols2/fusion/Menu.qml
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-import QtQuick.Window
-
-T.Menu {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- margins: 0
- padding: 1
- overlap: 2
-
- delegate: MenuItem { }
-
- contentItem: ListView {
- implicitHeight: contentHeight
- model: control.contentModel
- interactive: Window.window
- ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height
- : false
- clip: true
- currentIndex: control.currentIndex
-
- ScrollIndicator.vertical: ScrollIndicator {}
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 20
-
- color: control.palette.base
- border.color: Fusion.outline(control.palette)
-
- Rectangle {
- z: -1
- x: 1; y: 1
- width: parent.width
- height: parent.height
- color: control.palette.shadow
- opacity: 0.2
- }
- }
-
- T.Overlay.modal: Rectangle {
- color: Fusion.topShadow
- }
-
- T.Overlay.modeless: Rectangle {
- color: Fusion.topShadow
- }
-}
diff --git a/src/quickcontrols2/fusion/MenuBar.qml b/src/quickcontrols2/fusion/MenuBar.qml
deleted file mode 100644
index 7b6a628d..00000000
--- a/src/quickcontrols2/fusion/MenuBar.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.MenuBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- delegate: MenuBarItem { }
-
- contentItem: Row {
- spacing: control.spacing
- Repeater {
- model: control.contentModel
- }
- }
-
- background: Rectangle {
- implicitHeight: 20
-
- color: control.palette.window
-
- Rectangle {
- y: parent.height - height
- width: parent.width
- height: 1
- color: Fusion.mergedColors(Qt.darker(control.palette.window, 1.2),
- Qt.lighter(Fusion.outline(control.palette), 1.4), 60)
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/MenuBarItem.qml b/src/quickcontrols2/fusion/MenuBarItem.qml
deleted file mode 100644
index 336fca0c..00000000
--- a/src/quickcontrols2/fusion/MenuBarItem.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.MenuBarItem {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 16
- icon.height: 16
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.down || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
- }
-
- background: Rectangle {
- implicitWidth: 20
- implicitHeight: 20
-
- color: Fusion.highlight(control.palette)
- visible: control.down || control.highlighted
- }
-}
diff --git a/src/quickcontrols2/fusion/MenuItem.qml b/src/quickcontrols2/fusion/MenuItem.qml
deleted file mode 100644
index 79468f9d..00000000
--- a/src/quickcontrols2/fusion/MenuItem.qml
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.MenuItem {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 16
- icon.height: 16
-
- contentItem: IconLabel {
- readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0
- readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0
- leftPadding: !control.mirrored ? indicatorPadding : arrowPadding
- rightPadding: control.mirrored ? indicatorPadding : arrowPadding
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.down || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
- }
-
- arrow: ColorImage {
- x: control.mirrored ? control.padding : control.width - width - control.padding
- y: control.topPadding + (control.availableHeight - height) / 2
- width: 20
-
- visible: control.subMenu
- rotation: control.mirrored ? 90 : -90
- color: control.down || control.hovered || control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
- fillMode: Image.Pad
- }
-
- indicator: CheckIndicator {
- x: control.mirrored ? control.width - width - control.rightPadding : control.leftPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- control: control
- visible: control.checkable
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 20
-
- color: Fusion.highlight(control.palette)
- visible: control.down || control.highlighted
- }
-}
diff --git a/src/quickcontrols2/fusion/MenuSeparator.qml b/src/quickcontrols2/fusion/MenuSeparator.qml
deleted file mode 100644
index b8be640b..00000000
--- a/src/quickcontrols2/fusion/MenuSeparator.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.MenuSeparator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 5
- verticalPadding: 1
-
- contentItem: Rectangle {
- implicitWidth: 188
- implicitHeight: 1
- color: Qt.lighter(Fusion.darkShade, 1.06)
- }
-}
diff --git a/src/quickcontrols2/fusion/Page.qml b/src/quickcontrols2/fusion/Page.qml
deleted file mode 100644
index bf47e231..00000000
--- a/src/quickcontrols2/fusion/Page.qml
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Page {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- background: Rectangle {
- color: control.palette.window
- }
-}
diff --git a/src/quickcontrols2/fusion/PageIndicator.qml b/src/quickcontrols2/fusion/PageIndicator.qml
deleted file mode 100644
index 22ceabcc..00000000
--- a/src/quickcontrols2/fusion/PageIndicator.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.PageIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 4
- spacing: 4
-
- delegate: Rectangle {
- implicitWidth: 6
- implicitHeight: 6
-
- radius: width / 2
- color: control.palette.shadow
-
- opacity: index === currentIndex ? 0.95 : pressed ? 0.75 : 0.45
- Behavior on opacity { OpacityAnimator { duration: 100 } }
- }
-
- contentItem: Row {
- spacing: control.spacing
-
- Repeater {
- model: control.count
- delegate: control.delegate
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/Pane.qml b/src/quickcontrols2/fusion/Pane.qml
deleted file mode 100644
index 9cc49917..00000000
--- a/src/quickcontrols2/fusion/Pane.qml
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Pane {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 9
-
- background: Rectangle {
- color: control.palette.window
- }
-}
diff --git a/src/quickcontrols2/fusion/Popup.qml b/src/quickcontrols2/fusion/Popup.qml
deleted file mode 100644
index f77ea1d1..00000000
--- a/src/quickcontrols2/fusion/Popup.qml
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Popup {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 6
-
- background: Rectangle {
- color: control.palette.window
- border.color: control.palette.mid
- radius: 2
- }
-
- T.Overlay.modal: Rectangle {
- color: Fusion.topShadow
- }
-
- T.Overlay.modeless: Rectangle {
- color: Fusion.topShadow
- }
-}
diff --git a/src/quickcontrols2/fusion/ProgressBar.qml b/src/quickcontrols2/fusion/ProgressBar.qml
deleted file mode 100644
index 0ad6b483..00000000
--- a/src/quickcontrols2/fusion/ProgressBar.qml
+++ /dev/null
@@ -1,116 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.ProgressBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- contentItem: Item {
- implicitWidth: 120
- implicitHeight: 24
- scale: control.mirrored ? -1 : 1
-
- Rectangle {
- height: parent.height
- width: (control.indeterminate ? 1.0 : control.position) * parent.width
-
- radius: 2
- border.color: Qt.darker(Fusion.highlight(control.palette), 1.4)
- gradient: Gradient {
- GradientStop {
- position: 0
- color: Qt.lighter(Fusion.highlight(control.palette), 1.2)
- }
- GradientStop {
- position: 1
- color: Fusion.highlight(control.palette)
- }
- }
- }
-
- Item {
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
- visible: control.indeterminate
- clip: true
-
- ColorImage {
- width: Math.ceil(parent.width / implicitWidth + 1) * implicitWidth
- height: parent.height
-
- mirror: control.mirrored
- fillMode: Image.TileHorizontally
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/progressmask.png"
- color: Color.transparent(Qt.lighter(Fusion.highlight(control.palette), 1.2), 160 / 255)
-
- visible: control.indeterminate
- NumberAnimation on x {
- running: control.indeterminate && control.visible
- from: -31 // progressmask.png width
- to: 0
- loops: Animation.Infinite
- duration: 750
- }
- }
- }
- }
-
- background: Rectangle {
- implicitWidth: 120
- implicitHeight: 24
-
- radius: 2
- color: control.palette.base
- border.color: Fusion.outline(control.palette)
-
- Rectangle {
- x: 1; y: 1; height: 1
- width: parent.width - 2
- color: Fusion.topShadow
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/RadioButton.qml b/src/quickcontrols2/fusion/RadioButton.qml
deleted file mode 100644
index c7796411..00000000
--- a/src/quickcontrols2/fusion/RadioButton.qml
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.RadioButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- indicator: RadioIndicator {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.palette.windowText
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-}
diff --git a/src/quickcontrols2/fusion/RadioDelegate.qml b/src/quickcontrols2/fusion/RadioDelegate.qml
deleted file mode 100644
index 4c0d936c..00000000
--- a/src/quickcontrols2/fusion/RadioDelegate.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.RadioDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 16
- icon.height: 16
-
- contentItem: IconLabel {
- leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
- }
-
- indicator: RadioIndicator {
- x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- control: control
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 20
- color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
- : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
- }
-}
diff --git a/src/quickcontrols2/fusion/RangeSlider.qml b/src/quickcontrols2/fusion/RangeSlider.qml
deleted file mode 100644
index 418bac77..00000000
--- a/src/quickcontrols2/fusion/RangeSlider.qml
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.RangeSlider {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- Math.max(first.implicitHandleWidth,
- second.implicitHandleWidth) + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- Math.max(first.implicitHandleHeight,
- second.implicitHandleHeight) + topPadding + bottomPadding)
-
- first.handle: SliderHandle {
- x: control.leftPadding + Math.round(control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
-
- palette: control.palette
- pressed: control.first.pressed
- hovered: control.first.hovered
- vertical: control.vertical
- visualFocus: activeFocus
- }
-
- second.handle: SliderHandle {
- x: control.leftPadding + Math.round(control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
-
- palette: control.palette
- pressed: control.second.pressed
- hovered: control.second.hovered
- vertical: control.vertical
- visualFocus: activeFocus
- }
-
- background: SliderGroove {
- control: control
- offset: control.first.position
- progress: control.second.position
- visualProgress: control.second.visualPosition
- }
-}
diff --git a/src/quickcontrols2/fusion/RoundButton.qml b/src/quickcontrols2/fusion/RoundButton.qml
deleted file mode 100644
index 31217f71..00000000
--- a/src/quickcontrols2/fusion/RoundButton.qml
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.RoundButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 16
- icon.height: 16
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.buttonText
- }
-
- background: Rectangle {
- implicitWidth: 32
- implicitHeight: 32
- visible: !control.flat || control.down || control.checked
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: control.down || control.checked ? Fusion.buttonColor(control.palette, control.highlighted, control.down || control.checked, control.hovered)
- : Fusion.gradientStart(Fusion.buttonColor(control.palette, control.highlighted, control.down, control.hovered))
- }
- GradientStop {
- position: 1
- color: control.down || control.checked ? Fusion.buttonColor(control.palette, control.highlighted, control.down || control.checked, control.hovered)
- : Fusion.gradientStop(Fusion.buttonColor(control.palette, control.highlighted, control.down, control.hovered))
- }
- }
-
- radius: control.radius
- border.color: Fusion.buttonOutline(control.palette, control.highlighted || control.visualFocus, control.enabled)
-
- Rectangle {
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
- border.color: Fusion.innerContrastLine
- color: "transparent"
- radius: control.radius
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/ScrollBar.qml b/src/quickcontrols2/fusion/ScrollBar.qml
deleted file mode 100644
index b990d955..00000000
--- a/src/quickcontrols2/fusion/ScrollBar.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.ScrollBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 2
- visible: control.policy !== T.ScrollBar.AlwaysOff
- minimumSize: orientation == Qt.Horizontal ? height / width : width / height
-
- contentItem: Rectangle {
- implicitWidth: control.interactive ? 6 : 2
- implicitHeight: control.interactive ? 6 : 2
-
- radius: width / 2
- color: control.pressed ? control.palette.dark : control.palette.mid
- opacity: 0.0
-
- states: State {
- name: "active"
- when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
- PropertyChanges { target: control.contentItem; opacity: 0.75 }
- }
-
- transitions: Transition {
- from: "active"
- SequentialAnimation {
- PauseAnimation { duration: 450 }
- NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
- }
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/ScrollIndicator.qml b/src/quickcontrols2/fusion/ScrollIndicator.qml
deleted file mode 100644
index bf386f6c..00000000
--- a/src/quickcontrols2/fusion/ScrollIndicator.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.ScrollIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 2
-
- contentItem: Rectangle {
- implicitWidth: 2
- implicitHeight: 2
-
- color: control.palette.mid
- visible: control.size < 1.0
- opacity: 0.0
-
- states: State {
- name: "active"
- when: control.active
- PropertyChanges { target: control.contentItem; opacity: 0.75 }
- }
-
- transitions: [
- Transition {
- from: "active"
- SequentialAnimation {
- PauseAnimation { duration: 450 }
- NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
- }
- }
- ]
- }
-}
diff --git a/src/quickcontrols2/fusion/ScrollView.qml b/src/quickcontrols2/fusion/ScrollView.qml
deleted file mode 100644
index a6bba9de..00000000
--- a/src/quickcontrols2/fusion/ScrollView.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ScrollView {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- ScrollBar.vertical: ScrollBar {
- parent: control
- x: control.mirrored ? 0 : control.width - width
- y: control.topPadding
- height: control.availableHeight
- active: control.ScrollBar.horizontal.active
- }
-
- ScrollBar.horizontal: ScrollBar {
- parent: control
- x: control.leftPadding
- y: control.height - height
- width: control.availableWidth
- active: control.ScrollBar.vertical.active
- }
-}
diff --git a/src/quickcontrols2/fusion/Slider.qml b/src/quickcontrols2/fusion/Slider.qml
deleted file mode 100644
index 4e20dcfc..00000000
--- a/src/quickcontrols2/fusion/Slider.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Slider {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitHandleWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitHandleHeight + topPadding + bottomPadding)
-
- handle: SliderHandle {
- x: control.leftPadding + Math.round(control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + Math.round(control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
-
- palette: control.palette
- pressed: control.pressed
- hovered: control.hovered
- vertical: control.vertical
- visualFocus: control.visualFocus
- }
-
- background: SliderGroove {
- control: control
- progress: control.position
- visualProgress: control.visualPosition
- }
-}
diff --git a/src/quickcontrols2/fusion/SpinBox.qml b/src/quickcontrols2/fusion/SpinBox.qml
deleted file mode 100644
index e71aa428..00000000
--- a/src/quickcontrols2/fusion/SpinBox.qml
+++ /dev/null
@@ -1,181 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.SpinBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth + 2 * padding +
- Math.max(up.implicitIndicatorWidth,
- down.implicitIndicatorWidth))
- implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight,
- up.implicitIndicatorHeight +
- down.implicitIndicatorHeight)
-
- padding: 4
- leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
- rightPadding: padding + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
-
- validator: IntValidator {
- locale: control.locale.name
- bottom: Math.min(control.from, control.to)
- top: Math.max(control.from, control.to)
- }
-
- contentItem: TextInput {
- z: 2
- text: control.displayText
-
- font: control.font
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- horizontalAlignment: Qt.AlignHCenter
- verticalAlignment: Qt.AlignVCenter
-
- readOnly: !control.editable
- validator: control.validator
- inputMethodHints: control.inputMethodHints
- }
-
- up.indicator: PaddedRectangle {
- x: control.mirrored ? 1 : parent.width - width - 1
- y: 1
- height: parent.height / 2 - 1
- implicitWidth: 16
- implicitHeight: 10
-
- radius: 1.7
- clip: true
- topPadding: -2
- leftPadding: -2
- color: control.up.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent"
-
- ColorImage {
- scale: -1
- width: parent.width
- height: parent.height
- opacity: enabled ? 1.0 : 0.5
- color: control.palette.buttonText
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
- fillMode: Image.Pad
- }
- }
-
- down.indicator: PaddedRectangle {
- x: control.mirrored ? 1 : parent.width - width - 1
- y: parent.height - height - 1
- height: parent.height / 2 - 1
- implicitWidth: 16
- implicitHeight: 10
-
- radius: 1.7
- clip: true
- topPadding: -2
- leftPadding: -2
- color: control.down.pressed ? Fusion.buttonColor(control.palette, false, true, true) : "transparent"
-
- ColorImage {
- width: parent.width
- height: parent.height
- opacity: enabled ? 1.0 : 0.5
- color: control.palette.buttonText
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/arrow.png"
- fillMode: Image.Pad
- }
- }
-
- background: Rectangle {
- implicitWidth: 120
- implicitHeight: 24
-
- radius: 2
- color: control.palette.base
- border.color: control.activeFocus ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette)
-
- Rectangle {
- x: 2
- y: 1
- width: parent.width - 4
- height: 1
- color: Fusion.topShadow
- }
-
- Rectangle {
- x: control.mirrored ? 1 : parent.width - width - 1
- y: 1
- width: Math.max(control.up.indicator ? control.up.indicator.width : 0,
- control.down.indicator ? control.down.indicator.width : 0) + 1
- height: parent.height - 2
-
- radius: 2
- gradient: Gradient {
- GradientStop {
- position: 0
- color: Fusion.gradientStart(Fusion.buttonColor(control.palette, control.visualFocus, false, control.up.hovered || control.down.hovered))
- }
- GradientStop {
- position: 1
- color: Fusion.gradientStop(Fusion.buttonColor(control.palette, control.visualFocus, false, control.up.hovered || control.down.hovered))
- }
- }
-
- Rectangle {
- x: control.mirrored ? parent.width - 1 : 0
- height: parent.height
- width: 1
- color: Fusion.outline(control.palette)
- }
- }
-
- Rectangle {
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
- color: "transparent"
- border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255)
- visible: control.activeFocus
- radius: 1.7
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/SplitView.qml b/src/quickcontrols2/fusion/SplitView.qml
deleted file mode 100644
index fdf12bed..00000000
--- a/src/quickcontrols2/fusion/SplitView.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-
-T.SplitView {
- id: control
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- handle: Rectangle {
- implicitWidth: control.orientation === Qt.Horizontal ? 2 : control.width
- implicitHeight: control.orientation === Qt.Horizontal ? control.height : 2
- color: T.SplitHandle.pressed ? palette.dark
- : (T.SplitHandle.hovered ? control.palette.midlight : control.palette.mid)
- }
-}
diff --git a/src/quickcontrols2/fusion/SwipeDelegate.qml b/src/quickcontrols2/fusion/SwipeDelegate.qml
deleted file mode 100644
index ac840f64..00000000
--- a/src/quickcontrols2/fusion/SwipeDelegate.qml
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.SwipeDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 16
- icon.height: 16
-
- swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } }
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 20
- color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
- : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
- }
-}
diff --git a/src/quickcontrols2/fusion/Switch.qml b/src/quickcontrols2/fusion/Switch.qml
deleted file mode 100644
index 2e31535b..00000000
--- a/src/quickcontrols2/fusion/Switch.qml
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Switch {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- indicator: SwitchIndicator {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.palette.text
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-}
diff --git a/src/quickcontrols2/fusion/SwitchDelegate.qml b/src/quickcontrols2/fusion/SwitchDelegate.qml
deleted file mode 100644
index 0439b0cf..00000000
--- a/src/quickcontrols2/fusion/SwitchDelegate.qml
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.SwitchDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 16
- icon.height: 16
-
- indicator: SwitchIndicator {
- x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: IconLabel {
- leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 20
- color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
- : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
- }
-}
diff --git a/src/quickcontrols2/fusion/TabBar.qml b/src/quickcontrols2/fusion/TabBar.qml
deleted file mode 100644
index e0933653..00000000
--- a/src/quickcontrols2/fusion/TabBar.qml
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.TabBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- spacing: -1
-
- contentItem: ListView {
- model: control.contentModel
- currentIndex: control.currentIndex
-
- spacing: control.spacing
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- flickableDirection: Flickable.AutoFlickIfNeeded
- snapMode: ListView.SnapToItem
-
- highlightMoveDuration: 0
- highlightRangeMode: ListView.ApplyRange
- preferredHighlightBegin: 40
- preferredHighlightEnd: width - 40
- }
-
- background: Item {
- implicitHeight: 21
-
- Rectangle {
- width: parent.width
- height: 1
- y: control.position === T.TabBar.Header ? parent.height - 1 : 0
- color: Fusion.outline(control.palette)
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/TabButton.qml b/src/quickcontrols2/fusion/TabButton.qml
deleted file mode 100644
index 161a7b02..00000000
--- a/src/quickcontrols2/fusion/TabButton.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.TabButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 2
- horizontalPadding: 4
- spacing: 6
-
- icon.width: 16
- icon.height: 16
-
- z: checked
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.buttonText
- }
-
- background: Rectangle {
- y: control.checked || control.TabBar.position !== T.TabBar.Header ? 0 : 2
- implicitHeight: 21
- height: control.height - (control.checked ? 0 : 2)
-
- border.color: Qt.lighter(Fusion.outline(control.palette), 1.1)
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: control.checked ? Qt.lighter(Fusion.tabFrameColor(control.palette), 1.04)
- : Qt.darker(Fusion.tabFrameColor(control.palette), 1.08)
- }
- GradientStop {
- position: control.checked ? 0 : 0.85
- color: control.checked ? Qt.lighter(Fusion.tabFrameColor(control.palette), 1.04)
- : Qt.darker(Fusion.tabFrameColor(control.palette), 1.08)
- }
- GradientStop {
- position: 1
- color: control.checked ? Fusion.tabFrameColor(control.palette)
- : Qt.darker(Fusion.tabFrameColor(control.palette), 1.16)
- }
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/TextArea.qml b/src/quickcontrols2/fusion/TextArea.qml
deleted file mode 100644
index 5346aad1..00000000
--- a/src/quickcontrols2/fusion/TextArea.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.TextArea {
- id: control
-
- implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
- implicitBackgroundWidth + leftInset + rightInset,
- placeholder.implicitWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight + topInset + bottomInset,
- placeholder.implicitHeight + topPadding + bottomPadding)
-
- padding: 6
- leftPadding: padding + 4
-
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- placeholderTextColor: control.palette.placeholderText
-
- PlaceholderText {
- id: placeholder
- x: control.leftPadding
- y: control.topPadding
- width: control.width - (control.leftPadding + control.rightPadding)
- height: control.height - (control.topPadding + control.bottomPadding)
-
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- verticalAlignment: control.verticalAlignment
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- elide: Text.ElideRight
- renderType: control.renderType
- }
-}
diff --git a/src/quickcontrols2/fusion/TextField.qml b/src/quickcontrols2/fusion/TextField.qml
deleted file mode 100644
index d99c3664..00000000
--- a/src/quickcontrols2/fusion/TextField.qml
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.TextField {
- id: control
-
- implicitWidth: implicitBackgroundWidth + leftInset + rightInset
- || Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding,
- placeholder.implicitHeight + topPadding + bottomPadding)
-
- padding: 4
-
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- placeholderTextColor: control.palette.placeholderText
- verticalAlignment: TextInput.AlignVCenter
-
- PlaceholderText {
- id: placeholder
- x: control.leftPadding
- y: control.topPadding
- width: control.width - (control.leftPadding + control.rightPadding)
- height: control.height - (control.topPadding + control.bottomPadding)
-
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- verticalAlignment: control.verticalAlignment
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- elide: Text.ElideRight
- renderType: control.renderType
- }
-
- background: Rectangle {
- implicitWidth: 120
- implicitHeight: 24
-
- radius: 2
- color: control.palette.base
- border.color: control.activeFocus ? Fusion.highlightedOutline(control.palette) : Fusion.outline(control.palette)
-
- Rectangle {
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
- color: "transparent"
- border.color: Color.transparent(Fusion.highlightedOutline(control.palette), 40 / 255)
- visible: control.activeFocus
- radius: 1.7
- }
-
- Rectangle {
- x: 2
- y: 1
- width: parent.width - 4
- height: 1
- color: Fusion.topShadow
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/ToolBar.qml b/src/quickcontrols2/fusion/ToolBar.qml
deleted file mode 100644
index 747a292d..00000000
--- a/src/quickcontrols2/fusion/ToolBar.qml
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.ToolBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- horizontalPadding: 6
- topPadding: control.position === T.ToolBar.Footer ? 1 : 0
- bottomPadding: control.position === T.ToolBar.Header ? 1 : 0
-
- background: Rectangle {
- implicitHeight: 26
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: Qt.lighter(control.palette.window, 1.04)
- }
- GradientStop {
- position: 1
- color: control.palette.window
- }
- }
-
- Rectangle {
- width: parent.width
- height: 1
- color: control.position === T.ToolBar.Header ? Fusion.lightShade : Fusion.darkShade
- }
-
- Rectangle {
- y: parent.height - height
- width: parent.width
- height: 1
- color: control.position === T.ToolBar.Header ? Fusion.darkShade : Fusion.lightShade
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/ToolButton.qml b/src/quickcontrols2/fusion/ToolButton.qml
deleted file mode 100644
index a364a113..00000000
--- a/src/quickcontrols2/fusion/ToolButton.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.ToolButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 16
- icon.height: 16
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.buttonText
- }
-
- background: ButtonPanel {
- implicitWidth: 20
- implicitHeight: 20
-
- control: control
- visible: control.down || control.checked || control.highlighted || control.visualFocus || control.hovered
- }
-}
diff --git a/src/quickcontrols2/fusion/ToolSeparator.qml b/src/quickcontrols2/fusion/ToolSeparator.qml
deleted file mode 100644
index bfebf205..00000000
--- a/src/quickcontrols2/fusion/ToolSeparator.qml
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.ToolSeparator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: vertical ? 6 : 2
- verticalPadding: vertical ? 2 : 6
-
- contentItem: Rectangle {
- implicitWidth: vertical ? 2 : 8
- implicitHeight: vertical ? 8 : 2
- color: Qt.darker(control.palette.window, 1.1)
-
- Rectangle {
- x: 1
- width: 1
- height: parent.height
- color: Qt.lighter(control.palette.window, 1.1)
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/ToolTip.qml b/src/quickcontrols2/fusion/ToolTip.qml
deleted file mode 100644
index 90e0c268..00000000
--- a/src/quickcontrols2/fusion/ToolTip.qml
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.ToolTip {
- id: control
-
- x: parent ? (parent.width - implicitWidth) / 2 : 0
- y: -implicitHeight - 3
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- margins: 6
- padding: 6
-
- closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
-
- contentItem: Text {
- text: control.text
- font: control.font
- wrapMode: Text.Wrap
- color: control.palette.toolTipText
- }
-
- background: Rectangle {
- color: control.palette.toolTipBase
- border.color: control.palette.toolTipText
-
- Rectangle {
- z: -1
- x: 1; y: 1
- width: parent.width
- height: parent.height
- color: control.palette.shadow
- opacity: 0.5
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/Tumbler.qml b/src/quickcontrols2/fusion/Tumbler.qml
deleted file mode 100644
index 0c2841e7..00000000
--- a/src/quickcontrols2/fusion/Tumbler.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-T.Tumbler {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- delegate: Text {
- text: modelData
- color: control.palette.windowText
- font: control.font
- opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
-
- contentItem: TumblerView {
- implicitWidth: 60
- implicitHeight: 200
- model: control.model
- delegate: control.delegate
- path: Path {
- startX: control.contentItem.width / 2
- startY: -control.contentItem.delegateHeight / 2
- PathLine {
- x: control.contentItem.width / 2
- y: (control.visibleItemCount + 1) * control.contentItem.delegateHeight - control.contentItem.delegateHeight / 2
- }
- }
-
- property real delegateHeight: control.availableHeight / control.visibleItemCount
- }
-}
diff --git a/src/quickcontrols2/fusion/VerticalHeaderView.qml b/src/quickcontrols2/fusion/VerticalHeaderView.qml
deleted file mode 100644
index 3da51290..00000000
--- a/src/quickcontrols2/fusion/VerticalHeaderView.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.VerticalHeaderView {
- id: control
-
- implicitWidth: contentWidth
- implicitHeight: syncView ? syncView.height : 0
-
- delegate: Rectangle {
- // Qt6: add cellPadding (and font etc) as public API in headerview
- readonly property real cellPadding: 8
-
- implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2))
- implicitHeight: text.implicitHeight + (cellPadding * 2)
- border.color: "#cacaca"
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: "#fbfbfb"
- }
- GradientStop {
- position: 1
- color: "#e0dfe0"
- }
- }
-
- Text {
- id: text
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
- : model[control.textRole])
- : modelData
- width: parent.width
- height: parent.height
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- color: "#ff26282a"
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/fusion.pri b/src/quickcontrols2/fusion/fusion.pri
deleted file mode 100644
index b57ded65..00000000
--- a/src/quickcontrols2/fusion/fusion.pri
+++ /dev/null
@@ -1,58 +0,0 @@
-HEADERS += \
- $$PWD/qquickfusionstyle_p.h \
- $$PWD/qquickfusiontheme_p.h
-
-SOURCES += \
- $$PWD/qquickfusionstyle.cpp \
- $$PWD/qquickfusiontheme.cpp
-
-QML_FILES += \
- $$PWD/ApplicationWindow.qml \
- $$PWD/BusyIndicator.qml \
- $$PWD/Button.qml \
- $$PWD/CheckBox.qml \
- $$PWD/CheckDelegate.qml \
- $$PWD/ComboBox.qml \
- $$PWD/DelayButton.qml \
- $$PWD/Dial.qml \
- $$PWD/Dialog.qml \
- $$PWD/DialogButtonBox.qml \
- $$PWD/Drawer.qml \
- $$PWD/Frame.qml \
- $$PWD/GroupBox.qml \
- $$PWD/HorizontalHeaderView.qml \
- $$PWD/ItemDelegate.qml \
- $$PWD/Label.qml \
- $$PWD/Menu.qml \
- $$PWD/MenuBar.qml \
- $$PWD/MenuBarItem.qml \
- $$PWD/MenuItem.qml \
- $$PWD/MenuSeparator.qml \
- $$PWD/Page.qml \
- $$PWD/PageIndicator.qml \
- $$PWD/Pane.qml \
- $$PWD/Popup.qml \
- $$PWD/ProgressBar.qml \
- $$PWD/RadioButton.qml \
- $$PWD/RadioDelegate.qml \
- $$PWD/RangeSlider.qml \
- $$PWD/RoundButton.qml \
- $$PWD/ScrollBar.qml \
- $$PWD/ScrollView.qml \
- $$PWD/ScrollIndicator.qml \
- $$PWD/Slider.qml \
- $$PWD/SpinBox.qml \
- $$PWD/SplitView.qml \
- $$PWD/SwipeDelegate.qml \
- $$PWD/SwitchDelegate.qml \
- $$PWD/Switch.qml \
- $$PWD/TabBar.qml \
- $$PWD/TabButton.qml \
- $$PWD/TextArea.qml \
- $$PWD/TextField.qml \
- $$PWD/ToolBar.qml \
- $$PWD/ToolButton.qml \
- $$PWD/ToolSeparator.qml \
- $$PWD/ToolTip.qml \
- $$PWD/Tumbler.qml \
- $$PWD/VerticalHeaderView.qml
diff --git a/src/quickcontrols2/fusion/images/arrow.png b/src/quickcontrols2/fusion/images/arrow.png
deleted file mode 100644
index 97ef0238..00000000
--- a/src/quickcontrols2/fusion/images/arrow.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/images/arrow.svg b/src/quickcontrols2/fusion/images/arrow.svg
deleted file mode 100644
index 44383924..00000000
--- a/src/quickcontrols2/fusion/images/arrow.svg
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="10"
- height="6"
- viewBox="0 0 10 6"
- id="svg2"
- version="1.1"
- inkscape:version="0.91 r13725"
- inkscape:export-filename="/Users/jpnurmi/Downloads/arrow@4x.png"
- inkscape:export-xdpi="360"
- inkscape:export-ydpi="360"
- sodipodi:docname="arrow.svg">
- <defs
- id="defs4" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="31.678384"
- inkscape:cx="7.9810383"
- inkscape:cy="3.0344775"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="true"
- units="px"
- inkscape:snap-to-guides="true"
- inkscape:snap-page="true"
- inkscape:window-width="1440"
- inkscape:window-height="851"
- inkscape:window-x="0"
- inkscape:window-y="1"
- inkscape:window-maximized="1">
- <inkscape:grid
- type="xygrid"
- id="grid3336" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(0,-1046.3622)">
- <path
- transform="matrix(1.2371791,0,0,0.85714284,1.0769252,150.19463)"
- style="fill:#000000;fill-opacity:0.7254902"
- inkscape:transform-center-y="1.4999605"
- d="m 3.1709837,1051.3622 -3.2331616,-4.6667 6.4663233,0 z"
- id="path3365"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccc" />
- </g>
-</svg>
diff --git a/src/quickcontrols2/fusion/images/arrow@2x.png b/src/quickcontrols2/fusion/images/arrow@2x.png
deleted file mode 100644
index 9bfc4e6e..00000000
--- a/src/quickcontrols2/fusion/images/arrow@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/images/arrow@3x.png b/src/quickcontrols2/fusion/images/arrow@3x.png
deleted file mode 100644
index 6fd9c988..00000000
--- a/src/quickcontrols2/fusion/images/arrow@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/images/arrow@4x.png b/src/quickcontrols2/fusion/images/arrow@4x.png
deleted file mode 100644
index f5e1e66a..00000000
--- a/src/quickcontrols2/fusion/images/arrow@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/images/checkmark.png b/src/quickcontrols2/fusion/images/checkmark.png
deleted file mode 100644
index deb30419..00000000
--- a/src/quickcontrols2/fusion/images/checkmark.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/images/checkmark.svg b/src/quickcontrols2/fusion/images/checkmark.svg
deleted file mode 100644
index f1afdc4f..00000000
--- a/src/quickcontrols2/fusion/images/checkmark.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="14"
- height="14"
- viewBox="0 0 14 14"
- id="svg3386"
- version="1.1"
- inkscape:version="0.91 r13725"
- inkscape:export-filename="/Users/jpnurmi/Downloads/checkmark@4x.png"
- inkscape:export-xdpi="360"
- inkscape:export-ydpi="360"
- sodipodi:docname="checkmark.svg">
- <defs
- id="defs3388" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="32"
- inkscape:cx="1.9865044"
- inkscape:cy="6.0706667"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- units="px"
- inkscape:snap-page="true"
- inkscape:snap-grids="true"
- inkscape:snap-to-guides="true"
- inkscape:window-width="1440"
- inkscape:window-height="851"
- inkscape:window-x="0"
- inkscape:window-y="1"
- inkscape:window-maximized="1" />
- <metadata
- id="metadata3391">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(0,-1038.3622)">
- <path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.79999995;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 5,1045.3622 2,4 2.5,-8"
- id="path4198"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccc"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- </g>
-</svg>
diff --git a/src/quickcontrols2/fusion/images/checkmark@2x.png b/src/quickcontrols2/fusion/images/checkmark@2x.png
deleted file mode 100644
index f80de0a4..00000000
--- a/src/quickcontrols2/fusion/images/checkmark@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/images/checkmark@3x.png b/src/quickcontrols2/fusion/images/checkmark@3x.png
deleted file mode 100644
index c095eed1..00000000
--- a/src/quickcontrols2/fusion/images/checkmark@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/images/checkmark@4x.png b/src/quickcontrols2/fusion/images/checkmark@4x.png
deleted file mode 100644
index e58c7b4d..00000000
--- a/src/quickcontrols2/fusion/images/checkmark@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/images/progressmask.png b/src/quickcontrols2/fusion/images/progressmask.png
deleted file mode 100644
index a354377c..00000000
--- a/src/quickcontrols2/fusion/images/progressmask.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/images/progressmask.svg b/src/quickcontrols2/fusion/images/progressmask.svg
deleted file mode 100644
index a0dfc426..00000000
--- a/src/quickcontrols2/fusion/images/progressmask.svg
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="31"
- height="22"
- viewBox="0 0 8.202083 5.8208335"
- version="1.1"
- id="svg8"
- inkscape:export-filename="/home/jpnurmi/Projects/qt-dev/qtquickcontrols2/src/imports/controls/fusion/images/progressmask@4x.png"
- inkscape:export-xdpi="384"
- inkscape:export-ydpi="384"
- inkscape:version="0.92.1 r"
- sodipodi:docname="progressmask.svg">
- <defs
- id="defs2" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="15.839192"
- inkscape:cx="61.144853"
- inkscape:cy="14.574824"
- inkscape:document-units="mm"
- inkscape:current-layer="layer1"
- showgrid="false"
- units="px"
- inkscape:pagecheckerboard="true"
- inkscape:window-width="3840"
- inkscape:window-height="2031"
- inkscape:window-x="0"
- inkscape:window-y="55"
- inkscape:window-maximized="1" />
- <metadata
- id="metadata5">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(0,-291.17915)">
- <path
- style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:4.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 0,296.99998 4.7625,-5.82083"
- id="path4485"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cc" />
- <path
- style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:4.5;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 8.2020833,296.99998 4.7624997,-5.82083"
- id="path4485-3"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cc" />
- </g>
-</svg>
diff --git a/src/quickcontrols2/fusion/images/progressmask@2x.png b/src/quickcontrols2/fusion/images/progressmask@2x.png
deleted file mode 100644
index 69476bf4..00000000
--- a/src/quickcontrols2/fusion/images/progressmask@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/images/progressmask@3x.png b/src/quickcontrols2/fusion/images/progressmask@3x.png
deleted file mode 100644
index 00a1c09d..00000000
--- a/src/quickcontrols2/fusion/images/progressmask@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/images/progressmask@4x.png b/src/quickcontrols2/fusion/images/progressmask@4x.png
deleted file mode 100644
index 263110d5..00000000
--- a/src/quickcontrols2/fusion/images/progressmask@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/fusion/impl/ButtonPanel.qml b/src/quickcontrols2/fusion/impl/ButtonPanel.qml
deleted file mode 100644
index ffe87003..00000000
--- a/src/quickcontrols2/fusion/impl/ButtonPanel.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-Rectangle {
- id: panel
-
- property Item control
- property bool highlighted: control.highlighted
-
- visible: !control.flat || control.down || control.checked
-
- color: Fusion.buttonColor(control.palette, panel.highlighted, control.down || control.checked, control.hovered)
- gradient: control.down || control.checked ? null : buttonGradient
-
- Gradient {
- id: buttonGradient
- GradientStop {
- position: 0
- color: Fusion.gradientStart(Fusion.buttonColor(panel.control.palette, panel.highlighted, panel.control.down, panel.control.hovered))
- }
- GradientStop {
- position: 1
- color: Fusion.gradientStop(Fusion.buttonColor(panel.control.palette, panel.highlighted, panel.control.down, panel.control.hovered))
- }
- }
-
- radius: 2
- border.color: Fusion.buttonOutline(control.palette, panel.highlighted || control.visualFocus, control.enabled)
-
- Rectangle {
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
- border.color: Fusion.innerContrastLine
- color: "transparent"
- radius: 2
- }
-}
diff --git a/src/quickcontrols2/fusion/impl/CMakeLists.txt b/src/quickcontrols2/fusion/impl/CMakeLists.txt
deleted file mode 100644
index 8aca54d5..00000000
--- a/src/quickcontrols2/fusion/impl/CMakeLists.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-#####################################################################
-## qtquickcontrols2fusionstyleimplplugin Plugin:
-#####################################################################
-
-set(qml_files
- "ButtonPanel.qml"
- "CheckIndicator.qml"
- "RadioIndicator.qml"
- "SliderGroove.qml"
- "SliderHandle.qml"
- "SwitchIndicator.qml"
-)
-set_source_files_properties(${qml_files} PROPERTIES
- QT_QML_SOURCE_VERSION "2.3"
-)
-
-qt_internal_add_qml_module(qtquickcontrols2fusionstyleimplplugin
- URI "QtQuick.Controls.Fusion.impl"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2FusionStyleImplPlugin
- PLUGIN_TARGET qtquickcontrols2fusionstyleimplplugin
- NO_PLUGIN_OPTIONAL
- SOURCES
- qquickfusionbusyindicator.cpp qquickfusionbusyindicator_p.h
- qquickfusiondial.cpp qquickfusiondial_p.h
- qquickfusionknob.cpp qquickfusionknob_p.h
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::Gui
- Qt::QmlPrivate
- Qt::QuickControls2ImplPrivate
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
diff --git a/src/quickcontrols2/fusion/impl/CheckIndicator.qml b/src/quickcontrols2/fusion/impl/CheckIndicator.qml
deleted file mode 100644
index 3a083653..00000000
--- a/src/quickcontrols2/fusion/impl/CheckIndicator.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-Rectangle {
- id: indicator
-
- property Item control
- readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85)
- readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2)
-
- implicitWidth: 14
- implicitHeight: 14
-
- color: control.down ? indicator.pressedColor : control.palette.base
- border.color: control.visualFocus ? Fusion.highlightedOutline(control.palette)
- : Qt.lighter(Fusion.outline(control.palette), 1.1)
-
- Rectangle {
- x: 1; y: 1
- width: parent.width - 2
- height: 1
- color: Fusion.topShadow
- visible: indicator.control.enabled && !indicator.control.down
- }
-
- ColorImage {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- color: Color.transparent(indicator.checkMarkColor, 210 / 255)
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Fusion/images/checkmark.png"
- visible: indicator.control.checkState === Qt.Checked || (indicator.control.checked && indicator.control.checkState === undefined)
- }
-
- Rectangle {
- x: 3; y: 3
- width: parent.width - 6
- height: parent.width - 6
-
- visible: indicator.control.checkState === Qt.PartiallyChecked
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: Color.transparent(indicator.checkMarkColor, 80 / 255)
- }
- GradientStop {
- position: 1
- color: Color.transparent(indicator.checkMarkColor, 140 / 255)
- }
- }
- border.color: Color.transparent(indicator.checkMarkColor, 180 / 255)
- }
-}
diff --git a/src/quickcontrols2/fusion/impl/RadioIndicator.qml b/src/quickcontrols2/fusion/impl/RadioIndicator.qml
deleted file mode 100644
index d459a2e8..00000000
--- a/src/quickcontrols2/fusion/impl/RadioIndicator.qml
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-Rectangle {
- id: indicator
-
- property Item control
- readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85)
- readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2)
-
- implicitWidth: 14
- implicitHeight: 14
-
- radius: width / 2
- color: control.down ? indicator.pressedColor : control.palette.base
- border.color: control.visualFocus ? Fusion.highlightedOutline(control.palette)
- : Qt.darker(control.palette.window, 1.5)
-
- Rectangle {
- y: 1
- width: parent.width
- height: parent.height - 1
- radius: width / 2
- color: "transparent"
- border.color: Fusion.topShadow
- visible: indicator.control.enabled && !indicator.control.down
- }
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: parent.width / 2.32
- height: parent.height / 2.32
- radius: width / 2
- color: Color.transparent(indicator.checkMarkColor, 180 / 255)
- border.color: Color.transparent(indicator.checkMarkColor, 200 / 255)
- visible: indicator.control.checked
- }
-}
diff --git a/src/quickcontrols2/fusion/impl/SliderGroove.qml b/src/quickcontrols2/fusion/impl/SliderGroove.qml
deleted file mode 100644
index 76b7156a..00000000
--- a/src/quickcontrols2/fusion/impl/SliderGroove.qml
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-Rectangle {
- id: groove
-
- property Item control
- property real offset
- property real progress
- property real visualProgress
-
- x: control.horizontal ? 0 : (control.availableWidth - width) / 2
- y: control.horizontal ? (control.availableHeight - height) / 2 : 0
-
- implicitWidth: control.horizontal ? 160 : 5
- implicitHeight: control.horizontal ? 5 : 160
- width: control.horizontal ? control.availableWidth : implicitWidth
- height: control.horizontal ? implicitHeight : control.availableHeight
-
- radius: 2
- border.color: Fusion.outline(control.palette)
- scale: control.horizontal && control.mirrored ? -1 : 1
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: Qt.darker(Fusion.grooveColor(groove.control.palette), 1.1)
- }
- GradientStop {
- position: 1
- color: Qt.lighter(Fusion.grooveColor(groove.control.palette), 1.1)
- }
- }
-
- Rectangle {
- x: groove.control.horizontal ? groove.offset * parent.width : 0
- y: groove.control.horizontal ? 0 : groove.visualProgress * parent.height
- width: groove.control.horizontal ? groove.progress * parent.width - groove.offset * parent.width : 5
- height: groove.control.horizontal ? 5 : groove.progress * parent.height - groove.offset * parent.height
-
- radius: 2
- border.color: Qt.darker(Fusion.highlightedOutline(groove.control.palette), 1.1)
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: Fusion.highlight(groove.control.palette)
- }
- GradientStop {
- position: 1
- color: Qt.lighter(Fusion.highlight(groove.control.palette), 1.2)
- }
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/impl/SliderHandle.qml b/src/quickcontrols2/fusion/impl/SliderHandle.qml
deleted file mode 100644
index 00a955b9..00000000
--- a/src/quickcontrols2/fusion/impl/SliderHandle.qml
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-Rectangle {
- id: handle
-
- property var palette
- property bool pressed
- property bool hovered
- property bool vertical
- property bool visualFocus
-
- implicitWidth: 13
- implicitHeight: 13
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: Fusion.gradientStart(Fusion.buttonColor(handle.palette, handle.visualFocus, handle.pressed, handle.hovered))
- }
- GradientStop {
- position: 1
- color: Fusion.gradientStop(Fusion.buttonColor(handle.palette, handle.visualFocus, handle.pressed, handle.hovered))
- }
- }
- rotation: handle.vertical ? -90 : 0
- border.width: 1
- border.color: "transparent"
- radius: 2
-
- Rectangle {
- width: parent.width
- height: parent.height
- border.color: handle.visualFocus ? Fusion.highlightedOutline(handle.palette) : Fusion.outline(handle.palette)
- color: "transparent"
- radius: 2
-
- Rectangle {
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
- border.color: Fusion.innerContrastLine
- color: "transparent"
- radius: 2
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/impl/SwitchIndicator.qml b/src/quickcontrols2/fusion/impl/SwitchIndicator.qml
deleted file mode 100644
index 5a561913..00000000
--- a/src/quickcontrols2/fusion/impl/SwitchIndicator.qml
+++ /dev/null
@@ -1,136 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-
-Rectangle {
- id: indicator
-
- property Item control
- readonly property color pressedColor: Fusion.mergedColors(control.palette.base, control.palette.windowText, 85)
- readonly property color checkMarkColor: Qt.darker(control.palette.text, 1.2)
-
- implicitWidth: 40
- implicitHeight: 16
-
- radius: 2
- border.color: Fusion.outline(control.palette)
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: Qt.darker(Fusion.grooveColor(indicator.control.palette), 1.1)
- }
- GradientStop {
- position: 1
- color: Qt.lighter(Fusion.grooveColor(indicator.control.palette), 1.1)
- }
- }
-
- Rectangle {
- x: indicator.control.mirrored ? handle.x : 0
- width: indicator.control.mirrored ? parent.width - handle.x : handle.x + handle.width
- height: parent.height
-
- opacity: indicator.control.checked ? 1 : 0
- Behavior on opacity {
- enabled: !indicator.control.down
- NumberAnimation { duration: 80 }
- }
-
- radius: 2
- border.color: Qt.darker(Fusion.highlightedOutline(indicator.control.palette), 1.1)
- border.width: indicator.control.enabled ? 1 : 0
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: Fusion.highlight(indicator.control.palette)
- }
- GradientStop {
- position: 1
- color: Qt.lighter(Fusion.highlight(indicator.control.palette), 1.2)
- }
- }
- }
-
- Rectangle {
- id: handle
- x: Math.max(0, Math.min(parent.width - width, indicator.control.visualPosition * parent.width - (width / 2)))
- y: (parent.height - height) / 2
- width: 20
- height: 16
- radius: 2
-
- gradient: Gradient {
- GradientStop {
- position: 0
- color: Fusion.gradientStart(Fusion.buttonColor(indicator.control.palette, indicator.control.visualFocus, indicator.control.pressed, indicator.control.hovered))
- }
- GradientStop {
- position: 1
- color: Fusion.gradientStop(Fusion.buttonColor(indicator.control.palette, indicator.control.visualFocus, indicator.control.pressed, indicator.control.hovered))
- }
- }
- border.width: 1
- border.color: "transparent"
-
- Rectangle {
- width: parent.width
- height: parent.height
- border.color: indicator.control.visualFocus ? Fusion.highlightedOutline(indicator.control.palette) : Fusion.outline(indicator.control.palette)
- color: "transparent"
- radius: 2
-
- Rectangle {
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
- border.color: Fusion.innerContrastLine
- color: "transparent"
- radius: 2
- }
- }
-
- Behavior on x {
- enabled: !indicator.control.down
- SmoothedAnimation { velocity: 200 }
- }
- }
-}
diff --git a/src/quickcontrols2/fusion/impl/qquickfusionbusyindicator.cpp b/src/quickcontrols2/fusion/impl/qquickfusionbusyindicator.cpp
deleted file mode 100644
index a9b75d27..00000000
--- a/src/quickcontrols2/fusion/impl/qquickfusionbusyindicator.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfusionbusyindicator_p.h"
-
-#include <QtGui/qpainter.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickFusionBusyIndicator::QQuickFusionBusyIndicator(QQuickItem *parent)
- : QQuickPaintedItem(parent)
-{
-}
-
-QColor QQuickFusionBusyIndicator::color() const
-{
- return m_color;
-}
-
-void QQuickFusionBusyIndicator::setColor(const QColor &color)
-{
- if (color == m_color)
- return;
-
- m_color = color;
- update();
-}
-
-bool QQuickFusionBusyIndicator::isRunning() const
-{
- return isVisible();
-}
-
-void QQuickFusionBusyIndicator::setRunning(bool running)
-{
- if (running) {
- setVisible(true);
- update();
- }
-}
-
-void QQuickFusionBusyIndicator::paint(QPainter *painter)
-{
- const qreal w = width();
- const qreal h = height();
- if (w <= 0 || h <= 0 || !isRunning())
- return;
-
- const qreal sz = qMin(w, h);
- const qreal dx = (w - sz) / 2;
- const qreal dy = (h - sz) / 2;
- const int hpw = qRound(qMax(qreal(1), sz / 14)) & -1;
- const int pw = 2 * hpw;
- const QRectF bounds(dx + hpw, dy + hpw, sz - pw - 1, sz - pw - 1);
-
- QConicalGradient gradient;
- gradient.setCenter(QPointF(dx + sz / 2, dy + sz / 2));
- gradient.setColorAt(0, m_color);
- gradient.setColorAt(0.1, m_color);
- gradient.setColorAt(1, Qt::transparent);
-
- painter->translate(0.5, 0.5);
- painter->setRenderHint(QPainter::Antialiasing, true);
- painter->setPen(QPen(gradient, pw, Qt::SolidLine));
- painter->drawArc(bounds, 0, 360 * 16);
- painter->setPen(QPen(m_color, pw, Qt::SolidLine, Qt::RoundCap));
- painter->drawArc(bounds, 0, 20 * 16);
-}
-
-void QQuickFusionBusyIndicator::itemChange(ItemChange change, const ItemChangeData &data)
-{
- QQuickPaintedItem::itemChange(change, data);
-
- if (change == ItemOpacityHasChanged && qFuzzyIsNull(data.realValue))
- setVisible(false);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/fusion/impl/qquickfusionbusyindicator_p.h b/src/quickcontrols2/fusion/impl/qquickfusionbusyindicator_p.h
deleted file mode 100644
index 5aeea6c4..00000000
--- a/src/quickcontrols2/fusion/impl/qquickfusionbusyindicator_p.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFUSIONBUSYINDICATOR_P_H
-#define QQUICKFUSIONBUSYINDICATOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qcolor.h>
-#include <QtQuick/qquickpainteditem.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFusionBusyIndicator : public QQuickPaintedItem
-{
- Q_OBJECT
- Q_PROPERTY(QColor color READ color WRITE setColor FINAL)
- Q_PROPERTY(bool running READ isRunning WRITE setRunning)
- QML_NAMED_ELEMENT(BusyIndicatorImpl)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickFusionBusyIndicator(QQuickItem *parent = nullptr);
-
- QColor color() const;
- void setColor(const QColor &color);
-
- bool isRunning() const;
- void setRunning(bool running);
-
- void paint(QPainter *painter) override;
-
-protected:
- void itemChange(ItemChange change, const ItemChangeData &data) override;
-
-private:
- QColor m_color;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKFUSIONBUSYINDICATOR_P_H
diff --git a/src/quickcontrols2/fusion/impl/qquickfusiondial.cpp b/src/quickcontrols2/fusion/impl/qquickfusiondial.cpp
deleted file mode 100644
index eb6f21ad..00000000
--- a/src/quickcontrols2/fusion/impl/qquickfusiondial.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfusiondial_p.h"
-
-#include <QtGui/qpainter.h>
-#include <QtGui/private/qmath_p.h>
-#include <QtQuick/private/qquickpalette_p.h>
-#include <QtQuick/private/qquickitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickFusionDial::QQuickFusionDial(QQuickItem *parent)
- : QQuickPaintedItem(parent)
-{
-}
-
-bool QQuickFusionDial::highlight() const
-{
- return m_highlight;
-}
-
-void QQuickFusionDial::setHighlight(bool highlight)
-{
- if (m_highlight == highlight)
- return;
-
- m_highlight = highlight;
- update();
-}
-
-// based on QStyleHelper::drawDial()
-void QQuickFusionDial::paint(QPainter *painter)
-{
- const int width = QQuickItem::width();
- const int height = QQuickItem::height();
- if (width <= 0 || height <= 0 || !isVisible())
- return;
-
- QColor buttonColor = QQuickItemPrivate::get(this)->palette()->button();
- const bool enabled = isEnabled();
- qreal r = qMin(width, height) / 2.0;
- r -= r/50;
- const qreal penSize = r/20.0;
-
- painter->setRenderHint(QPainter::Antialiasing);
-
- const qreal d_ = r / 6;
- const qreal dx = d_ + (width - 2 * r) / 2 + 1;
- const qreal dy = d_ + (height - 2 * r) / 2 + 1;
-
- QRectF br = QRectF(dx + 0.5, dy + 0.5,
- int(r * 2 - 2 * d_ - 2),
- int(r * 2 - 2 * d_ - 2));
- buttonColor.setHsv(buttonColor .hue(),
- qMin(140, buttonColor .saturation()),
- qMax(180, buttonColor.value()));
-
- if (enabled) {
- // Drop shadow
- qreal shadowSize = qMax(1.0, penSize/2.0);
- QRectF shadowRect= br.adjusted(-2*shadowSize, -2*shadowSize,
- 2*shadowSize, 2*shadowSize);
- QRadialGradient shadowGradient(shadowRect.center().x(),
- shadowRect.center().y(), shadowRect.width()/2.0,
- shadowRect.center().x(), shadowRect.center().y());
- shadowGradient.setColorAt(qreal(0.91), QColor(0, 0, 0, 40));
- shadowGradient.setColorAt(qreal(1.0), Qt::transparent);
- painter->setBrush(shadowGradient);
- painter->setPen(Qt::NoPen);
- painter->translate(shadowSize, shadowSize);
- painter->drawEllipse(shadowRect);
- painter->translate(-shadowSize, -shadowSize);
-
- // Main gradient
- QRadialGradient gradient(br.center().x() - br.width()/3, dy,
- br.width()*1.3, br.center().x(),
- br.center().y() - br.height()/2);
- gradient.setColorAt(0, buttonColor.lighter(110));
- gradient.setColorAt(qreal(0.5), buttonColor);
- gradient.setColorAt(qreal(0.501), buttonColor.darker(102));
- gradient.setColorAt(1, buttonColor.darker(115));
- painter->setBrush(gradient);
- } else {
- painter->setBrush(Qt::NoBrush);
- }
-
- painter->setPen(QPen(buttonColor.darker(280)));
- painter->drawEllipse(br);
- painter->setBrush(Qt::NoBrush);
- painter->setPen(buttonColor.lighter(110));
- painter->drawEllipse(br.adjusted(1, 1, -1, -1));
-
- if (m_highlight) {
- QColor highlight = QQuickItemPrivate::get(this)->palette()->highlight();
- highlight.setHsv(highlight.hue(),
- qMin(160, highlight.saturation()),
- qMax(230, highlight.value()));
- highlight.setAlpha(127);
- painter->setPen(QPen(highlight, 2.0));
- painter->setBrush(Qt::NoBrush);
- painter->drawEllipse(br.adjusted(-1, -1, 1, 1));
- }
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/fusion/impl/qquickfusiondial_p.h b/src/quickcontrols2/fusion/impl/qquickfusiondial_p.h
deleted file mode 100644
index c320527a..00000000
--- a/src/quickcontrols2/fusion/impl/qquickfusiondial_p.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFUSIONDIAL_P_H
-#define QQUICKFUSIONDIAL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/qquickpainteditem.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFusionDial : public QQuickPaintedItem
-{
- Q_OBJECT
- Q_PROPERTY(bool highlight READ highlight WRITE setHighlight FINAL)
- QML_NAMED_ELEMENT(DialImpl)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickFusionDial(QQuickItem *parent = nullptr);
-
- bool highlight() const;
- void setHighlight(bool highlight);
-
- void paint(QPainter *painter) override;
-
-private:
- bool m_highlight = false;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKFUSIONDIAL_P_H
diff --git a/src/quickcontrols2/fusion/impl/qquickfusionknob.cpp b/src/quickcontrols2/fusion/impl/qquickfusionknob.cpp
deleted file mode 100644
index 27ac54d3..00000000
--- a/src/quickcontrols2/fusion/impl/qquickfusionknob.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfusionknob_p.h"
-
-#include <QtCore/qmath.h>
-#include <QtGui/qpainter.h>
-#include <QtQuick/private/qquickpalette_p.h>
-#include <QtQuick/private/qquickitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickFusionKnob::QQuickFusionKnob(QQuickItem *parent)
- : QQuickPaintedItem(parent)
-{
- connect(this, &QQuickItem::paletteChanged, this, [this](){ update(); });
-}
-
-// extracted from QStyleHelper::drawDial()
-void QQuickFusionKnob::paint(QPainter *painter)
-{
- const qreal w = width();
- const qreal h = height();
- if (w <= 0 || h <= 0)
- return;
-
- QColor color = QQuickItemPrivate::get(this)->palette()->button();
- color.setHsv(color.hue(),
- qMin(140, color .saturation()),
- qMax(180, color.value()));
- color = color.lighter(104);
- color.setAlphaF(0.8f);
-
- const qreal sz = qMin(w, h);
- QRectF rect(0, 0, sz, sz);
- rect.moveCenter(QPointF(w / 2.0, h / 2.0));
- const QPointF center = rect.center();
-
- QRadialGradient gradient(center.x() + rect.width() / 2,
- center.y() + rect.width(),
- rect.width() * 2,
- center.x(), center.y());
- gradient.setColorAt(1, color.darker(140));
- gradient.setColorAt(qreal(0.4), color.darker(120));
- gradient.setColorAt(0, color.darker(110));
-
- painter->setRenderHint(QPainter::Antialiasing);
- painter->setBrush(gradient);
- painter->setPen(QColor(255, 255, 255, 150));
- painter->drawEllipse(rect);
- painter->setPen(QColor(0, 0, 0, 80));
- painter->drawEllipse(rect.adjusted(1, 1, -1, -1));
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/fusion/impl/qquickfusionknob_p.h b/src/quickcontrols2/fusion/impl/qquickfusionknob_p.h
deleted file mode 100644
index b9b9c377..00000000
--- a/src/quickcontrols2/fusion/impl/qquickfusionknob_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFUSIONKNOB_P_H
-#define QQUICKFUSIONKNOB_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/qquickpainteditem.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFusionKnob : public QQuickPaintedItem
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(KnobImpl)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickFusionKnob(QQuickItem *parent = nullptr);
-
- void paint(QPainter *painter) override;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKFUSIONKNOB_P_H
diff --git a/src/quickcontrols2/fusion/qquickfusionstyle.cpp b/src/quickcontrols2/fusion/qquickfusionstyle.cpp
deleted file mode 100644
index f2e8f823..00000000
--- a/src/quickcontrols2/fusion/qquickfusionstyle.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfusionstyle_p.h"
-
-#include <QtGui/qcolor.h>
-#include <QtGui/qpalette.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtGui/private/qguiapplication_p.h>
-
-#include <QtQuick/private/qquickpalette_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickFusionStyle::QQuickFusionStyle(QObject *parent)
- : QObject(parent)
-{
-}
-
-QColor QQuickFusionStyle::lightShade()
-{
- return QColor(255, 255, 255, 90);
-}
-
-QColor QQuickFusionStyle::darkShade()
-{
- return QColor(0, 0, 0, 60);
-}
-
-QColor QQuickFusionStyle::topShadow()
-{
- return QColor(0, 0, 0, 18);
-}
-
-QColor QQuickFusionStyle::innerContrastLine()
-{
- return QColor(255, 255, 255, 30);
-}
-
-QColor QQuickFusionStyle::highlight(QQuickPalette *palette)
-{
- return palette->highlight();
-}
-
-QColor QQuickFusionStyle::highlightedText(QQuickPalette *palette)
-{
- return palette->highlightedText();
-}
-
-QColor QQuickFusionStyle::outline(QQuickPalette *palette)
-{
- return palette->window().darker(140);
-}
-
-QColor QQuickFusionStyle::highlightedOutline(QQuickPalette *palette)
-{
- QColor highlightedOutline = highlight(palette).darker(125);
- if (highlightedOutline.value() > 160)
- highlightedOutline.setHsl(highlightedOutline.hue(), highlightedOutline.saturation(), 160);
- return highlightedOutline;
-}
-
-QColor QQuickFusionStyle::tabFrameColor(QQuickPalette *palette)
-{
- return buttonColor(palette).lighter(104);
-}
-
-QColor QQuickFusionStyle::buttonColor(QQuickPalette *palette, bool highlighted, bool down, bool hovered)
-{
- QColor buttonColor = palette->button();
- int val = qGray(buttonColor.rgb());
- buttonColor = buttonColor.lighter(100 + qMax(1, (180 - val)/6));
- buttonColor.setHsv(buttonColor.hue(), int(buttonColor.saturation() * 0.75), buttonColor.value());
- if (highlighted)
- buttonColor = mergedColors(buttonColor, highlightedOutline(palette).lighter(130), 90);
- if (!hovered)
- buttonColor = buttonColor.darker(104);
- if (down)
- buttonColor = buttonColor.darker(110);
- return buttonColor;
-}
-
-QColor QQuickFusionStyle::buttonOutline(QQuickPalette *palette, bool highlighted, bool enabled)
-{
- QColor darkOutline = enabled && highlighted ? highlightedOutline(palette) : outline(palette);
- return !enabled ? darkOutline.lighter(115) : darkOutline;
-}
-
-QColor QQuickFusionStyle::gradientStart(const QColor &baseColor)
-{
- return baseColor.lighter(124);
-}
-
-QColor QQuickFusionStyle::gradientStop(const QColor &baseColor)
-{
- return baseColor.lighter(102);
-}
-
-QColor QQuickFusionStyle::mergedColors(const QColor &colorA, const QColor &colorB, int factor)
-{
- const int maxFactor = 100;
- QColor tmp = colorA;
- tmp.setRed((tmp.red() * factor) / maxFactor + (colorB.red() * (maxFactor - factor)) / maxFactor);
- tmp.setGreen((tmp.green() * factor) / maxFactor + (colorB.green() * (maxFactor - factor)) / maxFactor);
- tmp.setBlue((tmp.blue() * factor) / maxFactor + (colorB.blue() * (maxFactor - factor)) / maxFactor);
- return tmp;
-}
-
-QColor QQuickFusionStyle::grooveColor(QQuickPalette *palette)
-{
- QColor color = buttonColor(palette);
- color.setHsv(color.hue(),
- qMin(255, color.saturation()),
- qMin<int>(255, color.value() * 0.9));
- return color;
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickfusionstyle_p.cpp"
diff --git a/src/quickcontrols2/fusion/qquickfusionstyle_p.h b/src/quickcontrols2/fusion/qquickfusionstyle_p.h
deleted file mode 100644
index c609e9c6..00000000
--- a/src/quickcontrols2/fusion/qquickfusionstyle_p.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFUSIONSTYLE_P_H
-#define QQUICKFUSIONSTYLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtGui/qcolor.h>
-#include <QtQml/qqml.h>
-#include <QtQuick/private/qquickpalette_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFusionStyle : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QColor lightShade READ lightShade CONSTANT)
- Q_PROPERTY(QColor darkShade READ darkShade CONSTANT)
- Q_PROPERTY(QColor topShadow READ topShadow CONSTANT)
- Q_PROPERTY(QColor innerContrastLine READ innerContrastLine CONSTANT)
- QML_NAMED_ELEMENT(Fusion)
- QML_SINGLETON
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickFusionStyle(QObject *parent = nullptr);
-
- static QColor lightShade();
- static QColor darkShade();
- static QColor topShadow();
- static QColor innerContrastLine();
-
- Q_INVOKABLE static QColor highlight(QQuickPalette *palette);
- Q_INVOKABLE static QColor highlightedText(QQuickPalette *palette);
- Q_INVOKABLE static QColor outline(QQuickPalette *palette);
- Q_INVOKABLE static QColor highlightedOutline(QQuickPalette *palette);
- Q_INVOKABLE static QColor tabFrameColor(QQuickPalette *palette);
- Q_INVOKABLE static QColor buttonColor(QQuickPalette *palette, bool highlighted = false, bool down = false, bool hovered = false);
- Q_INVOKABLE static QColor buttonOutline(QQuickPalette *palette, bool highlighted = false, bool enabled = true);
- Q_INVOKABLE static QColor gradientStart(const QColor &baseColor);
- Q_INVOKABLE static QColor gradientStop(const QColor &baseColor);
- Q_INVOKABLE static QColor mergedColors(const QColor &colorA, const QColor &colorB, int factor = 50);
- Q_INVOKABLE static QColor grooveColor(QQuickPalette *palette);
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKFUSIONSTYLE_P_H
diff --git a/src/quickcontrols2/fusion/qquickfusiontheme.cpp b/src/quickcontrols2/fusion/qquickfusiontheme.cpp
deleted file mode 100644
index 29d2ed1a..00000000
--- a/src/quickcontrols2/fusion/qquickfusiontheme.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfusiontheme_p.h"
-
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-#include <QtQuickControls2/private/qquickstyle_p.h>
-
-QT_BEGIN_NAMESPACE
-
-void QQuickFusionTheme::initialize(QQuickTheme *theme)
-{
- const bool isDarkSystemTheme = QQuickStylePrivate::isDarkSystemTheme();
- QPalette systemPalette;
- systemPalette.setColor(QPalette::Active, QPalette::ButtonText,
- isDarkSystemTheme ? QColor::fromRgb(0xe7e7e7) : QColor::fromRgb(0x252525));
- systemPalette.setColor(QPalette::Inactive, QPalette::ButtonText,
- isDarkSystemTheme ? QColor::fromRgb(0xe7e7e7) : QColor::fromRgb(0x252525));
- systemPalette.setColor(QPalette::Disabled, QPalette::ButtonText,
- isDarkSystemTheme ? QColor::fromRgb(0x777777) : QColor::fromRgb(0xb6b6b6));
- theme->setPalette(QQuickTheme::System, systemPalette);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/fusion/qquickfusiontheme_p.h b/src/quickcontrols2/fusion/qquickfusiontheme_p.h
deleted file mode 100644
index 814c1919..00000000
--- a/src/quickcontrols2/fusion/qquickfusiontheme_p.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFUSIONTHEME_P_H
-#define QQUICKFUSIONTHEME_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTheme;
-
-class QQuickFusionTheme
-{
-public:
- static void initialize(QQuickTheme *theme);
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKFUSIONTHEME_P_H
diff --git a/src/quickcontrols2/fusion/qtquickcontrols2fusionstyle.qrc b/src/quickcontrols2/fusion/qtquickcontrols2fusionstyle.qrc
deleted file mode 100644
index 0a9e195a..00000000
--- a/src/quickcontrols2/fusion/qtquickcontrols2fusionstyle.qrc
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource prefix="qt-project.org/imports/QtQuick/Controls/Fusion">
- <file>images/arrow.png</file>
- <file>images/arrow@2x.png</file>
- <file>images/arrow@3x.png</file>
- <file>images/arrow@4x.png</file>
- <file>images/checkmark.png</file>
- <file>images/checkmark@2x.png</file>
- <file>images/checkmark@3x.png</file>
- <file>images/checkmark@4x.png</file>
- <file>images/progressmask.png</file>
- <file>images/progressmask@2x.png</file>
- <file>images/progressmask@3x.png</file>
- <file>images/progressmask@4x.png</file>
-</qresource>
-</RCC>
diff --git a/src/quickcontrols2/fusion/qtquickcontrols2fusionstyleplugin.cpp b/src/quickcontrols2/fusion/qtquickcontrols2fusionstyleplugin.cpp
deleted file mode 100644
index f0d0e41a..00000000
--- a/src/quickcontrols2/fusion/qtquickcontrols2fusionstyleplugin.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfusionstyle_p.h"
-#include "qquickfusiontheme_p.h"
-
-#include <QtQml/qqml.h>
-#include <QtQuickControls2/private/qquickstyleplugin_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-extern void qml_register_types_QtQuick_Controls_Fusion();
-
-QT_BEGIN_NAMESPACE
-
-class QtQuickControls2FusionStylePlugin : public QQuickStylePlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
-
-public:
- QtQuickControls2FusionStylePlugin(QObject *parent = nullptr);
-
- QString name() const override;
- void initializeTheme(QQuickTheme *theme) override;
-
- QQuickFusionTheme theme;
-};
-
-QtQuickControls2FusionStylePlugin::QtQuickControls2FusionStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
-{
- volatile auto registration = &qml_register_types_QtQuick_Controls_Fusion;
- Q_UNUSED(registration);
-}
-
-QString QtQuickControls2FusionStylePlugin::name() const
-{
- return QStringLiteral("Fusion");
-}
-
-void QtQuickControls2FusionStylePlugin::initializeTheme(QQuickTheme *theme)
-{
- this->theme.initialize(theme);
-}
-
-QT_END_NAMESPACE
-
-#include "qtquickcontrols2fusionstyleplugin.moc"
diff --git a/src/quickcontrols2/imagine/ApplicationWindow.qml b/src/quickcontrols2/imagine/ApplicationWindow.qml
deleted file mode 100644
index b54527eb..00000000
--- a/src/quickcontrols2/imagine/ApplicationWindow.qml
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.ApplicationWindow {
- id: window
-
- background: NinePatchImage {
- width: window.width
- height: window.height
-
- source: Imagine.url + "applicationwindow-background"
- NinePatchImageSelector on source {
- states: [
- {"active": window.active}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/BusyIndicator.qml b/src/quickcontrols2/imagine/BusyIndicator.qml
deleted file mode 100644
index 163a64b4..00000000
--- a/src/quickcontrols2/imagine/BusyIndicator.qml
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.BusyIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- contentItem: AnimatedImage {
- opacity: control.running ? 1 : 0
- playing: control.running || opacity > 0
- visible: control.running || opacity > 0
- Behavior on opacity { OpacityAnimator { duration: 250 } }
-
- source: Imagine.url + "busyindicator-animation"
- AnimatedImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"running": control.running},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- background: NinePatchImage {
- source: Imagine.url + "busyindicator-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"running": control.running},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Button.qml b/src/quickcontrols2/imagine/Button.qml
deleted file mode 100644
index f2228ec7..00000000
--- a/src/quickcontrols2/imagine/Button.qml
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Button {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- spacing: 6 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- icon.width: 24
- icon.height: 24
- icon.color: control.enabled && control.flat && control.highlighted ? control.palette.highlight
- : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat
- ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.enabled && control.flat && control.highlighted ? control.palette.highlight
- : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat
- ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText
- }
-
- background: NinePatchImage {
- source: Imagine.url + "button-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"checkable": control.checkable},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"flat": control.flat},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/CMakeLists.txt b/src/quickcontrols2/imagine/CMakeLists.txt
deleted file mode 100644
index 088aeba6..00000000
--- a/src/quickcontrols2/imagine/CMakeLists.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-#####################################################################
-## qtquickcontrols2imaginestyleplugin Plugin:
-#####################################################################
-
-set(qml_files
- "ApplicationWindow.qml"
- "BusyIndicator.qml"
- "Button.qml"
- "CheckBox.qml"
- "CheckDelegate.qml"
- "ComboBox.qml"
- "DelayButton.qml"
- "Dial.qml"
- "Dialog.qml"
- "DialogButtonBox.qml"
- "Drawer.qml"
- "Frame.qml"
- "GroupBox.qml"
- "HorizontalHeaderView.qml"
- "ItemDelegate.qml"
- "Label.qml"
- "Menu.qml"
- "MenuItem.qml"
- "MenuSeparator.qml"
- "PageIndicator.qml"
- "Page.qml"
- "Pane.qml"
- "Popup.qml"
- "ProgressBar.qml"
- "RadioButton.qml"
- "RadioDelegate.qml"
- "RangeSlider.qml"
- "RoundButton.qml"
- "ScrollView.qml"
- "ScrollBar.qml"
- "ScrollIndicator.qml"
- "Slider.qml"
- "SpinBox.qml"
- "SplitView.qml"
- "StackView.qml"
- "SwipeDelegate.qml"
- "SwipeView.qml"
- "Switch.qml"
- "SwitchDelegate.qml"
- "TextField.qml"
- "TextArea.qml"
- "TabBar.qml"
- "TabButton.qml"
- "ToolBar.qml"
- "ToolButton.qml"
- "ToolSeparator.qml"
- "ToolTip.qml"
- "Tumbler.qml"
- "VerticalHeaderView.qml"
-)
-set_source_files_properties(ApplicationWindow.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(BusyIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Button.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(CheckBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(CheckDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ComboBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(DelayButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.2;6.0"
-)
-set_source_files_properties(Dial.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Dialog.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(DialogButtonBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(Drawer.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Frame.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(GroupBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(HorizontalHeaderView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.15;6.0"
-)
-set_source_files_properties(ItemDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Label.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Menu.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(MenuItem.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(MenuSeparator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(PageIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Page.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Pane.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Popup.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ProgressBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RadioButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RadioDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RangeSlider.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RoundButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(ScrollView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ScrollBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ScrollIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Slider.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SpinBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SplitView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.13;6.0"
-)
-set_source_files_properties(StackView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwipeDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwipeView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Switch.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwitchDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TextField.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TextArea.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TabBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TabButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolSeparator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(ToolTip.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Tumbler.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(VerticalHeaderView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.15;6.0"
-)
-
-qt_internal_add_qml_module(qtquickcontrols2imaginestyleplugin
- URI "QtQuick.Controls.Imagine"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2ImagineStylePlugin
- IMPORTS
- QtQuick.Controls.Basic/auto
- PLUGIN_TARGET qtquickcontrols2imaginestyleplugin
- NO_PLUGIN_OPTIONAL
- NO_GENERATE_PLUGIN_SOURCE
- SOURCES
- qquickimaginestyle.cpp qquickimaginestyle_p.h
- qquickimaginetheme.cpp qquickimaginetheme_p.h
- qtquickcontrols2imaginestyleplugin.cpp
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickControls2ImplPrivate
- Qt::QuickControls2Private
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
-
-file(GLOB resource_glob_0 RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "images/*.png")
-foreach(file IN LISTS resource_glob_0)
- set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/${file}" PROPERTIES QT_RESOURCE_ALIAS "${file}")
-endforeach()
-
-file(GLOB resource_glob_1 RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "images/*.webp")
-foreach(file IN LISTS resource_glob_1)
- set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/${file}" PROPERTIES QT_RESOURCE_ALIAS "${file}")
-endforeach()
-
-# Resources:
-set(qmake_qtquickcontrols2imaginestyleplugin_resource_files
- ${resource_glob_0}
- ${resource_glob_1}
-)
-
-qt_internal_add_resource(qtquickcontrols2imaginestyleplugin "qmake_qtquickcontrols2imaginestyleplugin"
- PREFIX
- "/qt-project.org/imports/QtQuick/Controls/Imagine"
- FILES
- ${qmake_qtquickcontrols2imaginestyleplugin_resource_files}
-)
-
-add_subdirectory(impl)
diff --git a/src/quickcontrols2/imagine/CheckBox.qml b/src/quickcontrols2/imagine/CheckBox.qml
deleted file mode 100644
index a92837b5..00000000
--- a/src/quickcontrols2/imagine/CheckBox.qml
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.CheckBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 6 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- indicator: Image {
- x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
-
- source: Imagine.url + "checkbox-indicator"
- ImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checkState === Qt.Checked},
- {"partially-checked": control.checkState === Qt.PartiallyChecked},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.palette.windowText
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-
- background: NinePatchImage {
- source: Imagine.url + "checkbox-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checkState === Qt.Checked},
- {"partially-checked": control.checkState === Qt.PartiallyChecked},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/CheckDelegate.qml b/src/quickcontrols2/imagine/CheckDelegate.qml
deleted file mode 100644
index 08be7085..00000000
--- a/src/quickcontrols2/imagine/CheckDelegate.qml
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.CheckDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.text
-
- indicator: Image {
- x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- source: Imagine.url + "checkdelegate-indicator"
- ImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checkState === Qt.Checked},
- {"partially-checked": control.checkState === Qt.PartiallyChecked},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- contentItem: IconLabel {
- leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.text
- }
-
- background: NinePatchImage {
- source: Imagine.url + "checkdelegate-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checkState === Qt.Checked},
- {"partially-checked": control.checkState === Qt.PartiallyChecked},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/ComboBox.qml b/src/quickcontrols2/imagine/ComboBox.qml
deleted file mode 100644
index 58683a84..00000000
--- a/src/quickcontrols2/imagine/ComboBox.qml
+++ /dev/null
@@ -1,173 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.ComboBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth + background ? (background.leftPadding + background.rightPadding) : 0)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- Math.max(implicitContentHeight,
- implicitIndicatorHeight) + background ? (background.topPadding + background.bottomPadding) : 0)
-
- leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
- rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- delegate: ItemDelegate {
- width: ListView.view.width
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
- font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
- highlighted: control.highlightedIndex === index
- hoverEnabled: control.hoverEnabled
- }
-
- indicator: Image {
- x: control.mirrored ? control.padding : control.width - width - control.padding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- source: Imagine.url + "combobox-indicator"
- ImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.pressed},
- {"editable": control.editable},
- {"open": control.down},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered},
- {"flat": control.flat}
- ]
- }
- }
-
- contentItem: T.TextField {
- topPadding: control.background ? control.background.topPadding : 0
- leftPadding: control.background ? control.background.leftPadding : 0
- rightPadding: control.background ? control.background.rightPadding : 0
- bottomPadding: control.background ? control.background.bottomPadding : 0
-
- text: control.editable ? control.editText : control.displayText
-
- enabled: control.editable
- autoScroll: control.editable
- readOnly: control.down
- inputMethodHints: control.inputMethodHints
- validator: control.validator
- selectByMouse: control.selectTextByMouse
-
- font: control.font
- color: control.flat ? control.palette.windowText : control.editable ? control.palette.text : control.palette.buttonText
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- verticalAlignment: Text.AlignVCenter
- }
-
- background: NinePatchImage {
- source: Imagine.url + "combobox-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.pressed},
- {"editable": control.editable},
- {"open": control.down},
- {"focused": control.visualFocus || (control.editable && control.activeFocus)},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered},
- {"flat": control.flat}
- ]
- }
- }
-
- popup: T.Popup {
- width: control.width
- height: Math.min(contentItem.implicitHeight + topPadding + bottomPadding, control.Window.height - topMargin - bottomMargin)
-
- topMargin: background.topInset
- bottomMargin: background.bottomInset
-
- topPadding: background.topPadding
- leftPadding: background.leftPadding
- rightPadding: background.rightPadding
- bottomPadding: background.bottomPadding
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- palette.text: control.palette.text
- palette.highlight: control.palette.highlight
- palette.highlightedText: control.palette.highlightedText
- palette.windowText: control.palette.windowText
- palette.buttonText: control.palette.buttonText
-
- contentItem: ListView {
- clip: true
- implicitHeight: contentHeight
- model: control.delegateModel
- currentIndex: control.highlightedIndex
- highlightMoveDuration: 0
-
- T.ScrollIndicator.vertical: ScrollIndicator { }
- }
-
- background: NinePatchImage {
- source: Imagine.url + "combobox-popup"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.pressed},
- {"editable": control.editable},
- {"focused": control.visualFocus || (control.editable && control.activeFocus)},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered},
- {"flat": control.flat}
- ]
- }
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/DelayButton.qml b/src/quickcontrols2/imagine/DelayButton.qml
deleted file mode 100644
index e542eb69..00000000
--- a/src/quickcontrols2/imagine/DelayButton.qml
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.DelayButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- transition: Transition {
- NumberAnimation {
- duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
- }
- }
-
- contentItem: Text {
- text: control.text
- font: control.font
- color: control.palette.buttonText
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
-
- background: NinePatchImage {
- source: Imagine.url + "delaybutton-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
-
- readonly property NinePatchImage progress: NinePatchImage {
- parent: control.background
- width: control.progress * parent.width
- height: parent.height
- visible: false
-
- source: Imagine.url + "delaybutton-progress"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- readonly property NinePatchImage mask: NinePatchImage {
- width: control.background.width
- height: control.background.height
- visible: false
-
- source: Imagine.url + "delaybutton-mask"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- readonly property OpacityMask effect: OpacityMask {
- parent: control.background
- width: source.width
- height: source.height
- source: control.background.progress
-
- maskSource: ShaderEffectSource {
- sourceItem: control.background.mask
- sourceRect: Qt.rect(0, 0, control.background.effect.width, control.background.effect.height)
- }
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Dial.qml b/src/quickcontrols2/imagine/Dial.qml
deleted file mode 100644
index 224bff56..00000000
--- a/src/quickcontrols2/imagine/Dial.qml
+++ /dev/null
@@ -1,105 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Dial {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- (handle ? handle.implicitWidth : 0) + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- (handle ? handle.implicitHeight : 0) + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- handle: Image {
- x: background.x + background.width / 2 - width / 2
- y: background.y + background.height / 2 - height / 2
-
- source: Imagine.url + "dial-handle"
- ImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.pressed},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
-
- transform: [
- Translate {
- y: -Math.min(control.background.width, control.background.height) * 0.4 + control.handle.height / 2
- },
- Rotation {
- angle: control.angle
- origin.x: handle.width / 2
- origin.y: handle.height / 2
- }
- ]
- }
-
- background: NinePatchImage {
- x: control.width / 2 - width / 2
- y: control.height / 2 - height / 2
- width: Math.max(64, Math.min(control.width, control.height))
- height: width
- fillMode: Image.PreserveAspectFit
-
- source: Imagine.url + "dial-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.pressed},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Dialog.qml b/src/quickcontrols2/imagine/Dialog.qml
deleted file mode 100644
index b788cc3c..00000000
--- a/src/quickcontrols2/imagine/Dialog.qml
+++ /dev/null
@@ -1,116 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Dialog {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- background: NinePatchImage {
- source: Imagine.url + "dialog-background"
- NinePatchImageSelector on source {
- states: [
- {"modal": control.modal},
- {"dim": control.dim}
- ]
- }
- }
-
- header: Label {
- text: control.title
- visible: control.title
- elide: Label.ElideRight
- font.bold: true
- padding: 12
-
- background: NinePatchImage {
- width: parent.width
- height: parent.height
-
- source: Imagine.url + "dialog-title"
- NinePatchImageSelector on source {
- states: [
- {"modal": control.modal},
- {"dim": control.dim}
- ]
- }
- }
- }
-
- footer: DialogButtonBox {
- visible: count > 0
- }
-
- T.Overlay.modal: NinePatchImage {
- source: Imagine.url + "dialog-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": true}
- ]
- }
- }
-
- T.Overlay.modeless: NinePatchImage {
- source: Imagine.url + "dialog-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": false}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/DialogButtonBox.qml b/src/quickcontrols2/imagine/DialogButtonBox.qml
deleted file mode 100644
index 1f3ccd0f..00000000
--- a/src/quickcontrols2/imagine/DialogButtonBox.qml
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.DialogButtonBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- (control.count === 1 ? contentWidth * 2 : contentWidth) + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- spacing: 6
-
- delegate: Button {
- width: control.count === 1 ? control.availableWidth / 2 : undefined
- flat: true
- }
-
- contentItem: ListView {
- model: control.contentModel
- spacing: control.spacing
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- snapMode: ListView.SnapToItem
- }
-
- background: NinePatchImage {
- source: Imagine.url + "dialogbuttonbox-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Drawer.qml b/src/quickcontrols2/imagine/Drawer.qml
deleted file mode 100644
index 414516d3..00000000
--- a/src/quickcontrols2/imagine/Drawer.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Drawer {
- id: control
-
- parent: T.Overlay.overlay
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- enter: Transition { SmoothedAnimation { velocity: 5 } }
- exit: Transition { SmoothedAnimation { velocity: 5 } }
-
- background: NinePatchImage {
- source: Imagine.url + "drawer-background"
- NinePatchImageSelector on source {
- states: [
- {"modal": control.modal},
- {"dim": control.dim},
- {"top": control.edge === Qt.TopEdge},
- {"left": control.edge === Qt.LeftEdge},
- {"right": control.edge === Qt.RightEdge},
- {"bottom": control.edge === Qt.BottomEdge}
- ]
- }
- }
-
- T.Overlay.modal: NinePatchImage {
- source: Imagine.url + "drawer-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": true}
- ]
- }
- }
-
- T.Overlay.modeless: NinePatchImage {
- source: Imagine.url + "drawer-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": false}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Frame.qml b/src/quickcontrols2/imagine/Frame.qml
deleted file mode 100644
index 7ba93dbc..00000000
--- a/src/quickcontrols2/imagine/Frame.qml
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Frame {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- background: NinePatchImage {
- source: Imagine.url + "frame-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/GroupBox.qml b/src/quickcontrols2/imagine/GroupBox.qml
deleted file mode 100644
index b0a8645f..00000000
--- a/src/quickcontrols2/imagine/GroupBox.qml
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.GroupBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitLabelWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: (background ? background.topPadding : 0) + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- label: Label {
- width: control.width
-
- topPadding: background.topPadding
- leftPadding: background.leftPadding
- rightPadding: background.rightPadding
- bottomPadding: background.bottomPadding
-
- text: control.title
- font: control.font
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
-
- color: control.palette.windowText
-
- background: NinePatchImage {
- width: parent.width
- height: parent.height
-
- source: Imagine.url + "groupbox-title"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
- }
-
- background: NinePatchImage {
- x: -leftInset
- y: control.topPadding - control.bottomPadding - topInset
- width: control.width + leftInset + rightInset
- height: control.height + topInset + bottomInset - control.topPadding + control.bottomPadding
-
- source: Imagine.url + "groupbox-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/HorizontalHeaderView.qml b/src/quickcontrols2/imagine/HorizontalHeaderView.qml
deleted file mode 100644
index e5214593..00000000
--- a/src/quickcontrols2/imagine/HorizontalHeaderView.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.HorizontalHeaderView {
- id: control
-
- implicitWidth: syncView ? syncView.width : 0
- implicitHeight: contentHeight
-
- delegate: Rectangle {
- // Qt6: add cellPadding (and font etc) as public API in headerview
- readonly property real cellPadding: 8
-
- implicitWidth: text.implicitWidth + (cellPadding * 2)
- implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2))
- color: "#f6f6f6"
- border.color: "#e4e4e4"
-
- Text {
- id: text
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
- : model[control.textRole])
- : modelData
- width: parent.width
- height: parent.height
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- color: "#ff26282a"
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/ItemDelegate.qml b/src/quickcontrols2/imagine/ItemDelegate.qml
deleted file mode 100644
index 25c9a223..00000000
--- a/src/quickcontrols2/imagine/ItemDelegate.qml
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.ItemDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.text
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.text
- }
-
- background: NinePatchImage {
- source: Imagine.url + "itemdelegate-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Label.qml b/src/quickcontrols2/imagine/Label.qml
deleted file mode 100644
index 3654cd7d..00000000
--- a/src/quickcontrols2/imagine/Label.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Label {
- id: control
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- color: control.palette.windowText
- linkColor: control.palette.link
-
- background: NinePatchImage {
- source: Imagine.url + "label-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Menu.qml b/src/quickcontrols2/imagine/Menu.qml
deleted file mode 100644
index 346c6490..00000000
--- a/src/quickcontrols2/imagine/Menu.qml
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-import QtQuick.Window
-
-T.Menu {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topMargin: background ? background.topInset : 0
- leftMargin: background ? background.leftInset : 0
- rightMargin: background ? background.rightInset : 0
- bottomMargin: background ? background.bottomInset : 0
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- delegate: MenuItem { }
-
- contentItem: ListView {
- implicitHeight: contentHeight
- model: control.contentModel
- interactive: Window.window
- ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height
- : false
- clip: true
- currentIndex: control.currentIndex
-
- T.ScrollIndicator.vertical: ScrollIndicator { }
- }
-
- background: NinePatchImage {
- source: Imagine.url + "menu-background"
- NinePatchImageSelector on source {
- states: [
- {"modal": control.modal},
- {"dim": control.dim}
- ]
- }
- }
-
- T.Overlay.modal: NinePatchImage {
- source: Imagine.url + "menu-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": true}
- ]
- }
- }
-
- T.Overlay.modeless: NinePatchImage {
- source: Imagine.url + "menu-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": false}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/MenuItem.qml b/src/quickcontrols2/imagine/MenuItem.qml
deleted file mode 100644
index 963b3bba..00000000
--- a/src/quickcontrols2/imagine/MenuItem.qml
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.MenuItem {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 6 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.windowText
-
- contentItem: IconLabel {
- readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0
- readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0
- leftPadding: !control.mirrored ? indicatorPadding : arrowPadding
- rightPadding: control.mirrored ? indicatorPadding : arrowPadding
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.windowText
- }
-
- arrow: Image {
- x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- visible: control.subMenu
- source: Imagine.url + "menuitem-arrow"
- ImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- indicator: Image {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
-
- visible: control.checkable
- source: Imagine.url + "menuitem-indicator"
- ImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- background: NinePatchImage {
- source: Imagine.url + "menuitem-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/MenuSeparator.qml b/src/quickcontrols2/imagine/MenuSeparator.qml
deleted file mode 100644
index 42d1812f..00000000
--- a/src/quickcontrols2/imagine/MenuSeparator.qml
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.MenuSeparator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- contentItem: NinePatchImage {
- source: Imagine.url + "menuseparator-separator"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
-
- background: NinePatchImage {
- source: Imagine.url + "menuseparator-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Page.qml b/src/quickcontrols2/imagine/Page.qml
deleted file mode 100644
index 1b77112f..00000000
--- a/src/quickcontrols2/imagine/Page.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Page {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- background: NinePatchImage {
- source: Imagine.url + "page-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/PageIndicator.qml b/src/quickcontrols2/imagine/PageIndicator.qml
deleted file mode 100644
index ba9bb85c..00000000
--- a/src/quickcontrols2/imagine/PageIndicator.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.PageIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- delegate: Image {
- source: Imagine.url + "pageindicator-delegate"
- ImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": pressed},
- {"current": index === control.currentIndex},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered} // ### TODO: context property
- ]
- }
- }
-
- contentItem: Row {
- spacing: control.spacing
-
- Repeater {
- model: control.count
- delegate: control.delegate
- }
- }
-
- background: NinePatchImage {
- source: Imagine.url + "pageindicator-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Pane.qml b/src/quickcontrols2/imagine/Pane.qml
deleted file mode 100644
index 4fdfaa18..00000000
--- a/src/quickcontrols2/imagine/Pane.qml
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Pane {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- background: NinePatchImage {
- source: Imagine.url + "pane-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Popup.qml b/src/quickcontrols2/imagine/Popup.qml
deleted file mode 100644
index bc7e544b..00000000
--- a/src/quickcontrols2/imagine/Popup.qml
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Popup {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : undefined
- leftPadding: background ? background.leftPadding : undefined
- rightPadding: background ? background.rightPadding : undefined
- bottomPadding: background ? background.bottomPadding : undefined
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- background: NinePatchImage {
- source: Imagine.url + "popup-background"
- NinePatchImageSelector on source {
- states: [
- {"modal": control.modal},
- {"dim": control.dim}
- ]
- }
- }
-
- T.Overlay.modal: NinePatchImage {
- source: Imagine.url + "popup-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": true}
- ]
- }
- }
-
- T.Overlay.modeless: NinePatchImage {
- source: Imagine.url + "popup-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": false}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/ProgressBar.qml b/src/quickcontrols2/imagine/ProgressBar.qml
deleted file mode 100644
index 0c2ed8d7..00000000
--- a/src/quickcontrols2/imagine/ProgressBar.qml
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.ProgressBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- contentItem: Item {
- implicitWidth: control.indeterminate ? animation.implicitWidth || progress.implicitWidth : progress.implicitWidth
- implicitHeight: control.indeterminate ? animation.implicitHeight || progress.implicitHeight : progress.implicitHeight
- scale: control.mirrored ? -1 : 1
-
- readonly property bool hasMask: mask.status !== Image.Null
-
- readonly property NinePatchImage progress: NinePatchImage {
- parent: control.contentItem
- width: control.position * parent.width
- height: parent.height
- visible: !control.indeterminate && !control.contentItem.hasMask
-
- source: Imagine.url + "progressbar-progress"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"indeterminate": control.indeterminate},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- readonly property AnimatedImage animation: AnimatedImage {
- parent: control.contentItem
- width: parent.width
- height: parent.height
- playing: control.indeterminate
- visible: control.indeterminate && !control.contentItem.hasMask
-
- source: Imagine.url + "progressbar-animation"
- AnimatedImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- readonly property NinePatchImage mask: NinePatchImage {
- width: control.availableWidth
- height: control.availableHeight
- visible: false
-
- source: Imagine.url + "progressbar-mask"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"indeterminate": control.indeterminate},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- readonly property OpacityMask effect: OpacityMask {
- parent: control.contentItem
- width: source.width
- height: source.height
- source: control.indeterminate ? control.contentItem.animation : control.contentItem.progress
-
- maskSource: ShaderEffectSource {
- sourceItem: control.contentItem.mask
- sourceRect: Qt.rect(0, 0, control.contentItem.effect.width, control.contentItem.effect.height)
- }
- }
- }
-
- background: NinePatchImage {
- source: Imagine.url + "progressbar-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"indeterminate": control.indeterminate},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/RadioButton.qml b/src/quickcontrols2/imagine/RadioButton.qml
deleted file mode 100644
index e1a81321..00000000
--- a/src/quickcontrols2/imagine/RadioButton.qml
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.RadioButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 6 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- indicator: Image {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
-
- source: Imagine.url + "radiobutton-indicator"
- ImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.palette.windowText
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-
- background: NinePatchImage {
- source: Imagine.url + "radiobutton-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/RadioDelegate.qml b/src/quickcontrols2/imagine/RadioDelegate.qml
deleted file mode 100644
index 0344160c..00000000
--- a/src/quickcontrols2/imagine/RadioDelegate.qml
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.RadioDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.text
-
- indicator: Image {
- x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- source: Imagine.url + "radiodelegate-indicator"
- ImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- contentItem: IconLabel {
- leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.text
- }
-
- background: NinePatchImage {
- source: Imagine.url + "radiodelegate-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/RangeSlider.qml b/src/quickcontrols2/imagine/RangeSlider.qml
deleted file mode 100644
index 37f59a3a..00000000
--- a/src/quickcontrols2/imagine/RangeSlider.qml
+++ /dev/null
@@ -1,134 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.RangeSlider {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- first.implicitHandleWidth + leftPadding + rightPadding,
- second.implicitHandleWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- first.implicitHandleHeight + topPadding + bottomPadding,
- second.implicitHandleHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- first.handle: Image {
- x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
-
- source: Imagine.url + "rangeslider-handle"
- ImageSelector on source {
- states: [
- {"first": true},
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"pressed": control.first.pressed},
- {"focused": control.first.handle.activeFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.first.hovered}
- ]
- }
- }
-
- second.handle: Image {
- x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
-
- source: Imagine.url + "rangeslider-handle"
- ImageSelector on source {
- states: [
- {"second": true},
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"pressed": control.second.pressed},
- {"focused": control.second.handle.activeFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.second.hovered}
- ]
- }
- }
-
- background: NinePatchImage {
- scale: control.horizontal && control.mirrored ? -1 : 1
-
- source: Imagine.url + "rangeslider-background"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
-
- NinePatchImage {
- x: control.horizontal ? control.first.handle.width / 2 + control.first.position * (parent.width - control.first.handle.width) : (parent.width - width) / 2
- y: control.horizontal ? (parent.height - height) / 2 : control.first.handle.height / 2 + control.second.visualPosition * (parent.height - control.first.handle.height)
- width: control.horizontal ? control.second.position * (parent.width - control.first.handle.width) - control.first.position * (parent.width - control.first.handle.width) : parent.width
- height: control.vertical ? control.second.position * (parent.height - control.first.handle.height) - control.first.position * (parent.height - control.first.handle.height): parent.height
-
- source: Imagine.url + "rangeslider-progress"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/RoundButton.qml b/src/quickcontrols2/imagine/RoundButton.qml
deleted file mode 100644
index 5c9580a3..00000000
--- a/src/quickcontrols2/imagine/RoundButton.qml
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.RoundButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- icon.width: 24
- icon.height: 24
- icon.color: control.enabled && control.flat && control.highlighted ? control.palette.highlight
- : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat
- ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.enabled && control.flat && control.highlighted ? control.palette.highlight
- : control.enabled && (control.down || control.checked || control.highlighted) && !control.flat
- ? control.palette.brightText : control.flat ? control.palette.windowText : control.palette.buttonText
- }
-
- background: NinePatchImage {
- // ### TODO: radius?
- source: Imagine.url + "roundbutton-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"checkable": control.checkable},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"flat": control.flat},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/ScrollBar.qml b/src/quickcontrols2/imagine/ScrollBar.qml
deleted file mode 100644
index f512a0b7..00000000
--- a/src/quickcontrols2/imagine/ScrollBar.qml
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.ScrollBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- visible: control.policy !== T.ScrollBar.AlwaysOff
- minimumSize: orientation == Qt.Horizontal ? height / width : width / height
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- contentItem: NinePatchImage {
- width: control.availableWidth
- height: control.availableHeight
-
- source: Imagine.url + "scrollbar-handle"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"interactive": control.interactive},
- {"pressed": control.pressed},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- opacity: 0.0
- }
-
- background: NinePatchImage {
- source: Imagine.url + "scrollbar-background"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"interactive": control.interactive},
- {"pressed": control.pressed},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- opacity: 0.0
- }
-
- states: [
- State {
- name: "active"
- when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
- }
- ]
-
- transitions: [
- Transition {
- to: "active"
- NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 1.0 }
- },
- Transition {
- from: "active"
- SequentialAnimation {
- PropertyAction{ targets: [control.contentItem, control.background]; property: "opacity"; value: 1.0 }
- PauseAnimation { duration: 3000 }
- NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 0.0 }
- }
- }
- ]
-}
diff --git a/src/quickcontrols2/imagine/ScrollIndicator.qml b/src/quickcontrols2/imagine/ScrollIndicator.qml
deleted file mode 100644
index 316b749c..00000000
--- a/src/quickcontrols2/imagine/ScrollIndicator.qml
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.ScrollIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- contentItem: NinePatchImage {
- width: control.availableWidth
- height: control.availableHeight
-
- source: Imagine.url + "scrollindicator-handle"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- opacity: 0.0
- }
-
- background: NinePatchImage {
- source: Imagine.url + "scrollindicator-background"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- opacity: 0.0
- }
-
- states: [
- State {
- name: "active"
- when: (control.active && control.size < 1.0)
- }
- ]
-
- transitions: [
- Transition {
- to: "active"
- NumberAnimation { targets: [contentItem, control.background]; property: "opacity"; to: 1.0 }
- },
- Transition {
- from: "active"
- SequentialAnimation {
- PauseAnimation { duration: 5000 }
- NumberAnimation { targets: [contentItem, control.background]; property: "opacity"; to: 0.0 }
- }
- }
- ]
-}
diff --git a/src/quickcontrols2/imagine/ScrollView.qml b/src/quickcontrols2/imagine/ScrollView.qml
deleted file mode 100644
index 80427e9d..00000000
--- a/src/quickcontrols2/imagine/ScrollView.qml
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.ScrollView {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- T.ScrollBar.vertical: ScrollBar {
- parent: control
- x: control.mirrored ? 0 : control.width - width
- y: control.topPadding
- height: control.availableHeight
- active: control.T.ScrollBar.horizontal.active
- }
-
- T.ScrollBar.horizontal: ScrollBar {
- parent: control
- x: control.leftPadding
- y: control.height - height
- width: control.availableWidth
- active: control.T.ScrollBar.vertical.active
- }
-
- background: NinePatchImage {
- source: Imagine.path + "scrollview-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Slider.qml b/src/quickcontrols2/imagine/Slider.qml
deleted file mode 100644
index 597e222a..00000000
--- a/src/quickcontrols2/imagine/Slider.qml
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Slider {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitHandleWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitHandleHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- handle: Image {
- x: Math.round(control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2))
- y: Math.round(control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height)))
-
- source: Imagine.url + "slider-handle"
- ImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"pressed": control.pressed},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-
- background: NinePatchImage {
- scale: control.horizontal && control.mirrored ? -1 : 1
-
- source: Imagine.url + "slider-background"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
-
- NinePatchImage {
- x: control.horizontal ? 0 : (parent.width - width) / 2
- y: control.horizontal
- ? (parent.height - height) / 2
- : control.handle.height / 2 + control.visualPosition * (parent.height - control.handle.height)
- width: control.horizontal
- ? control.handle.width / 2 + control.position * (parent.width - control.handle.width)
- : parent.width
- height: control.vertical
- ? control.handle.height / 2 + control.position * (parent.height - control.handle.height)
- : parent.height
-
- source: Imagine.url + "slider-progress"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/SpinBox.qml b/src/quickcontrols2/imagine/SpinBox.qml
deleted file mode 100644
index 6d1bdaba..00000000
--- a/src/quickcontrols2/imagine/SpinBox.qml
+++ /dev/null
@@ -1,152 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.SpinBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth + 2 * padding +
- up.implicitIndicatorWidth +
- down.implicitIndicatorWidth)
- implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight,
- up.implicitIndicatorHeight,
- down.implicitIndicatorHeight)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: (background ? background.leftPadding : 0) + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
- rightPadding: (background ? background.rightPadding : 0) + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- validator: IntValidator {
- locale: control.locale.name
- bottom: Math.min(control.from, control.to)
- top: Math.max(control.from, control.to)
- }
-
- contentItem: TextInput {
- z: 2
- text: control.displayText
- opacity: control.enabled ? 1 : 0.3
-
- font: control.font
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- horizontalAlignment: Qt.AlignHCenter
- verticalAlignment: Qt.AlignVCenter
-
- readOnly: !control.editable
- validator: control.validator
- inputMethodHints: control.inputMethodHints
-
- NinePatchImage {
- z: -1
- width: control.width
- height: control.height
- visible: control.editable
-
- source: Imagine.url + "spinbox-editor"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"focused": control.activeFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
- }
-
- up.indicator: NinePatchImage {
- x: control.mirrored ? 0 : parent.width - width
- height: parent.height
-
- source: Imagine.url + "spinbox-indicator"
- NinePatchImageSelector on source {
- states: [
- {"up": true},
- {"disabled": !control.up.indicator.enabled},
- {"editable": control.editable},
- {"pressed": control.up.pressed},
- {"focused": control.activeFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.up.hovered}
- ]
- }
- }
-
- down.indicator: NinePatchImage {
- x: control.mirrored ? parent.width - width : 0
- height: parent.height
-
- source: Imagine.url + "spinbox-indicator"
- NinePatchImageSelector on source {
- states: [
- {"down": true},
- {"disabled": !control.down.indicator.enabled},
- {"editable": control.editable},
- {"pressed": control.down.pressed},
- {"focused": control.activeFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.down.hovered}
- ]
- }
- }
-
- background: NinePatchImage {
- source: Imagine.url + "spinbox-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"editable": control.editable},
- {"focused": control.activeFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/SplitView.qml b/src/quickcontrols2/imagine/SplitView.qml
deleted file mode 100644
index 36e1b213..00000000
--- a/src/quickcontrols2/imagine/SplitView.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.SplitView {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- handle: NinePatchImage {
- source: Imagine.url + "splitview-handle"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.orientation === Qt.Vertical},
- {"horizontal":control.orientation === Qt.Horizontal},
- {"disabled": !control.enabled},
- {"pressed": T.SplitHandle.pressed},
- {"mirrored": control.mirrored},
- {"hovered": T.SplitHandle.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/StackView.qml b/src/quickcontrols2/imagine/StackView.qml
deleted file mode 100644
index a9ddac66..00000000
--- a/src/quickcontrols2/imagine/StackView.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.StackView {
- id: control
-
- implicitWidth: implicitBackgroundWidth
- implicitHeight: implicitBackgroundHeight
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- popEnter: Transition {
- XAnimator { from: (control.mirrored ? -1 : 1) * -control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
- }
-
- popExit: Transition {
- XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * control.width; duration: 400; easing.type: Easing.OutCubic }
- }
-
- pushEnter: Transition {
- XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
- }
-
- pushExit: Transition {
- XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic }
- }
-
- replaceEnter: Transition {
- XAnimator { from: (control.mirrored ? -1 : 1) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
- }
-
- replaceExit: Transition {
- XAnimator { from: 0; to: (control.mirrored ? -1 : 1) * -control.width; duration: 400; easing.type: Easing.OutCubic }
- }
-
- background: NinePatchImage {
- source: Imagine.url + "stackview-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/SwipeDelegate.qml b/src/quickcontrols2/imagine/SwipeDelegate.qml
deleted file mode 100644
index 5e13fc6b..00000000
--- a/src/quickcontrols2/imagine/SwipeDelegate.qml
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.SwipeDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.text
-
- swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } }
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.text
- }
-
- background: NinePatchImage {
- source: Imagine.url + "swipedelegate-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/SwipeView.qml b/src/quickcontrols2/imagine/SwipeView.qml
deleted file mode 100644
index 12cafbb8..00000000
--- a/src/quickcontrols2/imagine/SwipeView.qml
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.SwipeView {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- contentItem: ListView {
- model: control.contentModel
- interactive: control.interactive
- currentIndex: control.currentIndex
- focus: control.focus
-
- spacing: control.spacing
- orientation: control.orientation
- snapMode: ListView.SnapOneItem
- boundsBehavior: Flickable.StopAtBounds
-
- highlightRangeMode: ListView.StrictlyEnforceRange
- preferredHighlightBegin: 0
- preferredHighlightEnd: 0
- highlightMoveDuration: 250
- }
-
- background: NinePatchImage {
- source: Imagine.url + "swipeview-background"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"interactive": control.interactive},
- {"focused": control.contentItem.activeFocus},
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Switch.qml b/src/quickcontrols2/imagine/Switch.qml
deleted file mode 100644
index a2f7a9a7..00000000
--- a/src/quickcontrols2/imagine/Switch.qml
+++ /dev/null
@@ -1,134 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Switch {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 6 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- indicator: NinePatchImage {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- width: Math.max(implicitWidth, handle.leftPadding && handle.rightPadding ? handle.implicitWidth : 2 * handle.implicitWidth)
- height: Math.max(implicitHeight, handle.implicitHeight)
-
- source: Imagine.url + "switch-indicator"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
-
- property NinePatchImage handle: NinePatchImage {
- readonly property real minPos: parent.leftPadding - leftPadding
- readonly property real maxPos: parent.width - width + rightPadding - parent.rightPadding
- readonly property real dragPos: control.visualPosition * parent.width - (width / 2)
-
- parent: control.indicator
-
- x: Math.max(minPos, Math.min(maxPos, control.visualPosition * parent.width - (width / 2)))
- y: (parent.height - height) / 2
-
- source: Imagine.url + "switch-handle"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
-
- Behavior on x {
- enabled: !control.down
- SmoothedAnimation { velocity: 200 }
- }
- }
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.palette.windowText
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-
- background: NinePatchImage {
- source: Imagine.url + "switch-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/SwitchDelegate.qml b/src/quickcontrols2/imagine/SwitchDelegate.qml
deleted file mode 100644
index 6fde82c1..00000000
--- a/src/quickcontrols2/imagine/SwitchDelegate.qml
+++ /dev/null
@@ -1,146 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.SwitchDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.text
-
- indicator: NinePatchImage {
- x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- width: Math.max(implicitWidth, handle.leftPadding && handle.rightPadding ? handle.implicitWidth : 2 * handle.implicitWidth)
- height: Math.max(implicitHeight, handle.implicitHeight)
-
- source: Imagine.url + "switchdelegate-indicator"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
-
- property NinePatchImage handle: NinePatchImage {
- readonly property real minPos: parent.leftPadding - leftPadding
- readonly property real maxPos: parent.width - width + rightPadding - parent.rightPadding
- readonly property real dragPos: control.visualPosition * parent.width - (width / 2)
-
- parent: control.indicator
-
- x: Math.max(minPos, Math.min(maxPos, control.visualPosition * parent.width - (width / 2)))
- y: (parent.height - height) / 2
-
- source: Imagine.url + "switchdelegate-handle"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
-
- Behavior on x {
- enabled: !control.down
- SmoothedAnimation { velocity: 200 }
- }
- }
- }
-
- contentItem: IconLabel {
- leftPadding: control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: !control.mirrored ? control.indicator.width + control.spacing : 0
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.text
- }
-
- background: NinePatchImage {
- source: Imagine.url + "switchdelegate-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/TabBar.qml b/src/quickcontrols2/imagine/TabBar.qml
deleted file mode 100644
index 26c30e92..00000000
--- a/src/quickcontrols2/imagine/TabBar.qml
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.TabBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- contentItem: ListView {
- model: control.contentModel
- currentIndex: control.currentIndex
-
- spacing: control.spacing
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- flickableDirection: Flickable.AutoFlickIfNeeded
- snapMode: ListView.SnapToItem
-
- highlightMoveDuration: 0
- highlightRangeMode: ListView.ApplyRange
- preferredHighlightBegin: 48
- preferredHighlightEnd: width - 48
- }
-
- background: NinePatchImage {
- source: Imagine.url + "tabbar-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"header": control.position === T.TabBar.Header },
- {"footer": control.position === T.TabBar.Footer },
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/TabButton.qml b/src/quickcontrols2/imagine/TabButton.qml
deleted file mode 100644
index 023da2cb..00000000
--- a/src/quickcontrols2/imagine/TabButton.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.TabButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- spacing: 6 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.buttonText
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.buttonText
- }
-
- background: NinePatchImage {
- source: Imagine.url + "tabbutton-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/TextArea.qml b/src/quickcontrols2/imagine/TextArea.qml
deleted file mode 100644
index 556e746a..00000000
--- a/src/quickcontrols2/imagine/TextArea.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.TextArea {
- id: control
-
- implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
- implicitBackgroundWidth + leftInset + rightInset,
- placeholder.implicitWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight + topInset + bottomInset,
- placeholder.implicitHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- verticalAlignment: Qt.AlignVCenter
- placeholderTextColor: control.palette.placeholderText
-
- PlaceholderText {
- id: placeholder
- x: control.leftPadding
- y: control.topPadding
- width: control.width - (control.leftPadding + control.rightPadding)
- height: control.height - (control.topPadding + control.bottomPadding)
-
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- verticalAlignment: control.verticalAlignment
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- elide: Text.ElideRight
- renderType: control.renderType
- }
-
- background: NinePatchImage {
- source: Imagine.url + "textarea-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"focused": control.activeFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/TextField.qml b/src/quickcontrols2/imagine/TextField.qml
deleted file mode 100644
index e641a749..00000000
--- a/src/quickcontrols2/imagine/TextField.qml
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.TextField {
- id: control
-
- implicitWidth: implicitBackgroundWidth + leftInset + rightInset
- || Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding,
- placeholder.implicitHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- placeholderTextColor: control.palette.placeholderText
- verticalAlignment: Qt.AlignVCenter
-
- PlaceholderText {
- id: placeholder
- x: control.leftPadding
- y: control.topPadding
- width: control.width - (control.leftPadding + control.rightPadding)
- height: control.height - (control.topPadding + control.bottomPadding)
-
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- verticalAlignment: control.verticalAlignment
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- elide: Text.ElideRight
- renderType: control.renderType
- }
-
- background: NinePatchImage {
- source: Imagine.url + "textfield-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"focused": control.activeFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/ToolBar.qml b/src/quickcontrols2/imagine/ToolBar.qml
deleted file mode 100644
index 4a343e3c..00000000
--- a/src/quickcontrols2/imagine/ToolBar.qml
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.ToolBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- background: NinePatchImage {
- source: Imagine.url + "toolbar-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"header": control.position === T.ToolBar.Header },
- {"footer": control.position === T.ToolBar.Footer },
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/ToolButton.qml b/src/quickcontrols2/imagine/ToolButton.qml
deleted file mode 100644
index 1ef570e0..00000000
--- a/src/quickcontrols2/imagine/ToolButton.qml
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.ToolButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- spacing: 6 // ###
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- icon.width: 24
- icon.height: 24
- icon.color: control.palette.buttonText
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.palette.buttonText
- }
-
- background: NinePatchImage {
- source: Imagine.url + "toolbutton-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"pressed": control.down},
- {"checked": control.checked},
- {"checkable": control.checkable},
- {"focused": control.visualFocus},
- {"highlighted": control.highlighted},
- {"flat": control.flat},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/ToolSeparator.qml b/src/quickcontrols2/imagine/ToolSeparator.qml
deleted file mode 100644
index 962c14c7..00000000
--- a/src/quickcontrols2/imagine/ToolSeparator.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.ToolSeparator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- contentItem: NinePatchImage {
- source: Imagine.url + "toolseparator-separator"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
-
- background: NinePatchImage {
- source: Imagine.url + "toolseparator-background"
- NinePatchImageSelector on source {
- states: [
- {"vertical": control.vertical},
- {"horizontal": control.horizontal},
- {"disabled": !control.enabled},
- {"mirrored": control.mirrored}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/ToolTip.qml b/src/quickcontrols2/imagine/ToolTip.qml
deleted file mode 100644
index f5261400..00000000
--- a/src/quickcontrols2/imagine/ToolTip.qml
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.ToolTip {
- id: control
-
- x: parent ? (parent.width - implicitWidth) / 2 : 0 - (background ? background.leftInset : 0)
- y: -implicitHeight - (background ? background.topInset : 0)
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topMargin: background ? background.topInset : 0
- leftMargin: background ? background.leftInset : 0
- rightMargin: background ? background.rightInset : 0
- bottomMargin: background ? background.bottomInset : 0
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
-
- contentItem: Text {
- text: control.text
- font: control.font
- wrapMode: Text.Wrap
- color: control.palette.toolTipText
- }
-
- background: NinePatchImage {
- source: Imagine.url + "tooltip-background"
- NinePatchImageSelector on source {
- states: [
- // ###
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/Tumbler.qml b/src/quickcontrols2/imagine/Tumbler.qml
deleted file mode 100644
index f380a000..00000000
--- a/src/quickcontrols2/imagine/Tumbler.qml
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-
-T.Tumbler {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- delegate: Text {
- text: modelData
- font: control.font
- color: control.palette.text
- opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
-
- contentItem: TumblerView {
- implicitWidth: 60
- implicitHeight: 200
- model: control.model
- delegate: control.delegate
- path: Path {
- startX: control.contentItem.width / 2
- startY: -control.contentItem.delegateHeight / 2
- PathLine {
- x: control.contentItem.width / 2
- y: (control.visibleItemCount + 1) * control.contentItem.delegateHeight - control.contentItem.delegateHeight / 2
- }
- }
-
- property real delegateHeight: control.availableHeight / control.visibleItemCount
- }
-
- background: NinePatchImage {
- source: Imagine.url + "tumbler-background"
- NinePatchImageSelector on source {
- states: [
- {"disabled": !control.enabled},
- {"focused": control.visualFocus},
- {"mirrored": control.mirrored},
- {"hovered": control.hovered}
- ]
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/VerticalHeaderView.qml b/src/quickcontrols2/imagine/VerticalHeaderView.qml
deleted file mode 100644
index 7c057e01..00000000
--- a/src/quickcontrols2/imagine/VerticalHeaderView.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-
-T.VerticalHeaderView {
- id: control
-
- implicitWidth: contentWidth
- implicitHeight: syncView ? syncView.height : 0
-
- delegate: Rectangle {
- // Qt6: add cellPadding (and font etc) as public API in headerview
- readonly property real cellPadding: 8
-
- implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2))
- implicitHeight: text.implicitHeight + (cellPadding * 2)
- color: "#f6f6f6"
- border.color: "#e4e4e4"
-
- Text {
- id: text
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
- : model[control.textRole])
- : modelData
- width: parent.width
- height: parent.height
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- color: "#ff26282a"
- }
- }
-}
diff --git a/src/quickcontrols2/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/9-patch-export.js b/src/quickcontrols2/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/9-patch-export.js
deleted file mode 100644
index a7f9a459..00000000
--- a/src/quickcontrols2/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/9-patch-export.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// 9-patch export
-//
-// This plugin crops upscaled 9-patch PNG assets when exported from Sketch,
-// to ensure that 9-patch borders remain 1px wide when upscaled.
-//
-function onExportSlices(context) {
- var exports = context.actionContext.exports;
- for (var i = 0; i < exports.count(); ++i) {
- var name = exports[i].request.name();
- var scale = exports[i].request.scale();
- if (scale > 1 && name.endsWith(".9"))
- cropAsset(exports[i].path, scale - 1);
- }
-}
-
-function cropAsset(path, inset) {
- var url = NSURL.fileURLWithPath(path);
- var img = CIImage.imageWithContentsOfURL(url);
- var rect = NSInsetRect(img.extent(), inset, inset);
- var cropped = img.imageByCroppingToRect(rect);
- var rep = NSBitmapImageRep.alloc().initWithCIImage(cropped);
- var data = rep.PNGRepresentationWithInterlaced(false);
- data.writeToFile(path);
-}
diff --git a/src/quickcontrols2/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/manifest.json b/src/quickcontrols2/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/manifest.json
deleted file mode 100644
index 40807aa3..00000000
--- a/src/quickcontrols2/imagine/design/9-patch-export.sketchplugin/Contents/Sketch/manifest.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name" : "9-patch export",
- "description" : "Crops upscaled 9-patch PNG assets when exported from Sketch.",
- "version" : "0.1",
- "identifier" : "org.qt-project.sketch.9-patch-export",
- "author" : "The Qt Project",
- "commands" : [
- {
- "name" : "9-patch export",
- "identifier" : "9-patch-export",
- "script" : "9-patch-export.js",
- "handlers" : {
- "actions" : {
- "ExportSlices": "onExportSlices",
- },
- },
- },
- ],
-}
diff --git a/src/quickcontrols2/imagine/design/imagine.sketch b/src/quickcontrols2/imagine/design/imagine.sketch
deleted file mode 100644
index f3535b37..00000000
--- a/src/quickcontrols2/imagine/design/imagine.sketch
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-background.png b/src/quickcontrols2/imagine/images/applicationwindow-background.png
deleted file mode 100644
index 2d8d70f2..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-background.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-background@2x.png b/src/quickcontrols2/imagine/images/applicationwindow-background@2x.png
deleted file mode 100644
index 18fbaa4c..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-background@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-background@3x.png b/src/quickcontrols2/imagine/images/applicationwindow-background@3x.png
deleted file mode 100644
index 241232b1..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-background@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-background@4x.png b/src/quickcontrols2/imagine/images/applicationwindow-background@4x.png
deleted file mode 100644
index 8eb1b1ec..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-background@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal.png b/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal.png
deleted file mode 100644
index d4a43d1c..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@2x.png b/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@2x.png
deleted file mode 100644
index c9a8f412..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@3x.png b/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@3x.png
deleted file mode 100644
index 4a1084a9..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@4x.png b/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@4x.png
deleted file mode 100644
index b92e600d..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-overlay-modal@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-overlay.png b/src/quickcontrols2/imagine/images/applicationwindow-overlay.png
deleted file mode 100644
index b7da23c0..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-overlay.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-overlay@2x.png b/src/quickcontrols2/imagine/images/applicationwindow-overlay@2x.png
deleted file mode 100644
index 23828d5a..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-overlay@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-overlay@3x.png b/src/quickcontrols2/imagine/images/applicationwindow-overlay@3x.png
deleted file mode 100644
index d9d53828..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-overlay@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/applicationwindow-overlay@4x.png b/src/quickcontrols2/imagine/images/applicationwindow-overlay@4x.png
deleted file mode 100644
index a76c1a3a..00000000
--- a/src/quickcontrols2/imagine/images/applicationwindow-overlay@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/busyindicator-animation.webp b/src/quickcontrols2/imagine/images/busyindicator-animation.webp
deleted file mode 100644
index ebf04c4a..00000000
--- a/src/quickcontrols2/imagine/images/busyindicator-animation.webp
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/busyindicator-animation@2x.webp b/src/quickcontrols2/imagine/images/busyindicator-animation@2x.webp
deleted file mode 100644
index 43805a0b..00000000
--- a/src/quickcontrols2/imagine/images/busyindicator-animation@2x.webp
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/busyindicator-animation@3x.webp b/src/quickcontrols2/imagine/images/busyindicator-animation@3x.webp
deleted file mode 100644
index b700b81f..00000000
--- a/src/quickcontrols2/imagine/images/busyindicator-animation@3x.webp
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/busyindicator-animation@4x.webp b/src/quickcontrols2/imagine/images/busyindicator-animation@4x.webp
deleted file mode 100644
index bfaa8df9..00000000
--- a/src/quickcontrols2/imagine/images/busyindicator-animation@4x.webp
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-disabled.9.png b/src/quickcontrols2/imagine/images/button-background-checked-disabled.9.png
deleted file mode 100644
index 8196289c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-disabled@2x.9.png b/src/quickcontrols2/imagine/images/button-background-checked-disabled@2x.9.png
deleted file mode 100644
index 76cd4490..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-disabled@3x.9.png b/src/quickcontrols2/imagine/images/button-background-checked-disabled@3x.9.png
deleted file mode 100644
index 8bd6259a..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-disabled@4x.9.png b/src/quickcontrols2/imagine/images/button-background-checked-disabled@4x.9.png
deleted file mode 100644
index 3e081520..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-focused.9.png b/src/quickcontrols2/imagine/images/button-background-checked-focused.9.png
deleted file mode 100644
index e3d14e99..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-focused@2x.9.png b/src/quickcontrols2/imagine/images/button-background-checked-focused@2x.9.png
deleted file mode 100644
index ebc74b4a..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-focused@3x.9.png b/src/quickcontrols2/imagine/images/button-background-checked-focused@3x.9.png
deleted file mode 100644
index 75834723..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-focused@4x.9.png b/src/quickcontrols2/imagine/images/button-background-checked-focused@4x.9.png
deleted file mode 100644
index 9b570f4d..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-hovered.9.png b/src/quickcontrols2/imagine/images/button-background-checked-hovered.9.png
deleted file mode 100644
index e3d14e99..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-hovered@2x.9.png b/src/quickcontrols2/imagine/images/button-background-checked-hovered@2x.9.png
deleted file mode 100644
index ebc74b4a..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-hovered@3x.9.png b/src/quickcontrols2/imagine/images/button-background-checked-hovered@3x.9.png
deleted file mode 100644
index 75834723..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked-hovered@4x.9.png b/src/quickcontrols2/imagine/images/button-background-checked-hovered@4x.9.png
deleted file mode 100644
index 9b570f4d..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked.9.png b/src/quickcontrols2/imagine/images/button-background-checked.9.png
deleted file mode 100644
index d0942509..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked@2x.9.png b/src/quickcontrols2/imagine/images/button-background-checked@2x.9.png
deleted file mode 100644
index c38bcd02..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked@3x.9.png b/src/quickcontrols2/imagine/images/button-background-checked@3x.9.png
deleted file mode 100644
index 80889bf8..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-checked@4x.9.png b/src/quickcontrols2/imagine/images/button-background-checked@4x.9.png
deleted file mode 100644
index 05de8377..00000000
--- a/src/quickcontrols2/imagine/images/button-background-checked@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-disabled.9.png b/src/quickcontrols2/imagine/images/button-background-disabled.9.png
deleted file mode 100644
index 8196289c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/button-background-disabled@2x.9.png
deleted file mode 100644
index 76cd4490..00000000
--- a/src/quickcontrols2/imagine/images/button-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/button-background-disabled@3x.9.png
deleted file mode 100644
index 8bd6259a..00000000
--- a/src/quickcontrols2/imagine/images/button-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/button-background-disabled@4x.9.png
deleted file mode 100644
index 3e081520..00000000
--- a/src/quickcontrols2/imagine/images/button-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed.9.png b/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed.9.png
deleted file mode 100644
index 8196289c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@2x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@2x.9.png
deleted file mode 100644
index 76cd4490..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@3x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@3x.9.png
deleted file mode 100644
index 8bd6259a..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@4x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@4x.9.png
deleted file mode 100644
index 3e081520..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-checked-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-checked.9.png b/src/quickcontrols2/imagine/images/button-background-flat-checked.9.png
deleted file mode 100644
index 8196289c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-checked.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-checked@2x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-checked@2x.9.png
deleted file mode 100644
index 76cd4490..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-checked@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-checked@3x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-checked@3x.9.png
deleted file mode 100644
index 8bd6259a..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-checked@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-checked@4x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-checked@4x.9.png
deleted file mode 100644
index 3e081520..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-checked@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-disabled.9.png b/src/quickcontrols2/imagine/images/button-background-flat-disabled.9.png
deleted file mode 100644
index 59907409..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-disabled@2x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-disabled@2x.9.png
deleted file mode 100644
index d66acd9c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-disabled@3x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-disabled@3x.9.png
deleted file mode 100644
index 89b8c353..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-disabled@4x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-disabled@4x.9.png
deleted file mode 100644
index d3a675cf..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked.9.png
deleted file mode 100644
index 8196289c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@2x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@2x.9.png
deleted file mode 100644
index 76cd4490..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@3x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@3x.9.png
deleted file mode 100644
index 8bd6259a..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@4x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@4x.9.png
deleted file mode 100644
index 3e081520..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-checked@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed.9.png
deleted file mode 100644
index 8196289c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@2x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@2x.9.png
deleted file mode 100644
index 76cd4490..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@3x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@3x.9.png
deleted file mode 100644
index 8bd6259a..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@4x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@4x.9.png
deleted file mode 100644
index 3e081520..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted.9.png
deleted file mode 100644
index 59907409..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted@2x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted@2x.9.png
deleted file mode 100644
index d66acd9c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted@3x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted@3x.9.png
deleted file mode 100644
index 89b8c353..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-highlighted@4x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-highlighted@4x.9.png
deleted file mode 100644
index d3a675cf..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-highlighted@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-hovered.9.png b/src/quickcontrols2/imagine/images/button-background-flat-hovered.9.png
deleted file mode 100644
index 8196289c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-hovered@2x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-hovered@2x.9.png
deleted file mode 100644
index 76cd4490..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-hovered@3x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-hovered@3x.9.png
deleted file mode 100644
index 8bd6259a..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-hovered@4x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-hovered@4x.9.png
deleted file mode 100644
index 3e081520..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-pressed.9.png b/src/quickcontrols2/imagine/images/button-background-flat-pressed.9.png
deleted file mode 100644
index 8196289c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-pressed@2x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-pressed@2x.9.png
deleted file mode 100644
index 76cd4490..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-pressed@3x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-pressed@3x.9.png
deleted file mode 100644
index 8bd6259a..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat-pressed@4x.9.png b/src/quickcontrols2/imagine/images/button-background-flat-pressed@4x.9.png
deleted file mode 100644
index 3e081520..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat.9.png b/src/quickcontrols2/imagine/images/button-background-flat.9.png
deleted file mode 100644
index 59907409..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat@2x.9.png b/src/quickcontrols2/imagine/images/button-background-flat@2x.9.png
deleted file mode 100644
index d66acd9c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat@3x.9.png b/src/quickcontrols2/imagine/images/button-background-flat@3x.9.png
deleted file mode 100644
index 89b8c353..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-flat@4x.9.png b/src/quickcontrols2/imagine/images/button-background-flat@4x.9.png
deleted file mode 100644
index d3a675cf..00000000
--- a/src/quickcontrols2/imagine/images/button-background-flat@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-focused.9.png b/src/quickcontrols2/imagine/images/button-background-focused.9.png
deleted file mode 100644
index 42e40e60..00000000
--- a/src/quickcontrols2/imagine/images/button-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/button-background-focused@2x.9.png
deleted file mode 100644
index 90dc70bf..00000000
--- a/src/quickcontrols2/imagine/images/button-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/button-background-focused@3x.9.png
deleted file mode 100644
index 2ed2340c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/button-background-focused@4x.9.png
deleted file mode 100644
index e1428e37..00000000
--- a/src/quickcontrols2/imagine/images/button-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-checked.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-checked.9.png
deleted file mode 100644
index 7a2a4011..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-checked.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-checked@2x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-checked@2x.9.png
deleted file mode 100644
index 05b2f214..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-checked@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-checked@3x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-checked@3x.9.png
deleted file mode 100644
index 8c22e1f3..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-checked@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-checked@4x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-checked@4x.9.png
deleted file mode 100644
index c5617f0e..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-checked@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-disabled.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-disabled.9.png
deleted file mode 100644
index 8196289c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-disabled@2x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-disabled@2x.9.png
deleted file mode 100644
index 76cd4490..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-disabled@3x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-disabled@3x.9.png
deleted file mode 100644
index 8bd6259a..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-disabled@4x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-disabled@4x.9.png
deleted file mode 100644
index 3e081520..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-focused.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-focused.9.png
deleted file mode 100644
index 3ea580e0..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-focused@2x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-focused@2x.9.png
deleted file mode 100644
index effcce1f..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-focused@3x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-focused@3x.9.png
deleted file mode 100644
index 502ac689..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-focused@4x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-focused@4x.9.png
deleted file mode 100644
index 3243231e..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-hovered.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-hovered.9.png
deleted file mode 100644
index 3ea580e0..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-hovered@2x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-hovered@2x.9.png
deleted file mode 100644
index effcce1f..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-hovered@3x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-hovered@3x.9.png
deleted file mode 100644
index 502ac689..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-hovered@4x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-hovered@4x.9.png
deleted file mode 100644
index 3243231e..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-pressed.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-pressed.9.png
deleted file mode 100644
index 7a2a4011..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-pressed@2x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-pressed@2x.9.png
deleted file mode 100644
index 05b2f214..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-pressed@3x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-pressed@3x.9.png
deleted file mode 100644
index 8c22e1f3..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted-pressed@4x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted-pressed@4x.9.png
deleted file mode 100644
index c5617f0e..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted.9.png
deleted file mode 100644
index 7761595f..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted@2x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted@2x.9.png
deleted file mode 100644
index 8bb42c45..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted@3x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted@3x.9.png
deleted file mode 100644
index 8c23c021..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-highlighted@4x.9.png b/src/quickcontrols2/imagine/images/button-background-highlighted@4x.9.png
deleted file mode 100644
index 365cd048..00000000
--- a/src/quickcontrols2/imagine/images/button-background-highlighted@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-hovered.9.png b/src/quickcontrols2/imagine/images/button-background-hovered.9.png
deleted file mode 100644
index 42e40e60..00000000
--- a/src/quickcontrols2/imagine/images/button-background-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-hovered@2x.9.png b/src/quickcontrols2/imagine/images/button-background-hovered@2x.9.png
deleted file mode 100644
index 90dc70bf..00000000
--- a/src/quickcontrols2/imagine/images/button-background-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-hovered@3x.9.png b/src/quickcontrols2/imagine/images/button-background-hovered@3x.9.png
deleted file mode 100644
index 2ed2340c..00000000
--- a/src/quickcontrols2/imagine/images/button-background-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-hovered@4x.9.png b/src/quickcontrols2/imagine/images/button-background-hovered@4x.9.png
deleted file mode 100644
index e1428e37..00000000
--- a/src/quickcontrols2/imagine/images/button-background-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-pressed.9.png b/src/quickcontrols2/imagine/images/button-background-pressed.9.png
deleted file mode 100644
index d0942509..00000000
--- a/src/quickcontrols2/imagine/images/button-background-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-pressed@2x.9.png b/src/quickcontrols2/imagine/images/button-background-pressed@2x.9.png
deleted file mode 100644
index c38bcd02..00000000
--- a/src/quickcontrols2/imagine/images/button-background-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-pressed@3x.9.png b/src/quickcontrols2/imagine/images/button-background-pressed@3x.9.png
deleted file mode 100644
index 80889bf8..00000000
--- a/src/quickcontrols2/imagine/images/button-background-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background-pressed@4x.9.png b/src/quickcontrols2/imagine/images/button-background-pressed@4x.9.png
deleted file mode 100644
index 05de8377..00000000
--- a/src/quickcontrols2/imagine/images/button-background-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background.9.png b/src/quickcontrols2/imagine/images/button-background.9.png
deleted file mode 100644
index 6f1daed8..00000000
--- a/src/quickcontrols2/imagine/images/button-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background@2x.9.png b/src/quickcontrols2/imagine/images/button-background@2x.9.png
deleted file mode 100644
index 4a2507f5..00000000
--- a/src/quickcontrols2/imagine/images/button-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background@3x.9.png b/src/quickcontrols2/imagine/images/button-background@3x.9.png
deleted file mode 100644
index 4f13b4ef..00000000
--- a/src/quickcontrols2/imagine/images/button-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/button-background@4x.9.png b/src/quickcontrols2/imagine/images/button-background@4x.9.png
deleted file mode 100644
index 0e1ab452..00000000
--- a/src/quickcontrols2/imagine/images/button-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused.png
deleted file mode 100644
index d55a5204..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@2x.png
deleted file mode 100644
index 7289f639..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@3x.png
deleted file mode 100644
index 02d6cdf2..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@4x.png
deleted file mode 100644
index 3f074dbf..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered.png
deleted file mode 100644
index d55a5204..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@2x.png
deleted file mode 100644
index 7289f639..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@3x.png
deleted file mode 100644
index 02d6cdf2..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@4x.png
deleted file mode 100644
index 3f074dbf..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed.png
deleted file mode 100644
index 9c03d096..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@2x.png
deleted file mode 100644
index 680ba3ef..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@3x.png
deleted file mode 100644
index 974205de..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@4x.png
deleted file mode 100644
index 2c8b6aab..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked.png
deleted file mode 100644
index 598b163a..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked@2x.png
deleted file mode 100644
index 06382264..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked@3x.png
deleted file mode 100644
index 12a32dcd..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-checked@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-checked@4x.png
deleted file mode 100644
index 4bc6701d..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-checked@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-disabled.png b/src/quickcontrols2/imagine/images/checkbox-indicator-disabled.png
deleted file mode 100644
index 0a499f8f..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-disabled@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-disabled@2x.png
deleted file mode 100644
index db652c5a..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-disabled@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-disabled@3x.png
deleted file mode 100644
index 482f045d..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-disabled@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-disabled@4x.png
deleted file mode 100644
index a386e272..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-focused.png b/src/quickcontrols2/imagine/images/checkbox-indicator-focused.png
deleted file mode 100644
index c5eb8527..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-focused@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-focused@2x.png
deleted file mode 100644
index 8496fb1a..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-focused@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-focused@3x.png
deleted file mode 100644
index 30849fd0..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-focused@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-focused@4x.png
deleted file mode 100644
index 55ce7c0c..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-hovered.png b/src/quickcontrols2/imagine/images/checkbox-indicator-hovered.png
deleted file mode 100644
index c5eb8527..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-hovered@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-hovered@2x.png
deleted file mode 100644
index 8496fb1a..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-hovered@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-hovered@3x.png
deleted file mode 100644
index 30849fd0..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-hovered@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-hovered@4x.png
deleted file mode 100644
index 55ce7c0c..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused.png
deleted file mode 100644
index cd07b1cc..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@2x.png
deleted file mode 100644
index acae6aff..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@3x.png
deleted file mode 100644
index 1e8d2c45..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@4x.png
deleted file mode 100644
index 577017c4..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered.png
deleted file mode 100644
index cd07b1cc..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@2x.png
deleted file mode 100644
index acae6aff..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@3x.png
deleted file mode 100644
index 1e8d2c45..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@4x.png
deleted file mode 100644
index 577017c4..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed.png
deleted file mode 100644
index 928706ab..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@2x.png
deleted file mode 100644
index 3645d78a..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@3x.png
deleted file mode 100644
index ade63bd0..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@4x.png
deleted file mode 100644
index cd73617e..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked.png
deleted file mode 100644
index e404a4e3..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@2x.png
deleted file mode 100644
index 2d0f5176..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@3x.png
deleted file mode 100644
index 4b9777b7..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@4x.png
deleted file mode 100644
index e0f67e98..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-partially-checked@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-pressed.png b/src/quickcontrols2/imagine/images/checkbox-indicator-pressed.png
deleted file mode 100644
index a1baaf90..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-pressed@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-pressed@2x.png
deleted file mode 100644
index 81a7c364..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-pressed@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-pressed@3x.png
deleted file mode 100644
index 9325de38..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator-pressed@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator-pressed@4x.png
deleted file mode 100644
index c93b8fb8..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator.png b/src/quickcontrols2/imagine/images/checkbox-indicator.png
deleted file mode 100644
index 2b3e2323..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator@2x.png b/src/quickcontrols2/imagine/images/checkbox-indicator@2x.png
deleted file mode 100644
index ce8985db..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator@3x.png b/src/quickcontrols2/imagine/images/checkbox-indicator@3x.png
deleted file mode 100644
index 2968731d..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkbox-indicator@4x.png b/src/quickcontrols2/imagine/images/checkbox-indicator@4x.png
deleted file mode 100644
index ea8da284..00000000
--- a/src/quickcontrols2/imagine/images/checkbox-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-disabled.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-disabled.9.png
deleted file mode 100644
index 23570729..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-disabled@2x.9.png
deleted file mode 100644
index c7abb65c..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-disabled@3x.9.png
deleted file mode 100644
index 46b84d7d..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-disabled@4x.9.png
deleted file mode 100644
index f4dfd338..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-focused.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-focused.9.png
deleted file mode 100644
index 6ae574d5..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-focused@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-focused@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-focused@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted.9.png
deleted file mode 100644
index e79d8e1d..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@2x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@2x.9.png
deleted file mode 100644
index ea68d35f..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@3x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@3x.9.png
deleted file mode 100644
index 6d610415..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@4x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@4x.9.png
deleted file mode 100644
index 590cca96..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-highlighted@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-hovered.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-hovered.9.png
deleted file mode 100644
index b8749743..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-hovered@2x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-hovered@2x.9.png
deleted file mode 100644
index 5a136a0c..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-hovered@3x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-hovered@3x.9.png
deleted file mode 100644
index f47a366b..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-hovered@4x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-hovered@4x.9.png
deleted file mode 100644
index 9ecb680f..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-pressed.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-pressed.9.png
deleted file mode 100644
index 6ae574d5..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-pressed@2x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-pressed@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-pressed@3x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-pressed@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background-pressed@4x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background-pressed@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background.9.png
deleted file mode 100644
index b8749743..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background@2x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background@2x.9.png
deleted file mode 100644
index 5a136a0c..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background@3x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background@3x.9.png
deleted file mode 100644
index f47a366b..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-background@4x.9.png b/src/quickcontrols2/imagine/images/checkdelegate-background@4x.9.png
deleted file mode 100644
index 9ecb680f..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused.png
deleted file mode 100644
index d55a5204..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@2x.png
deleted file mode 100644
index 7289f639..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@3x.png
deleted file mode 100644
index 02d6cdf2..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@4x.png
deleted file mode 100644
index 3f074dbf..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered.png
deleted file mode 100644
index d55a5204..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@2x.png
deleted file mode 100644
index 7289f639..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@3x.png
deleted file mode 100644
index 02d6cdf2..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@4x.png
deleted file mode 100644
index 3f074dbf..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed.png
deleted file mode 100644
index 9c03d096..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@2x.png
deleted file mode 100644
index 680ba3ef..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@3x.png
deleted file mode 100644
index 974205de..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@4x.png
deleted file mode 100644
index 2c8b6aab..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked.png
deleted file mode 100644
index 598b163a..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@2x.png
deleted file mode 100644
index 06382264..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@3x.png
deleted file mode 100644
index 12a32dcd..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@4x.png
deleted file mode 100644
index 4bc6701d..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-checked@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled.png
deleted file mode 100644
index 0a499f8f..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@2x.png
deleted file mode 100644
index db652c5a..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@3x.png
deleted file mode 100644
index 482f045d..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@4x.png
deleted file mode 100644
index a386e272..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused.png
deleted file mode 100644
index c5eb8527..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@2x.png
deleted file mode 100644
index 8496fb1a..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@3x.png
deleted file mode 100644
index 30849fd0..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@4x.png
deleted file mode 100644
index 55ce7c0c..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered.png
deleted file mode 100644
index c5eb8527..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@2x.png
deleted file mode 100644
index 8496fb1a..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@3x.png
deleted file mode 100644
index 30849fd0..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@4x.png
deleted file mode 100644
index 55ce7c0c..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused.png
deleted file mode 100644
index cd07b1cc..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@2x.png
deleted file mode 100644
index acae6aff..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@3x.png
deleted file mode 100644
index 1e8d2c45..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@4x.png
deleted file mode 100644
index 577017c4..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered.png
deleted file mode 100644
index cd07b1cc..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@2x.png
deleted file mode 100644
index acae6aff..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@3x.png
deleted file mode 100644
index 1e8d2c45..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@4x.png
deleted file mode 100644
index 577017c4..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed.png
deleted file mode 100644
index 928706ab..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@2x.png
deleted file mode 100644
index 3645d78a..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@3x.png
deleted file mode 100644
index ade63bd0..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@4x.png
deleted file mode 100644
index cd73617e..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked.png
deleted file mode 100644
index e404a4e3..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@2x.png
deleted file mode 100644
index 2d0f5176..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@3x.png
deleted file mode 100644
index 4b9777b7..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@4x.png
deleted file mode 100644
index e0f67e98..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-partially-checked@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed.png
deleted file mode 100644
index a1baaf90..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@2x.png
deleted file mode 100644
index 81a7c364..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@3x.png
deleted file mode 100644
index 9325de38..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@4x.png
deleted file mode 100644
index c93b8fb8..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator.png
deleted file mode 100644
index 2b3e2323..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator@2x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator@2x.png
deleted file mode 100644
index ce8985db..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator@3x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator@3x.png
deleted file mode 100644
index 2968731d..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/checkdelegate-indicator@4x.png b/src/quickcontrols2/imagine/images/checkdelegate-indicator@4x.png
deleted file mode 100644
index ea8da284..00000000
--- a/src/quickcontrols2/imagine/images/checkdelegate-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-disabled.9.png b/src/quickcontrols2/imagine/images/combobox-background-disabled.9.png
deleted file mode 100644
index a91b4b55..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/combobox-background-disabled@2x.9.png
deleted file mode 100644
index 570b990c..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/combobox-background-disabled@3x.9.png
deleted file mode 100644
index b0f9b9c4..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/combobox-background-disabled@4x.9.png
deleted file mode 100644
index 6e810f75..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable-disabled.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable-disabled.9.png
deleted file mode 100644
index e192afb8..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable-disabled@2x.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable-disabled@2x.9.png
deleted file mode 100644
index 58a0f6e9..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable-disabled@3x.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable-disabled@3x.9.png
deleted file mode 100644
index cd6f226b..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable-disabled@4x.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable-disabled@4x.9.png
deleted file mode 100644
index ff9103b0..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable-focused.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable-focused.9.png
deleted file mode 100644
index a0f079bc..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable-focused@2x.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable-focused@2x.9.png
deleted file mode 100644
index 83cb503f..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable-focused@3x.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable-focused@3x.9.png
deleted file mode 100644
index 4cf96edf..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable-focused@4x.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable-focused@4x.9.png
deleted file mode 100644
index 5823de80..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable.9.png
deleted file mode 100644
index 8edac132..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable@2x.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable@2x.9.png
deleted file mode 100644
index 15e465f1..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable@3x.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable@3x.9.png
deleted file mode 100644
index 910b48d2..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-editable@4x.9.png b/src/quickcontrols2/imagine/images/combobox-background-editable@4x.9.png
deleted file mode 100644
index ff0f6411..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-editable@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-focused.9.png b/src/quickcontrols2/imagine/images/combobox-background-focused.9.png
deleted file mode 100644
index a3865fa6..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/combobox-background-focused@2x.9.png
deleted file mode 100644
index fc49f4b8..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/combobox-background-focused@3x.9.png
deleted file mode 100644
index b432b4ec..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/combobox-background-focused@4x.9.png
deleted file mode 100644
index 15862059..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-hovered.9.png b/src/quickcontrols2/imagine/images/combobox-background-hovered.9.png
deleted file mode 100644
index a3865fa6..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-hovered@2x.9.png b/src/quickcontrols2/imagine/images/combobox-background-hovered@2x.9.png
deleted file mode 100644
index fc49f4b8..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-hovered@3x.9.png b/src/quickcontrols2/imagine/images/combobox-background-hovered@3x.9.png
deleted file mode 100644
index b432b4ec..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-hovered@4x.9.png b/src/quickcontrols2/imagine/images/combobox-background-hovered@4x.9.png
deleted file mode 100644
index 15862059..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-open.9.png b/src/quickcontrols2/imagine/images/combobox-background-open.9.png
deleted file mode 100644
index 1be84403..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-open.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-open@2x.9.png b/src/quickcontrols2/imagine/images/combobox-background-open@2x.9.png
deleted file mode 100644
index 95f7cd6d..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-open@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-open@3x.9.png b/src/quickcontrols2/imagine/images/combobox-background-open@3x.9.png
deleted file mode 100644
index 2f71271c..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-open@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-open@4x.9.png b/src/quickcontrols2/imagine/images/combobox-background-open@4x.9.png
deleted file mode 100644
index 17f6f2ce..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-open@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-pressed.9.png b/src/quickcontrols2/imagine/images/combobox-background-pressed.9.png
deleted file mode 100644
index 1be84403..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-pressed@2x.9.png b/src/quickcontrols2/imagine/images/combobox-background-pressed@2x.9.png
deleted file mode 100644
index 95f7cd6d..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-pressed@3x.9.png b/src/quickcontrols2/imagine/images/combobox-background-pressed@3x.9.png
deleted file mode 100644
index 2f71271c..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background-pressed@4x.9.png b/src/quickcontrols2/imagine/images/combobox-background-pressed@4x.9.png
deleted file mode 100644
index 17f6f2ce..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background.9.png b/src/quickcontrols2/imagine/images/combobox-background.9.png
deleted file mode 100644
index 4ed8ddc3..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background@2x.9.png b/src/quickcontrols2/imagine/images/combobox-background@2x.9.png
deleted file mode 100644
index 1d7a8894..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background@3x.9.png b/src/quickcontrols2/imagine/images/combobox-background@3x.9.png
deleted file mode 100644
index 313630f8..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-background@4x.9.png b/src/quickcontrols2/imagine/images/combobox-background@4x.9.png
deleted file mode 100644
index be63d56e..00000000
--- a/src/quickcontrols2/imagine/images/combobox-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-disabled.png b/src/quickcontrols2/imagine/images/combobox-indicator-disabled.png
deleted file mode 100644
index 761537f9..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-disabled@2x.png b/src/quickcontrols2/imagine/images/combobox-indicator-disabled@2x.png
deleted file mode 100644
index 322b7b68..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-disabled@3x.png b/src/quickcontrols2/imagine/images/combobox-indicator-disabled@3x.png
deleted file mode 100644
index 73feec34..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-disabled@4x.png b/src/quickcontrols2/imagine/images/combobox-indicator-disabled@4x.png
deleted file mode 100644
index 910c4d3d..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled.png
deleted file mode 100644
index 4399b6aa..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@2x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@2x.png
deleted file mode 100644
index e45a2ad1..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@3x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@3x.png
deleted file mode 100644
index 23f74b10..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@4x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@4x.png
deleted file mode 100644
index db495899..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled.png
deleted file mode 100644
index 2e954ae9..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@2x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@2x.png
deleted file mode 100644
index 252a5e37..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@3x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@3x.png
deleted file mode 100644
index 6d939a93..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@4x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@4x.png
deleted file mode 100644
index 00a21ebd..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored.png
deleted file mode 100644
index ad529912..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@2x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@2x.png
deleted file mode 100644
index 70b995c1..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@3x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@3x.png
deleted file mode 100644
index 9b865377..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@4x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@4x.png
deleted file mode 100644
index b4f7ae25..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable-mirrored@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable.png
deleted file mode 100644
index e053109f..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable@2x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable@2x.png
deleted file mode 100644
index b8dfd6fe..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable@3x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable@3x.png
deleted file mode 100644
index 2cdee7a8..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator-editable@4x.png b/src/quickcontrols2/imagine/images/combobox-indicator-editable@4x.png
deleted file mode 100644
index 2569b4ae..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator-editable@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator.png b/src/quickcontrols2/imagine/images/combobox-indicator.png
deleted file mode 100644
index cc32f2a2..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator@2x.png b/src/quickcontrols2/imagine/images/combobox-indicator@2x.png
deleted file mode 100644
index 57ea3f30..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator@3x.png b/src/quickcontrols2/imagine/images/combobox-indicator@3x.png
deleted file mode 100644
index 384f8152..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-indicator@4x.png b/src/quickcontrols2/imagine/images/combobox-indicator@4x.png
deleted file mode 100644
index f326c03b..00000000
--- a/src/quickcontrols2/imagine/images/combobox-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-popup.9.png b/src/quickcontrols2/imagine/images/combobox-popup.9.png
deleted file mode 100644
index 7344cdf6..00000000
--- a/src/quickcontrols2/imagine/images/combobox-popup.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-popup@2x.9.png b/src/quickcontrols2/imagine/images/combobox-popup@2x.9.png
deleted file mode 100644
index 00c88c7d..00000000
--- a/src/quickcontrols2/imagine/images/combobox-popup@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-popup@3x.9.png b/src/quickcontrols2/imagine/images/combobox-popup@3x.9.png
deleted file mode 100644
index 82d911ed..00000000
--- a/src/quickcontrols2/imagine/images/combobox-popup@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/combobox-popup@4x.9.png b/src/quickcontrols2/imagine/images/combobox-popup@4x.9.png
deleted file mode 100644
index 98db30af..00000000
--- a/src/quickcontrols2/imagine/images/combobox-popup@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused.9.png
deleted file mode 100644
index e3d14e99..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@2x.9.png
deleted file mode 100644
index ebc74b4a..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@3x.9.png
deleted file mode 100644
index 75834723..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@4x.9.png
deleted file mode 100644
index 9b570f4d..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered.9.png
deleted file mode 100644
index e3d14e99..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@2x.9.png
deleted file mode 100644
index ebc74b4a..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@3x.9.png
deleted file mode 100644
index 75834723..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@4x.9.png
deleted file mode 100644
index 9b570f4d..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked.9.png
deleted file mode 100644
index d0942509..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked@2x.9.png
deleted file mode 100644
index c38bcd02..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked@3x.9.png
deleted file mode 100644
index 80889bf8..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-checked@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-checked@4x.9.png
deleted file mode 100644
index 05de8377..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-checked@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked.9.png
deleted file mode 100644
index 8196289c..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@2x.9.png
deleted file mode 100644
index 76cd4490..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@3x.9.png
deleted file mode 100644
index 8bd6259a..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@4x.9.png
deleted file mode 100644
index 3e081520..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-disabled-checked@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-disabled.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-disabled.9.png
deleted file mode 100644
index 8196289c..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-disabled@2x.9.png
deleted file mode 100644
index 76cd4490..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-disabled@3x.9.png
deleted file mode 100644
index 8bd6259a..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-disabled@4x.9.png
deleted file mode 100644
index 3e081520..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-focused.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-focused.9.png
deleted file mode 100644
index 294ff8bd..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-focused@2x.9.png
deleted file mode 100644
index 48e2bbcb..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-focused@3x.9.png
deleted file mode 100644
index 0981eb2a..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-focused@4x.9.png
deleted file mode 100644
index 4ae48bfa..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-hovered.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-hovered.9.png
deleted file mode 100644
index 42e40e60..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-hovered@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-hovered@2x.9.png
deleted file mode 100644
index 90dc70bf..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-hovered@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-hovered@3x.9.png
deleted file mode 100644
index 2ed2340c..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-hovered@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-hovered@4x.9.png
deleted file mode 100644
index e1428e37..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-pressed.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-pressed.9.png
deleted file mode 100644
index d0942509..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-pressed@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-pressed@2x.9.png
deleted file mode 100644
index c38bcd02..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-pressed@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-pressed@3x.9.png
deleted file mode 100644
index 80889bf8..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background-pressed@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background-pressed@4x.9.png
deleted file mode 100644
index 05de8377..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background.9.png b/src/quickcontrols2/imagine/images/delaybutton-background.9.png
deleted file mode 100644
index 6f1daed8..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background@2x.9.png
deleted file mode 100644
index 4a2507f5..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background@3x.9.png
deleted file mode 100644
index 4f13b4ef..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-background@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-background@4x.9.png
deleted file mode 100644
index 0e1ab452..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-mask.9.png b/src/quickcontrols2/imagine/images/delaybutton-mask.9.png
deleted file mode 100644
index 76d3967d..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-mask.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-mask@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-mask@2x.9.png
deleted file mode 100644
index b8db224c..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-mask@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-mask@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-mask@3x.9.png
deleted file mode 100644
index 3bff2c15..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-mask@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-mask@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-mask@4x.9.png
deleted file mode 100644
index 045c7fac..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-mask@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-progress-disabled.9.png b/src/quickcontrols2/imagine/images/delaybutton-progress-disabled.9.png
deleted file mode 100644
index 5c209c9c..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-progress-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-progress-disabled@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-progress-disabled@2x.9.png
deleted file mode 100644
index 0ef11a8d..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-progress-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-progress-disabled@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-progress-disabled@3x.9.png
deleted file mode 100644
index f3f8e547..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-progress-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-progress-disabled@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-progress-disabled@4x.9.png
deleted file mode 100644
index b24f50e6..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-progress-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-progress.9.png b/src/quickcontrols2/imagine/images/delaybutton-progress.9.png
deleted file mode 100644
index 4dd3aec5..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-progress.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-progress@2x.9.png b/src/quickcontrols2/imagine/images/delaybutton-progress@2x.9.png
deleted file mode 100644
index cd422076..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-progress@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-progress@3x.9.png b/src/quickcontrols2/imagine/images/delaybutton-progress@3x.9.png
deleted file mode 100644
index 08610300..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-progress@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/delaybutton-progress@4x.9.png b/src/quickcontrols2/imagine/images/delaybutton-progress@4x.9.png
deleted file mode 100644
index 24cc19ba..00000000
--- a/src/quickcontrols2/imagine/images/delaybutton-progress@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background-disabled.png b/src/quickcontrols2/imagine/images/dial-background-disabled.png
deleted file mode 100644
index d7c4f847..00000000
--- a/src/quickcontrols2/imagine/images/dial-background-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background-disabled@2x.png b/src/quickcontrols2/imagine/images/dial-background-disabled@2x.png
deleted file mode 100644
index 56b085df..00000000
--- a/src/quickcontrols2/imagine/images/dial-background-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background-disabled@3x.png b/src/quickcontrols2/imagine/images/dial-background-disabled@3x.png
deleted file mode 100644
index 4f1e17e7..00000000
--- a/src/quickcontrols2/imagine/images/dial-background-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background-disabled@4x.png b/src/quickcontrols2/imagine/images/dial-background-disabled@4x.png
deleted file mode 100644
index 4aacbf82..00000000
--- a/src/quickcontrols2/imagine/images/dial-background-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background-focused.png b/src/quickcontrols2/imagine/images/dial-background-focused.png
deleted file mode 100644
index fc53d5c4..00000000
--- a/src/quickcontrols2/imagine/images/dial-background-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background-focused@2x.png b/src/quickcontrols2/imagine/images/dial-background-focused@2x.png
deleted file mode 100644
index 6b547a17..00000000
--- a/src/quickcontrols2/imagine/images/dial-background-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background-focused@3x.png b/src/quickcontrols2/imagine/images/dial-background-focused@3x.png
deleted file mode 100644
index 7b8a2582..00000000
--- a/src/quickcontrols2/imagine/images/dial-background-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background-focused@4x.png b/src/quickcontrols2/imagine/images/dial-background-focused@4x.png
deleted file mode 100644
index 406f46b5..00000000
--- a/src/quickcontrols2/imagine/images/dial-background-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background.png b/src/quickcontrols2/imagine/images/dial-background.png
deleted file mode 100644
index 58aa09ed..00000000
--- a/src/quickcontrols2/imagine/images/dial-background.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background@2x.png b/src/quickcontrols2/imagine/images/dial-background@2x.png
deleted file mode 100644
index 87cd9a0f..00000000
--- a/src/quickcontrols2/imagine/images/dial-background@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background@3x.png b/src/quickcontrols2/imagine/images/dial-background@3x.png
deleted file mode 100644
index 103fb461..00000000
--- a/src/quickcontrols2/imagine/images/dial-background@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-background@4x.png b/src/quickcontrols2/imagine/images/dial-background@4x.png
deleted file mode 100644
index c290f84a..00000000
--- a/src/quickcontrols2/imagine/images/dial-background@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-disabled.png b/src/quickcontrols2/imagine/images/dial-handle-disabled.png
deleted file mode 100644
index a93fd0f2..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-disabled@2x.png b/src/quickcontrols2/imagine/images/dial-handle-disabled@2x.png
deleted file mode 100644
index 2cd536be..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-disabled@3x.png b/src/quickcontrols2/imagine/images/dial-handle-disabled@3x.png
deleted file mode 100644
index 56b9fe06..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-disabled@4x.png b/src/quickcontrols2/imagine/images/dial-handle-disabled@4x.png
deleted file mode 100644
index 5098d688..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused-hovered.png b/src/quickcontrols2/imagine/images/dial-handle-focused-hovered.png
deleted file mode 100644
index 2a143f2a..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused-hovered@2x.png b/src/quickcontrols2/imagine/images/dial-handle-focused-hovered@2x.png
deleted file mode 100644
index 24dfee82..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused-hovered@3x.png b/src/quickcontrols2/imagine/images/dial-handle-focused-hovered@3x.png
deleted file mode 100644
index 16e128d5..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused-hovered@4x.png b/src/quickcontrols2/imagine/images/dial-handle-focused-hovered@4x.png
deleted file mode 100644
index b4523acb..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused-pressed.png b/src/quickcontrols2/imagine/images/dial-handle-focused-pressed.png
deleted file mode 100644
index d43971ff..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused-pressed@2x.png b/src/quickcontrols2/imagine/images/dial-handle-focused-pressed@2x.png
deleted file mode 100644
index caa2376e..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused-pressed@3x.png b/src/quickcontrols2/imagine/images/dial-handle-focused-pressed@3x.png
deleted file mode 100644
index c2913883..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused-pressed@4x.png b/src/quickcontrols2/imagine/images/dial-handle-focused-pressed@4x.png
deleted file mode 100644
index 50ff1c8b..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused.png b/src/quickcontrols2/imagine/images/dial-handle-focused.png
deleted file mode 100644
index d2733474..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused@2x.png b/src/quickcontrols2/imagine/images/dial-handle-focused@2x.png
deleted file mode 100644
index c7bc8f74..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused@3x.png b/src/quickcontrols2/imagine/images/dial-handle-focused@3x.png
deleted file mode 100644
index c0dcd945..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-focused@4x.png b/src/quickcontrols2/imagine/images/dial-handle-focused@4x.png
deleted file mode 100644
index b9d2234c..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-hovered.png b/src/quickcontrols2/imagine/images/dial-handle-hovered.png
deleted file mode 100644
index f5d0ac6f..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-hovered@2x.png b/src/quickcontrols2/imagine/images/dial-handle-hovered@2x.png
deleted file mode 100644
index da23baaa..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-hovered@3x.png b/src/quickcontrols2/imagine/images/dial-handle-hovered@3x.png
deleted file mode 100644
index 7287a419..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-hovered@4x.png b/src/quickcontrols2/imagine/images/dial-handle-hovered@4x.png
deleted file mode 100644
index 9f6982dd..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-pressed.png b/src/quickcontrols2/imagine/images/dial-handle-pressed.png
deleted file mode 100644
index 3b98e124..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-pressed@2x.png b/src/quickcontrols2/imagine/images/dial-handle-pressed@2x.png
deleted file mode 100644
index 454e7364..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-pressed@3x.png b/src/quickcontrols2/imagine/images/dial-handle-pressed@3x.png
deleted file mode 100644
index 794516da..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle-pressed@4x.png b/src/quickcontrols2/imagine/images/dial-handle-pressed@4x.png
deleted file mode 100644
index 211b1135..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle.png b/src/quickcontrols2/imagine/images/dial-handle.png
deleted file mode 100644
index 652b82d3..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle@2x.png b/src/quickcontrols2/imagine/images/dial-handle@2x.png
deleted file mode 100644
index 3c86a59b..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle@3x.png b/src/quickcontrols2/imagine/images/dial-handle@3x.png
deleted file mode 100644
index cbfcdbcd..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dial-handle@4x.png b/src/quickcontrols2/imagine/images/dial-handle@4x.png
deleted file mode 100644
index 2872e006..00000000
--- a/src/quickcontrols2/imagine/images/dial-handle@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-background.9.png b/src/quickcontrols2/imagine/images/dialog-background.9.png
deleted file mode 100644
index c842b5ff..00000000
--- a/src/quickcontrols2/imagine/images/dialog-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-background@2x.9.png b/src/quickcontrols2/imagine/images/dialog-background@2x.9.png
deleted file mode 100644
index ca23df1f..00000000
--- a/src/quickcontrols2/imagine/images/dialog-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-background@3x.9.png b/src/quickcontrols2/imagine/images/dialog-background@3x.9.png
deleted file mode 100644
index 46cd4065..00000000
--- a/src/quickcontrols2/imagine/images/dialog-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-background@4x.9.png b/src/quickcontrols2/imagine/images/dialog-background@4x.9.png
deleted file mode 100644
index 3da74119..00000000
--- a/src/quickcontrols2/imagine/images/dialog-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-overlay-modal.png b/src/quickcontrols2/imagine/images/dialog-overlay-modal.png
deleted file mode 100644
index d4a43d1c..00000000
--- a/src/quickcontrols2/imagine/images/dialog-overlay-modal.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-overlay-modal@2x.png b/src/quickcontrols2/imagine/images/dialog-overlay-modal@2x.png
deleted file mode 100644
index c9a8f412..00000000
--- a/src/quickcontrols2/imagine/images/dialog-overlay-modal@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-overlay-modal@3x.png b/src/quickcontrols2/imagine/images/dialog-overlay-modal@3x.png
deleted file mode 100644
index 4a1084a9..00000000
--- a/src/quickcontrols2/imagine/images/dialog-overlay-modal@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-overlay-modal@4x.png b/src/quickcontrols2/imagine/images/dialog-overlay-modal@4x.png
deleted file mode 100644
index b92e600d..00000000
--- a/src/quickcontrols2/imagine/images/dialog-overlay-modal@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-overlay.png b/src/quickcontrols2/imagine/images/dialog-overlay.png
deleted file mode 100644
index b7da23c0..00000000
--- a/src/quickcontrols2/imagine/images/dialog-overlay.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-overlay@2x.png b/src/quickcontrols2/imagine/images/dialog-overlay@2x.png
deleted file mode 100644
index 23828d5a..00000000
--- a/src/quickcontrols2/imagine/images/dialog-overlay@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-overlay@3x.png b/src/quickcontrols2/imagine/images/dialog-overlay@3x.png
deleted file mode 100644
index d9d53828..00000000
--- a/src/quickcontrols2/imagine/images/dialog-overlay@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialog-overlay@4x.png b/src/quickcontrols2/imagine/images/dialog-overlay@4x.png
deleted file mode 100644
index a76c1a3a..00000000
--- a/src/quickcontrols2/imagine/images/dialog-overlay@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialogbuttonbox-background.9.png b/src/quickcontrols2/imagine/images/dialogbuttonbox-background.9.png
deleted file mode 100644
index 4b080c7f..00000000
--- a/src/quickcontrols2/imagine/images/dialogbuttonbox-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialogbuttonbox-background@2x.9.png b/src/quickcontrols2/imagine/images/dialogbuttonbox-background@2x.9.png
deleted file mode 100644
index 38306bea..00000000
--- a/src/quickcontrols2/imagine/images/dialogbuttonbox-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialogbuttonbox-background@3x.9.png b/src/quickcontrols2/imagine/images/dialogbuttonbox-background@3x.9.png
deleted file mode 100644
index 66afaabe..00000000
--- a/src/quickcontrols2/imagine/images/dialogbuttonbox-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/dialogbuttonbox-background@4x.9.png b/src/quickcontrols2/imagine/images/dialogbuttonbox-background@4x.9.png
deleted file mode 100644
index 7d0db539..00000000
--- a/src/quickcontrols2/imagine/images/dialogbuttonbox-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-bottom.9.png b/src/quickcontrols2/imagine/images/drawer-background-bottom.9.png
deleted file mode 100644
index 023d8bf8..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-bottom.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-bottom@2x.9.png b/src/quickcontrols2/imagine/images/drawer-background-bottom@2x.9.png
deleted file mode 100644
index 6b229ce9..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-bottom@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-bottom@3x.9.png b/src/quickcontrols2/imagine/images/drawer-background-bottom@3x.9.png
deleted file mode 100644
index c61118b6..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-bottom@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-bottom@4x.9.png b/src/quickcontrols2/imagine/images/drawer-background-bottom@4x.9.png
deleted file mode 100644
index 08b2e25f..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-bottom@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-left.9.png b/src/quickcontrols2/imagine/images/drawer-background-left.9.png
deleted file mode 100644
index 5145a3a3..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-left.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-left@2x.9.png b/src/quickcontrols2/imagine/images/drawer-background-left@2x.9.png
deleted file mode 100644
index 95a80ab5..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-left@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-left@3x.9.png b/src/quickcontrols2/imagine/images/drawer-background-left@3x.9.png
deleted file mode 100644
index bd330b7f..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-left@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-left@4x.9.png b/src/quickcontrols2/imagine/images/drawer-background-left@4x.9.png
deleted file mode 100644
index 10f0702a..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-left@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-right.9.png b/src/quickcontrols2/imagine/images/drawer-background-right.9.png
deleted file mode 100644
index 37afb734..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-right.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-right@2x.9.png b/src/quickcontrols2/imagine/images/drawer-background-right@2x.9.png
deleted file mode 100644
index cfbc8f35..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-right@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-right@3x.9.png b/src/quickcontrols2/imagine/images/drawer-background-right@3x.9.png
deleted file mode 100644
index 9a49b6d5..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-right@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-right@4x.9.png b/src/quickcontrols2/imagine/images/drawer-background-right@4x.9.png
deleted file mode 100644
index 56405776..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-right@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-top.9.png b/src/quickcontrols2/imagine/images/drawer-background-top.9.png
deleted file mode 100644
index 56da059f..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-top.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-top@2x.9.png b/src/quickcontrols2/imagine/images/drawer-background-top@2x.9.png
deleted file mode 100644
index 976671ce..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-top@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-top@3x.9.png b/src/quickcontrols2/imagine/images/drawer-background-top@3x.9.png
deleted file mode 100644
index 7c07deba..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-top@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-background-top@4x.9.png b/src/quickcontrols2/imagine/images/drawer-background-top@4x.9.png
deleted file mode 100644
index e3b1edf7..00000000
--- a/src/quickcontrols2/imagine/images/drawer-background-top@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-overlay-modal.png b/src/quickcontrols2/imagine/images/drawer-overlay-modal.png
deleted file mode 100644
index d4a43d1c..00000000
--- a/src/quickcontrols2/imagine/images/drawer-overlay-modal.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-overlay-modal@2x.png b/src/quickcontrols2/imagine/images/drawer-overlay-modal@2x.png
deleted file mode 100644
index c9a8f412..00000000
--- a/src/quickcontrols2/imagine/images/drawer-overlay-modal@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-overlay-modal@3x.png b/src/quickcontrols2/imagine/images/drawer-overlay-modal@3x.png
deleted file mode 100644
index 4a1084a9..00000000
--- a/src/quickcontrols2/imagine/images/drawer-overlay-modal@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-overlay-modal@4x.png b/src/quickcontrols2/imagine/images/drawer-overlay-modal@4x.png
deleted file mode 100644
index b92e600d..00000000
--- a/src/quickcontrols2/imagine/images/drawer-overlay-modal@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-overlay.png b/src/quickcontrols2/imagine/images/drawer-overlay.png
deleted file mode 100644
index b7da23c0..00000000
--- a/src/quickcontrols2/imagine/images/drawer-overlay.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-overlay@2x.png b/src/quickcontrols2/imagine/images/drawer-overlay@2x.png
deleted file mode 100644
index 23828d5a..00000000
--- a/src/quickcontrols2/imagine/images/drawer-overlay@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-overlay@3x.png b/src/quickcontrols2/imagine/images/drawer-overlay@3x.png
deleted file mode 100644
index d9d53828..00000000
--- a/src/quickcontrols2/imagine/images/drawer-overlay@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/drawer-overlay@4x.png b/src/quickcontrols2/imagine/images/drawer-overlay@4x.png
deleted file mode 100644
index a76c1a3a..00000000
--- a/src/quickcontrols2/imagine/images/drawer-overlay@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/frame-background.9.png b/src/quickcontrols2/imagine/images/frame-background.9.png
deleted file mode 100644
index 8674059d..00000000
--- a/src/quickcontrols2/imagine/images/frame-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/frame-background@2x.9.png b/src/quickcontrols2/imagine/images/frame-background@2x.9.png
deleted file mode 100644
index 19661496..00000000
--- a/src/quickcontrols2/imagine/images/frame-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/frame-background@3x.9.png b/src/quickcontrols2/imagine/images/frame-background@3x.9.png
deleted file mode 100644
index 07d644be..00000000
--- a/src/quickcontrols2/imagine/images/frame-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/frame-background@4x.9.png b/src/quickcontrols2/imagine/images/frame-background@4x.9.png
deleted file mode 100644
index 8bf47d2a..00000000
--- a/src/quickcontrols2/imagine/images/frame-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/groupbox-background.9.png b/src/quickcontrols2/imagine/images/groupbox-background.9.png
deleted file mode 100644
index 8674059d..00000000
--- a/src/quickcontrols2/imagine/images/groupbox-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/groupbox-background@2x.9.png b/src/quickcontrols2/imagine/images/groupbox-background@2x.9.png
deleted file mode 100644
index 19661496..00000000
--- a/src/quickcontrols2/imagine/images/groupbox-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/groupbox-background@3x.9.png b/src/quickcontrols2/imagine/images/groupbox-background@3x.9.png
deleted file mode 100644
index 07d644be..00000000
--- a/src/quickcontrols2/imagine/images/groupbox-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/groupbox-background@4x.9.png b/src/quickcontrols2/imagine/images/groupbox-background@4x.9.png
deleted file mode 100644
index 8bf47d2a..00000000
--- a/src/quickcontrols2/imagine/images/groupbox-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/groupbox-title.9.png b/src/quickcontrols2/imagine/images/groupbox-title.9.png
deleted file mode 100644
index e85e0cb1..00000000
--- a/src/quickcontrols2/imagine/images/groupbox-title.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/groupbox-title@2x.9.png b/src/quickcontrols2/imagine/images/groupbox-title@2x.9.png
deleted file mode 100644
index d5359d85..00000000
--- a/src/quickcontrols2/imagine/images/groupbox-title@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/groupbox-title@3x.9.png b/src/quickcontrols2/imagine/images/groupbox-title@3x.9.png
deleted file mode 100644
index 0e4b5c9f..00000000
--- a/src/quickcontrols2/imagine/images/groupbox-title@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/groupbox-title@4x.9.png b/src/quickcontrols2/imagine/images/groupbox-title@4x.9.png
deleted file mode 100644
index 908dfe6b..00000000
--- a/src/quickcontrols2/imagine/images/groupbox-title@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-disabled.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-disabled.9.png
deleted file mode 100644
index 23570729..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-disabled@2x.9.png
deleted file mode 100644
index c7abb65c..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-disabled@3x.9.png
deleted file mode 100644
index 46b84d7d..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-disabled@4x.9.png
deleted file mode 100644
index f4dfd338..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-focused.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-focused.9.png
deleted file mode 100644
index 6ae574d5..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-focused@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-focused@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-focused@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted.9.png
deleted file mode 100644
index e79d8e1d..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@2x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@2x.9.png
deleted file mode 100644
index ea68d35f..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@3x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@3x.9.png
deleted file mode 100644
index 6d610415..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@4x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@4x.9.png
deleted file mode 100644
index 590cca96..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-highlighted@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-hovered.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-hovered.9.png
deleted file mode 100644
index b8749743..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-hovered@2x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-hovered@2x.9.png
deleted file mode 100644
index 5a136a0c..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-hovered@3x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-hovered@3x.9.png
deleted file mode 100644
index f47a366b..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-hovered@4x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-hovered@4x.9.png
deleted file mode 100644
index 9ecb680f..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-pressed.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-pressed.9.png
deleted file mode 100644
index 6ae574d5..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-pressed@2x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-pressed@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-pressed@3x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-pressed@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background-pressed@4x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background-pressed@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background.9.png
deleted file mode 100644
index b8749743..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background@2x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background@2x.9.png
deleted file mode 100644
index 5a136a0c..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background@3x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background@3x.9.png
deleted file mode 100644
index f47a366b..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/itemdelegate-background@4x.9.png b/src/quickcontrols2/imagine/images/itemdelegate-background@4x.9.png
deleted file mode 100644
index 9ecb680f..00000000
--- a/src/quickcontrols2/imagine/images/itemdelegate-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menu-background.9.png b/src/quickcontrols2/imagine/images/menu-background.9.png
deleted file mode 100644
index 3195fbc3..00000000
--- a/src/quickcontrols2/imagine/images/menu-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menu-background@2x.9.png b/src/quickcontrols2/imagine/images/menu-background@2x.9.png
deleted file mode 100644
index 454c347c..00000000
--- a/src/quickcontrols2/imagine/images/menu-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menu-background@3x.9.png b/src/quickcontrols2/imagine/images/menu-background@3x.9.png
deleted file mode 100644
index 32ed6086..00000000
--- a/src/quickcontrols2/imagine/images/menu-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menu-background@4x.9.png b/src/quickcontrols2/imagine/images/menu-background@4x.9.png
deleted file mode 100644
index 948cc3e9..00000000
--- a/src/quickcontrols2/imagine/images/menu-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-disabled.png b/src/quickcontrols2/imagine/images/menuitem-arrow-disabled.png
deleted file mode 100644
index 6cad53f6..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-disabled@2x.png b/src/quickcontrols2/imagine/images/menuitem-arrow-disabled@2x.png
deleted file mode 100644
index bad6fe8c..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-disabled@3x.png b/src/quickcontrols2/imagine/images/menuitem-arrow-disabled@3x.png
deleted file mode 100644
index da420091..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-disabled@4x.png b/src/quickcontrols2/imagine/images/menuitem-arrow-disabled@4x.png
deleted file mode 100644
index 2d8e44e2..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled.png b/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled.png
deleted file mode 100644
index 44ac2771..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@2x.png b/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@2x.png
deleted file mode 100644
index 71a9b88a..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@3x.png b/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@3x.png
deleted file mode 100644
index 1e03f215..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@4x.png b/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@4x.png
deleted file mode 100644
index 0f85b409..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored.png b/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored.png
deleted file mode 100644
index 4ac1160b..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@2x.png b/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@2x.png
deleted file mode 100644
index 79b089b6..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@3x.png b/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@3x.png
deleted file mode 100644
index aeb191fd..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@4x.png b/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@4x.png
deleted file mode 100644
index 139fab35..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow-mirrored@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow.png b/src/quickcontrols2/imagine/images/menuitem-arrow.png
deleted file mode 100644
index edf1f6bd..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow@2x.png b/src/quickcontrols2/imagine/images/menuitem-arrow@2x.png
deleted file mode 100644
index 8e629265..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow@3x.png b/src/quickcontrols2/imagine/images/menuitem-arrow@3x.png
deleted file mode 100644
index 0cef53ac..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-arrow@4x.png b/src/quickcontrols2/imagine/images/menuitem-arrow@4x.png
deleted file mode 100644
index dbdc83bc..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-arrow@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-background-highlighted.9.png b/src/quickcontrols2/imagine/images/menuitem-background-highlighted.9.png
deleted file mode 100644
index 7b8fa0f4..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-background-highlighted.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-background-highlighted@2x.9.png b/src/quickcontrols2/imagine/images/menuitem-background-highlighted@2x.9.png
deleted file mode 100644
index 9edc3079..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-background-highlighted@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-background-highlighted@3x.9.png b/src/quickcontrols2/imagine/images/menuitem-background-highlighted@3x.9.png
deleted file mode 100644
index 183f6194..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-background-highlighted@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-background-highlighted@4x.9.png b/src/quickcontrols2/imagine/images/menuitem-background-highlighted@4x.9.png
deleted file mode 100644
index 0a1ab863..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-background-highlighted@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-background.9.png b/src/quickcontrols2/imagine/images/menuitem-background.9.png
deleted file mode 100644
index aab131ed..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-background@2x.9.png b/src/quickcontrols2/imagine/images/menuitem-background@2x.9.png
deleted file mode 100644
index c46938c4..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-background@3x.9.png b/src/quickcontrols2/imagine/images/menuitem-background@3x.9.png
deleted file mode 100644
index bac1a83f..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-background@4x.9.png b/src/quickcontrols2/imagine/images/menuitem-background@4x.9.png
deleted file mode 100644
index ba77504c..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused.png
deleted file mode 100644
index d55a5204..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@2x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@2x.png
deleted file mode 100644
index 7289f639..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@3x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@3x.png
deleted file mode 100644
index 02d6cdf2..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@4x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@4x.png
deleted file mode 100644
index 3f074dbf..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered.png
deleted file mode 100644
index d55a5204..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@2x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@2x.png
deleted file mode 100644
index 7289f639..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@3x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@3x.png
deleted file mode 100644
index 02d6cdf2..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@4x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@4x.png
deleted file mode 100644
index 3f074dbf..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed.png
deleted file mode 100644
index 9c03d096..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@2x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@2x.png
deleted file mode 100644
index 680ba3ef..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@3x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@3x.png
deleted file mode 100644
index 974205de..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@4x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@4x.png
deleted file mode 100644
index 2c8b6aab..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked.png
deleted file mode 100644
index 598b163a..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked@2x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked@2x.png
deleted file mode 100644
index 06382264..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked@3x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked@3x.png
deleted file mode 100644
index 12a32dcd..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-checked@4x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-checked@4x.png
deleted file mode 100644
index 4bc6701d..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-checked@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-disabled.png b/src/quickcontrols2/imagine/images/menuitem-indicator-disabled.png
deleted file mode 100644
index 0a499f8f..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-disabled@2x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-disabled@2x.png
deleted file mode 100644
index db652c5a..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-disabled@3x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-disabled@3x.png
deleted file mode 100644
index 482f045d..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-disabled@4x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-disabled@4x.png
deleted file mode 100644
index a386e272..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-focused.png b/src/quickcontrols2/imagine/images/menuitem-indicator-focused.png
deleted file mode 100644
index c5eb8527..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-focused@2x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-focused@2x.png
deleted file mode 100644
index 8496fb1a..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-focused@3x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-focused@3x.png
deleted file mode 100644
index 30849fd0..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-focused@4x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-focused@4x.png
deleted file mode 100644
index 55ce7c0c..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-hovered.png b/src/quickcontrols2/imagine/images/menuitem-indicator-hovered.png
deleted file mode 100644
index c5eb8527..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-hovered@2x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-hovered@2x.png
deleted file mode 100644
index 8496fb1a..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-hovered@3x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-hovered@3x.png
deleted file mode 100644
index 30849fd0..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-hovered@4x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-hovered@4x.png
deleted file mode 100644
index 55ce7c0c..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-pressed.png b/src/quickcontrols2/imagine/images/menuitem-indicator-pressed.png
deleted file mode 100644
index a1baaf90..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-pressed@2x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-pressed@2x.png
deleted file mode 100644
index 81a7c364..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-pressed@3x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-pressed@3x.png
deleted file mode 100644
index 9325de38..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator-pressed@4x.png b/src/quickcontrols2/imagine/images/menuitem-indicator-pressed@4x.png
deleted file mode 100644
index c93b8fb8..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator.png b/src/quickcontrols2/imagine/images/menuitem-indicator.png
deleted file mode 100644
index 2b3e2323..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator@2x.png b/src/quickcontrols2/imagine/images/menuitem-indicator@2x.png
deleted file mode 100644
index ce8985db..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator@3x.png b/src/quickcontrols2/imagine/images/menuitem-indicator@3x.png
deleted file mode 100644
index 2968731d..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuitem-indicator@4x.png b/src/quickcontrols2/imagine/images/menuitem-indicator@4x.png
deleted file mode 100644
index ea8da284..00000000
--- a/src/quickcontrols2/imagine/images/menuitem-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuseparator-separator.9.png b/src/quickcontrols2/imagine/images/menuseparator-separator.9.png
deleted file mode 100644
index b8825b99..00000000
--- a/src/quickcontrols2/imagine/images/menuseparator-separator.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuseparator-separator@2x.9.png b/src/quickcontrols2/imagine/images/menuseparator-separator@2x.9.png
deleted file mode 100644
index 3e5a023d..00000000
--- a/src/quickcontrols2/imagine/images/menuseparator-separator@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuseparator-separator@3x.9.png b/src/quickcontrols2/imagine/images/menuseparator-separator@3x.9.png
deleted file mode 100644
index abe775c7..00000000
--- a/src/quickcontrols2/imagine/images/menuseparator-separator@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/menuseparator-separator@4x.9.png b/src/quickcontrols2/imagine/images/menuseparator-separator@4x.9.png
deleted file mode 100644
index 164c8e3e..00000000
--- a/src/quickcontrols2/imagine/images/menuseparator-separator@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/page-background.png b/src/quickcontrols2/imagine/images/page-background.png
deleted file mode 100644
index 2d8d70f2..00000000
--- a/src/quickcontrols2/imagine/images/page-background.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/page-background@2x.png b/src/quickcontrols2/imagine/images/page-background@2x.png
deleted file mode 100644
index 18fbaa4c..00000000
--- a/src/quickcontrols2/imagine/images/page-background@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/page-background@3x.png b/src/quickcontrols2/imagine/images/page-background@3x.png
deleted file mode 100644
index 241232b1..00000000
--- a/src/quickcontrols2/imagine/images/page-background@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/page-background@4x.png b/src/quickcontrols2/imagine/images/page-background@4x.png
deleted file mode 100644
index 8eb1b1ec..00000000
--- a/src/quickcontrols2/imagine/images/page-background@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-current.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-current.png
deleted file mode 100644
index dc96d723..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-current.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-current@2x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-current@2x.png
deleted file mode 100644
index 3e0d794f..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-current@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-current@3x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-current@3x.png
deleted file mode 100644
index 397501a7..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-current@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-current@4x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-current@4x.png
deleted file mode 100644
index f741a896..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-current@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current.png
deleted file mode 100644
index 848d4351..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@2x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@2x.png
deleted file mode 100644
index 65b5a9d4..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@3x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@3x.png
deleted file mode 100644
index 99e3b644..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@4x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@4x.png
deleted file mode 100644
index f1801fff..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled-current@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled.png
deleted file mode 100644
index 848d4351..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@2x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@2x.png
deleted file mode 100644
index 65b5a9d4..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@3x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@3x.png
deleted file mode 100644
index 99e3b644..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@4x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@4x.png
deleted file mode 100644
index f1801fff..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed.png
deleted file mode 100644
index dc96d723..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@2x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@2x.png
deleted file mode 100644
index 3e0d794f..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@3x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@3x.png
deleted file mode 100644
index 397501a7..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@4x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@4x.png
deleted file mode 100644
index f741a896..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate.png b/src/quickcontrols2/imagine/images/pageindicator-delegate.png
deleted file mode 100644
index 84d23cd1..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate@2x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate@2x.png
deleted file mode 100644
index 0e706372..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate@3x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate@3x.png
deleted file mode 100644
index 85af5a4e..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pageindicator-delegate@4x.png b/src/quickcontrols2/imagine/images/pageindicator-delegate@4x.png
deleted file mode 100644
index 0aacbab1..00000000
--- a/src/quickcontrols2/imagine/images/pageindicator-delegate@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pane-background.9.png b/src/quickcontrols2/imagine/images/pane-background.9.png
deleted file mode 100644
index 658f4863..00000000
--- a/src/quickcontrols2/imagine/images/pane-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pane-background@2x.9.png b/src/quickcontrols2/imagine/images/pane-background@2x.9.png
deleted file mode 100644
index a84ac04a..00000000
--- a/src/quickcontrols2/imagine/images/pane-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pane-background@3x.9.png b/src/quickcontrols2/imagine/images/pane-background@3x.9.png
deleted file mode 100644
index 2b1c4da9..00000000
--- a/src/quickcontrols2/imagine/images/pane-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/pane-background@4x.9.png b/src/quickcontrols2/imagine/images/pane-background@4x.9.png
deleted file mode 100644
index 90295db4..00000000
--- a/src/quickcontrols2/imagine/images/pane-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-background.9.png b/src/quickcontrols2/imagine/images/popup-background.9.png
deleted file mode 100644
index c842b5ff..00000000
--- a/src/quickcontrols2/imagine/images/popup-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-background@2x.9.png b/src/quickcontrols2/imagine/images/popup-background@2x.9.png
deleted file mode 100644
index ca23df1f..00000000
--- a/src/quickcontrols2/imagine/images/popup-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-background@3x.9.png b/src/quickcontrols2/imagine/images/popup-background@3x.9.png
deleted file mode 100644
index 46cd4065..00000000
--- a/src/quickcontrols2/imagine/images/popup-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-background@4x.9.png b/src/quickcontrols2/imagine/images/popup-background@4x.9.png
deleted file mode 100644
index 3da74119..00000000
--- a/src/quickcontrols2/imagine/images/popup-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-overlay-modal.png b/src/quickcontrols2/imagine/images/popup-overlay-modal.png
deleted file mode 100644
index d4a43d1c..00000000
--- a/src/quickcontrols2/imagine/images/popup-overlay-modal.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-overlay-modal@2x.png b/src/quickcontrols2/imagine/images/popup-overlay-modal@2x.png
deleted file mode 100644
index c9a8f412..00000000
--- a/src/quickcontrols2/imagine/images/popup-overlay-modal@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-overlay-modal@3x.png b/src/quickcontrols2/imagine/images/popup-overlay-modal@3x.png
deleted file mode 100644
index 4a1084a9..00000000
--- a/src/quickcontrols2/imagine/images/popup-overlay-modal@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-overlay-modal@4x.png b/src/quickcontrols2/imagine/images/popup-overlay-modal@4x.png
deleted file mode 100644
index b92e600d..00000000
--- a/src/quickcontrols2/imagine/images/popup-overlay-modal@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-overlay.png b/src/quickcontrols2/imagine/images/popup-overlay.png
deleted file mode 100644
index b7da23c0..00000000
--- a/src/quickcontrols2/imagine/images/popup-overlay.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-overlay@2x.png b/src/quickcontrols2/imagine/images/popup-overlay@2x.png
deleted file mode 100644
index 23828d5a..00000000
--- a/src/quickcontrols2/imagine/images/popup-overlay@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-overlay@3x.png b/src/quickcontrols2/imagine/images/popup-overlay@3x.png
deleted file mode 100644
index d9d53828..00000000
--- a/src/quickcontrols2/imagine/images/popup-overlay@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/popup-overlay@4x.png b/src/quickcontrols2/imagine/images/popup-overlay@4x.png
deleted file mode 100644
index a76c1a3a..00000000
--- a/src/quickcontrols2/imagine/images/popup-overlay@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-animation.webp b/src/quickcontrols2/imagine/images/progressbar-animation.webp
deleted file mode 100644
index 51c35c88..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-animation.webp
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-animation@2x.webp b/src/quickcontrols2/imagine/images/progressbar-animation@2x.webp
deleted file mode 100644
index ee120630..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-animation@2x.webp
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-animation@3x.webp b/src/quickcontrols2/imagine/images/progressbar-animation@3x.webp
deleted file mode 100644
index c2f94a74..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-animation@3x.webp
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-animation@4x.webp b/src/quickcontrols2/imagine/images/progressbar-animation@4x.webp
deleted file mode 100644
index d49657e9..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-animation@4x.webp
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-background.9.png b/src/quickcontrols2/imagine/images/progressbar-background.9.png
deleted file mode 100644
index e1760070..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-background@2x.9.png b/src/quickcontrols2/imagine/images/progressbar-background@2x.9.png
deleted file mode 100644
index e69922d5..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-background@3x.9.png b/src/quickcontrols2/imagine/images/progressbar-background@3x.9.png
deleted file mode 100644
index b3c43205..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-background@4x.9.png b/src/quickcontrols2/imagine/images/progressbar-background@4x.9.png
deleted file mode 100644
index 905bdc32..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-mask.9.png b/src/quickcontrols2/imagine/images/progressbar-mask.9.png
deleted file mode 100644
index 35a47dc8..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-mask.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-mask@2x.9.png b/src/quickcontrols2/imagine/images/progressbar-mask@2x.9.png
deleted file mode 100644
index 23ed1a8c..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-mask@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-mask@3x.9.png b/src/quickcontrols2/imagine/images/progressbar-mask@3x.9.png
deleted file mode 100644
index 25bc843e..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-mask@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-mask@4x.9.png b/src/quickcontrols2/imagine/images/progressbar-mask@4x.9.png
deleted file mode 100644
index 645ff201..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-mask@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-progress.png b/src/quickcontrols2/imagine/images/progressbar-progress.png
deleted file mode 100644
index bb31dc9b..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-progress.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-progress@2x.png b/src/quickcontrols2/imagine/images/progressbar-progress@2x.png
deleted file mode 100644
index 6bb464c9..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-progress@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-progress@3x.png b/src/quickcontrols2/imagine/images/progressbar-progress@3x.png
deleted file mode 100644
index d514c727..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-progress@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/progressbar-progress@4x.png b/src/quickcontrols2/imagine/images/progressbar-progress@4x.png
deleted file mode 100644
index abc8fa67..00000000
--- a/src/quickcontrols2/imagine/images/progressbar-progress@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused.png
deleted file mode 100644
index 2f9e5e18..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@2x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@2x.png
deleted file mode 100644
index 47ec5534..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@3x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@3x.png
deleted file mode 100644
index 26cdebf8..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@4x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@4x.png
deleted file mode 100644
index 708e286e..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered.png
deleted file mode 100644
index 2f9e5e18..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@2x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@2x.png
deleted file mode 100644
index 47ec5534..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@3x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@3x.png
deleted file mode 100644
index 26cdebf8..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@4x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@4x.png
deleted file mode 100644
index 708e286e..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed.png
deleted file mode 100644
index 1e5ebca4..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@2x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@2x.png
deleted file mode 100644
index 6eaae9bf..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@3x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@3x.png
deleted file mode 100644
index e54a1624..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@4x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@4x.png
deleted file mode 100644
index 7a7850ba..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked.png
deleted file mode 100644
index 83c85623..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked@2x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked@2x.png
deleted file mode 100644
index 4bdeb456..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked@3x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked@3x.png
deleted file mode 100644
index 2230a8ce..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked@4x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-checked@4x.png
deleted file mode 100644
index e3dce04e..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-checked@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled.png
deleted file mode 100644
index 05b8bfca..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@2x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@2x.png
deleted file mode 100644
index e26fa5de..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@3x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@3x.png
deleted file mode 100644
index c47e8c7d..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@4x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@4x.png
deleted file mode 100644
index bc66dde7..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-focused.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-focused.png
deleted file mode 100644
index 3001638d..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-focused@2x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-focused@2x.png
deleted file mode 100644
index b9890714..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-focused@3x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-focused@3x.png
deleted file mode 100644
index b6221277..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-focused@4x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-focused@4x.png
deleted file mode 100644
index 49ae2206..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered.png
deleted file mode 100644
index 3001638d..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@2x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@2x.png
deleted file mode 100644
index b9890714..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@3x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@3x.png
deleted file mode 100644
index b6221277..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@4x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@4x.png
deleted file mode 100644
index 49ae2206..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed.png
deleted file mode 100644
index 76c7b4ed..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@2x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@2x.png
deleted file mode 100644
index d5d4cac6..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@3x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@3x.png
deleted file mode 100644
index ca2a1ed1..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@4x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@4x.png
deleted file mode 100644
index 1cb753d7..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator.png b/src/quickcontrols2/imagine/images/radiobutton-indicator.png
deleted file mode 100644
index c05d4bfc..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator@2x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator@2x.png
deleted file mode 100644
index 62744d27..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator@3x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator@3x.png
deleted file mode 100644
index fa5d241e..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiobutton-indicator@4x.png b/src/quickcontrols2/imagine/images/radiobutton-indicator@4x.png
deleted file mode 100644
index 7db85e94..00000000
--- a/src/quickcontrols2/imagine/images/radiobutton-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-disabled.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-disabled.9.png
deleted file mode 100644
index 23570729..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-disabled@2x.9.png
deleted file mode 100644
index c7abb65c..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-disabled@3x.9.png
deleted file mode 100644
index 46b84d7d..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-disabled@4x.9.png
deleted file mode 100644
index f4dfd338..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-focused.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-focused.9.png
deleted file mode 100644
index 6ae574d5..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-focused@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-focused@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-focused@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted.9.png
deleted file mode 100644
index e79d8e1d..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@2x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@2x.9.png
deleted file mode 100644
index ea68d35f..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@3x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@3x.9.png
deleted file mode 100644
index 6d610415..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@4x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@4x.9.png
deleted file mode 100644
index 590cca96..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-highlighted@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-hovered.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-hovered.9.png
deleted file mode 100644
index b8749743..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-hovered@2x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-hovered@2x.9.png
deleted file mode 100644
index 5a136a0c..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-hovered@3x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-hovered@3x.9.png
deleted file mode 100644
index f47a366b..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-hovered@4x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-hovered@4x.9.png
deleted file mode 100644
index 9ecb680f..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-pressed.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-pressed.9.png
deleted file mode 100644
index 6ae574d5..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-pressed@2x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-pressed@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-pressed@3x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-pressed@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background-pressed@4x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background-pressed@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background.9.png
deleted file mode 100644
index b8749743..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background@2x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background@2x.9.png
deleted file mode 100644
index 5a136a0c..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background@3x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background@3x.9.png
deleted file mode 100644
index f47a366b..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-background@4x.9.png b/src/quickcontrols2/imagine/images/radiodelegate-background@4x.9.png
deleted file mode 100644
index 9ecb680f..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused.png
deleted file mode 100644
index 2f9e5e18..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@2x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@2x.png
deleted file mode 100644
index 47ec5534..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@3x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@3x.png
deleted file mode 100644
index 26cdebf8..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@4x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@4x.png
deleted file mode 100644
index 708e286e..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered.png
deleted file mode 100644
index 2f9e5e18..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@2x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@2x.png
deleted file mode 100644
index 47ec5534..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@3x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@3x.png
deleted file mode 100644
index 26cdebf8..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@4x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@4x.png
deleted file mode 100644
index 708e286e..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed.png
deleted file mode 100644
index 1e5ebca4..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@2x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@2x.png
deleted file mode 100644
index 6eaae9bf..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@3x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@3x.png
deleted file mode 100644
index e54a1624..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@4x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@4x.png
deleted file mode 100644
index 7a7850ba..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked.png
deleted file mode 100644
index 83c85623..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@2x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@2x.png
deleted file mode 100644
index 4bdeb456..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@3x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@3x.png
deleted file mode 100644
index 2230a8ce..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@4x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@4x.png
deleted file mode 100644
index e3dce04e..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-checked@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled.png
deleted file mode 100644
index 05b8bfca..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@2x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@2x.png
deleted file mode 100644
index e26fa5de..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@3x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@3x.png
deleted file mode 100644
index c47e8c7d..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@4x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@4x.png
deleted file mode 100644
index bc66dde7..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused.png
deleted file mode 100644
index 3001638d..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@2x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@2x.png
deleted file mode 100644
index b9890714..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@3x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@3x.png
deleted file mode 100644
index b6221277..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@4x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@4x.png
deleted file mode 100644
index 49ae2206..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered.png
deleted file mode 100644
index 3001638d..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@2x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@2x.png
deleted file mode 100644
index b9890714..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@3x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@3x.png
deleted file mode 100644
index b6221277..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@4x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@4x.png
deleted file mode 100644
index 49ae2206..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed.png
deleted file mode 100644
index 76c7b4ed..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@2x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@2x.png
deleted file mode 100644
index d5d4cac6..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@3x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@3x.png
deleted file mode 100644
index ca2a1ed1..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@4x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@4x.png
deleted file mode 100644
index 1cb753d7..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator.png
deleted file mode 100644
index c05d4bfc..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator@2x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator@2x.png
deleted file mode 100644
index 62744d27..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator@3x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator@3x.png
deleted file mode 100644
index fa5d241e..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/radiodelegate-indicator@4x.png b/src/quickcontrols2/imagine/images/radiodelegate-indicator@4x.png
deleted file mode 100644
index 7db85e94..00000000
--- a/src/quickcontrols2/imagine/images/radiodelegate-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-background-horizontal.9.png b/src/quickcontrols2/imagine/images/rangeslider-background-horizontal.9.png
deleted file mode 100644
index c4e957ad..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-background-horizontal.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-background-horizontal@2x.9.png b/src/quickcontrols2/imagine/images/rangeslider-background-horizontal@2x.9.png
deleted file mode 100644
index 6d839113..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-background-horizontal@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-background-horizontal@3x.9.png b/src/quickcontrols2/imagine/images/rangeslider-background-horizontal@3x.9.png
deleted file mode 100644
index 6b2e634c..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-background-horizontal@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-background-horizontal@4x.9.png b/src/quickcontrols2/imagine/images/rangeslider-background-horizontal@4x.9.png
deleted file mode 100644
index 969c791a..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-background-horizontal@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-background-vertical.9.png b/src/quickcontrols2/imagine/images/rangeslider-background-vertical.9.png
deleted file mode 100644
index f76e0b21..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-background-vertical.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-background-vertical@2x.9.png b/src/quickcontrols2/imagine/images/rangeslider-background-vertical@2x.9.png
deleted file mode 100644
index fecd0ab2..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-background-vertical@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-background-vertical@3x.9.png b/src/quickcontrols2/imagine/images/rangeslider-background-vertical@3x.9.png
deleted file mode 100644
index 77a9c830..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-background-vertical@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-background-vertical@4x.9.png b/src/quickcontrols2/imagine/images/rangeslider-background-vertical@4x.9.png
deleted file mode 100644
index f1613684..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-background-vertical@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-disabled.png b/src/quickcontrols2/imagine/images/rangeslider-handle-disabled.png
deleted file mode 100644
index 4934fb77..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-disabled@2x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-disabled@2x.png
deleted file mode 100644
index 451b719e..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-disabled@3x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-disabled@3x.png
deleted file mode 100644
index 1daffca7..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-disabled@4x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-disabled@4x.png
deleted file mode 100644
index 64830707..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered.png
deleted file mode 100644
index c2958f1b..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@2x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@2x.png
deleted file mode 100644
index 12a4d1f8..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@3x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@3x.png
deleted file mode 100644
index 1696ac95..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@4x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@4x.png
deleted file mode 100644
index e1d13056..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed.png
deleted file mode 100644
index c2958f1b..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@2x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@2x.png
deleted file mode 100644
index 12a4d1f8..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@3x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@3x.png
deleted file mode 100644
index 1696ac95..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@4x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@4x.png
deleted file mode 100644
index e1d13056..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused.png
deleted file mode 100644
index bdf8239a..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused@2x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused@2x.png
deleted file mode 100644
index 9f887c5e..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused@3x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused@3x.png
deleted file mode 100644
index 8042d4c2..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-focused@4x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-focused@4x.png
deleted file mode 100644
index e7e68c47..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-hovered.png b/src/quickcontrols2/imagine/images/rangeslider-handle-hovered.png
deleted file mode 100644
index 4934fb77..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-hovered@2x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-hovered@2x.png
deleted file mode 100644
index 451b719e..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-hovered@3x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-hovered@3x.png
deleted file mode 100644
index 1daffca7..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-hovered@4x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-hovered@4x.png
deleted file mode 100644
index 64830707..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-pressed.png b/src/quickcontrols2/imagine/images/rangeslider-handle-pressed.png
deleted file mode 100644
index 4934fb77..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-pressed@2x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-pressed@2x.png
deleted file mode 100644
index 451b719e..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-pressed@3x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-pressed@3x.png
deleted file mode 100644
index 1daffca7..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle-pressed@4x.png b/src/quickcontrols2/imagine/images/rangeslider-handle-pressed@4x.png
deleted file mode 100644
index 64830707..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle.png b/src/quickcontrols2/imagine/images/rangeslider-handle.png
deleted file mode 100644
index fd72dedf..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle@2x.png b/src/quickcontrols2/imagine/images/rangeslider-handle@2x.png
deleted file mode 100644
index 57eed9f8..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle@3x.png b/src/quickcontrols2/imagine/images/rangeslider-handle@3x.png
deleted file mode 100644
index e217a644..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-handle@4x.png b/src/quickcontrols2/imagine/images/rangeslider-handle@4x.png
deleted file mode 100644
index c212b59f..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-handle@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled.9.png
deleted file mode 100644
index 7f7e6b93..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@2x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@2x.9.png
deleted file mode 100644
index cbf6fb63..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@3x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@3x.9.png
deleted file mode 100644
index 643776b8..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@4x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@4x.9.png
deleted file mode 100644
index d64acb90..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal.9.png
deleted file mode 100644
index 43192f54..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@2x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@2x.9.png
deleted file mode 100644
index ebbbbf82..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@3x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@3x.9.png
deleted file mode 100644
index 0a029b53..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@4x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@4x.9.png
deleted file mode 100644
index a1354169..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-horizontal@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled.9.png
deleted file mode 100644
index a4edafc9..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@2x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@2x.9.png
deleted file mode 100644
index 8c38226e..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@3x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@3x.9.png
deleted file mode 100644
index a939bffd..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@4x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@4x.9.png
deleted file mode 100644
index 9f653770..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-vertical.9.png
deleted file mode 100644
index d3e877fc..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical@2x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-vertical@2x.9.png
deleted file mode 100644
index 7790050e..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical@3x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-vertical@3x.9.png
deleted file mode 100644
index 039d1987..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical@4x.9.png b/src/quickcontrols2/imagine/images/rangeslider-progress-vertical@4x.9.png
deleted file mode 100644
index b3051d1f..00000000
--- a/src/quickcontrols2/imagine/images/rangeslider-progress-vertical@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused.png
deleted file mode 100644
index 032a7caa..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@2x.png
deleted file mode 100644
index a2944b6a..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@3x.png
deleted file mode 100644
index ffd4d210..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@4x.png
deleted file mode 100644
index 35a41fc5..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered.png
deleted file mode 100644
index 032a7caa..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@2x.png
deleted file mode 100644
index a2944b6a..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@3x.png
deleted file mode 100644
index ffd4d210..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@4x.png
deleted file mode 100644
index 35a41fc5..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked.png
deleted file mode 100644
index d57d3894..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked@2x.png
deleted file mode 100644
index 7c374528..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked@3x.png
deleted file mode 100644
index b0e0b9be..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-checked@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-checked@4x.png
deleted file mode 100644
index 748864ef..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-checked@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked.png b/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked.png
deleted file mode 100644
index e26fa5de..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@2x.png
deleted file mode 100644
index bc66dde7..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@3x.png
deleted file mode 100644
index a0c5f9ad..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@4x.png
deleted file mode 100644
index 190210c8..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-disabled-checked@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-disabled.png b/src/quickcontrols2/imagine/images/roundbutton-background-disabled.png
deleted file mode 100644
index e26fa5de..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-disabled@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-disabled@2x.png
deleted file mode 100644
index bc66dde7..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-disabled@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-disabled@3x.png
deleted file mode 100644
index a0c5f9ad..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-disabled@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-disabled@4x.png
deleted file mode 100644
index 190210c8..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-focused.png b/src/quickcontrols2/imagine/images/roundbutton-background-focused.png
deleted file mode 100644
index 832955c4..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-focused@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-focused@2x.png
deleted file mode 100644
index bb1ed2ac..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-focused@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-focused@3x.png
deleted file mode 100644
index cbf02913..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-focused@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-focused@4x.png
deleted file mode 100644
index 1c765dee..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused.png
deleted file mode 100644
index 269a9d52..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@2x.png
deleted file mode 100644
index bd795651..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@3x.png
deleted file mode 100644
index 5ed0f662..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@4x.png
deleted file mode 100644
index 5bbb8e7a..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered.png
deleted file mode 100644
index 269a9d52..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@2x.png
deleted file mode 100644
index bd795651..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@3x.png
deleted file mode 100644
index 5ed0f662..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@4x.png
deleted file mode 100644
index 5bbb8e7a..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed.png
deleted file mode 100644
index a0fa8df0..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@2x.png
deleted file mode 100644
index 3082a1d9..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@3x.png
deleted file mode 100644
index d32e8af0..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@4x.png
deleted file mode 100644
index f4916e0b..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted.png
deleted file mode 100644
index f90e29f9..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted@2x.png
deleted file mode 100644
index 7dce11b4..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted@3x.png
deleted file mode 100644
index 436abbdd..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-highlighted@4x.png
deleted file mode 100644
index e728d6fa..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-highlighted@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-hovered.png b/src/quickcontrols2/imagine/images/roundbutton-background-hovered.png
deleted file mode 100644
index 832955c4..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-hovered@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-hovered@2x.png
deleted file mode 100644
index bb1ed2ac..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-hovered@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-hovered@3x.png
deleted file mode 100644
index cbf02913..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-hovered@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-hovered@4x.png
deleted file mode 100644
index 1c765dee..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-pressed.png b/src/quickcontrols2/imagine/images/roundbutton-background-pressed.png
deleted file mode 100644
index d57d3894..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-pressed@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background-pressed@2x.png
deleted file mode 100644
index 7c374528..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-pressed@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background-pressed@3x.png
deleted file mode 100644
index b0e0b9be..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background-pressed@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background-pressed@4x.png
deleted file mode 100644
index 748864ef..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background.png b/src/quickcontrols2/imagine/images/roundbutton-background.png
deleted file mode 100644
index d5d4cac6..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background@2x.png b/src/quickcontrols2/imagine/images/roundbutton-background@2x.png
deleted file mode 100644
index 1cb753d7..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background@3x.png b/src/quickcontrols2/imagine/images/roundbutton-background@3x.png
deleted file mode 100644
index 6cc304bf..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/roundbutton-background@4x.png b/src/quickcontrols2/imagine/images/roundbutton-background@4x.png
deleted file mode 100644
index 56ea82f6..00000000
--- a/src/quickcontrols2/imagine/images/roundbutton-background@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-disabled.png b/src/quickcontrols2/imagine/images/scrollbar-handle-disabled.png
deleted file mode 100644
index b0b95bed..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-disabled@2x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-disabled@2x.png
deleted file mode 100644
index 8ab854b0..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-disabled@3x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-disabled@3x.png
deleted file mode 100644
index f3c97231..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-disabled@4x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-disabled@4x.png
deleted file mode 100644
index 325469b8..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled.png
deleted file mode 100644
index 236002ff..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@2x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@2x.png
deleted file mode 100644
index abc3d2c0..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@3x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@3x.png
deleted file mode 100644
index e215cf5b..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@4x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@4x.png
deleted file mode 100644
index c6ec0520..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered.png
deleted file mode 100644
index 19b48f1d..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@2x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@2x.png
deleted file mode 100644
index 8f5abb84..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@3x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@3x.png
deleted file mode 100644
index 73963d75..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@4x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@4x.png
deleted file mode 100644
index 04d6131e..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed.png
deleted file mode 100644
index f48f514d..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@2x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@2x.png
deleted file mode 100644
index e31820ad..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@3x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@3x.png
deleted file mode 100644
index 278ba900..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@4x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@4x.png
deleted file mode 100644
index 01e4e5c8..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive.png
deleted file mode 100644
index fd7832a6..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive@2x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive@2x.png
deleted file mode 100644
index bd63a1b1..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive@3x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive@3x.png
deleted file mode 100644
index 31452954..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive@4x.png b/src/quickcontrols2/imagine/images/scrollbar-handle-interactive@4x.png
deleted file mode 100644
index 6db4d81d..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle-interactive@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle.png b/src/quickcontrols2/imagine/images/scrollbar-handle.png
deleted file mode 100644
index 255f6c4d..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle@2x.png b/src/quickcontrols2/imagine/images/scrollbar-handle@2x.png
deleted file mode 100644
index 2b69cef6..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle@3x.png b/src/quickcontrols2/imagine/images/scrollbar-handle@3x.png
deleted file mode 100644
index 6fdfa487..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollbar-handle@4x.png b/src/quickcontrols2/imagine/images/scrollbar-handle@4x.png
deleted file mode 100644
index cc3205f1..00000000
--- a/src/quickcontrols2/imagine/images/scrollbar-handle@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollindicator-handle.png b/src/quickcontrols2/imagine/images/scrollindicator-handle.png
deleted file mode 100644
index 255f6c4d..00000000
--- a/src/quickcontrols2/imagine/images/scrollindicator-handle.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollindicator-handle@2x.png b/src/quickcontrols2/imagine/images/scrollindicator-handle@2x.png
deleted file mode 100644
index 2b69cef6..00000000
--- a/src/quickcontrols2/imagine/images/scrollindicator-handle@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollindicator-handle@3x.png b/src/quickcontrols2/imagine/images/scrollindicator-handle@3x.png
deleted file mode 100644
index 6fdfa487..00000000
--- a/src/quickcontrols2/imagine/images/scrollindicator-handle@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/scrollindicator-handle@4x.png b/src/quickcontrols2/imagine/images/scrollindicator-handle@4x.png
deleted file mode 100644
index cc3205f1..00000000
--- a/src/quickcontrols2/imagine/images/scrollindicator-handle@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-background-horizontal.9.png b/src/quickcontrols2/imagine/images/slider-background-horizontal.9.png
deleted file mode 100644
index c4e957ad..00000000
--- a/src/quickcontrols2/imagine/images/slider-background-horizontal.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-background-horizontal@2x.9.png b/src/quickcontrols2/imagine/images/slider-background-horizontal@2x.9.png
deleted file mode 100644
index 6d839113..00000000
--- a/src/quickcontrols2/imagine/images/slider-background-horizontal@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-background-horizontal@3x.9.png b/src/quickcontrols2/imagine/images/slider-background-horizontal@3x.9.png
deleted file mode 100644
index 6b2e634c..00000000
--- a/src/quickcontrols2/imagine/images/slider-background-horizontal@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-background-horizontal@4x.9.png b/src/quickcontrols2/imagine/images/slider-background-horizontal@4x.9.png
deleted file mode 100644
index 969c791a..00000000
--- a/src/quickcontrols2/imagine/images/slider-background-horizontal@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-background-vertical.9.png b/src/quickcontrols2/imagine/images/slider-background-vertical.9.png
deleted file mode 100644
index f76e0b21..00000000
--- a/src/quickcontrols2/imagine/images/slider-background-vertical.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-background-vertical@2x.9.png b/src/quickcontrols2/imagine/images/slider-background-vertical@2x.9.png
deleted file mode 100644
index fecd0ab2..00000000
--- a/src/quickcontrols2/imagine/images/slider-background-vertical@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-background-vertical@3x.9.png b/src/quickcontrols2/imagine/images/slider-background-vertical@3x.9.png
deleted file mode 100644
index 77a9c830..00000000
--- a/src/quickcontrols2/imagine/images/slider-background-vertical@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-background-vertical@4x.9.png b/src/quickcontrols2/imagine/images/slider-background-vertical@4x.9.png
deleted file mode 100644
index f1613684..00000000
--- a/src/quickcontrols2/imagine/images/slider-background-vertical@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-disabled.png b/src/quickcontrols2/imagine/images/slider-handle-disabled.png
deleted file mode 100644
index 4934fb77..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-disabled@2x.png b/src/quickcontrols2/imagine/images/slider-handle-disabled@2x.png
deleted file mode 100644
index 451b719e..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-disabled@3x.png b/src/quickcontrols2/imagine/images/slider-handle-disabled@3x.png
deleted file mode 100644
index 1daffca7..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-disabled@4x.png b/src/quickcontrols2/imagine/images/slider-handle-disabled@4x.png
deleted file mode 100644
index 64830707..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused-hovered.png b/src/quickcontrols2/imagine/images/slider-handle-focused-hovered.png
deleted file mode 100644
index c2958f1b..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused-hovered@2x.png b/src/quickcontrols2/imagine/images/slider-handle-focused-hovered@2x.png
deleted file mode 100644
index 12a4d1f8..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused-hovered@3x.png b/src/quickcontrols2/imagine/images/slider-handle-focused-hovered@3x.png
deleted file mode 100644
index 1696ac95..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused-hovered@4x.png b/src/quickcontrols2/imagine/images/slider-handle-focused-hovered@4x.png
deleted file mode 100644
index e1d13056..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused-pressed.png b/src/quickcontrols2/imagine/images/slider-handle-focused-pressed.png
deleted file mode 100644
index c2958f1b..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused-pressed@2x.png b/src/quickcontrols2/imagine/images/slider-handle-focused-pressed@2x.png
deleted file mode 100644
index 12a4d1f8..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused-pressed@3x.png b/src/quickcontrols2/imagine/images/slider-handle-focused-pressed@3x.png
deleted file mode 100644
index 1696ac95..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused-pressed@4x.png b/src/quickcontrols2/imagine/images/slider-handle-focused-pressed@4x.png
deleted file mode 100644
index e1d13056..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused.png b/src/quickcontrols2/imagine/images/slider-handle-focused.png
deleted file mode 100644
index bdf8239a..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused@2x.png b/src/quickcontrols2/imagine/images/slider-handle-focused@2x.png
deleted file mode 100644
index 9f887c5e..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused@3x.png b/src/quickcontrols2/imagine/images/slider-handle-focused@3x.png
deleted file mode 100644
index 8042d4c2..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-focused@4x.png b/src/quickcontrols2/imagine/images/slider-handle-focused@4x.png
deleted file mode 100644
index e7e68c47..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-hovered.png b/src/quickcontrols2/imagine/images/slider-handle-hovered.png
deleted file mode 100644
index 4934fb77..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-hovered@2x.png b/src/quickcontrols2/imagine/images/slider-handle-hovered@2x.png
deleted file mode 100644
index 451b719e..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-hovered@3x.png b/src/quickcontrols2/imagine/images/slider-handle-hovered@3x.png
deleted file mode 100644
index 1daffca7..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-hovered@4x.png b/src/quickcontrols2/imagine/images/slider-handle-hovered@4x.png
deleted file mode 100644
index 64830707..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-pressed.png b/src/quickcontrols2/imagine/images/slider-handle-pressed.png
deleted file mode 100644
index 4934fb77..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-pressed@2x.png b/src/quickcontrols2/imagine/images/slider-handle-pressed@2x.png
deleted file mode 100644
index 451b719e..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-pressed@3x.png b/src/quickcontrols2/imagine/images/slider-handle-pressed@3x.png
deleted file mode 100644
index 1daffca7..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle-pressed@4x.png b/src/quickcontrols2/imagine/images/slider-handle-pressed@4x.png
deleted file mode 100644
index 64830707..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle.png b/src/quickcontrols2/imagine/images/slider-handle.png
deleted file mode 100644
index fd72dedf..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle@2x.png b/src/quickcontrols2/imagine/images/slider-handle@2x.png
deleted file mode 100644
index 57eed9f8..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle@3x.png b/src/quickcontrols2/imagine/images/slider-handle@3x.png
deleted file mode 100644
index e217a644..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-handle@4x.png b/src/quickcontrols2/imagine/images/slider-handle@4x.png
deleted file mode 100644
index c212b59f..00000000
--- a/src/quickcontrols2/imagine/images/slider-handle@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled.9.png b/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled.9.png
deleted file mode 100644
index 7f7e6b93..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@2x.9.png b/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@2x.9.png
deleted file mode 100644
index cbf6fb63..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@3x.9.png b/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@3x.9.png
deleted file mode 100644
index 643776b8..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@4x.9.png b/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@4x.9.png
deleted file mode 100644
index d64acb90..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-horizontal-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-horizontal.9.png b/src/quickcontrols2/imagine/images/slider-progress-horizontal.9.png
deleted file mode 100644
index 43192f54..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-horizontal.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-horizontal@2x.9.png b/src/quickcontrols2/imagine/images/slider-progress-horizontal@2x.9.png
deleted file mode 100644
index ebbbbf82..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-horizontal@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-horizontal@3x.9.png b/src/quickcontrols2/imagine/images/slider-progress-horizontal@3x.9.png
deleted file mode 100644
index 0a029b53..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-horizontal@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-horizontal@4x.9.png b/src/quickcontrols2/imagine/images/slider-progress-horizontal@4x.9.png
deleted file mode 100644
index a1354169..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-horizontal@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled.9.png b/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled.9.png
deleted file mode 100644
index a4edafc9..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@2x.9.png b/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@2x.9.png
deleted file mode 100644
index 8c38226e..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@3x.9.png b/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@3x.9.png
deleted file mode 100644
index a939bffd..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@4x.9.png b/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@4x.9.png
deleted file mode 100644
index 9f653770..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-vertical-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-vertical.9.png b/src/quickcontrols2/imagine/images/slider-progress-vertical.9.png
deleted file mode 100644
index d3e877fc..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-vertical.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-vertical@2x.9.png b/src/quickcontrols2/imagine/images/slider-progress-vertical@2x.9.png
deleted file mode 100644
index 7790050e..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-vertical@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-vertical@3x.9.png b/src/quickcontrols2/imagine/images/slider-progress-vertical@3x.9.png
deleted file mode 100644
index 039d1987..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-vertical@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/slider-progress-vertical@4x.9.png b/src/quickcontrols2/imagine/images/slider-progress-vertical@4x.9.png
deleted file mode 100644
index b3051d1f..00000000
--- a/src/quickcontrols2/imagine/images/slider-progress-vertical@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-disabled.9.png b/src/quickcontrols2/imagine/images/spinbox-background-disabled.9.png
deleted file mode 100644
index 7baaeec5..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-background-disabled@2x.9.png
deleted file mode 100644
index e0d59070..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-background-disabled@3x.9.png
deleted file mode 100644
index 24b3054d..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-background-disabled@4x.9.png
deleted file mode 100644
index 8ac4740a..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-editable.9.png b/src/quickcontrols2/imagine/images/spinbox-background-editable.9.png
deleted file mode 100644
index 995c8276..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-editable.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-editable@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-background-editable@2x.9.png
deleted file mode 100644
index 42c9dd6b..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-editable@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-editable@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-background-editable@3x.9.png
deleted file mode 100644
index 4ee974a1..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-editable@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-editable@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-background-editable@4x.9.png
deleted file mode 100644
index 59b00915..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-editable@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-focused.9.png b/src/quickcontrols2/imagine/images/spinbox-background-focused.9.png
deleted file mode 100644
index 27751eac..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-background-focused@2x.9.png
deleted file mode 100644
index 1692578f..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-background-focused@3x.9.png
deleted file mode 100644
index 4c44c1bb..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-background-focused@4x.9.png
deleted file mode 100644
index f8632bf2..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background.9.png b/src/quickcontrols2/imagine/images/spinbox-background.9.png
deleted file mode 100644
index ae8b043b..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-background@2x.9.png
deleted file mode 100644
index eaae097e..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-background@3x.9.png
deleted file mode 100644
index d8add811..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-background@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-background@4x.9.png
deleted file mode 100644
index d954febf..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled.9.png
deleted file mode 100644
index b3953398..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@2x.9.png
deleted file mode 100644
index 18e2ca65..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@3x.9.png
deleted file mode 100644
index ed6674b4..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@4x.9.png
deleted file mode 100644
index 0da2cf93..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused.9.png
deleted file mode 100644
index 46220a8e..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@2x.9.png
deleted file mode 100644
index b8ebb7b7..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@3x.9.png
deleted file mode 100644
index 10561d8d..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@4x.9.png
deleted file mode 100644
index ccd09d69..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered.9.png
deleted file mode 100644
index 46220a8e..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@2x.9.png
deleted file mode 100644
index b8ebb7b7..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@3x.9.png
deleted file mode 100644
index 10561d8d..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@4x.9.png
deleted file mode 100644
index ccd09d69..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused.9.png
deleted file mode 100644
index 23842de4..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@2x.9.png
deleted file mode 100644
index e5078932..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@3x.9.png
deleted file mode 100644
index 7edec0c9..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@4x.9.png
deleted file mode 100644
index f6e5ff82..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered.9.png
deleted file mode 100644
index 23842de4..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@2x.9.png
deleted file mode 100644
index e5078932..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@3x.9.png
deleted file mode 100644
index 7edec0c9..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@4x.9.png
deleted file mode 100644
index f6e5ff82..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed.9.png
deleted file mode 100644
index b6917a03..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@2x.9.png
deleted file mode 100644
index 8999d3e4..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@3x.9.png
deleted file mode 100644
index 77aa0044..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@4x.9.png
deleted file mode 100644
index 4f2fd261..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored.9.png
deleted file mode 100644
index 3c3da5b1..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@2x.9.png
deleted file mode 100644
index e0760e07..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@3x.9.png
deleted file mode 100644
index c37080f5..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@4x.9.png
deleted file mode 100644
index bdc24823..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-mirrored@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed.9.png
deleted file mode 100644
index 65f2821b..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@2x.9.png
deleted file mode 100644
index 010dd9d0..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@3x.9.png
deleted file mode 100644
index f647f489..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@4x.9.png
deleted file mode 100644
index db0486d1..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable.9.png
deleted file mode 100644
index c3207f31..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@2x.9.png
deleted file mode 100644
index c8c2630e..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@3x.9.png
deleted file mode 100644
index d0a6c818..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@4x.9.png
deleted file mode 100644
index 40e89762..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-editable@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused.9.png
deleted file mode 100644
index 6ad31bb0..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@2x.9.png
deleted file mode 100644
index 6cc60b4b..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@3x.9.png
deleted file mode 100644
index 722c7ec7..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@4x.9.png
deleted file mode 100644
index 64fa4ab6..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered.9.png
deleted file mode 100644
index 6ad31bb0..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@2x.9.png
deleted file mode 100644
index 6cc60b4b..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@3x.9.png
deleted file mode 100644
index 722c7ec7..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@4x.9.png
deleted file mode 100644
index 64fa4ab6..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled.9.png
deleted file mode 100644
index ac7da20e..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@2x.9.png
deleted file mode 100644
index a12f3615..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@3x.9.png
deleted file mode 100644
index de11317b..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@4x.9.png
deleted file mode 100644
index 8be41f38..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused.9.png
deleted file mode 100644
index 6b6e5264..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@2x.9.png
deleted file mode 100644
index e0c36da3..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@3x.9.png
deleted file mode 100644
index ca2389da..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@4x.9.png
deleted file mode 100644
index 7e6c5474..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered.9.png
deleted file mode 100644
index 6b6e5264..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@2x.9.png
deleted file mode 100644
index e0c36da3..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@3x.9.png
deleted file mode 100644
index ca2389da..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@4x.9.png
deleted file mode 100644
index 7e6c5474..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed.9.png
deleted file mode 100644
index d756679f..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@2x.9.png
deleted file mode 100644
index e49c7e89..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@3x.9.png
deleted file mode 100644
index 6041ffdc..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@4x.9.png
deleted file mode 100644
index e23dda15..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored.9.png
deleted file mode 100644
index 58be2120..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@2x.9.png
deleted file mode 100644
index 709a1ab6..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@3x.9.png
deleted file mode 100644
index ee5b5b82..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@4x.9.png
deleted file mode 100644
index 1e88d44d..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-mirrored@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed.9.png
deleted file mode 100644
index 9703314b..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@2x.9.png
deleted file mode 100644
index 173eccfb..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@3x.9.png
deleted file mode 100644
index 77737c75..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@4x.9.png
deleted file mode 100644
index 6a2bb865..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down.9.png
deleted file mode 100644
index a6c9679a..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down@2x.9.png
deleted file mode 100644
index bd14cdbb..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down@3x.9.png
deleted file mode 100644
index 02d18c1d..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-down@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-down@4x.9.png
deleted file mode 100644
index 9ec1bf04..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-down@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled.9.png
deleted file mode 100644
index 5fe5ab6a..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@2x.9.png
deleted file mode 100644
index f7a2a5d5..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@3x.9.png
deleted file mode 100644
index 3244c93f..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@4x.9.png
deleted file mode 100644
index 82482005..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused.9.png
deleted file mode 100644
index d291c50a..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@2x.9.png
deleted file mode 100644
index 06e27b1b..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@3x.9.png
deleted file mode 100644
index 34b43735..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@4x.9.png
deleted file mode 100644
index 4a95cca4..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered.9.png
deleted file mode 100644
index d291c50a..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@2x.9.png
deleted file mode 100644
index 06e27b1b..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@3x.9.png
deleted file mode 100644
index 34b43735..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@4x.9.png
deleted file mode 100644
index 4a95cca4..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused.9.png
deleted file mode 100644
index a98d5a1d..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@2x.9.png
deleted file mode 100644
index 4b845860..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@3x.9.png
deleted file mode 100644
index da241c07..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@4x.9.png
deleted file mode 100644
index d1333671..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered.9.png
deleted file mode 100644
index a98d5a1d..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@2x.9.png
deleted file mode 100644
index 4b845860..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@3x.9.png
deleted file mode 100644
index da241c07..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@4x.9.png
deleted file mode 100644
index d1333671..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed.9.png
deleted file mode 100644
index 793e009d..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@2x.9.png
deleted file mode 100644
index aca00c57..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@3x.9.png
deleted file mode 100644
index a49b9549..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@4x.9.png
deleted file mode 100644
index e0814f3b..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored.9.png
deleted file mode 100644
index ac4c46d1..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@2x.9.png
deleted file mode 100644
index b1c335ee..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@3x.9.png
deleted file mode 100644
index 3f0d9f2f..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@4x.9.png
deleted file mode 100644
index cac6eca8..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-mirrored@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed.9.png
deleted file mode 100644
index 87a1ae7a..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@2x.9.png
deleted file mode 100644
index 95c5ea06..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@3x.9.png
deleted file mode 100644
index 3ed6cddf..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@4x.9.png
deleted file mode 100644
index 8f5e3f02..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable.9.png
deleted file mode 100644
index b3cc7bea..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@2x.9.png
deleted file mode 100644
index 51313f59..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@3x.9.png
deleted file mode 100644
index 8db540f5..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@4x.9.png
deleted file mode 100644
index 310400a2..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-editable@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused.9.png
deleted file mode 100644
index d88bd00d..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@2x.9.png
deleted file mode 100644
index 77dbb52a..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@3x.9.png
deleted file mode 100644
index 0739b1b1..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@4x.9.png
deleted file mode 100644
index d53ee543..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered.9.png
deleted file mode 100644
index d88bd00d..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@2x.9.png
deleted file mode 100644
index 77dbb52a..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@3x.9.png
deleted file mode 100644
index 0739b1b1..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@4x.9.png
deleted file mode 100644
index d53ee543..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled.9.png
deleted file mode 100644
index 53f6d7e5..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@2x.9.png
deleted file mode 100644
index 7c7bb214..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@3x.9.png
deleted file mode 100644
index 5a69027c..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@4x.9.png
deleted file mode 100644
index fe2171a5..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused.9.png
deleted file mode 100644
index cf31f936..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@2x.9.png
deleted file mode 100644
index 48b8861e..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@3x.9.png
deleted file mode 100644
index d6a41720..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@4x.9.png
deleted file mode 100644
index e0c7e374..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered.9.png
deleted file mode 100644
index cf31f936..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@2x.9.png
deleted file mode 100644
index 48b8861e..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@3x.9.png
deleted file mode 100644
index d6a41720..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@4x.9.png
deleted file mode 100644
index e0c7e374..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed.9.png
deleted file mode 100644
index 4548cddd..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@2x.9.png
deleted file mode 100644
index c5fb9d1b..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@3x.9.png
deleted file mode 100644
index ffbe520a..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@4x.9.png
deleted file mode 100644
index 784f9bee..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored.9.png
deleted file mode 100644
index f2679457..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@2x.9.png
deleted file mode 100644
index 7f07e625..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@3x.9.png
deleted file mode 100644
index 0b060816..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@4x.9.png
deleted file mode 100644
index df76dfce..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-mirrored@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed.9.png
deleted file mode 100644
index cbba897f..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@2x.9.png
deleted file mode 100644
index a49e11fa..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@3x.9.png
deleted file mode 100644
index 720e4543..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@4x.9.png
deleted file mode 100644
index 46333e3d..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up.9.png
deleted file mode 100644
index 67cbe434..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up@2x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up@2x.9.png
deleted file mode 100644
index 8e804b87..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up@3x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up@3x.9.png
deleted file mode 100644
index 15baec74..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/spinbox-indicator-up@4x.9.png b/src/quickcontrols2/imagine/images/spinbox-indicator-up@4x.9.png
deleted file mode 100644
index 7112de67..00000000
--- a/src/quickcontrols2/imagine/images/spinbox-indicator-up@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-disabled.png b/src/quickcontrols2/imagine/images/splitview-handle-disabled.png
deleted file mode 100644
index 8ab854b0..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-disabled@2x.png b/src/quickcontrols2/imagine/images/splitview-handle-disabled@2x.png
deleted file mode 100644
index 325469b8..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-disabled@3x.png b/src/quickcontrols2/imagine/images/splitview-handle-disabled@3x.png
deleted file mode 100644
index 5357e847..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-disabled@4x.png b/src/quickcontrols2/imagine/images/splitview-handle-disabled@4x.png
deleted file mode 100644
index e215cf5b..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-hovered.png b/src/quickcontrols2/imagine/images/splitview-handle-hovered.png
deleted file mode 100644
index 429d5508..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-hovered@2x.png b/src/quickcontrols2/imagine/images/splitview-handle-hovered@2x.png
deleted file mode 100644
index 6f17b06e..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-hovered@3x.png b/src/quickcontrols2/imagine/images/splitview-handle-hovered@3x.png
deleted file mode 100644
index 11dcfa26..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-hovered@4x.png b/src/quickcontrols2/imagine/images/splitview-handle-hovered@4x.png
deleted file mode 100644
index 73963d75..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-pressed.png b/src/quickcontrols2/imagine/images/splitview-handle-pressed.png
deleted file mode 100644
index 6e00db20..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-pressed@2x.png b/src/quickcontrols2/imagine/images/splitview-handle-pressed@2x.png
deleted file mode 100644
index e1392de6..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-pressed@3x.png b/src/quickcontrols2/imagine/images/splitview-handle-pressed@3x.png
deleted file mode 100644
index ff6a397f..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle-pressed@4x.png b/src/quickcontrols2/imagine/images/splitview-handle-pressed@4x.png
deleted file mode 100644
index 278ba900..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle.png b/src/quickcontrols2/imagine/images/splitview-handle.png
deleted file mode 100644
index 2b69cef6..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle@2x.png b/src/quickcontrols2/imagine/images/splitview-handle@2x.png
deleted file mode 100644
index cc3205f1..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle@3x.png b/src/quickcontrols2/imagine/images/splitview-handle@3x.png
deleted file mode 100644
index b8be2b4d..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/splitview-handle@4x.png b/src/quickcontrols2/imagine/images/splitview-handle@4x.png
deleted file mode 100644
index 31452954..00000000
--- a/src/quickcontrols2/imagine/images/splitview-handle@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-disabled.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-disabled.9.png
deleted file mode 100644
index 23570729..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-disabled@2x.9.png
deleted file mode 100644
index c7abb65c..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-disabled@3x.9.png
deleted file mode 100644
index 46b84d7d..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-disabled@4x.9.png
deleted file mode 100644
index f4dfd338..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-focused.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-focused.9.png
deleted file mode 100644
index 6ae574d5..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-focused@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-focused@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-focused@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted.9.png
deleted file mode 100644
index e79d8e1d..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@2x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@2x.9.png
deleted file mode 100644
index ea68d35f..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@3x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@3x.9.png
deleted file mode 100644
index 6d610415..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@4x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@4x.9.png
deleted file mode 100644
index 590cca96..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-highlighted@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-hovered.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-hovered.9.png
deleted file mode 100644
index b8749743..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-hovered@2x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-hovered@2x.9.png
deleted file mode 100644
index 5a136a0c..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-hovered@3x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-hovered@3x.9.png
deleted file mode 100644
index f47a366b..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-hovered@4x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-hovered@4x.9.png
deleted file mode 100644
index 9ecb680f..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-pressed.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-pressed.9.png
deleted file mode 100644
index 6ae574d5..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-pressed@2x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-pressed@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-pressed@3x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-pressed@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background-pressed@4x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background-pressed@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background.9.png
deleted file mode 100644
index b8749743..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background@2x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background@2x.9.png
deleted file mode 100644
index 5a136a0c..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background@3x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background@3x.9.png
deleted file mode 100644
index f47a366b..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/swipedelegate-background@4x.9.png b/src/quickcontrols2/imagine/images/swipedelegate-background@4x.9.png
deleted file mode 100644
index 9ecb680f..00000000
--- a/src/quickcontrols2/imagine/images/swipedelegate-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle-disabled.png b/src/quickcontrols2/imagine/images/switch-handle-disabled.png
deleted file mode 100644
index 595dd546..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle-disabled@2x.png b/src/quickcontrols2/imagine/images/switch-handle-disabled@2x.png
deleted file mode 100644
index 5be736aa..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle-disabled@3x.png b/src/quickcontrols2/imagine/images/switch-handle-disabled@3x.png
deleted file mode 100644
index c8002ca3..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle-disabled@4x.png b/src/quickcontrols2/imagine/images/switch-handle-disabled@4x.png
deleted file mode 100644
index 00e70c1b..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle-pressed.png b/src/quickcontrols2/imagine/images/switch-handle-pressed.png
deleted file mode 100644
index 595dd546..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle-pressed@2x.png b/src/quickcontrols2/imagine/images/switch-handle-pressed@2x.png
deleted file mode 100644
index 5be736aa..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle-pressed@3x.png b/src/quickcontrols2/imagine/images/switch-handle-pressed@3x.png
deleted file mode 100644
index c8002ca3..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle-pressed@4x.png b/src/quickcontrols2/imagine/images/switch-handle-pressed@4x.png
deleted file mode 100644
index 00e70c1b..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle.png b/src/quickcontrols2/imagine/images/switch-handle.png
deleted file mode 100644
index 15649c34..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle@2x.png b/src/quickcontrols2/imagine/images/switch-handle@2x.png
deleted file mode 100644
index 04f84ed9..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle@3x.png b/src/quickcontrols2/imagine/images/switch-handle@3x.png
deleted file mode 100644
index e0cfb637..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-handle@4x.png b/src/quickcontrols2/imagine/images/switch-handle@4x.png
deleted file mode 100644
index 73fa381a..00000000
--- a/src/quickcontrols2/imagine/images/switch-handle@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-focused.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-focused.png
deleted file mode 100644
index 7f5ba5df..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-focused@2x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-focused@2x.png
deleted file mode 100644
index a0090df4..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-focused@3x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-focused@3x.png
deleted file mode 100644
index 0c7e5264..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-focused@4x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-focused@4x.png
deleted file mode 100644
index 3a5e1d36..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered.png
deleted file mode 100644
index 7f5ba5df..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@2x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@2x.png
deleted file mode 100644
index a0090df4..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@3x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@3x.png
deleted file mode 100644
index 0c7e5264..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@4x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@4x.png
deleted file mode 100644
index 3a5e1d36..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed.png
deleted file mode 100644
index ecbc552a..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@2x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@2x.png
deleted file mode 100644
index 07fe7241..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@3x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@3x.png
deleted file mode 100644
index 8c65c27f..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@4x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@4x.png
deleted file mode 100644
index f6a1e476..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked.png b/src/quickcontrols2/imagine/images/switch-indicator-checked.png
deleted file mode 100644
index 2b7265cd..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked@2x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked@2x.png
deleted file mode 100644
index 6ec88c7f..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked@3x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked@3x.png
deleted file mode 100644
index 48c97985..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-checked@4x.png b/src/quickcontrols2/imagine/images/switch-indicator-checked@4x.png
deleted file mode 100644
index e9f81807..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-checked@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-disabled.png b/src/quickcontrols2/imagine/images/switch-indicator-disabled.png
deleted file mode 100644
index 9cfab791..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-disabled@2x.png b/src/quickcontrols2/imagine/images/switch-indicator-disabled@2x.png
deleted file mode 100644
index 3bbbb8df..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-disabled@3x.png b/src/quickcontrols2/imagine/images/switch-indicator-disabled@3x.png
deleted file mode 100644
index 80d9a746..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-disabled@4x.png b/src/quickcontrols2/imagine/images/switch-indicator-disabled@4x.png
deleted file mode 100644
index 9ee7bfab..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-focused.png b/src/quickcontrols2/imagine/images/switch-indicator-focused.png
deleted file mode 100644
index 4867bcac..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-focused@2x.png b/src/quickcontrols2/imagine/images/switch-indicator-focused@2x.png
deleted file mode 100644
index d833a0cd..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-focused@3x.png b/src/quickcontrols2/imagine/images/switch-indicator-focused@3x.png
deleted file mode 100644
index a632b6ae..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-focused@4x.png b/src/quickcontrols2/imagine/images/switch-indicator-focused@4x.png
deleted file mode 100644
index b5affab7..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-hovered.png b/src/quickcontrols2/imagine/images/switch-indicator-hovered.png
deleted file mode 100644
index 4867bcac..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-hovered@2x.png b/src/quickcontrols2/imagine/images/switch-indicator-hovered@2x.png
deleted file mode 100644
index d833a0cd..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-hovered@3x.png b/src/quickcontrols2/imagine/images/switch-indicator-hovered@3x.png
deleted file mode 100644
index a632b6ae..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-hovered@4x.png b/src/quickcontrols2/imagine/images/switch-indicator-hovered@4x.png
deleted file mode 100644
index b5affab7..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-pressed.png b/src/quickcontrols2/imagine/images/switch-indicator-pressed.png
deleted file mode 100644
index 4fbbc060..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-pressed@2x.png b/src/quickcontrols2/imagine/images/switch-indicator-pressed@2x.png
deleted file mode 100644
index 7939f943..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-pressed@3x.png b/src/quickcontrols2/imagine/images/switch-indicator-pressed@3x.png
deleted file mode 100644
index adcbe45b..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator-pressed@4x.png b/src/quickcontrols2/imagine/images/switch-indicator-pressed@4x.png
deleted file mode 100644
index 74c0c77e..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator.png b/src/quickcontrols2/imagine/images/switch-indicator.png
deleted file mode 100644
index b6b4f1cd..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator@2x.png b/src/quickcontrols2/imagine/images/switch-indicator@2x.png
deleted file mode 100644
index bfeedeb7..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator@3x.png b/src/quickcontrols2/imagine/images/switch-indicator@3x.png
deleted file mode 100644
index 19e5ba2c..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switch-indicator@4x.png b/src/quickcontrols2/imagine/images/switch-indicator@4x.png
deleted file mode 100644
index 9345cd4f..00000000
--- a/src/quickcontrols2/imagine/images/switch-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-disabled.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-disabled.9.png
deleted file mode 100644
index 23570729..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-disabled@2x.9.png
deleted file mode 100644
index c7abb65c..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-disabled@3x.9.png
deleted file mode 100644
index 46b84d7d..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-disabled@4x.9.png
deleted file mode 100644
index f4dfd338..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-focused.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-focused.9.png
deleted file mode 100644
index 6ae574d5..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-focused@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-focused@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-focused@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-hovered.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-hovered.9.png
deleted file mode 100644
index b8749743..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-hovered@2x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-hovered@2x.9.png
deleted file mode 100644
index 5a136a0c..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-hovered@3x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-hovered@3x.9.png
deleted file mode 100644
index f47a366b..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-hovered@4x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-hovered@4x.9.png
deleted file mode 100644
index 9ecb680f..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-pressed.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-pressed.9.png
deleted file mode 100644
index 6ae574d5..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-pressed@2x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-pressed@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-pressed@3x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-pressed@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background-pressed@4x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background-pressed@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background.9.png
deleted file mode 100644
index b8749743..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background@2x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background@2x.9.png
deleted file mode 100644
index 5a136a0c..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background@3x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background@3x.9.png
deleted file mode 100644
index f47a366b..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-background@4x.9.png b/src/quickcontrols2/imagine/images/switchdelegate-background@4x.9.png
deleted file mode 100644
index 9ecb680f..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled.png b/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled.png
deleted file mode 100644
index 595dd546..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@2x.png
deleted file mode 100644
index 5be736aa..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@3x.png
deleted file mode 100644
index c8002ca3..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@4x.png
deleted file mode 100644
index 00e70c1b..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed.png b/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed.png
deleted file mode 100644
index 595dd546..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@2x.png
deleted file mode 100644
index 5be736aa..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@3x.png
deleted file mode 100644
index c8002ca3..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@4x.png
deleted file mode 100644
index 00e70c1b..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle.png b/src/quickcontrols2/imagine/images/switchdelegate-handle.png
deleted file mode 100644
index 15649c34..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-handle@2x.png
deleted file mode 100644
index 04f84ed9..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-handle@3x.png
deleted file mode 100644
index e0cfb637..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-handle@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-handle@4x.png
deleted file mode 100644
index 73fa381a..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-handle@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused.png
deleted file mode 100644
index 7f5ba5df..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@2x.png
deleted file mode 100644
index a0090df4..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@3x.png
deleted file mode 100644
index 0c7e5264..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@4x.png
deleted file mode 100644
index 3a5e1d36..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered.png
deleted file mode 100644
index 7f5ba5df..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@2x.png
deleted file mode 100644
index a0090df4..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@3x.png
deleted file mode 100644
index 0c7e5264..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@4x.png
deleted file mode 100644
index 3a5e1d36..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed.png
deleted file mode 100644
index ecbc552a..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@2x.png
deleted file mode 100644
index 07fe7241..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@3x.png
deleted file mode 100644
index 8c65c27f..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@4x.png
deleted file mode 100644
index f6a1e476..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked.png
deleted file mode 100644
index 2b7265cd..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@2x.png
deleted file mode 100644
index 6ec88c7f..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@3x.png
deleted file mode 100644
index 48c97985..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@4x.png
deleted file mode 100644
index e9f81807..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-checked@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled.png
deleted file mode 100644
index 9cfab791..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@2x.png
deleted file mode 100644
index 3bbbb8df..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@3x.png
deleted file mode 100644
index 80d9a746..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@4x.png
deleted file mode 100644
index 9ee7bfab..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-disabled@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused.png
deleted file mode 100644
index 4867bcac..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@2x.png
deleted file mode 100644
index d833a0cd..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@3x.png
deleted file mode 100644
index a632b6ae..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@4x.png
deleted file mode 100644
index b5affab7..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-focused@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered.png
deleted file mode 100644
index 4867bcac..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@2x.png
deleted file mode 100644
index d833a0cd..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@3x.png
deleted file mode 100644
index a632b6ae..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@4x.png
deleted file mode 100644
index b5affab7..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-hovered@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed.png
deleted file mode 100644
index 4fbbc060..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@2x.png
deleted file mode 100644
index 7939f943..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@3x.png
deleted file mode 100644
index adcbe45b..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@4x.png
deleted file mode 100644
index 74c0c77e..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator-pressed@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator.png
deleted file mode 100644
index b6b4f1cd..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator@2x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator@2x.png
deleted file mode 100644
index bfeedeb7..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator@3x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator@3x.png
deleted file mode 100644
index 19e5ba2c..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/switchdelegate-indicator@4x.png b/src/quickcontrols2/imagine/images/switchdelegate-indicator@4x.png
deleted file mode 100644
index 9345cd4f..00000000
--- a/src/quickcontrols2/imagine/images/switchdelegate-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbar-background.png b/src/quickcontrols2/imagine/images/tabbar-background.png
deleted file mode 100644
index 002efded..00000000
--- a/src/quickcontrols2/imagine/images/tabbar-background.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbar-background@2x.png b/src/quickcontrols2/imagine/images/tabbar-background@2x.png
deleted file mode 100644
index aaa1cbaf..00000000
--- a/src/quickcontrols2/imagine/images/tabbar-background@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbar-background@3x.png b/src/quickcontrols2/imagine/images/tabbar-background@3x.png
deleted file mode 100644
index c4eb9e1f..00000000
--- a/src/quickcontrols2/imagine/images/tabbar-background@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbar-background@4x.png b/src/quickcontrols2/imagine/images/tabbar-background@4x.png
deleted file mode 100644
index 4a4e234a..00000000
--- a/src/quickcontrols2/imagine/images/tabbar-background@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-checked.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-checked.9.png
deleted file mode 100644
index d2f0fa76..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-checked.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-checked@2x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-checked@2x.9.png
deleted file mode 100644
index bee13292..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-checked@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-checked@3x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-checked@3x.9.png
deleted file mode 100644
index 70afb7d3..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-checked@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-checked@4x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-checked@4x.9.png
deleted file mode 100644
index 3a2015c4..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-checked@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked.9.png
deleted file mode 100644
index a6d3011b..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@2x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@2x.9.png
deleted file mode 100644
index 8ebfa026..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@3x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@3x.9.png
deleted file mode 100644
index 1d5a1d51..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@4x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@4x.9.png
deleted file mode 100644
index f06dc55f..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-disabled-checked@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-disabled.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-disabled.9.png
deleted file mode 100644
index a6d3011b..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-disabled@2x.9.png
deleted file mode 100644
index 8ebfa026..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-disabled@3x.9.png
deleted file mode 100644
index 1d5a1d51..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-disabled@4x.9.png
deleted file mode 100644
index f06dc55f..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-hovered.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-hovered.9.png
deleted file mode 100644
index 3f945184..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-hovered@2x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-hovered@2x.9.png
deleted file mode 100644
index 8a19720a..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-hovered@3x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-hovered@3x.9.png
deleted file mode 100644
index eadcf457..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-hovered@4x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-hovered@4x.9.png
deleted file mode 100644
index 8bf8e992..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-pressed.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-pressed.9.png
deleted file mode 100644
index d48733ed..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-pressed@2x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-pressed@2x.9.png
deleted file mode 100644
index fbbaad7b..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-pressed@3x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-pressed@3x.9.png
deleted file mode 100644
index 3a0ba70e..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background-pressed@4x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background-pressed@4x.9.png
deleted file mode 100644
index c04f124e..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background.9.png b/src/quickcontrols2/imagine/images/tabbutton-background.9.png
deleted file mode 100644
index 2266c722..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background@2x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background@2x.9.png
deleted file mode 100644
index b7adb7ad..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background@3x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background@3x.9.png
deleted file mode 100644
index d8f4eae5..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tabbutton-background@4x.9.png b/src/quickcontrols2/imagine/images/tabbutton-background@4x.9.png
deleted file mode 100644
index 066d35b3..00000000
--- a/src/quickcontrols2/imagine/images/tabbutton-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background-disabled.9.png b/src/quickcontrols2/imagine/images/textarea-background-disabled.9.png
deleted file mode 100644
index 97d48f8c..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/textarea-background-disabled@2x.9.png
deleted file mode 100644
index f9ea1d49..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/textarea-background-disabled@3x.9.png
deleted file mode 100644
index 04e7ef6f..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/textarea-background-disabled@4x.9.png
deleted file mode 100644
index feaaa3bc..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background-focused.9.png b/src/quickcontrols2/imagine/images/textarea-background-focused.9.png
deleted file mode 100644
index 1d73acfa..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/textarea-background-focused@2x.9.png
deleted file mode 100644
index 5be4cd6f..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/textarea-background-focused@3x.9.png
deleted file mode 100644
index 6ba3e246..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/textarea-background-focused@4x.9.png
deleted file mode 100644
index 366aa511..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background.9.png b/src/quickcontrols2/imagine/images/textarea-background.9.png
deleted file mode 100644
index 0b9ca9f3..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background@2x.9.png b/src/quickcontrols2/imagine/images/textarea-background@2x.9.png
deleted file mode 100644
index a806ed1b..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background@3x.9.png b/src/quickcontrols2/imagine/images/textarea-background@3x.9.png
deleted file mode 100644
index 547ef33c..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textarea-background@4x.9.png b/src/quickcontrols2/imagine/images/textarea-background@4x.9.png
deleted file mode 100644
index b759b1e8..00000000
--- a/src/quickcontrols2/imagine/images/textarea-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background-disabled.9.png b/src/quickcontrols2/imagine/images/textfield-background-disabled.9.png
deleted file mode 100644
index 312a1294..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background-disabled@2x.9.png b/src/quickcontrols2/imagine/images/textfield-background-disabled@2x.9.png
deleted file mode 100644
index 2c6c7e91..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background-disabled@3x.9.png b/src/quickcontrols2/imagine/images/textfield-background-disabled@3x.9.png
deleted file mode 100644
index 1d1aca71..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background-disabled@4x.9.png b/src/quickcontrols2/imagine/images/textfield-background-disabled@4x.9.png
deleted file mode 100644
index ed93182a..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background-focused.9.png b/src/quickcontrols2/imagine/images/textfield-background-focused.9.png
deleted file mode 100644
index 1251f4e4..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/textfield-background-focused@2x.9.png
deleted file mode 100644
index d535e8bc..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/textfield-background-focused@3x.9.png
deleted file mode 100644
index 9fca3bb2..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/textfield-background-focused@4x.9.png
deleted file mode 100644
index a275a52e..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background.9.png b/src/quickcontrols2/imagine/images/textfield-background.9.png
deleted file mode 100644
index 7ea60968..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background@2x.9.png b/src/quickcontrols2/imagine/images/textfield-background@2x.9.png
deleted file mode 100644
index 0a4c3f2a..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background@3x.9.png b/src/quickcontrols2/imagine/images/textfield-background@3x.9.png
deleted file mode 100644
index e8552741..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/textfield-background@4x.9.png b/src/quickcontrols2/imagine/images/textfield-background@4x.9.png
deleted file mode 100644
index 29ef5bb9..00000000
--- a/src/quickcontrols2/imagine/images/textfield-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbar-background.png b/src/quickcontrols2/imagine/images/toolbar-background.png
deleted file mode 100644
index 9c67cf27..00000000
--- a/src/quickcontrols2/imagine/images/toolbar-background.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbar-background@2x.png b/src/quickcontrols2/imagine/images/toolbar-background@2x.png
deleted file mode 100644
index b0602519..00000000
--- a/src/quickcontrols2/imagine/images/toolbar-background@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbar-background@3x.png b/src/quickcontrols2/imagine/images/toolbar-background@3x.png
deleted file mode 100644
index 7f227ca3..00000000
--- a/src/quickcontrols2/imagine/images/toolbar-background@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbar-background@4x.png b/src/quickcontrols2/imagine/images/toolbar-background@4x.png
deleted file mode 100644
index 4788ecc7..00000000
--- a/src/quickcontrols2/imagine/images/toolbar-background@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused.9.png
deleted file mode 100644
index 287a2872..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@2x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@2x.9.png
deleted file mode 100644
index aa844165..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@3x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@3x.9.png
deleted file mode 100644
index 8c682255..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@4x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@4x.9.png
deleted file mode 100644
index 89bdd096..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered.9.png
deleted file mode 100644
index 287a2872..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@2x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@2x.9.png
deleted file mode 100644
index aa844165..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@3x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@3x.9.png
deleted file mode 100644
index 8c682255..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@4x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@4x.9.png
deleted file mode 100644
index 89bdd096..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked.9.png
deleted file mode 100644
index 287a2872..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked@2x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked@2x.9.png
deleted file mode 100644
index aa844165..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked@3x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked@3x.9.png
deleted file mode 100644
index 8c682255..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-checked@4x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-checked@4x.9.png
deleted file mode 100644
index 89bdd096..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-checked@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked.9.png
deleted file mode 100644
index 287a2872..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@2x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@2x.9.png
deleted file mode 100644
index aa844165..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@3x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@3x.9.png
deleted file mode 100644
index 8c682255..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@4x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@4x.9.png
deleted file mode 100644
index 89bdd096..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-disabled-checked@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-focused.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-focused.9.png
deleted file mode 100644
index 287a2872..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-focused@2x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-focused@2x.9.png
deleted file mode 100644
index aa844165..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-focused@3x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-focused@3x.9.png
deleted file mode 100644
index 8c682255..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-focused@4x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-focused@4x.9.png
deleted file mode 100644
index 89bdd096..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-hovered.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-hovered.9.png
deleted file mode 100644
index 287a2872..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-hovered.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-hovered@2x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-hovered@2x.9.png
deleted file mode 100644
index aa844165..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-hovered@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-hovered@3x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-hovered@3x.9.png
deleted file mode 100644
index 8c682255..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-hovered@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-hovered@4x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-hovered@4x.9.png
deleted file mode 100644
index 89bdd096..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-hovered@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-pressed.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-pressed.9.png
deleted file mode 100644
index 287a2872..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-pressed@2x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-pressed@2x.9.png
deleted file mode 100644
index aa844165..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-pressed@3x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-pressed@3x.9.png
deleted file mode 100644
index 8c682255..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background-pressed@4x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background-pressed@4x.9.png
deleted file mode 100644
index 89bdd096..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background.9.png b/src/quickcontrols2/imagine/images/toolbutton-background.9.png
deleted file mode 100644
index 5a72a621..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background@2x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background@2x.9.png
deleted file mode 100644
index 688a071a..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background@3x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background@3x.9.png
deleted file mode 100644
index 64375a7e..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolbutton-background@4x.9.png b/src/quickcontrols2/imagine/images/toolbutton-background@4x.9.png
deleted file mode 100644
index 96004a10..00000000
--- a/src/quickcontrols2/imagine/images/toolbutton-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal.9.png b/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal.9.png
deleted file mode 100644
index 75e3e662..00000000
--- a/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@2x.9.png b/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@2x.9.png
deleted file mode 100644
index 3662dec9..00000000
--- a/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@3x.9.png b/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@3x.9.png
deleted file mode 100644
index 27714701..00000000
--- a/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@4x.9.png b/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@4x.9.png
deleted file mode 100644
index deeda9f5..00000000
--- a/src/quickcontrols2/imagine/images/toolseparator-separator-horizontal@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolseparator-separator-vertical.9.png b/src/quickcontrols2/imagine/images/toolseparator-separator-vertical.9.png
deleted file mode 100644
index 5b607aaf..00000000
--- a/src/quickcontrols2/imagine/images/toolseparator-separator-vertical.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolseparator-separator-vertical@2x.9.png b/src/quickcontrols2/imagine/images/toolseparator-separator-vertical@2x.9.png
deleted file mode 100644
index f5a11e04..00000000
--- a/src/quickcontrols2/imagine/images/toolseparator-separator-vertical@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolseparator-separator-vertical@3x.9.png b/src/quickcontrols2/imagine/images/toolseparator-separator-vertical@3x.9.png
deleted file mode 100644
index c957280f..00000000
--- a/src/quickcontrols2/imagine/images/toolseparator-separator-vertical@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/toolseparator-separator-vertical@4x.9.png b/src/quickcontrols2/imagine/images/toolseparator-separator-vertical@4x.9.png
deleted file mode 100644
index c888689d..00000000
--- a/src/quickcontrols2/imagine/images/toolseparator-separator-vertical@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tooltip-background.9.png b/src/quickcontrols2/imagine/images/tooltip-background.9.png
deleted file mode 100644
index 2e0dc67c..00000000
--- a/src/quickcontrols2/imagine/images/tooltip-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tooltip-background@2x.9.png b/src/quickcontrols2/imagine/images/tooltip-background@2x.9.png
deleted file mode 100644
index dd560998..00000000
--- a/src/quickcontrols2/imagine/images/tooltip-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tooltip-background@3x.9.png b/src/quickcontrols2/imagine/images/tooltip-background@3x.9.png
deleted file mode 100644
index fed46542..00000000
--- a/src/quickcontrols2/imagine/images/tooltip-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/images/tooltip-background@4x.9.png b/src/quickcontrols2/imagine/images/tooltip-background@4x.9.png
deleted file mode 100644
index 9bc96490..00000000
--- a/src/quickcontrols2/imagine/images/tooltip-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/imagine.pri b/src/quickcontrols2/imagine/imagine.pri
deleted file mode 100644
index 134aa2c3..00000000
--- a/src/quickcontrols2/imagine/imagine.pri
+++ /dev/null
@@ -1,58 +0,0 @@
-HEADERS += \
- $$PWD/qquickimaginestyle_p.h \
- $$PWD/qquickimaginetheme_p.h
-
-SOURCES += \
- $$PWD/qquickimaginestyle.cpp \
- $$PWD/qquickimaginetheme.cpp
-
-QML_FILES += \
- $$PWD/ApplicationWindow.qml \
- $$PWD/BusyIndicator.qml \
- $$PWD/Button.qml \
- $$PWD/CheckBox.qml \
- $$PWD/CheckDelegate.qml \
- $$PWD/ComboBox.qml \
- $$PWD/DelayButton.qml \
- $$PWD/Dial.qml \
- $$PWD/Dialog.qml \
- $$PWD/DialogButtonBox.qml \
- $$PWD/Drawer.qml \
- $$PWD/Frame.qml \
- $$PWD/GroupBox.qml \
- $$PWD/HorizontalHeaderView.qml \
- $$PWD/ItemDelegate.qml \
- $$PWD/Label.qml \
- $$PWD/Menu.qml \
- $$PWD/MenuItem.qml \
- $$PWD/MenuSeparator.qml \
- $$PWD/PageIndicator.qml \
- $$PWD/Page.qml \
- $$PWD/Pane.qml \
- $$PWD/Popup.qml \
- $$PWD/ProgressBar.qml \
- $$PWD/RadioButton.qml \
- $$PWD/RadioDelegate.qml \
- $$PWD/RangeSlider.qml \
- $$PWD/RoundButton.qml \
- $$PWD/ScrollView.qml \
- $$PWD/ScrollBar.qml \
- $$PWD/ScrollIndicator.qml \
- $$PWD/Slider.qml \
- $$PWD/SpinBox.qml \
- $$PWD/SplitView.qml \
- $$PWD/StackView.qml \
- $$PWD/SwipeDelegate.qml \
- $$PWD/SwipeView.qml \
- $$PWD/Switch.qml \
- $$PWD/SwitchDelegate.qml \
- $$PWD/TextField.qml \
- $$PWD/TextArea.qml \
- $$PWD/TabBar.qml \
- $$PWD/TabButton.qml \
- $$PWD/ToolBar.qml \
- $$PWD/ToolButton.qml \
- $$PWD/ToolSeparator.qml \
- $$PWD/ToolTip.qml \
- $$PWD/Tumbler.qml \
- $$PWD/VerticalHeaderView.qml
diff --git a/src/quickcontrols2/imagine/impl/CMakeLists.txt b/src/quickcontrols2/imagine/impl/CMakeLists.txt
deleted file mode 100644
index 87cfc332..00000000
--- a/src/quickcontrols2/imagine/impl/CMakeLists.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-#####################################################################
-## qtquickcontrols2imaginestyleimplplugin Plugin:
-#####################################################################
-
-set(qml_files
- "OpacityMask.qml"
-)
-set_source_files_properties(OpacityMask.qml PROPERTIES
- QT_QML_SOURCE_VERSION "6.0"
-)
-
-qt_internal_add_qml_module(qtquickcontrols2imaginestyleimplplugin
- URI "QtQuick.Controls.Imagine.impl"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2ImagineStyleImplPlugin
- PLUGIN_TARGET qtquickcontrols2imaginestyleimplplugin
- NO_PLUGIN_OPTIONAL
- SOURCES
- qquickimageselector.cpp qquickimageselector_p.h
- qquickninepatchimage.cpp qquickninepatchimage_p.h
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::Gui
- Qt::QmlPrivate
- Qt::QuickControls2ImplPrivate
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
-
-# Resources:
-set(qmake_qtquickcontrols2imaginestyleimplplugin_resource_files
- "shaders/+glslcore/OpacityMask.frag"
- "shaders/+qsb/OpacityMask.frag"
- "shaders/OpacityMask.frag"
-)
-
-qt_internal_add_resource(qtquickcontrols2imaginestyleimplplugin "qmake_qtquickcontrols2imaginestyleimplplugin"
- PREFIX
- "qt-project.org/imports/QtQuick/Controls/Imagine/impl"
- FILES
- ${qmake_qtquickcontrols2imaginestyleimplplugin_resource_files}
-)
diff --git a/src/quickcontrols2/imagine/impl/OpacityMask.qml b/src/quickcontrols2/imagine/impl/OpacityMask.qml
deleted file mode 100644
index 26663a1b..00000000
--- a/src/quickcontrols2/imagine/impl/OpacityMask.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-
-/*
- A cross-graphics API implementation of QtGraphicalEffects' OpacityMask.
- */
-Item {
- id: rootItem
-
- property variant source
- property variant maskSource
- property bool cached: false
-
- ShaderEffectSource {
- id: cacheItem
- anchors.fill: parent
- visible: rootItem.cached
- smooth: true
- sourceItem: shaderItem
- live: true
- hideSource: visible
- }
-
- ShaderEffect {
- id: shaderItem
- property variant source: rootItem.source
- property variant maskSource: rootItem.maskSource
-
- anchors.fill: parent
-
- fragmentShader: "qrc:/qt-project.org/imports/QtQuick/Controls/Imagine/impl/shaders/OpacityMask.frag"
- }
-}
diff --git a/src/quickcontrols2/imagine/impl/qquickimageselector.cpp b/src/quickcontrols2/imagine/impl/qquickimageselector.cpp
deleted file mode 100644
index dcb7738c..00000000
--- a/src/quickcontrols2/imagine/impl/qquickimageselector.cpp
+++ /dev/null
@@ -1,338 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickimageselector_p.h"
-
-#include <QtCore/qdir.h>
-#include <QtCore/qfileinfo.h>
-#include <QtCore/qcache.h>
-#include <QtCore/qloggingcategory.h>
-#include <QtCore/qfileselector.h>
-#include <QtQml/qqmlfile.h>
-#include <QtQml/private/qqmlproperty_p.h>
-#include <algorithm>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcQtQuickControlsImagine, "qt.quick.controls.imagine")
-
-static const int DEFAULT_CACHE = 500;
-
-static inline int cacheSize()
-{
- static bool ok = false;
- static const int size = qEnvironmentVariableIntValue("QT_QUICK_CONTROLS_IMAGINE_CACHE", &ok);
- return ok ? size : DEFAULT_CACHE;
-}
-
-// input: [focused, pressed]
-// => [[focused, pressed], [pressed, focused], [focused], [pressed]]
-static QList<QStringList> permutations(const QStringList &input, int count = -1)
-{
- if (count == -1)
- count = input.count();
-
- QList<QStringList> output;
- for (int i = 0; i < input.count(); ++i) {
- QStringList sub = input.mid(i, count);
-
- if (count > 1) {
- if (i + count > input.count())
- sub += input.mid(0, count - i + 1);
-
- std::sort(sub.begin(), sub.end());
- do {
- if (!sub.isEmpty())
- output += sub;
- } while (std::next_permutation(sub.begin(), sub.end()));
- } else {
- output += sub;
- }
-
- if (count == input.count())
- break;
- }
-
- if (count > 1)
- output += permutations(input, --count);
-
- return output;
-}
-
-static QString findFile(const QDir &dir, const QString &baseName, const QStringList &extensions)
-{
- for (const QString &ext : extensions) {
- QString filePath = dir.filePath(baseName + QLatin1Char('.') + ext);
- if (QFile::exists(filePath))
- return QFileSelector().select(filePath);
- }
- // return an empty string to indicate that the lookup has been done
- // even if no matching asset was found
- return QLatin1String("");
-}
-
-QQuickImageSelector::QQuickImageSelector(QObject *parent)
- : QObject(parent),
- m_cache(cacheSize() > 0)
-{
-}
-
-QUrl QQuickImageSelector::source() const
-{
- return m_source;
-}
-
-void QQuickImageSelector::setSource(const QUrl &source)
-{
- if (m_property.isValid())
- QQmlPropertyPrivate::write(m_property, source, QQmlPropertyData::BypassInterceptor | QQmlPropertyData::DontRemoveBinding);
- if (m_source == source)
- return;
-
- m_source = source;
- emit sourceChanged();
-}
-
-QString QQuickImageSelector::name() const
-{
- return m_name;
-}
-
-void QQuickImageSelector::setName(const QString &name)
-{
- if (m_name == name)
- return;
-
- m_name = name;
- if (m_complete)
- updateSource();
-}
-
-QString QQuickImageSelector::path() const
-{
- return m_path;
-}
-
-void QQuickImageSelector::setPath(const QString &path)
-{
- if (m_path == path)
- return;
-
- m_path = path;
- if (m_complete)
- updateSource();
-}
-
-QVariantList QQuickImageSelector::states() const
-{
- return m_allStates;
-}
-
-void QQuickImageSelector::setStates(const QVariantList &states)
-{
- if (m_allStates == states)
- return;
-
- m_allStates = states;
- if (updateActiveStates() && m_complete)
- updateSource();
-}
-
-QString QQuickImageSelector::separator() const
-{
- return m_separator;
-}
-
-void QQuickImageSelector::setSeparator(const QString &separator)
-{
- if (m_separator == separator)
- return;
-
- m_separator = separator;
- if (m_complete)
- updateSource();
-}
-
-bool QQuickImageSelector::cache() const
-{
- return m_cache;
-}
-
-void QQuickImageSelector::setCache(bool cache)
-{
- m_cache = cache;
-}
-
-void QQuickImageSelector::write(const QVariant &value)
-{
- setUrl(value.toUrl());
-}
-
-void QQuickImageSelector::setTarget(const QQmlProperty &property)
-{
- m_property = property;
-}
-
-void QQuickImageSelector::classBegin()
-{
-}
-
-void QQuickImageSelector::componentComplete()
-{
- setUrl(m_property.read().toUrl());
- m_complete = true;
- updateSource();
-}
-
-QStringList QQuickImageSelector::fileExtensions() const
-{
- static const QStringList extensions = QStringList() << QStringLiteral("png");
- return extensions;
-}
-
-QString QQuickImageSelector::cacheKey() const
-{
- if (!m_cache)
- return QString();
-
- return m_path + m_name + m_activeStates.join(m_separator);
-}
-
-void QQuickImageSelector::updateSource()
-{
- static QCache<QString, QString> cache(cacheSize());
-
- const QString key = cacheKey();
-
- QString bestFilePath;
-
- if (m_cache) {
- QString *cachedPath = cache.object(key);
- if (cachedPath)
- bestFilePath = *cachedPath;
- }
-
- // note: a cached file path may be empty
- if (bestFilePath.isNull()) {
- QDir dir(m_path);
- int bestScore = -1;
-
- const QStringList extensions = fileExtensions();
-
- const QList<QStringList> statePerms = permutations(m_activeStates);
- for (const QStringList &perm : statePerms) {
- const QString filePath = findFile(dir, m_name + m_separator + perm.join(m_separator), extensions);
- if (!filePath.isEmpty()) {
- int score = calculateScore(perm);
- if (score > bestScore) {
- bestScore = score;
- bestFilePath = filePath;
- }
- }
- }
-
- if (bestFilePath.isEmpty())
- bestFilePath = findFile(dir, m_name, extensions);
-
- if (m_cache)
- cache.insert(key, new QString(bestFilePath));
- }
-
- qCDebug(lcQtQuickControlsImagine) << m_name << m_activeStates << "->" << bestFilePath;
-
- if (bestFilePath.startsWith(QLatin1Char(':')))
- setSource(QUrl(QLatin1String("qrc") + bestFilePath));
- else
- setSource(QUrl::fromLocalFile(bestFilePath));
-}
-
-void QQuickImageSelector::setUrl(const QUrl &url)
-{
- QFileInfo fileInfo(QQmlFile::urlToLocalFileOrQrc(url));
- setName(fileInfo.fileName());
- setPath(fileInfo.path());
-}
-
-bool QQuickImageSelector::updateActiveStates()
-{
- QStringList active;
- for (const QVariant &v : qAsConst(m_allStates)) {
- const QVariantMap state = v.toMap();
- if (state.isEmpty())
- continue;
- auto it = state.begin();
- if (it.value().toBool())
- active += it.key();
- }
-
- if (m_activeStates == active)
- return false;
-
- m_activeStates = active;
- return true;
-}
-
-int QQuickImageSelector::calculateScore(const QStringList &states) const
-{
- int score = 0;
- for (int i = 0; i < states.count(); ++i)
- score += (m_activeStates.count() - m_activeStates.indexOf(states.at(i))) << 1;
- return score;
-}
-
-QQuickNinePatchImageSelector::QQuickNinePatchImageSelector(QObject *parent)
- : QQuickImageSelector(parent)
-{
-}
-
-QStringList QQuickNinePatchImageSelector::fileExtensions() const
-{
- static const QStringList extensions = QStringList() << QStringLiteral("9.png") << QStringLiteral("png");
- return extensions;
-}
-
-QQuickAnimatedImageSelector::QQuickAnimatedImageSelector(QObject *parent)
- : QQuickImageSelector(parent)
-{
-}
-
-QStringList QQuickAnimatedImageSelector::fileExtensions() const
-{
- static const QStringList extensions = QStringList() << QStringLiteral("webp") << QStringLiteral("gif");
- return extensions;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/imagine/impl/qquickimageselector_p.h b/src/quickcontrols2/imagine/impl/qquickimageselector_p.h
deleted file mode 100644
index 351caefb..00000000
--- a/src/quickcontrols2/imagine/impl/qquickimageselector_p.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKIMAGESELECTOR_P_H
-#define QQUICKIMAGESELECTOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qurl.h>
-#include <QtCore/qobject.h>
-#include <QtCore/qvariant.h>
-#include <QtQml/qqmlproperty.h>
-#include <QtQml/qqmlparserstatus.h>
-#include <QtQml/private/qqmlpropertyvalueinterceptor_p.h>
-#include <QtQml/qqmlproperty.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickImageSelector : public QObject, public QQmlParserStatus, public QQmlPropertyValueInterceptor
-{
- Q_OBJECT
- Q_PROPERTY(QUrl source READ source NOTIFY sourceChanged FINAL)
- Q_PROPERTY(QString name READ name WRITE setName FINAL)
- Q_PROPERTY(QString path READ path WRITE setPath FINAL)
- Q_PROPERTY(QVariantList states READ states WRITE setStates FINAL)
- Q_PROPERTY(QString separator READ separator WRITE setSeparator FINAL)
- Q_PROPERTY(bool cache READ cache WRITE setCache FINAL)
- Q_INTERFACES(QQmlParserStatus QQmlPropertyValueInterceptor)
- QML_NAMED_ELEMENT(ImageSelector)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickImageSelector(QObject *parent = nullptr);
-
- QUrl source() const;
- void setSource(const QUrl &source);
-
- QString name() const;
- void setName(const QString &name);
-
- QString path() const;
- void setPath(const QString &path);
-
- QVariantList states() const;
- void setStates(const QVariantList &states);
-
- QString separator() const;
- void setSeparator(const QString &separator);
-
- bool cache() const;
- void setCache(bool cache);
-
- void write(const QVariant &value) override;
- void setTarget(const QQmlProperty &property) override;
-
-Q_SIGNALS:
- void sourceChanged();
-
-protected:
- void classBegin() override;
- void componentComplete() override;
-
- virtual QStringList fileExtensions() const;
-
- QString cacheKey() const;
- void updateSource();
- void setUrl(const QUrl &url);
- bool updateActiveStates();
- int calculateScore(const QStringList &states) const;
-
-private:
- bool m_cache = false;
- bool m_complete = false;
- QUrl m_source;
- QString m_path;
- QString m_name;
- QString m_separator = QLatin1String("-");
- QVariantList m_allStates;
- QStringList m_activeStates;
- QQmlProperty m_property;
-};
-
-class QQuickNinePatchImageSelector : public QQuickImageSelector
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(NinePatchImageSelector)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickNinePatchImageSelector(QObject *parent = nullptr);
-
-protected:
- QStringList fileExtensions() const override;
-};
-
-class QQuickAnimatedImageSelector : public QQuickImageSelector
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(AnimatedImageSelector)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickAnimatedImageSelector(QObject *parent = nullptr);
-
-protected:
- QStringList fileExtensions() const override;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickImageSelector)
-QML_DECLARE_TYPE(QQuickAnimatedImageSelector)
-
-#endif // QQUICKIMAGESELECTOR_P_H
diff --git a/src/quickcontrols2/imagine/impl/qquickninepatchimage.cpp b/src/quickcontrols2/imagine/impl/qquickninepatchimage.cpp
deleted file mode 100644
index 66404ba4..00000000
--- a/src/quickcontrols2/imagine/impl/qquickninepatchimage.cpp
+++ /dev/null
@@ -1,469 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickninepatchimage_p.h"
-
-#include <QtCore/qfileinfo.h>
-#include <QtQuick/qsggeometry.h>
-#include <QtQuick/qsgtexturematerial.h>
-#include <QtQuick/private/qsgnode_p.h>
-#include <QtQuick/private/qquickimage_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-struct QQuickNinePatchData
-{
- QList<qreal> coordsForSize(qreal count) const;
-
- inline bool isNull() const { return data.isEmpty(); }
- inline int count() const { return data.size(); }
- inline qreal at(int index) const { return data.at(index); }
- inline qreal size() const { return data.last(); }
-
- void fill(const QList<qreal> &coords, qreal count);
- void clear();
-
-private:
- bool inverted = false;
- QList<qreal> data;
-};
-
-QList<qreal> QQuickNinePatchData::coordsForSize(qreal size) const
-{
- // n = number of stretchable sections
- // We have to compensate when adding 0 and/or
- // the source image width to the divs vector.
- const int l = data.size();
- const int n = (inverted ? l - 1 : l) / 2;
- const qreal stretch = (size - data.last()) / n;
-
- QList<qreal> coords;
- coords.reserve(l);
- coords.append(0);
-
- bool stretched = !inverted;
- for (int i = 1; i < l; ++i) {
- qreal advance = data[i] - data[i - 1];
- if (stretched)
- advance += stretch;
- coords.append(coords.last() + advance);
-
- stretched = !stretched;
- }
-
- return coords;
-}
-
-void QQuickNinePatchData::fill(const QList<qreal> &coords, qreal size)
-{
- data.clear();
- inverted = coords.isEmpty() || coords.first() != 0;
-
- // Reserve an extra item in case we need to add the image width/height
- if (inverted) {
- data.reserve(coords.size() + 2);
- data.append(0);
- } else {
- data.reserve(coords.size() + 1);
- }
-
- data += coords;
- data.append(size);
-}
-
-void QQuickNinePatchData::clear()
-{
- data.clear();
-}
-
-class QQuickNinePatchNode : public QSGGeometryNode
-{
-public:
- QQuickNinePatchNode();
- ~QQuickNinePatchNode();
-
- void initialize(QSGTexture *texture, const QSizeF &targetSize, const QSize &sourceSize,
- const QQuickNinePatchData &xDivs, const QQuickNinePatchData &yDivs, qreal dpr);
-
-private:
- QSGGeometry m_geometry;
- QSGTextureMaterial m_material;
-};
-
-QQuickNinePatchNode::QQuickNinePatchNode()
- : m_geometry(QSGGeometry::defaultAttributes_TexturedPoint2D(), 4)
-{
- m_geometry.setDrawingMode(QSGGeometry::DrawTriangles);
- setGeometry(&m_geometry);
- setMaterial(&m_material);
-}
-
-QQuickNinePatchNode::~QQuickNinePatchNode()
-{
- delete m_material.texture();
-}
-
-void QQuickNinePatchNode::initialize(QSGTexture *texture, const QSizeF &targetSize, const QSize &sourceSize,
- const QQuickNinePatchData &xDivs, const QQuickNinePatchData &yDivs, qreal dpr)
-{
- delete m_material.texture();
- m_material.setTexture(texture);
-
- const int xlen = xDivs.count();
- const int ylen = yDivs.count();
-
- if (xlen > 0 && ylen > 0) {
- const int quads = (xlen - 1) * (ylen - 1);
- static const int verticesPerQuad = 6;
- m_geometry.allocate(xlen * ylen, verticesPerQuad * quads);
-
- QSGGeometry::TexturedPoint2D *vertices = m_geometry.vertexDataAsTexturedPoint2D();
- QList<qreal> xCoords = xDivs.coordsForSize(targetSize.width());
- QList<qreal> yCoords = yDivs.coordsForSize(targetSize.height());
-
- for (int y = 0; y < ylen; ++y) {
- for (int x = 0; x < xlen; ++x, ++vertices)
- vertices->set(xCoords[x] / dpr, yCoords[y] / dpr,
- xDivs.at(x) / sourceSize.width(),
- yDivs.at(y) / sourceSize.height());
- }
-
- quint16 *indices = m_geometry.indexDataAsUShort();
- int n = quads;
- for (int q = 0; n--; ++q) {
- if ((q + 1) % xlen == 0) // next row
- ++q;
- // Bottom-left half quad triangle
- indices[0] = q;
- indices[1] = q + xlen;
- indices[2] = q + xlen + 1;
-
- // Top-right half quad triangle
- indices[3] = q;
- indices[4] = q + xlen + 1;
- indices[5] = q + 1;
-
- indices += verticesPerQuad;
- }
- }
-
- markDirty(QSGNode::DirtyGeometry | QSGNode::DirtyMaterial);
-}
-
-class QQuickNinePatchImagePrivate : public QQuickImagePrivate
-{
- Q_DECLARE_PUBLIC(QQuickNinePatchImage)
-
-public:
- void updatePatches();
- void updatePaddings(const QSizeF &size, const QList<qreal> &horizontal, const QList<qreal> &vertical);
- void updateInsets(const QList<qreal> &horizontal, const QList<qreal> &vertical);
-
- bool resetNode = false;
- qreal topPadding = 0;
- qreal leftPadding = 0;
- qreal rightPadding = 0;
- qreal bottomPadding = 0;
- qreal topInset = 0;
- qreal leftInset = 0;
- qreal rightInset = 0;
- qreal bottomInset = 0;
-
- QImage ninePatch;
- QQuickNinePatchData xDivs;
- QQuickNinePatchData yDivs;
-};
-
-static QList<qreal> readCoords(const QRgb *data, int from, int count, int offset, QRgb color)
-{
- int p1 = -1;
- QList<qreal> coords;
- for (int i = 0; i < count; ++i) {
- int p2 = from + i * offset;
- if (data[p2] == color) {
- // colored pixel
- if (p1 == -1)
- p1 = i;
- } else {
- // empty pixel
- if (p1 != -1) {
- coords << p1 << i;
- p1 = -1;
- }
- }
- }
- return coords;
-}
-
-void QQuickNinePatchImagePrivate::updatePatches()
-{
- if (ninePatch.isNull())
- return;
-
- int w = ninePatch.width();
- int h = ninePatch.height();
- const QRgb *data = reinterpret_cast<const QRgb *>(ninePatch.constBits());
-
- const QRgb black = qRgb(0,0,0);
- const QRgb red = qRgb(255,0,0);
-
- xDivs.fill(readCoords(data, 1, w - 1, 1, black), w - 2); // top left -> top right
- yDivs.fill(readCoords(data, w, h - 1, w, black), h - 2); // top left -> bottom left
-
- QList<qreal> hInsets = readCoords(data, (h - 1) * w + 1, w - 1, 1, red); // bottom left -> bottom right
- QList<qreal> vInsets = readCoords(data, 2 * w - 1, h - 1, w, red); // top right -> bottom right
- updateInsets(hInsets, vInsets);
-
- const QSizeF sz(w - leftInset - rightInset, h - topInset - bottomInset);
- QList<qreal> hPaddings = readCoords(data, (h - 1) * w + leftInset + 1, sz.width() - 2, 1, black); // bottom left -> bottom right
- QList<qreal> vPaddings = readCoords(data, (2 + topInset) * w - 1, sz.height() - 2, w, black); // top right -> bottom right
- updatePaddings(sz, hPaddings, vPaddings);
-}
-
-void QQuickNinePatchImagePrivate::updatePaddings(const QSizeF &size, const QList<qreal> &horizontal, const QList<qreal> &vertical)
-{
- Q_Q(QQuickNinePatchImage);
- qreal oldTopPadding = topPadding;
- qreal oldLeftPadding = leftPadding;
- qreal oldRightPadding = rightPadding;
- qreal oldBottomPadding = bottomPadding;
-
- if (horizontal.count() >= 2) {
- leftPadding = horizontal.first();
- rightPadding = size.width() - horizontal.last() - 2;
- } else {
- leftPadding = 0;
- rightPadding = 0;
- }
-
- if (vertical.count() >= 2) {
- topPadding = vertical.first();
- bottomPadding = size.height() - vertical.last() - 2;
- } else {
- topPadding = 0;
- bottomPadding = 0;
- }
-
- if (!qFuzzyCompare(oldTopPadding, topPadding))
- emit q->topPaddingChanged();
- if (!qFuzzyCompare(oldBottomPadding, bottomPadding))
- emit q->bottomPaddingChanged();
- if (!qFuzzyCompare(oldLeftPadding, leftPadding))
- emit q->leftPaddingChanged();
- if (!qFuzzyCompare(oldRightPadding, rightPadding))
- emit q->rightPaddingChanged();
-}
-
-void QQuickNinePatchImagePrivate::updateInsets(const QList<qreal> &horizontal, const QList<qreal> &vertical)
-{
- Q_Q(QQuickNinePatchImage);
- qreal oldTopInset = topInset;
- qreal oldLeftInset = leftInset;
- qreal oldRightInset = rightInset;
- qreal oldBottomInset = bottomInset;
-
- if (horizontal.count() >= 2 && horizontal.first() == 0)
- leftInset = horizontal.at(1);
- else
- leftInset = 0;
-
- if (horizontal.count() == 2 && horizontal.first() > 0)
- rightInset = horizontal.last() - horizontal.first();
- else if (horizontal.count() == 4)
- rightInset = horizontal.last() - horizontal.at(2);
- else
- rightInset = 0;
-
- if (vertical.count() >= 2 && vertical.first() == 0)
- topInset = vertical.at(1);
- else
- topInset = 0;
-
- if (vertical.count() == 2 && vertical.first() > 0)
- bottomInset = vertical.last() - vertical.first();
- else if (vertical.count() == 4)
- bottomInset = vertical.last() - vertical.at(2);
- else
- bottomInset = 0;
-
- if (!qFuzzyCompare(oldTopInset, topInset))
- emit q->topInsetChanged();
- if (!qFuzzyCompare(oldBottomInset, bottomInset))
- emit q->bottomInsetChanged();
- if (!qFuzzyCompare(oldLeftInset, leftInset))
- emit q->leftInsetChanged();
- if (!qFuzzyCompare(oldRightInset, rightInset))
- emit q->rightInsetChanged();
-}
-
-QQuickNinePatchImage::QQuickNinePatchImage(QQuickItem *parent)
- : QQuickImage(*(new QQuickNinePatchImagePrivate), parent)
-{
-}
-
-qreal QQuickNinePatchImage::topPadding() const
-{
- Q_D(const QQuickNinePatchImage);
- return d->topPadding / d->devicePixelRatio;
-}
-
-qreal QQuickNinePatchImage::leftPadding() const
-{
- Q_D(const QQuickNinePatchImage);
- return d->leftPadding / d->devicePixelRatio;
-}
-
-qreal QQuickNinePatchImage::rightPadding() const
-{
- Q_D(const QQuickNinePatchImage);
- return d->rightPadding / d->devicePixelRatio;
-}
-
-qreal QQuickNinePatchImage::bottomPadding() const
-{
- Q_D(const QQuickNinePatchImage);
- return d->bottomPadding / d->devicePixelRatio;
-}
-
-qreal QQuickNinePatchImage::topInset() const
-{
- Q_D(const QQuickNinePatchImage);
- return d->topInset / d->devicePixelRatio;
-}
-
-qreal QQuickNinePatchImage::leftInset() const
-{
- Q_D(const QQuickNinePatchImage);
- return d->leftInset / d->devicePixelRatio;
-}
-
-qreal QQuickNinePatchImage::rightInset() const
-{
- Q_D(const QQuickNinePatchImage);
- return d->rightInset / d->devicePixelRatio;
-}
-
-qreal QQuickNinePatchImage::bottomInset() const
-{
- Q_D(const QQuickNinePatchImage);
- return d->bottomInset / d->devicePixelRatio;
-}
-
-void QQuickNinePatchImage::pixmapChange()
-{
- Q_D(QQuickNinePatchImage);
- if (QFileInfo(d->url.fileName()).completeSuffix().toLower() == QLatin1String("9.png")) {
- // Keep resetNode if it is already set, we do not want to miss an
- // ImageNode->NinePatchNode change. Without this there's a chance one gets
- // an incorrect cast on oldNode every once in a while with source changes.
- if (!d->resetNode)
- d->resetNode = d->ninePatch.isNull();
-
- d->ninePatch = d->pix.image();
- if (d->ninePatch.depth() != 32)
- d->ninePatch = d->ninePatch.convertToFormat(QImage::Format_ARGB32);
-
- int w = d->ninePatch.width();
- int h = d->ninePatch.height();
- d->pix.setImage(QImage(d->ninePatch.constBits() + 4 * (w + 1), w - 2, h - 2, d->ninePatch.bytesPerLine(), d->ninePatch.format()));
-
- d->updatePatches();
- } else {
- /*
- Only change resetNode when it's false; i.e. when no reset is pending.
- updatePaintNode() will take care of setting it to false if it's true.
-
- Consider the following changes in source:
-
- normal.png => press.9.png => normal.png => focus.png
-
- If the last two events happen quickly, pixmapChange() can be called
- twice with no call to updatePaintNode() inbetween. On the first call,
- resetNode will be true (because ninePatch is not null since it is still
- in the process of going from a 9-patch image to a regular image),
- and on the second call, resetNode would be false if we didn't have this check.
- This results in the oldNode never being deleted, and QQuickImage
- tries to static_cast a QQuickNinePatchImage to a QSGInternalImageNode.
- */
- if (!d->resetNode)
- d->resetNode = !d->ninePatch.isNull();
- d->ninePatch = QImage();
- }
- QQuickImage::pixmapChange();
-}
-
-QSGNode *QQuickNinePatchImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data)
-{
- Q_D(QQuickNinePatchImage);
- Q_UNUSED(data);
-
- if (d->resetNode) {
- delete oldNode;
- oldNode = nullptr;
- d->resetNode = false;
- }
-
- QSizeF sz = size();
- QImage image = d->pix.image();
- if (!sz.isValid() || image.isNull()) {
- delete oldNode;
- return nullptr;
- }
-
- if (d->ninePatch.isNull())
- return QQuickImage::updatePaintNode(oldNode, data);
-
- QQuickNinePatchNode *patchNode = static_cast<QQuickNinePatchNode *>(oldNode);
- if (!patchNode)
- patchNode = new QQuickNinePatchNode;
-
-#ifdef QSG_RUNTIME_DESCRIPTION
- qsgnode_set_description(patchNode, QString::fromLatin1("QQuickNinePatchImage: '%1'").arg(d->url.toString()));
-#endif
-
- // The image may wrap non-owned data (due to pixmapChange). Ensure we never
- // pass such an image to the scenegraph, because with a separate render
- // thread the data may become invalid (in a subsequent pixmapChange on the
- // gui thread) by the time the renderer gets to do something with the QImage
- // passed in here.
- image.detach();
-
- QSGTexture *texture = window()->createTextureFromImage(image);
- patchNode->initialize(texture, sz * d->devicePixelRatio, image.size(), d->xDivs, d->yDivs, d->devicePixelRatio);
- return patchNode;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/imagine/impl/qquickninepatchimage_p.h b/src/quickcontrols2/imagine/impl/qquickninepatchimage_p.h
deleted file mode 100644
index 78cc3068..00000000
--- a/src/quickcontrols2/imagine/impl/qquickninepatchimage_p.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKNINEPATCHIMAGE_P_H
-#define QQUICKNINEPATCHIMAGE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquickimage_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickNinePatchImagePrivate;
-
-class QQuickNinePatchImage : public QQuickImage
-{
- Q_OBJECT
- Q_PROPERTY(qreal topPadding READ topPadding NOTIFY topPaddingChanged FINAL)
- Q_PROPERTY(qreal leftPadding READ leftPadding NOTIFY leftPaddingChanged FINAL)
- Q_PROPERTY(qreal rightPadding READ rightPadding NOTIFY rightPaddingChanged FINAL)
- Q_PROPERTY(qreal bottomPadding READ bottomPadding NOTIFY bottomPaddingChanged FINAL)
- Q_PROPERTY(qreal topInset READ topInset NOTIFY topInsetChanged FINAL)
- Q_PROPERTY(qreal leftInset READ leftInset NOTIFY leftInsetChanged FINAL)
- Q_PROPERTY(qreal rightInset READ rightInset NOTIFY rightInsetChanged FINAL)
- Q_PROPERTY(qreal bottomInset READ bottomInset NOTIFY bottomInsetChanged FINAL)
- QML_NAMED_ELEMENT(NinePatchImage)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickNinePatchImage(QQuickItem *parent = nullptr);
-
- qreal topPadding() const;
- qreal leftPadding() const;
- qreal rightPadding() const;
- qreal bottomPadding() const;
-
- qreal topInset() const;
- qreal leftInset() const;
- qreal rightInset() const;
- qreal bottomInset() const;
-
-Q_SIGNALS:
- void topPaddingChanged();
- void leftPaddingChanged();
- void rightPaddingChanged();
- void bottomPaddingChanged();
-
- void topInsetChanged();
- void leftInsetChanged();
- void rightInsetChanged();
- void bottomInsetChanged();
-
-protected:
- void pixmapChange() override;
- QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data) override;
-
-private:
- Q_DISABLE_COPY(QQuickNinePatchImage)
- Q_DECLARE_PRIVATE(QQuickNinePatchImage)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickNinePatchImage)
-
-#endif // QQUICKNINEPATCHIMAGE_P_H
diff --git a/src/quickcontrols2/imagine/impl/shaders/+glslcore/OpacityMask.frag b/src/quickcontrols2/imagine/impl/shaders/+glslcore/OpacityMask.frag
deleted file mode 100644
index 529e2696..00000000
--- a/src/quickcontrols2/imagine/impl/shaders/+glslcore/OpacityMask.frag
+++ /dev/null
@@ -1,13 +0,0 @@
-#version 150
-
-uniform float qt_Opacity;
-uniform sampler2D source;
-uniform sampler2D maskSource;
-
-in vec2 qt_TexCoord0;
-out vec4 fragColor;
-
-void main()
-{
- fragColor = texture(source, qt_TexCoord0.st) * (texture(maskSource, qt_TexCoord0.st).a) * qt_Opacity;
-}
diff --git a/src/quickcontrols2/imagine/impl/shaders/+qsb/OpacityMask.frag b/src/quickcontrols2/imagine/impl/shaders/+qsb/OpacityMask.frag
deleted file mode 100644
index 331b30b8..00000000
--- a/src/quickcontrols2/imagine/impl/shaders/+qsb/OpacityMask.frag
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/imagine/impl/shaders/OpacityMask.frag b/src/quickcontrols2/imagine/impl/shaders/OpacityMask.frag
deleted file mode 100644
index 84f9bc3e..00000000
--- a/src/quickcontrols2/imagine/impl/shaders/OpacityMask.frag
+++ /dev/null
@@ -1,7 +0,0 @@
-varying highp vec2 qt_TexCoord0;
-uniform highp float qt_Opacity;
-uniform lowp sampler2D source;
-uniform lowp sampler2D maskSource;
-void main(void) {
- gl_FragColor = texture2D(source, qt_TexCoord0.st) * (texture2D(maskSource, qt_TexCoord0.st).a) * qt_Opacity;
-}
diff --git a/src/quickcontrols2/imagine/impl/shaders/OpacityMask_rhi.frag b/src/quickcontrols2/imagine/impl/shaders/OpacityMask_rhi.frag
deleted file mode 100644
index 9ae32499..00000000
--- a/src/quickcontrols2/imagine/impl/shaders/OpacityMask_rhi.frag
+++ /dev/null
@@ -1,17 +0,0 @@
-#version 440
-
-layout(location = 0) in vec2 qt_TexCoord0;
-layout(location = 0) out vec4 fragColor;
-
-layout(std140, binding = 0) uniform buf {
- mat4 qt_Matrix;
- float qt_Opacity;
-} ubuf;
-
-layout(binding = 1) uniform sampler2D source;
-layout(binding = 2) uniform sampler2D maskSource;
-
-void main()
-{
- fragColor = texture(source, qt_TexCoord0.st) * (texture(maskSource, qt_TexCoord0.st).a) * ubuf.qt_Opacity;
-}
diff --git a/src/quickcontrols2/imagine/impl/shaders/compile.bat b/src/quickcontrols2/imagine/impl/shaders/compile.bat
deleted file mode 100644
index 8f16d7ac..00000000
--- a/src/quickcontrols2/imagine/impl/shaders/compile.bat
+++ /dev/null
@@ -1,40 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2020 The Qt Company Ltd.
-:: Contact: https://www.qt.io/licensing/
-::
-:: This file is part of the QtQuick module of the Qt Toolkit.
-::
-:: $QT_BEGIN_LICENSE:LGPL$
-:: Commercial License Usage
-:: Licensees holding valid commercial Qt licenses may use this file in
-:: accordance with the commercial license agreement provided with the
-:: Software or, alternatively, in accordance with the terms contained in
-:: a written agreement between you and The Qt Company. For licensing terms
-:: and conditions see https://www.qt.io/terms-conditions. For further
-:: information use the contact form at https://www.qt.io/contact-us.
-::
-:: GNU Lesser General Public License Usage
-:: Alternatively, this file may be used under the terms of the GNU Lesser
-:: General Public License version 3 as published by the Free Software
-:: Foundation and appearing in the file LICENSE.LGPL3 included in the
-:: packaging of this file. Please review the following information to
-:: ensure the GNU Lesser General Public License version 3 requirements
-:: will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-::
-:: GNU General Public License Usage
-:: Alternatively, this file may be used under the terms of the GNU
-:: General Public License version 2.0 or (at your option) the GNU General
-:: Public license version 3 or any later version approved by the KDE Free
-:: Qt Foundation. The licenses are as published by the Free Software
-:: Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-:: included in the packaging of this file. Please review the following
-:: information to ensure the GNU General Public License requirements will
-:: be met: https://www.gnu.org/licenses/gpl-2.0.html and
-:: https://www.gnu.org/licenses/gpl-3.0.html.
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
-qsb --glsl "150,120,100 es" --hlsl 50 --msl 12 -o +qsb/OpacityMask.frag OpacityMask_rhi.frag
diff --git a/src/quickcontrols2/imagine/qquickimaginestyle.cpp b/src/quickcontrols2/imagine/qquickimaginestyle.cpp
deleted file mode 100644
index 37e55b61..00000000
--- a/src/quickcontrols2/imagine/qquickimaginestyle.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickimaginestyle_p.h"
-
-#include <QtCore/qsettings.h>
-#include <QtQuickControls2/private/qquickstyle_p.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_GLOBAL_STATIC_WITH_ARGS(QString, GlobalPath, (QLatin1String("qrc:/qt-project.org/imports/QtQuick/Controls/Imagine/images/")))
-
-static QString ensureSlash(const QString &path)
-{
- const QChar slash = QLatin1Char('/');
- return path.endsWith(slash) ? path : path + slash;
-}
-
-QQuickImagineStyle::QQuickImagineStyle(QObject *parent)
- : QQuickAttachedObject(parent),
- m_path(*GlobalPath())
-{
- init();
-}
-
-QQuickImagineStyle *QQuickImagineStyle::qmlAttachedProperties(QObject *object)
-{
- return new QQuickImagineStyle(object);
-}
-
-QString QQuickImagineStyle::path() const
-{
- return m_path;
-}
-
-void QQuickImagineStyle::setPath(const QString &path)
-{
- m_explicitPath = true;
- if (m_path == path)
- return;
-
- m_path = path;
- propagatePath();
-
- emit pathChanged();
-}
-
-void QQuickImagineStyle::inheritPath(const QString &path)
-{
- if (m_explicitPath || m_path == path)
- return;
-
- m_path = path;
- propagatePath();
- emit pathChanged();
-}
-
-void QQuickImagineStyle::propagatePath()
-{
- const auto styles = attachedChildren();
- for (QQuickAttachedObject *child : styles) {
- QQuickImagineStyle *imagine = qobject_cast<QQuickImagineStyle *>(child);
- if (imagine)
- imagine->inheritPath(m_path);
- }
-}
-
-void QQuickImagineStyle::resetPath()
-{
- if (!m_explicitPath)
- return;
-
- m_explicitPath = false;
- QQuickImagineStyle *imagine = qobject_cast<QQuickImagineStyle *>(attachedParent());
- inheritPath(imagine ? imagine->path() : *GlobalPath());
-}
-
-QUrl QQuickImagineStyle::url() const
-{
- // Using ApplicationWindow as an example, its NinePatchImage url
- // was previously assigned like this:
- //
- // soruce: Imagine.path + "applicationwindow-background"
- //
- // If Imagine.path is set to ":/images" by the user, then the final URL would be:
- //
- // QUrl("file:///home/user/qt/qtbase/qml/QtQuick/Controls/Imagine/:/images/applicationwindow-background")
- //
- // To ensure that the correct URL is constructed, we do it ourselves here,
- // and then the control QML files use the "url" property instead.
- const QString path = ensureSlash(m_path);
- if (path.startsWith(QLatin1String("qrc")))
- return QUrl(path);
-
- if (path.startsWith(QLatin1String(":/")))
- return QUrl(QLatin1String("qrc") + path);
-
- return QUrl::fromLocalFile(path);
-}
-
-void QQuickImagineStyle::attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent)
-{
- Q_UNUSED(oldParent);
- QQuickImagineStyle *imagine = qobject_cast<QQuickImagineStyle *>(newParent);
- if (imagine)
- inheritPath(imagine->path());
-}
-
-static QByteArray resolveSetting(const QByteArray &env, const QSharedPointer<QSettings> &settings, const QString &name)
-{
- QByteArray value = qgetenv(env);
-#if QT_CONFIG(settings)
- if (value.isNull() && !settings.isNull())
- value = settings->value(name).toByteArray();
-#endif
- return value;
-}
-
-void QQuickImagineStyle::init()
-{
- static bool globalsInitialized = false;
- if (!globalsInitialized) {
- QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(QStringLiteral("Imagine"));
-
- QString path = QString::fromUtf8(resolveSetting("QT_QUICK_CONTROLS_IMAGINE_PATH", settings, QStringLiteral("Path")));
- if (!path.isEmpty())
- *GlobalPath() = m_path = ensureSlash(path);
-
- globalsInitialized = true;
- }
-
- QQuickAttachedObject::init(); // TODO: lazy init?
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/imagine/qquickimaginestyle_p.h b/src/quickcontrols2/imagine/qquickimaginestyle_p.h
deleted file mode 100644
index 212096b9..00000000
--- a/src/quickcontrols2/imagine/qquickimaginestyle_p.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKIMAGINESTYLE_P_H
-#define QQUICKIMAGINESTYLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qvariant.h>
-#include <QtQml/qqml.h>
-#include <QtQuickControls2Impl/private/qquickattachedobject_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickImagineStyle : public QQuickAttachedObject
-{
- Q_OBJECT
- Q_PROPERTY(QString path READ path WRITE setPath RESET resetPath NOTIFY pathChanged FINAL)
- Q_PROPERTY(QUrl url READ url NOTIFY pathChanged FINAL)
- QML_NAMED_ELEMENT(Imagine)
- QML_ATTACHED(QQuickImagineStyle)
- QML_UNCREATABLE("")
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickImagineStyle(QObject *parent = nullptr);
-
- static QQuickImagineStyle *qmlAttachedProperties(QObject *object);
-
- QString path() const;
- void setPath(const QString &path);
- void inheritPath(const QString &path);
- void propagatePath();
- void resetPath();
-
- QUrl url() const;
-
-Q_SIGNALS:
- void pathChanged();
-
-protected:
- void attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent) override;
-
-private:
- void init();
-
- bool m_explicitPath = false;
- QString m_path;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPEINFO(QQuickImagineStyle, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKIMAGINESTYLE_P_H
diff --git a/src/quickcontrols2/imagine/qquickimaginetheme.cpp b/src/quickcontrols2/imagine/qquickimaginetheme.cpp
deleted file mode 100644
index 7bae036a..00000000
--- a/src/quickcontrols2/imagine/qquickimaginetheme.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickimaginetheme_p.h"
-
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-QT_BEGIN_NAMESPACE
-
-void QQuickImagineTheme::initialize(QQuickTheme *theme)
-{
- QFont systemFont;
- systemFont.setFamilies(QStringList{QLatin1String("Open Sans")});
- theme->setFont(QQuickTheme::System, systemFont);
-
- const QColor accentColor = QColor::fromRgb(0x4fc1e9);
- const QColor windowTextColor = QColor::fromRgb(0x434a54);
- const QColor disabledWindowTextColor = QColor::fromRgb(0xccd1d9);
-
- QPalette systemPalette;
- systemPalette.setColor(QPalette::ButtonText, Qt::white);
- systemPalette.setColor(QPalette::BrightText, Qt::white);
- systemPalette.setColor(QPalette::Highlight, accentColor);
- systemPalette.setColor(QPalette::HighlightedText, Qt::white);
- systemPalette.setColor(QPalette::Text, windowTextColor);
- systemPalette.setColor(QPalette::ToolTipText, Qt::white);
- systemPalette.setColor(QPalette::WindowText, windowTextColor);
- systemPalette.setColor(QPalette::Disabled, QPalette::Text, disabledWindowTextColor);
- systemPalette.setColor(QPalette::Disabled, QPalette::WindowText, disabledWindowTextColor);
- theme->setPalette(QQuickTheme::System, systemPalette);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/imagine/qquickimaginetheme_p.h b/src/quickcontrols2/imagine/qquickimaginetheme_p.h
deleted file mode 100644
index d3d43074..00000000
--- a/src/quickcontrols2/imagine/qquickimaginetheme_p.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKIMAGINETHEME_P_H
-#define QQUICKIMAGINETHEME_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTheme;
-
-class QQuickImagineTheme
-{
-public:
- static void initialize(QQuickTheme *theme);
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKIMAGINETHEME_P_H
diff --git a/src/quickcontrols2/imagine/qtquickcontrols2imaginestyleplugin.cpp b/src/quickcontrols2/imagine/qtquickcontrols2imaginestyleplugin.cpp
deleted file mode 100644
index bc885cfd..00000000
--- a/src/quickcontrols2/imagine/qtquickcontrols2imaginestyleplugin.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickimaginestyle_p.h"
-#include "qquickimaginetheme_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtQml/qqml.h>
-#include <QtQuickControls2/private/qquickstyleplugin_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-extern void qml_register_types_QtQuick_Controls_Imagine();
-
-QT_BEGIN_NAMESPACE
-
-class QtQuickControls2ImagineStylePlugin : public QQuickStylePlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
-
-public:
- QtQuickControls2ImagineStylePlugin(QObject *parent = nullptr);
-
- QString name() const override;
- void initializeTheme(QQuickTheme *theme) override;
-
- QQuickImagineTheme theme;
-};
-
-QtQuickControls2ImagineStylePlugin::QtQuickControls2ImagineStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
-{
- volatile auto registration = &qml_register_types_QtQuick_Controls_Imagine;
- Q_UNUSED(registration);
-}
-
-QString QtQuickControls2ImagineStylePlugin::name() const
-{
- return QStringLiteral("Imagine");
-}
-
-void QtQuickControls2ImagineStylePlugin::initializeTheme(QQuickTheme *theme)
-{
- this->theme.initialize(theme);
-}
-
-QT_END_NAMESPACE
-
-#include "qtquickcontrols2imaginestyleplugin.moc"
diff --git a/src/quickcontrols2/macos/Button.qml b/src/quickcontrols2/macos/Button.qml
deleted file mode 100644
index 58658c52..00000000
--- a/src/quickcontrols2/macos/Button.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultButton {
- id: control
- readonly property Item __focusFrameTarget: control
-}
diff --git a/src/quickcontrols2/macos/CMakeLists.txt b/src/quickcontrols2/macos/CMakeLists.txt
deleted file mode 100644
index d2578070..00000000
--- a/src/quickcontrols2/macos/CMakeLists.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-#####################################################################
-## qtquickcontrols2macosstyleplugin Plugin:
-#####################################################################
-
-set(qml_files
- "Button.qml"
- "Slider.qml"
- "GroupBox.qml"
- "CheckBox.qml"
- "RadioButton.qml"
- "SpinBox.qml"
- "TextField.qml"
- "Frame.qml"
- "TextArea.qml"
- "ComboBox.qml"
- "ScrollView.qml"
- "ScrollBar.qml"
- "ProgressBar.qml"
- "Dial.qml"
-)
-set_source_files_properties(${qml_files} PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-
-qt_internal_add_qml_module(qtquickcontrols2macosstyleplugin
- URI "QtQuick.Controls.macOS"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2MacOSStylePlugin
- IMPORTS
- QtQuick.Controls.Fusion/auto
- PAST_MAJOR_VERSIONS 2
- PLUGIN_TARGET qtquickcontrols2macosstyleplugin
- NO_PLUGIN_OPTIONAL
- NO_GENERATE_PLUGIN_SOURCE
- SOURCES
- qtquickcontrols2macosstyleplugin.cpp
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickControls2Private
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
diff --git a/src/quickcontrols2/macos/CheckBox.qml b/src/quickcontrols2/macos/CheckBox.qml
deleted file mode 100644
index 23ad4426..00000000
--- a/src/quickcontrols2/macos/CheckBox.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultCheckBox {
- readonly property Item __focusFrameTarget: indicator
- readonly property Item __focusFrameStyleItem: indicator
-}
diff --git a/src/quickcontrols2/macos/ComboBox.qml b/src/quickcontrols2/macos/ComboBox.qml
deleted file mode 100644
index 53baabf8..00000000
--- a/src/quickcontrols2/macos/ComboBox.qml
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultComboBox {
- id: control
- readonly property Item __focusFrameTarget: control
-
- contentItem: T.TextField {
- implicitWidth: contentWidth
- implicitHeight: contentHeight
- text: control.editable ? control.editText : control.displayText
-
- enabled: control.editable
- autoScroll: control.editable
- readOnly: control.down
- inputMethodHints: control.inputMethodHints
- validator: control.validator
- selectByMouse: control.selectTextByMouse
-
- font: control.font
- color: control.editable ? control.palette.text : control.palette.buttonText
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- verticalAlignment: Text.AlignVCenter
-
- readonly property Item __focusFrameControl: control
- }
-}
diff --git a/src/quickcontrols2/macos/Dial.qml b/src/quickcontrols2/macos/Dial.qml
deleted file mode 100644
index 2076a54a..00000000
--- a/src/quickcontrols2/macos/Dial.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultDial {
-}
diff --git a/src/quickcontrols2/macos/Frame.qml b/src/quickcontrols2/macos/Frame.qml
deleted file mode 100644
index f16a0835..00000000
--- a/src/quickcontrols2/macos/Frame.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultFrame {
-}
diff --git a/src/quickcontrols2/macos/GroupBox.qml b/src/quickcontrols2/macos/GroupBox.qml
deleted file mode 100644
index 142ddd15..00000000
--- a/src/quickcontrols2/macos/GroupBox.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultGroupBox {
- id: control
- label: Item {
- readonly property point labelPos : control.__nativeBackground
- ? background.labelPos
- : Qt.point(0,0)
- x: labelPos.x + background.x
- y: labelPos.y + background.y - groupBoxPadding.top
- width: children[0].implicitWidth
- height: children[0].implicitHeight
- Text {
- width: parent.width
- height: parent.height
- text: control.title
- font: control.font
- color: control.palette.windowText
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
- }
-}
diff --git a/src/quickcontrols2/macos/ProgressBar.qml b/src/quickcontrols2/macos/ProgressBar.qml
deleted file mode 100644
index 59a1689d..00000000
--- a/src/quickcontrols2/macos/ProgressBar.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultProgressBar {
-}
diff --git a/src/quickcontrols2/macos/RadioButton.qml b/src/quickcontrols2/macos/RadioButton.qml
deleted file mode 100644
index c9cdf985..00000000
--- a/src/quickcontrols2/macos/RadioButton.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultRadioButton {
- readonly property Item __focusFrameTarget: indicator
- readonly property Item __focusFrameStyleItem: indicator
-}
diff --git a/src/quickcontrols2/macos/ScrollBar.qml b/src/quickcontrols2/macos/ScrollBar.qml
deleted file mode 100644
index 4a9f764b..00000000
--- a/src/quickcontrols2/macos/ScrollBar.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultScrollBar {
- id: controlRoot
-
- contentItem: NativeStyle.ScrollBar {
- control: controlRoot
- subControl: NativeStyle.ScrollBar.Handle
- overrideState: NativeStyle.ScrollBar.NeverHovered
- }
-
- NativeStyle.ScrollBar {
- // Fade a hovered-looking version of the handle
- // on top of the default handle when hovering it
- x: contentItem.x
- y: contentItem.y
- width: contentItem.width
- height: contentItem.height
- control: controlRoot
- subControl: NativeStyle.ScrollBar.Handle
- overrideState: NativeStyle.StyleItem.AlwaysHovered
- opacity: controlRoot.hovered || control.pressed ? 1 : 0
- visible: contentItem instanceof NativeStyle.StyleItem
- Behavior on opacity { NumberAnimation { duration: contentItem.transitionDuration } }
- }
-
-}
diff --git a/src/quickcontrols2/macos/ScrollView.qml b/src/quickcontrols2/macos/ScrollView.qml
deleted file mode 100644
index 954c5d8a..00000000
--- a/src/quickcontrols2/macos/ScrollView.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.ScrollView {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- rightPadding: ScrollBar.vertical.visible ? ScrollBar.vertical.width : 0
- bottomPadding: ScrollBar.horizontal.visible ? ScrollBar.horizontal.height : 0
-
- ScrollBar.vertical: ScrollBar {
- parent: control
- x: control.mirrored ? 0 : control.width - width
- y: 0
- height: control.height - (control.ScrollBar.horizontal.visible ? control.ScrollBar.horizontal.height : 0)
- active: control.ScrollBar.horizontal.active
-
- NativeStyle.ScrollViewCorner {
- y: parent.height
- control: control
- visible: control.ScrollBar.horizontal.visible
- useNinePatchImage: false
- }
- }
-
- ScrollBar.horizontal: ScrollBar {
- parent: control
- x: 0
- y: control.height - height
- width: control.width - (control.ScrollBar.vertical.visible ? control.ScrollBar.vertical.width : 0)
- active: control.ScrollBar.vertical.active
- }
-}
diff --git a/src/quickcontrols2/macos/Slider.qml b/src/quickcontrols2/macos/Slider.qml
deleted file mode 100644
index 77543577..00000000
--- a/src/quickcontrols2/macos/Slider.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultSlider {
- id: control
- readonly property Item __focusFrameTarget: handle
- readonly property Item __focusFrameStyleItem: handle
-
- background: NativeStyle.Slider {
- control: control
- subControl: NativeStyle.Slider.Groove | NativeStyle.Slider.Handle
- // We normally cannot use a nine patch image for the
- // groove if we draw tickmarks (since then the scaling
- // would scale the tickmarks too). The groove might
- // also use a different background color before, and
- // after, the handle.
- useNinePatchImage: false
- }
-
- handle: NativeStyle.Slider {
- // The handle is hidden, since it will be drawn as a part
- // of the background. But will still needs it to be here so
- // that we can place the focus rect correctly.
- visible: false
-
- control: control
- subControl: NativeStyle.Slider.Handle
- x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
- useNinePatchImage: false
- }
-}
diff --git a/src/quickcontrols2/macos/SpinBox.qml b/src/quickcontrols2/macos/SpinBox.qml
deleted file mode 100644
index 5928d37e..00000000
--- a/src/quickcontrols2/macos/SpinBox.qml
+++ /dev/null
@@ -1,126 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.SpinBox {
- id: control
-
- property bool __nativeBackground: background instanceof NativeStyle.StyleItem
- property bool nativeIndicators: up.indicator.hasOwnProperty("_qt_default")
- && down.indicator.hasOwnProperty("_qt_default")
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- 90 /* minimum */ )
- implicitHeight: Math.max(implicitBackgroundHeight, up.implicitIndicatorHeight + down.implicitIndicatorHeight)
- + topInset + bottomInset
-
- spacing: 2
-
- // Push the background right to make room for the indicators
- rightInset: nativeIndicators ? up.implicitIndicatorWidth + spacing : 0
-
- leftPadding: __nativeBackground ? background.contentPadding.left: 0
- topPadding: __nativeBackground ? background.contentPadding.top: 0
- rightPadding: (__nativeBackground ? background.contentPadding.right : 0) + rightInset
- bottomPadding: __nativeBackground ? background.contentPadding.bottom: 0
-
- readonly property Item __focusFrameTarget: contentItem
-
- validator: IntValidator {
- locale: control.locale.name
- bottom: Math.min(control.from, control.to)
- top: Math.max(control.from, control.to)
- }
-
- contentItem: TextInput {
- text: control.displayText
- font: control.font
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- horizontalAlignment: Qt.AlignLeft
- verticalAlignment: Qt.AlignVCenter
-
- topPadding: 2
- bottomPadding: 2
- leftPadding: 10
- rightPadding: 10
-
- readOnly: !control.editable
- validator: control.validator
- inputMethodHints: control.inputMethodHints
-
- readonly property Item __focusFrameControl: control
- }
-
- NativeStyle.SpinBox {
- id: upAndDown
- control: control
- subControl: NativeStyle.SpinBox.Up
- visible: nativeIndicators
- x: up.indicator.x
- y: up.indicator.y
- useNinePatchImage: false
- }
-
- up.indicator: Item {
- x: parent.width - width
- y: (parent.height / 2) - height
- implicitWidth: upAndDown.width
- implicitHeight: upAndDown.height / 2
- property bool _qt_default
- }
-
- down.indicator: Item {
- x: parent.width - width
- y: up.indicator.y + upAndDown.height / 2
- implicitWidth: upAndDown.width
- implicitHeight: upAndDown.height / 2
- property bool _qt_default
- }
-
- background: NativeStyle.SpinBox {
- control: control
- subControl: NativeStyle.SpinBox.Frame
- contentWidth: contentItem.implicitWidth
- contentHeight: contentItem.implicitHeight
- }
-}
diff --git a/src/quickcontrols2/macos/TextArea.qml b/src/quickcontrols2/macos/TextArea.qml
deleted file mode 100644
index f6b88303..00000000
--- a/src/quickcontrols2/macos/TextArea.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultTextArea {
-}
diff --git a/src/quickcontrols2/macos/TextField.qml b/src/quickcontrols2/macos/TextField.qml
deleted file mode 100644
index f3a748f6..00000000
--- a/src/quickcontrols2/macos/TextField.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultTextField {
- id: control
- readonly property Item __focusFrameTarget: control
-}
diff --git a/src/quickcontrols2/macos/macos.pri b/src/quickcontrols2/macos/macos.pri
deleted file mode 100644
index d059151e..00000000
--- a/src/quickcontrols2/macos/macos.pri
+++ /dev/null
@@ -1,15 +0,0 @@
-QML_FILES += \
- $$PWD/Button.qml \
- $$PWD/Slider.qml \
- $$PWD/GroupBox.qml \
- $$PWD/CheckBox.qml \
- $$PWD/RadioButton.qml \
- $$PWD/SpinBox.qml \
- $$PWD/TextField.qml \
- $$PWD/Frame.qml \
- $$PWD/TextArea.qml \
- $$PWD/ComboBox.qml \
- $$PWD/ScrollView.qml \
- $$PWD/ScrollBar.qml \
- $$PWD/ProgressBar.qml \
- $$PWD/Dial.qml \
diff --git a/src/quickcontrols2/macos/qtquickcontrols2macosstyleplugin.cpp b/src/quickcontrols2/macos/qtquickcontrols2macosstyleplugin.cpp
deleted file mode 100644
index 9a4fd0ce..00000000
--- a/src/quickcontrols2/macos/qtquickcontrols2macosstyleplugin.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtQml/qqml.h>
-#include <QtQuickControls2/private/qquickstyleplugin_p.h>
-#include <QtQuickControls2/qquickstyle.h>
-
-extern void qml_register_types_QtQuick_Controls_macOS();
-
-QT_BEGIN_NAMESPACE
-
-class QtQuickControls2MacOSStylePlugin : public QQuickStylePlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
-
-public:
- QtQuickControls2MacOSStylePlugin(QObject *parent = nullptr);
- QString name() const override;
- void initializeTheme(QQuickTheme *theme) override;
-};
-
-
-QtQuickControls2MacOSStylePlugin::QtQuickControls2MacOSStylePlugin(QObject *parent):
- QQuickStylePlugin(parent)
-{
- volatile auto registration = &qml_register_types_QtQuick_Controls_macOS;
- Q_UNUSED(registration);
-}
-
-QString QtQuickControls2MacOSStylePlugin::name() const
-{
- return QStringLiteral("macOS");
-}
-
-void QtQuickControls2MacOSStylePlugin::initializeTheme(QQuickTheme */*theme*/)
-{
-}
-
-QT_END_NAMESPACE
-
-#include "qtquickcontrols2macosstyleplugin.moc"
diff --git a/src/quickcontrols2/material/ApplicationWindow.qml b/src/quickcontrols2/material/ApplicationWindow.qml
deleted file mode 100644
index 82a0da8b..00000000
--- a/src/quickcontrols2/material/ApplicationWindow.qml
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.ApplicationWindow {
- id: window
-
- color: Material.backgroundColor
-}
diff --git a/src/quickcontrols2/material/BusyIndicator.qml b/src/quickcontrols2/material/BusyIndicator.qml
deleted file mode 100644
index 621b2b43..00000000
--- a/src/quickcontrols2/material/BusyIndicator.qml
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.BusyIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
-
- contentItem: BusyIndicatorImpl {
- implicitWidth: control.Material.touchTarget
- implicitHeight: control.Material.touchTarget
- color: control.Material.accentColor
-
- running: control.running
- opacity: control.running ? 1 : 0
- Behavior on opacity { OpacityAnimator { duration: 250 } }
- }
-}
diff --git a/src/quickcontrols2/material/Button.qml b/src/quickcontrols2/material/Button.qml
deleted file mode 100644
index 352eebec..00000000
--- a/src/quickcontrols2/material/Button.qml
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.Button {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topInset: 6
- bottomInset: 6
- padding: 12
- horizontalPadding: padding - 4
- spacing: 6
-
- icon.width: 24
- icon.height: 24
- icon.color: !enabled ? Material.hintTextColor :
- flat && highlighted ? Material.accentColor :
- highlighted ? Material.primaryHighlightedTextColor : Material.foreground
-
- Material.elevation: flat ? control.down || control.hovered ? 2 : 0
- : control.down ? 8 : 2
- Material.background: flat ? "transparent" : undefined
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: !control.enabled ? control.Material.hintTextColor :
- control.flat && control.highlighted ? control.Material.accentColor :
- control.highlighted ? control.Material.primaryHighlightedTextColor : control.Material.foreground
- }
-
- background: Rectangle {
- implicitWidth: 64
- implicitHeight: control.Material.buttonHeight
-
- radius: 2
- color: !control.enabled ? control.Material.buttonDisabledColor :
- control.highlighted ? control.Material.highlightedButtonColor : control.Material.buttonColor
-
- PaddedRectangle {
- y: parent.height - 4
- width: parent.width
- height: 4
- radius: 2
- topPadding: -2
- clip: true
- visible: control.checkable && (!control.highlighted || control.flat)
- color: control.checked && control.enabled ? control.Material.accentColor : control.Material.secondaryTextColor
- }
-
- // The layer is disabled when the button color is transparent so you can do
- // Material.background: "transparent" and get a proper flat button without needing
- // to set Material.elevation as well
- layer.enabled: control.enabled && control.Material.buttonColor.a > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
-
- Ripple {
- clipRadius: 2
- width: parent.width
- height: parent.height
- pressed: control.pressed
- anchor: control
- active: control.down || control.visualFocus || control.hovered
- color: control.flat && control.highlighted ? control.Material.highlightedRippleColor : control.Material.rippleColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/CMakeLists.txt b/src/quickcontrols2/material/CMakeLists.txt
deleted file mode 100644
index bc73bdb9..00000000
--- a/src/quickcontrols2/material/CMakeLists.txt
+++ /dev/null
@@ -1,262 +0,0 @@
-#####################################################################
-## qtquickcontrols2materialstyleplugin Plugin:
-#####################################################################
-
-set(qml_files
- "ApplicationWindow.qml"
- "BusyIndicator.qml"
- "Button.qml"
- "CheckBox.qml"
- "CheckDelegate.qml"
- "ComboBox.qml"
- "DelayButton.qml"
- "Dial.qml"
- "Dialog.qml"
- "DialogButtonBox.qml"
- "Drawer.qml"
- "Frame.qml"
- "GroupBox.qml"
- "HorizontalHeaderView.qml"
- "ItemDelegate.qml"
- "Label.qml"
- "Menu.qml"
- "MenuBar.qml"
- "MenuBarItem.qml"
- "MenuItem.qml"
- "MenuSeparator.qml"
- "Page.qml"
- "PageIndicator.qml"
- "Pane.qml"
- "Popup.qml"
- "ProgressBar.qml"
- "RadioButton.qml"
- "RadioDelegate.qml"
- "RangeSlider.qml"
- "RoundButton.qml"
- "ScrollView.qml"
- "ScrollBar.qml"
- "ScrollIndicator.qml"
- "Slider.qml"
- "SpinBox.qml"
- "SplitView.qml"
- "StackView.qml"
- "SwipeDelegate.qml"
- "SwipeView.qml"
- "Switch.qml"
- "SwitchDelegate.qml"
- "TabBar.qml"
- "TabButton.qml"
- "TextArea.qml"
- "TextField.qml"
- "ToolBar.qml"
- "ToolButton.qml"
- "ToolSeparator.qml"
- "ToolTip.qml"
- "Tumbler.qml"
- "VerticalHeaderView.qml"
-)
-set_source_files_properties(ApplicationWindow.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(BusyIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Button.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(CheckBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(CheckDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ComboBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(DelayButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.2;6.0"
-)
-set_source_files_properties(Dial.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Dialog.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(DialogButtonBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(Drawer.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Frame.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(GroupBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(HorizontalHeaderView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.15;6.0"
-)
-set_source_files_properties(ItemDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Label.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Menu.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(MenuBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.3;6.0"
-)
-set_source_files_properties(MenuBarItem.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.3;6.0"
-)
-set_source_files_properties(MenuItem.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(MenuSeparator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(Page.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(PageIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Pane.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Popup.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ProgressBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RadioButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RadioDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RangeSlider.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RoundButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(ScrollView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ScrollBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ScrollIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Slider.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SpinBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SplitView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.13;6.0"
-)
-set_source_files_properties(StackView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwipeDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwipeView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Switch.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwitchDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TabBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TabButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TextArea.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TextField.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolSeparator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(ToolTip.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Tumbler.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(VerticalHeaderView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.15;6.0"
-)
-
-qt_internal_add_qml_module(qtquickcontrols2materialstyleplugin
- URI "QtQuick.Controls.Material"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2MaterialStylePlugin
- IMPORTS
- QtQuick.Controls.Basic/auto
- PLUGIN_TARGET qtquickcontrols2materialstyleplugin
- NO_PLUGIN_OPTIONAL
- NO_GENERATE_PLUGIN_SOURCE
- SOURCES
- qquickmaterialstyle.cpp qquickmaterialstyle_p.h
- qquickmaterialtheme.cpp qquickmaterialtheme_p.h
- qtquickcontrols2materialstyleplugin.cpp
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickControls2ImplPrivate
- Qt::QuickControls2Private
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
-
-qt_internal_add_resource(qtquickcontrols2materialstyleplugin "qtquickcontrols2materialstyleplugin"
- PREFIX
- "/qt-project.org/imports/QtQuick/Controls/Material"
- FILES
- "images/arrow-indicator.png"
- "images/arrow-indicator@2x.png"
- "images/arrow-indicator@3x.png"
- "images/arrow-indicator@4x.png"
- "images/check.png"
- "images/check@2x.png"
- "images/check@3x.png"
- "images/check@4x.png"
- "images/drop-indicator.png"
- "images/drop-indicator@2x.png"
- "images/drop-indicator@3x.png"
- "images/drop-indicator@4x.png"
- "shaders/+glslcore/RectangularGlow.frag"
- "shaders/+hlsl/RectangularGlow.frag"
- "shaders/+qsb/RectangularGlow.frag"
- "shaders/RectangularGlow.frag"
-)
-
-add_subdirectory(impl)
diff --git a/src/quickcontrols2/material/CheckBox.qml b/src/quickcontrols2/material/CheckBox.qml
deleted file mode 100644
index a3f717be..00000000
--- a/src/quickcontrols2/material/CheckBox.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.CheckBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 8
- padding: 8
- verticalPadding: padding + 7
-
- indicator: CheckIndicator {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
-
- Ripple {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 28; height: 28
-
- z: -1
- anchor: control
- pressed: control.pressed
- active: control.down || control.visualFocus || control.hovered
- color: control.checked ? control.Material.highlightedRippleColor : control.Material.rippleColor
- }
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-}
diff --git a/src/quickcontrols2/material/CheckDelegate.qml b/src/quickcontrols2/material/CheckDelegate.qml
deleted file mode 100644
index ea42d666..00000000
--- a/src/quickcontrols2/material/CheckDelegate.qml
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.CheckDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 16
- verticalPadding: 8
- spacing: 16
-
- icon.width: 24
- icon.height: 24
- icon.color: enabled ? Material.foreground : Material.hintTextColor
-
- indicator: CheckIndicator {
- x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: IconLabel {
- leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
- rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- }
-
- background: Rectangle {
- implicitHeight: control.Material.delegateHeight
-
- color: control.highlighted ? control.Material.listHighlightColor : "transparent"
-
- Ripple {
- width: parent.width
- height: parent.height
-
- clip: visible
- pressed: control.pressed
- anchor: control
- active: control.down || control.visualFocus || control.hovered
- color: control.Material.rippleColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/ComboBox.qml b/src/quickcontrols2/material/ComboBox.qml
deleted file mode 100644
index 15f4c1ad..00000000
--- a/src/quickcontrols2/material/ComboBox.qml
+++ /dev/null
@@ -1,179 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.ComboBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- topInset: 6
- bottomInset: 6
-
- leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
- rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
-
- Material.elevation: flat ? control.pressed || control.hovered ? 2 : 0
- : control.pressed ? 8 : 2
- Material.background: flat ? "transparent" : undefined
- Material.foreground: flat ? undefined : Material.primaryTextColor
-
- delegate: MenuItem {
- width: ListView.view.width
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
- Material.foreground: control.currentIndex === index ? ListView.view.contentItem.Material.accent : ListView.view.contentItem.Material.foreground
- highlighted: control.highlightedIndex === index
- hoverEnabled: control.hoverEnabled
- }
-
- indicator: ColorImage {
- x: control.mirrored ? control.padding : control.width - width - control.padding
- y: control.topPadding + (control.availableHeight - height) / 2
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Material/images/drop-indicator.png"
- }
-
- contentItem: T.TextField {
- padding: 6
- leftPadding: control.editable ? 2 : control.mirrored ? 0 : 12
- rightPadding: control.editable ? 2 : control.mirrored ? 12 : 0
-
- text: control.editable ? control.editText : control.displayText
-
- enabled: control.editable
- autoScroll: control.editable
- readOnly: control.down
- inputMethodHints: control.inputMethodHints
- validator: control.validator
- selectByMouse: control.selectTextByMouse
-
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- selectionColor: control.Material.accentColor
- selectedTextColor: control.Material.primaryHighlightedTextColor
- verticalAlignment: Text.AlignVCenter
-
- cursorDelegate: CursorDelegate { }
- }
-
- background: Rectangle {
- implicitWidth: 120
- implicitHeight: control.Material.buttonHeight
-
- radius: control.flat ? 0 : 2
- color: !control.editable ? control.Material.dialogColor : "transparent"
-
- layer.enabled: control.enabled && !control.editable && control.Material.background.a > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
-
- Rectangle {
- visible: control.editable
- y: parent.y + control.baselineOffset
- width: parent.width
- height: control.activeFocus ? 2 : 1
- color: control.editable && control.activeFocus ? control.Material.accentColor : control.Material.hintTextColor
- }
-
- Ripple {
- clip: control.flat
- clipRadius: control.flat ? 0 : 2
- x: control.editable && control.indicator ? control.indicator.x : 0
- width: control.editable && control.indicator ? control.indicator.width : parent.width
- height: parent.height
- pressed: control.pressed
- anchor: control.editable && control.indicator ? control.indicator : control
- active: control.pressed || control.visualFocus || control.hovered
- color: control.Material.rippleColor
- }
- }
-
- popup: T.Popup {
- y: control.editable ? control.height - 5 : 0
- width: control.width
- height: Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin)
- transformOrigin: Item.Top
- topMargin: 12
- bottomMargin: 12
-
- Material.theme: control.Material.theme
- Material.accent: control.Material.accent
- Material.primary: control.Material.primary
-
- enter: Transition {
- // grow_fade_in
- NumberAnimation { property: "scale"; from: 0.9; easing.type: Easing.OutQuint; duration: 220 }
- NumberAnimation { property: "opacity"; from: 0.0; easing.type: Easing.OutCubic; duration: 150 }
- }
-
- exit: Transition {
- // shrink_fade_out
- NumberAnimation { property: "scale"; to: 0.9; easing.type: Easing.OutQuint; duration: 220 }
- NumberAnimation { property: "opacity"; to: 0.0; easing.type: Easing.OutCubic; duration: 150 }
- }
-
- contentItem: ListView {
- clip: true
- implicitHeight: contentHeight
- model: control.delegateModel
- currentIndex: control.highlightedIndex
- highlightMoveDuration: 0
-
- T.ScrollIndicator.vertical: ScrollIndicator { }
- }
-
- background: Rectangle {
- radius: 2
- color: parent.Material.dialogColor
-
- layer.enabled: control.enabled
- layer.effect: ElevationEffect {
- elevation: 8
- }
- }
- }
-}
diff --git a/src/quickcontrols2/material/DelayButton.qml b/src/quickcontrols2/material/DelayButton.qml
deleted file mode 100644
index d35df35c..00000000
--- a/src/quickcontrols2/material/DelayButton.qml
+++ /dev/null
@@ -1,116 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.DelayButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topInset: 6
- bottomInset: 6
- padding: 12
- horizontalPadding: padding - 4
-
- Material.elevation: control.down ? 8 : 2
-
- transition: Transition {
- NumberAnimation {
- duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
- }
- }
-
- contentItem: Text {
- text: control.text
- font: control.font
- color: !control.enabled ? control.Material.hintTextColor : control.Material.foreground
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- elide: Text.ElideRight
- }
-
- // TODO: Add a proper ripple/ink effect for mouse/touch input and focus state
- background: Rectangle {
- implicitWidth: 64
- implicitHeight: control.Material.buttonHeight
-
- radius: 2
- color: !control.enabled ? control.Material.buttonDisabledColor : control.Material.buttonColor
-
- PaddedRectangle {
- y: parent.height - 4
- width: parent.width
- height: 4
- radius: 2
- topPadding: -2
- clip: true
- color: control.checked && control.enabled ? control.Material.accentColor : control.Material.secondaryTextColor
-
- PaddedRectangle {
- width: parent.width * control.progress
- height: 4
- radius: 2
- topPadding: -2
- rightPadding: Math.max(-2, width - parent.width)
- clip: true
- color: control.Material.accentColor
- }
- }
-
- layer.enabled: control.enabled && control.Material.buttonColor.a > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
-
- Ripple {
- clipRadius: 2
- width: parent.width
- height: parent.height
- pressed: control.pressed
- anchor: control
- active: control.down || control.visualFocus || control.hovered
- color: control.Material.rippleColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/Dial.qml b/src/quickcontrols2/material/Dial.qml
deleted file mode 100644
index 2731436f..00000000
--- a/src/quickcontrols2/material/Dial.qml
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.Dial {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 100
-
- x: control.width / 2 - width / 2
- y: control.height / 2 - height / 2
- width: Math.max(64, Math.min(control.width, control.height))
- height: width
- color: "transparent"
- radius: width / 2
-
- border.color: control.enabled ? control.Material.accentColor : control.Material.hintTextColor
- }
-
- handle: SliderHandle {
- x: control.background.x + control.background.width / 2 - width / 2
- y: control.background.y + control.background.height / 2 - height / 2
- transform: [
- Translate {
- y: -control.background.height * 0.4 + control.handle.height / 2
- },
- Rotation {
- angle: control.angle
- origin.x: control.handle.width / 2
- origin.y: control.handle.height / 2
- }
- ]
- implicitWidth: 10
- implicitHeight: 10
-
- value: control.value
- handleHasFocus: control.visualFocus
- handlePressed: control.pressed
- handleHovered: control.hovered
- }
-}
diff --git a/src/quickcontrols2/material/Dialog.qml b/src/quickcontrols2/material/Dialog.qml
deleted file mode 100644
index 1cb7f8c1..00000000
--- a/src/quickcontrols2/material/Dialog.qml
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.Dialog {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- padding: 24
- topPadding: 20
-
- Material.elevation: 24
-
- enter: Transition {
- // grow_fade_in
- NumberAnimation { property: "scale"; from: 0.9; to: 1.0; easing.type: Easing.OutQuint; duration: 220 }
- NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; easing.type: Easing.OutCubic; duration: 150 }
- }
-
- exit: Transition {
- // shrink_fade_out
- NumberAnimation { property: "scale"; from: 1.0; to: 0.9; easing.type: Easing.OutQuint; duration: 220 }
- NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; easing.type: Easing.OutCubic; duration: 150 }
- }
-
- background: Rectangle {
- radius: 2
- color: control.Material.dialogColor
-
- layer.enabled: control.Material.elevation > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
- }
-
- header: Label {
- text: control.title
- visible: control.title
- elide: Label.ElideRight
- padding: 24
- bottomPadding: 0
- // TODO: QPlatformTheme::TitleBarFont
- font.bold: true
- font.pixelSize: 16
- background: PaddedRectangle {
- radius: 2
- color: control.Material.dialogColor
- bottomPadding: -2
- clip: true
- }
- }
-
- footer: DialogButtonBox {
- visible: count > 0
- }
-
- T.Overlay.modal: Rectangle {
- color: control.Material.backgroundDimColor
- Behavior on opacity { NumberAnimation { duration: 150 } }
- }
-
- T.Overlay.modeless: Rectangle {
- color: control.Material.backgroundDimColor
- Behavior on opacity { NumberAnimation { duration: 150 } }
- }
-}
diff --git a/src/quickcontrols2/material/DialogButtonBox.qml b/src/quickcontrols2/material/DialogButtonBox.qml
deleted file mode 100644
index e32fa812..00000000
--- a/src/quickcontrols2/material/DialogButtonBox.qml
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.DialogButtonBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- spacing: 8
- padding: 8
- verticalPadding: 2
- alignment: Qt.AlignRight
- buttonLayout: T.DialogButtonBox.AndroidLayout
-
- Material.foreground: Material.accent
-
- delegate: Button { flat: true }
-
- contentItem: ListView {
- model: control.contentModel
- spacing: control.spacing
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- snapMode: ListView.SnapToItem
- }
-
- background: PaddedRectangle {
- implicitHeight: control.Material.dialogButtonBoxHeight
- radius: 2
- color: control.Material.dialogColor
- // Rounded corners should be only at the top or at the bottom
- topPadding: control.position === T.DialogButtonBox.Footer ? -2 : 0
- bottomPadding: control.position === T.DialogButtonBox.Header ? -2 : 0
- clip: true
- }
-}
diff --git a/src/quickcontrols2/material/Drawer.qml b/src/quickcontrols2/material/Drawer.qml
deleted file mode 100644
index 93c4bf56..00000000
--- a/src/quickcontrols2/material/Drawer.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.Drawer {
- id: control
-
- parent: T.Overlay.overlay
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: !dim && edge === Qt.BottomEdge && Material.elevation === 0
- leftPadding: !dim && edge === Qt.RightEdge && Material.elevation === 0
- rightPadding: !dim && edge === Qt.LeftEdge && Material.elevation === 0
- bottomPadding: !dim && edge === Qt.TopEdge && Material.elevation === 0
-
- enter: Transition { SmoothedAnimation { velocity: 5 } }
- exit: Transition { SmoothedAnimation { velocity: 5 } }
-
- Material.elevation: !interactive && !dim ? 0 : 16
-
- background: Rectangle {
- color: control.Material.dialogColor
-
- Rectangle {
- readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge
- width: horizontal ? 1 : parent.width
- height: horizontal ? parent.height : 1
- color: control.Material.dividerColor
- x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0
- y: control.edge === Qt.TopEdge ? parent.height - 1 : 0
- visible: !control.dim && control.Material.elevation === 0
- }
-
- layer.enabled: control.position > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- fullHeight: true
- }
- }
-
- T.Overlay.modal: Rectangle {
- color: control.Material.backgroundDimColor
- Behavior on opacity { NumberAnimation { duration: 150 } }
- }
-
- T.Overlay.modeless: Rectangle {
- color: control.Material.backgroundDimColor
- Behavior on opacity { NumberAnimation { duration: 150 } }
- }
-}
diff --git a/src/quickcontrols2/material/Frame.qml b/src/quickcontrols2/material/Frame.qml
deleted file mode 100644
index 8626f766..00000000
--- a/src/quickcontrols2/material/Frame.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.Frame {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 12
- verticalPadding: Material.frameVerticalPadding
-
- background: Rectangle {
- radius: 2
- color: control.Material.elevation > 0 ? control.Material.backgroundColor : "transparent"
- border.color: control.Material.frameColor
-
- layer.enabled: control.enabled && control.Material.elevation > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
- }
-}
diff --git a/src/quickcontrols2/material/GroupBox.qml b/src/quickcontrols2/material/GroupBox.qml
deleted file mode 100644
index 4a27b832..00000000
--- a/src/quickcontrols2/material/GroupBox.qml
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.GroupBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitLabelWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- spacing: 6
- padding: 12
- topPadding: Material.frameVerticalPadding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
- bottomPadding: Material.frameVerticalPadding
-
- label: Text {
- x: control.leftPadding
- width: control.availableWidth
-
- text: control.title
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-
- background: Rectangle {
- y: control.topPadding - control.bottomPadding
- width: parent.width
- height: parent.height - control.topPadding + control.bottomPadding
-
- radius: 2
- color: control.Material.elevation > 0 ? control.Material.backgroundColor : "transparent"
- border.color: control.Material.frameColor
-
- layer.enabled: control.enabled && control.Material.elevation > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
- }
-}
diff --git a/src/quickcontrols2/material/HorizontalHeaderView.qml b/src/quickcontrols2/material/HorizontalHeaderView.qml
deleted file mode 100644
index d2608c76..00000000
--- a/src/quickcontrols2/material/HorizontalHeaderView.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.HorizontalHeaderView {
- id: control
-
- implicitWidth: syncView ? syncView.width : 0
- implicitHeight: contentHeight
-
- delegate: Rectangle {
- // Qt6: add cellPadding (and font etc) as public API in headerview
- readonly property real cellPadding: 8
-
- implicitWidth: text.implicitWidth + (cellPadding * 2)
- implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2))
- color: control.Material.backgroundColor
-
- Text {
- id: text
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
- : model[control.textRole])
- : modelData
- width: parent.width
- height: parent.height
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- color: enabled ? control.Material.foreground : control.Material.hintTextColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/ItemDelegate.qml b/src/quickcontrols2/material/ItemDelegate.qml
deleted file mode 100644
index 7d06b05b..00000000
--- a/src/quickcontrols2/material/ItemDelegate.qml
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.ItemDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 16
- verticalPadding: 8
- spacing: 16
-
- icon.width: 24
- icon.height: 24
- icon.color: enabled ? Material.foreground : Material.hintTextColor
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- }
-
- background: Rectangle {
- implicitHeight: control.Material.delegateHeight
-
- color: control.highlighted ? control.Material.listHighlightColor : "transparent"
-
- Ripple {
- width: parent.width
- height: parent.height
-
- clip: visible
- pressed: control.pressed
- anchor: control
- active: control.down || control.visualFocus || control.hovered
- color: control.Material.rippleColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/LICENSE_ANGULARJS.txt b/src/quickcontrols2/material/LICENSE_ANGULARJS.txt
deleted file mode 100644
index c1f2a826..00000000
--- a/src/quickcontrols2/material/LICENSE_ANGULARJS.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014-2016 Google, Inc. http://angularjs.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/src/quickcontrols2/material/Label.qml b/src/quickcontrols2/material/Label.qml
deleted file mode 100644
index 77e85f42..00000000
--- a/src/quickcontrols2/material/Label.qml
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.Label {
- id: control
-
- color: enabled ? Material.foreground : Material.hintTextColor
- linkColor: Material.accentColor
-}
diff --git a/src/quickcontrols2/material/Menu.qml b/src/quickcontrols2/material/Menu.qml
deleted file mode 100644
index b7e80c92..00000000
--- a/src/quickcontrols2/material/Menu.qml
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-import QtQuick.Window
-
-T.Menu {
- id: control
-
- Material.elevation: 8
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- margins: 0
- verticalPadding: 8
-
- transformOrigin: !cascade ? Item.Top : (mirrored ? Item.TopRight : Item.TopLeft)
-
- delegate: MenuItem { }
-
- enter: Transition {
- // grow_fade_in
- NumberAnimation { property: "scale"; from: 0.9; to: 1.0; easing.type: Easing.OutQuint; duration: 220 }
- NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; easing.type: Easing.OutCubic; duration: 150 }
- }
-
- exit: Transition {
- // shrink_fade_out
- NumberAnimation { property: "scale"; from: 1.0; to: 0.9; easing.type: Easing.OutQuint; duration: 220 }
- NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; easing.type: Easing.OutCubic; duration: 150 }
- }
-
- contentItem: ListView {
- implicitHeight: contentHeight
-
- model: control.contentModel
- interactive: Window.window
- ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height
- : false
- clip: true
- currentIndex: control.currentIndex
-
- ScrollIndicator.vertical: ScrollIndicator {}
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: control.Material.menuItemHeight
-
- radius: 3
- color: control.Material.dialogColor
-
- layer.enabled: control.Material.elevation > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
- }
-
- T.Overlay.modal: Rectangle {
- color: control.Material.backgroundDimColor
- Behavior on opacity { NumberAnimation { duration: 150 } }
- }
-
- T.Overlay.modeless: Rectangle {
- color: control.Material.backgroundDimColor
- Behavior on opacity { NumberAnimation { duration: 150 } }
- }
-}
diff --git a/src/quickcontrols2/material/MenuBar.qml b/src/quickcontrols2/material/MenuBar.qml
deleted file mode 100644
index a0c3bd3f..00000000
--- a/src/quickcontrols2/material/MenuBar.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.MenuBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- delegate: MenuBarItem { }
-
- contentItem: Row {
- spacing: control.spacing
- Repeater {
- model: control.contentModel
- }
- }
-
- background: Rectangle {
- implicitHeight: 40
- color: control.Material.dialogColor
- }
-}
diff --git a/src/quickcontrols2/material/MenuBarItem.qml b/src/quickcontrols2/material/MenuBarItem.qml
deleted file mode 100644
index f1d4e87d..00000000
--- a/src/quickcontrols2/material/MenuBarItem.qml
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.MenuBarItem {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 16
- verticalPadding: 12
- spacing: 16
-
- icon.width: 24
- icon.height: 24
- icon.color: enabled ? Material.foreground : Material.hintTextColor
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- }
-
- background: Rectangle {
- implicitWidth: 40
- implicitHeight: 40
- color: control.highlighted ? control.Material.listHighlightColor : "transparent"
-
- Ripple {
- width: parent.width
- height: parent.height
-
- clip: visible
- pressed: control.pressed
- anchor: control
- active: control.down || control.highlighted
- color: control.Material.rippleColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/MenuItem.qml b/src/quickcontrols2/material/MenuItem.qml
deleted file mode 100644
index fab2de26..00000000
--- a/src/quickcontrols2/material/MenuItem.qml
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.MenuItem {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 16
- verticalPadding: Material.menuItemVerticalPadding
- spacing: 16
-
- icon.width: 24
- icon.height: 24
- icon.color: enabled ? Material.foreground : Material.hintTextColor
-
- indicator: CheckIndicator {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- visible: control.checkable
- control: control
- checkState: control.checked ? Qt.Checked : Qt.Unchecked
- }
-
- arrow: ColorImage {
- x: control.mirrored ? control.padding : control.width - width - control.padding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- visible: control.subMenu
- mirror: control.mirrored
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Material/images/arrow-indicator.png"
- }
-
- contentItem: IconLabel {
- readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0
- readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0
- leftPadding: !control.mirrored ? indicatorPadding : arrowPadding
- rightPadding: control.mirrored ? indicatorPadding : arrowPadding
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: control.Material.menuItemHeight
- color: control.highlighted ? control.Material.listHighlightColor : "transparent"
-
- Ripple {
- width: parent.width
- height: parent.height
-
- clip: visible
- pressed: control.pressed
- anchor: control
- active: control.down || control.highlighted
- color: control.Material.rippleColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/MenuSeparator.qml b/src/quickcontrols2/material/MenuSeparator.qml
deleted file mode 100644
index 08a33ffe..00000000
--- a/src/quickcontrols2/material/MenuSeparator.qml
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.MenuSeparator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- verticalPadding: 8
-
- contentItem: Rectangle {
- implicitWidth: 200
- implicitHeight: 1
- color: control.Material.dividerColor
- }
-}
diff --git a/src/quickcontrols2/material/Page.qml b/src/quickcontrols2/material/Page.qml
deleted file mode 100644
index 711fac2d..00000000
--- a/src/quickcontrols2/material/Page.qml
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.Page {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- background: Rectangle {
- color: control.Material.backgroundColor
- }
-}
diff --git a/src/quickcontrols2/material/PageIndicator.qml b/src/quickcontrols2/material/PageIndicator.qml
deleted file mode 100644
index 8ccd7de3..00000000
--- a/src/quickcontrols2/material/PageIndicator.qml
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.PageIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- delegate: Rectangle {
- implicitWidth: 8
- implicitHeight: 8
-
- radius: width / 2
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
-
- opacity: index === currentIndex ? 0.95 : pressed ? 0.7 : 0.45
- Behavior on opacity { OpacityAnimator { duration: 100 } }
- }
-
- contentItem: Row {
- spacing: control.spacing
-
- Repeater {
- model: control.count
- delegate: control.delegate
- }
- }
-}
diff --git a/src/quickcontrols2/material/Pane.qml b/src/quickcontrols2/material/Pane.qml
deleted file mode 100644
index 055a8d23..00000000
--- a/src/quickcontrols2/material/Pane.qml
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.Pane {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 12
-
- background: Rectangle {
- color: control.Material.backgroundColor
- radius: control.Material.elevation > 0 ? 2 : 0
-
- layer.enabled: control.enabled && control.Material.elevation > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
- }
-}
diff --git a/src/quickcontrols2/material/Popup.qml b/src/quickcontrols2/material/Popup.qml
deleted file mode 100644
index cb5b62ec..00000000
--- a/src/quickcontrols2/material/Popup.qml
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.Popup {
- id: control
-
- Material.elevation: 24
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 12
-
- enter: Transition {
- // grow_fade_in
- NumberAnimation { property: "scale"; from: 0.9; to: 1.0; easing.type: Easing.OutQuint; duration: 220 }
- NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; easing.type: Easing.OutCubic; duration: 150 }
- }
-
- exit: Transition {
- // shrink_fade_out
- NumberAnimation { property: "scale"; from: 1.0; to: 0.9; easing.type: Easing.OutQuint; duration: 220 }
- NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; easing.type: Easing.OutCubic; duration: 150 }
- }
-
- background: Rectangle {
- radius: 2
- color: control.Material.dialogColor
-
- layer.enabled: control.Material.elevation > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
- }
-
- T.Overlay.modal: Rectangle {
- color: control.Material.backgroundDimColor
- Behavior on opacity { NumberAnimation { duration: 150 } }
- }
-
- T.Overlay.modeless: Rectangle {
- color: control.Material.backgroundDimColor
- Behavior on opacity { NumberAnimation { duration: 150 } }
- }
-}
diff --git a/src/quickcontrols2/material/ProgressBar.qml b/src/quickcontrols2/material/ProgressBar.qml
deleted file mode 100644
index dd4fae0e..00000000
--- a/src/quickcontrols2/material/ProgressBar.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.ProgressBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- contentItem: ProgressBarImpl {
- implicitHeight: 4
-
- scale: control.mirrored ? -1 : 1
- color: control.Material.accentColor
- progress: control.position
- indeterminate: control.visible && control.indeterminate
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 4
- y: (control.height - height) / 2
- height: 4
-
- color: Qt.rgba(control.Material.accentColor.r, control.Material.accentColor.g, control.Material.accentColor.b, 0.25)
- }
-}
diff --git a/src/quickcontrols2/material/RadioButton.qml b/src/quickcontrols2/material/RadioButton.qml
deleted file mode 100644
index 664cb19e..00000000
--- a/src/quickcontrols2/material/RadioButton.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.RadioButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 8
- padding: 8
- verticalPadding: padding + 6
-
- indicator: RadioIndicator {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
-
- Ripple {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 28; height: 28
-
- z: -1
- anchor: control
- pressed: control.pressed
- active: control.down || control.visualFocus || control.hovered
- color: control.checked ? control.Material.highlightedRippleColor : control.Material.rippleColor
- }
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-}
diff --git a/src/quickcontrols2/material/RadioDelegate.qml b/src/quickcontrols2/material/RadioDelegate.qml
deleted file mode 100644
index 334e570b..00000000
--- a/src/quickcontrols2/material/RadioDelegate.qml
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.RadioDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 16
- verticalPadding: 8
- spacing: 16
-
- icon.width: 24
- icon.height: 24
- icon.color: enabled ? Material.foreground : Material.hintTextColor
-
- indicator: RadioIndicator {
- x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: IconLabel {
- leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
- rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- }
-
- background: Rectangle {
- implicitHeight: control.Material.delegateHeight
-
- color: control.highlighted ? control.Material.listHighlightColor : "transparent"
-
- Ripple {
- width: parent.width
- height: parent.height
-
- clip: visible
- pressed: control.pressed
- anchor: control
- active: control.down || control.visualFocus || control.hovered
- color: control.Material.rippleColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/RangeSlider.qml b/src/quickcontrols2/material/RangeSlider.qml
deleted file mode 100644
index d1d22115..00000000
--- a/src/quickcontrols2/material/RangeSlider.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.RangeSlider {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- first.implicitHandleWidth + leftPadding + rightPadding,
- second.implicitHandleWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- first.implicitHandleHeight + topPadding + bottomPadding,
- second.implicitHandleHeight + topPadding + bottomPadding)
-
- padding: 6
-
- first.handle: SliderHandle {
- x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
- value: first.value
- handleHasFocus: activeFocus
- handlePressed: first.pressed
- handleHovered: first.hovered
- }
-
- second.handle: SliderHandle {
- x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
- value: second.value
- handleHasFocus: activeFocus
- handlePressed: second.pressed
- handleHovered: second.hovered
- }
-
- background: Rectangle {
- x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
- implicitWidth: control.horizontal ? 200 : 48
- implicitHeight: control.horizontal ? 48 : 200
- width: control.horizontal ? control.availableWidth : 4
- height: control.horizontal ? 4 : control.availableHeight
- scale: control.horizontal && control.mirrored ? -1 : 1
- color: control.enabled ? Color.transparent(control.Material.accentColor, 0.33) : control.Material.sliderDisabledColor
-
- Rectangle {
- x: control.horizontal ? control.first.position * parent.width : 0
- y: control.horizontal ? 0 : control.second.visualPosition * parent.height
- width: control.horizontal ? control.second.position * parent.width - control.first.position * parent.width : 4
- height: control.horizontal ? 4 : control.second.position * parent.height - control.first.position * parent.height
-
- color: control.enabled ? control.Material.accentColor : control.Material.sliderDisabledColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/RoundButton.qml b/src/quickcontrols2/material/RoundButton.qml
deleted file mode 100644
index f93f2425..00000000
--- a/src/quickcontrols2/material/RoundButton.qml
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.RoundButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- topInset: 6
- leftInset: 6
- rightInset: 6
- bottomInset: 6
- padding: 12
- spacing: 6
-
- icon.width: 24
- icon.height: 24
- icon.color: !enabled ? Material.hintTextColor :
- flat && highlighted ? Material.accentColor :
- highlighted ? Material.primaryHighlightedTextColor : Material.foreground
-
- Material.elevation: flat ? control.down || control.hovered ? 2 : 0
- : control.down ? 12 : 6
- Material.background: flat ? "transparent" : undefined
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: !control.enabled ? control.Material.hintTextColor :
- control.flat && control.highlighted ? control.Material.accentColor :
- control.highlighted ? control.Material.primaryHighlightedTextColor : control.Material.foreground
- }
-
- // TODO: Add a proper ripple/ink effect for mouse/touch input and focus state
- background: Rectangle {
- implicitWidth: control.Material.buttonHeight
- implicitHeight: control.Material.buttonHeight
-
- radius: control.radius
- color: !control.enabled ? control.Material.buttonDisabledColor
- : control.checked || control.highlighted ? control.Material.highlightedButtonColor : control.Material.buttonColor
-
- Rectangle {
- width: parent.width
- height: parent.height
- radius: control.radius
- visible: control.hovered || control.visualFocus
- color: control.Material.rippleColor
- }
-
- Rectangle {
- width: parent.width
- height: parent.height
- radius: control.radius
- visible: control.down
- color: control.Material.rippleColor
- }
-
- // The layer is disabled when the button color is transparent so that you can do
- // Material.background: "transparent" and get a proper flat button without needing
- // to set Material.elevation as well
- layer.enabled: control.enabled && control.Material.buttonColor.a > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
- }
-}
diff --git a/src/quickcontrols2/material/ScrollBar.qml b/src/quickcontrols2/material/ScrollBar.qml
deleted file mode 100644
index 55de0d13..00000000
--- a/src/quickcontrols2/material/ScrollBar.qml
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.ScrollBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: control.interactive ? 1 : 2
- visible: control.policy !== T.ScrollBar.AlwaysOff
- minimumSize: orientation == Qt.Horizontal ? height / width : width / height
-
- contentItem: Rectangle {
- implicitWidth: control.interactive ? 13 : 4
- implicitHeight: control.interactive ? 13 : 4
-
- color: control.pressed ? control.Material.scrollBarPressedColor :
- control.interactive && control.hovered ? control.Material.scrollBarHoveredColor : control.Material.scrollBarColor
- opacity: 0.0
- }
-
- background: Rectangle {
- implicitWidth: control.interactive ? 16 : 4
- implicitHeight: control.interactive ? 16 : 4
- color: "#0e000000"
- opacity: 0.0
- visible: control.interactive
- }
-
- states: State {
- name: "active"
- when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
- }
-
- transitions: [
- Transition {
- to: "active"
- NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 1.0 }
- },
- Transition {
- from: "active"
- SequentialAnimation {
- PropertyAction{ targets: [control.contentItem, control.background]; property: "opacity"; value: 1.0 }
- PauseAnimation { duration: 2450 }
- NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 0.0 }
- }
- }
- ]
-}
diff --git a/src/quickcontrols2/material/ScrollIndicator.qml b/src/quickcontrols2/material/ScrollIndicator.qml
deleted file mode 100644
index bc81c630..00000000
--- a/src/quickcontrols2/material/ScrollIndicator.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.ScrollIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 2
-
- contentItem: Rectangle {
- implicitWidth: 4
- implicitHeight: 4
-
- color: control.Material.scrollBarColor
- visible: control.size < 1.0
- opacity: 0.0
-
- states: State {
- name: "active"
- when: control.active
- PropertyChanges { target: control.contentItem; opacity: 0.75 }
- }
-
- transitions: [
- Transition {
- from: "active"
- SequentialAnimation {
- PauseAnimation { duration: 450 }
- NumberAnimation { target: control.contentItem; duration: 200; property: "opacity"; to: 0.0 }
- }
- }
- ]
- }
-}
diff --git a/src/quickcontrols2/material/ScrollView.qml b/src/quickcontrols2/material/ScrollView.qml
deleted file mode 100644
index a6bba9de..00000000
--- a/src/quickcontrols2/material/ScrollView.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ScrollView {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- ScrollBar.vertical: ScrollBar {
- parent: control
- x: control.mirrored ? 0 : control.width - width
- y: control.topPadding
- height: control.availableHeight
- active: control.ScrollBar.horizontal.active
- }
-
- ScrollBar.horizontal: ScrollBar {
- parent: control
- x: control.leftPadding
- y: control.height - height
- width: control.availableWidth
- active: control.ScrollBar.vertical.active
- }
-}
diff --git a/src/quickcontrols2/material/Slider.qml b/src/quickcontrols2/material/Slider.qml
deleted file mode 100644
index 2a366734..00000000
--- a/src/quickcontrols2/material/Slider.qml
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.Slider {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitHandleWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitHandleHeight + topPadding + bottomPadding)
-
- padding: 6
-
- handle: SliderHandle {
- x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
- value: control.value
- handleHasFocus: control.visualFocus
- handlePressed: control.pressed
- handleHovered: control.hovered
- }
-
- background: Rectangle {
- x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
- implicitWidth: control.horizontal ? 200 : 48
- implicitHeight: control.horizontal ? 48 : 200
- width: control.horizontal ? control.availableWidth : 4
- height: control.horizontal ? 4 : control.availableHeight
- scale: control.horizontal && control.mirrored ? -1 : 1
- color: control.enabled ? Color.transparent(control.Material.accentColor, 0.33) : control.Material.sliderDisabledColor
-
- Rectangle {
- x: control.horizontal ? 0 : (parent.width - width) / 2
- y: control.horizontal ? (parent.height - height) / 2 : control.visualPosition * parent.height
- width: control.horizontal ? control.position * parent.width : 4
- height: control.horizontal ? 4 : control.position * parent.height
-
- color: control.enabled ? control.Material.accentColor : control.Material.sliderDisabledColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/SpinBox.qml b/src/quickcontrols2/material/SpinBox.qml
deleted file mode 100644
index 4f69dd25..00000000
--- a/src/quickcontrols2/material/SpinBox.qml
+++ /dev/null
@@ -1,156 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.SpinBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth +
- up.implicitIndicatorWidth +
- down.implicitIndicatorWidth)
- implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight,
- up.implicitIndicatorHeight,
- down.implicitIndicatorHeight)
-
- spacing: 6
- topPadding: 8
- bottomPadding: 16
- leftPadding: (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
- rightPadding: (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
-
- validator: IntValidator {
- locale: control.locale.name
- bottom: Math.min(control.from, control.to)
- top: Math.max(control.from, control.to)
- }
-
- contentItem: TextInput {
- text: control.displayText
-
- font: control.font
- color: enabled ? control.Material.foreground : control.Material.hintTextColor
- selectionColor: control.Material.textSelectionColor
- selectedTextColor: control.Material.foreground
- horizontalAlignment: Qt.AlignHCenter
- verticalAlignment: Qt.AlignVCenter
-
- cursorDelegate: CursorDelegate { }
-
- readOnly: !control.editable
- validator: control.validator
- inputMethodHints: control.inputMethodHints
- }
-
- up.indicator: Item {
- x: control.mirrored ? 0 : parent.width - width
- implicitWidth: control.Material.touchTarget
- implicitHeight: control.Material.touchTarget
- height: parent.height
- width: height
-
- Ripple {
- clipRadius: 2
- x: control.spacing
- y: control.spacing
- width: parent.width - 2 * control.spacing
- height: parent.height - 2 * control.spacing
- pressed: control.up.pressed
- active: control.up.pressed || control.up.hovered || control.visualFocus
- color: control.Material.rippleColor
- }
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: Math.min(parent.width / 3, parent.height / 3)
- height: 2
- color: enabled ? control.Material.foreground : control.Material.spinBoxDisabledIconColor
- }
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 2
- height: Math.min(parent.width / 3, parent.height / 3)
- color: enabled ? control.Material.foreground : control.Material.spinBoxDisabledIconColor
- }
- }
-
- down.indicator: Item {
- x: control.mirrored ? parent.width - width : 0
- implicitWidth: control.Material.touchTarget
- implicitHeight: control.Material.touchTarget
- height: parent.height
- width: height
-
- Ripple {
- clipRadius: 2
- x: control.spacing
- y: control.spacing
- width: parent.width - 2 * control.spacing
- height: parent.height - 2 * control.spacing
- pressed: control.down.pressed
- active: control.down.pressed || control.down.hovered || control.visualFocus
- color: control.Material.rippleColor
- }
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: parent.width / 3
- height: 2
- color: enabled ? control.Material.foreground : control.Material.spinBoxDisabledIconColor
- }
- }
-
- background: Item {
- implicitWidth: 192
- implicitHeight: control.Material.touchTarget
-
- Rectangle {
- x: parent.width / 2 - width / 2
- y: parent.y + parent.height - height - control.bottomPadding / 2
- width: control.availableWidth
- height: control.activeFocus ? 2 : 1
- color: control.activeFocus ? control.Material.accentColor : control.Material.hintTextColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/SplitView.qml b/src/quickcontrols2/material/SplitView.qml
deleted file mode 100644
index 95556cd0..00000000
--- a/src/quickcontrols2/material/SplitView.qml
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-
-T.SplitView {
- id: control
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- handle: Rectangle {
- implicitWidth: control.orientation === Qt.Horizontal ? 6 : control.width
- implicitHeight: control.orientation === Qt.Horizontal ? control.height : 6
- color: T.SplitHandle.pressed ? control.Material.background
- : Qt.lighter(control.Material.background, T.SplitHandle.hovered ? 1.2 : 1.1)
-
- Rectangle {
- color: control.Material.secondaryTextColor
- width: control.orientation === Qt.Horizontal ? thickness : length
- height: control.orientation === Qt.Horizontal ? length : thickness
- radius: thickness
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
-
- property int length: parent.T.SplitHandle.pressed ? 3 : 8
- readonly property int thickness: parent.T.SplitHandle.pressed ? 3 : 1
-
- Behavior on length {
- NumberAnimation {
- duration: 100
- }
- }
- }
- }
-}
diff --git a/src/quickcontrols2/material/StackView.qml b/src/quickcontrols2/material/StackView.qml
deleted file mode 100644
index 4c3e6749..00000000
--- a/src/quickcontrols2/material/StackView.qml
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.StackView {
- id: control
-
- popEnter: Transition {
- // slide_in_left
- NumberAnimation { property: "x"; from: (control.mirrored ? -0.5 : 0.5) * -control.width; to: 0; duration: 200; easing.type: Easing.OutCubic }
- NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 200; easing.type: Easing.OutCubic }
- }
-
- popExit: Transition {
- // slide_out_right
- NumberAnimation { property: "x"; from: 0; to: (control.mirrored ? -0.5 : 0.5) * control.width; duration: 200; easing.type: Easing.OutCubic }
- NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; duration: 200; easing.type: Easing.OutCubic }
- }
-
- pushEnter: Transition {
- // slide_in_right
- NumberAnimation { property: "x"; from: (control.mirrored ? -0.5 : 0.5) * control.width; to: 0; duration: 200; easing.type: Easing.OutCubic }
- NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 200; easing.type: Easing.OutCubic }
- }
-
- pushExit: Transition {
- // slide_out_left
- NumberAnimation { property: "x"; from: 0; to: (control.mirrored ? -0.5 : 0.5) * -control.width; duration: 200; easing.type: Easing.OutCubic }
- NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; duration: 200; easing.type: Easing.OutCubic }
- }
-
- replaceEnter: Transition {
- // slide_in_right
- NumberAnimation { property: "x"; from: (control.mirrored ? -0.5 : 0.5) * control.width; to: 0; duration: 200; easing.type: Easing.OutCubic }
- NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; duration: 200; easing.type: Easing.OutCubic }
- }
-
- replaceExit: Transition {
- // slide_out_left
- NumberAnimation { property: "x"; from: 0; to: (control.mirrored ? -0.5 : 0.5) * -control.width; duration: 200; easing.type: Easing.OutCubic }
- NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; duration: 200; easing.type: Easing.OutCubic }
- }
-}
diff --git a/src/quickcontrols2/material/SwipeDelegate.qml b/src/quickcontrols2/material/SwipeDelegate.qml
deleted file mode 100644
index c7aff94a..00000000
--- a/src/quickcontrols2/material/SwipeDelegate.qml
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.SwipeDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 16
- verticalPadding: 8
- spacing: 16
-
- icon.width: 24
- icon.height: 24
- icon.color: enabled ? Material.foreground : Material.hintTextColor
-
- swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } }
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- }
-
- background: Rectangle {
- implicitHeight: control.Material.delegateHeight
-
- color: control.Material.backgroundColor
-
- Rectangle {
- width: parent.width
- height: parent.height
- visible: control.highlighted
- color: control.Material.listHighlightColor
- }
-
- Ripple {
- width: parent.width
- height: parent.height
-
- clip: visible
- pressed: control.pressed
- anchor: control
- active: control.down || control.visualFocus || control.hovered
- color: control.Material.rippleColor
- enabled: control.swipe.position === 0
- }
- }
-}
diff --git a/src/quickcontrols2/material/SwipeView.qml b/src/quickcontrols2/material/SwipeView.qml
deleted file mode 100644
index cd4da229..00000000
--- a/src/quickcontrols2/material/SwipeView.qml
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.SwipeView {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- contentItem: ListView {
- model: control.contentModel
- interactive: control.interactive
- currentIndex: control.currentIndex
- focus: control.focus
-
- spacing: control.spacing
- orientation: control.orientation
- snapMode: ListView.SnapOneItem
- boundsBehavior: Flickable.StopAtBounds
-
- highlightRangeMode: ListView.StrictlyEnforceRange
- preferredHighlightBegin: 0
- preferredHighlightEnd: 0
- highlightMoveDuration: 250
- maximumFlickVelocity: 4 * (control.orientation === Qt.Horizontal ? width : height)
- }
-}
diff --git a/src/quickcontrols2/material/Switch.qml b/src/quickcontrols2/material/Switch.qml
deleted file mode 100644
index a43e8730..00000000
--- a/src/quickcontrols2/material/Switch.qml
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-import QtQuick.Templates as T
-
-T.Switch {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 8
- spacing: 8
-
- indicator: SwitchIndicator {
- x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
-
- Ripple {
- x: parent.handle.x + parent.handle.width / 2 - width / 2
- y: parent.handle.y + parent.handle.height / 2 - height / 2
- width: 28; height: 28
- pressed: control.pressed
- active: control.down || control.visualFocus || control.hovered
- color: control.checked ? control.Material.highlightedRippleColor : control.Material.rippleColor
- }
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
-}
diff --git a/src/quickcontrols2/material/SwitchDelegate.qml b/src/quickcontrols2/material/SwitchDelegate.qml
deleted file mode 100644
index fd7b7ab0..00000000
--- a/src/quickcontrols2/material/SwitchDelegate.qml
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.SwitchDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 16
- verticalPadding: Material.switchDelegateVerticalPadding
- spacing: 16
-
- icon.width: 24
- icon.height: 24
- icon.color: enabled ? Material.foreground : Material.hintTextColor
-
- indicator: SwitchIndicator {
- x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: IconLabel {
- leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
- rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.enabled ? control.Material.foreground : control.Material.hintTextColor
- }
-
- background: Rectangle {
- implicitHeight: control.Material.delegateHeight
-
- color: control.highlighted ? control.Material.listHighlightColor : "transparent"
-
- Ripple {
- width: parent.width
- height: parent.height
-
- clip: visible
- pressed: control.pressed
- anchor: control
- active: control.down || control.visualFocus || control.hovered
- color: control.Material.rippleColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/TabBar.qml b/src/quickcontrols2/material/TabBar.qml
deleted file mode 100644
index 9e9585f3..00000000
--- a/src/quickcontrols2/material/TabBar.qml
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.TabBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- spacing: 1
-
- contentItem: ListView {
- model: control.contentModel
- currentIndex: control.currentIndex
-
- spacing: control.spacing
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- flickableDirection: Flickable.AutoFlickIfNeeded
- snapMode: ListView.SnapToItem
-
- highlightMoveDuration: 250
- highlightResizeDuration: 0
- highlightFollowsCurrentItem: true
- highlightRangeMode: ListView.ApplyRange
- preferredHighlightBegin: 48
- preferredHighlightEnd: width - 48
-
- highlight: Item {
- z: 2
- Rectangle {
- height: 2
- width: parent.width
- y: control.position === T.TabBar.Footer ? 0 : parent.height - height
- color: control.Material.accentColor
- }
- }
- }
-
- background: Rectangle {
- color: control.Material.backgroundColor
-
- layer.enabled: control.Material.elevation > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- fullWidth: true
- }
- }
-}
diff --git a/src/quickcontrols2/material/TabButton.qml b/src/quickcontrols2/material/TabButton.qml
deleted file mode 100644
index bae0cdb8..00000000
--- a/src/quickcontrols2/material/TabButton.qml
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.TabButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 12
- spacing: 6
-
- icon.width: 24
- icon.height: 24
- icon.color: !enabled ? Material.hintTextColor : down || checked ? Material.accentColor : Material.foreground
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: !control.enabled ? control.Material.hintTextColor : control.down || control.checked ? control.Material.accentColor : control.Material.foreground
- }
-
- background: Ripple {
- implicitHeight: control.Material.touchTarget
-
- clip: true
- pressed: control.pressed
- anchor: control
- active: control.down || control.visualFocus || control.hovered
- color: control.Material.rippleColor
- }
-}
diff --git a/src/quickcontrols2/material/TextArea.qml b/src/quickcontrols2/material/TextArea.qml
deleted file mode 100644
index a213bd7a..00000000
--- a/src/quickcontrols2/material/TextArea.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.TextArea {
- id: control
-
- implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
- implicitBackgroundWidth + leftInset + rightInset,
- placeholder.implicitWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight + topInset + bottomInset,
- placeholder.implicitHeight + 1 + topPadding + bottomPadding)
-
- topPadding: 8
- bottomPadding: 16
-
- color: enabled ? Material.foreground : Material.hintTextColor
- selectionColor: Material.accentColor
- selectedTextColor: Material.primaryHighlightedTextColor
- placeholderTextColor: Material.hintTextColor
- cursorDelegate: CursorDelegate { }
-
- PlaceholderText {
- id: placeholder
- x: control.leftPadding
- y: control.topPadding
- width: control.width - (control.leftPadding + control.rightPadding)
- height: control.height - (control.topPadding + control.bottomPadding)
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- verticalAlignment: control.verticalAlignment
- elide: Text.ElideRight
- renderType: control.renderType
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- }
-
- background: Rectangle {
- y: parent.height - height - control.bottomPadding / 2
- implicitWidth: 120
- height: control.activeFocus ? 2 : 1
- color: control.activeFocus ? control.Material.accentColor : control.Material.hintTextColor
- }
-}
diff --git a/src/quickcontrols2/material/TextField.qml b/src/quickcontrols2/material/TextField.qml
deleted file mode 100644
index 8623ddf5..00000000
--- a/src/quickcontrols2/material/TextField.qml
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.TextField {
- id: control
-
- implicitWidth: implicitBackgroundWidth + leftInset + rightInset
- || Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding,
- placeholder.implicitHeight + topPadding + bottomPadding)
-
- topPadding: 8
- bottomPadding: 16
-
- color: enabled ? Material.foreground : Material.hintTextColor
- selectionColor: Material.accentColor
- selectedTextColor: Material.primaryHighlightedTextColor
- placeholderTextColor: Material.hintTextColor
- verticalAlignment: TextInput.AlignVCenter
-
- cursorDelegate: CursorDelegate { }
-
- PlaceholderText {
- id: placeholder
- x: control.leftPadding
- y: control.topPadding
- width: control.width - (control.leftPadding + control.rightPadding)
- height: control.height - (control.topPadding + control.bottomPadding)
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- verticalAlignment: control.verticalAlignment
- elide: Text.ElideRight
- renderType: control.renderType
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- }
-
- background: Rectangle {
- y: control.height - height - control.bottomPadding + 8
- implicitWidth: 120
- height: control.activeFocus || control.hovered ? 2 : 1
- color: control.activeFocus ? control.Material.accentColor
- : (control.hovered ? control.Material.primaryTextColor : control.Material.hintTextColor)
- }
-}
diff --git a/src/quickcontrols2/material/ToolBar.qml b/src/quickcontrols2/material/ToolBar.qml
deleted file mode 100644
index a1aa82bd..00000000
--- a/src/quickcontrols2/material/ToolBar.qml
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.ToolBar {
- id: control
-
- Material.elevation: 4
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- Material.foreground: Material.toolTextColor
-
- spacing: 16
-
- background: Rectangle {
- implicitHeight: 48
- color: control.Material.toolBarColor
-
- layer.enabled: control.Material.elevation > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- fullWidth: true
- }
- }
-}
diff --git a/src/quickcontrols2/material/ToolButton.qml b/src/quickcontrols2/material/ToolButton.qml
deleted file mode 100644
index be7ae332..00000000
--- a/src/quickcontrols2/material/ToolButton.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.ToolButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- icon.width: 24
- icon.height: 24
- icon.color: !enabled ? Material.hintTextColor : checked || highlighted ? Material.accent : Material.foreground
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: !control.enabled ? control.Material.hintTextColor :
- control.checked || control.highlighted ? control.Material.accent : control.Material.foreground
- }
-
- background: Ripple {
- implicitWidth: control.Material.touchTarget
- implicitHeight: control.Material.touchTarget
-
- readonly property bool square: control.contentItem.width <= control.contentItem.height
-
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- clip: !square
- width: square ? parent.height / 2 : parent.width
- height: square ? parent.height / 2 : parent.height
- pressed: control.pressed
- anchor: control
- active: control.enabled && (control.down || control.visualFocus || control.hovered)
- color: control.Material.rippleColor
- }
-}
diff --git a/src/quickcontrols2/material/ToolSeparator.qml b/src/quickcontrols2/material/ToolSeparator.qml
deleted file mode 100644
index 4bce553d..00000000
--- a/src/quickcontrols2/material/ToolSeparator.qml
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.ToolSeparator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- horizontalPadding: vertical ? 12 : 5
- verticalPadding: vertical ? 5 : 12
-
- contentItem: Rectangle {
- implicitWidth: vertical ? 1 : 38
- implicitHeight: vertical ? 38 : 1
- color: control.Material.hintTextColor
- }
-}
diff --git a/src/quickcontrols2/material/ToolTip.qml b/src/quickcontrols2/material/ToolTip.qml
deleted file mode 100644
index 033e48a3..00000000
--- a/src/quickcontrols2/material/ToolTip.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.ToolTip {
- id: control
-
- x: parent ? (parent.width - implicitWidth) / 2 : 0
- y: -implicitHeight - 24
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- margins: 12
- padding: 8
- horizontalPadding: padding + 8
-
- closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
-
- Material.theme: Material.Dark
-
- enter: Transition {
- // toast_enter
- NumberAnimation { property: "opacity"; from: 0.0; to: 1.0; easing.type: Easing.OutQuad; duration: 500 }
- }
-
- exit: Transition {
- // toast_exit
- NumberAnimation { property: "opacity"; from: 1.0; to: 0.0; easing.type: Easing.InQuad; duration: 500 }
- }
-
- contentItem: Text {
- text: control.text
- font: control.font
- wrapMode: Text.Wrap
- color: control.Material.foreground
- }
-
- background: Rectangle {
- implicitHeight: control.Material.tooltipHeight
- color: control.Material.tooltipColor
- opacity: 0.9
- radius: 2
- }
-}
diff --git a/src/quickcontrols2/material/Tumbler.qml b/src/quickcontrols2/material/Tumbler.qml
deleted file mode 100644
index 2c1e5d66..00000000
--- a/src/quickcontrols2/material/Tumbler.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-
-T.Tumbler {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- delegate: Text {
- text: modelData
- color: control.Material.foreground
- font: control.font
- opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
-
- contentItem: TumblerView {
- implicitWidth: 60
- implicitHeight: 200
- model: control.model
- delegate: control.delegate
- path: Path {
- startX: control.contentItem.width / 2
- startY: -control.contentItem.delegateHeight / 2
- PathLine {
- x: control.contentItem.width / 2
- y: (control.visibleItemCount + 1) * control.contentItem.delegateHeight - control.contentItem.delegateHeight / 2
- }
- }
-
- property real delegateHeight: control.availableHeight / control.visibleItemCount
- }
-}
diff --git a/src/quickcontrols2/material/VerticalHeaderView.qml b/src/quickcontrols2/material/VerticalHeaderView.qml
deleted file mode 100644
index 9769627e..00000000
--- a/src/quickcontrols2/material/VerticalHeaderView.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-T.VerticalHeaderView {
- id: control
-
- implicitWidth: contentWidth
- implicitHeight: syncView ? syncView.height : 0
-
- delegate: Rectangle {
- // Qt6: add cellPadding (and font etc) as public API in headerview
- readonly property real cellPadding: 8
-
- implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2))
- implicitHeight: text.implicitHeight + (cellPadding * 2)
- color: control.Material.backgroundColor
-
- Text {
- id: text
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
- : model[control.textRole])
- : modelData
- width: parent.width
- height: parent.height
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- color: enabled ? control.Material.foreground : control.Material.hintTextColor
- }
- }
-}
diff --git a/src/quickcontrols2/material/images/arrow-indicator.png b/src/quickcontrols2/material/images/arrow-indicator.png
deleted file mode 100644
index 5a978001..00000000
--- a/src/quickcontrols2/material/images/arrow-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/images/arrow-indicator.svg b/src/quickcontrols2/material/images/arrow-indicator.svg
deleted file mode 100644
index 1e7217c8..00000000
--- a/src/quickcontrols2/material/images/arrow-indicator.svg
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="5"
- height="10"
- viewBox="0 0 5 10"
- version="1.1"
- id="svg2"
- inkscape:version="0.91 r13725"
- sodipodi:docname="arrow-indicator.svg">
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="2560"
- inkscape:window-height="1571"
- id="namedview6"
- showgrid="false"
- inkscape:zoom="27.812867"
- inkscape:cx="13.137558"
- inkscape:cy="12.83583"
- inkscape:window-x="0"
- inkscape:window-y="55"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg2" />
- <path
- d="M 0,10 5,5 0,0 Z"
- id="path4"
- inkscape:connector-curvature="0"
- style="fill:#757575" />
-</svg>
diff --git a/src/quickcontrols2/material/images/arrow-indicator@2x.png b/src/quickcontrols2/material/images/arrow-indicator@2x.png
deleted file mode 100644
index 37ce3a95..00000000
--- a/src/quickcontrols2/material/images/arrow-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/images/arrow-indicator@3x.png b/src/quickcontrols2/material/images/arrow-indicator@3x.png
deleted file mode 100644
index 57abd972..00000000
--- a/src/quickcontrols2/material/images/arrow-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/images/arrow-indicator@4x.png b/src/quickcontrols2/material/images/arrow-indicator@4x.png
deleted file mode 100644
index 26d3d7c1..00000000
--- a/src/quickcontrols2/material/images/arrow-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/images/check.png b/src/quickcontrols2/material/images/check.png
deleted file mode 100644
index 756a43a5..00000000
--- a/src/quickcontrols2/material/images/check.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/images/check@2x.png b/src/quickcontrols2/material/images/check@2x.png
deleted file mode 100644
index 9d1d6a32..00000000
--- a/src/quickcontrols2/material/images/check@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/images/check@3x.png b/src/quickcontrols2/material/images/check@3x.png
deleted file mode 100644
index 32ed72f0..00000000
--- a/src/quickcontrols2/material/images/check@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/images/check@4x.png b/src/quickcontrols2/material/images/check@4x.png
deleted file mode 100644
index 1767cee6..00000000
--- a/src/quickcontrols2/material/images/check@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/images/drop-indicator.png b/src/quickcontrols2/material/images/drop-indicator.png
deleted file mode 100644
index 93560f50..00000000
--- a/src/quickcontrols2/material/images/drop-indicator.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/images/drop-indicator.svg b/src/quickcontrols2/material/images/drop-indicator.svg
deleted file mode 100644
index 94b5ca15..00000000
--- a/src/quickcontrols2/material/images/drop-indicator.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" version="1.1">
- <path d="M7,10l5,5,5-5z" fill="#757575"/>
-</svg>
diff --git a/src/quickcontrols2/material/images/drop-indicator@2x.png b/src/quickcontrols2/material/images/drop-indicator@2x.png
deleted file mode 100644
index d32f8160..00000000
--- a/src/quickcontrols2/material/images/drop-indicator@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/images/drop-indicator@3x.png b/src/quickcontrols2/material/images/drop-indicator@3x.png
deleted file mode 100644
index 34c3e7d1..00000000
--- a/src/quickcontrols2/material/images/drop-indicator@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/images/drop-indicator@4x.png b/src/quickcontrols2/material/images/drop-indicator@4x.png
deleted file mode 100644
index 0613f6dd..00000000
--- a/src/quickcontrols2/material/images/drop-indicator@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/impl/BoxShadow.qml b/src/quickcontrols2/material/impl/BoxShadow.qml
deleted file mode 100644
index ea09570e..00000000
--- a/src/quickcontrols2/material/impl/BoxShadow.qml
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-/*
- A implementation of CSS's box-shadow, used by ElevationEffect for a Material Design
- elevation shadow effect.
- */
-RectangularGlow {
- // The 4 properties from CSS box-shadow, plus the inherited color property
- property int offsetX
- property int offsetY
- property int blurRadius
- property int spreadRadius
-
- // The source item the shadow is being applied to, used for correctly
- // calculating the corner radious
- property Item source
-
- property bool fullWidth
- property bool fullHeight
-
- x: (parent.width - width)/2 + offsetX
- y: (parent.height - height)/2 + offsetY
-
- implicitWidth: source ? source.width : parent.width
- implicitHeight: source ? source.height : parent.height
-
- width: implicitWidth + 2 * spreadRadius + (fullWidth ? 2 * cornerRadius : 0)
- height: implicitHeight + 2 * spreadRadius + (fullHeight ? 2 * cornerRadius : 0)
- glowRadius: blurRadius/2
- spread: 0.05
- cornerRadius: blurRadius + (source && source.radius || 0)
-}
diff --git a/src/quickcontrols2/material/impl/CMakeLists.txt b/src/quickcontrols2/material/impl/CMakeLists.txt
deleted file mode 100644
index 289a4b05..00000000
--- a/src/quickcontrols2/material/impl/CMakeLists.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-#####################################################################
-## qtquickcontrols2materialstyleimplplugin Plugin:
-#####################################################################
-
-set(qml_files
- "BoxShadow.qml"
- "CheckIndicator.qml"
- "CursorDelegate.qml"
- "ElevationEffect.qml"
- "RadioIndicator.qml"
- "RectangularGlow.qml"
- "SliderHandle.qml"
- "SwitchIndicator.qml"
-)
-set_source_files_properties(${qml_files} PROPERTIES
- QT_QML_SOURCE_VERSION "2.0"
-)
-
-qt_internal_add_qml_module(qtquickcontrols2materialstyleimplplugin
- URI "QtQuick.Controls.Material.impl"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2MaterialStyleImplPlugin
- PLUGIN_TARGET qtquickcontrols2materialstyleimplplugin
- NO_PLUGIN_OPTIONAL
- SOURCES
- qquickmaterialbusyindicator.cpp qquickmaterialbusyindicator_p.h
- qquickmaterialprogressbar.cpp qquickmaterialprogressbar_p.h
- qquickmaterialripple.cpp qquickmaterialripple_p.h
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::Gui
- Qt::QmlPrivate
- Qt::QuickControls2ImplPrivate
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
diff --git a/src/quickcontrols2/material/impl/CheckIndicator.qml b/src/quickcontrols2/material/impl/CheckIndicator.qml
deleted file mode 100644
index b6593fab..00000000
--- a/src/quickcontrols2/material/impl/CheckIndicator.qml
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-Rectangle {
- id: indicatorItem
- implicitWidth: 18
- implicitHeight: 18
- color: "transparent"
- border.color: !control.enabled ? control.Material.hintTextColor
- : checkState !== Qt.Unchecked ? control.Material.accentColor : control.Material.secondaryTextColor
- border.width: checkState !== Qt.Unchecked ? width / 2 : 2
- radius: 2
-
- property Item control
- property int checkState: control.checkState
-
- Behavior on border.width {
- NumberAnimation {
- duration: 100
- easing.type: Easing.OutCubic
- }
- }
-
- Behavior on border.color {
- ColorAnimation {
- duration: 100
- easing.type: Easing.OutCubic
- }
- }
-
- // TODO: This needs to be transparent
- Image {
- id: checkImage
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 14
- height: 14
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Material/images/check.png"
- fillMode: Image.PreserveAspectFit
-
- scale: indicatorItem.checkState === Qt.Checked ? 1 : 0
- Behavior on scale { NumberAnimation { duration: 100 } }
- }
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 12
- height: 3
-
- scale: indicatorItem.checkState === Qt.PartiallyChecked ? 1 : 0
- Behavior on scale { NumberAnimation { duration: 100 } }
- }
-
- states: [
- State {
- name: "checked"
- when: indicatorItem.checkState === Qt.Checked
- },
- State {
- name: "partiallychecked"
- when: indicatorItem.checkState === Qt.PartiallyChecked
- }
- ]
-
- transitions: Transition {
- SequentialAnimation {
- NumberAnimation {
- target: indicatorItem
- property: "scale"
- // Go down 2 pixels in size.
- to: 1 - 2 / indicatorItem.width
- duration: 120
- }
- NumberAnimation {
- target: indicatorItem
- property: "scale"
- to: 1
- duration: 120
- }
- }
- }
-}
diff --git a/src/quickcontrols2/material/impl/CursorDelegate.qml b/src/quickcontrols2/material/impl/CursorDelegate.qml
deleted file mode 100644
index a913ab84..00000000
--- a/src/quickcontrols2/material/impl/CursorDelegate.qml
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.Material
-
-Rectangle {
- id: cursor
-
- color: parent.Material.accentColor
- width: 2
- visible: parent.activeFocus && !parent.readOnly && parent.selectionStart === parent.selectionEnd
-
- Connections {
- target: cursor.parent
- function onCursorPositionChanged() {
- // keep a moving cursor visible
- cursor.opacity = 1
- timer.restart()
- }
- }
-
- Timer {
- id: timer
- running: cursor.parent.activeFocus && !cursor.parent.readOnly && interval != 0
- repeat: true
- interval: Qt.styleHints.cursorFlashTime / 2
- onTriggered: cursor.opacity = !cursor.opacity ? 1 : 0
- // force the cursor visible when gaining focus
- onRunningChanged: cursor.opacity = 1
- }
-}
diff --git a/src/quickcontrols2/material/impl/ElevationEffect.qml b/src/quickcontrols2/material/impl/ElevationEffect.qml
deleted file mode 100644
index 8a4e98e3..00000000
--- a/src/quickcontrols2/material/impl/ElevationEffect.qml
+++ /dev/null
@@ -1,279 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-/*
- An effect for standard Material Design elevation shadows. Useful for using as \c layer.effect.
- */
-Item {
- id: effect
-
- /*
- The source the effect is applied to.
- */
- property var source
-
- /*
- The elevation of the \l source Item.
- */
- property int elevation: 0
-
- /*
- Set to \c true if the \l source Item is the same width as its parent and the shadow
- should be full width instead of rounding around the corner of the Item.
-
- \sa fullHeight
- */
- property bool fullWidth: false
-
- /*
- Set to \c true if the \l source Item is the same height as its parent and the shadow
- should be full height instead of rounding around the corner of the Item.
-
- \sa fullWidth
- */
- property bool fullHeight: false
-
- /*
- \internal
-
- The actual source Item the effect is applied to.
- */
- readonly property Item sourceItem: source.sourceItem
-
- /*
- * The following shadow values are taken from Angular Material
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2014-2016 Google, Inc. http://angularjs.org
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
- /*
- \internal
-
- The shadows to use for each possible elevation. There are three shadows that when combined
- make up the elevation.
- */
- readonly property var _shadows: [
- [{offset: 0, blur: 0, spread: 0},
- {offset: 0, blur: 0, spread: 0},
- {offset: 0, blur: 0, spread: 0}],
-
- [{offset: 1, blur: 3, spread: 0},
- {offset: 1, blur: 1, spread: 0},
- {offset: 2, blur: 1, spread: -1}],
-
- [{offset: 1, blur: 5, spread: 0},
- {offset: 2, blur: 2, spread: 0},
- {offset: 3, blur: 1, spread: -2}],
-
- [{offset: 1, blur: 8, spread: 0},
- {offset: 3, blur: 4, spread: 0},
- {offset: 3, blur: 3, spread: -2}],
-
- [{offset: 2, blur: 4, spread: -1},
- {offset: 4, blur: 5, spread: 0},
- {offset: 1, blur: 10, spread: 0}],
-
- [{offset: 3, blur: 5, spread: -1},
- {offset: 5, blur: 8, spread: 0},
- {offset: 1, blur: 14, spread: 0}],
-
- [{offset: 3, blur: 5, spread: -1},
- {offset: 6, blur: 10, spread: 0},
- {offset: 1, blur: 18, spread: 0}],
-
- [{offset: 4, blur: 5, spread: -2},
- {offset: 7, blur: 10, spread: 1},
- {offset: 2, blur: 16, spread: 1}],
-
- [{offset: 5, blur: 5, spread: -3},
- {offset: 8, blur: 10, spread: 1},
- {offset: 3, blur: 14, spread: 2}],
-
- [{offset: 5, blur: 6, spread: -3},
- {offset: 9, blur: 12, spread: 1},
- {offset: 3, blur: 16, spread: 2}],
-
- [{offset: 6, blur: 6, spread: -3},
- {offset: 10, blur: 14, spread: 1},
- {offset: 4, blur: 18, spread: 3}],
-
- [{offset: 6, blur: 7, spread: -4},
- {offset: 11, blur: 15, spread: 1},
- {offset: 4, blur: 20, spread: 3}],
-
- [{offset: 7, blur: 8, spread: -4},
- {offset: 12, blur: 17, spread: 2},
- {offset: 5, blur: 22, spread: 4}],
-
- [{offset: 7, blur: 8, spread: -4},
- {offset: 13, blur: 19, spread: 2},
- {offset: 5, blur: 24, spread: 4}],
-
- [{offset: 7, blur: 9, spread: -4},
- {offset: 14, blur: 21, spread: 2},
- {offset: 5, blur: 26, spread: 4}],
-
- [{offset: 8, blur: 9, spread: -5},
- {offset: 15, blur: 22, spread: 2},
- {offset: 6, blur: 28, spread: 5}],
-
- [{offset: 8, blur: 10, spread: -5},
- {offset: 16, blur: 24, spread: 2},
- {offset: 6, blur: 30, spread: 5}],
-
- [{offset: 8, blur: 11, spread: -5},
- {offset: 17, blur: 26, spread: 2},
- {offset: 6, blur: 32, spread: 5}],
-
- [{offset: 9, blur: 11, spread: -5},
- {offset: 18, blur: 28, spread: 2},
- {offset: 7, blur: 34, spread: 6}],
-
- [{offset: 9, blur: 12, spread: -6},
- {offset: 19, blur: 29, spread: 2},
- {offset: 7, blur: 36, spread: 6}],
-
- [{offset: 10, blur: 13, spread: -6},
- {offset: 20, blur: 31, spread: 3},
- {offset: 8, blur: 38, spread: 7}],
-
- [{offset: 10, blur: 13, spread: -6},
- {offset: 21, blur: 33, spread: 3},
- {offset: 8, blur: 40, spread: 7}],
-
- [{offset: 10, blur: 14, spread: -6},
- {offset: 22, blur: 35, spread: 3},
- {offset: 8, blur: 42, spread: 7}],
-
- [{offset: 11, blur: 14, spread: -7},
- {offset: 23, blur: 36, spread: 3},
- {offset: 9, blur: 44, spread: 8}],
-
- [{offset: 11, blur: 15, spread: -7},
- {offset: 24, blur: 38, spread: 3},
- {offset: 9, blur: 46, spread: 8}]
- ]
-
- /*
- \internal
-
- The current shadow based on the elevation.
- */
- readonly property var _shadow: _shadows[Math.max(0, Math.min(elevation, _shadows.length - 1))]
-
- // Nest the shadows and source view in two items rendered as a layer
- // so the shadow is not clipped by the bounds of the source view
- Item {
- property int margin: -100
-
- x: margin
- y: margin
- width: parent.width - 2 * margin
- height: parent.height - 2 * margin
-
- // By rendering as a layer, the shadow will never show through the source item,
- // even when the source item's opacity is less than 1
- layer.enabled: true
-
- // The box shadows automatically pick up the size of the source Item and not
- // the size of the parent, so we don't need to worry about the extra padding
- // in the parent Item
- BoxShadow {
- offsetY: effect._shadow[0].offset
- blurRadius: effect._shadow[0].blur
- spreadRadius: effect._shadow[0].spread
- color: Qt.rgba(0,0,0, 0.2)
-
- fullWidth: effect.fullWidth
- fullHeight: effect.fullHeight
- source: effect.sourceItem
- }
-
- BoxShadow {
- offsetY: effect._shadow[1].offset
- blurRadius: effect._shadow[1].blur
- spreadRadius: effect._shadow[1].spread
- color: Qt.rgba(0,0,0, 0.14)
-
- fullWidth: effect.fullWidth
- fullHeight: effect.fullHeight
- source: effect.sourceItem
- }
-
- BoxShadow {
- offsetY: effect._shadow[2].offset
- blurRadius: effect._shadow[2].blur
- spreadRadius: effect._shadow[2].spread
- color: Qt.rgba(0,0,0, 0.12)
-
- fullWidth: effect.fullWidth
- fullHeight: effect.fullHeight
- source: effect.sourceItem
- }
-
- ShaderEffect {
- property alias source: effect.source
-
- x: (parent.width - width)/2
- y: (parent.height - height)/2
- width: effect.sourceItem.width
- height: effect.sourceItem.height
- }
- }
-}
diff --git a/src/quickcontrols2/material/impl/RadioIndicator.qml b/src/quickcontrols2/material/impl/RadioIndicator.qml
deleted file mode 100644
index 68681c44..00000000
--- a/src/quickcontrols2/material/impl/RadioIndicator.qml
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-Rectangle {
- id: indicator
- implicitWidth: 20
- implicitHeight: 20
- radius: width / 2
- border.width: 2
- border.color: !control.enabled ? control.Material.hintTextColor
- : control.checked || control.down ? control.Material.accentColor : control.Material.secondaryTextColor
- color: "transparent"
-
- property Item control
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 10
- height: 10
- radius: width / 2
- color: parent.border.color
- visible: indicator.control.checked || indicator.control.down
- }
-}
diff --git a/src/quickcontrols2/material/impl/RectangularGlow.qml b/src/quickcontrols2/material/impl/RectangularGlow.qml
deleted file mode 100644
index b2337afc..00000000
--- a/src/quickcontrols2/material/impl/RectangularGlow.qml
+++ /dev/null
@@ -1,240 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-
-/*
- A cross-graphics API implementation of QtGraphicalEffects' RectangularGlow.
- */
-Item {
- id: rootItem
-
- /*
- This property defines how many pixels outside the item area are reached
- by the glow.
-
- The value ranges from 0.0 (no glow) to inf (infinite glow). By default,
- the property is set to \c 0.0.
-
- \table
- \header
- \li Output examples with different glowRadius values
- \li
- \li
- \row
- \li \image RectangularGlow_glowRadius1.png
- \li \image RectangularGlow_glowRadius2.png
- \li \image RectangularGlow_glowRadius3.png
- \row
- \li \b { glowRadius: 10 }
- \li \b { glowRadius: 20 }
- \li \b { glowRadius: 40 }
- \row
- \li \l spread: 0
- \li \l spread: 0
- \li \l spread: 0
- \row
- \li \l color: #ffffff
- \li \l color: #ffffff
- \li \l color: #ffffff
- \row
- \li \l cornerRadius: 25
- \li \l cornerRadius: 25
- \li \l cornerRadius: 25
- \endtable
-
- */
- property real glowRadius: 0.0
-
- /*
- This property defines how large part of the glow color is strenghtened
- near the source edges.
-
- The value ranges from 0.0 (no strenght increase) to 1.0 (maximum
- strenght increase). By default, the property is set to \c 0.0.
-
- \table
- \header
- \li Output examples with different spread values
- \li
- \li
- \row
- \li \image RectangularGlow_spread1.png
- \li \image RectangularGlow_spread2.png
- \li \image RectangularGlow_spread3.png
- \row
- \li \b { spread: 0.0 }
- \li \b { spread: 0.5 }
- \li \b { spread: 1.0 }
- \row
- \li \l glowRadius: 20
- \li \l glowRadius: 20
- \li \l glowRadius: 20
- \row
- \li \l color: #ffffff
- \li \l color: #ffffff
- \li \l color: #ffffff
- \row
- \li \l cornerRadius: 25
- \li \l cornerRadius: 25
- \li \l cornerRadius: 25
- \endtable
- */
- property real spread: 0.0
-
- /*
- This property defines the RGBA color value which is used for the glow.
-
- By default, the property is set to \c "white".
-
- \table
- \header
- \li Output examples with different color values
- \li
- \li
- \row
- \li \image RectangularGlow_color1.png
- \li \image RectangularGlow_color2.png
- \li \image RectangularGlow_color3.png
- \row
- \li \b { color: #ffffff }
- \li \b { color: #55ff55 }
- \li \b { color: #5555ff }
- \row
- \li \l glowRadius: 20
- \li \l glowRadius: 20
- \li \l glowRadius: 20
- \row
- \li \l spread: 0
- \li \l spread: 0
- \li \l spread: 0
- \row
- \li \l cornerRadius: 25
- \li \l cornerRadius: 25
- \li \l cornerRadius: 25
- \endtable
- */
- property color color: "white"
-
- /*
- This property defines the corner radius that is used to draw a glow with
- rounded corners.
-
- The value ranges from 0.0 to half of the effective width or height of
- the glow, whichever is smaller. This can be calculated with: \c{
- min(width, height) / 2.0 + glowRadius}
-
- By default, the property is bound to glowRadius property. The glow
- behaves as if the rectangle was blurred when adjusting the glowRadius
- property.
-
- \table
- \header
- \li Output examples with different cornerRadius values
- \li
- \li
- \row
- \li \image RectangularGlow_cornerRadius1.png
- \li \image RectangularGlow_cornerRadius2.png
- \li \image RectangularGlow_cornerRadius3.png
- \row
- \li \b { cornerRadius: 0 }
- \li \b { cornerRadius: 25 }
- \li \b { cornerRadius: 50 }
- \row
- \li \l glowRadius: 20
- \li \l glowRadius: 20
- \li \l glowRadius: 20
- \row
- \li \l spread: 0
- \li \l spread: 0
- \li \l spread: 0
- \row
- \li \l color: #ffffff
- \li \l color: #ffffff
- \li \l color: #ffffff
- \endtable
- */
- property real cornerRadius: glowRadius
-
- /*
- This property allows the effect output pixels to be cached in order to
- improve the rendering performance.
-
- Every time the source or effect properties are changed, the pixels in
- the cache must be updated. Memory consumption is increased, because an
- extra buffer of memory is required for storing the effect output.
-
- It is recommended to disable the cache when the source or the effect
- properties are animated.
-
- By default, the property is set to \c false.
- */
- property bool cached: false
-
- ShaderEffectSource {
- id: cacheItem
- anchors.fill: shaderItem
- visible: rootItem.cached
- smooth: true
- sourceItem: shaderItem
- live: true
- hideSource: visible
- }
-
- ShaderEffect {
- id: shaderItem
-
- x: (parent.width - width) / 2.0
- y: (parent.height - height) / 2.0
- width: parent.width + rootItem.glowRadius * 2 + cornerRadius * 2
- height: parent.height + rootItem.glowRadius * 2 + cornerRadius * 2
-
- function clampedCornerRadius() {
- var maxCornerRadius = Math.min(rootItem.width, rootItem.height) / 2 + rootItem.glowRadius;
- return Math.max(0, Math.min(rootItem.cornerRadius, maxCornerRadius))
- }
-
- property color color: rootItem.color
- property real inverseSpread: 1.0 - rootItem.spread
- property real relativeSizeX: ((inverseSpread * inverseSpread) * rootItem.glowRadius + cornerRadius * 2.0) / width
- property real relativeSizeY: relativeSizeX * (width / height)
- property real spread: rootItem.spread / 2.0
- property real cornerRadius: clampedCornerRadius()
-
- fragmentShader: "qrc:/qt-project.org/imports/QtQuick/Controls/Material/shaders/RectangularGlow.frag"
- }
-}
diff --git a/src/quickcontrols2/material/impl/SliderHandle.qml b/src/quickcontrols2/material/impl/SliderHandle.qml
deleted file mode 100644
index 60fd7aed..00000000
--- a/src/quickcontrols2/material/impl/SliderHandle.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-Item {
- id: root
- implicitWidth: initialSize
- implicitHeight: initialSize
-
- property real value: 0
- property bool handleHasFocus: false
- property bool handlePressed: false
- property bool handleHovered: false
- readonly property int initialSize: 13
- readonly property var control: parent
-
- Rectangle {
- id: handleRect
- width: parent.width
- height: parent.height
- radius: width / 2
- scale: root.handlePressed ? 1.5 : 1
- color: control.enabled ? root.control.Material.accentColor : root.control.Material.sliderDisabledColor
-
- Behavior on scale {
- NumberAnimation {
- duration: 250
- }
- }
- }
-
- Ripple {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: 22; height: 22
- pressed: root.handlePressed
- active: root.handlePressed || root.handleHasFocus || root.handleHovered
- color: root.control.Material.highlightedRippleColor
- }
-}
diff --git a/src/quickcontrols2/material/impl/SwitchIndicator.qml b/src/quickcontrols2/material/impl/SwitchIndicator.qml
deleted file mode 100644
index ae1709b6..00000000
--- a/src/quickcontrols2/material/impl/SwitchIndicator.qml
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-
-Item {
- id: indicator
- implicitWidth: 38
- implicitHeight: 32
-
- property Item control
- property alias handle: handle
-
- Material.elevation: 1
-
- Rectangle {
- width: parent.width
- height: 14
- radius: height / 2
- y: parent.height / 2 - height / 2
- color: indicator.control.enabled ? (indicator.control.checked ? indicator.control.Material.switchCheckedTrackColor : indicator.control.Material.switchUncheckedTrackColor)
- : indicator.control.Material.switchDisabledTrackColor
- }
-
- Rectangle {
- id: handle
- x: Math.max(0, Math.min(parent.width - width, indicator.control.visualPosition * parent.width - (width / 2)))
- y: (parent.height - height) / 2
- width: 20
- height: 20
- radius: width / 2
- color: indicator.control.enabled ? (indicator.control.checked ? indicator.control.Material.switchCheckedHandleColor : indicator.control.Material.switchUncheckedHandleColor)
- : indicator.control.Material.switchDisabledHandleColor
-
- Behavior on x {
- enabled: !indicator.control.pressed
- SmoothedAnimation {
- duration: 300
- }
- }
- layer.enabled: indicator.Material.elevation > 0
- layer.effect: ElevationEffect {
- elevation: indicator.Material.elevation
- }
- }
-}
diff --git a/src/quickcontrols2/material/impl/qquickmaterialbusyindicator.cpp b/src/quickcontrols2/material/impl/qquickmaterialbusyindicator.cpp
deleted file mode 100644
index 10bcc035..00000000
--- a/src/quickcontrols2/material/impl/qquickmaterialbusyindicator.cpp
+++ /dev/null
@@ -1,245 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmaterialbusyindicator_p.h"
-
-#include <QtCore/qmath.h>
-#include <QtCore/qeasingcurve.h>
-#include <QtGui/qpainter.h>
-#include <QtQuick/qsgimagenode.h>
-#include <QtQuick/qquickwindow.h>
-#include <QtQuickControls2Impl/private/qquickanimatednode_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*
- Relevant Android code:
-
- - core/res/res/anim/progress_indeterminate_rotation_material.xml contains
- the rotation animation data.
- - core/res/res/anim/progress_indeterminate_material.xml contains the trim
- animation data.
- - core/res/res/interpolator/trim_start_interpolator.xml and
- core/res/res/interpolator/trim_end_interpolator.xml contain the start
- and end trim path interpolators.
- - addCommand() in core/java/android/util/PathParser.java has a list of the
- different path commands available.
-*/
-
-static const int SpanAnimationDuration = 700;
-static const int RotationAnimationDuration = SpanAnimationDuration * 6;
-static const int TargetRotation = 720;
-static const int OneDegree = 16;
-static const qreal MinSweepSpan = 10 * OneDegree;
-static const qreal MaxSweepSpan = 300 * OneDegree;
-
-class QQuickMaterialBusyIndicatorNode : public QQuickAnimatedNode
-{
-public:
- QQuickMaterialBusyIndicatorNode(QQuickMaterialBusyIndicator *item);
-
- void sync(QQuickItem *item) override;
-
-protected:
- void updateCurrentTime(int time) override;
-
-private:
- int m_lastStartAngle = 0;
- int m_lastEndAngle = 0;
- qreal m_width = 0;
- qreal m_height = 0;
- qreal m_devicePixelRatio = 1;
- QColor m_color;
-};
-
-QQuickMaterialBusyIndicatorNode::QQuickMaterialBusyIndicatorNode(QQuickMaterialBusyIndicator *item)
- : QQuickAnimatedNode(item)
-{
- setLoopCount(Infinite);
- setCurrentTime(item->elapsed());
- setDuration(RotationAnimationDuration);
-
- QSGImageNode *textureNode = item->window()->createImageNode();
- textureNode->setOwnsTexture(true);
- appendChildNode(textureNode);
-
- // A texture seems to be required here, but we don't have one yet, as we haven't drawn anything,
- // so just use a blank image.
- QImage blankImage(item->width(), item->height(), QImage::Format_ARGB32_Premultiplied);
- blankImage.fill(Qt::transparent);
- textureNode->setTexture(item->window()->createTextureFromImage(blankImage));
-}
-
-void QQuickMaterialBusyIndicatorNode::updateCurrentTime(int time)
-{
- const qreal w = m_width;
- const qreal h = m_height;
- const qreal size = qMin(w, h);
- const qreal dx = (w - size) / 2;
- const qreal dy = (h - size) / 2;
-
- QImage image(size * m_devicePixelRatio, size * m_devicePixelRatio, QImage::Format_ARGB32_Premultiplied);
- image.fill(Qt::transparent);
-
- QPainter painter(&image);
- painter.setRenderHint(QPainter::Antialiasing);
-
- QPen pen;
- QSGImageNode *textureNode = static_cast<QSGImageNode *>(firstChild());
- pen.setColor(m_color);
- pen.setWidth(qCeil(size / 12) * m_devicePixelRatio);
- painter.setPen(pen);
-
- const qreal percentageComplete = time / qreal(RotationAnimationDuration);
- const qreal spanPercentageComplete = (time % SpanAnimationDuration) / qreal(SpanAnimationDuration);
- const int iteration = time / SpanAnimationDuration;
- int startAngle = 0;
- int endAngle = 0;
-
- if (iteration % 2 == 0) {
- if (m_lastStartAngle > 360 * OneDegree)
- m_lastStartAngle -= 360 * OneDegree;
-
- // The start angle is only affected by the rotation animation for the "grow" phase.
- startAngle = m_lastStartAngle;
- QEasingCurve angleCurve(QEasingCurve::OutQuad);
- const qreal percentage = angleCurve.valueForProgress(spanPercentageComplete);
- endAngle = m_lastStartAngle + MinSweepSpan + percentage * (MaxSweepSpan - MinSweepSpan);
- m_lastEndAngle = endAngle;
- } else {
- // Both the start angle *and* the span are affected by the "shrink" phase.
- QEasingCurve angleCurve(QEasingCurve::InQuad);
- const qreal percentage = angleCurve.valueForProgress(spanPercentageComplete);
- startAngle = m_lastEndAngle - MaxSweepSpan + percentage * (MaxSweepSpan - MinSweepSpan);
- endAngle = m_lastEndAngle;
- m_lastStartAngle = startAngle;
- }
-
- const int halfPen = pen.width() / 2;
- const QRectF arcBounds = QRectF(halfPen, halfPen,
- m_devicePixelRatio * size - pen.width(),
- m_devicePixelRatio * size - pen.width());
- // The current angle of the rotation animation.
- const qreal rotation = OneDegree * percentageComplete * -TargetRotation;
- startAngle -= rotation;
- endAngle -= rotation;
- const int angleSpan = endAngle - startAngle;
- painter.drawArc(arcBounds, -startAngle, -angleSpan);
- painter.end();
-
- textureNode->setRect(QRectF(dx, dy, size, size));
- textureNode->setTexture(window()->createTextureFromImage(image));
-}
-
-void QQuickMaterialBusyIndicatorNode::sync(QQuickItem *item)
-{
- QQuickMaterialBusyIndicator *indicator = static_cast<QQuickMaterialBusyIndicator *>(item);
- m_color = indicator->color();
- m_width = indicator->width();
- m_height = indicator->height();
- m_devicePixelRatio = indicator->window()->effectiveDevicePixelRatio();
-}
-
-QQuickMaterialBusyIndicator::QQuickMaterialBusyIndicator(QQuickItem *parent) :
- QQuickItem(parent)
-{
- setFlag(ItemHasContents);
-}
-
-QColor QQuickMaterialBusyIndicator::color() const
-{
- return m_color;
-}
-
-void QQuickMaterialBusyIndicator::setColor(const QColor &color)
-{
- if (m_color == color)
- return;
-
- m_color = color;
- update();
-}
-
-bool QQuickMaterialBusyIndicator::isRunning() const
-{
- return isVisible();
-}
-
-void QQuickMaterialBusyIndicator::setRunning(bool running)
-{
- if (running)
- setVisible(true);
-}
-
-int QQuickMaterialBusyIndicator::elapsed() const
-{
- return m_elapsed;
-}
-
-void QQuickMaterialBusyIndicator::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- QQuickItem::itemChange(change, data);
- switch (change) {
- case ItemOpacityHasChanged:
- if (qFuzzyIsNull(data.realValue))
- setVisible(false);
- break;
- case ItemVisibleHasChanged:
- update();
- break;
- default:
- break;
- }
-}
-
-QSGNode *QQuickMaterialBusyIndicator::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
-{
- QQuickMaterialBusyIndicatorNode *node = static_cast<QQuickMaterialBusyIndicatorNode *>(oldNode);
- if (isRunning() && width() > 0 && height() > 0) {
- if (!node) {
- node = new QQuickMaterialBusyIndicatorNode(this);
- node->start();
- }
- node->sync(this);
- } else {
- m_elapsed = node ? node->currentTime() : 0;
- delete node;
- node = nullptr;
- }
- return node;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/material/impl/qquickmaterialbusyindicator_p.h b/src/quickcontrols2/material/impl/qquickmaterialbusyindicator_p.h
deleted file mode 100644
index 72aeaf66..00000000
--- a/src/quickcontrols2/material/impl/qquickmaterialbusyindicator_p.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMATERIALBUSYINDICATOR_P_H
-#define QQUICKMATERIALBUSYINDICATOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qcolor.h>
-#include <QtQuick/qquickitem.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickMaterialBusyIndicator : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(QColor color READ color WRITE setColor FINAL)
- Q_PROPERTY(bool running READ isRunning WRITE setRunning FINAL)
- QML_NAMED_ELEMENT(BusyIndicatorImpl)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickMaterialBusyIndicator(QQuickItem *parent = nullptr);
-
- QColor color() const;
- void setColor(const QColor &color);
-
- bool isRunning() const;
- void setRunning(bool running);
-
- int elapsed() const;
-
-protected:
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override;
-
-private:
- int m_elapsed = 0;
- QColor m_color = Qt::black;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickMaterialBusyIndicator)
-
-#endif // QQUICKMATERIALBUSYINDICATOR_P_H
diff --git a/src/quickcontrols2/material/impl/qquickmaterialprogressbar.cpp b/src/quickcontrols2/material/impl/qquickmaterialprogressbar.cpp
deleted file mode 100644
index 8b3dde23..00000000
--- a/src/quickcontrols2/material/impl/qquickmaterialprogressbar.cpp
+++ /dev/null
@@ -1,245 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmaterialprogressbar_p.h"
-
-#include <QtCore/qmath.h>
-#include <QtCore/qeasingcurve.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qsgadaptationlayer_p.h>
-#include <QtQuick/qsgrectanglenode.h>
-#include <QtQuick/qsgimagenode.h>
-#include <QtQuick/qquickwindow.h>
-#include <QtQuickControls2Impl/private/qquickanimatednode_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static const int PauseDuration = 520;
-static const int SlideDuration = 1240;
-static const int TotalDuration = SlideDuration + PauseDuration;
-
-class QQuickMaterialProgressBarNode : public QQuickAnimatedNode
-{
-public:
- QQuickMaterialProgressBarNode(QQuickMaterialProgressBar *item);
-
- void updateCurrentTime(int time) override;
- void sync(QQuickItem *item) override;
-
-private:
- void moveNode(QSGTransformNode *node, const QRectF &geometry, qreal progress);
-
- bool m_indeterminate = false;
- QEasingCurve m_easing = QEasingCurve::OutCubic;
-};
-
-QQuickMaterialProgressBarNode::QQuickMaterialProgressBarNode(QQuickMaterialProgressBar *item)
- : QQuickAnimatedNode(item)
-{
- setLoopCount(Infinite);
- setDuration(TotalDuration);
-}
-
-void QQuickMaterialProgressBarNode::updateCurrentTime(int time)
-{
- QSGRectangleNode *geometryNode = static_cast<QSGRectangleNode *>(firstChild());
- Q_ASSERT(geometryNode->type() == QSGNode::GeometryNodeType);
- const QRectF geometry = geometryNode->rect();
-
- QSGTransformNode *firstNode = static_cast<QSGTransformNode *>(geometryNode->firstChild());
- if (firstNode) {
- Q_ASSERT(firstNode->type() == QSGNode::TransformNodeType);
-
- const qreal progress = qMin<qreal>(1.0, static_cast<qreal>(time) / SlideDuration);
- moveNode(static_cast<QSGTransformNode *>(firstNode), geometry, progress);
- }
-
- QSGTransformNode *secondNode = static_cast<QSGTransformNode *>(geometryNode->lastChild());
- if (secondNode) {
- Q_ASSERT(secondNode->type() == QSGNode::TransformNodeType);
-
- const qreal progress = qMax<qreal>(0.0, static_cast<qreal>(time - PauseDuration) / SlideDuration);
- moveNode(static_cast<QSGTransformNode *>(secondNode), geometry, progress);
- }
-}
-
-void QQuickMaterialProgressBarNode::sync(QQuickItem *item)
-{
- QQuickMaterialProgressBar *bar = static_cast<QQuickMaterialProgressBar *>(item);
- if (m_indeterminate != bar->isIndeterminate()) {
- m_indeterminate = bar->isIndeterminate();
- if (m_indeterminate)
- start();
- else
- stop();
- }
-
- QQuickItemPrivate *d = QQuickItemPrivate::get(item);
-
- QRectF bounds = item->boundingRect();
- bounds.setHeight(item->implicitHeight());
- bounds.moveTop((item->height() - bounds.height()) / 2.0);
-
- QSGRectangleNode *geometryNode = static_cast<QSGRectangleNode *>(firstChild());
- if (!geometryNode) {
- geometryNode = item->window()->createRectangleNode();
- geometryNode->setColor(Qt::transparent);
- appendChildNode(geometryNode);
- }
- geometryNode->setRect(bounds);
-
- const int count = m_indeterminate ? 2 : 1;
- const qreal w = m_indeterminate ? 0 : bar->progress() * item->width();
- const QRectF rect(0, bounds.y(), w, bounds.height());
-
- QSGNode *transformNode = geometryNode->firstChild();
- for (int i = 0; i < count; ++i) {
- if (!transformNode) {
- transformNode = new QSGTransformNode;
- geometryNode->appendChildNode(transformNode);
-
- QSGInternalRectangleNode *rectNode = d->sceneGraphContext()->createInternalRectangleNode();
- rectNode->setAntialiasing(true);
- transformNode->appendChildNode(rectNode);
- }
- Q_ASSERT(transformNode->type() == QSGNode::TransformNodeType);
- static_cast<QSGTransformNode *>(transformNode)->setMatrix(QMatrix4x4());
-
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode *>(transformNode->firstChild());
- Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType);
-
- rectNode->setRect(rect);
- rectNode->setColor(bar->color());
- rectNode->update();
-
- transformNode = transformNode->nextSibling();
- }
-
- while (transformNode) {
- QSGNode *nextSibling = transformNode->nextSibling();
- delete transformNode;
- transformNode = nextSibling;
- }
-}
-
-void QQuickMaterialProgressBarNode::moveNode(QSGTransformNode *transformNode, const QRectF &geometry, qreal progress)
-{
- const qreal value = m_easing.valueForProgress(progress);
- const qreal x = value * geometry.width();
-
- QMatrix4x4 matrix;
- matrix.translate(x, 0);
- transformNode->setMatrix(matrix);
-
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode *>(transformNode->firstChild());
- Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType);
-
- QRectF r = geometry;
- r.setWidth(value * (geometry.width() - x));
- rectNode->setRect(r);
- rectNode->update();
-}
-
-QQuickMaterialProgressBar::QQuickMaterialProgressBar(QQuickItem *parent)
- : QQuickItem(parent)
-{
- setFlag(ItemHasContents);
-}
-
-QColor QQuickMaterialProgressBar::color() const
-{
- return m_color;
-}
-
-void QQuickMaterialProgressBar::setColor(const QColor &color)
-{
- if (color == m_color)
- return;
-
- m_color = color;
- update();
-}
-
-qreal QQuickMaterialProgressBar::progress() const
-{
- return m_progress;
-}
-
-void QQuickMaterialProgressBar::setProgress(qreal progress)
-{
- if (progress == m_progress)
- return;
-
- m_progress = progress;
- update();
-}
-
-bool QQuickMaterialProgressBar::isIndeterminate() const
-{
- return m_indeterminate;
-}
-
-void QQuickMaterialProgressBar::setIndeterminate(bool indeterminate)
-{
- if (indeterminate == m_indeterminate)
- return;
-
- m_indeterminate = indeterminate;
- update();
-}
-
-void QQuickMaterialProgressBar::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- QQuickItem::itemChange(change, data);
- if (change == ItemVisibleHasChanged)
- update();
-}
-
-QSGNode *QQuickMaterialProgressBar::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *)
-{
- QQuickMaterialProgressBarNode *node = static_cast<QQuickMaterialProgressBarNode *>(oldNode);
- if (isVisible() && width() > 0 && height() > 0) {
- if (!node)
- node = new QQuickMaterialProgressBarNode(this);
- node->sync(this);
- } else {
- delete node;
- node = nullptr;
- }
- return node;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/material/impl/qquickmaterialprogressbar_p.h b/src/quickcontrols2/material/impl/qquickmaterialprogressbar_p.h
deleted file mode 100644
index bf93812d..00000000
--- a/src/quickcontrols2/material/impl/qquickmaterialprogressbar_p.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMATERIALPROGRESSBAR_P_H
-#define QQUICKMATERIALPROGRESSBAR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qcolor.h>
-#include <QtQuick/qquickitem.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickMaterialProgressBar : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(QColor color READ color WRITE setColor FINAL)
- Q_PROPERTY(qreal progress READ progress WRITE setProgress FINAL)
- Q_PROPERTY(bool indeterminate READ isIndeterminate WRITE setIndeterminate FINAL)
- QML_NAMED_ELEMENT(ProgressBarImpl)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickMaterialProgressBar(QQuickItem *parent = nullptr);
-
- QColor color() const;
- void setColor(const QColor &color);
-
- qreal progress() const;
- void setProgress(qreal progress);
-
- bool isIndeterminate() const;
- void setIndeterminate(bool indeterminate);
-
-protected:
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override;
-
-private:
- QColor m_color = Qt::black;
- qreal m_progress = 0.0;
- bool m_indeterminate = false;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickMaterialProgressBar)
-
-#endif // QQUICKMATERIALPROGRESSBAR_P_H
diff --git a/src/quickcontrols2/material/impl/qquickmaterialripple.cpp b/src/quickcontrols2/material/impl/qquickmaterialripple.cpp
deleted file mode 100644
index a39a115b..00000000
--- a/src/quickcontrols2/material/impl/qquickmaterialripple.cpp
+++ /dev/null
@@ -1,442 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmaterialripple_p.h"
-
-#include <QtCore/qmath.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qsgadaptationlayer_p.h>
-#include <QtQuickControls2Impl/private/qquickanimatednode_p.h>
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-#include <QtQuickTemplates2/private/qquickabstractbutton_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-namespace {
- enum WavePhase { WaveEnter, WaveExit };
-}
-
-static const int RIPPLE_ENTER_DELAY = 80;
-static const int OPACITY_ENTER_DURATION_FAST = 120;
-static const int WAVE_OPACITY_DECAY_DURATION = 333;
-static const qreal WAVE_TOUCH_DOWN_ACCELERATION = 1024.0;
-
-class QQuickMaterialRippleWaveNode : public QQuickAnimatedNode
-{
-public:
- QQuickMaterialRippleWaveNode(QQuickMaterialRipple *ripple);
-
- void exit();
- void updateCurrentTime(int time) override;
- void sync(QQuickItem *item) override;
-
-private:
- qreal m_from = 0;
- qreal m_to = 0;
- qreal m_value = 0;
- WavePhase m_phase = WaveEnter;
- QPointF m_anchor;
- QRectF m_bounds;
-};
-
-QQuickMaterialRippleWaveNode::QQuickMaterialRippleWaveNode(QQuickMaterialRipple *ripple)
- : QQuickAnimatedNode(ripple)
-{
- start(qRound(1000.0 * qSqrt(ripple->diameter() / 2.0 / WAVE_TOUCH_DOWN_ACCELERATION)));
-
- QSGOpacityNode *opacityNode = new QSGOpacityNode;
- appendChildNode(opacityNode);
-
- QQuickItemPrivate *d = QQuickItemPrivate::get(ripple);
- QSGInternalRectangleNode *rectNode = d->sceneGraphContext()->createInternalRectangleNode();
- rectNode->setAntialiasing(true);
- opacityNode->appendChildNode(rectNode);
-}
-
-void QQuickMaterialRippleWaveNode::exit()
-{
- m_phase = WaveExit;
- m_from = m_value;
- setDuration(WAVE_OPACITY_DECAY_DURATION);
- restart();
- connect(this, &QQuickAnimatedNode::stopped, this, &QObject::deleteLater);
-}
-
-void QQuickMaterialRippleWaveNode::updateCurrentTime(int time)
-{
- qreal p = 1.0;
- if (duration() > 0)
- p = time / static_cast<qreal>(duration());
-
- m_value = m_from + (m_to - m_from) * p;
- p = m_value / m_to;
-
- const qreal dx = (1.0 - p) * (m_anchor.x() - m_bounds.width() / 2);
- const qreal dy = (1.0 - p) * (m_anchor.y() - m_bounds.height() / 2);
-
- QMatrix4x4 m;
- m.translate(qRound((m_bounds.width() - m_value) / 2 + dx),
- qRound((m_bounds.height() - m_value) / 2 + dy));
- setMatrix(m);
-
- QSGOpacityNode *opacityNode = static_cast<QSGOpacityNode *>(firstChild());
- Q_ASSERT(opacityNode->type() == QSGNode::OpacityNodeType);
- qreal opacity = 1.0;
- if (m_phase == WaveExit)
- opacity -= static_cast<qreal>(time) / WAVE_OPACITY_DECAY_DURATION;
- opacityNode->setOpacity(opacity);
-
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode *>(opacityNode->firstChild());
- Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType);
- rectNode->setRect(QRectF(0, 0, m_value, m_value));
- rectNode->setRadius(m_value / 2);
- rectNode->update();
-}
-
-void QQuickMaterialRippleWaveNode::sync(QQuickItem *item)
-{
- QQuickMaterialRipple *ripple = static_cast<QQuickMaterialRipple *>(item);
- m_to = ripple->diameter();
- m_anchor = ripple->anchorPoint();
- m_bounds = ripple->boundingRect();
-
- QSGOpacityNode *opacityNode = static_cast<QSGOpacityNode *>(firstChild());
- Q_ASSERT(opacityNode->type() == QSGNode::OpacityNodeType);
-
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode *>(opacityNode->firstChild());
- Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType);
- rectNode->setColor(ripple->color());
-}
-
-class QQuickMaterialRippleBackgroundNode : public QQuickAnimatedNode
-{
- Q_OBJECT
-
-public:
- QQuickMaterialRippleBackgroundNode(QQuickMaterialRipple *ripple);
-
- void updateCurrentTime(int time) override;
- void sync(QQuickItem *item) override;
-
-private:
- bool m_active = false;
-};
-
-QQuickMaterialRippleBackgroundNode::QQuickMaterialRippleBackgroundNode(QQuickMaterialRipple *ripple)
- : QQuickAnimatedNode(ripple)
-{
- setDuration(OPACITY_ENTER_DURATION_FAST);
-
- QSGOpacityNode *opacityNode = new QSGOpacityNode;
- opacityNode->setOpacity(0.0);
- appendChildNode(opacityNode);
-
- QQuickItemPrivate *d = QQuickItemPrivate::get(ripple);
- QSGInternalRectangleNode *rectNode = d->sceneGraphContext()->createInternalRectangleNode();
- rectNode->setAntialiasing(true);
- opacityNode->appendChildNode(rectNode);
-}
-
-void QQuickMaterialRippleBackgroundNode::updateCurrentTime(int time)
-{
- qreal opacity = time / static_cast<qreal>(duration());
- if (!m_active)
- opacity = 1.0 - opacity;
-
- QSGOpacityNode *opacityNode = static_cast<QSGOpacityNode *>(firstChild());
- Q_ASSERT(opacityNode->type() == QSGNode::OpacityNodeType);
- opacityNode->setOpacity(opacity);
-}
-
-void QQuickMaterialRippleBackgroundNode::sync(QQuickItem *item)
-{
- QQuickMaterialRipple *ripple = static_cast<QQuickMaterialRipple *>(item);
- if (m_active != ripple->isActive()) {
- m_active = ripple->isActive();
- setDuration(m_active ? OPACITY_ENTER_DURATION_FAST : WAVE_OPACITY_DECAY_DURATION);
- restart();
- }
-
- QSGOpacityNode *opacityNode = static_cast<QSGOpacityNode *>(firstChild());
- Q_ASSERT(opacityNode->type() == QSGNode::OpacityNodeType);
-
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode *>(opacityNode->firstChild());
- Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType);
-
- const qreal w = ripple->width();
- const qreal h = ripple->height();
- const qreal sz = qSqrt(w * w + h * h);
-
- QMatrix4x4 matrix;
- if (qFuzzyIsNull(ripple->clipRadius())) {
- matrix.translate(qRound((w - sz) / 2), qRound((h - sz) / 2));
- rectNode->setRect(QRectF(0, 0, sz, sz));
- rectNode->setRadius(sz / 2);
- } else {
- rectNode->setRect(QRectF(0, 0, w, h));
- rectNode->setRadius(ripple->clipRadius());
- }
-
- setMatrix(matrix);
- rectNode->setColor(ripple->color());
- rectNode->update();
-}
-
-QQuickMaterialRipple::QQuickMaterialRipple(QQuickItem *parent)
- : QQuickItem(parent)
-{
- setFlag(ItemHasContents);
-}
-
-bool QQuickMaterialRipple::isActive() const
-{
- return m_active;
-}
-
-void QQuickMaterialRipple::setActive(bool active)
-{
- if (active == m_active)
- return;
-
- m_active = active;
- update();
-}
-
-QColor QQuickMaterialRipple::color() const
-{
- return m_color;
-}
-
-void QQuickMaterialRipple::setColor(const QColor &color)
-{
- if (m_color == color)
- return;
-
- m_color = color;
- update();
-}
-
-qreal QQuickMaterialRipple::clipRadius() const
-{
- return m_clipRadius;
-}
-
-void QQuickMaterialRipple::setClipRadius(qreal radius)
-{
- if (qFuzzyCompare(m_clipRadius, radius))
- return;
-
- m_clipRadius = radius;
- setClip(!qFuzzyIsNull(radius));
- update();
-}
-
-bool QQuickMaterialRipple::isPressed() const
-{
- return m_pressed;
-}
-
-void QQuickMaterialRipple::setPressed(bool pressed)
-{
- if (pressed == m_pressed)
- return;
-
- m_pressed = pressed;
-
- if (!isEnabled()) {
- exitWave();
- return;
- }
-
- if (pressed) {
- if (m_trigger == Press)
- prepareWave();
- else
- exitWave();
- } else {
- if (m_trigger == Release)
- enterWave();
- else
- exitWave();
- }
-}
-
-QQuickMaterialRipple::Trigger QQuickMaterialRipple::trigger() const
-{
- return m_trigger;
-}
-
-void QQuickMaterialRipple::setTrigger(Trigger trigger)
-{
- m_trigger = trigger;
-}
-
-QPointF QQuickMaterialRipple::anchorPoint() const
-{
- const QRectF bounds = boundingRect();
- const QPointF center = bounds.center();
- if (!m_anchor)
- return center;
-
- QPointF anchorPoint = bounds.center();
- if (QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(m_anchor))
- anchorPoint = QQuickAbstractButtonPrivate::get(button)->pressPoint;
- anchorPoint = mapFromItem(m_anchor, anchorPoint);
-
- // calculate whether the anchor point is within the ripple circle bounds,
- // that is, whether waves should start expanding from the anchor point
- const qreal r = qSqrt(bounds.width() * bounds.width() + bounds.height() * bounds.height()) / 2;
- if (QLineF(center, anchorPoint).length() < r)
- return anchorPoint;
-
- // if the anchor point is outside the ripple circle bounds, start expanding
- // from the intersection point of the ripple circle and a line from its center
- // to the the anchor point
- const qreal p = qAtan2(anchorPoint.y() - center.y(), anchorPoint.x() - center.x());
- return QPointF(center.x() + r * qCos(p), center.y() + r * qSin(p));
-}
-
-QQuickItem *QQuickMaterialRipple::anchor() const
-{
- return m_anchor;
-}
-
-void QQuickMaterialRipple::setAnchor(QQuickItem *item)
-{
- m_anchor = item;
-}
-
-qreal QQuickMaterialRipple::diameter() const
-{
- const qreal w = width();
- const qreal h = height();
- return qSqrt(w * w + h * h);
-}
-
-void QQuickMaterialRipple::itemChange(ItemChange change, const ItemChangeData &data)
-{
- QQuickItem::itemChange(change, data);
-}
-
-QSGNode *QQuickMaterialRipple::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
-{
- QQuickItemPrivate *d = QQuickItemPrivate::get(this);
- QQuickDefaultClipNode *clipNode = d->clipNode();
- if (clipNode) {
- // TODO: QTBUG-51894
- // clipNode->setRadius(m_clipRadius);
- clipNode->setRect(boundingRect());
- clipNode->update();
- }
-
- QSGNode *container = oldNode;
- if (!container)
- container = new QSGNode;
-
- QQuickMaterialRippleBackgroundNode *backgroundNode = static_cast<QQuickMaterialRippleBackgroundNode *>(container->firstChild());
- if (!backgroundNode) {
- backgroundNode = new QQuickMaterialRippleBackgroundNode(this);
- backgroundNode->setObjectName(objectName());
- container->appendChildNode(backgroundNode);
- }
- backgroundNode->sync(this);
-
- // enter new waves
- int i = m_waves;
- QQuickMaterialRippleWaveNode *enterNode = static_cast<QQuickMaterialRippleWaveNode *>(backgroundNode->nextSibling());
- while (i-- > 0) {
- if (!enterNode) {
- enterNode = new QQuickMaterialRippleWaveNode(this);
- container->appendChildNode(enterNode);
- }
- enterNode->sync(this);
- enterNode = static_cast<QQuickMaterialRippleWaveNode *>(enterNode->nextSibling());
- }
-
- // exit old waves
- int j = container->childCount() - 1 - m_waves;
- while (j-- > 0) {
- QQuickMaterialRippleWaveNode *exitNode = static_cast<QQuickMaterialRippleWaveNode *>(backgroundNode->nextSibling());
- if (exitNode) {
- exitNode->exit();
- exitNode->sync(this);
- }
- }
-
- return container;
-}
-
-void QQuickMaterialRipple::timerEvent(QTimerEvent *event)
-{
- QQuickItem::timerEvent(event);
-
- if (event->timerId() == m_enterDelay)
- enterWave();
-}
-
-void QQuickMaterialRipple::prepareWave()
-{
- if (m_enterDelay <= 0)
- m_enterDelay = startTimer(RIPPLE_ENTER_DELAY);
-}
-
-void QQuickMaterialRipple::enterWave()
-{
- if (m_enterDelay > 0) {
- killTimer(m_enterDelay);
- m_enterDelay = 0;
- }
-
- ++m_waves;
- update();
-}
-
-void QQuickMaterialRipple::exitWave()
-{
- if (m_enterDelay > 0) {
- killTimer(m_enterDelay);
- m_enterDelay = 0;
- }
-
- if (m_waves > 0) {
- --m_waves;
- update();
- }
-}
-
-QT_END_NAMESPACE
-
-#include "qquickmaterialripple.moc"
diff --git a/src/quickcontrols2/material/impl/qquickmaterialripple_p.h b/src/quickcontrols2/material/impl/qquickmaterialripple_p.h
deleted file mode 100644
index 51728389..00000000
--- a/src/quickcontrols2/material/impl/qquickmaterialripple_p.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMATERIALRIPPLE_P_H
-#define QQUICKMATERIALRIPPLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/qquickitem.h>
-#include <QtGui/qcolor.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickMaterialRipple : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(QColor color READ color WRITE setColor FINAL)
- Q_PROPERTY(qreal clipRadius READ clipRadius WRITE setClipRadius FINAL)
- Q_PROPERTY(bool pressed READ isPressed WRITE setPressed FINAL)
- Q_PROPERTY(bool active READ isActive WRITE setActive FINAL)
- Q_PROPERTY(QQuickItem *anchor READ anchor WRITE setAnchor FINAL)
- Q_PROPERTY(Trigger trigger READ trigger WRITE setTrigger FINAL)
- QML_NAMED_ELEMENT(Ripple)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- QQuickMaterialRipple(QQuickItem *parent = nullptr);
-
- QColor color() const;
- void setColor(const QColor &color);
-
- qreal clipRadius() const;
- void setClipRadius(qreal radius);
-
- bool isActive() const;
- void setActive(bool active);
-
- bool isPressed() const;
- void setPressed(bool pressed);
-
- enum Trigger { Press, Release };
- Q_ENUM (Trigger)
-
- Trigger trigger() const;
- void setTrigger(Trigger trigger);
-
- QPointF anchorPoint() const;
-
- QQuickItem *anchor() const;
- void setAnchor(QQuickItem *anchor);
-
- qreal diameter() const;
-
-protected:
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override;
- void timerEvent(QTimerEvent *event) override;
-
- void prepareWave();
- void enterWave();
- void exitWave();
-
-private:
- bool m_active = false;
- bool m_pressed = false;
- int m_waves = 0;
- int m_enterDelay = 0;
- Trigger m_trigger = Press;
- qreal m_clipRadius = 0.0;
- QColor m_color;
- QQuickItem *m_anchor = nullptr;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickMaterialRipple)
-
-#endif // QQUICKMATERIALRIPPLE_P_H
diff --git a/src/quickcontrols2/material/material.pri b/src/quickcontrols2/material/material.pri
deleted file mode 100644
index 9eb14233..00000000
--- a/src/quickcontrols2/material/material.pri
+++ /dev/null
@@ -1,60 +0,0 @@
-HEADERS += \
- $$PWD/qquickmaterialstyle_p.h \
- $$PWD/qquickmaterialtheme_p.h
-
-SOURCES += \
- $$PWD/qquickmaterialstyle.cpp \
- $$PWD/qquickmaterialtheme.cpp
-
-QML_FILES += \
- $$PWD/ApplicationWindow.qml \
- $$PWD/BusyIndicator.qml \
- $$PWD/Button.qml \
- $$PWD/CheckBox.qml \
- $$PWD/CheckDelegate.qml \
- $$PWD/ComboBox.qml \
- $$PWD/DelayButton.qml \
- $$PWD/Dial.qml \
- $$PWD/Dialog.qml \
- $$PWD/DialogButtonBox.qml \
- $$PWD/Drawer.qml \
- $$PWD/Frame.qml \
- $$PWD/GroupBox.qml \
- $$PWD/HorizontalHeaderView.qml \
- $$PWD/ItemDelegate.qml \
- $$PWD/Label.qml \
- $$PWD/Menu.qml \
- $$PWD/MenuBar.qml \
- $$PWD/MenuBarItem.qml \
- $$PWD/MenuItem.qml \
- $$PWD/MenuSeparator.qml \
- $$PWD/Page.qml \
- $$PWD/PageIndicator.qml \
- $$PWD/Pane.qml \
- $$PWD/Popup.qml \
- $$PWD/ProgressBar.qml \
- $$PWD/RadioButton.qml \
- $$PWD/RadioDelegate.qml \
- $$PWD/RangeSlider.qml \
- $$PWD/RoundButton.qml \
- $$PWD/ScrollView.qml \
- $$PWD/ScrollBar.qml \
- $$PWD/ScrollIndicator.qml \
- $$PWD/Slider.qml \
- $$PWD/SpinBox.qml \
- $$PWD/SplitView.qml \
- $$PWD/StackView.qml \
- $$PWD/SwipeDelegate.qml \
- $$PWD/SwipeView.qml \
- $$PWD/Switch.qml \
- $$PWD/SwitchDelegate.qml \
- $$PWD/TabBar.qml \
- $$PWD/TabButton.qml \
- $$PWD/TextArea.qml \
- $$PWD/TextField.qml \
- $$PWD/ToolBar.qml \
- $$PWD/ToolButton.qml \
- $$PWD/ToolSeparator.qml \
- $$PWD/ToolTip.qml \
- $$PWD/Tumbler.qml \
- $$PWD/VerticalHeaderView.qml
diff --git a/src/quickcontrols2/material/qquickmaterialstyle.cpp b/src/quickcontrols2/material/qquickmaterialstyle.cpp
deleted file mode 100644
index d70728a0..00000000
--- a/src/quickcontrols2/material/qquickmaterialstyle.cpp
+++ /dev/null
@@ -1,1383 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmaterialstyle_p.h"
-
-#include <QtCore/qdebug.h>
-#include <QtCore/qsettings.h>
-#include <QtQml/qqmlinfo.h>
-#include <QtQuickControls2/private/qquickstyle_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static const QRgb colors[][14] = {
- // Red
- {
- 0xFFFFEBEE, // Shade50
- 0xFFFFCDD2, // Shade100
- 0xFFEF9A9A, // Shade200
- 0xFFE57373, // Shade300
- 0xFFEF5350, // Shade400
- 0xFFF44336, // Shade500
- 0xFFE53935, // Shade600
- 0xFFD32F2F, // Shade700
- 0xFFC62828, // Shade800
- 0xFFB71C1C, // Shade900
- 0xFFFF8A80, // ShadeA100
- 0xFFFF5252, // ShadeA200
- 0xFFFF1744, // ShadeA400
- 0xFFD50000 // ShadeA700
- },
- // Pink
- {
- 0xFFFCE4EC, // Shade50
- 0xFFF8BBD0, // Shade100
- 0xFFF48FB1, // Shade200
- 0xFFF06292, // Shade300
- 0xFFEC407A, // Shade400
- 0xFFE91E63, // Shade500
- 0xFFD81B60, // Shade600
- 0xFFC2185B, // Shade700
- 0xFFAD1457, // Shade800
- 0xFF880E4F, // Shade900
- 0xFFFF80AB, // ShadeA100
- 0xFFFF4081, // ShadeA200
- 0xFFF50057, // ShadeA400
- 0xFFC51162 // ShadeA700
- },
- // Purple
- {
- 0xFFF3E5F5, // Shade50
- 0xFFE1BEE7, // Shade100
- 0xFFCE93D8, // Shade200
- 0xFFBA68C8, // Shade300
- 0xFFAB47BC, // Shade400
- 0xFF9C27B0, // Shade500
- 0xFF8E24AA, // Shade600
- 0xFF7B1FA2, // Shade700
- 0xFF6A1B9A, // Shade800
- 0xFF4A148C, // Shade900
- 0xFFEA80FC, // ShadeA100
- 0xFFE040FB, // ShadeA200
- 0xFFD500F9, // ShadeA400
- 0xFFAA00FF // ShadeA700
- },
- // DeepPurple
- {
- 0xFFEDE7F6, // Shade50
- 0xFFD1C4E9, // Shade100
- 0xFFB39DDB, // Shade200
- 0xFF9575CD, // Shade300
- 0xFF7E57C2, // Shade400
- 0xFF673AB7, // Shade500
- 0xFF5E35B1, // Shade600
- 0xFF512DA8, // Shade700
- 0xFF4527A0, // Shade800
- 0xFF311B92, // Shade900
- 0xFFB388FF, // ShadeA100
- 0xFF7C4DFF, // ShadeA200
- 0xFF651FFF, // ShadeA400
- 0xFF6200EA // ShadeA700
- },
- // Indigo
- {
- 0xFFE8EAF6, // Shade50
- 0xFFC5CAE9, // Shade100
- 0xFF9FA8DA, // Shade200
- 0xFF7986CB, // Shade300
- 0xFF5C6BC0, // Shade400
- 0xFF3F51B5, // Shade500
- 0xFF3949AB, // Shade600
- 0xFF303F9F, // Shade700
- 0xFF283593, // Shade800
- 0xFF1A237E, // Shade900
- 0xFF8C9EFF, // ShadeA100
- 0xFF536DFE, // ShadeA200
- 0xFF3D5AFE, // ShadeA400
- 0xFF304FFE // ShadeA700
- },
- // Blue
- {
- 0xFFE3F2FD, // Shade50
- 0xFFBBDEFB, // Shade100
- 0xFF90CAF9, // Shade200
- 0xFF64B5F6, // Shade300
- 0xFF42A5F5, // Shade400
- 0xFF2196F3, // Shade500
- 0xFF1E88E5, // Shade600
- 0xFF1976D2, // Shade700
- 0xFF1565C0, // Shade800
- 0xFF0D47A1, // Shade900
- 0xFF82B1FF, // ShadeA100
- 0xFF448AFF, // ShadeA200
- 0xFF2979FF, // ShadeA400
- 0xFF2962FF // ShadeA700
- },
- // LightBlue
- {
- 0xFFE1F5FE, // Shade50
- 0xFFB3E5FC, // Shade100
- 0xFF81D4FA, // Shade200
- 0xFF4FC3F7, // Shade300
- 0xFF29B6F6, // Shade400
- 0xFF03A9F4, // Shade500
- 0xFF039BE5, // Shade600
- 0xFF0288D1, // Shade700
- 0xFF0277BD, // Shade800
- 0xFF01579B, // Shade900
- 0xFF80D8FF, // ShadeA100
- 0xFF40C4FF, // ShadeA200
- 0xFF00B0FF, // ShadeA400
- 0xFF0091EA // ShadeA700
- },
- // Cyan
- {
- 0xFFE0F7FA, // Shade50
- 0xFFB2EBF2, // Shade100
- 0xFF80DEEA, // Shade200
- 0xFF4DD0E1, // Shade300
- 0xFF26C6DA, // Shade400
- 0xFF00BCD4, // Shade500
- 0xFF00ACC1, // Shade600
- 0xFF0097A7, // Shade700
- 0xFF00838F, // Shade800
- 0xFF006064, // Shade900
- 0xFF84FFFF, // ShadeA100
- 0xFF18FFFF, // ShadeA200
- 0xFF00E5FF, // ShadeA400
- 0xFF00B8D4 // ShadeA700
- },
- // Teal
- {
- 0xFFE0F2F1, // Shade50
- 0xFFB2DFDB, // Shade100
- 0xFF80CBC4, // Shade200
- 0xFF4DB6AC, // Shade300
- 0xFF26A69A, // Shade400
- 0xFF009688, // Shade500
- 0xFF00897B, // Shade600
- 0xFF00796B, // Shade700
- 0xFF00695C, // Shade800
- 0xFF004D40, // Shade900
- 0xFFA7FFEB, // ShadeA100
- 0xFF64FFDA, // ShadeA200
- 0xFF1DE9B6, // ShadeA400
- 0xFF00BFA5 // ShadeA700
- },
- // Green
- {
- 0xFFE8F5E9, // Shade50
- 0xFFC8E6C9, // Shade100
- 0xFFA5D6A7, // Shade200
- 0xFF81C784, // Shade300
- 0xFF66BB6A, // Shade400
- 0xFF4CAF50, // Shade500
- 0xFF43A047, // Shade600
- 0xFF388E3C, // Shade700
- 0xFF2E7D32, // Shade800
- 0xFF1B5E20, // Shade900
- 0xFFB9F6CA, // ShadeA100
- 0xFF69F0AE, // ShadeA200
- 0xFF00E676, // ShadeA400
- 0xFF00C853 // ShadeA700
- },
- // LightGreen
- {
- 0xFFF1F8E9, // Shade50
- 0xFFDCEDC8, // Shade100
- 0xFFC5E1A5, // Shade200
- 0xFFAED581, // Shade300
- 0xFF9CCC65, // Shade400
- 0xFF8BC34A, // Shade500
- 0xFF7CB342, // Shade600
- 0xFF689F38, // Shade700
- 0xFF558B2F, // Shade800
- 0xFF33691E, // Shade900
- 0xFFCCFF90, // ShadeA100
- 0xFFB2FF59, // ShadeA200
- 0xFF76FF03, // ShadeA400
- 0xFF64DD17 // ShadeA700
- },
- // Lime
- {
- 0xFFF9FBE7, // Shade50
- 0xFFF0F4C3, // Shade100
- 0xFFE6EE9C, // Shade200
- 0xFFDCE775, // Shade300
- 0xFFD4E157, // Shade400
- 0xFFCDDC39, // Shade500
- 0xFFC0CA33, // Shade600
- 0xFFAFB42B, // Shade700
- 0xFF9E9D24, // Shade800
- 0xFF827717, // Shade900
- 0xFFF4FF81, // ShadeA100
- 0xFFEEFF41, // ShadeA200
- 0xFFC6FF00, // ShadeA400
- 0xFFAEEA00 // ShadeA700
- },
- // Yellow
- {
- 0xFFFFFDE7, // Shade50
- 0xFFFFF9C4, // Shade100
- 0xFFFFF59D, // Shade200
- 0xFFFFF176, // Shade300
- 0xFFFFEE58, // Shade400
- 0xFFFFEB3B, // Shade500
- 0xFFFDD835, // Shade600
- 0xFFFBC02D, // Shade700
- 0xFFF9A825, // Shade800
- 0xFFF57F17, // Shade900
- 0xFFFFFF8D, // ShadeA100
- 0xFFFFFF00, // ShadeA200
- 0xFFFFEA00, // ShadeA400
- 0xFFFFD600 // ShadeA700
- },
- // Amber
- {
- 0xFFFFF8E1, // Shade50
- 0xFFFFECB3, // Shade100
- 0xFFFFE082, // Shade200
- 0xFFFFD54F, // Shade300
- 0xFFFFCA28, // Shade400
- 0xFFFFC107, // Shade500
- 0xFFFFB300, // Shade600
- 0xFFFFA000, // Shade700
- 0xFFFF8F00, // Shade800
- 0xFFFF6F00, // Shade900
- 0xFFFFE57F, // ShadeA100
- 0xFFFFD740, // ShadeA200
- 0xFFFFC400, // ShadeA400
- 0xFFFFAB00 // ShadeA700
- },
- // Orange
- {
- 0xFFFFF3E0, // Shade50
- 0xFFFFE0B2, // Shade100
- 0xFFFFCC80, // Shade200
- 0xFFFFB74D, // Shade300
- 0xFFFFA726, // Shade400
- 0xFFFF9800, // Shade500
- 0xFFFB8C00, // Shade600
- 0xFFF57C00, // Shade700
- 0xFFEF6C00, // Shade800
- 0xFFE65100, // Shade900
- 0xFFFFD180, // ShadeA100
- 0xFFFFAB40, // ShadeA200
- 0xFFFF9100, // ShadeA400
- 0xFFFF6D00 // ShadeA700
- },
- // DeepOrange
- {
- 0xFFFBE9E7, // Shade50
- 0xFFFFCCBC, // Shade100
- 0xFFFFAB91, // Shade200
- 0xFFFF8A65, // Shade300
- 0xFFFF7043, // Shade400
- 0xFFFF5722, // Shade500
- 0xFFF4511E, // Shade600
- 0xFFE64A19, // Shade700
- 0xFFD84315, // Shade800
- 0xFFBF360C, // Shade900
- 0xFFFF9E80, // ShadeA100
- 0xFFFF6E40, // ShadeA200
- 0xFFFF3D00, // ShadeA400
- 0xFFDD2C00 // ShadeA700
- },
- // Brown
- {
- 0xFFEFEBE9, // Shade50
- 0xFFD7CCC8, // Shade100
- 0xFFBCAAA4, // Shade200
- 0xFFA1887F, // Shade300
- 0xFF8D6E63, // Shade400
- 0xFF795548, // Shade500
- 0xFF6D4C41, // Shade600
- 0xFF5D4037, // Shade700
- 0xFF4E342E, // Shade800
- 0xFF3E2723, // Shade900
- 0xFF000000, // ShadeA100
- 0xFF000000, // ShadeA200
- 0xFF000000, // ShadeA400
- 0xFF000000 // ShadeA700
- },
- // Grey
- {
- 0xFFFAFAFA, // Shade50
- 0xFFF5F5F5, // Shade100
- 0xFFEEEEEE, // Shade200
- 0xFFE0E0E0, // Shade300
- 0xFFBDBDBD, // Shade400
- 0xFF9E9E9E, // Shade500
- 0xFF757575, // Shade600
- 0xFF616161, // Shade700
- 0xFF424242, // Shade800
- 0xFF212121, // Shade900
- 0xFF000000, // ShadeA100
- 0xFF000000, // ShadeA200
- 0xFF000000, // ShadeA400
- 0xFF000000 // ShadeA700
- },
- // BlueGrey
- {
- 0xFFECEFF1, // Shade50
- 0xFFCFD8DC, // Shade100
- 0xFFB0BEC5, // Shade200
- 0xFF90A4AE, // Shade300
- 0xFF78909C, // Shade400
- 0xFF607D8B, // Shade500
- 0xFF546E7A, // Shade600
- 0xFF455A64, // Shade700
- 0xFF37474F, // Shade800
- 0xFF263238, // Shade900
- 0xFF000000, // ShadeA100
- 0xFF000000, // ShadeA200
- 0xFF000000, // ShadeA400
- 0xFF000000 // ShadeA700
- }
-};
-
-// If no value was inherited from a parent or explicitly set, the "global" values are used.
-// The initial, default values of the globals are hard-coded here, but the environment
-// variables and .conf file override them if specified.
-static QQuickMaterialStyle::Theme globalTheme = QQuickMaterialStyle::Light;
-static uint globalPrimary = QQuickMaterialStyle::Indigo;
-static uint globalAccent = QQuickMaterialStyle::Pink;
-static uint globalForeground = 0xDD000000; // primaryTextColorLight
-static uint globalBackground = 0xFFFAFAFA; // backgroundColorLight
-// These represent whether a global foreground/background was set.
-// Each style's m_hasForeground/m_hasBackground are initialized to these values.
-static bool hasGlobalForeground = false;
-static bool hasGlobalBackground = false;
-// These represent whether or not the global color value was specified as one of the
-// values that QColor accepts, as opposed to one of the pre-defined colors like Red.
-static bool globalPrimaryCustom = false;
-static bool globalAccentCustom = false;
-static bool globalForegroundCustom = true;
-static bool globalBackgroundCustom = true;
-// This is global because:
-// 1) The theme needs access to it to determine font sizes.
-// 2) There can only be one variant used for the whole application.
-static QQuickMaterialStyle::Variant globalVariant = QQuickMaterialStyle::Normal;
-
-static const QRgb backgroundColorLight = 0xFFFAFAFA;
-static const QRgb backgroundColorDark = 0xFF303030;
-static const QRgb dialogColorLight = 0xFFFFFFFF;
-static const QRgb dialogColorDark = 0xFF424242;
-static const QRgb primaryTextColorLight = 0xDD000000;
-static const QRgb primaryTextColorDark = 0xFFFFFFFF;
-static const QRgb secondaryTextColorLight = 0x89000000;
-static const QRgb secondaryTextColorDark = 0xB2FFFFFF;
-static const QRgb hintTextColorLight = 0x60000000;
-static const QRgb hintTextColorDark = 0x4CFFFFFF;
-static const QRgb dividerColorLight = 0x1E000000;
-static const QRgb dividerColorDark = 0x1EFFFFFF;
-static const QRgb iconColorLight = 0x89000000;
-static const QRgb iconColorDark = 0xFFFFFFFF;
-static const QRgb iconDisabledColorLight = 0x42000000;
-static const QRgb iconDisabledColorDark = 0x4CFFFFFF;
-static const QRgb raisedButtonColorLight = 0xFFD6D7D7;
-static const QRgb raisedButtonColorDark = 0x3FCCCCCC;
-static const QRgb raisedButtonDisabledColorLight = dividerColorLight;
-static const QRgb raisedButtonDisabledColorDark = dividerColorDark;
-static const QRgb frameColorLight = hintTextColorLight;
-static const QRgb frameColorDark = hintTextColorDark;
-static const QRgb switchUncheckedTrackColorLight = 0x42000000;
-static const QRgb switchUncheckedTrackColorDark = 0x4CFFFFFF;
-static const QRgb switchDisabledTrackColorLight = 0x1E000000;
-static const QRgb switchDisabledTrackColorDark = 0x19FFFFFF;
-static const QRgb rippleColorLight = 0x10000000;
-static const QRgb rippleColorDark = 0x20FFFFFF;
-static const QRgb spinBoxDisabledIconColorLight = 0xFFCCCCCC;
-static const QRgb spinBoxDisabledIconColorDark = 0xFF666666;
-static const QRgb sliderDisabledColorLight = 0xFF9E9E9E;
-static const QRgb sliderDisabledColorDark = 0xFF616161;
-
-static QQuickMaterialStyle::Theme effectiveTheme(QQuickMaterialStyle::Theme theme)
-{
- if (theme == QQuickMaterialStyle::System)
- theme = QQuickStylePrivate::isDarkSystemTheme() ? QQuickMaterialStyle::Dark : QQuickMaterialStyle::Light;
- return theme;
-}
-
-QQuickMaterialStyle::QQuickMaterialStyle(QObject *parent) : QQuickAttachedObject(parent),
- m_customPrimary(globalPrimaryCustom),
- m_customAccent(globalAccentCustom),
- m_customForeground(globalForegroundCustom),
- m_customBackground(globalBackgroundCustom),
- m_hasForeground(hasGlobalForeground),
- m_hasBackground(hasGlobalBackground),
- m_theme(globalTheme),
- m_primary(globalPrimary),
- m_accent(globalAccent),
- m_foreground(globalForeground),
- m_background(globalBackground)
-{
- QQuickAttachedObject::init();
-}
-
-QQuickMaterialStyle *QQuickMaterialStyle::qmlAttachedProperties(QObject *object)
-{
- return new QQuickMaterialStyle(object);
-}
-
-QQuickMaterialStyle::Theme QQuickMaterialStyle::theme() const
-{
- return m_theme;
-}
-
-void QQuickMaterialStyle::setTheme(Theme theme)
-{
- if (theme == System)
- theme = QQuickStylePrivate::isDarkSystemTheme() ? Dark : Light;
-
- m_explicitTheme = true;
- if (m_theme == theme)
- return;
-
- m_theme = theme;
- propagateTheme();
- themeChange();
- if (!m_customAccent)
- accentChange();
- if (!m_hasBackground)
- backgroundChange();
- if (!m_hasForeground)
- foregroundChange();
-}
-
-void QQuickMaterialStyle::inheritTheme(Theme theme)
-{
- if (m_explicitTheme || m_theme == theme)
- return;
-
- m_theme = theme;
- propagateTheme();
- themeChange();
- if (!m_customAccent)
- accentChange();
- if (!m_hasBackground)
- backgroundChange();
- if (!m_hasForeground)
- foregroundChange();
-}
-
-void QQuickMaterialStyle::propagateTheme()
-{
- const auto styles = attachedChildren();
- for (QQuickAttachedObject *child : styles) {
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child);
- if (material)
- material->inheritTheme(m_theme);
- }
-}
-
-void QQuickMaterialStyle::resetTheme()
-{
- if (!m_explicitTheme)
- return;
-
- m_explicitTheme = false;
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(attachedParent());
- inheritTheme(material ? material->theme() : globalTheme);
-}
-
-void QQuickMaterialStyle::themeChange()
-{
- emit themeChanged();
- emit themeOrAccentChanged();
- emit primaryHighlightedTextColor();
- emit buttonColorChanged();
- emit buttonDisabledColorChanged();
- emit dialogColorChanged();
- emit tooltipColorChanged();
- emit toolBarColorChanged();
- emit toolTextColorChanged();
-}
-
-QVariant QQuickMaterialStyle::primary() const
-{
- return primaryColor();
-}
-
-void QQuickMaterialStyle::setPrimary(const QVariant &var)
-{
- QRgb primary = 0;
- bool custom = false;
- if (!variantToRgba(var, "primary", &primary, &custom))
- return;
-
- m_explicitPrimary = true;
- if (m_primary == primary)
- return;
-
- m_customPrimary = custom;
- m_primary = primary;
- propagatePrimary();
- primaryChange();
-}
-
-void QQuickMaterialStyle::inheritPrimary(uint primary, bool custom)
-{
- if (m_explicitPrimary || m_primary == primary)
- return;
-
- m_customPrimary = custom;
- m_primary = primary;
- propagatePrimary();
- primaryChange();
-}
-
-void QQuickMaterialStyle::propagatePrimary()
-{
- const auto styles = attachedChildren();
- for (QQuickAttachedObject *child : styles) {
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child);
- if (material)
- material->inheritPrimary(m_primary, m_customPrimary);
- }
-}
-
-void QQuickMaterialStyle::resetPrimary()
-{
- if (!m_explicitPrimary)
- return;
-
- m_customPrimary = false;
- m_explicitPrimary = false;
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(attachedParent());
- if (material)
- inheritPrimary(material->m_primary, material->m_customPrimary);
- else
- inheritPrimary(globalPrimary, false);
-}
-
-void QQuickMaterialStyle::primaryChange()
-{
- emit primaryChanged();
- emit toolBarColorChanged();
- emit toolTextColorChanged();
-}
-
-QVariant QQuickMaterialStyle::accent() const
-{
- return accentColor();
-}
-
-void QQuickMaterialStyle::setAccent(const QVariant &var)
-{
- QRgb accent = 0;
- bool custom = false;
- if (!variantToRgba(var, "accent", &accent, &custom))
- return;
-
- m_explicitAccent = true;
- if (m_accent == accent)
- return;
-
- m_customAccent = custom;
- m_accent = accent;
- propagateAccent();
- accentChange();
-}
-
-void QQuickMaterialStyle::inheritAccent(uint accent, bool custom)
-{
- if (m_explicitAccent || m_accent == accent)
- return;
-
- m_customAccent = custom;
- m_accent = accent;
- propagateAccent();
- accentChange();
-}
-
-void QQuickMaterialStyle::propagateAccent()
-{
- const auto styles = attachedChildren();
- for (QQuickAttachedObject *child : styles) {
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child);
- if (material)
- material->inheritAccent(m_accent, m_customAccent);
- }
-}
-
-void QQuickMaterialStyle::resetAccent()
-{
- if (!m_explicitAccent)
- return;
-
- m_customAccent = false;
- m_explicitAccent = false;
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(attachedParent());
- if (material)
- inheritAccent(material->m_accent, material->m_customAccent);
- else
- inheritAccent(globalAccent, false);
-}
-
-void QQuickMaterialStyle::accentChange()
-{
- emit accentChanged();
- emit themeOrAccentChanged();
- emit buttonColorChanged();
-}
-
-QVariant QQuickMaterialStyle::foreground() const
-{
- if (!m_hasForeground)
- return QColor::fromRgba(m_theme == Light ? primaryTextColorLight : primaryTextColorDark);
- if (m_customForeground)
- return QColor::fromRgba(m_foreground);
- if (m_foreground > BlueGrey)
- return QColor();
- return QColor::fromRgba(colors[m_foreground][Shade500]);
-}
-
-void QQuickMaterialStyle::setForeground(const QVariant &var)
-{
- QRgb foreground = 0;
- bool custom = false;
- if (!variantToRgba(var, "foreground", &foreground, &custom))
- return;
-
- m_hasForeground = true;
- m_explicitForeground = true;
- if (m_foreground == foreground)
- return;
-
- m_customForeground = custom;
- m_foreground = foreground;
- propagateForeground();
- foregroundChange();
-}
-
-void QQuickMaterialStyle::inheritForeground(uint foreground, bool custom, bool has)
-{
- if (m_explicitForeground || m_foreground == foreground)
- return;
-
- m_hasForeground = has;
- m_customForeground = custom;
- m_foreground = foreground;
- propagateForeground();
- foregroundChange();
-}
-
-void QQuickMaterialStyle::propagateForeground()
-{
- const auto styles = attachedChildren();
- for (QQuickAttachedObject *child : styles) {
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child);
- if (material)
- material->inheritForeground(m_foreground, m_customForeground, m_hasForeground);
- }
-}
-
-void QQuickMaterialStyle::resetForeground()
-{
- if (!m_explicitForeground)
- return;
-
- m_hasForeground = false;
- m_customForeground = false;
- m_explicitForeground = false;
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(attachedParent());
- inheritForeground(material ? material->m_foreground : globalForeground, true, material ? material->m_hasForeground : false);
-}
-
-void QQuickMaterialStyle::foregroundChange()
-{
- emit foregroundChanged();
- emit primaryHighlightedTextColorChanged();
- // TODO: This causes a binding loop: see QTBUG-85699 and the comments on its fix
-// emit toolTextColorChanged();
-}
-
-QVariant QQuickMaterialStyle::background() const
-{
- return backgroundColor();
-}
-
-void QQuickMaterialStyle::setBackground(const QVariant &var)
-{
- QRgb background = 0;
- bool custom = false;
- if (!variantToRgba(var, "background", &background, &custom))
- return;
-
- m_hasBackground = true;
- m_explicitBackground = true;
- if (m_background == background)
- return;
-
- m_customBackground = custom;
- m_background = background;
- propagateBackground();
- backgroundChange();
-}
-
-void QQuickMaterialStyle::inheritBackground(uint background, bool custom, bool has)
-{
- if (m_explicitBackground || m_background == background)
- return;
-
- m_hasBackground = has;
- m_customBackground = custom;
- m_background = background;
- propagateBackground();
- backgroundChange();
-}
-
-void QQuickMaterialStyle::propagateBackground()
-{
- const auto styles = attachedChildren();
- for (QQuickAttachedObject *child : styles) {
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(child);
- if (material)
- material->inheritBackground(m_background, m_customBackground, m_hasBackground);
- }
-}
-
-void QQuickMaterialStyle::resetBackground()
-{
- if (!m_explicitBackground)
- return;
-
- m_hasBackground = false;
- m_customBackground = false;
- m_explicitBackground = false;
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(attachedParent());
- inheritBackground(material ? material->m_background : globalBackground, true, material ? material->m_hasBackground : false);
-}
-
-void QQuickMaterialStyle::backgroundChange()
-{
- emit backgroundChanged();
- emit buttonColorChanged();
- emit dialogColorChanged();
- emit tooltipColorChanged();
- emit toolBarColorChanged();
-}
-
-int QQuickMaterialStyle::elevation() const
-{
- return m_elevation;
-}
-
-void QQuickMaterialStyle::setElevation(int elevation)
-{
- if (m_elevation == elevation)
- return;
-
- m_elevation = elevation;
- elevationChange();
-}
-
-void QQuickMaterialStyle::resetElevation()
-{
- setElevation(0);
-}
-
-void QQuickMaterialStyle::elevationChange()
-{
- emit elevationChanged();
- emit buttonDisabledColorChanged();
-}
-
-QColor QQuickMaterialStyle::primaryColor() const
-{
- if (m_customPrimary)
- return QColor::fromRgba(m_primary);
- if (m_primary > BlueGrey)
- return QColor();
- return colors[m_primary][Shade500];
-}
-
-QColor QQuickMaterialStyle::accentColor(Shade shade) const
-{
- if (m_customAccent)
- return shade == themeShade() ? QColor::fromRgba(m_accent)
- : this->shade(QColor::fromRgba(m_accent), shade);
- if (m_accent > BlueGrey)
- return QColor();
- return colors[m_accent][shade];
-}
-
-QColor QQuickMaterialStyle::accentColor() const
-{
- return accentColor(themeShade());
-}
-
-QColor QQuickMaterialStyle::backgroundColor(Shade shade) const
-{
- if (!m_hasBackground)
- return QColor::fromRgba(m_theme == Light ? backgroundColorLight : backgroundColorDark);
- if (m_customBackground)
- return shade == themeShade() ? QColor::fromRgba(m_background)
- : this->shade(QColor::fromRgba(m_background), shade);
- if (m_background > BlueGrey)
- return QColor();
- return colors[m_background][shade];
-}
-
-QColor QQuickMaterialStyle::backgroundColor() const
-{
- return backgroundColor(themeShade());
-}
-
-QColor QQuickMaterialStyle::primaryTextColor() const
-{
- return QColor::fromRgba(m_theme == Light ? primaryTextColorLight : primaryTextColorDark);
-}
-
-QColor QQuickMaterialStyle::primaryHighlightedTextColor() const
-{
- if (m_explicitForeground)
- return primaryTextColor();
- return QColor::fromRgba(primaryTextColorDark);
-}
-
-QColor QQuickMaterialStyle::secondaryTextColor() const
-{
- return QColor::fromRgba(m_theme == Light ? secondaryTextColorLight : secondaryTextColorDark);
-}
-
-QColor QQuickMaterialStyle::hintTextColor() const
-{
- return QColor::fromRgba(m_theme == Light ? hintTextColorLight : hintTextColorDark);
-}
-
-QColor QQuickMaterialStyle::textSelectionColor() const
-{
- QColor color = accentColor();
- color.setAlphaF(0.4f);
- return color;
-}
-
-QColor QQuickMaterialStyle::dropShadowColor() const
-{
- return QColor::fromRgba(0x40000000);
-}
-
-QColor QQuickMaterialStyle::dividerColor() const
-{
- return QColor::fromRgba(m_theme == Light ? dividerColorLight : dividerColorDark);
-}
-
-QColor QQuickMaterialStyle::iconColor() const
-{
- return QColor::fromRgba(m_theme == Light ? iconColorLight : iconColorDark);
-}
-
-QColor QQuickMaterialStyle::iconDisabledColor() const
-{
- return QColor::fromRgba(m_theme == Light ? iconDisabledColorLight : iconDisabledColorDark);
-}
-
-QColor QQuickMaterialStyle::buttonColor(bool highlighted) const
-{
- Shade shade = themeShade();
-
- QColor color = Qt::transparent;
-
- if (m_explicitBackground) {
- color = backgroundColor(shade);
- } else if (highlighted) {
- color = accentColor(shade);
- } else if (elevation() > 0) {
- color = QColor::fromRgba(m_theme == Light ? raisedButtonColorLight
- : raisedButtonColorDark);
- }
-
- return color;
-}
-
-QColor QQuickMaterialStyle::buttonColor() const
-{
- return buttonColor(false);
-}
-
-QColor QQuickMaterialStyle::buttonDisabledColor() const
-{
- if (elevation() > 0) {
- return QColor::fromRgba(m_theme == Light ? raisedButtonDisabledColorLight
- : raisedButtonDisabledColorDark);
- } else {
- return Qt::transparent;
- }
-}
-
-QColor QQuickMaterialStyle::highlightedButtonColor() const
-{
- return buttonColor(true);
-}
-
-QColor QQuickMaterialStyle::frameColor() const
-{
- return QColor::fromRgba(m_theme == Light ? frameColorLight : frameColorDark);
-}
-
-QColor QQuickMaterialStyle::rippleColor() const
-{
- return QColor::fromRgba(m_theme == Light ? rippleColorLight : rippleColorDark);
-}
-
-QColor QQuickMaterialStyle::highlightedRippleColor() const
-{
- QColor pressColor = accentColor();
- pressColor.setAlpha(m_theme == Light ? 30 : 50);
- return pressColor;
-}
-
-QColor QQuickMaterialStyle::switchUncheckedTrackColor() const
-{
- return QColor::fromRgba(m_theme == Light ? switchUncheckedTrackColorLight : switchUncheckedTrackColorDark);
-}
-
-QColor QQuickMaterialStyle::switchCheckedTrackColor() const
-{
- QColor trackColor(accentColor());
- trackColor.setAlphaF(0.5);
- return trackColor;
-}
-
-QColor QQuickMaterialStyle::switchUncheckedHandleColor() const
-{
- return m_theme == Light ? color(Grey, Shade50) : color(Grey, Shade400);
-}
-
-QColor QQuickMaterialStyle::switchCheckedHandleColor() const
-{
- return m_theme == Light ? accentColor() : shade(accentColor(), Shade200);
-}
-
-QColor QQuickMaterialStyle::switchDisabledTrackColor() const
-{
- return QColor::fromRgba(m_theme == Light ? switchDisabledTrackColorLight : switchDisabledTrackColorDark);
-}
-
-QColor QQuickMaterialStyle::switchDisabledHandleColor() const
-{
- return m_theme == Light ? color(Grey, Shade400) : color(Grey, Shade800);
-}
-
-QColor QQuickMaterialStyle::scrollBarColor() const
-{
- return QColor::fromRgba(m_theme == Light ? 0x40000000 : 0x40FFFFFF);
-}
-
-QColor QQuickMaterialStyle::scrollBarHoveredColor() const
-{
- return QColor::fromRgba(m_theme == Light ? 0x60000000 : 0x60FFFFFF);
-}
-
-QColor QQuickMaterialStyle::scrollBarPressedColor() const
-{
- return QColor::fromRgba(m_theme == Light ? 0x80000000 : 0x80FFFFFF);
-}
-
-QColor QQuickMaterialStyle::dialogColor() const
-{
- if (m_hasBackground)
- return backgroundColor();
- return QColor::fromRgba(m_theme == Light ? dialogColorLight : dialogColorDark);
-}
-
-QColor QQuickMaterialStyle::backgroundDimColor() const
-{
- return QColor::fromRgba(m_theme == Light ? 0x99303030 : 0x99fafafa);
-}
-
-QColor QQuickMaterialStyle::listHighlightColor() const
-{
- return QColor::fromRgba(m_theme == Light ? 0x1e000000 : 0x1effffff);
-}
-
-QColor QQuickMaterialStyle::tooltipColor() const
-{
- if (m_explicitBackground)
- return backgroundColor();
- return color(Grey, Shade700);
-}
-
-QColor QQuickMaterialStyle::toolBarColor() const
-{
- if (m_explicitBackground)
- return backgroundColor();
- return primaryColor();
-}
-
-QColor QQuickMaterialStyle::toolTextColor() const
-{
- if (m_hasForeground || m_customPrimary)
- return primaryTextColor();
-
- switch (m_primary) {
- case Red:
- case Pink:
- case Purple:
- case DeepPurple:
- case Indigo:
- case Blue:
- case Teal:
- case DeepOrange:
- case Brown:
- case BlueGrey:
- return QColor::fromRgba(primaryTextColorDark);
-
- case LightBlue:
- case Cyan:
- case Green:
- case LightGreen:
- case Lime:
- case Yellow:
- case Amber:
- case Orange:
- case Grey:
- return QColor::fromRgba(primaryTextColorLight);
-
- default:
- break;
- }
-
- return primaryTextColor();
-}
-
-QColor QQuickMaterialStyle::spinBoxDisabledIconColor() const
-{
- return QColor::fromRgba(m_theme == Light ? spinBoxDisabledIconColorLight : spinBoxDisabledIconColorDark);
-}
-
-QColor QQuickMaterialStyle::sliderDisabledColor() const
-{
- return QColor::fromRgba(m_theme == Light ? sliderDisabledColorLight : sliderDisabledColorDark);
-}
-
-QColor QQuickMaterialStyle::color(QQuickMaterialStyle::Color color, QQuickMaterialStyle::Shade shade) const
-{
- int count = sizeof(colors) / sizeof(colors[0]);
- if (color < 0 || color >= count)
- return QColor();
-
- count = sizeof(colors[0]) / sizeof(colors[0][0]);
- if (shade < 0 || shade >= count)
- return QColor();
-
- return colors[color][shade];
-}
-
-static QColor lighterShade(const QColor &color, qreal amount)
-{
- QColor hsl = color.toHsl();
- hsl.setHslF(hsl.hueF(), hsl.saturationF(), qBound<qreal>(0.0, hsl.lightnessF() + amount, 1.0), color.alphaF());
- return hsl.convertTo(color.spec());
-}
-
-static QColor darkerShade(const QColor &color, qreal amount)
-{
- QColor hsl = color.toHsl();
- hsl.setHslF(hsl.hueF(), hsl.saturationF(), qBound<qreal>(0.0, hsl.lightnessF() - amount, 1.0), color.alphaF());
- return hsl.convertTo(color.spec());
-}
-
-QQuickMaterialStyle::Shade QQuickMaterialStyle::themeShade() const
-{
- return m_theme == Light ? Shade500 : Shade200;
-}
-
-/*
- * The following lightness values originate from the Material Design Color Generator project.
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2015 mbitson
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-// Returns the same color, if shade == themeShade()
-QColor QQuickMaterialStyle::shade(const QColor &color, Shade shade) const
-{
- switch (shade) {
- case Shade50:
- return lighterShade(color, m_theme == Light ? 0.52 : 0.26);
- case Shade100:
- return lighterShade(color, m_theme == Light ? 0.37 : 0.11);
- case Shade200:
- return m_theme == Light ? lighterShade(color, 0.26) : color;
- case Shade300:
- return m_theme == Light ? lighterShade(color, 0.12) : darkerShade(color, 0.14);
- case Shade400:
- return m_theme == Light ? lighterShade(color, 0.06) : darkerShade(color, 0.20);
- case Shade500:
- return m_theme == Light ? color : darkerShade(color, 0.26);
- case Shade600:
- return darkerShade(color, m_theme == Light ? 0.06 : 0.32);
- case Shade700:
- return darkerShade(color, m_theme == Light ? 0.12 : 0.38);
- case Shade800:
- return darkerShade(color, m_theme == Light ? 0.18 : 0.44);
- case Shade900:
- return darkerShade(color, m_theme == Light ? 0.24 : 0.50);
- case ShadeA100:
- return lighterShade(color, m_theme == Light ? 0.54 : 0.28);
- case ShadeA200:
- return lighterShade(color, m_theme == Light ? 0.37 : 0.11);
- case ShadeA400:
- return m_theme == Light ? lighterShade(color, 0.06) : darkerShade(color, 0.20);
- case ShadeA700:
- return darkerShade(color, m_theme == Light ? 0.12 : 0.38);
- default:
- Q_UNREACHABLE();
- return QColor();
- }
-}
-
-int QQuickMaterialStyle::touchTarget() const
-{
- // https://material.io/guidelines/components/buttons.html#buttons-style
- return globalVariant == Dense ? 44 : 48;
-}
-
-int QQuickMaterialStyle::buttonHeight() const
-{
- // https://material.io/guidelines/components/buttons.html#buttons-style
- return globalVariant == Dense ? 32 : 36;
-}
-
-int QQuickMaterialStyle::delegateHeight() const
-{
- // https://material.io/guidelines/components/lists.html#lists-specs
- return globalVariant == Dense ? 40 : 48;
-}
-
-int QQuickMaterialStyle::dialogButtonBoxHeight() const
-{
- return globalVariant == Dense ? 48 : 52;
-}
-
-int QQuickMaterialStyle::frameVerticalPadding() const
-{
- return globalVariant == Dense ? 8 : 12;
-}
-
-int QQuickMaterialStyle::menuItemHeight() const
-{
- // https://material.io/guidelines/components/menus.html#menus-simple-menus
- return globalVariant == Dense ? 32 : 48;
-}
-
-int QQuickMaterialStyle::menuItemVerticalPadding() const
-{
- return globalVariant == Dense ? 8 : 12;
-}
-
-int QQuickMaterialStyle::switchDelegateVerticalPadding() const
-{
- // SwitchDelegate's indicator is much larger than the others due to the shadow,
- // so we must reduce its padding to ensure its implicitHeight is 40 when dense.
- return globalVariant == Dense ? 4 : 8;
-}
-
-int QQuickMaterialStyle::tooltipHeight() const
-{
- // https://material.io/guidelines/components/tooltips.html
- return globalVariant == Dense ? 22 : 32;
-}
-
-QQuickMaterialStyle::Variant QQuickMaterialStyle::variant()
-{
- return globalVariant;
-}
-
-template <typename Enum>
-static Enum toEnumValue(const QByteArray &value, bool *ok)
-{
- QMetaEnum enumeration = QMetaEnum::fromType<Enum>();
- return static_cast<Enum>(enumeration.keyToValue(value, ok));
-}
-
-static QByteArray resolveSetting(const QByteArray &env, const QSharedPointer<QSettings> &settings, const QString &name)
-{
- QByteArray value = qgetenv(env);
-#if QT_CONFIG(settings)
- if (value.isNull() && !settings.isNull())
- value = settings->value(name).toByteArray();
-#endif
- return value;
-}
-
-void QQuickMaterialStyle::initGlobals()
-{
- QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(QStringLiteral("Material"));
-
- bool ok = false;
- QByteArray themeValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_THEME", settings, QStringLiteral("Theme"));
- Theme themeEnum = toEnumValue<Theme>(themeValue, &ok);
- if (ok)
- globalTheme = effectiveTheme(themeEnum);
- else if (!themeValue.isEmpty())
- qWarning().nospace().noquote() << "Material: unknown theme value: " << themeValue;
-
- QByteArray variantValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_VARIANT", settings, QStringLiteral("Variant"));
- Variant variantEnum = toEnumValue<Variant>(variantValue, &ok);
- if (ok)
- globalVariant = variantEnum;
- else if (!variantValue.isEmpty())
- qWarning().nospace().noquote() << "Material: unknown variant value: " << variantValue;
-
- QByteArray primaryValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_PRIMARY", settings, QStringLiteral("Primary"));
- Color primaryEnum = toEnumValue<Color>(primaryValue, &ok);
- if (ok) {
- globalPrimaryCustom = false;
- globalPrimary = primaryEnum;
- } else {
- QColor color(primaryValue.constData());
- if (color.isValid()) {
- globalPrimaryCustom = true;
- globalPrimary = color.rgba();
- } else if (!primaryValue.isEmpty()) {
- qWarning().nospace().noquote() << "Material: unknown primary value: " << primaryValue;
- }
- }
-
- QByteArray accentValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_ACCENT", settings, QStringLiteral("Accent"));
- Color accentEnum = toEnumValue<Color>(accentValue, &ok);
- if (ok) {
- globalAccentCustom = false;
- globalAccent = accentEnum;
- } else if (!accentValue.isEmpty()) {
- QColor color(accentValue.constData());
- if (color.isValid()) {
- globalAccentCustom = true;
- globalAccent = color.rgba();
- } else {
- qWarning().nospace().noquote() << "Material: unknown accent value: " << accentValue;
- }
- }
-
- QByteArray foregroundValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_FOREGROUND", settings, QStringLiteral("Foreground"));
- Color foregroundEnum = toEnumValue<Color>(foregroundValue, &ok);
- if (ok) {
- globalForegroundCustom = false;
- globalForeground = foregroundEnum;
- hasGlobalForeground = true;
- } else if (!foregroundValue.isEmpty()) {
- QColor color(foregroundValue.constData());
- if (color.isValid()) {
- globalForegroundCustom = true;
- globalForeground = color.rgba();
- hasGlobalForeground = true;
- } else {
- qWarning().nospace().noquote() << "Material: unknown foreground value: " << foregroundValue;
- }
- }
-
- QByteArray backgroundValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_BACKGROUND", settings, QStringLiteral("Background"));
- Color backgroundEnum = toEnumValue<Color>(backgroundValue, &ok);
- if (ok) {
- globalBackgroundCustom = false;
- globalBackground = backgroundEnum;
- hasGlobalBackground = true;
- } else if (!backgroundValue.isEmpty()) {
- QColor color(backgroundValue.constData());
- if (color.isValid()) {
- globalBackgroundCustom = true;
- globalBackground = color.rgba();
- hasGlobalBackground = true;
- } else {
- qWarning().nospace().noquote() << "Material: unknown background value: " << backgroundValue;
- }
- }
-}
-
-void QQuickMaterialStyle::attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent)
-{
- Q_UNUSED(oldParent);
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(newParent);
- if (material) {
- inheritPrimary(material->m_primary, material->m_customPrimary);
- inheritAccent(material->m_accent, material->m_customAccent);
- inheritForeground(material->m_foreground, material->m_customForeground, material->m_hasForeground);
- inheritBackground(material->m_background, material->m_customBackground, material->m_hasBackground);
- inheritTheme(material->theme());
- }
-}
-
-bool QQuickMaterialStyle::variantToRgba(const QVariant &var, const char *name, QRgb *rgba, bool *custom) const
-{
- *custom = false;
- if (var.metaType().id() == QMetaType::Int) {
- int val = var.toInt();
- if (val > BlueGrey) {
- qmlWarning(parent()) << "unknown Material." << name << " value: " << val;
- return false;
- }
- *rgba = val;
- } else {
- int val = QMetaEnum::fromType<Color>().keyToValue(var.toByteArray());
- if (val != -1) {
- *rgba = val;
- } else {
- QColor color(var.toString());
- if (!color.isValid()) {
- qmlWarning(parent()) << "unknown Material." << name << " value: " << var.toString();
- return false;
- }
- *custom = true;
- *rgba = color.rgba();
- }
- }
- return true;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/material/qquickmaterialstyle_p.h b/src/quickcontrols2/material/qquickmaterialstyle_p.h
deleted file mode 100644
index 56cf141c..00000000
--- a/src/quickcontrols2/material/qquickmaterialstyle_p.h
+++ /dev/null
@@ -1,334 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMATERIALSTYLE_P_H
-#define QQUICKMATERIALSTYLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qcolor.h>
-#include <QtQuickControls2Impl/private/qquickattachedobject_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickMaterialStyle : public QQuickAttachedObject
-{
- Q_OBJECT
- Q_PROPERTY(Theme theme READ theme WRITE setTheme RESET resetTheme NOTIFY themeChanged FINAL)
- Q_PROPERTY(QVariant primary READ primary WRITE setPrimary RESET resetPrimary NOTIFY primaryChanged FINAL)
- Q_PROPERTY(QVariant accent READ accent WRITE setAccent RESET resetAccent NOTIFY accentChanged FINAL)
- Q_PROPERTY(QVariant foreground READ foreground WRITE setForeground RESET resetForeground NOTIFY foregroundChanged FINAL)
- Q_PROPERTY(QVariant background READ background WRITE setBackground RESET resetBackground NOTIFY backgroundChanged FINAL)
- Q_PROPERTY(int elevation READ elevation WRITE setElevation RESET resetElevation NOTIFY elevationChanged FINAL)
-
- Q_PROPERTY(QColor primaryColor READ primaryColor NOTIFY primaryChanged FINAL) // TODO: remove?
- Q_PROPERTY(QColor accentColor READ accentColor NOTIFY accentChanged FINAL) // TODO: remove?
- Q_PROPERTY(QColor backgroundColor READ backgroundColor NOTIFY backgroundChanged FINAL)
- Q_PROPERTY(QColor primaryTextColor READ primaryTextColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor primaryHighlightedTextColor READ primaryHighlightedTextColor NOTIFY primaryHighlightedTextColorChanged FINAL)
- Q_PROPERTY(QColor secondaryTextColor READ secondaryTextColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor hintTextColor READ hintTextColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor textSelectionColor READ textSelectionColor NOTIFY themeOrAccentChanged FINAL)
- Q_PROPERTY(QColor dropShadowColor READ dropShadowColor CONSTANT FINAL)
- Q_PROPERTY(QColor dividerColor READ dividerColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor iconColor READ iconColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor iconDisabledColor READ iconDisabledColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor buttonColor READ buttonColor NOTIFY buttonColorChanged FINAL)
- Q_PROPERTY(QColor buttonDisabledColor READ buttonDisabledColor NOTIFY buttonDisabledColorChanged FINAL)
- Q_PROPERTY(QColor highlightedButtonColor READ highlightedButtonColor NOTIFY buttonColorChanged FINAL)
- Q_PROPERTY(QColor frameColor READ frameColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor rippleColor READ rippleColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor highlightedRippleColor READ highlightedRippleColor NOTIFY themeOrAccentChanged FINAL)
- Q_PROPERTY(QColor switchUncheckedTrackColor READ switchUncheckedTrackColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor switchCheckedTrackColor READ switchCheckedTrackColor NOTIFY themeOrAccentChanged FINAL)
- Q_PROPERTY(QColor switchUncheckedHandleColor READ switchUncheckedHandleColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor switchCheckedHandleColor READ switchCheckedHandleColor NOTIFY themeOrAccentChanged FINAL)
- Q_PROPERTY(QColor switchDisabledTrackColor READ switchDisabledTrackColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor switchDisabledHandleColor READ switchDisabledHandleColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor scrollBarColor READ scrollBarColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor scrollBarHoveredColor READ scrollBarHoveredColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor scrollBarPressedColor READ scrollBarPressedColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor dialogColor READ dialogColor NOTIFY dialogColorChanged FINAL)
- Q_PROPERTY(QColor backgroundDimColor READ backgroundDimColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor listHighlightColor READ listHighlightColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor tooltipColor READ tooltipColor NOTIFY tooltipColorChanged FINAL)
- Q_PROPERTY(QColor toolBarColor READ toolBarColor NOTIFY toolBarColorChanged FINAL)
- Q_PROPERTY(QColor toolTextColor READ toolTextColor NOTIFY toolTextColorChanged FINAL)
- Q_PROPERTY(QColor spinBoxDisabledIconColor READ spinBoxDisabledIconColor NOTIFY themeChanged FINAL)
- Q_PROPERTY(QColor sliderDisabledColor READ sliderDisabledColor NOTIFY themeChanged FINAL REVISION 15)
-
- Q_PROPERTY(int touchTarget READ touchTarget CONSTANT FINAL)
- Q_PROPERTY(int buttonHeight READ buttonHeight CONSTANT FINAL)
- Q_PROPERTY(int delegateHeight READ delegateHeight CONSTANT FINAL)
- Q_PROPERTY(int dialogButtonBoxHeight READ dialogButtonBoxHeight CONSTANT FINAL)
- Q_PROPERTY(int frameVerticalPadding READ frameVerticalPadding CONSTANT FINAL)
- Q_PROPERTY(int menuItemHeight READ menuItemHeight CONSTANT FINAL)
- Q_PROPERTY(int menuItemVerticalPadding READ menuItemVerticalPadding CONSTANT FINAL)
- Q_PROPERTY(int switchDelegateVerticalPadding READ switchDelegateVerticalPadding CONSTANT FINAL)
- Q_PROPERTY(int tooltipHeight READ tooltipHeight CONSTANT FINAL)
-
- QML_NAMED_ELEMENT(Material)
- QML_ATTACHED(QQuickMaterialStyle)
- QML_UNCREATABLE("")
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- enum Theme {
- Light,
- Dark,
- System
- };
-
- enum Variant {
- Normal,
- Dense
- };
-
- enum Color {
- Red,
- Pink,
- Purple,
- DeepPurple,
- Indigo,
- Blue,
- LightBlue,
- Cyan,
- Teal,
- Green,
- LightGreen,
- Lime,
- Yellow,
- Amber,
- Orange,
- DeepOrange,
- Brown,
- Grey,
- BlueGrey
- };
-
- enum Shade {
- Shade50,
- Shade100,
- Shade200,
- Shade300,
- Shade400,
- Shade500,
- Shade600,
- Shade700,
- Shade800,
- Shade900,
- ShadeA100,
- ShadeA200,
- ShadeA400,
- ShadeA700,
- };
-
- Q_ENUM(Theme)
- Q_ENUM(Variant)
- Q_ENUM(Color)
- Q_ENUM(Shade)
-
- explicit QQuickMaterialStyle(QObject *parent = nullptr);
-
- static QQuickMaterialStyle *qmlAttachedProperties(QObject *object);
-
- Theme theme() const;
- void setTheme(Theme theme);
- void inheritTheme(Theme theme);
- void propagateTheme();
- void resetTheme();
- void themeChange();
-
- QVariant primary() const;
- void setPrimary(const QVariant &accent);
- void inheritPrimary(uint primary, bool custom);
- void propagatePrimary();
- void resetPrimary();
- void primaryChange();
-
- QVariant accent() const;
- void setAccent(const QVariant &accent);
- void inheritAccent(uint accent, bool custom);
- void propagateAccent();
- void resetAccent();
- void accentChange();
-
- QVariant foreground() const;
- void setForeground(const QVariant &foreground);
- void inheritForeground(uint foreground, bool custom, bool has);
- void propagateForeground();
- void resetForeground();
- void foregroundChange();
-
- QVariant background() const;
- void setBackground(const QVariant &background);
- void inheritBackground(uint background, bool custom, bool has);
- void propagateBackground();
- void resetBackground();
- void backgroundChange();
-
- int elevation() const;
- void setElevation(int elevation);
- void resetElevation();
- void elevationChange();
-
- QColor primaryColor() const;
- QColor accentColor() const;
- QColor backgroundColor() const;
- QColor primaryTextColor() const;
- QColor primaryHighlightedTextColor() const;
- QColor secondaryTextColor() const;
- QColor hintTextColor() const;
- QColor textSelectionColor() const;
- QColor dropShadowColor() const;
- QColor dividerColor() const;
- QColor iconColor() const;
- QColor iconDisabledColor() const;
- QColor buttonColor() const;
- QColor buttonDisabledColor() const;
- QColor highlightedButtonColor() const;
- QColor highlightedButtonDisabledColor() const;
- QColor frameColor() const;
- QColor rippleColor() const;
- QColor highlightedRippleColor() const;
- QColor switchUncheckedTrackColor() const;
- QColor switchCheckedTrackColor() const;
- QColor switchUncheckedHandleColor() const;
- QColor switchCheckedHandleColor() const;
- QColor switchDisabledTrackColor() const;
- QColor switchDisabledHandleColor() const;
- QColor scrollBarColor() const;
- QColor scrollBarHoveredColor() const;
- QColor scrollBarPressedColor() const;
- QColor dialogColor() const;
- QColor backgroundDimColor() const;
- QColor listHighlightColor() const;
- QColor tooltipColor() const;
- QColor toolBarColor() const;
- QColor toolTextColor() const;
- QColor spinBoxDisabledIconColor() const;
- QColor sliderDisabledColor() const;
-
- Q_INVOKABLE QColor color(Color color, Shade shade = Shade500) const;
- Q_INVOKABLE QColor shade(const QColor &color, Shade shade) const;
-
- int touchTarget() const;
- int buttonHeight() const;
- int delegateHeight() const;
- int dialogButtonBoxHeight() const;
- int frameVerticalPadding() const;
- int menuItemHeight() const;
- int menuItemVerticalPadding() const;
- int switchDelegateVerticalPadding() const;
- int tooltipHeight() const;
-
- static void initGlobals();
-
- static Variant variant();
-
-Q_SIGNALS:
- void themeChanged();
- void primaryChanged();
- void accentChanged();
- void foregroundChanged();
- void backgroundChanged();
- void elevationChanged();
-
- void themeOrAccentChanged();
-
- void primaryHighlightedTextColorChanged();
- void buttonColorChanged();
- void buttonDisabledColorChanged();
- void dialogColorChanged();
- void tooltipColorChanged();
- void toolBarColorChanged();
- void toolTextColorChanged();
-
-protected:
- void attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent) override;
-
-private:
- void init();
- bool variantToRgba(const QVariant &var, const char *name, QRgb *rgba, bool *custom) const;
-
- QColor backgroundColor(Shade shade) const;
- QColor accentColor(Shade shade) const;
- QColor buttonColor(bool highlighted) const;
- Shade themeShade() const;
-
- // These reflect whether a color value was explicitly set on the specific
- // item that this attached style object represents.
- bool m_explicitTheme = false;
- bool m_explicitPrimary = false;
- bool m_explicitAccent = false;
- bool m_explicitForeground = false;
- bool m_explicitBackground = false;
- // These reflect whether the color value that was either inherited or
- // explicitly set is in the form that QColor expects, rather than one of
- // our pre-defined color enum values.
- bool m_customPrimary = false;
- bool m_customAccent = false;
- bool m_customForeground = false;
- bool m_customBackground = false;
- // These will be true when this item has an explicit or inherited foreground/background
- // color, or these colors were declared globally via settings (e.g. conf or env vars).
- // Some color properties of the style will return different values depending on whether
- // or not these are set.
- bool m_hasForeground = false;
- bool m_hasBackground = false;
- // The actual values for this item, whether explicit, inherited or globally set.
- Theme m_theme = Light;
- uint m_primary = 0;
- uint m_accent = 0;
- uint m_foreground = 0;
- uint m_background = 0;
- int m_elevation = 0;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPEINFO(QQuickMaterialStyle, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKMATERIALSTYLE_P_H
diff --git a/src/quickcontrols2/material/qquickmaterialtheme.cpp b/src/quickcontrols2/material/qquickmaterialtheme.cpp
deleted file mode 100644
index aec9e232..00000000
--- a/src/quickcontrols2/material/qquickmaterialtheme.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmaterialtheme_p.h"
-#include "qquickmaterialstyle_p.h"
-
-#include <QtGui/qpa/qplatformdialoghelper.h>
-#include <QtGui/qfont.h>
-#include <QtGui/qfontinfo.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-QT_BEGIN_NAMESPACE
-
-void QQuickMaterialTheme::initialize(QQuickTheme *theme)
-{
- QFont systemFont;
- QFont buttonFont;
- QFont toolTipFont;
- QFont itemViewFont;
- QFont listViewFont;
- QFont menuItemFont;
- QFont editorFont;
-
- QFont font;
- font.setFamilies(QStringList{QLatin1String("Roboto")});
- QString family = QFontInfo(font).family();
-
- if (family != QLatin1String("Roboto")) {
- font.setFamilies(QStringList{QLatin1String("Noto")});
- family = QFontInfo(font).family();
- }
-
- if (family == QLatin1String("Roboto") || family == QLatin1String("Noto")) {
- const QStringList families{family};
- systemFont.setFamilies(families);
- buttonFont.setFamilies(families);
- toolTipFont.setFamilies(families);
- itemViewFont.setFamilies(families);
- listViewFont.setFamilies(families);
- menuItemFont.setFamilies(families);
- editorFont.setFamilies(families);
- }
-
- const bool dense = QQuickMaterialStyle::variant() == QQuickMaterialStyle::Dense;
- systemFont.setPixelSize(dense ? 13 : 14);
- theme->setFont(QQuickTheme::System, systemFont);
-
- // https://material.io/guidelines/components/buttons.html#buttons-style
- buttonFont.setPixelSize(dense ? 13 : 14);
- buttonFont.setCapitalization(QFont::AllUppercase);
- buttonFont.setWeight(QFont::Medium);
- theme->setFont(QQuickTheme::Button, buttonFont);
- theme->setFont(QQuickTheme::TabBar, buttonFont);
- theme->setFont(QQuickTheme::ToolBar, buttonFont);
-
- // https://material.io/guidelines/components/tooltips.html
- toolTipFont.setPixelSize(dense ? 10 : 14);
- toolTipFont.setWeight(QFont::Medium);
- theme->setFont(QQuickTheme::ToolTip, toolTipFont);
-
- itemViewFont.setPixelSize(dense ? 13 : 14);
- itemViewFont.setWeight(QFont::Medium);
- theme->setFont(QQuickTheme::ItemView, itemViewFont);
-
- // https://material.io/guidelines/components/lists.html#lists-specs
- listViewFont.setPixelSize(dense ? 13 : 16);
- theme->setFont(QQuickTheme::ListView, listViewFont);
-
- menuItemFont.setPixelSize(dense ? 13 : 16);
- theme->setFont(QQuickTheme::Menu, menuItemFont);
- theme->setFont(QQuickTheme::MenuBar, menuItemFont);
- theme->setFont(QQuickTheme::ComboBox, menuItemFont);
-
- editorFont.setPixelSize(dense ? 13 : 16);
- theme->setFont(QQuickTheme::TextArea, editorFont);
- theme->setFont(QQuickTheme::TextField, editorFont);
- theme->setFont(QQuickTheme::SpinBox, editorFont);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/material/qquickmaterialtheme_p.h b/src/quickcontrols2/material/qquickmaterialtheme_p.h
deleted file mode 100644
index 9a1362b8..00000000
--- a/src/quickcontrols2/material/qquickmaterialtheme_p.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMATERIALTHEME_P_H
-#define QQUICKMATERIALTHEME_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTheme;
-
-class QQuickMaterialTheme
-{
-public:
- static void initialize(QQuickTheme *theme);
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKMATERIALTHEME_P_H
diff --git a/src/quickcontrols2/material/qt_attribution.json b/src/quickcontrols2/material/qt_attribution.json
deleted file mode 100644
index 85fdadf9..00000000
--- a/src/quickcontrols2/material/qt_attribution.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "Id": "shadow_angular_material",
- "Name": "Shadow values from Angular Material",
- "QDocModule": "qtquickcontrols",
- "QtUsage": "Used in the Material Style of Qt Quick Controls 2.",
- "Files": "ElevationEffect.qml",
- "Description": "Shadow values for the elevation effect.",
- "Homepage": "https://angularjs.org/",
- "License": "MIT License",
- "LicenseId": "MIT",
- "LicenseFile": "LICENSE_ANGULARJS.txt",
- "Copyright": "Copyright (c) 2014-2016 Google, Inc"
-}
diff --git a/src/quickcontrols2/material/qtquickcontrols2materialstyleplugin.cpp b/src/quickcontrols2/material/qtquickcontrols2materialstyleplugin.cpp
deleted file mode 100644
index c8e7ebbc..00000000
--- a/src/quickcontrols2/material/qtquickcontrols2materialstyleplugin.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmaterialstyle_p.h"
-#include "qquickmaterialtheme_p.h"
-
-#include <QtQuickControls2/private/qquickstyleplugin_p.h>
-#include <QtQuickControls2Impl/private/qquickpaddedrectangle_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-extern void qml_register_types_QtQuick_Controls_Material();
-
-QT_BEGIN_NAMESPACE
-
-class QtQuickControls2MaterialStylePlugin : public QQuickStylePlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
-
-public:
- QtQuickControls2MaterialStylePlugin(QObject *parent = nullptr);
-
- QString name() const override;
- void initializeTheme(QQuickTheme *theme) override;
-
- QQuickMaterialTheme theme;
-};
-
-QtQuickControls2MaterialStylePlugin::QtQuickControls2MaterialStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
-{
- volatile auto registration = &qml_register_types_QtQuick_Controls_Material;
- Q_UNUSED(registration);
-}
-
-QString QtQuickControls2MaterialStylePlugin::name() const
-{
- return QStringLiteral("Material");
-}
-
-void QtQuickControls2MaterialStylePlugin::initializeTheme(QQuickTheme *theme)
-{
- QQuickMaterialStyle::initGlobals();
- this->theme.initialize(theme);
-}
-
-QT_END_NAMESPACE
-
-#include "qtquickcontrols2materialstyleplugin.moc"
diff --git a/src/quickcontrols2/material/qtquickcontrols2materialstyleplugin.qrc b/src/quickcontrols2/material/qtquickcontrols2materialstyleplugin.qrc
deleted file mode 100644
index 981960c4..00000000
--- a/src/quickcontrols2/material/qtquickcontrols2materialstyleplugin.qrc
+++ /dev/null
@@ -1,20 +0,0 @@
-<RCC>
- <qresource prefix="/qt-project.org/imports/QtQuick/Controls/Material">
- <file>images/arrow-indicator.png</file>
- <file>images/arrow-indicator@2x.png</file>
- <file>images/arrow-indicator@3x.png</file>
- <file>images/arrow-indicator@4x.png</file>
- <file>images/check.png</file>
- <file>images/check@2x.png</file>
- <file>images/check@3x.png</file>
- <file>images/check@4x.png</file>
- <file>images/drop-indicator.png</file>
- <file>images/drop-indicator@2x.png</file>
- <file>images/drop-indicator@3x.png</file>
- <file>images/drop-indicator@4x.png</file>
- <file>shaders/RectangularGlow.frag</file>
- <file>shaders/+glslcore/RectangularGlow.frag</file>
- <file>shaders/+hlsl/RectangularGlow.frag</file>
- <file>shaders/+qsb/RectangularGlow.frag</file>
- </qresource>
-</RCC>
diff --git a/src/quickcontrols2/material/shaders/+glslcore/RectangularGlow.frag b/src/quickcontrols2/material/shaders/+glslcore/RectangularGlow.frag
deleted file mode 100644
index 432d86b5..00000000
--- a/src/quickcontrols2/material/shaders/+glslcore/RectangularGlow.frag
+++ /dev/null
@@ -1,25 +0,0 @@
-#version 150
-
-uniform float qt_Opacity;
-uniform float relativeSizeX;
-uniform float relativeSizeY;
-uniform float spread;
-uniform vec4 color;
-
-in vec2 qt_TexCoord0;
-out vec4 fragColor;
-
-float linearstep(float e0, float e1, float x)
-{
- return clamp((x - e0) / (e1 - e0), 0.0, 1.0);
-}
-
-void main()
-{
- float alpha =
- smoothstep(0.0, relativeSizeX, 0.5 - abs(0.5 - qt_TexCoord0.x)) *
- smoothstep(0.0, relativeSizeY, 0.5 - abs(0.5 - qt_TexCoord0.y));
-
- float spreadMultiplier = linearstep(spread, 1.0 - spread, alpha);
- fragColor = color * qt_Opacity * spreadMultiplier * spreadMultiplier;
-}
diff --git a/src/quickcontrols2/material/shaders/+hlsl/RectangularGlow.frag b/src/quickcontrols2/material/shaders/+hlsl/RectangularGlow.frag
deleted file mode 100644
index 69d9f852..00000000
--- a/src/quickcontrols2/material/shaders/+hlsl/RectangularGlow.frag
+++ /dev/null
@@ -1,21 +0,0 @@
-cbuffer ConstantBuffer : register(b0)
-{
- float4x4 qt_Matrix;
- float qt_Opacity;
- float relativeSizeX;
- float relativeSizeY;
- float spread;
- float4 color;
-}
-
-float linearstep(float e0, float e1, float x) { return clamp((x - e0) / (e1 - e0), 0.0, 1.0); }
-
-float4 main(float4 position : SV_POSITION, float2 coord : TEXCOORD0) : SV_TARGET
-{
- float alpha =
- smoothstep(0.0, relativeSizeX, 0.5 - abs(0.5 - coord.x)) *
- smoothstep(0.0, relativeSizeY, 0.5 - abs(0.5 - coord.y));
-
- float spreadMultiplier = linearstep(spread, 1.0 - spread, alpha);
- return color * qt_Opacity * spreadMultiplier * spreadMultiplier;
-}
diff --git a/src/quickcontrols2/material/shaders/+qsb/RectangularGlow.frag b/src/quickcontrols2/material/shaders/+qsb/RectangularGlow.frag
deleted file mode 100644
index 5cfa2db6..00000000
--- a/src/quickcontrols2/material/shaders/+qsb/RectangularGlow.frag
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/material/shaders/RectangularGlow.frag b/src/quickcontrols2/material/shaders/RectangularGlow.frag
deleted file mode 100644
index 40bab580..00000000
--- a/src/quickcontrols2/material/shaders/RectangularGlow.frag
+++ /dev/null
@@ -1,19 +0,0 @@
-uniform highp float qt_Opacity;
-uniform mediump float relativeSizeX;
-uniform mediump float relativeSizeY;
-uniform mediump float spread;
-uniform lowp vec4 color;
-varying highp vec2 qt_TexCoord0;
-
-highp float linearstep(highp float e0, highp float e1, highp float x) {
- return clamp((x - e0) / (e1 - e0), 0.0, 1.0);
-}
-
-void main() {
- lowp float alpha =
- smoothstep(0.0, relativeSizeX, 0.5 - abs(0.5 - qt_TexCoord0.x)) *
- smoothstep(0.0, relativeSizeY, 0.5 - abs(0.5 - qt_TexCoord0.y));
-
- highp float spreadMultiplier = linearstep(spread, 1.0 - spread, alpha);
- gl_FragColor = color * qt_Opacity * spreadMultiplier * spreadMultiplier;
-}
diff --git a/src/quickcontrols2/material/shaders/RectangularGlow_rhi.frag b/src/quickcontrols2/material/shaders/RectangularGlow_rhi.frag
deleted file mode 100644
index 3e7d2dfe..00000000
--- a/src/quickcontrols2/material/shaders/RectangularGlow_rhi.frag
+++ /dev/null
@@ -1,28 +0,0 @@
-#version 440
-
-layout(location = 0) in vec2 qt_TexCoord0;
-layout(location = 0) out vec4 fragColor;
-
-layout(std140, binding = 0) uniform buf {
- mat4 qt_Matrix;
- float qt_Opacity;
- float relativeSizeX;
- float relativeSizeY;
- float spread;
- vec4 color;
-} ubuf;
-
-float linearstep(float e0, float e1, float x)
-{
- return clamp((x - e0) / (e1 - e0), 0.0, 1.0);
-}
-
-void main()
-{
- float alpha =
- smoothstep(0.0, ubuf.relativeSizeX, 0.5 - abs(0.5 - qt_TexCoord0.x)) *
- smoothstep(0.0, ubuf.relativeSizeY, 0.5 - abs(0.5 - qt_TexCoord0.y));
-
- float spreadMultiplier = linearstep(ubuf.spread, 1.0 - ubuf.spread, alpha);
- fragColor = ubuf.color * ubuf.qt_Opacity * spreadMultiplier * spreadMultiplier;
-}
diff --git a/src/quickcontrols2/material/shaders/compile.bat b/src/quickcontrols2/material/shaders/compile.bat
deleted file mode 100644
index e87efa7a..00000000
--- a/src/quickcontrols2/material/shaders/compile.bat
+++ /dev/null
@@ -1,40 +0,0 @@
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-::
-:: Copyright (C) 2019 The Qt Company Ltd.
-:: Contact: https://www.qt.io/licensing/
-::
-:: This file is part of the QtQuick module of the Qt Toolkit.
-::
-:: $QT_BEGIN_LICENSE:LGPL$
-:: Commercial License Usage
-:: Licensees holding valid commercial Qt licenses may use this file in
-:: accordance with the commercial license agreement provided with the
-:: Software or, alternatively, in accordance with the terms contained in
-:: a written agreement between you and The Qt Company. For licensing terms
-:: and conditions see https://www.qt.io/terms-conditions. For further
-:: information use the contact form at https://www.qt.io/contact-us.
-::
-:: GNU Lesser General Public License Usage
-:: Alternatively, this file may be used under the terms of the GNU Lesser
-:: General Public License version 3 as published by the Free Software
-:: Foundation and appearing in the file LICENSE.LGPL3 included in the
-:: packaging of this file. Please review the following information to
-:: ensure the GNU Lesser General Public License version 3 requirements
-:: will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-::
-:: GNU General Public License Usage
-:: Alternatively, this file may be used under the terms of the GNU
-:: General Public License version 2.0 or (at your option) the GNU General
-:: Public license version 3 or any later version approved by the KDE Free
-:: Qt Foundation. The licenses are as published by the Free Software
-:: Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-:: included in the packaging of this file. Please review the following
-:: information to ensure the GNU General Public License requirements will
-:: be met: https://www.gnu.org/licenses/gpl-2.0.html and
-:: https://www.gnu.org/licenses/gpl-3.0.html.
-::
-:: $QT_END_LICENSE$
-::
-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-
-qsb --glsl "150,120,100 es" --hlsl 50 --msl 12 -o +qsb/RectangularGlow.frag RectangularGlow_rhi.frag
diff --git a/src/quickcontrols2/qquickdummyregistration_p.h b/src/quickcontrols2/qquickdummyregistration_p.h
deleted file mode 100644
index 0d3b34a8..00000000
--- a/src/quickcontrols2/qquickdummyregistration_p.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDUMMYREGISTRATION_H
-#define QQUICKDUMMYREGISTRATION_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQml/qqml.h>
-// Ensure that the generated qmltyperegistrations .cpp file includes this header
-// by including it here. Otherwise, the qtquickcontrols2plugin will fail to load
-// due to the type registration function's symbol being undefined.
-#include <QtQuickControls2/qtquickcontrols2global.h>
-
-QT_BEGIN_NAMESPACE
-
-// QtQuick.Controls has no types, so if we didn't have this dummy type,
-// we'd have no way of specifying the version when the module was added,
-// and 6.0 would be the only version that gets registered: QTBUG-85151
-struct QQuickDummyType
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_ADDED_IN_VERSION(2, 0)
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKDUMMYREGISTRATION_H
diff --git a/src/quickcontrols2/qquickstyle.cpp b/src/quickcontrols2/qquickstyle.cpp
deleted file mode 100644
index 7c403529..00000000
--- a/src/quickcontrols2/qquickstyle.cpp
+++ /dev/null
@@ -1,505 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyle.h"
-#include "qquickstyle_p.h"
-
-#include <QtCore/qdir.h>
-#include <QtCore/qfile.h>
-#include <QtCore/qdebug.h>
-#include <QtCore/qsettings.h>
-#include <QtCore/qfileselector.h>
-#include <QtCore/qlibraryinfo.h>
-#include <QtCore/qloggingcategory.h>
-#include <QtCore/qmetaobject.h>
-#include <QtGui/qcolor.h>
-#include <QtGui/qfont.h>
-#include <QtGui/qpalette.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtQml/private/qqmlmetatype_p.h>
-#include <QtQml/qqmlengine.h>
-#include <QtQml/qqmlfile.h>
-
-#include <functional>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcQtQuickControlsStyle, "qt.quick.controls.style")
-
-/*!
- \class QQuickStyle
- \brief The QQuickStyle class allows configuring the application style.
- \inmodule QtQuickControls2
- \since 5.7
-
- QQuickStyle provides API for querying and configuring the application
- \l {Styling Qt Quick Controls}{styles} of Qt Quick Controls.
-
- \code
- #include <QGuiApplication>
- #include <QQmlApplicationEngine>
- #include <QQuickStyle>
-
- int main(int argc, char *argv[])
- {
- QGuiApplication app(argc, argv);
-
- QQuickStyle::setStyle("Material");
-
- QQmlApplicationEngine engine;
- engine.load(QUrl("qrc:/main.qml"));
-
- return app.exec();
- }
- \endcode
-
- \note The style must be configured \b before loading QML that imports
- Qt Quick Controls. It is not possible to change the style after the QML
- types have been registered.
-
- \note QQuickStyle is not supported when using
- \l {Compile-Time Style Selection}{compile-time style selection}.
-
- To create your own custom style, see \l {Creating a Custom Style}. Custom
- styles do not need to implement all controls. By default, the styling
- system uses the \l {Basic style} as a fallback for controls that a custom
- style does not provide. It is possible to specify a different fallback
- style to customize or extend one of the built-in styles.
-
- \code
- QQuickStyle::setStyle("MyStyle");
- QQuickStyle::setFallbackStyle("Material");
- \endcode
-
- \sa {Styling Qt Quick Controls}
-*/
-
-struct QQuickStyleSpec
-{
- QQuickStyleSpec() { }
-
- QString name()
- {
- if (!resolved)
- resolve();
- return style.mid(style.lastIndexOf(QLatin1Char('/')) + 1);
- }
-
- QString path()
- {
- if (!resolved)
- resolve();
- QString s = style;
- if (QQmlFile::isLocalFile(s))
- s = QQmlFile::urlToLocalFileOrQrc(s);
- return s.left(s.lastIndexOf(QLatin1Char('/')) + 1);
- }
-
- void setStyle(const QString &s)
- {
- qCDebug(lcQtQuickControlsStyle) << "style" << s << "set on QQuickStyleSpec";
- if (s.contains(QLatin1Char('/'))) {
- qWarning() << "Style names must not contain paths; see the \"Definition of a Style\" documentation for more information";
- return;
- }
-
- qCDebug(lcQtQuickControlsStyle) << "clearing resolved flag and resolving";
- style = s;
- resolved = false;
- resolve();
- }
-
- void setFallbackStyle(const QString &fallback, const QByteArray &method)
- {
- if (!fallback.isEmpty())
- qCDebug(lcQtQuickControlsStyle) << "fallback style" << fallback << "set on QQuickStyleSpec via" << method;
-
- fallbackStyle = fallback;
- fallbackMethod = method;
- }
-
- void resolve()
- {
- qCDebug(lcQtQuickControlsStyle) << "resolving style";
-
- if (style.isEmpty())
- style = QGuiApplicationPrivate::styleOverride;
- if (style.isEmpty())
- style = QString::fromLocal8Bit(qgetenv("QT_QUICK_CONTROLS_STYLE"));
- if (fallbackStyle.isEmpty())
- setFallbackStyle(QString::fromLocal8Bit(qgetenv("QT_QUICK_CONTROLS_FALLBACK_STYLE")), "QT_QUICK_CONTROLS_FALLBACK_STYLE");
-#if QT_CONFIG(settings)
- if (style.isEmpty() || fallbackStyle.isEmpty()) {
- QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(QStringLiteral("Controls"));
- if (settings) {
- if (style.isEmpty())
- style = settings->value(QStringLiteral("Style")).toString();
- if (fallbackStyle.isEmpty())
- setFallbackStyle(settings->value(QStringLiteral("FallbackStyle")).toString(), ":/qtquickcontrols2.conf");
- }
- }
-#endif
-
- auto builtInStyleList = QQuickStylePrivate::builtInStyles();
- if (!fallbackStyle.isEmpty() && !builtInStyleList.contains(fallbackStyle)) {
- qWarning().nospace().noquote() << fallbackMethod << ": the specified fallback style \"" <<
- fallbackStyle << "\" is not one of the built-in Qt Quick Controls 2 styles";
- fallbackStyle.clear();
- }
-
- // Find the config file.
- resolveConfigFilePath();
-
- usingDefaultStyle = false;
-
- if (style.isEmpty() || style.toLower() == QStringLiteral("default")) {
- usingDefaultStyle = true;
- style.clear();
-
- qCDebug(lcQtQuickControlsStyle) << "no style (or Default) was specified;"
- << "checking if we have an appropriate style for this platform";
-#if defined(Q_OS_MACOS)
- style = QLatin1String("macOS");
-#elif defined(Q_OS_WINDOWS)
- style = QLatin1String("Windows");
-#elif defined(Q_OS_ANDROID)
- style = QLatin1String("Material");
-#elif defined(Q_OS_LINUX)
- style = QLatin1String("Fusion");
-#endif
- if (!style.isEmpty())
- qCDebug(lcQtQuickControlsStyle) << "using" << style << "as a default";
- else
- qCDebug(lcQtQuickControlsStyle) << "no appropriate style found; using Basic as a default";
- }
-
- // If it's still empty by this point, then it means we have no native style available for this platform,
- // as is the case on e.g. embedded. In that case, we want to default to the Basic style,
- // which is what effectiveStyleName() returns when "style" is empty.
- custom = !builtInStyleList.contains(QQuickStylePrivate::effectiveStyleName(style));
-
- resolved = true;
-
- qCDebug(lcQtQuickControlsStyle).nospace() << "done resolving:"
- << "\n style=" << style
- << "\n custom=" << custom
- << "\n resolved=" << resolved
- << "\n fallbackStyle=" << fallbackStyle
- << "\n fallbackMethod=" << fallbackMethod
- << "\n configFilePath=" << configFilePath;
- }
-
- void reset()
- {
- qCDebug(lcQtQuickControlsStyle) << "resetting values to their defaults";
-
- custom = false;
- resolved = false;
- usingDefaultStyle = false;
- style.clear();
- fallbackStyle.clear();
- fallbackMethod.clear();
- configFilePath.clear();
- }
-
- QString resolveConfigFilePath()
- {
- if (configFilePath.isEmpty()) {
- configFilePath = QFile::decodeName(qgetenv("QT_QUICK_CONTROLS_CONF"));
- if (configFilePath.isEmpty() || !QFile::exists(configFilePath)) {
- if (!configFilePath.isEmpty())
- qWarning("QT_QUICK_CONTROLS_CONF=%s: No such file", qPrintable(configFilePath));
-
- configFilePath = QStringLiteral(":/qtquickcontrols2.conf");
- }
- }
- return configFilePath;
- }
-
- // Is this a custom style defined by the user and not "built-in" style?
- bool custom = false;
- // Have we resolved the style yet?
- bool resolved = false;
- // Are we using the default style for this platform (because no style was specified)?
- bool usingDefaultStyle = false;
- // The name of the style.
- QString style;
- // The built-in style to use if the requested style cannot be found.
- QString fallbackStyle;
- // A description of the way in which fallbackStyle was set, used in e.g. warning messages shown to the user.
- QByteArray fallbackMethod;
- // The path to the qtquickcontrols2.conf file.
- QString configFilePath;
-};
-
-Q_GLOBAL_STATIC(QQuickStyleSpec, styleSpec)
-
-/*
- Note that most of these functions (with the exception of e.g. isResolved())
- should not be called before the style has been resolved, as it's only after
- that happens that they will have been set.
-*/
-QString QQuickStylePrivate::style()
-{
- return styleSpec()->style;
-}
-
-QString QQuickStylePrivate::effectiveStyleName(const QString &styleName)
-{
- return !styleName.isEmpty() ? styleName : QLatin1String("Basic");
-}
-
-QString QQuickStylePrivate::fallbackStyle()
-{
- return styleSpec()->fallbackStyle;
-}
-
-bool QQuickStylePrivate::isCustomStyle()
-{
- return styleSpec()->custom;
-}
-
-bool QQuickStylePrivate::isResolved()
-{
- return styleSpec()->resolved;
-}
-
-bool QQuickStylePrivate::isUsingDefaultStyle()
-{
- return styleSpec()->usingDefaultStyle;
-}
-
-void QQuickStylePrivate::init()
-{
- QQuickStyleSpec *spec = styleSpec();
- spec->resolve();
-}
-
-void QQuickStylePrivate::reset()
-{
- if (styleSpec())
- styleSpec()->reset();
-}
-
-QString QQuickStylePrivate::configFilePath()
-{
- return styleSpec()->resolveConfigFilePath();
-}
-
-QSharedPointer<QSettings> QQuickStylePrivate::settings(const QString &group)
-{
-#ifndef QT_NO_SETTINGS
- const QString filePath = QQuickStylePrivate::configFilePath();
- if (QFile::exists(filePath)) {
- QFileSelector selector;
- QSettings *settings = new QSettings(selector.select(filePath), QSettings::IniFormat);
- if (!group.isEmpty())
- settings->beginGroup(group);
- return QSharedPointer<QSettings>(settings);
- }
-#endif // QT_NO_SETTINGS
- return QSharedPointer<QSettings>();
-}
-
-#if QT_CONFIG(settings)
-static void readValue(const QSharedPointer<QSettings> &settings, const QString &name, std::function<void(const QVariant &)> setValue)
-{
- const QVariant var = settings->value(name);
- if (var.isValid())
- setValue(var);
-}
-
-template <typename Enum>
-static Enum toEnumValue(const QVariant &var)
-{
- // ### TODO: expose QFont enums to the meta object system using Q_ENUM
- //QMetaEnum enumeration = QMetaEnum::fromType<Enum>();
- //bool ok = false;
- //int value = enumeration.keyToValue(var.toByteArray(), &ok);
- //if (!ok)
- // value = var.toInt();
- //return static_cast<Enum>(value);
-
- return static_cast<Enum>(var.toInt());
-}
-
-const QFont *QQuickStylePrivate::readFont(const QSharedPointer<QSettings> &settings)
-{
- const QVariant var = settings->value(QStringLiteral("Font"));
- if (var.isValid())
- return new QFont(var.value<QFont>());
-
- QFont f;
- settings->beginGroup(QStringLiteral("Font"));
- readValue(settings, QStringLiteral("Family"), [&f](const QVariant &var) { f.setFamilies(QStringList{var.toString()}); });
- readValue(settings, QStringLiteral("PointSize"), [&f](const QVariant &var) { f.setPointSizeF(var.toReal()); });
- readValue(settings, QStringLiteral("PixelSize"), [&f](const QVariant &var) { f.setPixelSize(var.toInt()); });
- readValue(settings, QStringLiteral("StyleHint"), [&f](const QVariant &var) { f.setStyleHint(toEnumValue<QFont::StyleHint>(var.toInt())); });
- readValue(settings, QStringLiteral("Weight"), [&f](const QVariant &var) { f.setWeight(toEnumValue<QFont::Weight>(var)); });
- readValue(settings, QStringLiteral("Style"), [&f](const QVariant &var) { f.setStyle(toEnumValue<QFont::Style>(var.toInt())); });
- settings->endGroup();
- return new QFont(f);
-}
-
-static void readColorGroup(const QSharedPointer<QSettings> &settings, QPalette::ColorGroup group, QPalette *palette)
-{
- const QStringList keys = settings->childKeys();
- if (keys.isEmpty())
- return;
-
- static const int index = QPalette::staticMetaObject.indexOfEnumerator("ColorRole");
- Q_ASSERT(index != -1);
- QMetaEnum metaEnum = QPalette::staticMetaObject.enumerator(index);
-
- for (const QString &key : keys) {
- bool ok = false;
- int role = metaEnum.keyToValue(key.toUtf8(), &ok);
- if (ok)
- palette->setColor(group, static_cast<QPalette::ColorRole>(role), settings->value(key).value<QColor>());
- }
-}
-
-const QPalette *QQuickStylePrivate::readPalette(const QSharedPointer<QSettings> &settings)
-{
- QPalette p;
- settings->beginGroup(QStringLiteral("Palette"));
- readColorGroup(settings, QPalette::All, &p);
-
- settings->beginGroup(QStringLiteral("Normal"));
- readColorGroup(settings, QPalette::Normal, &p);
- settings->endGroup();
-
- settings->beginGroup(QStringLiteral("Disabled"));
- readColorGroup(settings, QPalette::Disabled, &p);
- settings->endGroup();
- return new QPalette(p);
-}
-#endif // QT_CONFIG(settings)
-
-static bool qt_is_dark_system_theme()
-{
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
- if (const QPalette *systemPalette = theme->palette(QPlatformTheme::SystemPalette)) {
- const QColor &textColor = systemPalette->color(QPalette::WindowText);
- return textColor.red() > 128 && textColor.blue() > 128 && textColor.green() > 128;
- }
- }
- return false;
-}
-
-bool QQuickStylePrivate::isDarkSystemTheme()
-{
- static bool dark = qt_is_dark_system_theme();
- return dark;
-}
-
-QStringList QQuickStylePrivate::builtInStyles()
-{
- return {
- QLatin1String("Basic"),
- QLatin1String("Fusion"),
- QLatin1String("Imagine"),
-#ifdef Q_OS_MACOS
- QLatin1String("macOS"),
-#endif
- QLatin1String("Material"),
- QLatin1String("Universal"),
-#ifdef Q_OS_WINDOWS
- QLatin1String("Windows")
-#endif
- };
-}
-
-/*!
- Returns the name of the application style.
-
- \note The application style can be specified by passing a \c -style command
- line argument. Therefore \c name() may not return a fully resolved
- value if called before constructing a QGuiApplication.
-*/
-QString QQuickStyle::name()
-{
- return styleSpec()->name();
-}
-
-/*!
- Sets the application style to \a style.
-
- \note The style must be configured \b before loading QML that imports Qt Quick Controls.
- It is not possible to change the style after the QML types have been registered.
-
- \sa setFallbackStyle(), {Using Styles in Qt Quick Controls}
-*/
-void QQuickStyle::setStyle(const QString &style)
-{
- qCDebug(lcQtQuickControlsStyle) << "setStyle called with" << style;
-
- if (QQmlMetaType::matchingModuleVersion(
- QStringLiteral("QtQuick.Controls"), QTypeRevision::fromVersion(2, 0)).isValid()) {
- qWarning() << "ERROR: QQuickStyle::setStyle() must be called before loading QML that imports Qt Quick Controls 2.";
- return;
- }
-
- styleSpec()->setStyle(style);
-}
-
-/*!
- \since 5.8
- Sets the application fallback style to \a style.
-
- \note The fallback style must be the name of one of the built-in Qt Quick Controls styles, e.g. "Material".
-
- \note The style must be configured \b before loading QML that imports Qt Quick Controls.
- It is not possible to change the style after the QML types have been registered.
-
- The fallback style can be also specified by setting the \c QT_QUICK_CONTROLS_FALLBACK_STYLE
- \l {Supported Environment Variables in Qt Quick Controls}{environment variable}.
-
- \sa setStyle(), {Using Styles in Qt Quick Controls}
-*/
-void QQuickStyle::setFallbackStyle(const QString &style)
-{
- if (QQmlMetaType::matchingModuleVersion(
- QStringLiteral("QtQuick.Controls"), QTypeRevision::fromVersion(2, 0)).isValid()) {
- qWarning() << "ERROR: QQuickStyle::setFallbackStyle() must be called before loading QML that imports Qt Quick Controls 2.";
- return;
- }
-
- styleSpec()->setFallbackStyle(style, "QQuickStyle::setFallbackStyle()");
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/qquickstyle.h b/src/quickcontrols2/qquickstyle.h
deleted file mode 100644
index e26ec90b..00000000
--- a/src/quickcontrols2/qquickstyle.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLE_H
-#define QQUICKSTYLE_H
-
-#include <QtCore/qurl.h>
-#include <QtCore/qstring.h>
-#include <QtQuickControls2/qtquickcontrols2global.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKCONTROLS2_EXPORT QQuickStyle
-{
-public:
- static QString name();
- static void setStyle(const QString &style);
- static void setFallbackStyle(const QString &style);
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSTYLE_H
diff --git a/src/quickcontrols2/qquickstyle_p.h b/src/quickcontrols2/qquickstyle_p.h
deleted file mode 100644
index 31c70893..00000000
--- a/src/quickcontrols2/qquickstyle_p.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLE_P_H
-#define QQUICKSTYLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qsharedpointer.h>
-#include <QtQuickControls2/qtquickcontrols2global.h>
-
-QT_BEGIN_NAMESPACE
-
-class QSettings;
-
-class Q_QUICKCONTROLS2_EXPORT QQuickStylePrivate
-{
-public:
- static QString style();
- static QString effectiveStyleName(const QString &styleName);
- static QString fallbackStyle();
- static bool isCustomStyle();
- static bool isResolved();
- static bool isUsingDefaultStyle();
- static bool exists();
- static void init();
- static void reset();
- static QString configFilePath();
- static QSharedPointer<QSettings> settings(const QString &group = QString());
- static const QFont *readFont(const QSharedPointer<QSettings> &settings);
- static const QPalette *readPalette(const QSharedPointer<QSettings> &settings);
- static bool isDarkSystemTheme();
- static QStringList builtInStyles();
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSTYLE_P_H
diff --git a/src/quickcontrols2/qquickstyleplugin.cpp b/src/quickcontrols2/qquickstyleplugin.cpp
deleted file mode 100644
index 27299b21..00000000
--- a/src/quickcontrols2/qquickstyleplugin.cpp
+++ /dev/null
@@ -1,151 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyle.h"
-#include "qquickstyle_p.h"
-#include "qquickstyleplugin_p.h"
-
-#include <QtCore/private/qfileselector_p.h>
-#include <QtCore/qloggingcategory.h>
-#include <QtQml/qqmlengine.h>
-#include <QtQml/qqmlfile.h>
-#include <QtQml/private/qqmlmetatype_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcStylePlugin, "qt.quick.controls.styleplugin")
-
-QQuickStylePlugin::QQuickStylePlugin(QObject *parent)
- : QQmlExtensionPlugin(parent)
-{
-}
-
-QQuickStylePlugin::~QQuickStylePlugin()
-{
-}
-
-void QQuickStylePlugin::registerTypes(const char *uri)
-{
- qCDebug(lcStylePlugin).nospace() << "registerTypes called with uri " << uri << "; plugin name is " << name();
-
- const QTypeRevision latestControlsRevision = QQmlMetaType::latestModuleVersion(QLatin1String("QtQuick.Controls"));
- // Use the private function because we don't want to cause resolve() to be called,
- // as the logic that assigns a default style if one wasn't set would interfere with compile-time style selection.
- QString styleName = QQuickStylePrivate::style();
- if (!latestControlsRevision.isValid() && styleName.isEmpty()) {
- // The user hasn't imported QtQuick.Controls, nor set a style via the runtime methods.
- qCDebug(lcStylePlugin).nospace() << uri << " imported before QtQuick.Controls; using compile-time style selection";
- QQuickStyle::setStyle(name());
- styleName = name();
- }
-
- // Even if this style plugin isn't for the style set by the user,
- // we still want to create the theme object, because that function
- // is also responsible for reading values from qtquickcontrols2.conf.
- // So, even if a style doesn't have a QQuickTheme, it can still have
- // values set for (e.g. fonts and palettes) in qtquickcontrols2.conf.
- const QString effectiveCurrentStyleName = QQuickStylePrivate::effectiveStyleName(styleName);
- auto theme = QQuickTheme::instance();
- if (!theme) {
- qCDebug(lcStylePlugin) << "creating theme";
- theme = createTheme(effectiveCurrentStyleName);
- }
-
- if (name() != effectiveCurrentStyleName) {
- qCDebug(lcStylePlugin).nospace() << "theme does not belong to current style ("
- << effectiveCurrentStyleName << "); not calling initializeTheme()";
- return;
- }
-
- qCDebug(lcStylePlugin) << "theme has not yet been initialized; calling initializeTheme()";
- initializeTheme(theme);
-
- if (!styleName.isEmpty())
- QFileSelectorPrivate::addStatics(QStringList() << styleName);
-}
-
-void QQuickStylePlugin::unregisterTypes()
-{
- qCDebug(lcStylePlugin) << "unregisterTypes called; plugin name is" << name();
- if (!QQuickThemePrivate::instance)
- return;
-
- // Not every style has a plugin - some styles are QML-only. So, we clean this
- // stuff up when the first style plugin is unregistered rather than when the
- // plugin for the current style is unregistered.
- QQuickThemePrivate::instance.reset();
- QQuickStylePrivate::reset();
-}
-
-/*!
- \internal
-
- Responsible for setting the font and palette settings that were specified in the
- qtquickcontrols2.conf file.
-
- Style-specific settings (e.g. Variant=Dense) are read in the constructor of the
- appropriate style plugin (e.g. QtQuickControls2MaterialStylePlugin).
-
- Implicit style-specific font and palette values are assigned in the relevant theme
- (e.g. QQuickMaterialTheme).
-*/
-QQuickTheme *QQuickStylePlugin::createTheme(const QString &name)
-{
- qCDebug(lcStylePlugin) << "creating QQuickTheme instance to be initialized by style-specific theme of" << name;
-
- QQuickTheme *theme = new QQuickTheme;
-#if QT_CONFIG(settings)
- QQuickThemePrivate *p = QQuickThemePrivate::get(theme);
- QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(name);
- if (settings) {
- p->defaultFont.reset(QQuickStylePrivate::readFont(settings));
- // Set the default font as the System scope, because that's what
- // QQuickControlPrivate::parentFont() uses as its fallback if no
- // parent item has a font explicitly set. QQuickControlPrivate::parentFont()
- // is used as the starting point for font inheritance/resolution.
- // The same goes for palettes below.
- theme->setFont(QQuickTheme::System, *p->defaultFont);
-
- p->defaultPalette.reset(QQuickStylePrivate::readPalette(settings));
- theme->setPalette(QQuickTheme::System, *p->defaultPalette);
- }
-#endif
- QQuickThemePrivate::instance.reset(theme);
- return theme;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/qquickstyleplugin_p.h b/src/quickcontrols2/qquickstyleplugin_p.h
deleted file mode 100644
index 0cc793a2..00000000
--- a/src/quickcontrols2/qquickstyleplugin_p.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEPLUGIN_P_H
-#define QQUICKSTYLEPLUGIN_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQml/qqmlextensionplugin.h>
-#include <QtQuickControls2/qtquickcontrols2global.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTheme;
-
-class Q_QUICKCONTROLS2_EXPORT QQuickStylePlugin : public QQmlExtensionPlugin
-{
- Q_OBJECT
-
-public:
- explicit QQuickStylePlugin(QObject *parent = nullptr);
- ~QQuickStylePlugin();
-
- virtual QString name() const = 0;
- virtual void initializeTheme(QQuickTheme *theme) = 0;
-
- void registerTypes(const char *uri) override;
- void unregisterTypes() override;
-
-private:
- QQuickTheme *createTheme(const QString &name);
-
- Q_DISABLE_COPY(QQuickStylePlugin)
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSTYLEPLUGIN_P_H
diff --git a/src/quickcontrols2/qt_cmdline.cmake b/src/quickcontrols2/qt_cmdline.cmake
deleted file mode 100644
index b1e98c9a..00000000
--- a/src/quickcontrols2/qt_cmdline.cmake
+++ /dev/null
@@ -1,6 +0,0 @@
-qt_commandline_option(style-fusion TYPE boolean NAME quickcontrols2-fusion)
-qt_commandline_option(style-imagine TYPE boolean NAME quickcontrols2-imagine)
-qt_commandline_option(style-material TYPE boolean NAME quickcontrols2-material)
-qt_commandline_option(style-universal TYPE boolean NAME quickcontrols2-universal)
-qt_commandline_option(style-macos TYPE boolean NAME quickcontrols2-macos)
-qt_commandline_option(style-windows TYPE boolean NAME quickcontrols2-windows)
diff --git a/src/quickcontrols2/qtquickcontrols2global.h b/src/quickcontrols2/qtquickcontrols2global.h
deleted file mode 100644
index e5f050ce..00000000
--- a/src/quickcontrols2/qtquickcontrols2global.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QTQUICKCONTROLS2GLOBAL_H
-#define QTQUICKCONTROLS2GLOBAL_H
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-#ifndef QT_STATIC
-# if defined(QT_BUILD_QUICKCONTROLS2_LIB)
-# define Q_QUICKCONTROLS2_EXPORT Q_DECL_EXPORT
-# else
-# define Q_QUICKCONTROLS2_EXPORT Q_DECL_IMPORT
-# endif
-#else
-# define Q_QUICKCONTROLS2_EXPORT
-#endif
-
-QT_END_NAMESPACE
-
-Q_QUICKCONTROLS2_EXPORT void qml_register_types_QtQuick_Controls();
-
-#endif // QTQUICKCONTROLS2GLOBAL_H
diff --git a/src/quickcontrols2/qtquickcontrols2plugin.cpp b/src/quickcontrols2/qtquickcontrols2plugin.cpp
deleted file mode 100644
index fcd025e0..00000000
--- a/src/quickcontrols2/qtquickcontrols2plugin.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtCore/qloggingcategory.h>
-#include <QtQml/qqmlengine.h>
-#include <QtQml/qqmlextensionplugin.h>
-#include <QtQuickTemplates2/private/qquicktheme_p_p.h>
-#include <QtQuickControls2/private/qquickstyle_p.h>
-#include <QtQuickControls2/private/qquickstyleplugin_p.h>
-#include <QtQuickControls2/qquickstyle.h>
-#include <QtQuickControls2/qtquickcontrols2global.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcQtQuickControls2Plugin, "qt.quick.controls.qtquickcontrols2plugin")
-
-class QtQuickControls2Plugin : public QQmlExtensionPlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
-
-public:
- QtQuickControls2Plugin(QObject *parent = nullptr);
- ~QtQuickControls2Plugin();
-
- void registerTypes(const char *uri) override;
- void unregisterTypes() override;
-
-private:
- // We store these because the style plugins can be unregistered before
- // QtQuickControls2Plugin, and since QQuickStylePlugin calls QQuickStylePrivate::reset(),
- // the style information can be lost when it comes time to call qmlUnregisterModuleImport().
- // It also avoids unnecessarily resolving the style after resetting it just to get the style
- // name in unregisterTypes().
- bool customStyle = false;
- QString registeredStyleUri;
- QString registeredFallbackStyleUri;
-};
-
-static const char *qtQuickControlsUri = "QtQuick.Controls";
-
-QString styleUri()
-{
- const QString style = QQuickStyle::name();
- if (!QQuickStylePrivate::isCustomStyle()) {
- // The style set is a built-in style.
- const QString styleName = QQuickStylePrivate::effectiveStyleName(style);
- return QString::fromLatin1("QtQuick.Controls.%1").arg(styleName);
- }
-
- // This is a custom style, so just use the name as the import uri.
- QString styleName = style;
- if (styleName.startsWith(QLatin1String(":/")))
- styleName.remove(0, 2);
- return styleName;
-}
-
-QString fallbackStyleUri()
-{
- // The fallback style must be a built-in style, so we don't need to check for custom styles here.
- const QString fallbackStyle = QQuickStylePrivate::fallbackStyle();
- const QString fallbackStyleName = QQuickStylePrivate::effectiveStyleName(fallbackStyle);
- return QString::fromLatin1("QtQuick.Controls.%1").arg(fallbackStyleName);
-}
-
-QtQuickControls2Plugin::QtQuickControls2Plugin(QObject *parent) : QQmlExtensionPlugin(parent)
-{
- volatile auto registration = &qml_register_types_QtQuick_Controls;
- Q_UNUSED(registration);
-}
-
-QtQuickControls2Plugin::~QtQuickControls2Plugin()
-{
- // Intentionally empty: we use register/unregisterTypes() to do
- // initialization and cleanup, as plugins are not unloaded on macOS.
-}
-
-void QtQuickControls2Plugin::registerTypes(const char *uri)
-{
- qCDebug(lcQtQuickControls2Plugin) << "registerTypes() called with uri" << uri;
-
- // It's OK that the style is resolved more than once; some accessors like name() cause it to be called, for example.
- QQuickStylePrivate::init();
-
- const QString styleName = QQuickStylePrivate::effectiveStyleName(QQuickStyle::name());
- const QString fallbackStyleName = QQuickStylePrivate::effectiveStyleName(QQuickStylePrivate::fallbackStyle());
- qCDebug(lcQtQuickControls2Plugin) << "style:" << QQuickStyle::name() << "effective style:" << styleName
- << "fallback style:" << QQuickStylePrivate::fallbackStyle() << "effective fallback style:" << fallbackStyleName;
-
- // If the style is Basic, we don't need to register the fallback because the Basic style
- // provides all controls. Also, if we didn't return early here, we can get an infinite import loop
- // when the style is set to Basic.
- if (styleName != fallbackStyleName && styleName != QLatin1String("Basic")) {
- registeredFallbackStyleUri = ::fallbackStyleUri();
- qCDebug(lcQtQuickControls2Plugin) << "calling qmlRegisterModuleImport() to register fallback style with"
- << " uri \"" << qtQuickControlsUri << "\" moduleMajor" << QQmlModuleImportModuleAny
- << "import" << registeredFallbackStyleUri << "importMajor" << QQmlModuleImportAuto;
- // The fallback style must be a built-in style, so we match the version number.
- qmlRegisterModuleImport(qtQuickControlsUri, QQmlModuleImportModuleAny, registeredFallbackStyleUri.toUtf8().constData(),
- QQmlModuleImportAuto, QQmlModuleImportAuto);
- }
-
- // If the user imports QtQuick.Controls 2.15, and they're using the Material style, we should import version 2.15.
- // However, if they import QtQuick.Controls 2.15, but are using a custom style, we want to use the latest version
- // number of their style.
- customStyle = QQuickStylePrivate::isCustomStyle();
- registeredStyleUri = ::styleUri();
- const int importMajor = !customStyle ? QQmlModuleImportAuto : QQmlModuleImportLatest;
- qCDebug(lcQtQuickControls2Plugin).nospace() << "calling qmlRegisterModuleImport() to register primary style with"
- << " uri \"" << qtQuickControlsUri << "\" moduleMajor " << importMajor
- << " import " << registeredStyleUri << " importMajor " << importMajor;
- qmlRegisterModuleImport(qtQuickControlsUri, QQmlModuleImportModuleAny, registeredStyleUri.toUtf8().constData(), importMajor);
-}
-
-void QtQuickControls2Plugin::unregisterTypes()
-{
- qCDebug(lcQtQuickControls2Plugin) << "unregisterTypes() called";
-
- if (!registeredFallbackStyleUri.isEmpty()) {
- // We registered a fallback style, so now we need to unregister it.
- qmlUnregisterModuleImport(qtQuickControlsUri, QQmlModuleImportModuleAny, registeredFallbackStyleUri.toUtf8().constData(),
- QQmlModuleImportAuto, QQmlModuleImportAuto);
- registeredFallbackStyleUri.clear();
- }
-
- const int importMajor = !customStyle ? QQmlModuleImportAuto : QQmlModuleImportLatest;
- qmlUnregisterModuleImport(qtQuickControlsUri, QQmlModuleImportModuleAny, registeredStyleUri.toUtf8().constData(), importMajor);
- customStyle = false;
- registeredStyleUri.clear();
-}
-
-QT_END_NAMESPACE
-
-#include "qtquickcontrols2plugin.moc"
diff --git a/src/quickcontrols2/universal/ApplicationWindow.qml b/src/quickcontrols2/universal/ApplicationWindow.qml
deleted file mode 100644
index 2ec9c565..00000000
--- a/src/quickcontrols2/universal/ApplicationWindow.qml
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-import QtQuick.Controls.Universal.impl
-
-T.ApplicationWindow {
- id: window
-
- color: Universal.background
-
- FocusRectangle {
- parent: window.activeFocusControl
- width: parent ? parent.width : 0
- height: parent ? parent.height : 0
- visible: parent && !!parent.useSystemFocusVisuals && !!parent.visualFocus
- }
-}
diff --git a/src/quickcontrols2/universal/BusyIndicator.qml b/src/quickcontrols2/universal/BusyIndicator.qml
deleted file mode 100644
index 0bd3ca03..00000000
--- a/src/quickcontrols2/universal/BusyIndicator.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-import QtQuick.Controls.Universal.impl
-
-T.BusyIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- contentItem: BusyIndicatorImpl {
- implicitWidth: 20
- implicitHeight: 20
-
- readonly property real size: Math.min(control.availableWidth, control.availableHeight)
-
- count: size < 60 ? 5 : 6 // "Small" vs. "Large"
- color: control.Universal.accent
- visible: control.running
- }
-}
diff --git a/src/quickcontrols2/universal/Button.qml b/src/quickcontrols2/universal/Button.qml
deleted file mode 100644
index 18a82e17..00000000
--- a/src/quickcontrols2/universal/Button.qml
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.Button {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 8
- verticalPadding: padding - 4
- spacing: 8
-
- icon.width: 20
- icon.height: 20
- icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
-
- property bool useSystemFocusVisuals: true
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
- }
-
- background: Rectangle {
- implicitWidth: 32
- implicitHeight: 32
-
- visible: !control.flat || control.down || control.checked || control.highlighted
- color: control.down ? control.Universal.baseMediumLowColor :
- control.enabled && (control.highlighted || control.checked) ? control.Universal.accent :
- control.Universal.baseLowColor
-
- Rectangle {
- width: parent.width
- height: parent.height
- color: "transparent"
- visible: control.hovered
- border.width: 2 // ButtonBorderThemeThickness
- border.color: control.Universal.baseMediumLowColor
- }
- }
-}
diff --git a/src/quickcontrols2/universal/CMakeLists.txt b/src/quickcontrols2/universal/CMakeLists.txt
deleted file mode 100644
index 6ddacfa4..00000000
--- a/src/quickcontrols2/universal/CMakeLists.txt
+++ /dev/null
@@ -1,258 +0,0 @@
-#####################################################################
-## qtquickcontrols2universalstyleplugin Plugin:
-#####################################################################
-
-set(qml_files
- "ApplicationWindow.qml"
- "BusyIndicator.qml"
- "Button.qml"
- "CheckBox.qml"
- "CheckDelegate.qml"
- "ComboBox.qml"
- "DelayButton.qml"
- "Dial.qml"
- "Dialog.qml"
- "DialogButtonBox.qml"
- "Drawer.qml"
- "Frame.qml"
- "GroupBox.qml"
- "HorizontalHeaderView.qml"
- "ItemDelegate.qml"
- "Label.qml"
- "Menu.qml"
- "MenuBar.qml"
- "MenuBarItem.qml"
- "MenuItem.qml"
- "MenuSeparator.qml"
- "Page.qml"
- "PageIndicator.qml"
- "Pane.qml"
- "Popup.qml"
- "ProgressBar.qml"
- "RadioButton.qml"
- "RadioDelegate.qml"
- "RangeSlider.qml"
- "RoundButton.qml"
- "ScrollView.qml"
- "ScrollBar.qml"
- "ScrollIndicator.qml"
- "Slider.qml"
- "SpinBox.qml"
- "SplitView.qml"
- "StackView.qml"
- "SwipeDelegate.qml"
- "SwitchDelegate.qml"
- "Switch.qml"
- "TabBar.qml"
- "TabButton.qml"
- "TextArea.qml"
- "TextField.qml"
- "ToolBar.qml"
- "ToolButton.qml"
- "ToolSeparator.qml"
- "ToolTip.qml"
- "Tumbler.qml"
- "VerticalHeaderView.qml"
-)
-set_source_files_properties(ApplicationWindow.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(BusyIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Button.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(CheckBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(CheckDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ComboBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(DelayButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.2;6.0"
-)
-set_source_files_properties(Dial.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Dialog.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(DialogButtonBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(Drawer.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Frame.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(GroupBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(HorizontalHeaderView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.15;6.0"
-)
-set_source_files_properties(ItemDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Label.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Menu.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(MenuBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.3;6.0"
-)
-set_source_files_properties(MenuBarItem.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.3;6.0"
-)
-set_source_files_properties(MenuItem.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(MenuSeparator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(Page.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(PageIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Pane.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Popup.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ProgressBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RadioButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RadioDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RangeSlider.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(RoundButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(ScrollView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ScrollBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ScrollIndicator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Slider.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SpinBox.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SplitView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.13;6.0"
-)
-set_source_files_properties(StackView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwipeDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(SwitchDelegate.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Switch.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TabBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TabButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TextArea.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(TextField.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolBar.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolButton.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(ToolSeparator.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.1;6.0"
-)
-set_source_files_properties(ToolTip.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(Tumbler.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-set_source_files_properties(VerticalHeaderView.qml PROPERTIES
- QT_QML_SOURCE_VERSION "2.15;6.0"
-)
-
-qt_internal_add_qml_module(qtquickcontrols2universalstyleplugin
- URI "QtQuick.Controls.Universal"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2UniversalStylePlugin
- IMPORTS
- QtQuick.Controls.Basic/auto
- PLUGIN_TARGET qtquickcontrols2universalstyleplugin
- NO_PLUGIN_OPTIONAL
- NO_GENERATE_PLUGIN_SOURCE
- SOURCES
- qquickuniversalstyle.cpp qquickuniversalstyle_p.h
- qquickuniversaltheme.cpp qquickuniversaltheme_p.h
- qtquickcontrols2universalstyleplugin.cpp
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickControls2ImplPrivate
- Qt::QuickControls2Private
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
-
-qt_internal_add_resource(qtquickcontrols2universalstyleplugin "qtquickcontrols2universalstyleplugin"
- PREFIX
- "/qt-project.org/imports/QtQuick/Controls/Universal"
- FILES
- "images/checkmark.png"
- "images/checkmark@2x.png"
- "images/checkmark@3x.png"
- "images/checkmark@4x.png"
- "images/downarrow.png"
- "images/downarrow@2x.png"
- "images/downarrow@3x.png"
- "images/downarrow@4x.png"
- "images/leftarrow.png"
- "images/leftarrow@2x.png"
- "images/leftarrow@3x.png"
- "images/leftarrow@4x.png"
- "images/rightarrow.png"
- "images/rightarrow@2x.png"
- "images/rightarrow@3x.png"
- "images/rightarrow@4x.png"
-)
-
-add_subdirectory(impl)
diff --git a/src/quickcontrols2/universal/CheckBox.qml b/src/quickcontrols2/universal/CheckBox.qml
deleted file mode 100644
index ff35d372..00000000
--- a/src/quickcontrols2/universal/CheckBox.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-import QtQuick.Controls.Universal.impl
-
-T.CheckBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 8
-
- property bool useSystemFocusVisuals: true
-
- indicator: CheckIndicator {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
-
- opacity: enabled ? 1.0 : 0.2
- color: control.Universal.foreground
- }
-}
diff --git a/src/quickcontrols2/universal/CheckDelegate.qml b/src/quickcontrols2/universal/CheckDelegate.qml
deleted file mode 100644
index 8e455a56..00000000
--- a/src/quickcontrols2/universal/CheckDelegate.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-import QtQuick.Controls.Universal.impl
-
-T.CheckDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12
-
- padding: 12
- topPadding: padding - 1
- bottomPadding: padding + 1
-
- icon.width: 20
- icon.height: 20
- icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
-
- indicator: CheckIndicator {
- x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: IconLabel {
- leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
- rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
- }
-
- background: Rectangle {
- visible: control.down || control.highlighted || control.visualFocus || control.hovered
- color: control.down ? control.Universal.listMediumColor :
- control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
- Rectangle {
- width: parent.width
- height: parent.height
- visible: control.visualFocus || control.highlighted
- color: control.Universal.accent
- opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
- }
-
- }
-}
diff --git a/src/quickcontrols2/universal/ComboBox.qml b/src/quickcontrols2/universal/ComboBox.qml
deleted file mode 100644
index b3179849..00000000
--- a/src/quickcontrols2/universal/ComboBox.qml
+++ /dev/null
@@ -1,158 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.ComboBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
- rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing)
-
- Universal.theme: editable && activeFocus ? Universal.Light : undefined
-
- delegate: ItemDelegate {
- width: ListView.view.width
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
- font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
- highlighted: control.highlightedIndex === index
- hoverEnabled: control.hoverEnabled
- }
-
- indicator: ColorImage {
- x: control.mirrored ? control.padding : control.width - width - control.padding
- y: control.topPadding + (control.availableHeight - height) / 2
- color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseMediumHighColor
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/downarrow.png"
-
- Rectangle {
- z: -1
- width: parent.width
- height: parent.height
- color: control.activeFocus ? control.Universal.accent :
- control.pressed ? control.Universal.baseMediumLowColor :
- control.hovered ? control.Universal.baseLowColor : "transparent"
- visible: control.editable && !contentItem.hovered && (control.pressed || control.hovered)
- opacity: control.activeFocus && !control.pressed ? 0.4 : 1.0
- }
- }
-
- contentItem: T.TextField {
- leftPadding: control.mirrored ? 1 : 12
- rightPadding: control.mirrored ? 10 : 1
- topPadding: 5 - control.topPadding
- bottomPadding: 7 - control.bottomPadding
-
- text: control.editable ? control.editText : control.displayText
-
- enabled: control.editable
- autoScroll: control.editable
- readOnly: control.down
- inputMethodHints: control.inputMethodHints
- validator: control.validator
- selectByMouse: control.selectTextByMouse
-
- font: control.font
- color: !control.enabled ? control.Universal.chromeDisabledLowColor :
- control.editable && control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.foreground
- selectionColor: control.Universal.accent
- selectedTextColor: control.Universal.chromeWhiteColor
- verticalAlignment: Text.AlignVCenter
- }
-
- background: Rectangle {
- implicitWidth: 120
- implicitHeight: 32
-
- border.width: control.flat ? 0 : 2 // ComboBoxBorderThemeThickness
- border.color: !control.enabled ? control.Universal.baseLowColor :
- control.editable && control.activeFocus ? control.Universal.accent :
- control.down ? control.Universal.baseMediumLowColor :
- control.hovered ? control.Universal.baseMediumColor : control.Universal.baseMediumLowColor
- color: !control.enabled ? control.Universal.baseLowColor :
- control.down ? control.Universal.listMediumColor :
- control.flat && control.hovered ? control.Universal.listLowColor :
- control.editable && control.activeFocus ? control.Universal.background : control.Universal.altMediumLowColor
- visible: !control.flat || control.pressed || control.hovered || control.visualFocus
-
- Rectangle {
- x: 2
- y: 2
- width: parent.width - 4
- height: parent.height - 4
-
- visible: control.visualFocus && !control.editable
- color: control.Universal.accent
- opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
- }
- }
-
- popup: T.Popup {
- width: control.width
- height: Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin)
- topMargin: 8
- bottomMargin: 8
-
- Universal.theme: control.Universal.theme
- Universal.accent: control.Universal.accent
-
- contentItem: ListView {
- clip: true
- implicitHeight: contentHeight
- model: control.delegateModel
- currentIndex: control.highlightedIndex
- highlightMoveDuration: 0
-
- T.ScrollIndicator.vertical: ScrollIndicator { }
- }
-
- background: Rectangle {
- color: control.Universal.chromeMediumLowColor
- border.color: control.Universal.chromeHighColor
- border.width: 1 // FlyoutBorderThemeThickness
- }
- }
-}
diff --git a/src/quickcontrols2/universal/DelayButton.qml b/src/quickcontrols2/universal/DelayButton.qml
deleted file mode 100644
index 5840fa86..00000000
--- a/src/quickcontrols2/universal/DelayButton.qml
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.DelayButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 8
- verticalPadding: padding - 4
-
- property bool useSystemFocusVisuals: true
-
- transition: Transition {
- NumberAnimation {
- duration: control.delay * (control.pressed ? 1.0 - control.progress : 0.3 * control.progress)
- }
- }
-
- contentItem: Text {
- text: control.text
- font: control.font
- elide: Text.ElideRight
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
-
- opacity: enabled ? 1.0 : 0.2
- color: control.Universal.foreground
- }
-
- background: Rectangle {
- implicitWidth: 32
- implicitHeight: 32
-
- color: control.down ? control.Universal.baseMediumLowColor :
- control.enabled && control.checked ? control.Universal.accent : control.Universal.baseLowColor
-
- Rectangle {
- visible: !control.checked
- width: parent.width * control.progress
- height: parent.height
- color: control.Universal.accent
- }
-
- Rectangle {
- width: parent.width
- height: parent.height
- color: "transparent"
- visible: control.hovered
- border.width: 2 // ButtonBorderThemeThickness
- border.color: control.Universal.baseMediumLowColor
- }
- }
-}
diff --git a/src/quickcontrols2/universal/Dial.qml b/src/quickcontrols2/universal/Dial.qml
deleted file mode 100644
index cd9e615e..00000000
--- a/src/quickcontrols2/universal/Dial.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.Dial {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 100
-
- x: control.width / 2 - width / 2
- y: control.height / 2 - height / 2
- width: Math.max(64, Math.min(control.width, control.height))
- height: width
- radius: width / 2
- color: "transparent"
- border.color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseMediumColor
- border.width: 2
- }
-
- handle: Rectangle {
- implicitWidth: 14
- implicitHeight: 14
-
- x: control.background.x + control.background.width / 2 - width / 2
- y: control.background.y + control.background.height / 2 - height / 2
-
- radius: width / 2
- color: !control.enabled ? control.Universal.baseLowColor :
- control.pressed ? control.Universal.baseMediumColor :
- control.hovered ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor
-
- transform: [
- Translate {
- y: -control.background.height * 0.4 + control.handle.height / 2
- },
- Rotation {
- angle: control.angle
- origin.x: control.handle.width / 2
- origin.y: control.handle.height / 2
- }
- ]
- }
-}
diff --git a/src/quickcontrols2/universal/Dialog.qml b/src/quickcontrols2/universal/Dialog.qml
deleted file mode 100644
index 3cebf7f0..00000000
--- a/src/quickcontrols2/universal/Dialog.qml
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.Dialog {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- padding: 24
- verticalPadding: 18
-
- background: Rectangle {
- color: control.Universal.chromeMediumLowColor
- border.color: control.Universal.chromeHighColor
- border.width: 1 // FlyoutBorderThemeThickness
- }
-
- header: Label {
- text: control.title
- visible: control.title
- elide: Label.ElideRight
- topPadding: 18
- leftPadding: 24
- rightPadding: 24
- // TODO: QPlatformTheme::TitleBarFont
- font.pixelSize: 20
- background: Rectangle {
- x: 1; y: 1 // // FlyoutBorderThemeThickness
- color: control.Universal.chromeMediumLowColor
- width: parent.width - 2
- height: parent.height - 1
- }
- }
-
- footer: DialogButtonBox {
- visible: count > 0
- }
-
- T.Overlay.modal: Rectangle {
- color: control.Universal.baseLowColor
- }
-
- T.Overlay.modeless: Rectangle {
- color: control.Universal.baseLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/DialogButtonBox.qml b/src/quickcontrols2/universal/DialogButtonBox.qml
deleted file mode 100644
index 811c12f7..00000000
--- a/src/quickcontrols2/universal/DialogButtonBox.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.DialogButtonBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- (control.count === 1 ? implicitContentWidth * 2 : implicitContentWidth) + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.contentWidth
-
- spacing: 4
- padding: 24
- topPadding: position === T.DialogButtonBox.Footer ? 6 : 24
- bottomPadding: position === T.DialogButtonBox.Header ? 6 : 24
- alignment: count === 1 ? Qt.AlignRight : undefined
-
- delegate: Button {
- width: control.count === 1 ? control.availableWidth / 2 : undefined
- }
-
- contentItem: ListView {
- model: control.contentModel
- spacing: control.spacing
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- snapMode: ListView.SnapToItem
- }
-
- background: Rectangle {
- implicitHeight: 32
- color: control.Universal.chromeMediumLowColor
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
- }
-}
diff --git a/src/quickcontrols2/universal/Drawer.qml b/src/quickcontrols2/universal/Drawer.qml
deleted file mode 100644
index 19f78f1e..00000000
--- a/src/quickcontrols2/universal/Drawer.qml
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.Drawer {
- id: control
-
- parent: T.Overlay.overlay
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- topPadding: control.edge === Qt.BottomEdge
- leftPadding: control.edge === Qt.RightEdge
- rightPadding: control.edge === Qt.LeftEdge
- bottomPadding: control.edge === Qt.TopEdge
-
- enter: Transition { SmoothedAnimation { velocity: 5 } }
- exit: Transition { SmoothedAnimation { velocity: 5 } }
-
- background: Rectangle {
- color: control.Universal.chromeMediumLowColor
- Rectangle {
- readonly property bool horizontal: control.edge === Qt.LeftEdge || control.edge === Qt.RightEdge
- width: horizontal ? 1 : parent.width
- height: horizontal ? parent.height : 1
- color: control.Universal.chromeHighColor
- x: control.edge === Qt.LeftEdge ? parent.width - 1 : 0
- y: control.edge === Qt.TopEdge ? parent.height - 1 : 0
- }
- }
-
- T.Overlay.modal: Rectangle {
- color: control.Universal.baseLowColor
- }
-
- T.Overlay.modeless: Rectangle {
- color: control.Universal.baseLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/Frame.qml b/src/quickcontrols2/universal/Frame.qml
deleted file mode 100644
index 780ba734..00000000
--- a/src/quickcontrols2/universal/Frame.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.Frame {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 12
-
- background: Rectangle {
- color: "transparent"
- border.color: control.Universal.chromeDisabledLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/GroupBox.qml b/src/quickcontrols2/universal/GroupBox.qml
deleted file mode 100644
index 5104b710..00000000
--- a/src/quickcontrols2/universal/GroupBox.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.GroupBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitLabelWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- spacing: 12
- padding: 12
- topPadding: padding + (implicitLabelWidth > 0 ? implicitLabelHeight + spacing : 0)
-
- label: Text {
- x: control.leftPadding
- width: control.availableWidth
-
- text: control.title
- font: control.font
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
-
- opacity: enabled ? 1.0 : 0.2
- color: control.Universal.foreground
- }
-
- background: Rectangle {
- y: control.topPadding - control.bottomPadding
- width: parent.width
- height: parent.height - control.topPadding + control.bottomPadding
-
- color: "transparent"
- border.color: control.Universal.chromeDisabledLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/HorizontalHeaderView.qml b/src/quickcontrols2/universal/HorizontalHeaderView.qml
deleted file mode 100644
index 0bf88ebc..00000000
--- a/src/quickcontrols2/universal/HorizontalHeaderView.qml
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-import QtQuick.Controls.Universal.impl
-
-T.HorizontalHeaderView {
- id: control
-
- implicitWidth: syncView ? syncView.width : 0
- implicitHeight: contentHeight
-
- delegate: Rectangle {
- // Qt6: add cellPadding (and font etc) as public API in headerview
- readonly property real cellPadding: 8
-
- implicitWidth: text.implicitWidth + (cellPadding * 2)
- implicitHeight: Math.max(control.height, text.implicitHeight + (cellPadding * 2))
- color: control.Universal.background
-
- Text {
- id: text
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
- : model[control.textRole])
- : modelData
- width: parent.width
- height: parent.height
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
- }
- }
-}
diff --git a/src/quickcontrols2/universal/ItemDelegate.qml b/src/quickcontrols2/universal/ItemDelegate.qml
deleted file mode 100644
index 50fa0af9..00000000
--- a/src/quickcontrols2/universal/ItemDelegate.qml
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.ItemDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12
-
- padding: 12
- topPadding: padding - 1
- bottomPadding: padding + 1
-
- icon.width: 20
- icon.height: 20
- icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
- }
-
- background: Rectangle {
- visible: control.down || control.highlighted || control.visualFocus || control.hovered
- color: control.down ? control.Universal.listMediumColor :
- control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
- Rectangle {
- width: parent.width
- height: parent.height
- visible: control.visualFocus || control.highlighted
- color: control.Universal.accent
- opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
- }
-
- }
-}
diff --git a/src/quickcontrols2/universal/Label.qml b/src/quickcontrols2/universal/Label.qml
deleted file mode 100644
index 9460c997..00000000
--- a/src/quickcontrols2/universal/Label.qml
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.Label {
- id: control
-
- opacity: enabled ? 1.0 : 0.2
- color: control.Universal.foreground
- linkColor: Universal.accent
-}
diff --git a/src/quickcontrols2/universal/Menu.qml b/src/quickcontrols2/universal/Menu.qml
deleted file mode 100644
index c4723f32..00000000
--- a/src/quickcontrols2/universal/Menu.qml
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-import QtQuick.Window
-
-T.Menu {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- margins: 0
- overlap: 1
-
- delegate: MenuItem { }
-
- contentItem: ListView {
- implicitHeight: contentHeight
- model: control.contentModel
- interactive: Window.window
- ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height
- : false
- clip: true
- currentIndex: control.currentIndex
-
- ScrollIndicator.vertical: ScrollIndicator {}
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 40
- color: control.Universal.chromeMediumLowColor
- border.color: control.Universal.chromeHighColor
- border.width: 1 // FlyoutBorderThemeThickness
- }
-
- T.Overlay.modal: Rectangle {
- color: control.Universal.baseLowColor
- }
-
- T.Overlay.modeless: Rectangle {
- color: control.Universal.baseLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/MenuBar.qml b/src/quickcontrols2/universal/MenuBar.qml
deleted file mode 100644
index 2ab58919..00000000
--- a/src/quickcontrols2/universal/MenuBar.qml
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.MenuBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- delegate: MenuBarItem { }
-
- contentItem: Row {
- spacing: control.spacing
- Repeater {
- model: control.contentModel
- }
- }
-
- background: Rectangle {
- implicitHeight: 40
- color: control.Universal.chromeMediumColor
- }
-}
diff --git a/src/quickcontrols2/universal/MenuBarItem.qml b/src/quickcontrols2/universal/MenuBarItem.qml
deleted file mode 100644
index 786be132..00000000
--- a/src/quickcontrols2/universal/MenuBarItem.qml
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.MenuBarItem {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 12
- topPadding: padding - 1
- bottomPadding: padding + 1
- spacing: 12
-
- icon.width: 20
- icon.height: 20
- icon.color: !enabled ? Universal.baseLowColor : Universal.baseHighColor
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor
- }
-
- background: Rectangle {
- implicitWidth: 40
- implicitHeight: 40
-
- color: !control.enabled ? control.Universal.baseLowColor :
- control.down ? control.Universal.listMediumColor :
- control.highlighted ? control.Universal.listLowColor : "transparent"
-
- Rectangle {
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
-
- visible: control.visualFocus
- color: control.Universal.accent
- opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
- }
- }
-}
diff --git a/src/quickcontrols2/universal/MenuItem.qml b/src/quickcontrols2/universal/MenuItem.qml
deleted file mode 100644
index 8287b0a8..00000000
--- a/src/quickcontrols2/universal/MenuItem.qml
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.MenuItem {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 12
- topPadding: padding - 1
- bottomPadding: padding + 1
- spacing: 12
-
- icon.width: 20
- icon.height: 20
- icon.color: !enabled ? Universal.baseLowColor : Universal.baseHighColor
-
- contentItem: IconLabel {
- readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0
- readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0
- leftPadding: !control.mirrored ? indicatorPadding : arrowPadding
- rightPadding: control.mirrored ? indicatorPadding : arrowPadding
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: !control.enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor
- }
-
- arrow: ColorImage {
- x: control.mirrored ? control.leftPadding : control.width - width - control.rightPadding
- y: control.topPadding + (control.availableHeight - height) / 2
-
- visible: control.subMenu
- mirror: control.mirrored
- color: !enabled ? control.Universal.baseLowColor : control.Universal.baseHighColor
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/rightarrow.png"
- }
-
- indicator: ColorImage {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
-
- visible: control.checked
- color: !control.enabled ? control.Universal.baseLowColor : control.down ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor
- source: !control.checkable ? "" : "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/checkmark.png"
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 40
-
- color: !control.enabled ? control.Universal.baseLowColor :
- control.down ? control.Universal.listMediumColor :
- control.highlighted ? control.Universal.listLowColor : control.Universal.altMediumLowColor
-
- Rectangle {
- x: 1; y: 1
- width: parent.width - 2
- height: parent.height - 2
-
- visible: control.visualFocus
- color: control.Universal.accent
- opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
- }
- }
-}
diff --git a/src/quickcontrols2/universal/MenuSeparator.qml b/src/quickcontrols2/universal/MenuSeparator.qml
deleted file mode 100644
index be6fad45..00000000
--- a/src/quickcontrols2/universal/MenuSeparator.qml
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.MenuSeparator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 12
- topPadding: 9
- bottomPadding: 10
-
- contentItem: Rectangle {
- implicitWidth: 188
- implicitHeight: 1
- color: control.Universal.baseMediumLowColor
- }
-
- background: Rectangle {
- color: control.Universal.altMediumLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/Page.qml b/src/quickcontrols2/universal/Page.qml
deleted file mode 100644
index 8946e7ad..00000000
--- a/src/quickcontrols2/universal/Page.qml
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.Page {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- background: Rectangle {
- color: control.Universal.background
- }
-}
diff --git a/src/quickcontrols2/universal/PageIndicator.qml b/src/quickcontrols2/universal/PageIndicator.qml
deleted file mode 100644
index 2adb85c6..00000000
--- a/src/quickcontrols2/universal/PageIndicator.qml
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.PageIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 7
-
- delegate: Rectangle {
- implicitWidth: 5
- implicitHeight: 5
-
- radius: width / 2
- color: index === control.currentIndex ? control.Universal.baseMediumHighColor :
- pressed ? control.Universal.baseMediumLowColor : control.Universal.baseLowColor
- }
-
- contentItem: Row {
- spacing: control.spacing
-
- Repeater {
- model: control.count
- delegate: control.delegate
- }
- }
-}
diff --git a/src/quickcontrols2/universal/Pane.qml b/src/quickcontrols2/universal/Pane.qml
deleted file mode 100644
index 257f9caf..00000000
--- a/src/quickcontrols2/universal/Pane.qml
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.Pane {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 12
-
- background: Rectangle {
- color: control.Universal.background
- }
-}
diff --git a/src/quickcontrols2/universal/Popup.qml b/src/quickcontrols2/universal/Popup.qml
deleted file mode 100644
index 5e972ea9..00000000
--- a/src/quickcontrols2/universal/Popup.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.Popup {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- padding: 12
-
- background: Rectangle {
- color: control.Universal.chromeMediumLowColor
- border.color: control.Universal.chromeHighColor
- border.width: 1 // FlyoutBorderThemeThickness
- }
-
- T.Overlay.modal: Rectangle {
- color: control.Universal.baseLowColor
- }
-
- T.Overlay.modeless: Rectangle {
- color: control.Universal.baseLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/ProgressBar.qml b/src/quickcontrols2/universal/ProgressBar.qml
deleted file mode 100644
index 4f8cc874..00000000
--- a/src/quickcontrols2/universal/ProgressBar.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-import QtQuick.Controls.Universal.impl
-
-T.ProgressBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- contentItem: ProgressBarImpl {
- implicitHeight: 10
-
- scale: control.mirrored ? -1 : 1
- color: control.Universal.accent
- progress: control.position
- indeterminate: control.visible && control.indeterminate
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 10
- y: (control.height - height) / 2
- height: 10
-
- visible: !control.indeterminate
- color: control.Universal.baseLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/README.md b/src/quickcontrols2/universal/README.md
deleted file mode 100644
index 8d02d18b..00000000
--- a/src/quickcontrols2/universal/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Universal Style
-
-This style is based on the [Microsoft Universal Design Guidelines](https://dev.windows.com/design).
-
-The colors and metrics used all around the QML and C++ files originate from the Windows 10 SDK. The files are called **generic.xaml** and **themeresources.xml**, and they are located in the following folder:
-
- \(Program Files)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\<SDK version>\Generic
-
-See also [XAML theme resources](https://msdn.microsoft.com/en-us/library/windows/apps/mt187274.aspx).
diff --git a/src/quickcontrols2/universal/RadioButton.qml b/src/quickcontrols2/universal/RadioButton.qml
deleted file mode 100644
index abd386ce..00000000
--- a/src/quickcontrols2/universal/RadioButton.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-import QtQuick.Controls.Universal.impl
-
-T.RadioButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 8
-
- property bool useSystemFocusVisuals: true
-
- indicator: RadioIndicator {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
-
- opacity: enabled ? 1.0 : 0.2
- color: control.Universal.foreground
- }
-}
diff --git a/src/quickcontrols2/universal/RadioDelegate.qml b/src/quickcontrols2/universal/RadioDelegate.qml
deleted file mode 100644
index fda2560d..00000000
--- a/src/quickcontrols2/universal/RadioDelegate.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-import QtQuick.Controls.Universal.impl
-
-T.RadioDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12
-
- padding: 12
- topPadding: padding - 1
- bottomPadding: padding + 1
-
- icon.width: 20
- icon.height: 20
- icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
-
- indicator: RadioIndicator {
- x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: IconLabel {
- leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
- rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
- }
-
- background: Rectangle {
- visible: control.down || control.highlighted || control.visualFocus || control.hovered
- color: control.down ? control.Universal.listMediumColor :
- control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
- Rectangle {
- width: parent.width
- height: parent.height
- visible: control.visualFocus || control.highlighted
- color: control.Universal.accent
- opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
- }
-
- }
-}
diff --git a/src/quickcontrols2/universal/RangeSlider.qml b/src/quickcontrols2/universal/RangeSlider.qml
deleted file mode 100644
index 5bdc4d8f..00000000
--- a/src/quickcontrols2/universal/RangeSlider.qml
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.RangeSlider {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- first.implicitHandleWidth + leftPadding + rightPadding,
- second.implicitHandleWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- first.implicitHandleHeight + topPadding + bottomPadding,
- second.implicitHandleHeight + topPadding + bottomPadding)
-
- padding: 6
-
- first.handle: Rectangle {
- implicitWidth: control.horizontal ? 8 : 24
- implicitHeight: control.horizontal ? 24 : 8
-
- x: control.leftPadding + (control.horizontal ? control.first.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.first.visualPosition * (control.availableHeight - height))
-
- radius: 4
- color: control.first.pressed ? control.Universal.chromeHighColor :
- control.first.hovered ? control.Universal.chromeAltLowColor :
- control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
- }
-
- second.handle: Rectangle {
- implicitWidth: control.horizontal ? 8 : 24
- implicitHeight: control.horizontal ? 24 : 8
-
- x: control.leftPadding + (control.horizontal ? control.second.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.second.visualPosition * (control.availableHeight - height))
-
- radius: 4
- color: control.second.pressed ? control.Universal.chromeHighColor :
- control.second.hovered ? control.Universal.chromeAltLowColor :
- control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
- }
-
- background: Item {
- implicitWidth: control.horizontal ? 200 : 18
- implicitHeight: control.horizontal ? 18 : 200
-
- x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
- width: control.horizontal ? control.availableWidth : implicitWidth
- height: control.horizontal ? implicitHeight : control.availableHeight
-
- scale: control.horizontal && control.mirrored ? -1 : 1
-
- Rectangle {
- x: control.horizontal ? 0 : (parent.width - width) / 2
- y: control.horizontal ? (parent.height - height) / 2 : 0
- width: control.horizontal ? parent.width : 2 // SliderBackgroundThemeHeight
- height: control.vertical ? parent.height : 2 // SliderBackgroundThemeHeight
-
- color: control.hovered && !control.pressed ? control.Universal.baseMediumColor :
- control.enabled ? control.Universal.baseMediumLowColor : control.Universal.chromeDisabledHighColor
- }
-
- Rectangle {
- x: control.horizontal ? control.first.position * parent.width : (parent.width - width) / 2
- y: control.horizontal ? (parent.height - height) / 2 : control.second.visualPosition * parent.height
- width: control.horizontal ? control.second.position * parent.width - control.first.position * parent.width : 2 // SliderBackgroundThemeHeight
- height: control.vertical ? control.second.position * parent.height - control.first.position * parent.height : 2 // SliderBackgroundThemeHeight
-
- color: control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
- }
- }
-}
diff --git a/src/quickcontrols2/universal/RoundButton.qml b/src/quickcontrols2/universal/RoundButton.qml
deleted file mode 100644
index 156a472c..00000000
--- a/src/quickcontrols2/universal/RoundButton.qml
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.RoundButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 8
- spacing: 8
-
- icon.width: 20
- icon.height: 20
- icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
-
- property bool useSystemFocusVisuals: true
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
- }
-
- background: Rectangle {
- implicitWidth: 32
- implicitHeight: 32
-
- radius: control.radius
- visible: !control.flat || control.down || control.checked || control.highlighted
- color: control.down ? control.Universal.baseMediumLowColor :
- control.enabled && (control.highlighted || control.checked) ? control.Universal.accent :
- control.Universal.baseLowColor
-
- Rectangle {
- width: parent.width
- height: parent.height
- radius: control.radius
- color: "transparent"
- visible: control.hovered
- border.width: 2 // ButtonBorderThemeThickness
- border.color: control.Universal.baseMediumLowColor
- }
- }
-}
diff --git a/src/quickcontrols2/universal/ScrollBar.qml b/src/quickcontrols2/universal/ScrollBar.qml
deleted file mode 100644
index d101658c..00000000
--- a/src/quickcontrols2/universal/ScrollBar.qml
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.ScrollBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- visible: control.policy !== T.ScrollBar.AlwaysOff
- minimumSize: orientation == Qt.Horizontal ? height / width : width / height
-
- // TODO: arrows
-
- contentItem: Rectangle {
- implicitWidth: control.interactive ? 12 : 6
- implicitHeight: control.interactive ? 12: 6
-
- color: control.pressed ? control.Universal.baseMediumColor :
- control.interactive && control.hovered ? control.Universal.baseMediumLowColor : control.Universal.chromeHighColor
- opacity: 0.0
- }
-
- background: Rectangle {
- implicitWidth: control.interactive ? 12 : 6
- implicitHeight: control.interactive ? 12: 6
-
- color: control.Universal.chromeLowColor
- visible: control.size < 1.0
- opacity: 0.0
- }
-
- states: [
- State {
- name: "active"
- when: control.policy === T.ScrollBar.AlwaysOn || (control.active && control.size < 1.0)
- }
- ]
-
- transitions: [
- Transition {
- to: "active"
- NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 1.0 }
- },
- Transition {
- from: "active"
- SequentialAnimation {
- PropertyAction{ targets: [control.contentItem, control.background]; property: "opacity"; value: 1.0 }
- PauseAnimation { duration: 3000 }
- NumberAnimation { targets: [control.contentItem, control.background]; property: "opacity"; to: 0.0 }
- }
- }
- ]
-}
diff --git a/src/quickcontrols2/universal/ScrollIndicator.qml b/src/quickcontrols2/universal/ScrollIndicator.qml
deleted file mode 100644
index f66a9658..00000000
--- a/src/quickcontrols2/universal/ScrollIndicator.qml
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.ScrollIndicator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- contentItem: Rectangle {
- implicitWidth: 6
- implicitHeight: 6
-
- color: control.Universal.baseMediumLowColor
- visible: control.size < 1.0
- opacity: 0.0
-
- states: [
- State {
- name: "active"
- when: control.active
- }
- ]
-
- transitions: [
- Transition {
- to: "active"
- NumberAnimation { target: control.contentItem; property: "opacity"; to: 1.0 }
- },
- Transition {
- from: "active"
- SequentialAnimation {
- PauseAnimation { duration: 5000 }
- NumberAnimation { target: control.contentItem; property: "opacity"; to: 0.0 }
- }
- }
- ]
- }
-}
diff --git a/src/quickcontrols2/universal/ScrollView.qml b/src/quickcontrols2/universal/ScrollView.qml
deleted file mode 100644
index a6bba9de..00000000
--- a/src/quickcontrols2/universal/ScrollView.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ScrollView {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- ScrollBar.vertical: ScrollBar {
- parent: control
- x: control.mirrored ? 0 : control.width - width
- y: control.topPadding
- height: control.availableHeight
- active: control.ScrollBar.horizontal.active
- }
-
- ScrollBar.horizontal: ScrollBar {
- parent: control
- x: control.leftPadding
- y: control.height - height
- width: control.availableWidth
- active: control.ScrollBar.vertical.active
- }
-}
diff --git a/src/quickcontrols2/universal/Slider.qml b/src/quickcontrols2/universal/Slider.qml
deleted file mode 100644
index 37c77a35..00000000
--- a/src/quickcontrols2/universal/Slider.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.Slider {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitHandleWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitHandleHeight + topPadding + bottomPadding)
-
- padding: 6
-
- property bool useSystemFocusVisuals: true
-
- handle: Rectangle {
- implicitWidth: control.horizontal ? 8 : 24
- implicitHeight: control.horizontal ? 24 : 8
-
- x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
-
- radius: 4
- color: control.pressed ? control.Universal.chromeHighColor :
- control.hovered ? control.Universal.chromeAltLowColor :
- control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
- }
-
- background: Item {
- implicitWidth: control.horizontal ? 200 : 18
- implicitHeight: control.horizontal ? 18 : 200
-
- x: control.leftPadding + (control.horizontal ? 0 : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : 0)
- width: control.horizontal ? control.availableWidth : implicitWidth
- height: control.horizontal ? implicitHeight : control.availableHeight
-
- scale: control.horizontal && control.mirrored ? -1 : 1
-
- Rectangle {
- x: control.horizontal ? 0 : (parent.width - width) / 2
- y: control.horizontal ? (parent.height - height) / 2 : 0
- width: control.horizontal ? parent.width : 2 // SliderTrackThemeHeight
- height: !control.horizontal ? parent.height : 2 // SliderTrackThemeHeight
-
- color: control.hovered && !control.pressed ? control.Universal.baseMediumColor :
- control.enabled ? control.Universal.baseMediumLowColor : control.Universal.chromeDisabledHighColor
- }
-
- Rectangle {
- x: control.horizontal ? 0 : (parent.width - width) / 2
- y: control.horizontal ? (parent.height - height) / 2 : control.visualPosition * parent.height
- width: control.horizontal ? control.position * parent.width : 2 // SliderTrackThemeHeight
- height: !control.horizontal ? control.position * parent.height : 2 // SliderTrackThemeHeight
-
- color: control.enabled ? control.Universal.accent : control.Universal.chromeDisabledHighColor
- }
- }
-}
diff --git a/src/quickcontrols2/universal/SpinBox.qml b/src/quickcontrols2/universal/SpinBox.qml
deleted file mode 100644
index 10c12589..00000000
--- a/src/quickcontrols2/universal/SpinBox.qml
+++ /dev/null
@@ -1,147 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.SpinBox {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentItem.implicitWidth + 16 +
- up.implicitIndicatorWidth +
- down.implicitIndicatorWidth)
- implicitHeight: Math.max(implicitContentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight,
- up.implicitIndicatorHeight,
- down.implicitIndicatorHeight)
-
- // TextControlThemePadding + 2 (border)
- padding: 12
- topPadding: padding - 7
- leftPadding: padding + (control.mirrored ? (up.indicator ? up.indicator.width : 0) : (down.indicator ? down.indicator.width : 0))
- rightPadding: padding - 4 + (control.mirrored ? (down.indicator ? down.indicator.width : 0) : (up.indicator ? up.indicator.width : 0))
- bottomPadding: padding - 5
-
- Universal.theme: activeFocus ? Universal.Light : undefined
-
- validator: IntValidator {
- locale: control.locale.name
- bottom: Math.min(control.from, control.to)
- top: Math.max(control.from, control.to)
- }
-
- contentItem: TextInput {
- text: control.displayText
-
- font: control.font
- color: !enabled ? control.Universal.chromeDisabledLowColor :
- activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.foreground
- selectionColor: control.Universal.accent
- selectedTextColor: control.Universal.chromeWhiteColor
- horizontalAlignment: Qt.AlignHCenter
- verticalAlignment: TextInput.AlignVCenter
-
- readOnly: !control.editable
- validator: control.validator
- inputMethodHints: control.inputMethodHints
- }
-
- up.indicator: Item {
- implicitWidth: 28
- height: parent.height + 4
- y: -2
- x: control.mirrored ? 0 : parent.width - width
-
- Rectangle {
- x: 2; y: 4
- width: parent.width - 4
- height: parent.height - 8
- color: control.activeFocus ? control.Universal.accent :
- control.up.pressed ? control.Universal.baseMediumLowColor :
- control.up.hovered ? control.Universal.baseLowColor : "transparent"
- visible: control.up.pressed || control.up.hovered
- opacity: control.activeFocus && !control.up.pressed ? 0.4 : 1.0
- }
-
- ColorImage {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- color: !enabled ? control.Universal.chromeDisabledLowColor :
- control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.baseHighColor
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/" + (control.mirrored ? "left" : "right") + "arrow.png"
- }
- }
-
- down.indicator: Item {
- implicitWidth: 28
- height: parent.height + 4
- y: -2
- x: control.mirrored ? parent.width - width : 0
-
- Rectangle {
- x: 2; y: 4
- width: parent.width - 4
- height: parent.height - 8
- color: control.activeFocus ? control.Universal.accent :
- control.down.pressed ? control.Universal.baseMediumLowColor :
- control.down.hovered ? control.Universal.baseLowColor : "transparent"
- visible: control.down.pressed || control.down.hovered
- opacity: control.activeFocus && !control.down.pressed ? 0.4 : 1.0
- }
-
- ColorImage {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- color: !enabled ? control.Universal.chromeDisabledLowColor :
- control.activeFocus ? control.Universal.chromeBlackHighColor : control.Universal.baseHighColor
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/" + (control.mirrored ? "right" : "left") + "arrow.png"
- }
- }
-
- background: Rectangle {
- implicitWidth: 60 + 28 // TextControlThemeMinWidth - 4 (border)
- implicitHeight: 28 // TextControlThemeMinHeight - 4 (border)
-
- border.width: 2 // TextControlBorderThemeThickness
- border.color: !control.enabled ? control.Universal.baseLowColor :
- control.activeFocus ? control.Universal.accent :
- control.hovered ? control.Universal.baseMediumColor : control.Universal.chromeDisabledLowColor
- color: control.enabled ? control.Universal.background : control.Universal.baseLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/SplitView.qml b/src/quickcontrols2/universal/SplitView.qml
deleted file mode 100644
index 78362cea..00000000
--- a/src/quickcontrols2/universal/SplitView.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.SplitView {
- id: control
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- handle: Rectangle {
- implicitWidth: control.orientation === Qt.Horizontal ? 6 : control.width
- implicitHeight: control.orientation === Qt.Horizontal ? control.height : 6
- color: T.SplitHandle.pressed ? control.Universal.baseMediumColor
- : (T.SplitHandle.hovered ? control.Universal.baseMediumLowColor : control.Universal.chromeHighColor)
- }
-}
diff --git a/src/quickcontrols2/universal/StackView.qml b/src/quickcontrols2/universal/StackView.qml
deleted file mode 100644
index 41611dd3..00000000
--- a/src/quickcontrols2/universal/StackView.qml
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.StackView {
- id: control
-
- popEnter: Transition {
- ParallelAnimation {
- NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 200; easing.type: Easing.InQuint }
- NumberAnimation { property: "x"; from: (control.mirrored ? -0.3 : 0.3) * -control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
- }
- }
-
- popExit: Transition {
- NumberAnimation { property: "opacity"; from: 1; to: 0; duration: 200; easing.type: Easing.OutQuint }
- }
-
- pushEnter: Transition {
- ParallelAnimation {
- NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 200; easing.type: Easing.InQuint }
- NumberAnimation { property: "x"; from: (control.mirrored ? -0.3 : 0.3) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
- }
- }
-
- pushExit: Transition {
- NumberAnimation { property: "opacity"; from: 1; to: 0; duration: 200; easing.type: Easing.OutQuint }
- }
-
- replaceEnter: Transition {
- ParallelAnimation {
- NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 200; easing.type: Easing.InQuint }
- NumberAnimation { property: "x"; from: (control.mirrored ? -0.3 : 0.3) * control.width; to: 0; duration: 400; easing.type: Easing.OutCubic }
- }
- }
-
- replaceExit: Transition {
- NumberAnimation { property: "opacity"; from: 1; to: 0; duration: 200; easing.type: Easing.OutQuint }
- }
-}
diff --git a/src/quickcontrols2/universal/SwipeDelegate.qml b/src/quickcontrols2/universal/SwipeDelegate.qml
deleted file mode 100644
index e36f8ee0..00000000
--- a/src/quickcontrols2/universal/SwipeDelegate.qml
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.SwipeDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12
-
- padding: 12
- topPadding: padding - 1
- bottomPadding: padding + 1
-
- icon.width: 20
- icon.height: 20
- icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
-
- swipe.transition: Transition { SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic } }
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
- }
-
- background: Rectangle {
- color: control.Universal.background
-
- Rectangle {
- width: parent.width
- height: parent.height
- color: control.down ? control.Universal.listMediumColor :
- control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
- Rectangle {
- width: parent.width
- height: parent.height
- visible: control.visualFocus || control.highlighted
- color: control.Universal.accent
- opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
- }
- }
- }
-}
diff --git a/src/quickcontrols2/universal/Switch.qml b/src/quickcontrols2/universal/Switch.qml
deleted file mode 100644
index 33ee4abb..00000000
--- a/src/quickcontrols2/universal/Switch.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-import QtQuick.Controls.Universal.impl
-
-T.Switch {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 5
- spacing: 8
-
- property bool useSystemFocusVisuals: true
-
- indicator: SwitchIndicator {
- x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: Text {
- leftPadding: control.indicator && !control.mirrored ? control.indicator.width + control.spacing : 0
- rightPadding: control.indicator && control.mirrored ? control.indicator.width + control.spacing : 0
-
- text: control.text
- font: control.font
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
-
- opacity: enabled ? 1.0 : 0.2
- color: control.Universal.foreground
- }
-}
diff --git a/src/quickcontrols2/universal/SwitchDelegate.qml b/src/quickcontrols2/universal/SwitchDelegate.qml
deleted file mode 100644
index 41ea2ce0..00000000
--- a/src/quickcontrols2/universal/SwitchDelegate.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-import QtQuick.Controls.Universal.impl
-
-T.SwitchDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12
-
- padding: 12
- topPadding: padding - 1
- bottomPadding: padding + 1
-
- icon.width: 20
- icon.height: 20
- icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
-
- indicator: SwitchIndicator {
- x: control.text ? (control.mirrored ? control.leftPadding : control.width - width - control.rightPadding) : control.leftPadding + (control.availableWidth - width) / 2
- y: control.topPadding + (control.availableHeight - height) / 2
- control: control
- }
-
- contentItem: IconLabel {
- leftPadding: !control.mirrored ? 0 : control.indicator.width + control.spacing
- rightPadding: control.mirrored ? 0 : control.indicator.width + control.spacing
-
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
- alignment: control.display === IconLabel.IconOnly || control.display === IconLabel.TextUnderIcon ? Qt.AlignCenter : Qt.AlignLeft
-
- icon: control.icon
- text: control.text
- font: control.font
- color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
- }
-
- background: Rectangle {
- visible: control.down || control.highlighted || control.visualFocus || control.hovered
- color: control.down ? control.Universal.listMediumColor :
- control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
- Rectangle {
- width: parent.width
- height: parent.height
- visible: control.visualFocus || control.highlighted
- color: control.Universal.accent
- opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
- }
-
- }
-}
diff --git a/src/quickcontrols2/universal/TabBar.qml b/src/quickcontrols2/universal/TabBar.qml
deleted file mode 100644
index 9b98c10e..00000000
--- a/src/quickcontrols2/universal/TabBar.qml
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.TabBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- contentItem: ListView {
- model: control.contentModel
- currentIndex: control.currentIndex
-
- spacing: control.spacing
- orientation: ListView.Horizontal
- boundsBehavior: Flickable.StopAtBounds
- flickableDirection: Flickable.AutoFlickIfNeeded
- snapMode: ListView.SnapToItem
-
- highlightMoveDuration: 100
- highlightRangeMode: ListView.ApplyRange
- preferredHighlightBegin: 48
- preferredHighlightEnd: width - 48
- }
-
- background: Rectangle {
- implicitWidth: 200
- implicitHeight: 48
- color: control.Universal.background
- }
-}
diff --git a/src/quickcontrols2/universal/TabButton.qml b/src/quickcontrols2/universal/TabButton.qml
deleted file mode 100644
index 3709bdda..00000000
--- a/src/quickcontrols2/universal/TabButton.qml
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.TabButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 12 // PivotItemMargin
- spacing: 8
-
- icon.width: 20
- icon.height: 20
- icon.color: Color.transparent(control.hovered ? control.Universal.baseMediumHighColor : control.Universal.foreground,
- control.checked || control.down || control.hovered ? 1.0 : 0.2)
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: Color.transparent(control.hovered ? control.Universal.baseMediumHighColor : control.Universal.foreground,
- control.checked || control.down || control.hovered ? 1.0 : 0.2)
- }
-}
diff --git a/src/quickcontrols2/universal/TextArea.qml b/src/quickcontrols2/universal/TextArea.qml
deleted file mode 100644
index 6fa0066b..00000000
--- a/src/quickcontrols2/universal/TextArea.qml
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.TextArea {
- id: control
-
- implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
- implicitBackgroundWidth + leftInset + rightInset,
- placeholder.implicitWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight + topInset + bottomInset,
- placeholder.implicitHeight + topPadding + bottomPadding)
-
- // TextControlThemePadding + 2 (border)
- padding: 12
- topPadding: padding - 7
- rightPadding: padding - 4
- bottomPadding: padding - 5
-
- Universal.theme: activeFocus ? Universal.Light : undefined
-
- color: !enabled ? Universal.chromeDisabledLowColor : Universal.foreground
- selectionColor: Universal.accent
- selectedTextColor: Universal.chromeWhiteColor
- placeholderTextColor: !enabled ? Universal.chromeDisabledLowColor :
- activeFocus ? Universal.chromeBlackMediumLowColor :
- Universal.baseMediumColor
-
- PlaceholderText {
- id: placeholder
- x: control.leftPadding
- y: control.topPadding
- width: control.width - (control.leftPadding + control.rightPadding)
- height: control.height - (control.topPadding + control.bottomPadding)
-
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- verticalAlignment: control.verticalAlignment
- elide: Text.ElideRight
- renderType: control.renderType
- }
-
- background: Rectangle {
- implicitWidth: 60 // TextControlThemeMinWidth - 4 (border)
- implicitHeight: 28 // TextControlThemeMinHeight - 4 (border)
-
- border.width: 2 // TextControlBorderThemeThickness
- border.color: !control.enabled ? control.Universal.baseLowColor :
- control.activeFocus ? control.Universal.accent :
- control.hovered ? control.Universal.baseMediumColor : control.Universal.chromeDisabledLowColor
- color: control.enabled ? control.Universal.background : control.Universal.baseLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/TextField.qml b/src/quickcontrols2/universal/TextField.qml
deleted file mode 100644
index 903f6728..00000000
--- a/src/quickcontrols2/universal/TextField.qml
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.TextField {
- id: control
-
- implicitWidth: implicitBackgroundWidth + leftInset + rightInset
- || Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding,
- placeholder.implicitHeight + topPadding + bottomPadding)
-
- // TextControlThemePadding + 2 (border)
- padding: 12
- topPadding: padding - 7
- rightPadding: padding - 4
- bottomPadding: padding - 5
-
- Universal.theme: activeFocus ? Universal.Light : undefined
-
- color: !enabled ? Universal.chromeDisabledLowColor : Universal.foreground
- selectionColor: Universal.accent
- selectedTextColor: Universal.chromeWhiteColor
- placeholderTextColor: !enabled ? Universal.chromeDisabledLowColor :
- activeFocus ? Universal.chromeBlackMediumLowColor :
- Universal.baseMediumColor
- verticalAlignment: TextInput.AlignVCenter
-
- PlaceholderText {
- id: placeholder
- x: control.leftPadding
- y: control.topPadding
- width: control.width - (control.leftPadding + control.rightPadding)
- height: control.height - (control.topPadding + control.bottomPadding)
-
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- verticalAlignment: control.verticalAlignment
- elide: Text.ElideRight
- renderType: control.renderType
- }
-
- background: Rectangle {
- implicitWidth: 60 // TextControlThemeMinWidth - 4 (border)
- implicitHeight: 28 // TextControlThemeMinHeight - 4 (border)
-
- border.width: 2 // TextControlBorderThemeThickness
- border.color: !control.enabled ? control.Universal.baseLowColor :
- control.activeFocus ? control.Universal.accent :
- control.hovered ? control.Universal.baseMediumColor : control.Universal.chromeDisabledLowColor
- color: control.enabled ? control.Universal.background : control.Universal.baseLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/ToolBar.qml b/src/quickcontrols2/universal/ToolBar.qml
deleted file mode 100644
index 0266056f..00000000
--- a/src/quickcontrols2/universal/ToolBar.qml
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.ToolBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- background: Rectangle {
- implicitHeight: 48 // AppBarThemeCompactHeight
- color: control.Universal.chromeMediumColor
- }
-}
diff --git a/src/quickcontrols2/universal/ToolButton.qml b/src/quickcontrols2/universal/ToolButton.qml
deleted file mode 100644
index c305342d..00000000
--- a/src/quickcontrols2/universal/ToolButton.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-T.ToolButton {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 8
-
- icon.width: 20
- icon.height: 20
- icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
-
- property bool useSystemFocusVisuals: true
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
- }
-
- background: Rectangle {
- implicitWidth: 68
- implicitHeight: 48 // AppBarThemeCompactHeight
-
- color: control.enabled && (control.highlighted || control.checked) ? control.Universal.accent : "transparent"
-
- Rectangle {
- width: parent.width
- height: parent.height
- visible: control.down || control.hovered
- color: control.down ? control.Universal.listMediumColor : control.Universal.listLowColor
- }
- }
-}
diff --git a/src/quickcontrols2/universal/ToolSeparator.qml b/src/quickcontrols2/universal/ToolSeparator.qml
deleted file mode 100644
index cd9be32d..00000000
--- a/src/quickcontrols2/universal/ToolSeparator.qml
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.ToolSeparator {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- leftPadding: vertical ? 16 : 12
- rightPadding: vertical ? 15 : 12
- topPadding: vertical ? 12 : 16
- bottomPadding: vertical ? 12 : 15
-
- contentItem: Rectangle {
- implicitWidth: vertical ? 1 : 20
- implicitHeight: vertical ? 20 : 1
- color: control.Universal.baseMediumLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/ToolTip.qml b/src/quickcontrols2/universal/ToolTip.qml
deleted file mode 100644
index bf931a4c..00000000
--- a/src/quickcontrols2/universal/ToolTip.qml
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-T.ToolTip {
- id: control
-
- x: parent ? (parent.width - implicitWidth) / 2 : 0
- y: -implicitHeight - 16
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- margins: 8
- padding: 8
- topPadding: padding - 3
- bottomPadding: padding - 1
-
- closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
-
- contentItem: Text {
- text: control.text
- font: control.font
- wrapMode: Text.Wrap
- opacity: enabled ? 1.0 : 0.2
- color: control.Universal.foreground
- }
-
- background: Rectangle {
- color: control.Universal.chromeMediumLowColor
- border.color: control.Universal.chromeHighColor
- border.width: 1 // ToolTipBorderThemeThickness
- }
-}
diff --git a/src/quickcontrols2/universal/Tumbler.qml b/src/quickcontrols2/universal/Tumbler.qml
deleted file mode 100644
index 5b9f5725..00000000
--- a/src/quickcontrols2/universal/Tumbler.qml
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-import QtQuick.Controls.impl
-
-T.Tumbler {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- delegate: Text {
- text: modelData
- font: control.font
- color: control.Universal.foreground
- opacity: (1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)) * (control.enabled ? 1 : 0.6)
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
-
- contentItem: TumblerView {
- implicitWidth: 60
- implicitHeight: 200
- model: control.model
- delegate: control.delegate
- path: Path {
- startX: control.contentItem.width / 2
- startY: -control.contentItem.delegateHeight / 2
- PathLine {
- x: control.contentItem.width / 2
- y: (control.visibleItemCount + 1) * control.contentItem.delegateHeight - control.contentItem.delegateHeight / 2
- }
- }
-
- property real delegateHeight: control.availableHeight / control.visibleItemCount
- }
-}
diff --git a/src/quickcontrols2/universal/VerticalHeaderView.qml b/src/quickcontrols2/universal/VerticalHeaderView.qml
deleted file mode 100644
index 7dc1efd3..00000000
--- a/src/quickcontrols2/universal/VerticalHeaderView.qml
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-import QtQuick.Controls.Universal.impl
-
-T.VerticalHeaderView {
- id: control
-
- implicitWidth: contentWidth
- implicitHeight: syncView ? syncView.height : 0
-
- delegate: Rectangle {
- // Qt6: add cellPadding (and font etc) as public API in headerview
- readonly property real cellPadding: 8
-
- implicitWidth: Math.max(control.width, text.implicitWidth + (cellPadding * 2))
- implicitHeight: text.implicitHeight + (cellPadding * 2)
- color: control.Universal.background
-
- Text {
- id: text
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole]
- : model[control.textRole])
- : modelData
- width: parent.width
- height: parent.height
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
- }
- }
-}
diff --git a/src/quickcontrols2/universal/images/checkmark.png b/src/quickcontrols2/universal/images/checkmark.png
deleted file mode 100644
index e2aae6fe..00000000
--- a/src/quickcontrols2/universal/images/checkmark.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/checkmark@2x.png b/src/quickcontrols2/universal/images/checkmark@2x.png
deleted file mode 100644
index 0df4159a..00000000
--- a/src/quickcontrols2/universal/images/checkmark@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/checkmark@3x.png b/src/quickcontrols2/universal/images/checkmark@3x.png
deleted file mode 100644
index 43466cbc..00000000
--- a/src/quickcontrols2/universal/images/checkmark@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/checkmark@4x.png b/src/quickcontrols2/universal/images/checkmark@4x.png
deleted file mode 100644
index 7a47bd21..00000000
--- a/src/quickcontrols2/universal/images/checkmark@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/downarrow.png b/src/quickcontrols2/universal/images/downarrow.png
deleted file mode 100644
index b66e2efc..00000000
--- a/src/quickcontrols2/universal/images/downarrow.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/downarrow@2x.png b/src/quickcontrols2/universal/images/downarrow@2x.png
deleted file mode 100644
index a704376c..00000000
--- a/src/quickcontrols2/universal/images/downarrow@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/downarrow@3x.png b/src/quickcontrols2/universal/images/downarrow@3x.png
deleted file mode 100644
index 3b6d55ab..00000000
--- a/src/quickcontrols2/universal/images/downarrow@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/downarrow@4x.png b/src/quickcontrols2/universal/images/downarrow@4x.png
deleted file mode 100644
index 818c6b24..00000000
--- a/src/quickcontrols2/universal/images/downarrow@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/leftarrow.png b/src/quickcontrols2/universal/images/leftarrow.png
deleted file mode 100644
index 0153ccd4..00000000
--- a/src/quickcontrols2/universal/images/leftarrow.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/leftarrow@2x.png b/src/quickcontrols2/universal/images/leftarrow@2x.png
deleted file mode 100644
index fa692d5b..00000000
--- a/src/quickcontrols2/universal/images/leftarrow@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/leftarrow@3x.png b/src/quickcontrols2/universal/images/leftarrow@3x.png
deleted file mode 100644
index 06b0207a..00000000
--- a/src/quickcontrols2/universal/images/leftarrow@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/leftarrow@4x.png b/src/quickcontrols2/universal/images/leftarrow@4x.png
deleted file mode 100644
index 1049f616..00000000
--- a/src/quickcontrols2/universal/images/leftarrow@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/rightarrow.png b/src/quickcontrols2/universal/images/rightarrow.png
deleted file mode 100644
index b24d117d..00000000
--- a/src/quickcontrols2/universal/images/rightarrow.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/rightarrow@2x.png b/src/quickcontrols2/universal/images/rightarrow@2x.png
deleted file mode 100644
index 80aca7c1..00000000
--- a/src/quickcontrols2/universal/images/rightarrow@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/rightarrow@3x.png b/src/quickcontrols2/universal/images/rightarrow@3x.png
deleted file mode 100644
index ba017240..00000000
--- a/src/quickcontrols2/universal/images/rightarrow@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/images/rightarrow@4x.png b/src/quickcontrols2/universal/images/rightarrow@4x.png
deleted file mode 100644
index 21f7ed4d..00000000
--- a/src/quickcontrols2/universal/images/rightarrow@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickcontrols2/universal/impl/CMakeLists.txt b/src/quickcontrols2/universal/impl/CMakeLists.txt
deleted file mode 100644
index 796806a5..00000000
--- a/src/quickcontrols2/universal/impl/CMakeLists.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-#####################################################################
-## qtquickcontrols2universalstyleimplplugin Plugin:
-#####################################################################
-
-set(qml_files
- "CheckIndicator.qml"
- "RadioIndicator.qml"
- "SwitchIndicator.qml"
-)
-set_source_files_properties(${qml_files} PROPERTIES
- QT_QML_SOURCE_VERSION "2.0"
-)
-
-qt_internal_add_qml_module(qtquickcontrols2universalstyleimplplugin
- URI "QtQuick.Controls.Universal.impl"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2UniversalStyleImplPlugin
- PLUGIN_TARGET qtquickcontrols2universalstyleimplplugin
- NO_PLUGIN_OPTIONAL
- SOURCES
- qquickuniversalbusyindicator.cpp qquickuniversalbusyindicator_p.h
- qquickuniversalfocusrectangle.cpp qquickuniversalfocusrectangle_p.h
- qquickuniversalprogressbar.cpp qquickuniversalprogressbar_p.h
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::Gui
- Qt::QmlPrivate
- Qt::QuickControls2ImplPrivate
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
diff --git a/src/quickcontrols2/universal/impl/CheckIndicator.qml b/src/quickcontrols2/universal/impl/CheckIndicator.qml
deleted file mode 100644
index e4cd5409..00000000
--- a/src/quickcontrols2/universal/impl/CheckIndicator.qml
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-
-Rectangle {
- id: indicator
- implicitWidth: 20
- implicitHeight: 20
-
- color: !control.enabled ? "transparent" :
- control.down && !partiallyChecked ? control.Universal.baseMediumColor :
- control.checkState === Qt.Checked ? control.Universal.accent : "transparent"
- border.color: !control.enabled ? control.Universal.baseLowColor :
- control.down ? control.Universal.baseMediumColor :
- control.checked ? control.Universal.accent : control.Universal.baseMediumHighColor
- border.width: 2 // CheckBoxBorderThemeThickness
-
- property Item control
- readonly property bool partiallyChecked: control.checkState === Qt.PartiallyChecked
-
- ColorImage {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
-
- visible: indicator.control.checkState === Qt.Checked
- color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor : indicator.control.Universal.chromeWhiteColor
- source: "qrc:/qt-project.org/imports/QtQuick/Controls/Universal/images/checkmark.png"
- }
-
- Rectangle {
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: indicator.partiallyChecked ? parent.width / 2 : parent.width
- height: indicator.partiallyChecked ? parent.height / 2 : parent.height
-
- visible: !indicator.control.pressed && indicator.control.hovered || indicator.partiallyChecked
- color: !indicator.partiallyChecked ? "transparent" :
- !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
- indicator.control.down ? indicator.control.Universal.baseMediumColor :
- indicator.control.hovered ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumHighColor
- border.width: indicator.partiallyChecked ? 0 : 2 // CheckBoxBorderThemeThickness
- border.color: indicator.control.Universal.baseMediumLowColor
- }
-}
diff --git a/src/quickcontrols2/universal/impl/RadioIndicator.qml b/src/quickcontrols2/universal/impl/RadioIndicator.qml
deleted file mode 100644
index 3cf1bf37..00000000
--- a/src/quickcontrols2/universal/impl/RadioIndicator.qml
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.Universal
-
-Rectangle {
- id: indicator
- implicitWidth: 20
- implicitHeight: 20
- radius: width / 2
- color: "transparent"
- border.width: 2 // RadioButtonBorderThemeThickness
- border.color: control.checked ? "transparent" :
- !control.enabled ? control.Universal.baseLowColor :
- control.down ? control.Universal.baseMediumColor :
- control.hovered ? control.Universal.baseHighColor : control.Universal.baseMediumHighColor
-
- property var control
-
- Rectangle {
- id: checkOuterEllipse
- width: parent.width
- height: parent.height
-
- radius: width / 2
- opacity: indicator.control.checked ? 1 : 0
- color: "transparent"
- border.width: 2 // RadioButtonBorderThemeThickness
- border.color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
- indicator.control.down ? indicator.control.Universal.baseMediumColor : indicator.control.Universal.accent
- }
-
- Rectangle {
- id: checkGlyph
- x: (parent.width - width) / 2
- y: (parent.height - height) / 2
- width: parent.width / 2
- height: parent.height / 2
-
- radius: width / 2
- opacity: indicator.control.checked ? 1 : 0
- color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
- indicator.control.down ? indicator.control.Universal.baseMediumColor :
- indicator.control.hovered ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumHighColor
- }
-}
diff --git a/src/quickcontrols2/universal/impl/SwitchIndicator.qml b/src/quickcontrols2/universal/impl/SwitchIndicator.qml
deleted file mode 100644
index aa455419..00000000
--- a/src/quickcontrols2/universal/impl/SwitchIndicator.qml
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Universal
-
-Item {
- id: indicator
- implicitWidth: 44
- implicitHeight: 20
-
- Rectangle {
- width: parent.width
- height: parent.height
-
- radius: 10
- color: !indicator.control.enabled ? "transparent" :
- indicator.control.pressed ? indicator.control.Universal.baseMediumColor :
- indicator.control.checked ? indicator.control.Universal.accent : "transparent"
- border.color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
- indicator.control.checked && !indicator.control.pressed ? indicator.control.Universal.accent :
- indicator.control.hovered && !indicator.control.checked && !indicator.control.pressed ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumColor
- opacity: indicator.control.hovered && indicator.control.checked && !indicator.control.pressed ? (indicator.control.Universal.theme === Universal.Light ? 0.7 : 0.9) : 1.0
- border.width: 2
- }
-
- property Item control
-
- Rectangle {
- width: 10
- height: 10
- radius: 5
-
- color: !indicator.control.enabled ? indicator.control.Universal.baseLowColor :
- indicator.control.pressed || indicator.control.checked ? indicator.control.Universal.chromeWhiteColor :
- indicator.control.hovered && !indicator.control.checked ? indicator.control.Universal.baseHighColor : indicator.control.Universal.baseMediumHighColor
-
- x: Math.max(5, Math.min(parent.width - width - 5,
- indicator.control.visualPosition * parent.width - (width / 2)))
- y: (parent.height - height) / 2
-
- Behavior on x {
- enabled: !indicator.control.pressed
- SmoothedAnimation { velocity: 200 }
- }
- }
-}
diff --git a/src/quickcontrols2/universal/impl/qquickuniversalbusyindicator.cpp b/src/quickcontrols2/universal/impl/qquickuniversalbusyindicator.cpp
deleted file mode 100644
index 2f0ada49..00000000
--- a/src/quickcontrols2/universal/impl/qquickuniversalbusyindicator.cpp
+++ /dev/null
@@ -1,251 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickuniversalbusyindicator_p.h"
-
-#include <QtCore/qmath.h>
-#include <QtCore/qeasingcurve.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qsgadaptationlayer_p.h>
-#include <QtQuickControls2Impl/private/qquickanimatednode_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static const int PhaseCount = 6;
-static const int Interval = 167;
-static const int TotalDuration = 4052;
-
-class QQuickUniversalBusyIndicatorNode : public QQuickAnimatedNode
-{
-public:
- QQuickUniversalBusyIndicatorNode(QQuickUniversalBusyIndicator *item);
-
- void updateCurrentTime(int time) override;
- void sync(QQuickItem *item) override;
-
-private:
- struct Phase {
- Phase() = default;
- Phase(int d, qreal f, qreal t, QEasingCurve::Type c) : duration(d), from(f), to(t), curve(c) { }
- int duration = 0;
- qreal from = 0;
- qreal to = 0;
- QEasingCurve curve = QEasingCurve::Linear;
- };
-
- Phase m_phases[PhaseCount];
-};
-
-QQuickUniversalBusyIndicatorNode::QQuickUniversalBusyIndicatorNode(QQuickUniversalBusyIndicator *item)
- : QQuickAnimatedNode(item)
-{
- setLoopCount(Infinite);
- setDuration(TotalDuration);
- setCurrentTime(item->elapsed());
-
- m_phases[0] = Phase(433, -110, 10, QEasingCurve::BezierSpline);
- m_phases[1] = Phase(767, 10, 93, QEasingCurve::Linear );
- m_phases[2] = Phase(417, 93, 205, QEasingCurve::BezierSpline);
- m_phases[3] = Phase(400, 205, 357, QEasingCurve::BezierSpline);
- m_phases[4] = Phase(766, 357, 439, QEasingCurve::Linear );
- m_phases[5] = Phase(434, 439, 585, QEasingCurve::BezierSpline);
-
- m_phases[0].curve.addCubicBezierSegment(QPointF(0.02, 0.33), QPointF(0.38, 0.77), QPointF(1.00, 1.00));
- m_phases[2].curve.addCubicBezierSegment(QPointF(0.57, 0.17), QPointF(0.95, 0.75), QPointF(1.00, 1.00));
- m_phases[3].curve.addCubicBezierSegment(QPointF(0.00, 0.19), QPointF(0.07, 0.72), QPointF(1.00, 1.00));
- m_phases[5].curve.addCubicBezierSegment(QPointF(0.00, 0.00), QPointF(0.95, 0.37), QPointF(1.00, 1.00));
-}
-
-void QQuickUniversalBusyIndicatorNode::updateCurrentTime(int time)
-{
- int nodeIndex = 0;
- int count = childCount();
- QSGTransformNode *transformNode = static_cast<QSGTransformNode *>(firstChild());
- while (transformNode) {
- Q_ASSERT(transformNode->type() == QSGNode::TransformNodeType);
-
- QSGOpacityNode *opacityNode = static_cast<QSGOpacityNode *>(transformNode->firstChild());
- Q_ASSERT(opacityNode->type() == QSGNode::OpacityNodeType);
-
- int begin = nodeIndex * Interval;
- int end = TotalDuration - (PhaseCount - nodeIndex - 1) * Interval;
-
- bool visible = time >= begin && time <= end;
- opacityNode->setOpacity(visible ? 1.0 : 0.0);
-
- if (visible) {
- int phaseIndex, remain = time, elapsed = 0;
- for (phaseIndex = 0; phaseIndex < PhaseCount - 1; ++phaseIndex) {
- if (remain <= m_phases[phaseIndex].duration + begin)
- break;
- remain -= m_phases[phaseIndex].duration;
- elapsed += m_phases[phaseIndex].duration;
- }
-
- const Phase &phase = m_phases[phaseIndex];
-
- qreal from = phase.from - nodeIndex * count;
- qreal to = phase.to - nodeIndex * count;
- qreal pos = time - elapsed - begin;
-
- qreal value = phase.curve.valueForProgress(pos / phase.duration);
- qreal rotation = from + (to - from) * value;
-
- QMatrix4x4 matrix;
- matrix.rotate(rotation, 0, 0, 1);
- transformNode->setMatrix(matrix);
- }
-
- transformNode = static_cast<QSGTransformNode *>(transformNode->nextSibling());
- ++nodeIndex;
- }
-}
-
-void QQuickUniversalBusyIndicatorNode::sync(QQuickItem *item)
-{
- QQuickUniversalBusyIndicator *indicator = static_cast<QQuickUniversalBusyIndicator *>(item);
- QQuickItemPrivate *d = QQuickItemPrivate::get(item);
-
- QMatrix4x4 matrix;
- matrix.translate(item->width() / 2, item->height() / 2);
- setMatrix(matrix);
-
- qreal size = qMin(item->width(), item->height());
- qreal diameter = size / 10.0;
- qreal radius = diameter / 2;
- qreal offset = (size - diameter * 2) / M_PI;
- const QRectF rect(offset, offset, diameter, diameter);
-
- int count = indicator->count();
- QSGNode *transformNode = firstChild();
- for (int i = 0; i < count; ++i) {
- if (!transformNode) {
- transformNode = new QSGTransformNode;
- appendChildNode(transformNode);
-
- QSGOpacityNode *opacityNode = new QSGOpacityNode;
- transformNode->appendChildNode(opacityNode);
-
- QSGInternalRectangleNode *rectNode = d->sceneGraphContext()->createInternalRectangleNode();
- rectNode->setAntialiasing(true);
- opacityNode->appendChildNode(rectNode);
- }
-
- QSGNode *opacityNode = transformNode->firstChild();
- Q_ASSERT(opacityNode->type() == QSGNode::OpacityNodeType);
-
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode *>(opacityNode->firstChild());
- Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType);
-
- rectNode->setRect(rect);
- rectNode->setColor(indicator->color());
- rectNode->setRadius(radius);
- rectNode->update();
-
- transformNode = transformNode->nextSibling();
- }
-
- while (transformNode) {
- QSGNode *nextSibling = transformNode->nextSibling();
- delete transformNode;
- transformNode = nextSibling;
- }
-}
-
-QQuickUniversalBusyIndicator::QQuickUniversalBusyIndicator(QQuickItem *parent)
- : QQuickItem(parent)
-{
- setFlag(ItemHasContents);
-}
-
-int QQuickUniversalBusyIndicator::count() const
-{
- return m_count;
-}
-
-void QQuickUniversalBusyIndicator::setCount(int count)
-{
- if (m_count == count)
- return;
-
- m_count = count;
- update();
-}
-
-QColor QQuickUniversalBusyIndicator::color() const
-{
- return m_color;
-}
-
-void QQuickUniversalBusyIndicator::setColor(const QColor &color)
-{
- if (m_color == color)
- return;
-
- m_color = color;
- update();
-}
-
-int QQuickUniversalBusyIndicator::elapsed() const
-{
- return m_elapsed;
-}
-
-void QQuickUniversalBusyIndicator::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- QQuickItem::itemChange(change, data);
- if (change == ItemVisibleHasChanged)
- update();
-}
-
-QSGNode *QQuickUniversalBusyIndicator::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
-{
- QQuickUniversalBusyIndicatorNode *node = static_cast<QQuickUniversalBusyIndicatorNode *>(oldNode);
- if (isVisible() && width() > 0 && height() > 0) {
- if (!node) {
- node = new QQuickUniversalBusyIndicatorNode(this);
- node->start();
- }
- node->sync(this);
- } else {
- m_elapsed = node ? node->currentTime() : 0;
- delete node;
- node = nullptr;
- }
- return node;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/universal/impl/qquickuniversalbusyindicator_p.h b/src/quickcontrols2/universal/impl/qquickuniversalbusyindicator_p.h
deleted file mode 100644
index 6d3ebb84..00000000
--- a/src/quickcontrols2/universal/impl/qquickuniversalbusyindicator_p.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKUNIVERSALBUSYINDICATOR_P_H
-#define QQUICKUNIVERSALBUSYINDICATOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qcolor.h>
-#include <QtQuick/qquickitem.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickUniversalBusyIndicator : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(int count READ count WRITE setCount FINAL)
- Q_PROPERTY(QColor color READ color WRITE setColor FINAL)
- QML_NAMED_ELEMENT(BusyIndicatorImpl)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickUniversalBusyIndicator(QQuickItem *parent = nullptr);
-
- int count() const;
- void setCount(int count);
-
- QColor color() const;
- void setColor(const QColor &color);
-
- int elapsed() const;
-
-protected:
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override;
-
-private:
- int m_count = 5;
- int m_elapsed = 0;
- QColor m_color = Qt::black;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickUniversalBusyIndicator)
-
-#endif // QQUICKUNIVERSALBUSYINDICATOR_P_H
diff --git a/src/quickcontrols2/universal/impl/qquickuniversalfocusrectangle.cpp b/src/quickcontrols2/universal/impl/qquickuniversalfocusrectangle.cpp
deleted file mode 100644
index 51508c6f..00000000
--- a/src/quickcontrols2/universal/impl/qquickuniversalfocusrectangle.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickuniversalfocusrectangle_p.h"
-
-#include <QtGui/qpixmap.h>
-#include <QtGui/qpainter.h>
-#include <QtGui/qpixmapcache.h>
-#include <QtQuick/private/qquickitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickUniversalFocusRectangle::QQuickUniversalFocusRectangle(QQuickItem *parent)
- : QQuickPaintedItem(parent)
-{
- QQuickItemPrivate::get(this)->setTransparentForPositioner(true);
-}
-
-void QQuickUniversalFocusRectangle::paint(QPainter *painter)
-{
- if (!isVisible() || width() <= 0 || height() <= 0)
- return;
-
- QRect bounds = boundingRect().toAlignedRect();
- const int boundsWidth = bounds.width();
- const int boundsHeight = bounds.width();
- const QString key = QStringLiteral("qquickuniversalfocusrectangle_%1_%2").arg(QString::number(boundsWidth), QString::number(boundsHeight));
-
- QPixmap pixmap(boundsWidth, boundsHeight);
- if (!QPixmapCache::find(key, &pixmap)) {
- bounds.adjust(0, 0, -1, -1);
- pixmap.fill(Qt::transparent);
- QPainter p(&pixmap);
-
- QPen pen;
- pen.setWidth(1);
- pen.setColor(Qt::white);
- p.setPen(pen);
- p.drawRect(bounds);
-
- pen.setColor(Qt::black);
- pen.setDashPattern(QList<qreal>(2, 1));
- p.setPen(pen);
- p.drawRect(bounds);
-
- QPixmapCache::insert(key, pixmap);
- }
- painter->drawPixmap(0, 0, pixmap);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/universal/impl/qquickuniversalfocusrectangle_p.h b/src/quickcontrols2/universal/impl/qquickuniversalfocusrectangle_p.h
deleted file mode 100644
index f309b512..00000000
--- a/src/quickcontrols2/universal/impl/qquickuniversalfocusrectangle_p.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKUNIVERSALFOCUSRECTANGLE_P_H
-#define QQUICKUNIVERSALFOCUSRECTANGLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/qquickpainteditem.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickUniversalFocusRectangle : public QQuickPaintedItem
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(FocusRectangle)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- QQuickUniversalFocusRectangle(QQuickItem *parent = nullptr);
-
- void paint(QPainter *painter) override;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKUNIVERSALFOCUSRECTANGLE_P_H
diff --git a/src/quickcontrols2/universal/impl/qquickuniversalprogressbar.cpp b/src/quickcontrols2/universal/impl/qquickuniversalprogressbar.cpp
deleted file mode 100644
index 8f907b75..00000000
--- a/src/quickcontrols2/universal/impl/qquickuniversalprogressbar.cpp
+++ /dev/null
@@ -1,338 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickuniversalprogressbar_p.h"
-
-#include <QtCore/qmath.h>
-#include <QtCore/qeasingcurve.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qsgadaptationlayer_p.h>
-#include <QtQuick/qsgrectanglenode.h>
-#include <QtQuickControls2Impl/private/qquickanimatednode_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static const int PhaseCount = 4;
-static const int EllipseCount = 5;
-static const int Interval = 167;
-static const int TotalDuration = 3917;
-static const int VisibleDuration = 3000;
-static const qreal EllipseDiameter = 4;
-static const qreal EllipseOffset = 4;
-static const qreal ContainerAnimationStartPosition = -34; // absolute
-static const qreal ContainerAnimationEndPosition = 0.435222; // relative
-static const qreal EllipseAnimationWellPosition = 0.333333333333333; // relative
-static const qreal EllipseAnimationEndPosition = 0.666666666666667; // relative
-
-class QQuickUniversalProgressBarNode : public QQuickAnimatedNode
-{
-public:
- QQuickUniversalProgressBarNode(QQuickUniversalProgressBar *item);
-
- void updateCurrentTime(int time) override;
- void sync(QQuickItem *item) override;
-
-private:
- struct Phase {
- Phase() = default;
- Phase(int d, qreal f, qreal t) : duration(d), from(f), to(t) { }
- int duration = 0;
- qreal from = 0;
- qreal to = 0;
- };
-
- bool m_indeterminate = false;
- Phase m_borderPhases[PhaseCount];
- Phase m_ellipsePhases[PhaseCount];
-};
-
-QQuickUniversalProgressBarNode::QQuickUniversalProgressBarNode(QQuickUniversalProgressBar *item)
- : QQuickAnimatedNode(item)
-{
- setLoopCount(Infinite);
- setDuration(TotalDuration);
-
- m_borderPhases[0] = Phase( 500, -50, 0);
- m_borderPhases[1] = Phase(1500, 0, 0);
- m_borderPhases[2] = Phase(1000, 0, 100);
- m_borderPhases[3] = Phase( 917, 100, 100);
-
- m_ellipsePhases[0] = Phase(1000, 0, EllipseAnimationWellPosition);
- m_ellipsePhases[1] = Phase(1000, EllipseAnimationWellPosition, EllipseAnimationWellPosition);
- m_ellipsePhases[2] = Phase(1000, EllipseAnimationWellPosition, EllipseAnimationEndPosition);
- m_ellipsePhases[3] = Phase(1000, EllipseAnimationWellPosition, EllipseAnimationEndPosition);
-}
-
-void QQuickUniversalProgressBarNode::updateCurrentTime(int time)
-{
- QSGRectangleNode *geometryNode = static_cast<QSGRectangleNode *>(firstChild());
- Q_ASSERT(!geometryNode || geometryNode->type() == QSGNode::GeometryNodeType);
- if (!geometryNode)
- return;
-
- QSGTransformNode *gridNode = static_cast<QSGTransformNode *>(geometryNode->firstChild());
- Q_ASSERT(!gridNode || gridNode->type() == QSGNode::TransformNodeType);
- if (!gridNode)
- return;
-
- qreal width = geometryNode->rect().width();
- {
- qreal from = ContainerAnimationStartPosition;
- qreal to = from + ContainerAnimationEndPosition * width;
- qreal progress = static_cast<qreal>(time) / TotalDuration;
- qreal dx = from + (to - from) * progress;
-
- QMatrix4x4 matrix;
- matrix.translate(dx, 0);
- gridNode->setMatrix(matrix);
- }
-
- int nodeIndex = 0;
- QSGTransformNode *borderNode = static_cast<QSGTransformNode *>(gridNode->firstChild());
- while (borderNode) {
- Q_ASSERT(borderNode->type() == QSGNode::TransformNodeType);
-
- QSGTransformNode *ellipseNode = static_cast<QSGTransformNode *>(borderNode->firstChild());
- Q_ASSERT(ellipseNode->type() == QSGNode::TransformNodeType);
-
- QSGOpacityNode *opacityNode = static_cast<QSGOpacityNode *>(ellipseNode->firstChild());
- Q_ASSERT(opacityNode->type() == QSGNode::OpacityNodeType);
-
- int begin = nodeIndex * Interval;
- int end = VisibleDuration + nodeIndex * Interval;
-
- bool visible = time >= begin && time <= end;
- opacityNode->setOpacity(visible ? 1.0 : 0.0);
-
- if (visible) {
- {
- int phaseIndex, remain = time, elapsed = 0;
- for (phaseIndex = 0; phaseIndex < PhaseCount - 1; ++phaseIndex) {
- if (remain <= m_borderPhases[phaseIndex].duration + begin)
- break;
- remain -= m_borderPhases[phaseIndex].duration;
- elapsed += m_borderPhases[phaseIndex].duration;
- }
-
- const Phase &phase = m_borderPhases[phaseIndex];
-
- qreal pos = time - elapsed - begin;
- qreal progress = pos / phase.duration;
- qreal dx = phase.from + (phase.to - phase.from) * progress;
-
- QMatrix4x4 matrix;
- matrix.translate(dx, 0);
- borderNode->setMatrix(matrix);
- }
-
- {
- QEasingCurve curve(QEasingCurve::BezierSpline);
- curve.addCubicBezierSegment(QPointF(0.4, 0.0), QPointF(0.6, 1.0), QPointF(1.0, 1.0));
-
- int phaseIndex, remain = time, elapsed = 0;
- for (phaseIndex = 0; phaseIndex < PhaseCount - 1; ++phaseIndex) {
- if (remain <= m_ellipsePhases[phaseIndex].duration + begin)
- break;
- remain -= m_ellipsePhases[phaseIndex].duration;
- elapsed += m_ellipsePhases[phaseIndex].duration;
- }
-
- const Phase &phase = m_ellipsePhases[phaseIndex];
-
- qreal from = phase.from * width;
- qreal to = phase.to * width;
- qreal pos = time - elapsed - begin;
- qreal progress = curve.valueForProgress(pos / phase.duration);
- qreal dx = from + (to - from) * progress;
-
- QMatrix4x4 matrix;
- matrix.translate(dx, 0);
- ellipseNode->setMatrix(matrix);
- }
- }
-
- borderNode = static_cast<QSGTransformNode *>(borderNode->nextSibling());
- ++nodeIndex;
- }
-}
-
-void QQuickUniversalProgressBarNode::sync(QQuickItem *item)
-{
- QQuickUniversalProgressBar *bar = static_cast<QQuickUniversalProgressBar *>(item);
- if (m_indeterminate != bar->isIndeterminate()) {
- m_indeterminate = bar->isIndeterminate();
- if (m_indeterminate)
- start();
- else
- stop();
- }
-
- QQuickItemPrivate *d = QQuickItemPrivate::get(item);
-
- QRectF bounds = item->boundingRect();
- bounds.setHeight(item->implicitHeight());
- bounds.moveTop((item->height() - bounds.height()) / 2.0);
- if (!m_indeterminate)
- bounds.setWidth(bar->progress() * bounds.width());
-
- QSGRectangleNode *geometryNode = static_cast<QSGRectangleNode *>(firstChild());
- if (!geometryNode) {
- geometryNode = item->window()->createRectangleNode();
- appendChildNode(geometryNode);
- }
- geometryNode->setRect(bounds);
- geometryNode->setColor(m_indeterminate ? Qt::transparent : bar->color());
-
- if (!m_indeterminate) {
- while (QSGNode *node = geometryNode->firstChild())
- delete node;
- return;
- }
-
- QSGTransformNode *gridNode = static_cast<QSGTransformNode *>(geometryNode->firstChild());
- if (!gridNode) {
- gridNode = new QSGTransformNode;
- geometryNode->appendChildNode(gridNode);
- }
- Q_ASSERT(gridNode->type() == QSGNode::TransformNodeType);
-
- QSGNode *borderNode = gridNode->firstChild();
- for (int i = 0; i < EllipseCount; ++i) {
- if (!borderNode) {
- borderNode = new QSGTransformNode;
- gridNode->appendChildNode(borderNode);
-
- QSGTransformNode *ellipseNode = new QSGTransformNode;
- borderNode->appendChildNode(ellipseNode);
-
- QSGOpacityNode *opacityNode = new QSGOpacityNode;
- ellipseNode->appendChildNode(opacityNode);
-
- QSGInternalRectangleNode *rectNode = d->sceneGraphContext()->createInternalRectangleNode();
- rectNode->setAntialiasing(true);
- rectNode->setRadius(EllipseDiameter / 2);
- opacityNode->appendChildNode(rectNode);
- }
- Q_ASSERT(borderNode->type() == QSGNode::TransformNodeType);
-
- QSGNode *ellipseNode = borderNode->firstChild();
- Q_ASSERT(ellipseNode->type() == QSGNode::TransformNodeType);
-
- QSGNode *opacityNode = ellipseNode->firstChild();
- Q_ASSERT(opacityNode->type() == QSGNode::OpacityNodeType);
-
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode *>(opacityNode->firstChild());
- Q_ASSERT(rectNode->type() == QSGNode::GeometryNodeType);
-
- rectNode->setRect(QRectF((EllipseCount - i - 1) * (EllipseDiameter + EllipseOffset), (item->height() - EllipseDiameter) / 2, EllipseDiameter, EllipseDiameter));
- rectNode->setColor(bar->color());
- rectNode->update();
-
- borderNode = borderNode->nextSibling();
- }
-}
-
-QQuickUniversalProgressBar::QQuickUniversalProgressBar(QQuickItem *parent)
- : QQuickItem(parent)
-{
- setFlag(ItemHasContents);
-}
-
-QColor QQuickUniversalProgressBar::color() const
-{
- return m_color;
-}
-
-void QQuickUniversalProgressBar::setColor(const QColor &color)
-{
- if (m_color == color)
- return;
-
- m_color = color;
- update();
-}
-
-qreal QQuickUniversalProgressBar::progress() const
-{
- return m_progress;
-}
-
-void QQuickUniversalProgressBar::setProgress(qreal progress)
-{
- if (progress == m_progress)
- return;
-
- m_progress = progress;
- update();
-}
-
-bool QQuickUniversalProgressBar::isIndeterminate() const
-{
- return m_indeterminate;
-}
-
-void QQuickUniversalProgressBar::setIndeterminate(bool indeterminate)
-{
- if (indeterminate == m_indeterminate)
- return;
-
- m_indeterminate = indeterminate;
- setClip(m_indeterminate);
- update();
-}
-
-void QQuickUniversalProgressBar::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- QQuickItem::itemChange(change, data);
- if (change == ItemVisibleHasChanged)
- update();
-}
-
-QSGNode *QQuickUniversalProgressBar::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *)
-{
- QQuickUniversalProgressBarNode *node = static_cast<QQuickUniversalProgressBarNode *>(oldNode);
- if (isVisible() && width() > 0 && height() > 0) {
- if (!node)
- node = new QQuickUniversalProgressBarNode(this);
- node->sync(this);
- } else {
- delete node;
- node = nullptr;
- }
- return node;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/universal/impl/qquickuniversalprogressbar_p.h b/src/quickcontrols2/universal/impl/qquickuniversalprogressbar_p.h
deleted file mode 100644
index 31cb4a32..00000000
--- a/src/quickcontrols2/universal/impl/qquickuniversalprogressbar_p.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKUNIVERSALPROGRESSBAR_P_H
-#define QQUICKUNIVERSALPROGRESSBAR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qcolor.h>
-#include <QtQuick/qquickitem.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickUniversalProgressBar : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(QColor color READ color WRITE setColor FINAL)
- Q_PROPERTY(qreal progress READ progress WRITE setProgress FINAL)
- Q_PROPERTY(bool indeterminate READ isIndeterminate WRITE setIndeterminate FINAL)
- QML_NAMED_ELEMENT(ProgressBarImpl)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickUniversalProgressBar(QQuickItem *parent = nullptr);
-
- QColor color() const;
- void setColor(const QColor &color);
-
- qreal progress() const;
- void setProgress(qreal progress);
-
- bool isIndeterminate() const;
- void setIndeterminate(bool indeterminate);
-
-protected:
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override;
-
-private:
- QColor m_color = Qt::black;
- qreal m_progress = 0.0;
- bool m_indeterminate = false;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickUniversalProgressBar)
-
-#endif // QQUICKUNIVERSALPROGRESSBAR_P_H
diff --git a/src/quickcontrols2/universal/qquickuniversalstyle.cpp b/src/quickcontrols2/universal/qquickuniversalstyle.cpp
deleted file mode 100644
index 605cfce2..00000000
--- a/src/quickcontrols2/universal/qquickuniversalstyle.cpp
+++ /dev/null
@@ -1,618 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickuniversalstyle_p.h"
-
-#include <QtCore/qdebug.h>
-#include <QtCore/qsettings.h>
-#include <QtQml/qqmlinfo.h>
-#include <QtQuickControls2/private/qquickstyle_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static QRgb qquickuniversal_light_color(QQuickUniversalStyle::SystemColor role)
-{
- static const QRgb colors[] = {
- 0xFFFFFFFF, // SystemAltHighColor
- 0x33FFFFFF, // SystemAltLowColor
- 0x99FFFFFF, // SystemAltMediumColor
- 0xCCFFFFFF, // SystemAltMediumHighColor
- 0x66FFFFFF, // SystemAltMediumLowColor
- 0xFF000000, // SystemBaseHighColor
- 0x33000000, // SystemBaseLowColor
- 0x99000000, // SystemBaseMediumColor
- 0xCC000000, // SystemBaseMediumHighColor
- 0x66000000, // SystemBaseMediumLowColor
- 0xFF171717, // SystemChromeAltLowColor
- 0xFF000000, // SystemChromeBlackHighColor
- 0x33000000, // SystemChromeBlackLowColor
- 0x66000000, // SystemChromeBlackMediumLowColor
- 0xCC000000, // SystemChromeBlackMediumColor
- 0xFFCCCCCC, // SystemChromeDisabledHighColor
- 0xFF7A7A7A, // SystemChromeDisabledLowColor
- 0xFFCCCCCC, // SystemChromeHighColor
- 0xFFF2F2F2, // SystemChromeLowColor
- 0xFFE6E6E6, // SystemChromeMediumColor
- 0xFFF2F2F2, // SystemChromeMediumLowColor
- 0xFFFFFFFF, // SystemChromeWhiteColor
- 0x19000000, // SystemListLowColor
- 0x33000000 // SystemListMediumColor
- };
- return colors[role];
-}
-
-static QRgb qquickuniversal_dark_color(QQuickUniversalStyle::SystemColor role)
-{
- static const QRgb colors[] = {
- 0xFF000000, // SystemAltHighColor
- 0x33000000, // SystemAltLowColor
- 0x99000000, // SystemAltMediumColor
- 0xCC000000, // SystemAltMediumHighColor
- 0x66000000, // SystemAltMediumLowColor
- 0xFFFFFFFF, // SystemBaseHighColor
- 0x33FFFFFF, // SystemBaseLowColor
- 0x99FFFFFF, // SystemBaseMediumColor
- 0xCCFFFFFF, // SystemBaseMediumHighColor
- 0x66FFFFFF, // SystemBaseMediumLowColor
- 0xFFF2F2F2, // SystemChromeAltLowColor
- 0xFF000000, // SystemChromeBlackHighColor
- 0x33000000, // SystemChromeBlackLowColor
- 0x66000000, // SystemChromeBlackMediumLowColor
- 0xCC000000, // SystemChromeBlackMediumColor
- 0xFF333333, // SystemChromeDisabledHighColor
- 0xFF858585, // SystemChromeDisabledLowColor
- 0xFF767676, // SystemChromeHighColor
- 0xFF171717, // SystemChromeLowColor
- 0xFF1F1F1F, // SystemChromeMediumColor
- 0xFF2B2B2B, // SystemChromeMediumLowColor
- 0xFFFFFFFF, // SystemChromeWhiteColor
- 0x19FFFFFF, // SystemListLowColor
- 0x33FFFFFF // SystemListMediumColor
- };
- return colors[role];
-}
-
-static QRgb qquickuniversal_accent_color(QQuickUniversalStyle::Color accent)
-{
- static const QRgb colors[] = {
- 0xFFA4C400, // Lime
- 0xFF60A917, // Green
- 0xFF008A00, // Emerald
- 0xFF00ABA9, // Teal
- 0xFF1BA1E2, // Cyan
- 0xFF3E65FF, // Cobalt
- 0xFF6A00FF, // Indigo
- 0xFFAA00FF, // Violet
- 0xFFF472D0, // Pink
- 0xFFD80073, // Magenta
- 0xFFA20025, // Crimson
- 0xFFE51400, // Red
- 0xFFFA6800, // Orange
- 0xFFF0A30A, // Amber
- 0xFFE3C800, // Yellow
- 0xFF825A2C, // Brown
- 0xFF6D8764, // Olive
- 0xFF647687, // Steel
- 0xFF76608A, // Mauve
- 0xFF87794E // Taupe
- };
- return colors[accent];
-}
-
-static QQuickUniversalStyle::Theme qquickuniversal_effective_theme(QQuickUniversalStyle::Theme theme)
-{
- if (theme == QQuickUniversalStyle::System)
- theme = QQuickStylePrivate::isDarkSystemTheme() ? QQuickUniversalStyle::Dark : QQuickUniversalStyle::Light;
- return theme;
-}
-
-// If no value was inherited from a parent or explicitly set, the "global" values are used.
-// The initial, default values of the globals are hard-coded here, but the environment
-// variables and .conf file override them if specified.
-static QQuickUniversalStyle::Theme GlobalTheme = QQuickUniversalStyle::Light;
-static QRgb GlobalAccent = qquickuniversal_accent_color(QQuickUniversalStyle::Cobalt);
-static QRgb GlobalForeground = qquickuniversal_light_color(QQuickUniversalStyle::BaseHigh);
-static QRgb GlobalBackground = qquickuniversal_light_color(QQuickUniversalStyle::AltHigh);
-// These represent whether a global foreground/background was set.
-// Each style's m_hasForeground/m_hasBackground are initialized to these values.
-static bool HasGlobalForeground = false;
-static bool HasGlobalBackground = false;
-
-QQuickUniversalStyle::QQuickUniversalStyle(QObject *parent) : QQuickAttachedObject(parent),
- m_hasForeground(HasGlobalForeground), m_hasBackground(HasGlobalBackground), m_theme(GlobalTheme),
- m_accent(GlobalAccent), m_foreground(GlobalForeground), m_background(GlobalBackground)
-{
- init();
-}
-
-QQuickUniversalStyle *QQuickUniversalStyle::qmlAttachedProperties(QObject *object)
-{
- return new QQuickUniversalStyle(object);
-}
-
-QQuickUniversalStyle::Theme QQuickUniversalStyle::theme() const
-{
- return m_theme;
-}
-
-void QQuickUniversalStyle::setTheme(Theme theme)
-{
- theme = qquickuniversal_effective_theme(theme);
- m_explicitTheme = true;
- if (m_theme == theme)
- return;
-
- m_theme = theme;
- propagateTheme();
- emit themeChanged();
- emit paletteChanged();
- emit foregroundChanged();
- emit backgroundChanged();
-}
-
-void QQuickUniversalStyle::inheritTheme(Theme theme)
-{
- if (m_explicitTheme || m_theme == theme)
- return;
-
- m_theme = theme;
- propagateTheme();
- emit themeChanged();
- emit paletteChanged();
- emit foregroundChanged();
- emit backgroundChanged();
-}
-
-void QQuickUniversalStyle::propagateTheme()
-{
- const auto styles = attachedChildren();
- for (QQuickAttachedObject *child : styles) {
- QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(child);
- if (universal)
- universal->inheritTheme(m_theme);
- }
-}
-
-void QQuickUniversalStyle::resetTheme()
-{
- if (!m_explicitTheme)
- return;
-
- m_explicitTheme = false;
- QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(attachedParent());
- inheritTheme(universal ? universal->theme() : GlobalTheme);
-}
-
-QVariant QQuickUniversalStyle::accent() const
-{
- return QColor::fromRgba(m_accent);
-}
-
-void QQuickUniversalStyle::setAccent(const QVariant &var)
-{
- QRgb accent = 0;
- if (!variantToRgba(var, "accent", &accent))
- return;
-
- m_explicitAccent = true;
- if (m_accent == accent)
- return;
-
- m_accent = accent;
- propagateAccent();
- emit accentChanged();
-}
-
-void QQuickUniversalStyle::inheritAccent(QRgb accent)
-{
- if (m_explicitAccent || m_accent == accent)
- return;
-
- m_accent = accent;
- propagateAccent();
- emit accentChanged();
-}
-
-void QQuickUniversalStyle::propagateAccent()
-{
- const auto styles = attachedChildren();
- for (QQuickAttachedObject *child : styles) {
- QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(child);
- if (universal)
- universal->inheritAccent(m_accent);
- }
-}
-
-void QQuickUniversalStyle::resetAccent()
-{
- if (!m_explicitAccent)
- return;
-
- m_explicitAccent = false;
- QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(attachedParent());
- inheritAccent(universal ? universal->m_accent : GlobalAccent);
-}
-
-QVariant QQuickUniversalStyle::foreground() const
-{
- if (m_hasForeground)
- return QColor::fromRgba(m_foreground);
- return baseHighColor();
-}
-
-void QQuickUniversalStyle::setForeground(const QVariant &var)
-{
- QRgb foreground = 0;
- if (!variantToRgba(var, "foreground", &foreground))
- return;
-
- m_hasForeground = true;
- m_explicitForeground = true;
- if (m_foreground == foreground)
- return;
-
- m_foreground = foreground;
- propagateForeground();
- emit foregroundChanged();
-}
-
-void QQuickUniversalStyle::inheritForeground(QRgb foreground, bool has)
-{
- if (m_explicitForeground || m_foreground == foreground)
- return;
-
- m_hasForeground = has;
- m_foreground = foreground;
- propagateForeground();
- emit foregroundChanged();
-}
-
-void QQuickUniversalStyle::propagateForeground()
-{
- const auto styles = attachedChildren();
- for (QQuickAttachedObject *child : styles) {
- QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(child);
- if (universal)
- universal->inheritForeground(m_foreground, m_hasForeground);
- }
-}
-
-void QQuickUniversalStyle::resetForeground()
-{
- if (!m_explicitForeground)
- return;
-
- m_hasForeground = false;
- m_explicitForeground = false;
- QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(attachedParent());
- inheritForeground(universal ? universal->m_foreground : GlobalForeground, universal ? universal->m_hasForeground : false);
-}
-
-QVariant QQuickUniversalStyle::background() const
-{
- if (m_hasBackground)
- return QColor::fromRgba(m_background);
- return altHighColor();
-}
-
-void QQuickUniversalStyle::setBackground(const QVariant &var)
-{
- QRgb background = 0;
- if (!variantToRgba(var, "background", &background))
- return;
-
- m_hasBackground = true;
- m_explicitBackground = true;
- if (m_background == background)
- return;
-
- m_background = background;
- propagateBackground();
- emit backgroundChanged();
-}
-
-void QQuickUniversalStyle::inheritBackground(QRgb background, bool has)
-{
- if (m_explicitBackground || m_background == background)
- return;
-
- m_hasBackground = has;
- m_background = background;
- propagateBackground();
- emit backgroundChanged();
-}
-
-void QQuickUniversalStyle::propagateBackground()
-{
- const auto styles = attachedChildren();
- for (QQuickAttachedObject *child : styles) {
- QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(child);
- if (universal)
- universal->inheritBackground(m_background, m_hasBackground);
- }
-}
-
-void QQuickUniversalStyle::resetBackground()
-{
- if (!m_explicitBackground)
- return;
-
- m_hasBackground = false;
- m_explicitBackground = false;
- QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(attachedParent());
- inheritBackground(universal ? universal->m_background : GlobalBackground, universal ? universal->m_hasBackground : false);
-}
-
-QColor QQuickUniversalStyle::color(Color color) const
-{
- return qquickuniversal_accent_color(color);
-}
-
-QColor QQuickUniversalStyle::altHighColor() const
-{
- return systemColor(AltHigh);
-}
-
-QColor QQuickUniversalStyle::altLowColor() const
-{
- return systemColor(AltLow);
-}
-
-QColor QQuickUniversalStyle::altMediumColor() const
-{
- return systemColor(AltMedium);
-}
-
-QColor QQuickUniversalStyle::altMediumHighColor() const
-{
- return systemColor(AltMediumHigh);
-}
-
-QColor QQuickUniversalStyle::altMediumLowColor() const
-{
- return systemColor(AltMediumLow);
-}
-
-QColor QQuickUniversalStyle::baseHighColor() const
-{
- return systemColor(BaseHigh);
-}
-
-QColor QQuickUniversalStyle::baseLowColor() const
-{
- return systemColor(BaseLow);
-}
-
-QColor QQuickUniversalStyle::baseMediumColor() const
-{
- return systemColor(BaseMedium);
-}
-
-QColor QQuickUniversalStyle::baseMediumHighColor() const
-{
- return systemColor(BaseMediumHigh);
-}
-
-QColor QQuickUniversalStyle::baseMediumLowColor() const
-{
- return systemColor(BaseMediumLow);
-}
-
-QColor QQuickUniversalStyle::chromeAltLowColor() const
-{
- return systemColor(ChromeAltLow);
-}
-
-QColor QQuickUniversalStyle::chromeBlackHighColor() const
-{
- return systemColor(ChromeBlackHigh);
-}
-
-QColor QQuickUniversalStyle::chromeBlackLowColor() const
-{
- return systemColor(ChromeBlackLow);
-}
-
-QColor QQuickUniversalStyle::chromeBlackMediumLowColor() const
-{
- return systemColor(ChromeBlackMediumLow);
-}
-
-QColor QQuickUniversalStyle::chromeBlackMediumColor() const
-{
- return systemColor(ChromeBlackMedium);
-}
-
-QColor QQuickUniversalStyle::chromeDisabledHighColor() const
-{
- return systemColor(ChromeDisabledHigh);
-}
-
-QColor QQuickUniversalStyle::chromeDisabledLowColor() const
-{
- return systemColor(ChromeDisabledLow);
-}
-
-QColor QQuickUniversalStyle::chromeHighColor() const
-{
- return systemColor(ChromeHigh);
-}
-
-QColor QQuickUniversalStyle::chromeLowColor() const
-{
- return systemColor(ChromeLow);
-}
-
-QColor QQuickUniversalStyle::chromeMediumColor() const
-{
- return systemColor(ChromeMedium);
-}
-
-QColor QQuickUniversalStyle::chromeMediumLowColor() const
-{
- return systemColor(ChromeMediumLow);
-}
-
-QColor QQuickUniversalStyle::chromeWhiteColor() const
-{
- return systemColor(ChromeWhite);
-}
-
-QColor QQuickUniversalStyle::listLowColor() const
-{
- return systemColor(ListLow);
-}
-
-QColor QQuickUniversalStyle::listMediumColor() const
-{
- return systemColor(ListMedium);
-}
-
-QColor QQuickUniversalStyle::systemColor(SystemColor role) const
-{
- return QColor::fromRgba(m_theme == QQuickUniversalStyle::Dark ? qquickuniversal_dark_color(role) : qquickuniversal_light_color(role));
-}
-
-void QQuickUniversalStyle::attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent)
-{
- Q_UNUSED(oldParent);
- QQuickUniversalStyle *universal = qobject_cast<QQuickUniversalStyle *>(newParent);
- if (universal) {
- inheritTheme(universal->theme());
- inheritAccent(universal->m_accent);
- inheritForeground(universal->m_foreground, universal->m_hasForeground);
- inheritBackground(universal->m_background, universal->m_hasBackground);
- }
-}
-
-template <typename Enum>
-static Enum toEnumValue(const QByteArray &value, bool *ok)
-{
- QMetaEnum enumeration = QMetaEnum::fromType<Enum>();
- return static_cast<Enum>(enumeration.keyToValue(value, ok));
-}
-
-static QByteArray resolveSetting(const QByteArray &env, const QSharedPointer<QSettings> &settings, const QString &name)
-{
- QByteArray value = qgetenv(env);
-#if QT_CONFIG(settings)
- if (value.isNull() && !settings.isNull())
- value = settings->value(name).toByteArray();
-#endif
- return value;
-}
-
-void QQuickUniversalStyle::initGlobals()
-{
- QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(QStringLiteral("Universal"));
-
- bool ok = false;
- QByteArray themeValue = resolveSetting("QT_QUICK_CONTROLS_UNIVERSAL_THEME", settings, QStringLiteral("Theme"));
- Theme themeEnum = toEnumValue<Theme>(themeValue, &ok);
- if (ok)
- GlobalTheme = qquickuniversal_effective_theme(themeEnum);
- else if (!themeValue.isEmpty())
- qWarning().nospace().noquote() << "Universal: unknown theme value: " << themeValue;
-
- QByteArray accentValue = resolveSetting("QT_QUICK_CONTROLS_UNIVERSAL_ACCENT", settings, QStringLiteral("Accent"));
- Color accentEnum = toEnumValue<Color>(accentValue, &ok);
- if (ok) {
- GlobalAccent = qquickuniversal_accent_color(accentEnum);
- } else if (!accentValue.isEmpty()) {
- QColor color(accentValue.constData());
- if (color.isValid())
- GlobalAccent = color.rgba();
- else
- qWarning().nospace().noquote() << "Universal: unknown accent value: " << accentValue;
- }
-
- QByteArray foregroundValue = resolveSetting("QT_QUICK_CONTROLS_UNIVERSAL_FOREGROUND", settings, QStringLiteral("Foreground"));
- Color foregroundEnum = toEnumValue<Color>(foregroundValue, &ok);
- if (ok) {
- GlobalForeground = qquickuniversal_accent_color(foregroundEnum);
- HasGlobalForeground = true;
- } else if (!foregroundValue.isEmpty()) {
- QColor color(foregroundValue.constData());
- if (color.isValid()) {
- GlobalForeground = color.rgba();
- HasGlobalForeground = true;
- } else {
- qWarning().nospace().noquote() << "Universal: unknown foreground value: " << foregroundValue;
- }
- }
-
- QByteArray backgroundValue = resolveSetting("QT_QUICK_CONTROLS_UNIVERSAL_BACKGROUND", settings, QStringLiteral("Background"));
- Color backgroundEnum = toEnumValue<Color>(backgroundValue, &ok);
- if (ok) {
- GlobalBackground = qquickuniversal_accent_color(backgroundEnum);
- HasGlobalBackground = true;
- } else if (!backgroundValue.isEmpty()) {
- QColor color(backgroundValue.constData());
- if (color.isValid()) {
- GlobalBackground = color.rgba();
- HasGlobalBackground = true;
- } else {
- qWarning().nospace().noquote() << "Universal: unknown background value: " << backgroundValue;
- }
- }
-}
-
-bool QQuickUniversalStyle::variantToRgba(const QVariant &var, const char *name, QRgb *rgba) const
-{
- if (var.metaType().id() == QMetaType::Int) {
- int val = var.toInt();
- if (val < Lime || val > Taupe) {
- qmlWarning(parent()) << "unknown Universal." << name << " value: " << val;
- return false;
- }
- *rgba = qquickuniversal_accent_color(static_cast<Color>(val));
- } else {
- int val = QMetaEnum::fromType<Color>().keyToValue(var.toByteArray());
- if (val != -1) {
- *rgba = qquickuniversal_accent_color(static_cast<Color>(val));
- } else {
- QColor color(var.toString());
- if (!color.isValid()) {
- qmlWarning(parent()) << "unknown Universal." << name << " value: " << var.toString();
- return false;
- }
- *rgba = color.rgba();
- }
- }
- return true;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/universal/qquickuniversalstyle_p.h b/src/quickcontrols2/universal/qquickuniversalstyle_p.h
deleted file mode 100644
index 50b07071..00000000
--- a/src/quickcontrols2/universal/qquickuniversalstyle_p.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKUNIVERSALSTYLE_P_H
-#define QQUICKUNIVERSALSTYLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qcolor.h>
-#include <QtQuickControls2Impl/private/qquickattachedobject_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickUniversalStylePrivate;
-
-class QQuickUniversalStyle : public QQuickAttachedObject
-{
- Q_OBJECT
- Q_PROPERTY(Theme theme READ theme WRITE setTheme RESET resetTheme NOTIFY themeChanged FINAL)
- Q_PROPERTY(QVariant accent READ accent WRITE setAccent RESET resetAccent NOTIFY accentChanged FINAL)
- Q_PROPERTY(QVariant foreground READ foreground WRITE setForeground RESET resetForeground NOTIFY foregroundChanged FINAL)
- Q_PROPERTY(QVariant background READ background WRITE setBackground RESET resetBackground NOTIFY backgroundChanged FINAL)
-
- Q_PROPERTY(QColor altHighColor READ altHighColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor altLowColor READ altLowColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor altMediumColor READ altMediumColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor altMediumHighColor READ altMediumHighColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor altMediumLowColor READ altMediumLowColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor baseHighColor READ baseHighColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor baseLowColor READ baseLowColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor baseMediumColor READ baseMediumColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor baseMediumHighColor READ baseMediumHighColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor baseMediumLowColor READ baseMediumLowColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeAltLowColor READ chromeAltLowColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeBlackHighColor READ chromeBlackHighColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeBlackLowColor READ chromeBlackLowColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeBlackMediumLowColor READ chromeBlackMediumLowColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeBlackMediumColor READ chromeBlackMediumColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeDisabledHighColor READ chromeDisabledHighColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeDisabledLowColor READ chromeDisabledLowColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeHighColor READ chromeHighColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeLowColor READ chromeLowColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeMediumColor READ chromeMediumColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeMediumLowColor READ chromeMediumLowColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor chromeWhiteColor READ chromeWhiteColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor listLowColor READ listLowColor NOTIFY paletteChanged FINAL)
- Q_PROPERTY(QColor listMediumColor READ listMediumColor NOTIFY paletteChanged FINAL)
-
- QML_NAMED_ELEMENT(Universal)
- QML_ATTACHED(QQuickUniversalStyle)
- QML_UNCREATABLE("")
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickUniversalStyle(QObject *parent = nullptr);
-
- static QQuickUniversalStyle *qmlAttachedProperties(QObject *object);
-
- enum Theme { Light, Dark, System };
- Q_ENUM(Theme)
-
- Theme theme() const;
- void setTheme(Theme theme);
- void inheritTheme(Theme theme);
- void propagateTheme();
- void resetTheme();
-
- enum Color {
- Lime,
- Green,
- Emerald,
- Teal,
- Cyan,
- Cobalt,
- Indigo,
- Violet,
- Pink,
- Magenta,
- Crimson,
- Red,
- Orange,
- Amber,
- Yellow,
- Brown,
- Olive,
- Steel,
- Mauve,
- Taupe
- };
- Q_ENUM(Color)
-
- QVariant accent() const;
- void setAccent(const QVariant &accent);
- void inheritAccent(QRgb accent);
- void propagateAccent();
- void resetAccent();
-
- QVariant foreground() const;
- void setForeground(const QVariant &foreground);
- void inheritForeground(QRgb foreground, bool has);
- void propagateForeground();
- void resetForeground();
-
- QVariant background() const;
- void setBackground(const QVariant &background);
- void inheritBackground(QRgb background, bool has);
- void propagateBackground();
- void resetBackground();
-
- Q_INVOKABLE QColor color(Color color) const;
-
- QColor altHighColor() const;
- QColor altLowColor() const;
- QColor altMediumColor() const;
- QColor altMediumHighColor() const;
- QColor altMediumLowColor() const;
- QColor baseHighColor() const;
- QColor baseLowColor() const;
- QColor baseMediumColor() const;
- QColor baseMediumHighColor() const;
- QColor baseMediumLowColor() const;
- QColor chromeAltLowColor() const;
- QColor chromeBlackHighColor() const;
- QColor chromeBlackLowColor() const;
- QColor chromeBlackMediumLowColor() const;
- QColor chromeBlackMediumColor() const;
- QColor chromeDisabledHighColor() const;
- QColor chromeDisabledLowColor() const;
- QColor chromeHighColor() const;
- QColor chromeLowColor() const;
- QColor chromeMediumColor() const;
- QColor chromeMediumLowColor() const;
- QColor chromeWhiteColor() const;
- QColor listLowColor() const;
- QColor listMediumColor() const;
-
- enum SystemColor {
- AltHigh,
- AltLow,
- AltMedium,
- AltMediumHigh,
- AltMediumLow,
- BaseHigh,
- BaseLow,
- BaseMedium,
- BaseMediumHigh,
- BaseMediumLow,
- ChromeAltLow,
- ChromeBlackHigh,
- ChromeBlackLow,
- ChromeBlackMediumLow,
- ChromeBlackMedium,
- ChromeDisabledHigh,
- ChromeDisabledLow,
- ChromeHigh,
- ChromeLow,
- ChromeMedium,
- ChromeMediumLow,
- ChromeWhite,
- ListLow,
- ListMedium
- };
-
- QColor systemColor(SystemColor role) const;
-
- static void initGlobals();
-
-Q_SIGNALS:
- void themeChanged();
- void accentChanged();
- void foregroundChanged();
- void backgroundChanged();
- void paletteChanged();
-
-protected:
- void attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent) override;
-
-private:
- bool variantToRgba(const QVariant &var, const char *name, QRgb *rgba) const;
-
- // These reflect whether a color value was explicitly set on the specific
- // item that this attached style object represents.
- bool m_explicitTheme = false;
- bool m_explicitAccent = false;
- bool m_explicitForeground = false;
- bool m_explicitBackground = false;
- // These will be true when this item has an explicit or inherited foreground/background
- // color, or these colors were declared globally via settings (e.g. conf or env vars).
- // Some color properties of the style will return different values depending on whether
- // or not these are set.
- bool m_hasForeground = false;
- bool m_hasBackground = false;
- // The actual values for this item, whether explicit, inherited or globally set.
- Theme m_theme = Light;
- QRgb m_accent = Qt::blue;
- QRgb m_foreground = Qt::black;
- QRgb m_background = Qt::white;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPEINFO(QQuickUniversalStyle, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKUNIVERSALSTYLE_P_H
diff --git a/src/quickcontrols2/universal/qquickuniversaltheme.cpp b/src/quickcontrols2/universal/qquickuniversaltheme.cpp
deleted file mode 100644
index 46f7c52e..00000000
--- a/src/quickcontrols2/universal/qquickuniversaltheme.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickuniversaltheme_p.h"
-
-#include <QtGui/qfontinfo.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-QT_BEGIN_NAMESPACE
-
-void QQuickUniversalTheme::initialize(QQuickTheme *theme)
-{
- QFont systemFont;
- QFont groupBoxTitleFont;
- QFont tabButtonFont;
-
- const QFont font(QLatin1String("Segoe UI"));
- if (QFontInfo(font).family() == QLatin1String("Segoe UI")) {
- const QStringList families{font.family()};
- systemFont.setFamilies(families);
- groupBoxTitleFont.setFamilies(families);
- tabButtonFont.setFamilies(families);
- }
-
- systemFont.setPixelSize(15);
- theme->setFont(QQuickTheme::System, systemFont);
-
- groupBoxTitleFont.setPixelSize(15);
- groupBoxTitleFont.setWeight(QFont::DemiBold);
- theme->setFont(QQuickTheme::GroupBox, groupBoxTitleFont);
-
- tabButtonFont.setPixelSize(24);
- tabButtonFont.setWeight(QFont::Light);
- theme->setFont(QQuickTheme::TabBar, tabButtonFont);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/universal/qquickuniversaltheme_p.h b/src/quickcontrols2/universal/qquickuniversaltheme_p.h
deleted file mode 100644
index f762d0e3..00000000
--- a/src/quickcontrols2/universal/qquickuniversaltheme_p.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKUNIVERSALTHEME_P_H
-#define QQUICKUNIVERSALTHEME_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTheme;
-
-class QQuickUniversalTheme
-{
-public:
- static void initialize(QQuickTheme *theme);
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKUNIVERSALTHEME_P_H
diff --git a/src/quickcontrols2/universal/qtquickcontrols2universalstyleplugin.cpp b/src/quickcontrols2/universal/qtquickcontrols2universalstyleplugin.cpp
deleted file mode 100644
index e3bbc00a..00000000
--- a/src/quickcontrols2/universal/qtquickcontrols2universalstyleplugin.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickuniversalstyle_p.h"
-#include "qquickuniversaltheme_p.h"
-
-#include <QtQuickControls2/private/qquickstyleplugin_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-extern void qml_register_types_QtQuick_Controls_Universal();
-
-QT_BEGIN_NAMESPACE
-
-class QtQuickControls2UniversalStylePlugin : public QQuickStylePlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
-
-public:
- QtQuickControls2UniversalStylePlugin(QObject *parent = nullptr);
-
- QString name() const override;
- void initializeTheme(QQuickTheme *theme) override;
-
- QQuickUniversalTheme theme;
-};
-
-QtQuickControls2UniversalStylePlugin::QtQuickControls2UniversalStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
-{
- volatile auto registration = &qml_register_types_QtQuick_Controls_Universal;
- Q_UNUSED(registration);
-}
-
-QString QtQuickControls2UniversalStylePlugin::name() const
-{
- return QStringLiteral("Universal");
-}
-
-void QtQuickControls2UniversalStylePlugin::initializeTheme(QQuickTheme *theme)
-{
- QQuickUniversalStyle::initGlobals();
- this->theme.initialize(theme);
-}
-
-QT_END_NAMESPACE
-
-#include "qtquickcontrols2universalstyleplugin.moc"
diff --git a/src/quickcontrols2/universal/qtquickcontrols2universalstyleplugin.qrc b/src/quickcontrols2/universal/qtquickcontrols2universalstyleplugin.qrc
deleted file mode 100644
index bfcb0974..00000000
--- a/src/quickcontrols2/universal/qtquickcontrols2universalstyleplugin.qrc
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource prefix="qt-project.org/imports/QtQuick/Controls/Universal">
- <file>images/checkmark.png</file>
- <file>images/checkmark@2x.png</file>
- <file>images/checkmark@3x.png</file>
- <file>images/checkmark@4x.png</file>
- <file>images/downarrow.png</file>
- <file>images/downarrow@2x.png</file>
- <file>images/downarrow@3x.png</file>
- <file>images/downarrow@4x.png</file>
- <file>images/leftarrow.png</file>
- <file>images/leftarrow@2x.png</file>
- <file>images/leftarrow@3x.png</file>
- <file>images/leftarrow@4x.png</file>
- <file>images/rightarrow.png</file>
- <file>images/rightarrow@2x.png</file>
- <file>images/rightarrow@3x.png</file>
- <file>images/rightarrow@4x.png</file>
-</qresource>
-</RCC>
diff --git a/src/quickcontrols2/universal/universal.pri b/src/quickcontrols2/universal/universal.pri
deleted file mode 100644
index b946a8f3..00000000
--- a/src/quickcontrols2/universal/universal.pri
+++ /dev/null
@@ -1,59 +0,0 @@
-HEADERS += \
- $$PWD/qquickuniversalstyle_p.h \
- $$PWD/qquickuniversaltheme_p.h
-
-SOURCES += \
- $$PWD/qquickuniversalstyle.cpp \
- $$PWD/qquickuniversaltheme.cpp
-
-QML_FILES += \
- $$PWD/ApplicationWindow.qml \
- $$PWD/BusyIndicator.qml \
- $$PWD/Button.qml \
- $$PWD/CheckBox.qml \
- $$PWD/CheckDelegate.qml \
- $$PWD/ComboBox.qml \
- $$PWD/DelayButton.qml \
- $$PWD/Dial.qml \
- $$PWD/Dialog.qml \
- $$PWD/DialogButtonBox.qml \
- $$PWD/Drawer.qml \
- $$PWD/Frame.qml \
- $$PWD/GroupBox.qml \
- $$PWD/HorizontalHeaderView.qml \
- $$PWD/ItemDelegate.qml \
- $$PWD/Label.qml \
- $$PWD/Menu.qml \
- $$PWD/MenuBar.qml \
- $$PWD/MenuBarItem.qml \
- $$PWD/MenuItem.qml \
- $$PWD/MenuSeparator.qml \
- $$PWD/Page.qml \
- $$PWD/PageIndicator.qml \
- $$PWD/Pane.qml \
- $$PWD/Popup.qml \
- $$PWD/ProgressBar.qml \
- $$PWD/RadioButton.qml \
- $$PWD/RadioDelegate.qml \
- $$PWD/RangeSlider.qml \
- $$PWD/RoundButton.qml \
- $$PWD/ScrollView.qml \
- $$PWD/ScrollBar.qml \
- $$PWD/ScrollIndicator.qml \
- $$PWD/Slider.qml \
- $$PWD/SpinBox.qml \
- $$PWD/SplitView.qml \
- $$PWD/StackView.qml \
- $$PWD/SwipeDelegate.qml \
- $$PWD/SwitchDelegate.qml \
- $$PWD/Switch.qml \
- $$PWD/TabBar.qml \
- $$PWD/TabButton.qml \
- $$PWD/TextArea.qml \
- $$PWD/TextField.qml \
- $$PWD/ToolBar.qml \
- $$PWD/ToolButton.qml \
- $$PWD/ToolSeparator.qml \
- $$PWD/ToolTip.qml \
- $$PWD/Tumbler.qml \
- $$PWD/VerticalHeaderView.qml
diff --git a/src/quickcontrols2/windows/Button.qml b/src/quickcontrols2/windows/Button.qml
deleted file mode 100644
index 1b73e1de..00000000
--- a/src/quickcontrols2/windows/Button.qml
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.Button {
- id: control
-
- readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
-
- // Since QQuickControl will subtract the insets from the control size to
- // figure out the background size, we need to reverse that here, otherwise
- // the control ends up too big.
- implicitWidth: implicitBackgroundWidth + leftInset + rightInset
- implicitHeight: implicitBackgroundHeight + topInset + bottomInset
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- leftPadding: __nativeBackground ? background.contentPadding.left : 5
- rightPadding: __nativeBackground ? background.contentPadding.right : 5
- topPadding: __nativeBackground ? background.contentPadding.top : 5
- bottomPadding: __nativeBackground ? background.contentPadding.bottom : 5
-
- background: NativeStyle.Button {
- control: control
- contentWidth: contentItem.implicitWidth
- contentHeight: contentItem.implicitHeight
- useNinePatchImage: false
- overrideState: NativeStyle.StyleItem.NeverHovered
- }
-
- NativeStyle.Button {
- id: hoverButton
- control: control
- x: background.x
- y: background.y
- width: background.width
- height: background.height
- useNinePatchImage: false
- overrideState: NativeStyle.StyleItem.AlwaysHovered
- opacity: control.hovered ? 1 : 0
- visible: opacity !== 0
- Behavior on opacity { NumberAnimation { duration: hoverButton.transitionDuration } }
- }
-
- icon.width: 24
- icon.height: 24
- icon.color: control.checked || control.highlighted ? control.palette.brightText :
- control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
- }
-}
diff --git a/src/quickcontrols2/windows/CMakeLists.txt b/src/quickcontrols2/windows/CMakeLists.txt
deleted file mode 100644
index 194b4f1e..00000000
--- a/src/quickcontrols2/windows/CMakeLists.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-#####################################################################
-## qtquickcontrols2windowsstyleplugin Plugin:
-#####################################################################
-
-set(qml_files
- "Button.qml"
- "CheckBox.qml"
- "ComboBox.qml"
- "Frame.qml"
- "GroupBox.qml"
- "ProgressBar.qml"
- "RadioButton.qml"
- "Slider.qml"
- "SpinBox.qml"
- "TextArea.qml"
- "TextField.qml"
- "ScrollBar.qml"
- "ScrollView.qml"
-)
-set_source_files_properties(${qml_files} PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-
-qt_internal_add_qml_module(qtquickcontrols2windowsstyleplugin
- URI "QtQuick.Controls.Windows"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2WindowsStylePlugin
- IMPORTS
- QtQuick.Controls.Fusion/auto
- PAST_MAJOR_VERSIONS 2
- PLUGIN_TARGET qtquickcontrols2windowsstyleplugin
- NO_PLUGIN_OPTIONAL
- NO_GENERATE_PLUGIN_SOURCE
- SOURCES
- qtquickcontrols2windowsstyleplugin.cpp
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickControls2Private
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
diff --git a/src/quickcontrols2/windows/CheckBox.qml b/src/quickcontrols2/windows/CheckBox.qml
deleted file mode 100644
index 13fde0e6..00000000
--- a/src/quickcontrols2/windows/CheckBox.qml
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.NativeStyle as NativeStyle
-
-T.CheckBox {
- id: control
-
- readonly property bool nativeIndicator: indicator instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- font.pixelSize: nativeIndicator ? indicator.styleFont(control).pixelSize : undefined
-
- spacing: nativeIndicator ? 0 : 6
- padding: nativeIndicator ? 0 : 6
-
- indicator: NativeStyle.CheckBox {
- control: control
- y: control.topPadding + (control.availableHeight - height) >> 1
- contentWidth: contentItem.implicitWidth
- contentHeight: contentItem.implicitHeight
- useNinePatchImage: false
- overrideState: NativeStyle.StyleItem.NeverHovered
- }
-
- NativeStyle.CheckBox {
- id: hoverCheckBox
- control: control
- x: indicator.x
- y: indicator.y
- z: 99 // Needs to be above the "unhovered" indicator
- width: indicator.width
- height: indicator.height
- useNinePatchImage: false
- overrideState: NativeStyle.StyleItem.AlwaysHovered
- opacity: control.hovered ? 1 : 0
- visible: opacity !== 0
- Behavior on opacity { NumberAnimation { duration: hoverCheckBox.transitionDuration } }
- }
-
- contentItem: CheckLabel {
- text: control.text
- font: control.font
- color: control.palette.windowText
-
- // For some reason, the other styles set padding here (in the delegate), instead of in
- // the control above. And they also adjust the indicator position by setting x and y
- // explicitly (instead of using insets). So we follow the same pattern to ensure that
- // setting a custom contentItem delegate from the app will end up looking the same for
- // all styles. But this should probably be fixed for all styles (to make them work the
- // same way as e.g Buttons).
- leftPadding: {
- if (nativeIndicator)
- indicator.contentPadding.left
- else
- indicator && !mirrored ? indicator.width + spacing : 0
- }
-
- topPadding: nativeIndicator ? indicator.contentPadding.top : 0
- rightPadding: {
- if (nativeIndicator)
- indicator.contentPadding.right
- else
- indicator && mirrored ? indicator.width + spacing : 0
- }
- }
-}
diff --git a/src/quickcontrols2/windows/ComboBox.qml b/src/quickcontrols2/windows/ComboBox.qml
deleted file mode 100644
index 237d90b5..00000000
--- a/src/quickcontrols2/windows/ComboBox.qml
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.ComboBox {
- id: control
-
- readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding,
- 90 /* minimum */ )
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- leftPadding: __nativeBackground ? background.contentPadding.left : 5
- rightPadding: __nativeBackground ? background.contentPadding.right : 5
- topPadding: __nativeBackground ? background.contentPadding.top : 5
- bottomPadding: __nativeBackground ? background.contentPadding.bottom : 5
-
- contentItem: T.TextField {
- implicitWidth: contentWidth
- implicitHeight: contentHeight
- text: control.editable ? control.editText : control.displayText
-
- enabled: control.editable
- autoScroll: control.editable
- readOnly: control.down
- inputMethodHints: control.inputMethodHints
- validator: control.validator
- selectByMouse: control.selectTextByMouse
-
- font: control.font
- color: control.editable ? control.palette.text : control.palette.buttonText
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- verticalAlignment: Text.AlignVCenter
- }
-
- background: NativeStyle.ComboBox {
- control: control
- contentWidth: contentItem.implicitWidth
- contentHeight: contentItem.implicitHeight
- useNinePatchImage: false
- }
-
- delegate: ItemDelegate {
- width: ListView.view.width
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
- palette.text: control.palette.text
- palette.highlightedText: control.palette.highlightedText
- font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
- highlighted: control.highlightedIndex === index
- hoverEnabled: control.hoverEnabled
- }
-
- popup: T.Popup {
- readonly property var layoutMargins: control.__nativeBackground ? control.background.layoutMargins : null
- x: layoutMargins ? layoutMargins.left : 0
- y: control.height - (layoutMargins ? layoutMargins.bottom : 0)
- width: control.width - (layoutMargins ? layoutMargins.left + layoutMargins.right : 0)
- height: Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin)
- topMargin: 6
- bottomMargin: 6
-
- contentItem: ListView {
- clip: true
- implicitHeight: contentHeight
- model: control.delegateModel
- currentIndex: control.highlightedIndex
- highlightMoveDuration: 0
-
- Rectangle {
- z: 10
- width: parent.width
- height: parent.height
- color: "transparent"
- border.color: control.palette.mid
- }
-
- T.ScrollIndicator.vertical: ScrollIndicator { }
- }
-
- background: Rectangle {
- color: control.palette.window
- }
- }
-}
diff --git a/src/quickcontrols2/windows/Frame.qml b/src/quickcontrols2/windows/Frame.qml
deleted file mode 100644
index f16a0835..00000000
--- a/src/quickcontrols2/windows/Frame.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultFrame {
-}
diff --git a/src/quickcontrols2/windows/GroupBox.qml b/src/quickcontrols2/windows/GroupBox.qml
deleted file mode 100644
index 4ffbaae6..00000000
--- a/src/quickcontrols2/windows/GroupBox.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultGroupBox {
-}
diff --git a/src/quickcontrols2/windows/ProgressBar.qml b/src/quickcontrols2/windows/ProgressBar.qml
deleted file mode 100644
index 59a1689d..00000000
--- a/src/quickcontrols2/windows/ProgressBar.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultProgressBar {
-}
diff --git a/src/quickcontrols2/windows/RadioButton.qml b/src/quickcontrols2/windows/RadioButton.qml
deleted file mode 100644
index 82b85698..00000000
--- a/src/quickcontrols2/windows/RadioButton.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultRadioButton {
-}
diff --git a/src/quickcontrols2/windows/ScrollBar.qml b/src/quickcontrols2/windows/ScrollBar.qml
deleted file mode 100644
index 0ccbb155..00000000
--- a/src/quickcontrols2/windows/ScrollBar.qml
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultScrollBar {
- id: controlRoot
-
- topPadding: orientation === Qt.Vertical ? controlRoot.__decreaseVisual.indicator.height : 0
- bottomPadding: orientation === Qt.Vertical ? controlRoot.__increaseVisual.indicator.height : 0
- leftPadding: orientation === Qt.Horizontal ? controlRoot.__decreaseVisual.indicator.width : 0
- rightPadding: orientation === Qt.Horizontal ? controlRoot.__increaseVisual.indicator.width : 0
-
- contentItem: NativeStyle.ScrollBar {
- control: controlRoot
- subControl: NativeStyle.ScrollBar.Handle
- }
-
- NativeStyle.ScrollBar {
- // Fade a hovered-looking version of the handle
- // on top of the default handle when hovering it
- x: contentItem.x
- y: contentItem.y
- z: 1
- width: contentItem.width
- height: contentItem.height
- control: controlRoot
- subControl: NativeStyle.ScrollBar.Handle
- overrideState: NativeStyle.StyleItem.AlwaysHovered
- opacity: controlRoot.hovered || control.pressed ? 1 : 0
- visible: contentItem instanceof NativeStyle.StyleItem
- Behavior on opacity { NumberAnimation { duration: contentItem.transitionDuration } }
- }
-
- // The groove background should have window color
- Rectangle {
- x: background.x
- y: background.y
- z: -1
- width: background.width
- height: background.height
- color: controlRoot.palette.window
- }
-
- background: NativeStyle.ScrollBar {
- control: controlRoot
- subControl: NativeStyle.ScrollBar.Groove
- overrideState: NativeStyle.ScrollBar.NeverHovered
- }
-
- __decreaseVisual.indicator: NativeStyle.ScrollBar {
- control: controlRoot
- subControl: NativeStyle.ScrollBar.SubLine
- overrideState: NativeStyle.ScrollBar.AlwaysHovered
- opacity: controlRoot.__decreaseVisual.hovered ? 1 : 0
- visible: contentItem instanceof NativeStyle.StyleItem
- Behavior on opacity { NumberAnimation { duration: contentItem.transitionDuration } }
- useNinePatchImage: false
- }
-
- NativeStyle.ScrollBar {
- control: controlRoot
- subControl: NativeStyle.ScrollBar.SubLine
- overrideState: NativeStyle.ScrollBar.AlwaysSunken
- opacity: controlRoot.__decreaseVisual.pressed ? 1 : 0
- visible: contentItem instanceof NativeStyle.StyleItem
- useNinePatchImage: false
- z: 1
- }
-
- __increaseVisual.indicator: NativeStyle.ScrollBar {
- control: controlRoot
- subControl: NativeStyle.ScrollBar.AddLine
- x: orientation == Qt.Horizontal ? controlRoot.width - width : 0
- y: orientation == Qt.Vertical ? controlRoot.height - height : 0
- overrideState: NativeStyle.ScrollBar.AlwaysHovered
- opacity: controlRoot.__increaseVisual.hovered ? 1 : 0
- visible: contentItem instanceof NativeStyle.StyleItem
- Behavior on opacity { NumberAnimation { duration: contentItem.transitionDuration } }
- useNinePatchImage: false
- }
-
- NativeStyle.ScrollBar {
- control: controlRoot
- subControl: NativeStyle.ScrollBar.AddLine
- x: __increaseVisual.indicator.x
- y: __increaseVisual.indicator.y
- z: 1
- overrideState: NativeStyle.ScrollBar.AlwaysSunken
- opacity: controlRoot.__increaseVisual.pressed ? 1 : 0
- visible: contentItem instanceof NativeStyle.StyleItem
- useNinePatchImage: false
- }
-}
diff --git a/src/quickcontrols2/windows/ScrollView.qml b/src/quickcontrols2/windows/ScrollView.qml
deleted file mode 100644
index 0e5ffff4..00000000
--- a/src/quickcontrols2/windows/ScrollView.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-
-T.ScrollView {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- rightPadding: ScrollBar.vertical.visible ? ScrollBar.vertical.width : 0
- bottomPadding: ScrollBar.horizontal.visible ? ScrollBar.horizontal.height : 0
-
- ScrollBar.vertical: ScrollBar {
- parent: control
- x: control.mirrored ? 0 : control.width - width
- y: 0
- height: control.height - (control.ScrollBar.horizontal.visible ? control.ScrollBar.horizontal.height : 0)
- active: control.ScrollBar.horizontal.active
- }
-
- ScrollBar.horizontal: ScrollBar {
- parent: control
- x: 0
- y: control.height - height
- width: control.width - (control.ScrollBar.vertical.visible ? control.ScrollBar.vertical.width : 0)
- active: control.ScrollBar.vertical.active
- }
-}
diff --git a/src/quickcontrols2/windows/Slider.qml b/src/quickcontrols2/windows/Slider.qml
deleted file mode 100644
index ab72fcaa..00000000
--- a/src/quickcontrols2/windows/Slider.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultSlider {
-}
diff --git a/src/quickcontrols2/windows/SpinBox.qml b/src/quickcontrols2/windows/SpinBox.qml
deleted file mode 100644
index 72309c60..00000000
--- a/src/quickcontrols2/windows/SpinBox.qml
+++ /dev/null
@@ -1,124 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.SpinBox {
- id: control
-
- property bool __nativeBackground: background instanceof NativeStyle.StyleItem
- property bool nativeIndicators: up.indicator.hasOwnProperty("_qt_default")
- && down.indicator.hasOwnProperty("_qt_default")
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- implicitWidth: Math.max(contentItem.implicitWidth + leftInset + rightInset,
- 90 /* minimum */ )
- implicitHeight: Math.max(contentItem.implicitHeight, up.implicitIndicatorHeight + down.implicitIndicatorHeight)
- + topInset + bottomInset
-
- spacing: 2
-
- leftPadding: __nativeBackground ? background.contentPadding.left: 0
- topPadding: __nativeBackground ? background.contentPadding.top: 0
- rightPadding: (__nativeBackground ? background.contentPadding.right : 0) + rightInset
- bottomPadding: __nativeBackground ? background.contentPadding.bottom: 0
-
- validator: IntValidator {
- locale: control.locale.name
- bottom: Math.min(control.from, control.to)
- top: Math.max(control.from, control.to)
- }
-
- contentItem: TextField {
- text: control.displayText
- font: control.font
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- horizontalAlignment: Qt.AlignLeft
- verticalAlignment: Qt.AlignVCenter
-
- topPadding: 0
- bottomPadding: 0
- leftPadding: 10
- rightPadding: 10
-
- readOnly: !control.editable
- validator: control.validator
- inputMethodHints: control.inputMethodHints
-
- // Since the indicators are embedded inside the TextField we need to avoid that
- // the TextField consumes mouse events for that area.
- // We achieve that by setting a containmentMask
- containmentMask: Item { height: contentItem.height; width: contentItem.width - upAndDown.width }
- }
-
- NativeStyle.SpinBox {
- id: upAndDown
- control: control
- subControl: NativeStyle.SpinBox.Up
- visible: nativeIndicators
- x: up.indicator.x
- y: up.indicator.y
- //implicitHeight: contentItem.implicitHeight-2
- height: parent.height-2
- useNinePatchImage: false
- z:99
- }
-
- up.indicator: Item {
- x: parent.width - width - 2
- y: 1
- height: upAndDown.height >> 1
- implicitWidth: upAndDown.implicitWidth
- implicitHeight: (upAndDown.implicitHeight >> 1)
- property bool _qt_default
- }
-
- down.indicator: Item {
- x: parent.width - width - 2
- y: up.indicator.y + (upAndDown.height >> 1)
- height: upAndDown.height - up.indicator.height
- implicitWidth: upAndDown.implicitWidth
- implicitHeight: upAndDown.implicitHeight >> 1
- property bool _qt_default
- }
-
- background: Item {} // No background, the TextField will cover the whole control
-}
diff --git a/src/quickcontrols2/windows/TextArea.qml b/src/quickcontrols2/windows/TextArea.qml
deleted file mode 100644
index f6b88303..00000000
--- a/src/quickcontrols2/windows/TextArea.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultTextArea {
-}
diff --git a/src/quickcontrols2/windows/TextField.qml b/src/quickcontrols2/windows/TextField.qml
deleted file mode 100644
index bc0e2cb7..00000000
--- a/src/quickcontrols2/windows/TextField.qml
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.NativeStyle as NativeStyle
-
-NativeStyle.DefaultTextField {
-}
diff --git a/src/quickcontrols2/windows/qtquickcontrols2windowsstyleplugin.cpp b/src/quickcontrols2/windows/qtquickcontrols2windowsstyleplugin.cpp
deleted file mode 100644
index 64e77e61..00000000
--- a/src/quickcontrols2/windows/qtquickcontrols2windowsstyleplugin.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtQml/qqml.h>
-#include <QtQuickControls2/private/qquickstyleplugin_p.h>
-#include <QtQuickControls2/qquickstyle.h>
-
-extern void qml_register_types_QtQuick_Controls_Windows();
-
-QT_BEGIN_NAMESPACE
-
-class QtQuickControls2WindowsStylePlugin : public QQuickStylePlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
-
-public:
- QtQuickControls2WindowsStylePlugin(QObject *parent = nullptr);
- QString name() const override;
- void initializeTheme(QQuickTheme *theme) override;
-};
-
-QtQuickControls2WindowsStylePlugin::QtQuickControls2WindowsStylePlugin(QObject *parent):
- QQuickStylePlugin(parent)
-{
- volatile auto registration = &qml_register_types_QtQuick_Controls_Windows;
- Q_UNUSED(registration);
-}
-
-QString QtQuickControls2WindowsStylePlugin::name() const
-{
- return QStringLiteral("Windows");
-}
-
-void QtQuickControls2WindowsStylePlugin::initializeTheme(QQuickTheme * /*theme*/)
-{
-}
-
-QT_END_NAMESPACE
-
-#include "qtquickcontrols2windowsstyleplugin.moc"
diff --git a/src/quickcontrols2/windows/windows.pri b/src/quickcontrols2/windows/windows.pri
deleted file mode 100644
index 7f13eab0..00000000
--- a/src/quickcontrols2/windows/windows.pri
+++ /dev/null
@@ -1,14 +0,0 @@
-QML_FILES += \
- $$PWD/Button.qml \
- $$PWD/CheckBox.qml \
- $$PWD/ComboBox.qml \
- $$PWD/Frame.qml \
- $$PWD/GroupBox.qml \
- $$PWD/ProgressBar.qml \
- $$PWD/RadioButton.qml \
- $$PWD/Slider.qml \
- $$PWD/SpinBox.qml \
- $$PWD/TextArea.qml \
- $$PWD/TextField.qml \
- $$PWD/ScrollBar.qml \
- $$PWD/ScrollView.qml \
diff --git a/src/quickcontrols2impl/CMakeLists.txt b/src/quickcontrols2impl/CMakeLists.txt
deleted file mode 100644
index dcad4d42..00000000
--- a/src/quickcontrols2impl/CMakeLists.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-#####################################################################
-## QuickControls2Impl Module:
-#####################################################################
-
-qt_internal_add_qml_module(QuickControls2Impl
- URI "QtQuick.Controls.impl"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickControls2ImplPlugin
- DEPENDENCIES
- QtQuick/auto
- PLUGIN_TARGET qtquickcontrols2implplugin
- SOURCES
- qquickanimatednode.cpp qquickanimatednode_p.h
- qquickattachedobject.cpp qquickattachedobject_p.h
- qquickchecklabel.cpp qquickchecklabel_p.h
- qquickclippedtext.cpp qquickclippedtext_p.h
- qquickcolor.cpp qquickcolor_p.h
- qquickcolorimage.cpp qquickcolorimage_p.h
- qquickiconimage.cpp qquickiconimage_p.h
- qquickiconimage_p_p.h
- qquickiconlabel.cpp qquickiconlabel_p.h
- qquickiconlabel_p_p.h
- qquickitemgroup.cpp qquickitemgroup_p.h
- qquickmnemoniclabel.cpp qquickmnemoniclabel_p.h
- qquickpaddedrectangle.cpp qquickpaddedrectangle_p.h
- qquickplaceholdertext.cpp qquickplaceholdertext_p.h
- qtquickcontrols2foreign_p.h
- qtquickcontrols2implglobal_p.h
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
-
-qt_internal_extend_target(QuickControls2Impl CONDITION QT_FEATURE_quick_listview AND QT_FEATURE_quick_pathview
- SOURCES
- qquicktumblerview.cpp qquicktumblerview_p.h
-)
diff --git a/src/quickcontrols2impl/qquickanimatednode.cpp b/src/quickcontrols2impl/qquickanimatednode.cpp
deleted file mode 100644
index b4e665de..00000000
--- a/src/quickcontrols2impl/qquickanimatednode.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickanimatednode_p.h"
-
-#include <QtQuick/qquickitem.h>
-#include <QtQuick/qquickwindow.h>
-
-// based on qtdeclarative/examples/quick/scenegraph/threadedanimation
-
-QT_BEGIN_NAMESPACE
-
-QQuickAnimatedNode::QQuickAnimatedNode(QQuickItem *target)
- : m_window(target->window())
-{
-}
-
-bool QQuickAnimatedNode::isRunning() const
-{
- return m_running;
-}
-
-int QQuickAnimatedNode::currentTime() const
-{
- int time = m_currentTime;
- if (m_running)
- time += m_timer.elapsed();
- return time;
-}
-
-void QQuickAnimatedNode::setCurrentTime(int time)
-{
- m_currentTime = time;
- m_timer.restart();
-}
-
-int QQuickAnimatedNode::duration() const
-{
- return m_duration;
-}
-
-void QQuickAnimatedNode::setDuration(int duration)
-{
- m_duration = duration;
-}
-
-int QQuickAnimatedNode::loopCount() const
-{
- return m_loopCount;
-}
-
-void QQuickAnimatedNode::setLoopCount(int count)
-{
- m_loopCount = count;
-}
-
-void QQuickAnimatedNode::sync(QQuickItem *target)
-{
- Q_UNUSED(target);
-}
-
-QQuickWindow *QQuickAnimatedNode::window() const
-{
- return m_window;
-}
-
-void QQuickAnimatedNode::start(int duration)
-{
- if (m_running)
- return;
-
- m_running = true;
- m_currentLoop = 0;
- m_timer.restart();
- if (duration > 0)
- m_duration = duration;
-
- connect(m_window, &QQuickWindow::beforeRendering, this, &QQuickAnimatedNode::advance, Qt::DirectConnection);
- connect(m_window, &QQuickWindow::frameSwapped, this, &QQuickAnimatedNode::update, Qt::DirectConnection);
-
- // If we're inside a QQuickWidget, this call is necessary to ensure the widget
- // gets updated for the first time.
- m_window->update();
-
- emit started();
-}
-
-void QQuickAnimatedNode::restart()
-{
- stop();
- start();
-}
-
-void QQuickAnimatedNode::stop()
-{
- if (!m_running)
- return;
-
- m_running = false;
- disconnect(m_window, &QQuickWindow::beforeRendering, this, &QQuickAnimatedNode::advance);
- disconnect(m_window, &QQuickWindow::frameSwapped, this, &QQuickAnimatedNode::update);
- emit stopped();
-}
-
-void QQuickAnimatedNode::updateCurrentTime(int time)
-{
- Q_UNUSED(time);
-}
-
-void QQuickAnimatedNode::advance()
-{
- int time = currentTime();
- if (time > m_duration) {
- time = 0;
- setCurrentTime(0);
-
- if (m_loopCount > 0 && ++m_currentLoop >= m_loopCount) {
- time = m_duration; // complete
- stop();
- }
- }
- updateCurrentTime(time);
-
- // If we're inside a QQuickWidget, this call is necessary to ensure the widget gets updated.
- m_window->update();
-}
-
-void QQuickAnimatedNode::update()
-{
- if (m_running)
- m_window->update();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickanimatednode_p.h b/src/quickcontrols2impl/qquickanimatednode_p.h
deleted file mode 100644
index e403f0bf..00000000
--- a/src/quickcontrols2impl/qquickanimatednode_p.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKANIMATEDNODE_P_H
-#define QQUICKANIMATEDNODE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/qsgnode.h>
-#include <QtCore/qelapsedtimer.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickItem;
-class QQuickWindow;
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickAnimatedNode : public QObject, public QSGTransformNode
-{
- Q_OBJECT
-
-public:
- explicit QQuickAnimatedNode(QQuickItem *target);
-
- bool isRunning() const;
-
- int currentTime() const;
- void setCurrentTime(int time);
-
- int duration() const;
- void setDuration(int duration);
-
- enum LoopCount { Infinite = -1 };
-
- int loopCount() const;
- void setLoopCount(int count);
-
- virtual void sync(QQuickItem *target);
-
- QQuickWindow *window() const;
-
- // must be called from sync() or updatePaintNode()
- void start(int duration = 0);
- void restart();
- void stop();
-
-Q_SIGNALS:
- void started();
- void stopped();
-
-protected:
- virtual void updateCurrentTime(int time);
-
-private Q_SLOTS:
- void advance();
- void update();
-
-private:
- bool m_running = false;
- int m_duration = 0;
- int m_loopCount = 1;
- int m_currentTime = 0;
- int m_currentLoop = 0;
- QElapsedTimer m_timer;
- QQuickWindow *m_window = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKANIMATEDNODE_P_H
diff --git a/src/quickcontrols2impl/qquickattachedobject.cpp b/src/quickcontrols2impl/qquickattachedobject.cpp
deleted file mode 100644
index 722f22f9..00000000
--- a/src/quickcontrols2impl/qquickattachedobject.cpp
+++ /dev/null
@@ -1,274 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickattachedobject_p.h"
-
-#include <QtCore/qpointer.h>
-#include <QtQuick/qquickwindow.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static QQuickAttachedObject *attachedObject(const QMetaObject *type, QObject *object, bool create = false)
-{
- if (!object)
- return nullptr;
- auto func = qmlAttachedPropertiesFunction(object, type);
- return qobject_cast<QQuickAttachedObject *>(qmlAttachedPropertiesObject(object, func, create));
-}
-
-static QQuickAttachedObject *findAttachedParent(const QMetaObject *type, QObject *object)
-{
- QQuickItem *item = qobject_cast<QQuickItem *>(object);
- if (item) {
- // lookup parent items and popups
- QQuickItem *parent = item->parentItem();
- while (parent) {
- QQuickAttachedObject *attached = attachedObject(type, parent);
- if (attached)
- return attached;
-
- QQuickPopup *popup = qobject_cast<QQuickPopup *>(parent->parent());
- if (popup)
- return attachedObject(type, popup);
-
- parent = parent->parentItem();
- }
-
- // fallback to item's window
- QQuickAttachedObject *attached = attachedObject(type, item->window());
- if (attached)
- return attached;
- } else {
- // lookup popup's window
- QQuickPopup *popup = qobject_cast<QQuickPopup *>(object);
- if (popup)
- return attachedObject(type, popup->popupItem()->window());
- }
-
- // lookup parent window
- QQuickWindow *window = qobject_cast<QQuickWindow *>(object);
- if (window) {
- QQuickWindow *parentWindow = qobject_cast<QQuickWindow *>(window->parent());
- if (parentWindow) {
- QQuickAttachedObject *attached = attachedObject(type, window);
- if (attached)
- return attached;
- }
- }
-
- // fallback to engine (global)
- if (object) {
- QQmlEngine *engine = qmlEngine(object);
- if (engine) {
- QByteArray name = QByteArray("_q_") + type->className();
- QQuickAttachedObject *attached = engine->property(name).value<QQuickAttachedObject *>();
- if (!attached) {
- attached = attachedObject(type, engine, true);
- engine->setProperty(name, QVariant::fromValue(attached));
- }
- return attached;
- }
- }
-
- return nullptr;
-}
-
-static QList<QQuickAttachedObject *> findAttachedChildren(const QMetaObject *type, QObject *object)
-{
- QList<QQuickAttachedObject *> children;
-
- QQuickItem *item = qobject_cast<QQuickItem *>(object);
- if (!item) {
- QQuickWindow *window = qobject_cast<QQuickWindow *>(object);
- if (window) {
- item = window->contentItem();
-
- const auto &windowChildren = window->children();
- for (QObject *child : windowChildren) {
- QQuickWindow *childWindow = qobject_cast<QQuickWindow *>(child);
- if (childWindow) {
- QQuickAttachedObject *attached = attachedObject(type, childWindow);
- if (attached)
- children += attached;
- }
- }
- }
- }
-
- if (item) {
- const auto childItems = item->childItems();
- for (QQuickItem *child : childItems) {
- QQuickAttachedObject *attached = attachedObject(type, child);
- if (attached)
- children += attached;
- else
- children += findAttachedChildren(type, child);
- }
- }
-
- return children;
-}
-
-static QQuickItem *findAttachedItem(QObject *parent)
-{
- QQuickItem *item = qobject_cast<QQuickItem *>(parent);
- if (!item) {
- QQuickPopup *popup = qobject_cast<QQuickPopup *>(parent);
- if (popup)
- item = popup->popupItem();
- }
- return item;
-}
-
-class QQuickAttachedObjectPrivate : public QObjectPrivate, public QQuickItemChangeListener
-{
- Q_DECLARE_PUBLIC(QQuickAttachedObject)
-
-public:
- static QQuickAttachedObjectPrivate *get(QQuickAttachedObject *attachedObject)
- {
- return attachedObject->d_func();
- }
-
- void attachTo(QObject *object);
- void detachFrom(QObject *object);
-
- void itemWindowChanged(QQuickWindow *window);
- void itemParentChanged(QQuickItem *item, QQuickItem *parent) override;
-
- QList<QQuickAttachedObject *> attachedChildren;
- QPointer<QQuickAttachedObject> attachedParent;
-};
-
-void QQuickAttachedObjectPrivate::attachTo(QObject *object)
-{
- QQuickItem *item = findAttachedItem(object);
- if (item) {
- connect(item, &QQuickItem::windowChanged, this, &QQuickAttachedObjectPrivate::itemWindowChanged);
- QQuickItemPrivate::get(item)->addItemChangeListener(this, QQuickItemPrivate::Parent);
- }
-}
-
-void QQuickAttachedObjectPrivate::detachFrom(QObject *object)
-{
- QQuickItem *item = findAttachedItem(object);
- if (item) {
- disconnect(item, &QQuickItem::windowChanged, this, &QQuickAttachedObjectPrivate::itemWindowChanged);
- QQuickItemPrivate::get(item)->removeItemChangeListener(this, QQuickItemPrivate::Parent);
- }
-}
-
-void QQuickAttachedObjectPrivate::itemWindowChanged(QQuickWindow *window)
-{
- Q_Q(QQuickAttachedObject);
- QQuickAttachedObject *attachedParent = nullptr;
- QQuickItem *item = qobject_cast<QQuickItem *>(q->sender());
- if (item)
- attachedParent = findAttachedParent(q->metaObject(), item);
- if (!attachedParent)
- attachedParent = attachedObject(q->metaObject(), window);
- q->setAttachedParent(attachedParent);
-}
-
-void QQuickAttachedObjectPrivate::itemParentChanged(QQuickItem *item, QQuickItem *parent)
-{
- Q_Q(QQuickAttachedObject);
- Q_UNUSED(parent);
- q->setAttachedParent(findAttachedParent(q->metaObject(), item));
-}
-
-QQuickAttachedObject::QQuickAttachedObject(QObject *parent)
- : QObject(*(new QQuickAttachedObjectPrivate), parent)
-{
- Q_D(QQuickAttachedObject);
- d->attachTo(parent);
-}
-
-QQuickAttachedObject::~QQuickAttachedObject()
-{
- Q_D(QQuickAttachedObject);
- d->detachFrom(parent());
- setAttachedParent(nullptr);
-}
-
-QList<QQuickAttachedObject *> QQuickAttachedObject::attachedChildren() const
-{
- Q_D(const QQuickAttachedObject);
- return d->attachedChildren;
-}
-
-QQuickAttachedObject *QQuickAttachedObject::attachedParent() const
-{
- Q_D(const QQuickAttachedObject);
- return d->attachedParent;
-}
-
-void QQuickAttachedObject::setAttachedParent(QQuickAttachedObject *parent)
-{
- Q_D(QQuickAttachedObject);
- if (d->attachedParent == parent)
- return;
-
- QQuickAttachedObject *oldParent = d->attachedParent;
- if (d->attachedParent)
- QQuickAttachedObjectPrivate::get(d->attachedParent)->attachedChildren.removeOne(this);
- d->attachedParent = parent;
- if (parent)
- QQuickAttachedObjectPrivate::get(parent)->attachedChildren.append(this);
- attachedParentChange(parent, oldParent);
-}
-
-void QQuickAttachedObject::init()
-{
- QQuickAttachedObject *attachedParent = findAttachedParent(metaObject(), parent());
- if (attachedParent)
- setAttachedParent(attachedParent);
-
- const QList<QQuickAttachedObject *> attachedChildren = findAttachedChildren(metaObject(), parent());
- for (QQuickAttachedObject *child : attachedChildren)
- child->setAttachedParent(this);
-}
-
-void QQuickAttachedObject::attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent)
-{
- Q_UNUSED(newParent);
- Q_UNUSED(oldParent);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickattachedobject_p.h b/src/quickcontrols2impl/qquickattachedobject_p.h
deleted file mode 100644
index cd2404c2..00000000
--- a/src/quickcontrols2impl/qquickattachedobject_p.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKATTACHEDOBJECT_P_H
-#define QQUICKATTACHEDOBJECT_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQml/qqml.h>
-#include <QtCore/qobject.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickAttachedObjectPrivate;
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickAttachedObject : public QObject
-{
- Q_OBJECT
-
-public:
- explicit QQuickAttachedObject(QObject *parent = nullptr);
- ~QQuickAttachedObject();
-
- QList<QQuickAttachedObject *> attachedChildren() const;
-
- QQuickAttachedObject *attachedParent() const;
- void setAttachedParent(QQuickAttachedObject *parent);
-
-protected:
- void init();
-
- virtual void attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent);
-
-private:
- Q_DISABLE_COPY(QQuickAttachedObject)
- Q_DECLARE_PRIVATE(QQuickAttachedObject)
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKATTACHEDOBJECT_P_H
diff --git a/src/quickcontrols2impl/qquickchecklabel.cpp b/src/quickcontrols2impl/qquickchecklabel.cpp
deleted file mode 100644
index dccbf77f..00000000
--- a/src/quickcontrols2impl/qquickchecklabel.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickchecklabel_p.h"
-
-QT_BEGIN_NAMESPACE
-
-QQuickCheckLabel::QQuickCheckLabel(QQuickItem *parent) :
- QQuickText(parent)
-{
- setHAlign(AlignLeft);
- setVAlign(AlignVCenter);
- setElideMode(ElideRight);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickchecklabel_p.h b/src/quickcontrols2impl/qquickchecklabel_p.h
deleted file mode 100644
index 823ce9df..00000000
--- a/src/quickcontrols2impl/qquickchecklabel_p.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCHECKLABEL_P_H
-#define QQUICKCHECKLABEL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquicktext_p.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickCheckLabel : public QQuickText
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(CheckLabel)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickCheckLabel(QQuickItem *parent = nullptr);
-};
-
-struct QQuickTextForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickText)
- QML_ADDED_IN_VERSION(2, 3)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickCheckLabel)
-
-#endif // QQUICKCHECKLABEL_P_H
diff --git a/src/quickcontrols2impl/qquickclippedtext.cpp b/src/quickcontrols2impl/qquickclippedtext.cpp
deleted file mode 100644
index 862197f3..00000000
--- a/src/quickcontrols2impl/qquickclippedtext.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickclippedtext_p.h"
-
-#include <QtQuick/private/qquickitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickClippedText::QQuickClippedText(QQuickItem *parent)
- : QQuickText(parent)
-{
-}
-
-qreal QQuickClippedText::clipX() const
-{
- return m_clipX;
-}
-
-void QQuickClippedText::setClipX(qreal x)
-{
- if (qFuzzyCompare(x, m_clipX))
- return;
-
- m_clipX = x;
- markClipDirty();
-}
-
-qreal QQuickClippedText::clipY() const
-{
- return m_clipY;
-}
-
-void QQuickClippedText::setClipY(qreal y)
-{
- if (qFuzzyCompare(y, m_clipY))
- return;
-
- m_clipY = y;
- markClipDirty();
-}
-
-qreal QQuickClippedText::clipWidth() const
-{
- return m_clipWidth ? m_clipWidth : width();
-}
-
-void QQuickClippedText::setClipWidth(qreal width)
-{
- m_hasClipWidth = true;
- if (qFuzzyCompare(width, m_clipWidth))
- return;
-
- m_clipWidth = width;
- markClipDirty();
-}
-
-qreal QQuickClippedText::clipHeight() const
-{
- return m_clipHeight ? m_clipHeight : height();
-}
-
-void QQuickClippedText::setClipHeight(qreal height)
-{
- m_hasClipHeight = true;
- if (qFuzzyCompare(height, m_clipHeight))
- return;
-
- m_clipHeight = height;
- markClipDirty();
-}
-
-QRectF QQuickClippedText::clipRect() const
-{
- return QRectF(clipX(), clipY(), clipWidth(), clipHeight());
-}
-
-void QQuickClippedText::markClipDirty()
-{
- QQuickItemPrivate::get(this)->dirty(QQuickItemPrivate::Size);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickclippedtext_p.h b/src/quickcontrols2impl/qquickclippedtext_p.h
deleted file mode 100644
index f3b011fd..00000000
--- a/src/quickcontrols2impl/qquickclippedtext_p.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCLIPPEDTEXT_P_H
-#define QQUICKCLIPPEDTEXT_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquicktext_p.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickClippedText : public QQuickText
-{
- Q_OBJECT
- Q_PROPERTY(qreal clipX READ clipX WRITE setClipX FINAL)
- Q_PROPERTY(qreal clipY READ clipY WRITE setClipY FINAL)
- Q_PROPERTY(qreal clipWidth READ clipWidth WRITE setClipWidth FINAL)
- Q_PROPERTY(qreal clipHeight READ clipHeight WRITE setClipHeight FINAL)
- QML_NAMED_ELEMENT(ClippedText)
- QML_ADDED_IN_VERSION(2, 2)
-
-public:
- explicit QQuickClippedText(QQuickItem *parent = nullptr);
-
- qreal clipX() const;
- void setClipX(qreal x);
-
- qreal clipY() const;
- void setClipY(qreal y);
-
- qreal clipWidth() const;
- void setClipWidth(qreal width);
-
- qreal clipHeight() const;
- void setClipHeight(qreal height);
-
- QRectF clipRect() const override;
-
-private:
- void markClipDirty();
-
- bool m_hasClipWidth = false;
- bool m_hasClipHeight = false;
- qreal m_clipX = 0;
- qreal m_clipY = 0;
- qreal m_clipWidth = 0;
- qreal m_clipHeight = 0;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickClippedText)
-
-#endif // QQUICKCLIPPEDTEXT_P_H
diff --git a/src/quickcontrols2impl/qquickcolor.cpp b/src/quickcontrols2impl/qquickcolor.cpp
deleted file mode 100644
index 8ae568fc..00000000
--- a/src/quickcontrols2impl/qquickcolor.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickcolor_p.h"
-
-QT_BEGIN_NAMESPACE
-
-QQuickColor::QQuickColor(QObject *parent) :
- QObject(parent)
-{
-}
-
-QColor QQuickColor::transparent(const QColor &color, qreal opacity) const
-{
- return QColor(color.red(), color.green(), color.blue(),
- int(qreal(255) * qBound(qreal(0), opacity, qreal(1))));
-}
-
-QColor QQuickColor::blend(const QColor &a, const QColor &b, qreal factor) const
-{
- if (factor <= 0.0)
- return a;
- if (factor >= 1.0)
- return b;
-
- QColor color;
- color.setRedF(a.redF() * (1.0 - factor) + b.redF() * factor);
- color.setGreenF(a.greenF() * (1.0 - factor) + b.greenF() * factor);
- color.setBlueF(a.blueF() * (1.0 - factor) + b.blueF() * factor);
- return color;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickcolor_p.h b/src/quickcontrols2impl/qquickcolor_p.h
deleted file mode 100644
index cd69d0d8..00000000
--- a/src/quickcontrols2impl/qquickcolor_p.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCOLOR_P_H
-#define QQUICKCOLOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtGui/qcolor.h>
-#include <QtQml/qqml.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickColor : public QObject
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(Color)
- QML_SINGLETON
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickColor(QObject *parent = nullptr);
-
- Q_INVOKABLE QColor transparent(const QColor &color, qreal opacity) const;
- Q_INVOKABLE QColor blend(const QColor &a, const QColor &b, qreal factor) const;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKCOLOR_P_H
diff --git a/src/quickcontrols2impl/qquickcolorimage.cpp b/src/quickcontrols2impl/qquickcolorimage.cpp
deleted file mode 100644
index 3afcef7e..00000000
--- a/src/quickcontrols2impl/qquickcolorimage.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickcolorimage_p.h"
-
-#include <QtQuick/private/qquickimagebase_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickColorImage::QQuickColorImage(QQuickItem *parent)
- : QQuickImage(parent)
-{
-}
-
-QColor QQuickColorImage::color() const
-{
- return m_color;
-}
-
-void QQuickColorImage::setColor(const QColor &color)
-{
- if (m_color == color)
- return;
-
- m_color = color;
- if (isComponentComplete())
- load();
- emit colorChanged();
-}
-
-void QQuickColorImage::resetColor()
-{
- setColor(Qt::transparent);
-}
-
-QColor QQuickColorImage::defaultColor() const
-{
- return m_defaultColor;
-}
-
-void QQuickColorImage::setDefaultColor(const QColor &color)
-{
- if (m_defaultColor == color)
- return;
-
- m_defaultColor = color;
- emit defaultColorChanged();
-}
-
-void QQuickColorImage::resetDefaultColor()
-{
- setDefaultColor(Qt::transparent);
-}
-
-void QQuickColorImage::pixmapChange()
-{
- QQuickImage::pixmapChange();
- if (m_color.alpha() > 0 && m_color != m_defaultColor) {
- QQuickImageBasePrivate *d = static_cast<QQuickImageBasePrivate *>(QQuickItemPrivate::get(this));
- QImage image = d->pix.image();
- if (!image.isNull()) {
- QPainter painter(&image);
- painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
- painter.fillRect(image.rect(), m_color);
- d->pix.setImage(image);
- }
- }
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickcolorimage_p.h b/src/quickcontrols2impl/qquickcolorimage_p.h
deleted file mode 100644
index faa2e42c..00000000
--- a/src/quickcontrols2impl/qquickcolorimage_p.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCOLORIMAGE_P_H
-#define QQUICKCOLORIMAGE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qcolor.h>
-#include <QtQuick/private/qquickimage_p.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickColorImage : public QQuickImage
-{
- Q_OBJECT
- Q_PROPERTY(QColor color READ color WRITE setColor RESET resetColor NOTIFY colorChanged FINAL)
- Q_PROPERTY(QColor defaultColor READ defaultColor WRITE setDefaultColor RESET resetDefaultColor NOTIFY defaultColorChanged FINAL)
- QML_NAMED_ELEMENT(ColorImage)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickColorImage(QQuickItem *parent = nullptr);
-
- QColor color() const;
- void setColor(const QColor &color);
- void resetColor();
-
- QColor defaultColor() const;
- void setDefaultColor(const QColor &color);
- void resetDefaultColor();
-
-Q_SIGNALS:
- void colorChanged();
- void defaultColorChanged();
-
-protected:
- void pixmapChange() override;
-
-private:
- QColor m_color = Qt::transparent;
- QColor m_defaultColor = Qt::transparent;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKCOLORIMAGE_P_H
diff --git a/src/quickcontrols2impl/qquickiconimage.cpp b/src/quickcontrols2impl/qquickiconimage.cpp
deleted file mode 100644
index 1fc3abfc..00000000
--- a/src/quickcontrols2impl/qquickiconimage.cpp
+++ /dev/null
@@ -1,213 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickiconimage_p.h"
-#include "qquickiconimage_p_p.h"
-
-#include <QtCore/qmath.h>
-#include <QtQuick/private/qquickimagebase_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-bool QQuickIconImagePrivate::updateDevicePixelRatio(qreal targetDevicePixelRatio)
-{
- if (isThemeIcon) {
- devicePixelRatio = calculateDevicePixelRatio();
- return true;
- }
-
- return QQuickImagePrivate::updateDevicePixelRatio(targetDevicePixelRatio);
-}
-
-void QQuickIconImagePrivate::updateIcon()
-{
- Q_Q(QQuickIconImage);
- // Both geometryChange() and QQuickImageBase::sourceSizeChanged()
- // (which we connect to updateIcon() in the constructor) can be called as a result
- // of updateIcon() changing the various sizes, so we must check that we're not recursing.
- if (updatingIcon)
- return;
-
- updatingIcon = true;
-
- QSize size = sourcesize;
- // If no size is specified for theme icons, it will use the smallest available size.
- if (size.width() <= 0)
- size.setWidth(q->width());
- if (size.height() <= 0)
- size.setHeight(q->height());
-
- const qreal dpr = calculateDevicePixelRatio();
- const QIconLoaderEngineEntry *entry = QIconLoaderEngine::entryForSize(icon, size * dpr, qCeil(dpr));
-
- if (entry) {
- QQmlContext *context = qmlContext(q);
- const QUrl entryUrl = QUrl::fromLocalFile(entry->filename);
- url = context ? context->resolvedUrl(entryUrl) : entryUrl;
- isThemeIcon = true;
- } else {
- url = source;
- isThemeIcon = false;
- }
- q->load();
-
- updatingIcon = false;
-}
-
-void QQuickIconImagePrivate::updateFillMode()
-{
- Q_Q(QQuickIconImage);
- // If we start with a sourceSize of 28x28 and then set sourceSize.width to 24, the fillMode
- // will change to PreserveAspectFit (because pixmapSize.width() > width()), which causes the
- // pixmap to be reloaded at its original size of 28x28, which causes the fillMode to change
- // to Pad (because pixmapSize.width() <= width()), and so on.
- if (updatingFillMode)
- return;
-
- updatingFillMode = true;
-
- const QSize pixmapSize = QSize(pix.width(), pix.height()) / calculateDevicePixelRatio();
- if (pixmapSize.width() > q->width() || pixmapSize.height() > q->height())
- q->setFillMode(QQuickImage::PreserveAspectFit);
- else
- q->setFillMode(QQuickImage::Pad);
-
- updatingFillMode = false;
-}
-
-qreal QQuickIconImagePrivate::calculateDevicePixelRatio() const
-{
- Q_Q(const QQuickIconImage);
- return q->window() ? q->window()->effectiveDevicePixelRatio() : qApp->devicePixelRatio();
-}
-
-QQuickIconImage::QQuickIconImage(QQuickItem *parent)
- : QQuickImage(*(new QQuickIconImagePrivate), parent)
-{
- setFillMode(Pad);
-}
-
-QString QQuickIconImage::name() const
-{
- Q_D(const QQuickIconImage);
- return d->icon.iconName;
-}
-
-void QQuickIconImage::setName(const QString &name)
-{
- Q_D(QQuickIconImage);
- if (d->icon.iconName == name)
- return;
-
- d->icon = QIconLoader::instance()->loadIcon(name);
- if (isComponentComplete())
- d->updateIcon();
- emit nameChanged();
-}
-
-QColor QQuickIconImage::color() const
-{
- Q_D(const QQuickIconImage);
- return d->color;
-}
-
-void QQuickIconImage::setColor(const QColor &color)
-{
- Q_D(QQuickIconImage);
- if (d->color == color)
- return;
-
- d->color = color;
- if (isComponentComplete())
- d->updateIcon();
- emit colorChanged();
-}
-
-void QQuickIconImage::setSource(const QUrl &source)
-{
- Q_D(QQuickIconImage);
- if (d->source == source)
- return;
-
- d->source = source;
- if (isComponentComplete())
- d->updateIcon();
- emit sourceChanged(source);
-}
-
-void QQuickIconImage::componentComplete()
-{
- Q_D(QQuickIconImage);
- QQuickImage::componentComplete();
- d->updateIcon();
- QObjectPrivate::connect(this, &QQuickImageBase::sourceSizeChanged, d, &QQuickIconImagePrivate::updateIcon);
-}
-
-void QQuickIconImage::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickIconImage);
- QQuickImage::geometryChange(newGeometry, oldGeometry);
- if (isComponentComplete() && newGeometry.size() != oldGeometry.size())
- d->updateIcon();
-}
-
-void QQuickIconImage::itemChange(ItemChange change, const ItemChangeData &value)
-{
- Q_D(QQuickIconImage);
- if (change == ItemDevicePixelRatioHasChanged)
- d->updateIcon();
- QQuickImage::itemChange(change, value);
-}
-
-void QQuickIconImage::pixmapChange()
-{
- Q_D(QQuickIconImage);
- QQuickImage::pixmapChange();
- d->updateFillMode();
-
- // Don't apply the color if we're recursing (updateFillMode() can cause us to recurse).
- if (!d->updatingFillMode && d->color.alpha() > 0) {
- QImage image = d->pix.image();
- if (!image.isNull()) {
- QPainter painter(&image);
- painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
- painter.fillRect(image.rect(), d->color);
- d->pix.setImage(image);
- }
- }
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickiconimage_p.h b/src/quickcontrols2impl/qquickiconimage_p.h
deleted file mode 100644
index 37891476..00000000
--- a/src/quickcontrols2impl/qquickiconimage_p.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKICONIMAGE_P_H
-#define QQUICKICONIMAGE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquickimage_p.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickIconImagePrivate;
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickIconImage : public QQuickImage
-{
- Q_OBJECT
- Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged FINAL)
- Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged FINAL)
- QML_NAMED_ELEMENT(IconImage)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickIconImage(QQuickItem *parent = nullptr);
-
- QString name() const;
- void setName(const QString &name);
-
- QColor color() const;
- void setColor(const QColor &color);
-
- void setSource(const QUrl &url) override;
-
-Q_SIGNALS:
- void nameChanged();
- void colorChanged();
-
-protected:
- void componentComplete() override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- void itemChange(ItemChange change, const ItemChangeData &value) override;
- void pixmapChange() override;
-
-private:
- Q_DISABLE_COPY(QQuickIconImage)
- Q_DECLARE_PRIVATE(QQuickIconImage)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickIconImage)
-
-#endif // QQUICKICONIMAGE_P_H
diff --git a/src/quickcontrols2impl/qquickiconimage_p_p.h b/src/quickcontrols2impl/qquickiconimage_p_p.h
deleted file mode 100644
index cec5956a..00000000
--- a/src/quickcontrols2impl/qquickiconimage_p_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKICONIMAGE_P_P_H
-#define QQUICKICONIMAGE_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquickimage_p_p.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-#include <QtGui/private/qiconloader_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickIconImagePrivate : public QQuickImagePrivate
-{
- Q_DECLARE_PUBLIC(QQuickIconImage)
-
-public:
- void updateIcon();
- void updateFillMode();
- qreal calculateDevicePixelRatio() const;
- bool updateDevicePixelRatio(qreal targetDevicePixelRatio) override;
-
- QUrl source;
- QColor color = Qt::transparent;
- QThemeIconInfo icon;
- bool updatingIcon = false;
- bool isThemeIcon = false;
- bool updatingFillMode = false;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKICONIMAGE_P_P_H
diff --git a/src/quickcontrols2impl/qquickiconlabel.cpp b/src/quickcontrols2impl/qquickiconlabel.cpp
deleted file mode 100644
index d76da28f..00000000
--- a/src/quickcontrols2impl/qquickiconlabel.cpp
+++ /dev/null
@@ -1,642 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickiconlabel_p.h"
-#include "qquickiconlabel_p_p.h"
-#include "qquickiconimage_p.h"
-#include "qquickmnemoniclabel_p.h"
-
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qquicktext_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static void beginClass(QQuickItem *item)
-{
- if (QQmlParserStatus *parserStatus = qobject_cast<QQmlParserStatus *>(item))
- parserStatus->classBegin();
-}
-
-static void completeComponent(QQuickItem *item)
-{
- if (QQmlParserStatus *parserStatus = qobject_cast<QQmlParserStatus *>(item))
- parserStatus->componentComplete();
-}
-
-bool QQuickIconLabelPrivate::hasIcon() const
-{
- return display != QQuickIconLabel::TextOnly && !icon.isEmpty();
-}
-
-bool QQuickIconLabelPrivate::hasText() const
-{
- return display != QQuickIconLabel::IconOnly && !text.isEmpty();
-}
-
-bool QQuickIconLabelPrivate::createImage()
-{
- Q_Q(QQuickIconLabel);
- if (image)
- return false;
-
- image = new QQuickIconImage(q);
- watchChanges(image);
- beginClass(image);
- image->setObjectName(QStringLiteral("image"));
- image->setName(icon.name());
- image->setSource(icon.source());
- image->setSourceSize(QSize(icon.width(), icon.height()));
- image->setColor(icon.color());
- image->setCache(icon.cache());
- QQmlEngine::setContextForObject(image, qmlContext(q));
- if (componentComplete)
- completeComponent(image);
- return true;
-}
-
-bool QQuickIconLabelPrivate::destroyImage()
-{
- if (!image)
- return false;
-
- unwatchChanges(image);
- delete image;
- image = nullptr;
- return true;
-}
-
-bool QQuickIconLabelPrivate::updateImage()
-{
- if (!hasIcon())
- return destroyImage();
- return createImage();
-}
-
-void QQuickIconLabelPrivate::syncImage()
-{
- if (!image || icon.isEmpty())
- return;
-
- image->setName(icon.name());
- image->setSource(icon.source());
- image->setSourceSize(QSize(icon.width(), icon.height()));
- image->setColor(icon.color());
- image->setCache(icon.cache());
- const int valign = alignment & Qt::AlignVertical_Mask;
- image->setVerticalAlignment(static_cast<QQuickImage::VAlignment>(valign));
- const int halign = alignment & Qt::AlignHorizontal_Mask;
- image->setHorizontalAlignment(static_cast<QQuickImage::HAlignment>(halign));
-}
-
-void QQuickIconLabelPrivate::updateOrSyncImage()
-{
- if (updateImage()) {
- if (componentComplete) {
- updateImplicitSize();
- layout();
- }
- } else {
- syncImage();
- }
-}
-
-bool QQuickIconLabelPrivate::createLabel()
-{
- Q_Q(QQuickIconLabel);
- if (label)
- return false;
-
- label = new QQuickMnemonicLabel(q);
- watchChanges(label);
- beginClass(label);
- label->setObjectName(QStringLiteral("label"));
- label->setFont(font);
- label->setColor(color);
- label->setElideMode(QQuickText::ElideRight);
- const int valign = alignment & Qt::AlignVertical_Mask;
- label->setVAlign(static_cast<QQuickText::VAlignment>(valign));
- const int halign = alignment & Qt::AlignHorizontal_Mask;
- label->setHAlign(static_cast<QQuickText::HAlignment>(halign));
- label->setText(text);
- if (componentComplete)
- completeComponent(label);
- return true;
-}
-
-bool QQuickIconLabelPrivate::destroyLabel()
-{
- if (!label)
- return false;
-
- unwatchChanges(label);
- delete label;
- label = nullptr;
- return true;
-}
-
-bool QQuickIconLabelPrivate::updateLabel()
-{
- if (!hasText())
- return destroyLabel();
- return createLabel();
-}
-
-void QQuickIconLabelPrivate::syncLabel()
-{
- if (!label)
- return;
-
- label->setText(text);
-}
-
-void QQuickIconLabelPrivate::updateOrSyncLabel()
-{
- if (updateLabel()) {
- if (componentComplete) {
- updateImplicitSize();
- layout();
- }
- } else {
- syncLabel();
- }
-}
-
-void QQuickIconLabelPrivate::updateImplicitSize()
-{
- Q_Q(QQuickIconLabel);
- const bool showIcon = image && hasIcon();
- const bool showText = label && hasText();
- const qreal horizontalPadding = leftPadding + rightPadding;
- const qreal verticalPadding = topPadding + bottomPadding;
- const qreal iconImplicitWidth = showIcon ? image->implicitWidth() : 0;
- const qreal iconImplicitHeight = showIcon ? image->implicitHeight() : 0;
- const qreal textImplicitWidth = showText ? label->implicitWidth() : 0;
- const qreal textImplicitHeight = showText ? label->implicitHeight() : 0;
- const qreal effectiveSpacing = showText && showIcon && image->implicitWidth() > 0 ? spacing : 0;
- const qreal implicitWidth = display == QQuickIconLabel::TextBesideIcon ? iconImplicitWidth + textImplicitWidth + effectiveSpacing
- : qMax(iconImplicitWidth, textImplicitWidth);
- const qreal implicitHeight = display == QQuickIconLabel::TextUnderIcon ? iconImplicitHeight + textImplicitHeight + effectiveSpacing
- : qMax(iconImplicitHeight, textImplicitHeight);
- q->setImplicitSize(implicitWidth + horizontalPadding, implicitHeight + verticalPadding);
-}
-
-// adapted from QStyle::alignedRect()
-static QRectF alignedRect(bool mirrored, Qt::Alignment alignment, const QSizeF &size, const QRectF &rectangle)
-{
- alignment = QGuiApplicationPrivate::visualAlignment(mirrored ? Qt::RightToLeft : Qt::LeftToRight, alignment);
- qreal x = rectangle.x();
- qreal y = rectangle.y();
- const qreal w = size.width();
- const qreal h = size.height();
- if ((alignment & Qt::AlignVCenter) == Qt::AlignVCenter)
- y += rectangle.height() / 2 - h / 2;
- else if ((alignment & Qt::AlignBottom) == Qt::AlignBottom)
- y += rectangle.height() - h;
- if ((alignment & Qt::AlignRight) == Qt::AlignRight)
- x += rectangle.width() - w;
- else if ((alignment & Qt::AlignHCenter) == Qt::AlignHCenter)
- x += rectangle.width() / 2 - w / 2;
- return QRectF(x, y, w, h);
-}
-
-void QQuickIconLabelPrivate::layout()
-{
- Q_Q(QQuickIconLabel);
- if (!componentComplete)
- return;
-
- const qreal availableWidth = width - leftPadding - rightPadding;
- const qreal availableHeight = height - topPadding - bottomPadding;
-
- switch (display) {
- case QQuickIconLabel::IconOnly:
- if (image) {
- const QRectF iconRect = alignedRect(mirrored, alignment,
- QSizeF(qMin(image->implicitWidth(), availableWidth),
- qMin(image->implicitHeight(), availableHeight)),
- QRectF(leftPadding, topPadding, availableWidth, availableHeight));
- image->setSize(iconRect.size());
- image->setPosition(iconRect.topLeft());
- }
- break;
- case QQuickIconLabel::TextOnly:
- if (label) {
- const QRectF textRect = alignedRect(mirrored, alignment,
- QSizeF(qMin(label->implicitWidth(), availableWidth),
- qMin(label->implicitHeight(), availableHeight)),
- QRectF(leftPadding, topPadding, availableWidth, availableHeight));
- label->setSize(textRect.size());
- label->setPosition(textRect.topLeft());
- }
- break;
-
- case QQuickIconLabel::TextUnderIcon: {
- // Work out the sizes first, as the positions depend on them.
- QSizeF iconSize;
- QSizeF textSize;
- if (image) {
- iconSize.setWidth(qMin(image->implicitWidth(), availableWidth));
- iconSize.setHeight(qMin(image->implicitHeight(), availableHeight));
- }
- qreal effectiveSpacing = 0;
- if (label) {
- if (!iconSize.isEmpty())
- effectiveSpacing = spacing;
- textSize.setWidth(qMin(label->implicitWidth(), availableWidth));
- textSize.setHeight(qMin(label->implicitHeight(), availableHeight - iconSize.height() - effectiveSpacing));
- }
-
- QRectF combinedRect = alignedRect(mirrored, alignment,
- QSizeF(qMax(iconSize.width(), textSize.width()),
- iconSize.height() + effectiveSpacing + textSize.height()),
- QRectF(leftPadding, topPadding, availableWidth, availableHeight));
- if (image) {
- QRectF iconRect = alignedRect(mirrored, Qt::AlignHCenter | Qt::AlignTop, iconSize, combinedRect);
- image->setSize(iconRect.size());
- image->setPosition(iconRect.topLeft());
- }
- if (label) {
- QRectF textRect = alignedRect(mirrored, Qt::AlignHCenter | Qt::AlignBottom, textSize, combinedRect);
- label->setSize(textRect.size());
- label->setPosition(textRect.topLeft());
- }
- break;
- }
-
- case QQuickIconLabel::TextBesideIcon:
- default:
- // Work out the sizes first, as the positions depend on them.
- QSizeF iconSize(0, 0);
- QSizeF textSize(0, 0);
- if (image) {
- iconSize.setWidth(qMin(image->implicitWidth(), availableWidth));
- iconSize.setHeight(qMin(image->implicitHeight(), availableHeight));
- }
- qreal effectiveSpacing = 0;
- if (label) {
- if (!iconSize.isEmpty())
- effectiveSpacing = spacing;
- textSize.setWidth(qMin(label->implicitWidth(), availableWidth - iconSize.width() - effectiveSpacing));
- textSize.setHeight(qMin(label->implicitHeight(), availableHeight));
- }
-
- const QRectF combinedRect = alignedRect(mirrored, alignment,
- QSizeF(iconSize.width() + effectiveSpacing + textSize.width(),
- qMax(iconSize.height(), textSize.height())),
- QRectF(leftPadding, topPadding, availableWidth, availableHeight));
- if (image) {
- const QRectF iconRect = alignedRect(mirrored, Qt::AlignLeft | Qt::AlignVCenter, iconSize, combinedRect);
- image->setSize(iconRect.size());
- image->setPosition(iconRect.topLeft());
- }
- if (label) {
- const QRectF textRect = alignedRect(mirrored, Qt::AlignRight | Qt::AlignVCenter, textSize, combinedRect);
- label->setSize(textRect.size());
- label->setPosition(textRect.topLeft());
- }
- break;
- }
-
- q->setBaselineOffset(label ? label->y() + label->baselineOffset() : 0);
-}
-
-static const QQuickItemPrivate::ChangeTypes itemChangeTypes =
- QQuickItemPrivate::ImplicitWidth
- | QQuickItemPrivate::ImplicitHeight
- | QQuickItemPrivate::Destroyed;
-
-void QQuickIconLabelPrivate::watchChanges(QQuickItem *item)
-{
- QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
- itemPrivate->addItemChangeListener(this, itemChangeTypes);
-}
-
-void QQuickIconLabelPrivate::unwatchChanges(QQuickItem* item)
-{
- QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
- itemPrivate->removeItemChangeListener(this, itemChangeTypes);
-}
-
-void QQuickIconLabelPrivate::itemImplicitWidthChanged(QQuickItem *)
-{
- updateImplicitSize();
- layout();
-}
-
-void QQuickIconLabelPrivate::itemImplicitHeightChanged(QQuickItem *)
-{
- updateImplicitSize();
- layout();
-}
-
-void QQuickIconLabelPrivate::itemDestroyed(QQuickItem *item)
-{
- unwatchChanges(item);
- if (item == image)
- image = nullptr;
- else if (item == label)
- label = nullptr;
-}
-
-QQuickIconLabel::QQuickIconLabel(QQuickItem *parent)
- : QQuickItem(*(new QQuickIconLabelPrivate), parent)
-{
-}
-
-QQuickIconLabel::~QQuickIconLabel()
-{
- Q_D(QQuickIconLabel);
- if (d->image)
- d->unwatchChanges(d->image);
- if (d->label)
- d->unwatchChanges(d->label);
-}
-
-QQuickIcon QQuickIconLabel::icon() const
-{
- Q_D(const QQuickIconLabel);
- return d->icon;
-}
-
-void QQuickIconLabel::setIcon(const QQuickIcon &icon)
-{
- Q_D(QQuickIconLabel);
- if (d->icon == icon)
- return;
-
- d->icon = icon;
- d->updateOrSyncImage();
-}
-
-QString QQuickIconLabel::text() const
-{
- Q_D(const QQuickIconLabel);
- return d->text;
-}
-
-void QQuickIconLabel::setText(const QString &text)
-{
- Q_D(QQuickIconLabel);
- if (d->text == text)
- return;
-
- d->text = text;
- d->updateOrSyncLabel();
-}
-
-QFont QQuickIconLabel::font() const
-{
- Q_D(const QQuickIconLabel);
- return d->font;
-}
-
-void QQuickIconLabel::setFont(const QFont &font)
-{
- Q_D(QQuickIconLabel);
- if (d->font == font)
- return;
-
- d->font = font;
- if (d->label)
- d->label->setFont(font);
-}
-
-QColor QQuickIconLabel::color() const
-{
- Q_D(const QQuickIconLabel);
- return d->color;
-}
-
-void QQuickIconLabel::setColor(const QColor &color)
-{
- Q_D(QQuickIconLabel);
- if (d->color == color)
- return;
-
- d->color = color;
- if (d->label)
- d->label->setColor(color);
-}
-
-QQuickIconLabel::Display QQuickIconLabel::display() const
-{
- Q_D(const QQuickIconLabel);
- return d->display;
-}
-
-void QQuickIconLabel::setDisplay(Display display)
-{
- Q_D(QQuickIconLabel);
- if (d->display == display)
- return;
-
- d->display = display;
- d->updateImage();
- d->updateLabel();
- d->updateImplicitSize();
- d->layout();
-}
-
-qreal QQuickIconLabel::spacing() const
-{
- Q_D(const QQuickIconLabel);
- return d->spacing;
-}
-
-void QQuickIconLabel::setSpacing(qreal spacing)
-{
- Q_D(QQuickIconLabel);
- if (qFuzzyCompare(d->spacing, spacing))
- return;
-
- d->spacing = spacing;
- if (d->image && d->label) {
- d->updateImplicitSize();
- d->layout();
- }
-}
-
-bool QQuickIconLabel::isMirrored() const
-{
- Q_D(const QQuickIconLabel);
- return d->mirrored;
-}
-
-void QQuickIconLabel::setMirrored(bool mirrored)
-{
- Q_D(QQuickIconLabel);
- if (d->mirrored == mirrored)
- return;
-
- d->mirrored = mirrored;
- d->layout();
-}
-
-Qt::Alignment QQuickIconLabel::alignment() const
-{
- Q_D(const QQuickIconLabel);
- return d->alignment;
-}
-
-void QQuickIconLabel::setAlignment(Qt::Alignment alignment)
-{
- Q_D(QQuickIconLabel);
- const int valign = alignment & Qt::AlignVertical_Mask;
- const int halign = alignment & Qt::AlignHorizontal_Mask;
- const uint align = (valign ? valign : Qt::AlignVCenter) | (halign ? halign : Qt::AlignHCenter);
- if (d->alignment == align)
- return;
-
- d->alignment = static_cast<Qt::Alignment>(align);
- if (d->label) {
- d->label->setVAlign(static_cast<QQuickText::VAlignment>(valign));
- d->label->setHAlign(static_cast<QQuickText::HAlignment>(halign));
- }
- if (d->image) {
- d->image->setVerticalAlignment(static_cast<QQuickImage::VAlignment>(valign));
- d->image->setHorizontalAlignment(static_cast<QQuickImage::HAlignment>(halign));
- }
- d->layout();
-}
-
-qreal QQuickIconLabel::topPadding() const
-{
- Q_D(const QQuickIconLabel);
- return d->topPadding;
-}
-
-void QQuickIconLabel::setTopPadding(qreal padding)
-{
- Q_D(QQuickIconLabel);
- if (qFuzzyCompare(d->topPadding, padding))
- return;
-
- d->topPadding = padding;
- d->updateImplicitSize();
- d->layout();
-}
-
-void QQuickIconLabel::resetTopPadding()
-{
- setTopPadding(0);
-}
-
-qreal QQuickIconLabel::leftPadding() const
-{
- Q_D(const QQuickIconLabel);
- return d->leftPadding;
-}
-
-void QQuickIconLabel::setLeftPadding(qreal padding)
-{
- Q_D(QQuickIconLabel);
- if (qFuzzyCompare(d->leftPadding, padding))
- return;
-
- d->leftPadding = padding;
- d->updateImplicitSize();
- d->layout();
-}
-
-void QQuickIconLabel::resetLeftPadding()
-{
- setLeftPadding(0);
-}
-
-qreal QQuickIconLabel::rightPadding() const
-{
- Q_D(const QQuickIconLabel);
- return d->rightPadding;
-}
-
-void QQuickIconLabel::setRightPadding(qreal padding)
-{
- Q_D(QQuickIconLabel);
- if (qFuzzyCompare(d->rightPadding, padding))
- return;
-
- d->rightPadding = padding;
- d->updateImplicitSize();
- d->layout();
-}
-
-void QQuickIconLabel::resetRightPadding()
-{
- setRightPadding(0);
-}
-
-qreal QQuickIconLabel::bottomPadding() const
-{
- Q_D(const QQuickIconLabel);
- return d->bottomPadding;
-}
-
-void QQuickIconLabel::setBottomPadding(qreal padding)
-{
- Q_D(QQuickIconLabel);
- if (qFuzzyCompare(d->bottomPadding, padding))
- return;
-
- d->bottomPadding = padding;
- d->updateImplicitSize();
- d->layout();
-}
-
-void QQuickIconLabel::resetBottomPadding()
-{
- setBottomPadding(0);
-}
-
-void QQuickIconLabel::componentComplete()
-{
- Q_D(QQuickIconLabel);
- if (d->image)
- completeComponent(d->image);
- if (d->label)
- completeComponent(d->label);
- QQuickItem::componentComplete();
- d->layout();
-}
-
-void QQuickIconLabel::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickIconLabel);
- QQuickItem::geometryChange(newGeometry, oldGeometry);
- d->layout();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickiconlabel_p.h b/src/quickcontrols2impl/qquickiconlabel_p.h
deleted file mode 100644
index 1ea0affb..00000000
--- a/src/quickcontrols2impl/qquickiconlabel_p.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKICONLABEL_P_H
-#define QQUICKICONLABEL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/qquickitem.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-#include <QtQuickTemplates2/private/qquickicon_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickIconLabelPrivate;
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickIconLabel : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(QQuickIcon icon READ icon WRITE setIcon FINAL)
- Q_PROPERTY(QString text READ text WRITE setText FINAL)
- Q_PROPERTY(QFont font READ font WRITE setFont FINAL)
- Q_PROPERTY(QColor color READ color WRITE setColor FINAL)
- Q_PROPERTY(Display display READ display WRITE setDisplay FINAL)
- Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing FINAL)
- Q_PROPERTY(bool mirrored READ isMirrored WRITE setMirrored FINAL)
- Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment FINAL)
- Q_PROPERTY(qreal topPadding READ topPadding WRITE setTopPadding RESET resetTopPadding FINAL)
- Q_PROPERTY(qreal leftPadding READ leftPadding WRITE setLeftPadding RESET resetLeftPadding FINAL)
- Q_PROPERTY(qreal rightPadding READ rightPadding WRITE setRightPadding RESET resetRightPadding FINAL)
- Q_PROPERTY(qreal bottomPadding READ bottomPadding WRITE setBottomPadding RESET resetBottomPadding FINAL)
- QML_NAMED_ELEMENT(IconLabel)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- enum Display {
- IconOnly,
- TextOnly,
- TextBesideIcon,
- TextUnderIcon
- };
- Q_ENUM(Display)
-
- explicit QQuickIconLabel(QQuickItem *parent = nullptr);
- ~QQuickIconLabel();
-
- QQuickIcon icon() const;
- void setIcon(const QQuickIcon &icon);
-
- QString text() const;
- void setText(const QString &text);
-
- QFont font() const;
- void setFont(const QFont &font);
-
- QColor color() const;
- void setColor(const QColor &color);
-
- Display display() const;
- void setDisplay(Display display);
-
- qreal spacing() const;
- void setSpacing(qreal spacing);
-
- bool isMirrored() const;
- void setMirrored(bool mirrored);
-
- Qt::Alignment alignment() const;
- void setAlignment(Qt::Alignment alignment);
-
- qreal topPadding() const;
- void setTopPadding(qreal padding);
- void resetTopPadding();
-
- qreal leftPadding() const;
- void setLeftPadding(qreal padding);
- void resetLeftPadding();
-
- qreal rightPadding() const;
- void setRightPadding(qreal padding);
- void resetRightPadding();
-
- qreal bottomPadding() const;
- void setBottomPadding(qreal padding);
- void resetBottomPadding();
-
-protected:
- void componentComplete() override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
-
-private:
- Q_DISABLE_COPY(QQuickIconLabel)
- Q_DECLARE_PRIVATE(QQuickIconLabel)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickIconLabel)
-
-#endif // QQUICKICONLABEL_P_H
diff --git a/src/quickcontrols2impl/qquickiconlabel_p_p.h b/src/quickcontrols2impl/qquickiconlabel_p_p.h
deleted file mode 100644
index 18cefe53..00000000
--- a/src/quickcontrols2impl/qquickiconlabel_p_p.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKICONLABEL_P_P_H
-#define QQUICKICONLABEL_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-#include <QtQuickControls2Impl/private/qquickiconlabel_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickIconImage;
-class QQuickMnemonicLabel;
-
-class QQuickIconLabelPrivate : public QQuickItemPrivate, public QQuickItemChangeListener
-{
- Q_DECLARE_PUBLIC(QQuickIconLabel)
-
-public:
- bool hasIcon() const;
- bool hasText() const;
-
- bool createImage();
- bool destroyImage();
- bool updateImage();
- void syncImage();
- void updateOrSyncImage();
-
- bool createLabel();
- bool destroyLabel();
- bool updateLabel();
- void syncLabel();
- void updateOrSyncLabel();
-
- void updateImplicitSize();
- void layout();
-
- void watchChanges(QQuickItem *item);
- void unwatchChanges(QQuickItem *item);
- void setPositioningDirty();
-
- bool isLeftToRight() const;
-
- void itemImplicitWidthChanged(QQuickItem *) override;
- void itemImplicitHeightChanged(QQuickItem *) override;
- void itemDestroyed(QQuickItem *item) override;
-
- bool mirrored = false;
- QQuickIconLabel::Display display = QQuickIconLabel::TextBesideIcon;
- Qt::Alignment alignment = Qt::AlignCenter;
- qreal spacing = 0;
- qreal topPadding = 0;
- qreal leftPadding = 0;
- qreal rightPadding = 0;
- qreal bottomPadding = 0;
- QFont font;
- QColor color;
- QString text;
- QQuickIcon icon;
- QQuickIconImage *image = nullptr;
- QQuickMnemonicLabel *label = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKICONLABEL_P_P_H
diff --git a/src/quickcontrols2impl/qquickitemgroup.cpp b/src/quickcontrols2impl/qquickitemgroup.cpp
deleted file mode 100644
index c4307001..00000000
--- a/src/quickcontrols2impl/qquickitemgroup.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickitemgroup_p.h"
-
-#include <QtQuick/private/qquickimplicitsizeitem_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickItemGroup::QQuickItemGroup(QQuickItem *parent)
- : QQuickImplicitSizeItem(*(new QQuickImplicitSizeItemPrivate), parent)
-{
-}
-
-QQuickItemGroup::~QQuickItemGroup()
-{
- const auto children = childItems();
- for (QQuickItem *child : children)
- unwatch(child);
-}
-
-void QQuickItemGroup::watch(QQuickItem *item)
-{
- QQuickItemPrivate::get(item)->addItemChangeListener(this, QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight);
-}
-
-void QQuickItemGroup::unwatch(QQuickItem *item)
-{
- QQuickItemPrivate::get(item)->removeItemChangeListener(this, QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight);
-}
-
-QSizeF QQuickItemGroup::calculateImplicitSize() const
-{
- qreal width = 0;
- qreal height = 0;
- const auto children = childItems();
- for (QQuickItem *child : children) {
- width = qMax(width, child->implicitWidth());
- height = qMax(height, child->implicitHeight());
- }
- return QSizeF(width, height);
-}
-
-void QQuickItemGroup::updateImplicitSize()
-{
- QSizeF size = calculateImplicitSize();
- setImplicitSize(size.width(), size.height());
-}
-
-void QQuickItemGroup::itemChange(ItemChange change, const ItemChangeData &data)
-{
- QQuickImplicitSizeItem::itemChange(change, data);
- switch (change) {
- case ItemChildAddedChange:
- watch(data.item);
- data.item->setSize(QSizeF(width(), height()));
- updateImplicitSize();
- break;
- case ItemChildRemovedChange:
- unwatch(data.item);
- updateImplicitSize();
- break;
- default:
- break;
- }
-}
-
-void QQuickItemGroup::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- QQuickImplicitSizeItem::geometryChange(newGeometry, oldGeometry);
-
- if (newGeometry.size() != oldGeometry.size()) {
- const auto children = childItems();
- for (QQuickItem *child : children)
- child->setSize(newGeometry.size());
- }
-}
-
-void QQuickItemGroup::itemImplicitWidthChanged(QQuickItem *)
-{
- setImplicitWidth(calculateImplicitSize().width());
-}
-
-void QQuickItemGroup::itemImplicitHeightChanged(QQuickItem *)
-{
- setImplicitHeight(calculateImplicitSize().height());
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickitemgroup_p.h b/src/quickcontrols2impl/qquickitemgroup_p.h
deleted file mode 100644
index 9c04a990..00000000
--- a/src/quickcontrols2impl/qquickitemgroup_p.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKITEMGROUP_P_H
-#define QQUICKITEMGROUP_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquickimplicitsizeitem_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickItemGroup : public QQuickImplicitSizeItem, protected QQuickItemChangeListener
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(ItemGroup)
- QML_ADDED_IN_VERSION(2, 2)
-
-public:
- explicit QQuickItemGroup(QQuickItem *parent = nullptr);
- ~QQuickItemGroup();
-
-protected:
- void watch(QQuickItem *item);
- void unwatch(QQuickItem *item);
-
- QSizeF calculateImplicitSize() const;
- void updateImplicitSize();
-
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickItemGroup)
-
-#endif // QQUICKITEMGROUP_P_H
diff --git a/src/quickcontrols2impl/qquickmnemoniclabel.cpp b/src/quickcontrols2impl/qquickmnemoniclabel.cpp
deleted file mode 100644
index 309d076a..00000000
--- a/src/quickcontrols2impl/qquickmnemoniclabel.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmnemoniclabel_p.h"
-
-#include <QtQuick/private/qquicktext_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickMnemonicLabel::QQuickMnemonicLabel(QQuickItem *parent)
- : QQuickText(parent)
-{
-}
-
-QString QQuickMnemonicLabel::text() const
-{
- return m_fullText;
-}
-
-void QQuickMnemonicLabel::setText(const QString &text)
-{
- if (m_fullText == text)
- return;
-
- m_fullText = text;
- updateMnemonic();
-}
-
-bool QQuickMnemonicLabel::isMnemonicVisible() const
-{
- return m_mnemonicVisible;
-}
-
-void QQuickMnemonicLabel::setMnemonicVisible(bool visible)
-{
- if (m_mnemonicVisible == visible)
- return;
-
- m_mnemonicVisible = visible;
- updateMnemonic();
-
- if (isComponentComplete())
- forceLayout();
-}
-
-static QTextLayout::FormatRange underlineRange(int start, int length = 1)
-{
- QTextLayout::FormatRange range;
- range.start = start;
- range.length = length;
- range.format.setFontUnderline(true);
- return range;
-}
-
-// based on QPlatformTheme::removeMnemonics()
-void QQuickMnemonicLabel::updateMnemonic()
-{
- QString text(m_fullText.size(), QChar::Null);
- int idx = 0;
- int pos = 0;
- int len = m_fullText.length();
- QList<QTextLayout::FormatRange> formats;
- while (len) {
- if (m_fullText.at(pos) == QLatin1Char('&') && (len == 1 || m_fullText.at(pos + 1) != QLatin1Char('&'))) {
- if (m_mnemonicVisible && (pos == 0 || m_fullText.at(pos - 1) != QLatin1Char('&')))
- formats += underlineRange(pos);
- ++pos;
- --len;
- if (len == 0)
- break;
- } else if (m_fullText.at(pos) == QLatin1Char('(') && len >= 4 &&
- m_fullText.at(pos + 1) == QLatin1Char('&') &&
- m_fullText.at(pos + 2) != QLatin1Char('&') &&
- m_fullText.at(pos + 3) == QLatin1Char(')')) {
- // a mnemonic with format "\s*(&X)"
- if (m_mnemonicVisible) {
- formats += underlineRange(pos + 1);
- } else {
- int n = 0;
- while (idx > n && text.at(idx - n - 1).isSpace())
- ++n;
- idx -= n;
- pos += 4;
- len -= 4;
- continue;
- }
- }
- text[idx] = m_fullText.at(pos);
- ++pos;
- ++idx;
- --len;
- }
- text.truncate(idx);
-
- QQuickTextPrivate::get(this)->layout.setFormats(formats);
- QQuickText::setText(text);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickmnemoniclabel_p.h b/src/quickcontrols2impl/qquickmnemoniclabel_p.h
deleted file mode 100644
index 69ddbfb1..00000000
--- a/src/quickcontrols2impl/qquickmnemoniclabel_p.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMNEMONICLABEL_P_H
-#define QQUICKMNEMONICLABEL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquicktext_p.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickMnemonicLabel : public QQuickText
-{
- Q_OBJECT
- Q_PROPERTY(QString text READ text WRITE setText FINAL)
- Q_PROPERTY(bool mnemonicVisible READ isMnemonicVisible WRITE setMnemonicVisible FINAL)
- QML_NAMED_ELEMENT(MnemonicLabel)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickMnemonicLabel(QQuickItem *parent = nullptr);
-
- QString text() const;
- void setText(const QString &text);
-
- bool isMnemonicVisible() const;
- void setMnemonicVisible(bool visible);
-
-private:
- void updateMnemonic();
-
- bool m_mnemonicVisible = true;
- QString m_fullText;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickMnemonicLabel)
-
-#endif // QQUICKMNEMONICLABEL_P_H
diff --git a/src/quickcontrols2impl/qquickpaddedrectangle.cpp b/src/quickcontrols2impl/qquickpaddedrectangle.cpp
deleted file mode 100644
index fd9e9d90..00000000
--- a/src/quickcontrols2impl/qquickpaddedrectangle.cpp
+++ /dev/null
@@ -1,211 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickpaddedrectangle_p.h"
-
-#include <QtQuick/private/qsgadaptationlayer_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickPaddedRectangle::QQuickPaddedRectangle(QQuickItem *parent) :
- QQuickRectangle(parent)
-{
-}
-
-qreal QQuickPaddedRectangle::padding() const
-{
- return m_padding;
-}
-
-void QQuickPaddedRectangle::setPadding(qreal padding)
-{
- if (!qFuzzyCompare(m_padding, padding)) {
- m_padding = padding;
- update();
- emit paddingChanged();
- if (m_hasTopPadding)
- emit topPaddingChanged();
- if (!m_hasLeftPadding)
- emit leftPaddingChanged();
- if (!m_hasRightPadding)
- emit rightPaddingChanged();
- if (!m_hasBottomPadding)
- emit bottomPaddingChanged();
- }
-}
-
-void QQuickPaddedRectangle::resetPadding()
-{
- setPadding(0);
-}
-
-qreal QQuickPaddedRectangle::topPadding() const
-{
- return m_hasTopPadding ? m_topPadding : m_padding;
-}
-
-void QQuickPaddedRectangle::setTopPadding(qreal padding)
-{
- setTopPadding(padding, true);
-}
-
-void QQuickPaddedRectangle::resetTopPadding()
-{
- setTopPadding(0, false);
-}
-
-qreal QQuickPaddedRectangle::leftPadding() const
-{
- return m_hasLeftPadding ? m_leftPadding : m_padding;
-}
-
-void QQuickPaddedRectangle::setLeftPadding(qreal padding)
-{
- setLeftPadding(padding, true);
-}
-
-void QQuickPaddedRectangle::resetLeftPadding()
-{
- setLeftPadding(0, false);
-}
-
-qreal QQuickPaddedRectangle::rightPadding() const
-{
- return m_hasRightPadding ? m_rightPadding : m_padding;
-}
-
-void QQuickPaddedRectangle::setRightPadding(qreal padding)
-{
- setRightPadding(padding, true);
-}
-
-void QQuickPaddedRectangle::resetRightPadding()
-{
- setRightPadding(0, false);
-}
-
-qreal QQuickPaddedRectangle::bottomPadding() const
-{
- return m_hasBottomPadding ? m_bottomPadding : m_padding;
-}
-
-void QQuickPaddedRectangle::setBottomPadding(qreal padding)
-{
- setBottomPadding(padding, true);
-}
-
-void QQuickPaddedRectangle::resetBottomPadding()
-{
- setBottomPadding(0, false);
-}
-
-void QQuickPaddedRectangle::setTopPadding(qreal padding, bool has)
-{
- qreal oldPadding = topPadding();
- m_hasTopPadding = has;
- m_topPadding = padding;
- if (!qFuzzyCompare(oldPadding, padding)) {
- update();
- emit topPaddingChanged();
- }
-}
-
-void QQuickPaddedRectangle::setLeftPadding(qreal padding, bool has)
-{
- qreal oldPadding = leftPadding();
- m_hasLeftPadding = has;
- m_leftPadding = padding;
- if (!qFuzzyCompare(oldPadding, padding)) {
- update();
- emit leftPaddingChanged();
- }
-}
-
-void QQuickPaddedRectangle::setRightPadding(qreal padding, bool has)
-{
- qreal oldPadding = rightPadding();
- m_hasRightPadding = has;
- m_rightPadding = padding;
- if (!qFuzzyCompare(oldPadding, padding)) {
- update();
- emit rightPaddingChanged();
- }
-}
-
-void QQuickPaddedRectangle::setBottomPadding(qreal padding, bool has)
-{
- qreal oldPadding = bottomPadding();
- m_hasBottomPadding = has;
- m_bottomPadding = padding;
- if (!qFuzzyCompare(oldPadding, padding)) {
- update();
- emit bottomPaddingChanged();
- }
-}
-
-QSGNode *QQuickPaddedRectangle::updatePaintNode(QSGNode *node, UpdatePaintNodeData *data)
-{
- QSGTransformNode *transformNode = static_cast<QSGTransformNode *>(node);
- if (!transformNode)
- transformNode = new QSGTransformNode;
-
- QSGInternalRectangleNode *rectNode = static_cast<QSGInternalRectangleNode *>(QQuickRectangle::updatePaintNode(transformNode->firstChild(), data));
-
- if (rectNode) {
- if (!transformNode->firstChild())
- transformNode->appendChildNode(rectNode);
-
- qreal top = topPadding();
- qreal left = leftPadding();
- qreal right = rightPadding();
- qreal bottom = bottomPadding();
-
- if (!qFuzzyIsNull(top) || !qFuzzyIsNull(left) || !qFuzzyIsNull(right) || !qFuzzyIsNull(bottom)) {
- QMatrix4x4 m;
- m.translate(left, top);
- transformNode->setMatrix(m);
-
- qreal w = qMax<qreal>(0.0, width() -left-right);
- qreal h = qMax<qreal>(0.0, height() -top-bottom);
-
- rectNode->setRect(QRectF(0, 0, w, h));
- rectNode->update();
- }
- }
- return transformNode;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickpaddedrectangle_p.h b/src/quickcontrols2impl/qquickpaddedrectangle_p.h
deleted file mode 100644
index 27743270..00000000
--- a/src/quickcontrols2impl/qquickpaddedrectangle_p.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPADDEDRECTANGLE_P_H
-#define QQUICKPADDEDRECTANGLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquickrectangle_p.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickPaddedRectangle : public QQuickRectangle
-{
- Q_OBJECT
- Q_PROPERTY(qreal padding READ padding WRITE setPadding RESET resetPadding NOTIFY paddingChanged FINAL)
- Q_PROPERTY(qreal topPadding READ topPadding WRITE setTopPadding RESET resetTopPadding NOTIFY topPaddingChanged FINAL)
- Q_PROPERTY(qreal leftPadding READ leftPadding WRITE setLeftPadding RESET resetLeftPadding NOTIFY leftPaddingChanged FINAL)
- Q_PROPERTY(qreal rightPadding READ rightPadding WRITE setRightPadding RESET resetRightPadding NOTIFY rightPaddingChanged FINAL)
- Q_PROPERTY(qreal bottomPadding READ bottomPadding WRITE setBottomPadding RESET resetBottomPadding NOTIFY bottomPaddingChanged FINAL)
- QML_NAMED_ELEMENT(PaddedRectangle)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- QQuickPaddedRectangle(QQuickItem *parent = nullptr);
-
- qreal padding() const;
- void setPadding(qreal padding);
- void resetPadding();
-
- qreal topPadding() const;
- void setTopPadding(qreal padding);
- void resetTopPadding();
-
- qreal leftPadding() const;
- void setLeftPadding(qreal padding);
- void resetLeftPadding();
-
- qreal rightPadding() const;
- void setRightPadding(qreal padding);
- void resetRightPadding();
-
- qreal bottomPadding() const;
- void setBottomPadding(qreal padding);
- void resetBottomPadding();
-
-Q_SIGNALS:
- void paddingChanged();
- void topPaddingChanged();
- void leftPaddingChanged();
- void rightPaddingChanged();
- void bottomPaddingChanged();
-
-protected:
- QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
-
-private:
- void setTopPadding(qreal padding, bool has);
- void setLeftPadding(qreal padding, bool has);
- void setRightPadding(qreal padding, bool has);
- void setBottomPadding(qreal padding, bool has);
-
- qreal m_padding = 0;
- qreal m_topPadding = 0;
- qreal m_leftPadding = 0;
- qreal m_rightPadding = 0;
- qreal m_bottomPadding = 0;
- bool m_hasTopPadding = false;
- bool m_hasLeftPadding = false;
- bool m_hasRightPadding = false;
- bool m_hasBottomPadding = false;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPaddedRectangle)
-
-#endif // QQUICKPADDEDRECTANGLE_P_H
diff --git a/src/quickcontrols2impl/qquickplaceholdertext.cpp b/src/quickcontrols2impl/qquickplaceholdertext.cpp
deleted file mode 100644
index 2fe6be07..00000000
--- a/src/quickcontrols2impl/qquickplaceholdertext.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplaceholdertext_p.h"
-
-#include <QtQuick/private/qquicktext_p_p.h>
-#include <QtQuick/private/qquicktextinput_p_p.h>
-#include <QtQuick/private/qquicktextedit_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickPlaceholderText::QQuickPlaceholderText(QQuickItem *parent) : QQuickText(parent)
-{
-}
-
-void QQuickPlaceholderText::componentComplete()
-{
- QQuickText::componentComplete();
- connect(parentItem(), SIGNAL(effectiveHorizontalAlignmentChanged()), this, SLOT(updateAlignment()));
- updateAlignment();
-}
-
-void QQuickPlaceholderText::updateAlignment()
-{
- if (QQuickTextInput *input = qobject_cast<QQuickTextInput *>(parentItem())) {
- if (QQuickTextInputPrivate::get(input)->hAlignImplicit)
- resetHAlign();
- else
- setHAlign(static_cast<HAlignment>(input->hAlign()));
- } else if (QQuickTextEdit *edit = qobject_cast<QQuickTextEdit *>(parentItem())) {
- if (QQuickTextEditPrivate::get(edit)->hAlignImplicit)
- resetHAlign();
- else
- setHAlign(static_cast<HAlignment>(edit->hAlign()));
- } else {
- resetHAlign();
- }
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qquickplaceholdertext_p.h b/src/quickcontrols2impl/qquickplaceholdertext_p.h
deleted file mode 100644
index 0beccd72..00000000
--- a/src/quickcontrols2impl/qquickplaceholdertext_p.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLACEHOLDERTEXT_P_H
-#define QQUICKPLACEHOLDERTEXT_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquicktext_p.h>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickPlaceholderText : public QQuickText
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(PlaceholderText)
- QML_ADDED_IN_VERSION(2, 2)
-
-public:
- explicit QQuickPlaceholderText(QQuickItem *parent = nullptr);
-
-protected:
- void componentComplete() override;
-
-private Q_SLOTS:
- void updateAlignment();
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPlaceholderText)
-
-#endif // QQUICKPLACEHOLDERTEXT_P_H
diff --git a/src/quickcontrols2impl/qquicktumblerview.cpp b/src/quickcontrols2impl/qquicktumblerview.cpp
deleted file mode 100644
index 911e2ae8..00000000
--- a/src/quickcontrols2impl/qquicktumblerview.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktumblerview_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qquicklistview_p.h>
-#include <QtQuick/private/qquickpathview_p.h>
-
-#include <QtQuickTemplates2/private/qquicktumbler_p.h>
-#include <QtQuickTemplates2/private/qquicktumbler_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcTumblerView, "qt.quick.controls.tumblerview")
-
-QQuickTumblerView::QQuickTumblerView(QQuickItem *parent) :
- QQuickItem(parent)
-{
- // We don't call createView() here because we don't know what the wrap flag is set to
- // yet, and we don't want to create a view that might never get used.
-}
-
-QVariant QQuickTumblerView::model() const
-{
- return m_model;
-}
-
-void QQuickTumblerView::setModel(const QVariant &model)
-{
- qCDebug(lcTumblerView) << "setting model to:" << model << "on"
- << (m_pathView ? static_cast<QObject*>(m_pathView) : static_cast<QObject*>(m_listView));
- if (model == m_model)
- return;
-
- m_model = model;
-
- if (m_pathView) {
- m_pathView->setModel(m_model);
- } else if (m_listView) {
- // QQuickItemView::setModel() resets the current index,
- // but if we're still creating the Tumbler, it should be maintained.
- const int oldCurrentIndex = m_listView->currentIndex();
- m_listView->setModel(m_model);
- if (!isComponentComplete())
- m_listView->setCurrentIndex(oldCurrentIndex);
- }
-
- emit modelChanged();
-}
-
-QQmlComponent *QQuickTumblerView::delegate() const
-{
- return m_delegate;
-}
-
-void QQuickTumblerView::setDelegate(QQmlComponent *delegate)
-{
- qCDebug(lcTumblerView) << "setting delegate to:" << delegate << "on"
- << (m_pathView ? static_cast<QObject*>(m_pathView) : static_cast<QObject*>(m_listView));
- if (delegate == m_delegate)
- return;
-
- m_delegate = delegate;
-
- if (m_pathView)
- m_pathView->setDelegate(m_delegate);
- else if (m_listView)
- m_listView->setDelegate(m_delegate);
-
- emit delegateChanged();
-}
-
-QQuickPath *QQuickTumblerView::path() const
-{
- return m_path;
-}
-
-void QQuickTumblerView::setPath(QQuickPath *path)
-{
- if (path == m_path)
- return;
-
- m_path = path;
- emit pathChanged();
-}
-
-void QQuickTumblerView::createView()
-{
- Q_ASSERT(m_tumbler);
-
- // We create a view regardless of whether or not we know
- // the count yet, because we rely on the view to tell us the count.
- if (m_tumbler->wrap()) {
- if (m_listView) {
- // It's necessary to call deleteLater() rather than delete,
- // as this code is most likely being run in rensponse to a signal
- // emission somewhere in the list view's internals, so we need to
- // wait until that has finished.
- m_listView->deleteLater();
- QQml_setParent_noEvent(m_listView, nullptr);
- // The auto tests pass with unparenting the list view alone, but
- // just to be sure, we unset some other things as well.
- m_listView->setParentItem(nullptr);
- m_listView->setVisible(false);
- m_listView->setModel(QVariant());
- m_listView = nullptr;
- }
-
- if (!m_pathView) {
- qCDebug(lcTumblerView) << "creating PathView";
-
- m_pathView = new QQuickPathView;
- QQmlEngine::setContextForObject(m_pathView, qmlContext(this));
- QQml_setParent_noEvent(m_pathView, this);
- m_pathView->setParentItem(this);
- m_pathView->setPath(m_path);
- m_pathView->setDelegate(m_delegate);
- m_pathView->setPreferredHighlightBegin(0.5);
- m_pathView->setPreferredHighlightEnd(0.5);
- m_pathView->setHighlightMoveDuration(1000);
- m_pathView->setClip(true);
-
- // Give the view a size.
- updateView();
- // Set the model.
- updateModel();
-
- qCDebug(lcTumblerView) << "finished creating PathView";
- }
- } else {
- if (m_pathView) {
- m_pathView->deleteLater();
- QQml_setParent_noEvent(m_pathView, nullptr);
- m_pathView->setParentItem(nullptr);
- m_pathView->setVisible(false);
- m_pathView->setModel(QVariant());
- m_pathView = nullptr;
- }
-
- if (!m_listView) {
- qCDebug(lcTumblerView) << "creating ListView";
-
- m_listView = new QQuickListView;
- QQmlEngine::setContextForObject(m_listView, qmlContext(this));
- QQml_setParent_noEvent(m_listView, this);
- m_listView->setParentItem(this);
- m_listView->setSnapMode(QQuickListView::SnapToItem);
- m_listView->setClip(true);
-
- // Give the view a size.
- updateView();
- // Set the model.
- updateModel();
-
- // Set these after the model is set so that the currentItem animation
- // happens instantly on startup/after switching models. If we set them too early,
- // the view animates any potential currentIndex change over one second,
- // which we don't want when the contentItem has just been created.
- m_listView->setDelegate(m_delegate);
- // Set this after setting the delegate to avoid unexpected currentIndex changes: QTBUG-79150
- m_listView->setHighlightRangeMode(QQuickListView::StrictlyEnforceRange);
- m_listView->setHighlightMoveDuration(1000);
-
- qCDebug(lcTumblerView) << "finished creating ListView";
- }
- }
-}
-
-// Called whenever the size or visibleItemCount changes.
-void QQuickTumblerView::updateView()
-{
- QQuickItem *theView = view();
- if (!theView)
- return;
-
- theView->setSize(QSizeF(width(), height()));
-
- // Can be called in geometryChange when it might not have a parent item yet.
- if (!m_tumbler)
- return;
-
- // Set view-specific properties that have a dependency on the size, etc.
- if (m_pathView) {
- m_pathView->setPathItemCount(m_tumbler->visibleItemCount() + 1);
- m_pathView->setDragMargin(width() / 2);
- } else {
- m_listView->setPreferredHighlightBegin(height() / 2 - (height() / m_tumbler->visibleItemCount() / 2));
- m_listView->setPreferredHighlightEnd(height() / 2 + (height() / m_tumbler->visibleItemCount() / 2));
- }
-}
-
-void QQuickTumblerView::updateModel()
-{
- if (m_pathView && !m_pathView->model().isValid() && m_model.isValid()) {
- // QQuickPathView::setPathItemCount() resets the offset animation,
- // so we just skip the animation while constructing the view.
- const int oldHighlightMoveDuration = m_pathView->highlightMoveDuration();
- m_pathView->setHighlightMoveDuration(0);
-
- // Setting model can change the count, which can affect the wrap, which can cause
- // the current view to be deleted before setModel() is finished, which causes a crash.
- // Since QQuickTumbler can't know about QQuickTumblerView, we use its private API to
- // inform it that it should delay setting wrap.
- QQuickTumblerPrivate *tumblerPrivate = QQuickTumblerPrivate::get(m_tumbler);
- tumblerPrivate->beginSetModel();
- m_pathView->setModel(m_model);
- tumblerPrivate->endSetModel();
-
- // The count-depends-on-wrap behavior could cause wrap to change after
- // the call above, so we must check that we're still using a PathView.
- if (m_pathView)
- m_pathView->setHighlightMoveDuration(oldHighlightMoveDuration);
- } else if (m_listView && !m_listView->model().isValid() && m_model.isValid()) {
- const int currentIndex = m_tumbler->currentIndex();
- QQuickTumblerPrivate *tumblerPrivate = QQuickTumblerPrivate::get(m_tumbler);
-
- // setModel() causes QQuickTumblerPrivate::_q_onViewCountChanged() to
- // be called, which calls QQuickTumbler::setCurrentIndex(),
- // which results in QQuickItemViewPrivate::createHighlightItem() being
- // called. When the highlight item is created,
- // QQuickTumblerPrivate::itemChildAdded() is notified and
- // QQuickTumblerPrivate::_q_updateItemHeights() is called, which causes
- // a geometry change in the item and createHighlight() is called again.
- // However, since the highlight item hadn't been assigned yet in the
- // previous call frame, the "if (highlight) { delete highlight; }"
- // check doesn't succeed, so the item is never deleted.
- //
- // To avoid this, we tell QQuickTumblerPrivate to ignore signals while
- // setting the model, and manually call _q_onViewCountChanged() to
- // ensure the correct sequence of calls happens (_q_onViewCountChanged()
- // has to be within the ignoreSignals scope, because it also generates
- // recursion otherwise).
- tumblerPrivate->ignoreSignals = true;
- m_listView->setModel(m_model);
- m_listView->setCurrentIndex(currentIndex);
-
- tumblerPrivate->_q_onViewCountChanged();
- tumblerPrivate->ignoreSignals = false;
- }
-}
-
-void QQuickTumblerView::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- QQuickItem::geometryChange(newGeometry, oldGeometry);
- updateView();
-}
-
-void QQuickTumblerView::componentComplete()
-{
- QQuickItem::componentComplete();
- updateView();
-}
-
-void QQuickTumblerView::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- QQuickItem::itemChange(change, data);
-
- if (change == QQuickItem::ItemParentHasChanged && data.item) {
- if (m_tumbler)
- m_tumbler->disconnect(this);
-
- m_tumbler = qobject_cast<QQuickTumbler*>(parentItem());
-
- if (m_tumbler) {
- // We assume that the parentChanged() signal of the tumbler will be emitted before its wrap property is set...
- connect(m_tumbler, &QQuickTumbler::wrapChanged, this, &QQuickTumblerView::createView);
- connect(m_tumbler, &QQuickTumbler::visibleItemCountChanged, this, &QQuickTumblerView::updateView);
- }
- }
-}
-
-QQuickItem *QQuickTumblerView::view()
-{
- if (!m_tumbler)
- return nullptr;
-
- if (m_tumbler->wrap())
- return m_pathView;
-
- return m_listView;
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquicktumblerview_p.cpp"
diff --git a/src/quickcontrols2impl/qquicktumblerview_p.h b/src/quickcontrols2impl/qquicktumblerview_p.h
deleted file mode 100644
index 44ce5fa6..00000000
--- a/src/quickcontrols2impl/qquicktumblerview_p.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTUMBLERVIEW_P_H
-#define QQUICKTUMBLERVIEW_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QQuickItem>
-#include <QtQuickControls2Impl/private/qtquickcontrols2implglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickListView;
-class QQuickPath;
-class QQuickPathView;
-
-class QQuickTumbler;
-
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickTumblerView : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(QVariant model READ model WRITE setModel NOTIFY modelChanged)
- Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged)
- Q_PROPERTY(QQuickPath *path READ path WRITE setPath NOTIFY pathChanged)
- QML_NAMED_ELEMENT(TumblerView)
- QML_ADDED_IN_VERSION(2, 1)
-
-public:
- QQuickTumblerView(QQuickItem *parent = nullptr);
-
- QVariant model() const;
- void setModel(const QVariant &model);
-
- QQmlComponent *delegate() const;
- void setDelegate(QQmlComponent *delegate);
-
- QQuickPath *path() const;
- void setPath(QQuickPath *path);
-
-Q_SIGNALS:
- void modelChanged();
- void delegateChanged();
- void pathChanged();
-
-protected:
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- void componentComplete() override;
- void itemChange(ItemChange change, const ItemChangeData &data) override;
-
-private:
- QQuickItem *view();
- void createView();
- void updateView();
- void updateModel();
-
- void wrapChange();
-
- QQuickTumbler *m_tumbler = nullptr;
- QVariant m_model;
- QQmlComponent *m_delegate = nullptr;
- QQuickPathView *m_pathView = nullptr;
- QQuickListView *m_listView = nullptr;
- QQuickPath *m_path = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // TUMBLERVIEW_H
diff --git a/src/quickcontrols2impl/qtquickcontrols2foreign_p.h b/src/quickcontrols2impl/qtquickcontrols2foreign_p.h
deleted file mode 100644
index 6285e43c..00000000
--- a/src/quickcontrols2impl/qtquickcontrols2foreign_p.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtQml/qqml.h>
-#include <QtQuickTemplates2/private/qquickoverlay_p.h>
-#include <QtQuickTemplates2/private/qquicksplitview_p.h>
-
-QT_BEGIN_NAMESPACE
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-// These are necessary in order to use C++ types in a file where only QtQuick.Controls has been imported.
-// Control types like Button don't need this done for them, as each style module provides a Button type,
-// and QtQuick.Controls is a sort of alias for the active style import.
-
-struct QQuickOverlayAttachedForeign
-{
- Q_GADGET
- QML_NAMED_ELEMENT(Overlay)
- QML_FOREIGN(QQuickOverlay)
- QML_UNCREATABLE("")
- QML_ADDED_IN_VERSION(2, 3)
-};
-
-struct QQuickSplitHandleAttachedForeign
-{
- Q_GADGET
- QML_NAMED_ELEMENT(SplitHandle)
- QML_FOREIGN(QQuickSplitHandleAttached)
- QML_UNCREATABLE("")
- QML_ADDED_IN_VERSION(2, 13)
-};
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2impl/qtquickcontrols2implglobal_p.h b/src/quickcontrols2impl/qtquickcontrols2implglobal_p.h
deleted file mode 100644
index 1065aa78..00000000
--- a/src/quickcontrols2impl/qtquickcontrols2implglobal_p.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QTQUICKCONTROLS2IMPLGLOBAL_H
-#define QTQUICKCONTROLS2IMPLGLOBAL_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-
-#ifndef QT_STATIC
-# if defined(QT_BUILD_QUICKCONTROLS2IMPL_LIB)
-# define Q_QUICKCONTROLS2IMPL_EXPORT Q_DECL_EXPORT
-# else
-# define Q_QUICKCONTROLS2IMPL_EXPORT Q_DECL_IMPORT
-# endif
-#else
-# define Q_QUICKCONTROLS2IMPL_EXPORT
-#endif
-
-#define Q_QUICKCONTROLS2_PRIVATE_EXPORT Q_QUICKCONTROLS2IMPL_EXPORT
-
-#endif // QTQUICKCONTROLS2IMPLGLOBAL_H
diff --git a/src/quickdialogs2/CMakeLists.txt b/src/quickdialogs2/CMakeLists.txt
deleted file mode 100644
index 88ae9633..00000000
--- a/src/quickdialogs2/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-add_subdirectory(quickdialogs2utils)
-add_subdirectory(quickdialogs2quickimpl)
-add_subdirectory(quickdialogs2)
diff --git a/src/quickdialogs2/quickdialogs2/CMakeLists.txt b/src/quickdialogs2/quickdialogs2/CMakeLists.txt
deleted file mode 100644
index b73561b4..00000000
--- a/src/quickdialogs2/quickdialogs2/CMakeLists.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-#####################################################################
-## QuickDialogs2 Module:
-#####################################################################
-
-qt_internal_add_qml_module(QuickDialogs2
- URI "QtQuick.Dialogs"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickDialogsPlugin
- PLUGIN_TARGET qtquickdialogsplugin
- SOURCES
- qquickabstractdialog.cpp
- qquickabstractdialog_p.h
- qquickfiledialog.cpp
- qquickfiledialog_p.h
- qquickfontdialog.cpp
- qquickfontdialog_p.h
- qtquickdialogs2foreign_p.h
- qtquickdialogs2global_p.h
- DEFINES
- QT_BUILD_QUICKDIALOGS2_LIB
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- INCLUDE_DIRECTORIES
- ${CMAKE_CURRENT_SOURCE_DIR}
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickPrivate
- Qt::QuickDialogs2UtilsPrivate
- Qt::QuickDialogs2QuickImplPrivate
-)
-
-qt_internal_add_docs(QuickDialogs2
- doc/qtquickdialogs.qdocconf
-)
diff --git a/src/quickdialogs2/quickdialogs2/doc/images/qtquickdialogs-filedialog-gtk.png b/src/quickdialogs2/quickdialogs2/doc/images/qtquickdialogs-filedialog-gtk.png
deleted file mode 100644
index 9360d747..00000000
--- a/src/quickdialogs2/quickdialogs2/doc/images/qtquickdialogs-filedialog-gtk.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2/doc/images/qtquickdialogs-fontdialog-gtk.png b/src/quickdialogs2/quickdialogs2/doc/images/qtquickdialogs-fontdialog-gtk.png
deleted file mode 100644
index 0c6217bd..00000000
--- a/src/quickdialogs2/quickdialogs2/doc/images/qtquickdialogs-fontdialog-gtk.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2/doc/qtquickdialogs.qdocconf b/src/quickdialogs2/quickdialogs2/doc/qtquickdialogs.qdocconf
deleted file mode 100644
index 87296d6f..00000000
--- a/src/quickdialogs2/quickdialogs2/doc/qtquickdialogs.qdocconf
+++ /dev/null
@@ -1,41 +0,0 @@
-include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
-include($QT_INSTALL_DOCS/config/exampleurl-qtquickcontrols2.qdocconf)
-
-project = QtQuickDialogs
-description = Qt Quick Dialogs Reference Documentation
-version = $QT_VERSION
-
-qhp.projects = QtQuickDialogs
-
-qhp.QtQuickDialogs.file = qtquickdialogs.qhp
-qhp.QtQuickDialogs.namespace = org.qt-project.qtquickdialogs.$QT_VERSION_TAG
-qhp.QtQuickDialogs.virtualFolder = qtquickdialogs
-qhp.QtQuickDialogs.indexTitle = Qt Quick Dialogs QML Types
-qhp.QtQuickDialogs.indexRoot =
-
-qhp.QtQuickDialogs.filterAttributes = qtquickdialogs $QT_VERSION qtrefdoc
-qhp.QtQuickDialogs.customFilters.Qt.name = QtQuickDialogs $QT_VERSION
-qhp.QtQuickDialogs.customFilters.Qt.filterAttributes = qtquickdialogs $QT_VERSION
-
-qhp.QtQuickDialogs.subprojects = qmltypes
-qhp.QtQuickDialogs.subprojects.qmltypes.title = QML Types
-qhp.QtQuickDialogs.subprojects.qmltypes.indexTitle = Qt Quick Dialogs QML Types
-qhp.QtQuickDialogs.subprojects.qmltypes.selectors = qmlclass
-qhp.QtQuickDialogs.subprojects.qmltypes.sortPages = true
-
-depends = qtcore qtgui qtdoc qtqml qtquick qtquickcontrols
-
-# This module has no documented C++ types, clear the module header
-moduleheader =
-
-headerdirs += ..
-sourcedirs += .. \
- src
-
-imagedirs += images
-
-navigation.landingpage = "Qt Quick Dialogs QML Types"
-navigation.landingtitle = "Qt Quick Dialogs"
-navigation.qmltypespage = "Qt Quick Dialogs QML Types"
-
-tagfile = qtquickdialogs.tags
diff --git a/src/quickdialogs2/quickdialogs2/doc/src/includes/fallback.qdocinc b/src/quickdialogs2/quickdialogs2/doc/src/includes/fallback.qdocinc
deleted file mode 100644
index f3a4a180..00000000
--- a/src/quickdialogs2/quickdialogs2/doc/src/includes/fallback.qdocinc
+++ /dev/null
@@ -1 +0,0 @@
-Qt Quick Dialogs uses a Qt Quick implementation as a fallback on platforms that do not have a native implementation available.
diff --git a/src/quickdialogs2/quickdialogs2/doc/src/qtquickdialogs-module.qdoc b/src/quickdialogs2/quickdialogs2/doc/src/qtquickdialogs-module.qdoc
deleted file mode 100644
index 4ee8b8b1..00000000
--- a/src/quickdialogs2/quickdialogs2/doc/src/qtquickdialogs-module.qdoc
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \qmlmodule QtQuick.Dialogs
- \title Qt Quick Dialogs QML Types
- \brief Provides native dialogs with a Qt Quick fallback on platforms that
- do not provide a native implementation.
- \since 6.2
-
- \include includes/fallback.qdocinc
-
- To use types in this module, use the following import statement:
-
- \badcode
- import QtQuick.Dialogs
- \endcode
-
- \section1 QML Types
-*/
diff --git a/src/quickdialogs2/quickdialogs2/qquickabstractdialog.cpp b/src/quickdialogs2/quickdialogs2/qquickabstractdialog.cpp
deleted file mode 100644
index 262e2ee3..00000000
--- a/src/quickdialogs2/quickdialogs2/qquickabstractdialog.cpp
+++ /dev/null
@@ -1,454 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickabstractdialog_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtQuick/qquickitem.h>
-#include <QtQuick/qquickwindow.h>
-#include <QtQuickDialogs2QuickImpl/private/qquickdialogimplfactory_p.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcDialogs, "qt.quick.dialogs")
-
-/*!
- \internal
-
- A dialog that can be backed by different implementations.
-
- Each dialog has a handle to QPlatformDialogHelper, which is created in create().
- The helper acts as an intermediary between the QML-facing dialog object
- and the native/widget/quick implementation:
-
- +------------+ +------------------------------------+ +-------------------------------------+
- | | | | | |
- | FileDialog |----->| Native/Widget/Quick QPlatformFile- |----->| Native OS dialog/QQuickFileDialog/ |
- | | | DialogHelper subclass | | QQuickFileDialogImpl |
- | | | | | |
- +------------+ +------------------------------------+ +-------------------------------------+
-*/
-
-/*!
- \qmltype Dialog
- \inherits QtObject
-//! \instantiates QQuickAbstractDialog
- \inqmlmodule QtQuick.Dialogs
- \since 6.2
- \brief The base class of native dialogs.
-
- The Dialog type provides common QML API for native platform dialogs.
-
- To show a native dialog, construct an instance of one of the concrete
- Dialog implementations, set the desired properties, and call \l open().
- Dialog emits \l accepted() or \l rejected() when the user is done with
- the dialog.
-*/
-
-/*!
- \qmlsignal void QtQuick.Dialogs::Dialog::accepted()
-
- This signal is emitted when the dialog has been accepted either
- interactively or by calling \l accept().
-
- \note This signal is \e not emitted when closing the dialog with \l close().
-
- \sa rejected()
-*/
-
-/*!
- \qmlsignal void QtQuick.Dialogs::Dialog::rejected()
-
- This signal is emitted when the dialog has been rejected either
- interactively or by calling \l reject().
-
- \note This signal is \e not emitted when closing the dialog with \l close().
-
- \sa accepted()
-*/
-
-Q_DECLARE_LOGGING_CATEGORY(lcDialogs)
-
-QQuickAbstractDialog::QQuickAbstractDialog(QPlatformTheme::DialogType type, QObject *parent)
- : QObject(parent),
- m_type(type)
-{
-}
-
-QQuickAbstractDialog::~QQuickAbstractDialog()
-{
- destroy();
-}
-
-QPlatformDialogHelper *QQuickAbstractDialog::handle() const
-{
- return m_handle.get();
-}
-
-/*!
- \qmldefault
- \qmlproperty list<Object> QtQuick.Dialogs::Dialog::data
-
- This default property holds the list of all objects declared as children of
- the dialog.
-*/
-QQmlListProperty<QObject> QQuickAbstractDialog::data()
-{
- return QQmlListProperty<QObject>(this, &m_data);
-}
-
-/*!
- \qmlproperty Window QtQuick.Dialogs::Dialog::parentWindow
-
- This property holds the parent window of the dialog.
-
- Unless explicitly set, the window is automatically resolved by iterating
- the QML parent objects until a \l Window or an \l Item that has a window
- is found.
-*/
-QWindow *QQuickAbstractDialog::parentWindow() const
-{
- return m_parentWindow;
-}
-
-void QQuickAbstractDialog::setParentWindow(QWindow *window)
-{
- qCDebug(lcDialogs) << "set parent window to" << window;
- if (m_parentWindow == window)
- return;
-
- m_parentWindow = window;
- emit parentWindowChanged();
-}
-
-/*!
- \qmlproperty string QtQuick.Dialogs::Dialog::title
-
- This property holds the title of the dialog.
-*/
-QString QQuickAbstractDialog::title() const
-{
- return m_title;
-}
-
-void QQuickAbstractDialog::setTitle(const QString &title)
-{
- if (m_title == title)
- return;
-
- m_title = title;
- emit titleChanged();
-}
-
-/*!
- \qmlproperty Qt::WindowFlags QtQuick.Dialogs::Dialog::flags
-
- This property holds the window flags of the dialog. The default value is \c Qt.Dialog.
-*/
-Qt::WindowFlags QQuickAbstractDialog::flags() const
-{
- return m_flags;
-}
-
-void QQuickAbstractDialog::setFlags(Qt::WindowFlags flags)
-{
- if (m_flags == flags)
- return;
-
- m_flags = flags;
- emit flagsChanged();
-}
-
-/*!
- \qmlproperty Qt::WindowModality QtQuick.Dialogs::Dialog::modality
-
- This property holds the modality of the dialog. The default value is \c Qt.WindowModal.
-
- Available values:
- \value Qt.NonModal The dialog is not modal and does not block input to other windows.
- \value Qt.WindowModal The dialog is modal to a single window hierarchy and blocks input to its parent window, all grandparent windows, and all siblings of its parent and grandparent windows.
- \value Qt.ApplicationModal The dialog is modal to the application and blocks input to all windows.
-*/
-Qt::WindowModality QQuickAbstractDialog::modality() const
-{
- return m_modality;
-}
-
-void QQuickAbstractDialog::setModality(Qt::WindowModality modality)
-{
- if (m_modality == modality)
- return;
-
- m_modality = modality;
- emit modalityChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Dialogs::Dialog::visible
-
- This property holds the visibility of the dialog. The default value is \c false.
-
- \sa open(), close()
-*/
-bool QQuickAbstractDialog::isVisible() const
-{
- return m_handle && m_visible;
-}
-
-void QQuickAbstractDialog::setVisible(bool visible)
-{
- qCDebug(lcDialogs) << "setVisible called with" << visible;
-
- if (visible) {
- // Don't try to open before component completion, as we won't have a window yet,
- // and open() sets m_visible to false if it fails.
- if (!m_complete)
- m_visibleRequested = true;
- else
- open();
- } else {
- close();
- }
-}
-
-/*!
- \qmlproperty StandardCode QtQuick.Dialogs::Dialog::result
-
- This property holds the result code.
-
- Standard result codes:
- \value Dialog.Accepted
- \value Dialog.Rejected
-
- \note MessageDialog sets the result to the value of the clicked standard
- button instead of using the standard result codes.
-*/
-QQuickAbstractDialog::StandardCode QQuickAbstractDialog::result() const
-{
- return m_result;
-}
-
-void QQuickAbstractDialog::setResult(StandardCode result)
-{
- if (m_result == result)
- return;
-
- m_result = result;
- emit resultChanged();
-}
-
-/*!
- \qmlmethod void QtQuick.Dialogs::Dialog::open()
-
- Opens the dialog.
-
- \sa visible, close()
-*/
-void QQuickAbstractDialog::open()
-{
- qCDebug(lcDialogs) << "open called";
- if (m_visible || !create())
- return;
-
- onShow(m_handle.get());
- m_visible = m_handle->show(m_flags, m_modality, m_parentWindow);
- if (m_visible)
- emit visibleChanged();
-}
-
-/*!
- \qmlmethod void QtQuick.Dialogs::Dialog::close()
-
- Closes the dialog.
-
- \sa visible, open()
-*/
-void QQuickAbstractDialog::close()
-{
- if (!m_handle || !m_visible)
- return;
-
- onHide(m_handle.get());
- m_handle->hide();
- m_visible = false;
- emit visibleChanged();
-}
-
-/*!
- \qmlmethod void QtQuick.Dialogs::Dialog::accept()
-
- Closes the dialog and emits the \l accepted() signal.
-
- \sa reject()
-*/
-void QQuickAbstractDialog::accept()
-{
- done(Accepted);
-}
-
-/*!
- \qmlmethod void QtQuick.Dialogs::Dialog::reject()
-
- Closes the dialog and emits the \l rejected() signal.
-
- \sa accept()
-*/
-void QQuickAbstractDialog::reject()
-{
- done(Rejected);
-}
-
-/*!
- \qmlmethod void QtQuick.Dialogs::Dialog::done(StandardCode result)
-
- Closes the dialog and sets the \a result.
-
- \sa accept(), reject(), result
-*/
-void QQuickAbstractDialog::done(StandardCode result)
-{
- close();
- setResult(result);
-
- if (result == Accepted)
- emit accepted();
- else if (result == Rejected)
- emit rejected();
-}
-
-void QQuickAbstractDialog::classBegin()
-{
-}
-
-void QQuickAbstractDialog::componentComplete()
-{
- qCDebug(lcDialogs) << "componentComplete";
- m_complete = true;
-
- if (!m_parentWindow) {
- qCDebug(lcDialogs) << "- no parent window; searching for one";
- setParentWindow(findParentWindow());
- }
-
- if (m_visibleRequested) {
- qCDebug(lcDialogs) << "visible was bound to true before component completion; opening dialog";
- open();
- m_visibleRequested = false;
- }
-}
-
-static const char *qmlTypeName(const QObject *object)
-{
- return object->metaObject()->className() + qstrlen("QQuickPlatform");
-}
-
-bool QQuickAbstractDialog::create()
-{
- qCDebug(lcDialogs) << qmlTypeName(this) << "attempting to create dialog backend of type"
- << m_type << "with parent window" << m_parentWindow;
- if (m_handle)
- return m_handle.get();
-
- qCDebug(lcDialogs) << "- attempting to create a native dialog";
- if (useNativeDialog())
- m_handle.reset(QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(m_type));
-
- if (!m_handle) {
- qCDebug(lcDialogs) << "- attempting to create a quick dialog";
- m_handle.reset(QQuickDialogImplFactory::createPlatformDialogHelper(m_type, this));
- }
-
- qCDebug(lcDialogs) << qmlTypeName(this) << "created ->" << m_handle.get();
- if (m_handle) {
- onCreate(m_handle.get());
- connect(m_handle.get(), &QPlatformDialogHelper::accept, this, &QQuickAbstractDialog::accept);
- connect(m_handle.get(), &QPlatformDialogHelper::reject, this, &QQuickAbstractDialog::reject);
- }
- return m_handle.get();
-}
-
-void QQuickAbstractDialog::destroy()
-{
- m_handle.reset();
-}
-
-bool QQuickAbstractDialog::useNativeDialog() const
-{
- if (QCoreApplication::testAttribute(Qt::AA_DontUseNativeDialogs)) {
- qCDebug(lcDialogs) << " - Qt::AA_DontUseNativeDialogs was set; not using native dialog";
- return false;
- }
-
- if (!QGuiApplicationPrivate::platformTheme()->usePlatformNativeDialog(m_type)) {
- qCDebug(lcDialogs) << " - the platform theme told us a native dialog isn't available; not using native dialog";
- return false;
- }
-
- return true;
-}
-
-void QQuickAbstractDialog::onCreate(QPlatformDialogHelper *dialog)
-{
- Q_UNUSED(dialog);
-}
-
-void QQuickAbstractDialog::onShow(QPlatformDialogHelper *dialog)
-{
- Q_UNUSED(dialog);
-}
-
-void QQuickAbstractDialog::onHide(QPlatformDialogHelper *dialog)
-{
- Q_UNUSED(dialog);
-}
-
-QWindow *QQuickAbstractDialog::findParentWindow() const
-{
- QObject *obj = parent();
- while (obj) {
- QWindow *window = qobject_cast<QWindow *>(obj);
- if (window)
- return window;
- QQuickItem *item = qobject_cast<QQuickItem *>(obj);
- if (item && item->window())
- return item->window();
- obj = obj->parent();
- }
- return nullptr;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickdialogs2/quickdialogs2/qquickabstractdialog_p.h b/src/quickdialogs2/quickdialogs2/qquickabstractdialog_p.h
deleted file mode 100644
index 07e9ffbf..00000000
--- a/src/quickdialogs2/quickdialogs2/qquickabstractdialog_p.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKABSTRACTDIALOG_P_H
-#define QQUICKABSTRACTDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <memory>
-
-#include <QtCore/qobject.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtGui/qpa/qplatformdialoghelper.h>
-#include <QtQml/qqmlparserstatus.h>
-#include <QtQml/qqmllist.h>
-#include <QtQml/qqml.h>
-
-#include "qtquickdialogs2global_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QWindow;
-class QPlatformDialogHelper;
-
-class Q_QUICKDIALOGS2_PRIVATE_EXPORT QQuickAbstractDialog : public QObject, public QQmlParserStatus
-{
- Q_OBJECT
- Q_INTERFACES(QQmlParserStatus)
- Q_PROPERTY(QQmlListProperty<QObject> data READ data FINAL)
- Q_PROPERTY(QWindow *parentWindow READ parentWindow WRITE setParentWindow NOTIFY parentWindowChanged FINAL)
- Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged FINAL)
- Q_PROPERTY(Qt::WindowFlags flags READ flags WRITE setFlags NOTIFY flagsChanged FINAL)
- Q_PROPERTY(Qt::WindowModality modality READ modality WRITE setModality NOTIFY modalityChanged FINAL)
- Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
- Q_PROPERTY(StandardCode result READ result WRITE setResult NOTIFY resultChanged FINAL)
- Q_CLASSINFO("DefaultProperty", "data")
- Q_MOC_INCLUDE(<QtGui/qwindow.h>)
- QML_ANONYMOUS
- QML_ADDED_IN_VERSION(6, 2)
-
-public:
- explicit QQuickAbstractDialog(QPlatformTheme::DialogType type, QObject *parent = nullptr);
- ~QQuickAbstractDialog();
-
- QPlatformDialogHelper *handle() const;
-
- QQmlListProperty<QObject> data();
-
- QWindow *parentWindow() const;
- void setParentWindow(QWindow *window);
-
- QString title() const;
- void setTitle(const QString &title);
-
- Qt::WindowFlags flags() const;
- void setFlags(Qt::WindowFlags flags);
-
- Qt::WindowModality modality() const;
- void setModality(Qt::WindowModality modality);
-
- bool isVisible() const;
- void setVisible(bool visible);
-
- enum StandardCode { Rejected, Accepted };
- Q_ENUM(StandardCode)
-
- StandardCode result() const;
- void setResult(StandardCode result);
-
-public Q_SLOTS:
- void open();
- void close();
- virtual void accept();
- virtual void reject();
- virtual void done(StandardCode result);
-
-Q_SIGNALS:
- void accepted();
- void rejected();
- void parentWindowChanged();
- void titleChanged();
- void flagsChanged();
- void modalityChanged();
- void visibleChanged();
- void resultChanged();
-
-protected:
- void classBegin() override;
- void componentComplete() override;
-
- bool create();
- void destroy();
-
- virtual bool useNativeDialog() const;
- virtual void onCreate(QPlatformDialogHelper *dialog);
- virtual void onShow(QPlatformDialogHelper *dialog);
- virtual void onHide(QPlatformDialogHelper *dialog);
-
- QWindow *findParentWindow() const;
-
-private:
- bool m_visibleRequested = false;
- bool m_visible = false;
- bool m_complete = false;
- StandardCode m_result = Rejected;
- QWindow *m_parentWindow = nullptr;
- QString m_title;
- Qt::WindowFlags m_flags = Qt::Dialog;
- Qt::WindowModality m_modality = Qt::WindowModal;
- QPlatformTheme::DialogType m_type;
- QList<QObject *> m_data;
- std::unique_ptr<QPlatformDialogHelper> m_handle;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickAbstractDialog)
-
-#endif // QQUICKABSTRACTDIALOG_P_H
diff --git a/src/quickdialogs2/quickdialogs2/qquickfiledialog.cpp b/src/quickdialogs2/quickdialogs2/qquickfiledialog.cpp
deleted file mode 100644
index a8df0bd6..00000000
--- a/src/quickdialogs2/quickdialogs2/qquickfiledialog.cpp
+++ /dev/null
@@ -1,615 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfiledialog_p.h"
-
-#include <QtCore/qlist.h>
-#include <QtCore/qloggingcategory.h>
-#include <QtQml/qqmlfile.h>
-
-#include <QtQuickDialogs2Utils/private/qquickfilenamefilter_p.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcFileDialog, "qt.quick.dialogs.filedialog")
-
-/*!
- \qmltype FileDialog
- \inherits Dialog
-//! \instantiates QQuickFileDialog
- \inqmlmodule QtQuick.Dialogs
- \since 6.2
- \brief A file dialog.
-
- The FileDialog type provides a QML API for file dialogs.
-
- \image qtquickdialogs-filedialog-gtk.png
-
- To show a file dialog, construct an instance of FileDialog, set the
- desired properties, and call \l {Dialog::}{open()}. The \l currentFile
- or \l currentFiles properties can be used to determine the currently
- selected file(s) in the dialog. The \l selectedFile and \l selectedFiles
- properties are updated only after the final selection has been made by
- accepting the dialog.
-
- \code
- MenuItem {
- text: "Open..."
- onTriggered: fileDialog.open()
- }
-
- FileDialog {
- id: fileDialog
- currentFile: document.source
- folder: StandardPaths.writableLocation(StandardPaths.DocumentsLocation)
- }
-
- MyDocument {
- id: document
- source: fileDialog.file
- }
- \endcode
-
- \section2 Availability
-
- A native platform file dialog is currently available on the following platforms:
-
- \list
- \li iOS
- \li Linux (when running with the GTK+ platform theme)
- \li macOS
- \li Windows
- \endlist
-
- \include includes/fallback.qdocinc
-
- //! \sa FolderDialog, StandardPaths
-*/
-
-Q_DECLARE_LOGGING_CATEGORY(lcDialogs)
-
-QQuickFileDialog::QQuickFileDialog(QObject *parent)
- : QQuickAbstractDialog(QPlatformTheme::FileDialog, parent),
- m_fileMode(OpenFile),
- m_options(QFileDialogOptions::create()),
- m_selectedNameFilter(nullptr)
-{
- m_options->setFileMode(QFileDialogOptions::ExistingFile);
- m_options->setAcceptMode(QFileDialogOptions::AcceptOpen);
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Dialogs::FileDialog::fileMode
-
- This property holds the mode of the dialog.
-
- Available values:
- \value FileDialog.OpenFile The dialog is used to select an existing file (default).
- \value FileDialog.OpenFiles The dialog is used to select multiple existing files.
- \value FileDialog.SaveFile The dialog is used to select any file. The file does not have to exist.
-*/
-QQuickFileDialog::FileMode QQuickFileDialog::fileMode() const
-{
- return m_fileMode;
-}
-
-void QQuickFileDialog::setFileMode(FileMode mode)
-{
- qCDebug(lcFileDialog) << "setFileMode called with" << mode;
- if (mode == m_fileMode)
- return;
-
- switch (mode) {
- case OpenFile:
- m_options->setFileMode(QFileDialogOptions::ExistingFile);
- m_options->setAcceptMode(QFileDialogOptions::AcceptOpen);
- break;
- case OpenFiles:
- m_options->setFileMode(QFileDialogOptions::ExistingFiles);
- m_options->setAcceptMode(QFileDialogOptions::AcceptOpen);
- break;
- case SaveFile:
- m_options->setFileMode(QFileDialogOptions::AnyFile);
- m_options->setAcceptMode(QFileDialogOptions::AcceptSave);
- break;
- default:
- break;
- }
-
- m_fileMode = mode;
- emit fileModeChanged();
-}
-
-/*!
- \qmlproperty url QtQuick.Dialogs::FileDialog::selectedFile
- \readonly
-
- This property holds the final accepted file.
-
- If there are multiple selected files, this property refers to the first
- file.
-
- Unlike the \l currentFile property, the \c selectedFile property is not
- updated while the user is selecting files in the dialog, but only after the
- final selection has been made. That is, when the user has clicked
- \uicontrol OK to accept a file. Alternatively, the
- \l {Dialog::}{accepted()} signal can be handled to get the final selection.
-
- \sa selectedFiles, currentFile, {Dialog::}{accepted()}, currentFolder
-*/
-QUrl QQuickFileDialog::selectedFile() const
-{
- return addDefaultSuffix(m_selectedFiles.value(0));
-}
-
-/*!
- \qmlproperty list<url> QtQuick.Dialogs::FileDialog::selectedFiles
-
- This property holds the final accepted files.
-
- Unlike the \l currentFiles property, the \c selectedFiles property is not
- updated while the user is selecting files in the dialog, but only after the
- final selection has been made. That is, when the user has clicked
- \uicontrol OK to accept files. Alternatively, the \l {Dialog::}{accepted()}
- signal can be handled to get the final selection.
-
- \sa currentFiles, {Dialog::}{accepted()}, currentFolder
-*/
-QList<QUrl> QQuickFileDialog::selectedFiles() const
-{
- return addDefaultSuffixes(m_selectedFiles);
-}
-
-void QQuickFileDialog::setSelectedFiles(const QList<QUrl> &selectedFiles)
-{
- if (m_selectedFiles == selectedFiles)
- return;
-
- bool firstChanged = m_selectedFiles.value(0) != selectedFiles.value(0);
- m_selectedFiles = selectedFiles;
- if (firstChanged)
- emit selectedFileChanged();
- emit selectedFilesChanged();
-}
-
-/*!
- \qmlproperty url QtQuick.Dialogs::FileDialog::currentFile
-
- This property holds the currently selected file in the dialog.
-
- Unlike the \l selectedFile property, the \c currentFile property is updated
- while the user is selecting files in the dialog, even before the final
- selection has been made.
-
- \sa selectedFile, currentFiles, currentFolder
-*/
-QUrl QQuickFileDialog::currentFile() const
-{
- return currentFiles().value(0);
-}
-
-void QQuickFileDialog::setCurrentFile(const QUrl &file)
-{
- setCurrentFiles(QList<QUrl>() << file);
-}
-
-/*!
- \qmlproperty list<url> QtQuick.Dialogs::FileDialog::currentFiles
-
- This property holds the currently selected files in the dialog.
-
- Unlike the \l selectedFiles property, the \c currentFiles property is
- updated while the user is selecting files in the dialog, even before the
- final selection has been made.
-
- \sa selectedFiles, currentFile, currentFolder
-*/
-QList<QUrl> QQuickFileDialog::currentFiles() const
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
- return fileDialog->selectedFiles();
- return m_options->initiallySelectedFiles();
-}
-
-void QQuickFileDialog::setCurrentFiles(const QList<QUrl> &currentFiles)
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle())) {
- for (const QUrl &file : currentFiles)
- fileDialog->selectFile(file);
- }
- m_options->setInitiallySelectedFiles(currentFiles);
-}
-
-/*!
- \qmlproperty url QtQuick.Dialogs::FileDialog::currentFolder
-
- This property holds the folder where files are selected. It can be set to
- control the initial directory that is shown when the dialog is opened.
-
-//! TODO: Remove \omit once FolderDialog is available
-\omit
- For selecting a folder, use FolderDialog instead.
-
- \sa FolderDialog
-\endomit
-*/
-QUrl QQuickFileDialog::currentFolder() const
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
- return fileDialog->directory();
-
- // If we're not using a native file dialog and the folder is invalid,
- // return the current directory.
- if (!m_options->initialDirectory().isValid())
- return QUrl::fromLocalFile(QDir::currentPath());
-
- return m_options->initialDirectory();
-}
-
-void QQuickFileDialog::setCurrentFolder(const QUrl &currentFolder)
-{
- qCDebug(lcFileDialog) << "setCurrentFolder called with" << currentFolder;
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
- fileDialog->setDirectory(currentFolder);
- m_options->setInitialDirectory(currentFolder);
-}
-
-/*!
- \qmlproperty flags QtQuick.Dialogs::FileDialog::options
-
- This property holds the various options that affect the look and feel of the dialog.
-
- By default, all options are disabled.
-
- Options should be set before showing the dialog. Setting them while the dialog is
- visible is not guaranteed to have an immediate effect on the dialog (depending on
- the option and on the platform).
-
- Available options:
- \value FileDialog.DontResolveSymlinks Don't resolve symlinks in the file dialog. By default symlinks are resolved.
- \value FileDialog.DontConfirmOverwrite Don't ask for confirmation if an existing file is selected. By default confirmation is requested.
- \value FileDialog.ReadOnly Indicates that the dialog doesn't allow creating directories.
- \value FileDialog.HideNameFilterDetails Indicates if the file name filter details are hidden or not.
-*/
-QFileDialogOptions::FileDialogOptions QQuickFileDialog::options() const
-{
- return m_options->options();
-}
-
-void QQuickFileDialog::setOptions(QFileDialogOptions::FileDialogOptions options)
-{
- if (options == m_options->options())
- return;
-
- m_options->setOptions(options);
- emit optionsChanged();
-}
-
-void QQuickFileDialog::resetOptions()
-{
- setOptions({});
-}
-
-/*!
- \qmlproperty list<string> QtQuick.Dialogs::FileDialog::nameFilters
-
- This property holds the filters that restrict the types of files that
- can be selected.
-
- \code
- FileDialog {
- nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"]
- }
- \endcode
-
- Different platforms may restrict the files that can be selected in
- different ways. For example, macOS will disable file entries that do not
- match the filters, whereas Windows will hide them.
-
- \note \b{*.*} is not a portable filter, because the historical assumption
- that the file extension determines the file type is not consistent on every
- operating system. It is possible to have a file with no dot in its name (for
- example, \c Makefile). In a native Windows file dialog, \b{*.*} will match
- such files, while in other types of file dialogs it may not. So it is better
- to use \b{*} if you mean to select any file.
-
- \sa selectedNameFilter
-*/
-QStringList QQuickFileDialog::nameFilters() const
-{
- return m_options->nameFilters();
-}
-
-void QQuickFileDialog::setNameFilters(const QStringList &filters)
-{
- qCDebug(lcFileDialog).nospace() << "setNameFilters called with " << filters
- << " (old filters were: " << m_options->nameFilters() << ")";
- if (filters == m_options->nameFilters())
- return;
-
- m_options->setNameFilters(filters);
- if (m_selectedNameFilter) {
- int index = m_selectedNameFilter->index();
- if (index < 0 || index >= filters.count())
- index = 0;
- m_selectedNameFilter->update(filters.value(index));
- }
- emit nameFiltersChanged();
-}
-
-void QQuickFileDialog::resetNameFilters()
-{
- setNameFilters(QStringList());
-}
-
-/*!
- \qmlproperty int QtQuick.Dialogs::FileDialog::selectedNameFilter.index
- \qmlproperty string QtQuick.Dialogs::FileDialog::selectedNameFilter.name
- \qmlproperty list<string> QtQuick.Dialogs::FileDialog::selectedNameFilter.extensions
- \qmlproperty list<string> QtQuick.Dialogs::FileDialog::selectedNameFilter.globs
-
- These properties hold the currently selected name filter.
-
- \table
- \header
- \li Name
- \li Description
- \row
- \li \b index : int
- \li This property determines which \l {nameFilters}{name filter} is selected.
- The specified filter is selected when the dialog is opened. The value is
- updated when the user selects another filter.
- \row
- \li [read-only] \b name : string
- \li This property holds the name of the selected filter. In the
- example below, the name of the first filter is \c {"Text files"}
- and the second is \c {"HTML files"}.
- \row
- \li [read-only] \b extensions : list<string>
- \li This property holds the list of extensions of the selected filter.
- In the example below, the list of extensions of the first filter is
- \c {["txt"]} and the second is \c {["html", "htm"]}.
- \row
- \li [read-only] \b globs : list<string>
- \li This property holds the list of globs of the selected filter.
- In the example below, the list of globs of the first filter is
- \c {["*.txt"]} and the second is \c {["*.html", "*.htm"]}.
-
- This property is useful in conjunction with \l {FolderListModel}'s
- \l {FolderListModel::}{nameFilters} property, for example.
- \endtable
-
- \code
- FileDialog {
- id: fileDialog
- selectedNameFilter.index: 1
- nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"]
- }
-
- MyDocument {
- id: document
- fileType: fileDialog.selectedNameFilter.extensions[0]
- }
- \endcode
-
- \sa nameFilters
-*/
-QQuickFileNameFilter *QQuickFileDialog::selectedNameFilter() const
-{
- if (!m_selectedNameFilter) {
- QQuickFileDialog *that = const_cast<QQuickFileDialog *>(this);
- m_selectedNameFilter = new QQuickFileNameFilter(that);
- m_selectedNameFilter->setOptions(m_options);
- }
- return m_selectedNameFilter;
-}
-
-/*!
- \qmlproperty string QtQuick.Dialogs::FileDialog::defaultSuffix
-
- This property holds a suffix that is added to selected files that have
- no suffix specified. The suffix is typically used to indicate the file
- type (e.g. "txt" indicates a text file).
-
- If the first character is a dot ('.'), it is removed.
-*/
-QString QQuickFileDialog::defaultSuffix() const
-{
- return m_options->defaultSuffix();
-}
-
-void QQuickFileDialog::setDefaultSuffix(const QString &suffix)
-{
- if (suffix == m_options->defaultSuffix())
- return;
-
- m_options->setDefaultSuffix(suffix);
- emit defaultSuffixChanged();
-}
-
-void QQuickFileDialog::resetDefaultSuffix()
-{
- setDefaultSuffix(QString());
-}
-
-/*!
- \qmlproperty string QtQuick.Dialogs::FileDialog::acceptLabel
-
- This property holds the label text shown on the button that accepts the dialog.
-
- When set to an empty string, the default label of the underlying platform is used.
- The default label is typically \uicontrol Open or \uicontrol Save depending on which
- \l fileMode the dialog is used in.
-
- The default value is an empty string.
-
- \sa rejectLabel
-*/
-QString QQuickFileDialog::acceptLabel() const
-{
- return m_options->labelText(QFileDialogOptions::Accept);
-}
-
-void QQuickFileDialog::setAcceptLabel(const QString &label)
-{
- if (label == m_options->labelText(QFileDialogOptions::Accept))
- return;
-
- m_options->setLabelText(QFileDialogOptions::Accept, label);
- emit acceptLabelChanged();
-}
-
-void QQuickFileDialog::resetAcceptLabel()
-{
- setAcceptLabel(QString());
-}
-
-/*!
- \qmlproperty string QtQuick.Dialogs::FileDialog::rejectLabel
-
- This property holds the label text shown on the button that rejects the dialog.
-
- When set to an empty string, the default label of the underlying platform is used.
- The default label is typically \uicontrol Cancel.
-
- The default value is an empty string.
-
- \sa acceptLabel
-*/
-QString QQuickFileDialog::rejectLabel() const
-{
- return m_options->labelText(QFileDialogOptions::Reject);
-}
-
-void QQuickFileDialog::setRejectLabel(const QString &label)
-{
- if (label == m_options->labelText(QFileDialogOptions::Reject))
- return;
-
- m_options->setLabelText(QFileDialogOptions::Reject, label);
- emit rejectLabelChanged();
-}
-
-void QQuickFileDialog::resetRejectLabel()
-{
- setRejectLabel(QString());
-}
-
-bool QQuickFileDialog::useNativeDialog() const
-{
- if (!QQuickAbstractDialog::useNativeDialog())
- return false;
-
- if (m_options->testOption(QFileDialogOptions::DontUseNativeDialog)) {
- qCDebug(lcDialogs) << " - the FileDialog was told not to use a native dialog; not using native dialog";
- return false;
- }
-
- return true;
-}
-
-void QQuickFileDialog::onCreate(QPlatformDialogHelper *dialog)
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
- connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, this, &QQuickFileDialog::currentFileChanged);
- connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, this, &QQuickFileDialog::currentFilesChanged);
- connect(fileDialog, &QPlatformFileDialogHelper::directoryEntered, this, &QQuickFileDialog::currentFolderChanged);
- fileDialog->setOptions(m_options);
- }
-}
-
-void QQuickFileDialog::onShow(QPlatformDialogHelper *dialog)
-{
- m_options->setWindowTitle(title());
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
- // Ensure that a name filter is always selected.
- int index = selectedNameFilter()->index();
- if (index == -1)
- index = 0;
- const QString filter = m_options->nameFilters().value(index);
- m_options->setInitiallySelectedNameFilter(filter);
-
- fileDialog->setOptions(m_options); // setOptions only assigns a member and isn't virtual
-
- connect(fileDialog, &QPlatformFileDialogHelper::filterSelected, m_selectedNameFilter, &QQuickFileNameFilter::update);
- fileDialog->selectNameFilter(filter);
-
- const QUrl initialDir = m_options->initialDirectory();
- // If it's not valid, or it's a file and not a directory, we shouldn't set it.
- if (m_firstShow && initialDir.isValid() && QDir(QQmlFile::urlToLocalFileOrQrc(initialDir)).exists())
- fileDialog->setDirectory(m_options->initialDirectory());
- }
- if (m_firstShow)
- m_firstShow = false;
-}
-
-void QQuickFileDialog::onHide(QPlatformDialogHelper *dialog)
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
- if (m_selectedNameFilter)
- disconnect(fileDialog, &QPlatformFileDialogHelper::filterSelected, m_selectedNameFilter, &QQuickFileNameFilter::update);
- }
-}
-
-void QQuickFileDialog::accept()
-{
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle())) {
- // Take the currently selected files and make them the final set of files.
- setSelectedFiles(fileDialog->selectedFiles());
- }
- QQuickAbstractDialog::accept();
-}
-
-QUrl QQuickFileDialog::addDefaultSuffix(const QUrl &file) const
-{
- QUrl url = file;
- const QString path = url.path();
- const QString suffix = m_options->defaultSuffix();
- if (!suffix.isEmpty() && !path.endsWith(QLatin1Char('/')) && path.lastIndexOf(QLatin1Char('.')) == -1)
- url.setPath(path + QLatin1Char('.') + suffix);
- return url;
-}
-
-QList<QUrl> QQuickFileDialog::addDefaultSuffixes(const QList<QUrl> &files) const
-{
- QList<QUrl> urls;
- urls.reserve(files.size());
- for (const QUrl &file : files)
- urls += addDefaultSuffix(file);
- return urls;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickdialogs2/quickdialogs2/qquickfiledialog_p.h b/src/quickdialogs2/quickdialogs2/qquickfiledialog_p.h
deleted file mode 100644
index 0dccbe72..00000000
--- a/src/quickdialogs2/quickdialogs2/qquickfiledialog_p.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFILEDIALOG_P_H
-#define QQUICKFILEDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qurl.h>
-#include <QtQml/qqml.h>
-
-#include "qquickabstractdialog_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFileNameFilter;
-
-class Q_QUICKDIALOGS2_PRIVATE_EXPORT QQuickFileDialog : public QQuickAbstractDialog
-{
- Q_OBJECT
- Q_PROPERTY(FileMode fileMode READ fileMode WRITE setFileMode NOTIFY fileModeChanged FINAL)
- Q_PROPERTY(QUrl selectedFile READ selectedFile NOTIFY selectedFileChanged FINAL)
- Q_PROPERTY(QList<QUrl> selectedFiles READ selectedFiles NOTIFY selectedFilesChanged FINAL)
- Q_PROPERTY(QUrl currentFile READ currentFile WRITE setCurrentFile NOTIFY currentFileChanged FINAL)
- Q_PROPERTY(QList<QUrl> currentFiles READ currentFiles WRITE setCurrentFiles NOTIFY currentFilesChanged FINAL)
- Q_PROPERTY(QUrl currentFolder READ currentFolder WRITE setCurrentFolder NOTIFY currentFolderChanged FINAL)
- Q_PROPERTY(QFileDialogOptions::FileDialogOptions options READ options WRITE setOptions RESET resetOptions NOTIFY optionsChanged FINAL)
- Q_PROPERTY(QStringList nameFilters READ nameFilters WRITE setNameFilters RESET resetNameFilters NOTIFY nameFiltersChanged FINAL)
- Q_PROPERTY(QQuickFileNameFilter *selectedNameFilter READ selectedNameFilter CONSTANT)
- Q_PROPERTY(QString defaultSuffix READ defaultSuffix WRITE setDefaultSuffix RESET resetDefaultSuffix NOTIFY defaultSuffixChanged FINAL)
- Q_PROPERTY(QString acceptLabel READ acceptLabel WRITE setAcceptLabel RESET resetAcceptLabel NOTIFY acceptLabelChanged FINAL)
- Q_PROPERTY(QString rejectLabel READ rejectLabel WRITE setRejectLabel RESET resetRejectLabel NOTIFY rejectLabelChanged FINAL)
- Q_FLAGS(QFileDialogOptions::FileDialogOptions)
- QML_NAMED_ELEMENT(FileDialog)
- QML_ADDED_IN_VERSION(6, 2)
- Q_MOC_INCLUDE(<QtQuickDialogs2Utils/private/qquickfilenamefilter_p.h>)
-
-public:
- explicit QQuickFileDialog(QObject *parent = nullptr);
-
- enum FileMode {
- OpenFile,
- OpenFiles,
- SaveFile
- };
- Q_ENUM(FileMode)
-
- FileMode fileMode() const;
- void setFileMode(FileMode fileMode);
-
- QUrl selectedFile() const;
-
- QList<QUrl> selectedFiles() const;
-
- QUrl currentFile() const;
- void setCurrentFile(const QUrl &file);
-
- QList<QUrl> currentFiles() const;
- void setCurrentFiles(const QList<QUrl> &currentFiles);
-
- QUrl currentFolder() const;
- void setCurrentFolder(const QUrl &currentFolder);
-
- QFileDialogOptions::FileDialogOptions options() const;
- void setOptions(QFileDialogOptions::FileDialogOptions options);
- void resetOptions();
-
- QStringList nameFilters() const;
- void setNameFilters(const QStringList &filters);
- void resetNameFilters();
-
- QQuickFileNameFilter *selectedNameFilter() const;
-
- QString defaultSuffix() const;
- void setDefaultSuffix(const QString &suffix);
- void resetDefaultSuffix();
-
- QString acceptLabel() const;
- void setAcceptLabel(const QString &label);
- void resetAcceptLabel();
-
- QString rejectLabel() const;
- void setRejectLabel(const QString &label);
- void resetRejectLabel();
-
-Q_SIGNALS:
- void fileModeChanged();
- void selectedFileChanged();
- void selectedFilesChanged();
- void currentFileChanged();
- void currentFilesChanged();
- void currentFolderChanged();
- void optionsChanged();
- void nameFiltersChanged();
- void defaultSuffixChanged();
- void acceptLabelChanged();
- void rejectLabelChanged();
-
-protected:
- bool useNativeDialog() const override;
- void onCreate(QPlatformDialogHelper *dialog) override;
- void onShow(QPlatformDialogHelper *dialog) override;
- void onHide(QPlatformDialogHelper *dialog) override;
- void accept() override;
-
-private:
- QUrl addDefaultSuffix(const QUrl &file) const;
- QList<QUrl> addDefaultSuffixes(const QList<QUrl> &files) const;
-
- void setSelectedFiles(const QList<QUrl> &selectedFiles);
-
- FileMode m_fileMode;
- QList<QUrl> m_selectedFiles;
- bool m_firstShow = true;
- QSharedPointer<QFileDialogOptions> m_options;
- mutable QQuickFileNameFilter *m_selectedNameFilter;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickFileDialog)
-
-#endif // QQUICKFILEDIALOG_P_H
diff --git a/src/quickdialogs2/quickdialogs2/qquickfontdialog.cpp b/src/quickdialogs2/quickdialogs2/qquickfontdialog.cpp
deleted file mode 100644
index 5bf59049..00000000
--- a/src/quickdialogs2/quickdialogs2/qquickfontdialog.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFONTDIALOG_CPP
-#define QQUICKFONTDIALOG_CPP
-
-#include "qquickfontdialog_p.h"
-
-#include <QtCore/qloggingcategory.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype FontDialog
- \inherits Dialog
-//! \instantiates QQuickFontDialog
- \inqmlmodule QtQuick.Dialogs
- \since 6.2
- \brief A font dialog.
-
- The FontDialog type provides a QML API for font dialogs.
-
- \image qtquickdialogs-fontdialog-gtk.png
-
- To show a font dialog, construct an instance of FontDialog, set the
- desired properties, and call \l {Dialog::}{open()}. The \l currentFont
- property can be used to determine the currently selected font in the
- dialog. The \l selectedFont property is updated only after the final selection
- has been made by accepting the dialog.
-
- \code
- MenuItem {
- text: "Font"
- onTriggered: fontDialog.open()
- }
-
- FontDialog {
- id: fontDialog
- currentFont.family: document.font
- }
-
- MyDocument {
- id: document
- font: fontDialog.selectedFont
- }
- \endcode
-
- \section2 Availability
-
- A native platform font dialog is currently available on the following platforms:
-
- \list
- \li macOS
- \li Linux (when running with the GTK+ platform theme)
- \endlist
-
- \include includes/fallback.qdocinc
-*/
-
-Q_LOGGING_CATEGORY(lcFontDialog, "qt.quick.dialogs.fontdialog")
-
-QQuickFontDialog::QQuickFontDialog(QObject *parent)
- : QQuickAbstractDialog(QPlatformTheme::FontDialog, parent),
- m_options(QFontDialogOptions::create())
-{
-}
-
-/*!
- \qmlproperty font QtQuick.Dialogs::FontDialog::currentFont
-
- This property holds the currently selected font in the dialog.
-
- Unlike the \l selectedFont property, the \c currentFont property is updated
- while the user is selecting fonts in the dialog, even before the final
- selection has been made.
-
- \sa selectedFont
-*/
-
-QFont QQuickFontDialog::currentFont() const
-{
- if (QPlatformFontDialogHelper *fontDialog = qobject_cast<QPlatformFontDialogHelper *>(handle()))
- return fontDialog->currentFont();
- return QFont();
-}
-
-void QQuickFontDialog::setCurrentFont(const QFont &font)
-{
- if (QPlatformFontDialogHelper *fontDialog =
- qobject_cast<QPlatformFontDialogHelper *>(handle()))
- fontDialog->setCurrentFont(font);
-}
-
-/*!
- \qmlproperty font QtQuick.Dialogs::FontDialog::selectedFont
-
- This property holds the final accepted font.
-
- Unlike the \l currentFont property, the \c selectedFont property is not updated
- while the user is selecting fonts in the dialog, but only after the final
- selection has been made. That is, when the user has clicked \uicontrol Open
- to accept a font. Alternatively, the \l {Dialog::}{accepted()} signal
- can be handled to get the final selection.
-
- \sa currentFont, {Dialog::}{accepted()}
-*/
-
-QFont QQuickFontDialog::selectedFont() const
-{
- return m_selectedFont;
-}
-
-void QQuickFontDialog::setSelectedFont(const QFont &font)
-{
- if (m_selectedFont == font)
- return;
-
- m_selectedFont = font;
- emit selectedFontChanged();
-}
-
-/*!
- \qmlproperty flags QtQuick.Dialogs::FontDialog::options
-
- This property holds the various options that affect the look and feel of the dialog.
-
- By default, all options are disabled.
-
- Options should be set before showing the dialog. Setting them while the dialog is
- visible is not guaranteed to have an immediate effect on the dialog (depending on
- the option and on the platform).
-
- Available options:
- \value FontDialog.ScalableFonts Show scalable fonts.
- \value FontDialog.NonScalableFonts Show non-scalable fonts.
- \value FontDialog.MonospacedFonts Show monospaced fonts.
- \value FontDialog.ProportionalFonts Show proportional fonts.
- \value FontDialog.NoButtons Don't display \uicontrol Open and \uicontrol Cancel buttons (useful
- for "live dialogs").
-*/
-
-QFontDialogOptions::FontDialogOptions QQuickFontDialog::options() const
-{
- return m_options->options();
-}
-
-void QQuickFontDialog::setOptions(QFontDialogOptions::FontDialogOptions options)
-{
- if (options == m_options->options())
- return;
-
- m_options->setOptions(options);
- emit optionsChanged();
-}
-
-void QQuickFontDialog::resetOptions()
-{
- setOptions({});
-}
-
-bool QQuickFontDialog::useNativeDialog() const
-{
- return QQuickAbstractDialog::useNativeDialog()
- && !(m_options->testOption(QFontDialogOptions::DontUseNativeDialog));
-}
-
-void QQuickFontDialog::onCreate(QPlatformDialogHelper *dialog)
-{
- if (QPlatformFontDialogHelper *fontDialog = qobject_cast<QPlatformFontDialogHelper *>(dialog)) {
- connect(fontDialog, &QPlatformFontDialogHelper::currentFontChanged, this,
- &QQuickFontDialog::currentFontChanged);
- connect(fontDialog, &QPlatformFontDialogHelper::fontSelected, this,
- &QQuickFontDialog::setSelectedFont);
- fontDialog->setOptions(m_options);
- }
-}
-
-void QQuickFontDialog::onShow(QPlatformDialogHelper *dialog)
-{
- m_options->setWindowTitle(title());
- if (QPlatformFontDialogHelper *fontDialog = qobject_cast<QPlatformFontDialogHelper *>(dialog))
- fontDialog->setOptions(m_options); // setOptions only assigns a member and isn't virtual
-}
-
-void QQuickFontDialog::accept()
-{
- if (auto fontDialog = qobject_cast<QPlatformFontDialogHelper *>(handle()))
- setSelectedFont(fontDialog->currentFont());
- QQuickAbstractDialog::accept();
-}
-
-QT_END_NAMESPACE
-
-#endif // QQUICKFONTDIALOG_CPP
diff --git a/src/quickdialogs2/quickdialogs2/qquickfontdialog_p.h b/src/quickdialogs2/quickdialogs2/qquickfontdialog_p.h
deleted file mode 100644
index c12cbd62..00000000
--- a/src/quickdialogs2/quickdialogs2/qquickfontdialog_p.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFONTDIALOG_P_H
-#define QQUICKFONTDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickabstractdialog_p.h"
-
-#include <QtGui/qfont.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKDIALOGS2_PRIVATE_EXPORT QQuickFontDialog : public QQuickAbstractDialog
-{
- Q_OBJECT
- Q_PROPERTY(QFont selectedFont READ selectedFont WRITE setSelectedFont NOTIFY selectedFontChanged)
- Q_PROPERTY(QFont currentFont READ currentFont WRITE setCurrentFont NOTIFY currentFontChanged FINAL)
- Q_PROPERTY(QFontDialogOptions::FontDialogOptions options READ options WRITE setOptions
- RESET resetOptions NOTIFY optionsChanged)
- Q_FLAGS(QFontDialogOptions::FontDialogOptions)
- QML_NAMED_ELEMENT(FontDialog)
- QML_ADDED_IN_VERSION(6, 2)
-
-public:
- explicit QQuickFontDialog(QObject *parent = nullptr);
-
- void setCurrentFont(const QFont &font);
- QFont currentFont() const;
-
- void setSelectedFont(const QFont &font);
- QFont selectedFont() const;
-
- QFontDialogOptions::FontDialogOptions options() const;
- void setOptions(QFontDialogOptions::FontDialogOptions options);
- void resetOptions();
-
-Q_SIGNALS:
- void selectedFontChanged();
- void currentFontChanged();
- void optionsChanged();
-
-protected:
- bool useNativeDialog() const override;
- void onCreate(QPlatformDialogHelper *dialog) override;
- void onShow(QPlatformDialogHelper *dialog) override;
- void accept() override;
-
-private:
- QFont m_selectedFont;
- QSharedPointer<QFontDialogOptions> m_options;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickFontDialog)
-
-#endif // QQUICKFONTDIALOG_P_H
diff --git a/src/quickdialogs2/quickdialogs2/qtquickdialogs2foreign_p.h b/src/quickdialogs2/quickdialogs2/qtquickdialogs2foreign_p.h
deleted file mode 100644
index 6337434f..00000000
--- a/src/quickdialogs2/quickdialogs2/qtquickdialogs2foreign_p.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QTQUICKDIALOGS2FOREIGN_P_H
-#define QTQUICKDIALOGS2FOREIGN_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpa/qplatformdialoghelper.h>
-#include <QtQml/qqml.h>
-#include <QtQuickDialogs2Utils/private/qquickfilenamefilter_p.h>
-
-QT_BEGIN_NAMESPACE
-
-struct QPlatformDialogHelperForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QPlatformDialogHelper)
- QML_ADDED_IN_VERSION(6, 2)
-};
-
-struct QQuickFileNameFilterForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickFileNameFilter)
- QML_ADDED_IN_VERSION(6, 2)
-};
-
-QT_END_NAMESPACE
-
-#endif // QTQUICKDIALOGS2FOREIGN_P_H
diff --git a/src/quickdialogs2/quickdialogs2/qtquickdialogs2global_p.h b/src/quickdialogs2/quickdialogs2/qtquickdialogs2global_p.h
deleted file mode 100644
index cae55a95..00000000
--- a/src/quickdialogs2/quickdialogs2/qtquickdialogs2global_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QTQUICKDIALOGS2GLOBAL_P_H
-#define QTQUICKDIALOGS2GLOBAL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-#include <QtQml/private/qqmlglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-#ifndef QT_STATIC
-# if defined(QT_BUILD_QUICKDIALOGS2_LIB)
-# define Q_QUICKDIALOGS2_PRIVATE_EXPORT Q_DECL_EXPORT
-# else
-# define Q_QUICKDIALOGS2_PRIVATE_EXPORT Q_DECL_IMPORT
-# endif
-#else
-# define Q_QUICKDIALOGS2_PRIVATE_EXPORT
-#endif
-
-QT_END_NAMESPACE
-
-#endif // QTQUICKDIALOGS2GLOBAL_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/CMakeLists.txt b/src/quickdialogs2/quickdialogs2quickimpl/CMakeLists.txt
deleted file mode 100644
index f0d94d31..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/CMakeLists.txt
+++ /dev/null
@@ -1,137 +0,0 @@
-#####################################################################
-## QuickDialogs2QuickImpl Module:
-#####################################################################
-
-set(qml_files
- "qml/FileDialog.qml"
- "qml/FileDialogDelegate.qml"
- "qml/FileDialogDelegateLabel.qml"
- "qml/FolderBreadcrumbBar.qml"
- "qml/FontDialog.qml"
- "qml/FontDialogContent.qml"
- "qml/+Fusion/FileDialog.qml"
- "qml/+Fusion/FileDialogDelegate.qml"
- "qml/+Fusion/FolderBreadcrumbBar.qml"
- "qml/+Fusion/FontDialog.qml"
- "qml/+Imagine/FileDialog.qml"
- "qml/+Imagine/FileDialogDelegate.qml"
- "qml/+Imagine/FolderBreadcrumbBar.qml"
- "qml/+Imagine/FontDialog.qml"
- "qml/+Material/FileDialog.qml"
- "qml/+Material/FileDialogDelegate.qml"
- "qml/+Material/FolderBreadcrumbBar.qml"
- "qml/+Material/FontDialog.qml"
- "qml/+Universal/FileDialog.qml"
- "qml/+Universal/FileDialogDelegate.qml"
- "qml/+Universal/FolderBreadcrumbBar.qml"
- "qml/+Universal/FontDialog.qml"
-)
-
-qt_internal_add_qml_module(QuickDialogs2QuickImpl
- URI "QtQuick.Dialogs.quickimpl"
- VERSION "${PROJECT_VERSION}"
- CLASS_NAME QtQuickDialogs2QuickImplPlugin
- PLUGIN_TARGET qtquickdialogs2quickimplplugin
- SOURCES
- qquickdialogimplfactory.cpp
- qquickdialogimplfactory_p.h
- qquickfiledialogdelegate.cpp
- qquickfiledialogdelegate_p.h
- qquickfiledialogimpl.cpp
- qquickfiledialogimpl_p.h
- qquickfiledialogimpl_p_p.h
- qquickfolderbreadcrumbbar.cpp
- qquickfolderbreadcrumbbar_p.h
- qquickfolderbreadcrumbbar_p_p.h
- qquickplatformfiledialog.cpp
- qquickplatformfiledialog_p.h
- qquickplatformfontdialog_p.h
- qquickplatformfontdialog.cpp
- qtquickdialogs2quickimplforeign_p.h
- qtquickdialogs2quickimplglobal_p.h
- qquickfontdialogimpl_p.h
- qquickfontdialogimpl_p_p.h
- qquickfontdialogimpl.cpp
- QML_FILES
- ${qml_files}
- DEFINES
- QT_BUILD_QUICKDIALOGS2QUICKIMPL_LIB
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- INCLUDE_DIRECTORIES
- ${CMAKE_CURRENT_SOURCE_DIR}
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
- Qt::QuickDialogs2UtilsPrivate
-)
-
-# Resources:
-set(qtquickdialogs2quickimpl_resource_files
- "images/crumb-separator-icon-round.png"
- "images/crumb-separator-icon-round@2x.png"
- "images/crumb-separator-icon-round@3x.png"
- "images/crumb-separator-icon-round@4x.png"
- "images/crumb-separator-icon-square.png"
- "images/crumb-separator-icon-square@2x.png"
- "images/crumb-separator-icon-square@3x.png"
- "images/crumb-separator-icon-square@4x.png"
- "images/file-icon-round.png"
- "images/file-icon-round@2x.png"
- "images/file-icon-round@3x.png"
- "images/file-icon-round@4x.png"
- "images/file-icon-square.png"
- "images/file-icon-square@2x.png"
- "images/file-icon-square@3x.png"
- "images/file-icon-square@4x.png"
- "images/folder-icon-round.png"
- "images/folder-icon-round@2x.png"
- "images/folder-icon-round@3x.png"
- "images/folder-icon-round@4x.png"
- "images/folder-icon-square.png"
- "images/folder-icon-square@2x.png"
- "images/folder-icon-square@3x.png"
- "images/folder-icon-square@4x.png"
- "images/imagine/filedialogdelegate-background@2x.9.png"
- "images/imagine/filedialogdelegate-background@3x.9.png"
- "images/imagine/filedialogdelegate-background@4x.9.png"
- "images/imagine/filedialogdelegate-background.9.png"
- "images/imagine/filedialogdelegate-background-disabled@2x.9.png"
- "images/imagine/filedialogdelegate-background-disabled@3x.9.png"
- "images/imagine/filedialogdelegate-background-disabled@4x.9.png"
- "images/imagine/filedialogdelegate-background-disabled.9.png"
- "images/imagine/filedialogdelegate-background-pressed@2x.9.png"
- "images/imagine/filedialogdelegate-background-pressed@3x.9.png"
- "images/imagine/filedialogdelegate-background-pressed@4x.9.png"
- "images/imagine/filedialogdelegate-background-pressed.9.png"
- "images/imagine/filedialogdelegate-background-focused@2x.9.png"
- "images/imagine/filedialogdelegate-background-focused@3x.9.png"
- "images/imagine/filedialogdelegate-background-focused@4x.9.png"
- "images/imagine/filedialogdelegate-background-focused.9.png"
- "images/imagine/filedialogdelegate-background-highlighted@2x.9.png"
- "images/imagine/filedialogdelegate-background-highlighted@3x.9.png"
- "images/imagine/filedialogdelegate-background-highlighted@4x.9.png"
- "images/imagine/filedialogdelegate-background-highlighted.9.png"
- "images/up-icon-round.png"
- "images/up-icon-round@2x.png"
- "images/up-icon-round@3x.png"
- "images/up-icon-round@4x.png"
- "images/up-icon-square.png"
- "images/up-icon-square@2x.png"
- "images/up-icon-square@3x.png"
- "images/up-icon-square@4x.png"
- "images/up-icon-thick-square.png"
- "images/up-icon-thick-square@2x.png"
- "images/up-icon-thick-square@3x.png"
- "images/up-icon-thick-square@4x.png"
-)
-
-qt_internal_add_resource(QuickDialogs2QuickImpl "QuickDialogs2QuickImpl"
- PREFIX
- "/qt-project.org/imports/QtQuick/Dialogs/quickimpl"
- FILES
- ${qtquickdialogs2quickimpl_resource_files}
-)
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round.png b/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round.png
deleted file mode 100644
index aaa5a3e4..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round.svg b/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round.svg
deleted file mode 100644
index 013cedef..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round.svg
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- width="8"
- height="8"
- viewBox="0 0 8 8"
- version="1.1"
- id="svg2"
- inkscape:version="1.1-alpha (b0f32e08fc, 2021-03-07)"
- sodipodi:docname="crumb-separator-icon-round.svg"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:dc="http://purl.org/dc/elements/1.1/">
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8">
- <inkscape:path-effect
- effect="fillet_chamfer"
- id="path-effect3421"
- is_visible="true"
- lpeversion="1"
- satellites_param="F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1"
- unit="px"
- method="auto"
- mode="F"
- radius="1"
- chamfer_steps="1"
- flexible="false"
- use_knot_distance="true"
- apply_no_radius="true"
- apply_with_radius="true"
- only_selected="false"
- hide_knots="false" />
- <inkscape:path-effect
- effect="fillet_chamfer"
- id="path-effect1367"
- is_visible="true"
- lpeversion="1"
- satellites_param="F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1"
- unit="px"
- method="auto"
- mode="F"
- radius="1"
- chamfer_steps="1"
- flexible="false"
- use_knot_distance="true"
- apply_no_radius="true"
- apply_with_radius="true"
- only_selected="false"
- hide_knots="false" />
- <inkscape:path-effect
- effect="fillet_chamfer"
- id="path-effect1365"
- is_visible="true"
- lpeversion="1"
- satellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1"
- unit="px"
- method="auto"
- mode="F"
- radius="1"
- chamfer_steps="1"
- flexible="false"
- use_knot_distance="true"
- apply_no_radius="true"
- apply_with_radius="true"
- only_selected="false"
- hide_knots="false" />
- </defs>
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1848"
- inkscape:window-height="1016"
- id="namedview6"
- showgrid="true"
- inkscape:zoom="16.000001"
- inkscape:cx="6.7812496"
- inkscape:cy="15.031249"
- inkscape:window-x="72"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="layer1"
- inkscape:document-rotation="0"
- inkscape:pagecheckerboard="0"
- height="14px">
- <inkscape:grid
- type="xygrid"
- id="grid856" />
- </sodipodi:namedview>
- <g
- inkscape:groupmode="layer"
- id="layer1"
- inkscape:label="crumb-separator-icon-round"
- transform="translate(2.046,3.0914383)">
- <rect
- style="fill:none;stroke-width:4;stroke-linejoin:round"
- id="rect2017"
- width="8"
- height="8"
- x="-2.046"
- y="-3.0914383" />
- </g>
- <path
- id="rect858"
- style="fill:#757575;stroke-width:2.43737;stroke-linejoin:round"
- d="M 3.0219754,1.01117 6.416287,3.5317721 a 0.74259596,0.74259596 90 0 1 0,1.1923778 L 3.0219754,7.2447519 A 0.5029757,0.5029757 26.701285 0 1 2.2191312,6.8409408 l 0,-5.4259596 A 0.5029757,0.5029757 153.29872 0 1 3.0219754,1.01117 Z"
- sodipodi:nodetypes="cccc"
- inkscape:path-effect="#path-effect3421"
- inkscape:original-d="m 2.2191312,0.41498117 5,3.71297983 -5,3.7129798 z" />
- <rect
- style="fill:none;stroke-width:4;stroke-linejoin:round"
- id="rect1449"
- width="8"
- height="8"
- x="0"
- y="0" />
-</svg>
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@2x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@2x.png
deleted file mode 100644
index 3f66fe17..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@3x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@3x.png
deleted file mode 100644
index 24d9f6a6..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@4x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@4x.png
deleted file mode 100644
index 1dc83ef0..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-round@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square.png b/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square.png
deleted file mode 100644
index 1f7ac63e..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square.svg b/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square.svg
deleted file mode 100644
index 96636734..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square.svg
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- width="8"
- height="8"
- viewBox="0 0 8 8"
- version="1.1"
- id="svg2"
- inkscape:version="1.1-alpha (b0f32e08fc, 2021-03-07)"
- sodipodi:docname="crumb-separator-icon-square.svg"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:dc="http://purl.org/dc/elements/1.1/">
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8">
- <inkscape:path-effect
- effect="fillet_chamfer"
- id="path-effect3421"
- is_visible="true"
- lpeversion="1"
- satellites_param="F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1"
- unit="px"
- method="auto"
- mode="F"
- radius="1"
- chamfer_steps="1"
- flexible="false"
- use_knot_distance="true"
- apply_no_radius="true"
- apply_with_radius="true"
- only_selected="false"
- hide_knots="false" />
- <inkscape:path-effect
- effect="fillet_chamfer"
- id="path-effect1367"
- is_visible="true"
- lpeversion="1"
- satellites_param="F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1"
- unit="px"
- method="auto"
- mode="F"
- radius="1"
- chamfer_steps="1"
- flexible="false"
- use_knot_distance="true"
- apply_no_radius="true"
- apply_with_radius="true"
- only_selected="false"
- hide_knots="false" />
- <inkscape:path-effect
- effect="fillet_chamfer"
- id="path-effect1365"
- is_visible="true"
- lpeversion="1"
- satellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1"
- unit="px"
- method="auto"
- mode="F"
- radius="1"
- chamfer_steps="1"
- flexible="false"
- use_knot_distance="true"
- apply_no_radius="true"
- apply_with_radius="true"
- only_selected="false"
- hide_knots="false" />
- </defs>
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1848"
- inkscape:window-height="1016"
- id="namedview6"
- showgrid="true"
- inkscape:zoom="90.509672"
- inkscape:cx="4.43599"
- inkscape:cy="3.3311357"
- inkscape:window-x="72"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="layer1"
- inkscape:document-rotation="0"
- inkscape:pagecheckerboard="0"
- height="14px">
- <inkscape:grid
- type="xygrid"
- id="grid856" />
- </sodipodi:namedview>
- <g
- inkscape:groupmode="layer"
- id="layer1"
- inkscape:label="crumb-separator-icon-square"
- transform="translate(2.046,3.0914383)">
- <rect
- style="fill:none;stroke-width:4;stroke-linejoin:round"
- id="rect2017"
- width="8"
- height="8"
- x="-2.046"
- y="-3.0914383" />
- <path
- style="fill:#757575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m -0.046,-2.0914383 4,3 -4,3 z"
- id="path1065"
- sodipodi:nodetypes="cccc" />
- </g>
- <rect
- style="fill:none;stroke-width:4;stroke-linejoin:round"
- id="rect1449"
- width="8"
- height="8"
- x="0"
- y="0" />
-</svg>
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@2x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@2x.png
deleted file mode 100644
index 524872c1..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@3x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@3x.png
deleted file mode 100644
index 33bce847..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@4x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@4x.png
deleted file mode 100644
index 185c3eb7..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/crumb-separator-icon-square@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round.png b/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round.png
deleted file mode 100644
index c2a4928d..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round.svg b/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round.svg
deleted file mode 100644
index 7ac6a23b..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round.svg
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- width="14"
- height="18"
- viewBox="0 0 14 18"
- version="1.1"
- id="svg2"
- inkscape:version="1.1-alpha (b0f32e08fc, 2021-03-07)"
- sodipodi:docname="file-icon-round.svg"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:dc="http://purl.org/dc/elements/1.1/">
- <path
- style="fill:none;stroke:#757575;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1.5003822,2.5063148 1.5000273,15.5 A 0.99997269,0.99997269 45.000782 0 0 2.5,16.5 h 9 a 1,1 135 0 0 1,-1 V 6.3440001 A 2.3479106,2.3479106 66.930332 0 0 11.778973,4.6510931 L 9.221027,2.192907 A 2.4805476,2.4805476 21.904486 0 0 7.5000004,1.5009022 l -4.9995913,0.00451 A 1.0009299,1.0009299 134.97494 0 0 1.5003822,2.5063148 Z"
- id="path917"
- sodipodi:nodetypes="cccccc"
- inkscape:path-effect="#path-effect1367"
- inkscape:original-d="M 1.5004095,1.5063148 1.5,16.5 h 11 V 5.3440001 L 8.5,1.5 Z" />
- <path
- id="path921"
- style="fill:none;stroke:#757575;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 12.35,6.5 H 8.5 a 1,1 45 0 1 -1,-1 V 1.55"
- inkscape:path-effect="#path-effect1365"
- inkscape:original-d="M 12.35,6.5 H 7.5 V 1.55"
- sodipodi:nodetypes="ccc" />
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8">
- <inkscape:path-effect
- effect="fillet_chamfer"
- id="path-effect1367"
- is_visible="true"
- lpeversion="1"
- satellites_param="F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1"
- unit="px"
- method="auto"
- mode="F"
- radius="1"
- chamfer_steps="1"
- flexible="false"
- use_knot_distance="true"
- apply_no_radius="true"
- apply_with_radius="true"
- only_selected="false"
- hide_knots="false" />
- <inkscape:path-effect
- effect="fillet_chamfer"
- id="path-effect1365"
- is_visible="true"
- lpeversion="1"
- satellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1"
- unit="px"
- method="auto"
- mode="F"
- radius="1"
- chamfer_steps="1"
- flexible="false"
- use_knot_distance="true"
- apply_no_radius="true"
- apply_with_radius="true"
- only_selected="false"
- hide_knots="false" />
- </defs>
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1848"
- inkscape:window-height="1016"
- id="namedview6"
- showgrid="true"
- inkscape:zoom="32.000001"
- inkscape:cx="7.8906248"
- inkscape:cy="9.7343747"
- inkscape:window-x="72"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="layer1"
- inkscape:document-rotation="0"
- inkscape:pagecheckerboard="0">
- <inkscape:grid
- type="xygrid"
- id="grid856" />
- </sodipodi:namedview>
- <g
- inkscape:groupmode="layer"
- id="layer1"
- inkscape:label="file-icon-round"
- transform="translate(2.046,3.0914383)" />
- <rect
- style="fill:none;stroke-width:4;stroke-linejoin:round"
- id="rect2270"
- width="14"
- height="18"
- x="0"
- y="0" />
-</svg>
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@2x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@2x.png
deleted file mode 100644
index 86af70d1..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@3x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@3x.png
deleted file mode 100644
index 06fea29e..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@4x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@4x.png
deleted file mode 100644
index 09f87873..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-round@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square.png b/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square.png
deleted file mode 100644
index 9e8f3ddd..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square.svg b/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square.svg
deleted file mode 100644
index 107afa38..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square.svg
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- width="14"
- height="18"
- viewBox="0 0 14 18"
- version="1.1"
- id="svg2"
- inkscape:version="1.1-alpha (b0f32e08fc, 2021-03-07)"
- sodipodi:docname="file-icon-square.svg"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:dc="http://purl.org/dc/elements/1.1/">
- <path
- style="fill:none;stroke:#757575;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1.5004095,1.5063148 1.5,16.5 h 11 V 5.3440001 L 8.5,1.5 Z"
- id="path917"
- sodipodi:nodetypes="cccccc" />
- <path
- style="fill:none;stroke:#757575;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 8.5,1.55 V 5.5"
- id="path919"
- sodipodi:nodetypes="cc" />
- <path
- style="fill:none;stroke:#757575;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 12.45,5.5 H 8.5"
- id="path921"
- sodipodi:nodetypes="cc" />
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1848"
- inkscape:window-height="1016"
- id="namedview6"
- showgrid="true"
- inkscape:zoom="22.627417"
- inkscape:cx="0.022097087"
- inkscape:cy="8.1538251"
- inkscape:window-x="72"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="layer1"
- inkscape:document-rotation="0"
- inkscape:pagecheckerboard="0">
- <inkscape:grid
- type="xygrid"
- id="grid856" />
- </sodipodi:namedview>
- <g
- inkscape:groupmode="layer"
- id="layer1"
- inkscape:label="file-icon-square"
- transform="translate(2.046,3.0914383)" />
- <rect
- style="fill:none;stroke-width:4;stroke-linejoin:round"
- id="rect1895"
- width="14"
- height="18"
- x="0"
- y="0" />
-</svg>
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@2x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@2x.png
deleted file mode 100644
index 8d330677..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@3x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@3x.png
deleted file mode 100644
index 2987d2ca..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@4x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@4x.png
deleted file mode 100644
index 69d76176..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/file-icon-square@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round.png b/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round.png
deleted file mode 100644
index 60bc6c72..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round.svg b/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round.svg
deleted file mode 100644
index ba6b6276..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round.svg
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- width="18"
- height="14"
- viewBox="0 0 18 14"
- version="1.1"
- id="svg2"
- inkscape:version="1.1-alpha (b0f32e08fc, 2021-03-07)"
- sodipodi:docname="folder-icon-round.svg"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:dc="http://purl.org/dc/elements/1.1/">
- <path
- style="fill:none;stroke:#757575;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1.5003723,2.5063148 1.5000372,11.5 A 0.99996275,0.99996275 45.001067 0 0 2.5,12.5 h 13 a 1,1 135 0 0 1,-1 v -7 a 1,1 45 0 0 -1,-1 h -5 A 2.4142136,2.4142136 22.5 0 1 8.7928932,2.7928932 L 8.2071068,2.2071068 A 2.4106245,2.4106245 22.469847 0 0 6.5000006,1.5010525 l -3.9995917,0.00421 A 1.0010904,1.0010904 134.97091 0 0 1.5003723,2.5063148 Z"
- id="path917"
- sodipodi:nodetypes="ccccccc"
- inkscape:path-effect="#path-effect1132"
- inkscape:original-d="M 1.5004095,1.5063148 1.5,12.5 h 15 v -9 h -7 l -2,-2 z" />
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8">
- <inkscape:path-effect
- effect="fillet_chamfer"
- id="path-effect1132"
- is_visible="true"
- lpeversion="1"
- satellites_param="F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1 @ F,0,0,1,0,1,0,1"
- unit="px"
- method="auto"
- mode="F"
- radius="1"
- chamfer_steps="1"
- flexible="false"
- use_knot_distance="true"
- apply_no_radius="true"
- apply_with_radius="true"
- only_selected="false"
- hide_knots="false" />
- </defs>
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1848"
- inkscape:window-height="1016"
- id="namedview6"
- showgrid="true"
- inkscape:zoom="16"
- inkscape:cx="-11.28125"
- inkscape:cy="7.40625"
- inkscape:window-x="72"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="layer1"
- inkscape:document-rotation="0"
- inkscape:pagecheckerboard="0">
- <inkscape:grid
- type="xygrid"
- id="grid856" />
- </sodipodi:namedview>
- <g
- inkscape:groupmode="layer"
- id="layer1"
- inkscape:label="folder-icon-round"
- transform="translate(2.046,3.0914383)" />
- <rect
- style="fill:none;stroke-width:4;stroke-linejoin:round"
- id="rect2548"
- width="18"
- height="14"
- x="0"
- y="0" />
-</svg>
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@2x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@2x.png
deleted file mode 100644
index e2873437..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@3x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@3x.png
deleted file mode 100644
index 5ee70a95..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@4x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@4x.png
deleted file mode 100644
index 47d28a4b..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-round@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square.png b/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square.png
deleted file mode 100644
index b84a90ae..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square.svg b/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square.svg
deleted file mode 100644
index 0002b5ac..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square.svg
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- width="18"
- height="14"
- viewBox="0 0 18 14"
- version="1.1"
- id="svg2"
- inkscape:version="1.1-alpha (b0f32e08fc, 2021-03-07)"
- sodipodi:docname="folder-icon-square.svg"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:dc="http://purl.org/dc/elements/1.1/">
- <path
- style="fill:none;stroke:#757575;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 1.5004095,1.5063148 1.5,12.5 h 15 v -9 h -7 l -2,-2 z"
- id="path917"
- sodipodi:nodetypes="ccccccc" />
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1848"
- inkscape:window-height="1016"
- id="namedview6"
- showgrid="true"
- inkscape:zoom="16"
- inkscape:cx="-1.59375"
- inkscape:cy="12.65625"
- inkscape:window-x="72"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="layer1"
- inkscape:document-rotation="0"
- inkscape:pagecheckerboard="0">
- <inkscape:grid
- type="xygrid"
- id="grid856" />
- </sodipodi:namedview>
- <g
- inkscape:groupmode="layer"
- id="layer1"
- inkscape:label="folder-icon-square"
- transform="translate(2.046,3.0914383)">
- <rect
- style="fill:none;stroke-width:4;stroke-linejoin:round"
- id="rect1423"
- width="18"
- height="14"
- x="-2.046"
- y="-3.0914383" />
- </g>
-</svg>
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@2x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@2x.png
deleted file mode 100644
index 9bf320bb..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@3x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@3x.png
deleted file mode 100644
index 9f12edb6..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@4x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@4x.png
deleted file mode 100644
index 9ec5b389..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/folder-icon-square@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled.9.png
deleted file mode 100644
index ce48ee74..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@2x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@2x.9.png
deleted file mode 100644
index c7abb65c..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@3x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@3x.9.png
deleted file mode 100644
index 46b84d7d..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@4x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@4x.9.png
deleted file mode 100644
index f4dfd338..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-disabled@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused.9.png
deleted file mode 100644
index 39fa8664..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@2x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@3x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@4x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-focused@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted.9.png
deleted file mode 100644
index 6f565e8b..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@2x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@2x.9.png
deleted file mode 100644
index 9fd0a434..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@3x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@3x.9.png
deleted file mode 100644
index 62b7435b..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@4x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@4x.9.png
deleted file mode 100644
index 96444b89..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-highlighted@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed.9.png
deleted file mode 100644
index 39fa8664..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@2x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@2x.9.png
deleted file mode 100644
index 6b61562c..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@3x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@3x.9.png
deleted file mode 100644
index e46c0bf1..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@4x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@4x.9.png
deleted file mode 100644
index 010444e8..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background-pressed@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background.9.png
deleted file mode 100644
index cef1bafa..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background.svg b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background.svg
deleted file mode 100644
index acecfcc9..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background.svg
+++ /dev/null
@@ -1,358 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- width="210mm"
- height="297mm"
- viewBox="0 0 210 297"
- version="1.1"
- id="svg5"
- inkscape:version="1.1-alpha (b0f32e08fc, 2021-03-07)"
- sodipodi:docname="filedialogdelegate-background.svg"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:dc="http://purl.org/dc/elements/1.1/">
- <metadata
- id="metadata122">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <sodipodi:namedview
- id="namedview7"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- objecttolerance="10.0"
- gridtolerance="10.0"
- guidetolerance="10.0"
- inkscape:pageshadow="2"
- inkscape:pageopacity="0.0"
- inkscape:pagecheckerboard="0"
- inkscape:document-units="px"
- showgrid="false"
- inkscape:zoom="3.2715084"
- inkscape:cx="24.912056"
- inkscape:cy="54.867657"
- inkscape:window-width="1848"
- inkscape:window-height="1016"
- inkscape:window-x="72"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="g1413"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:document-rotation="0">
- <sodipodi:guide
- position="6.0854167,296.96676"
- orientation="-1,0"
- id="guide2310"
- inkscape:label=""
- inkscape:locked="true"
- inkscape:color="rgb(0,0,255)" />
- <sodipodi:guide
- position="3.363578,293.03125"
- orientation="0,1"
- id="guide2322"
- inkscape:label=""
- inkscape:locked="true"
- inkscape:color="rgb(0,0,255)" />
- <sodipodi:guide
- position="12.170833,297.68429"
- orientation="-1,0"
- id="guide2760"
- inkscape:label=""
- inkscape:locked="true"
- inkscape:color="rgb(0,0,255)" />
- <sodipodi:guide
- position="18.25625,297.91758"
- orientation="-1,0"
- id="guide949"
- inkscape:label=""
- inkscape:locked="true"
- inkscape:color="rgb(0,0,255)" />
- <sodipodi:guide
- position="24.341667,299.40187"
- orientation="-1,0"
- id="guide941"
- inkscape:label=""
- inkscape:locked="true"
- inkscape:color="rgb(0,0,255)" />
- <sodipodi:guide
- position="30.427083,299.08734"
- orientation="-1,0"
- id="guide1165"
- inkscape:label=""
- inkscape:locked="false"
- inkscape:color="rgb(0,0,255)" />
- </sodipodi:namedview>
- <defs
- id="defs2" />
- <g
- inkscape:label="[9] filedialogdelegate-background-highlighted"
- inkscape:groupmode="layer"
- id="g1413"
- style="display:inline"
- sodipodi:insensitive="true">
- <rect
- style="fill:none;stroke-width:0.946642;stroke-linejoin:round"
- id="rect1401"
- width="6.0854168"
- height="3.96875"
- x="30.427084"
- y="-6.9388939e-18" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:7.98967;stroke-linejoin:round"
- id="rect1403"
- width="0.26458332"
- height="3.4395833"
- x="30.427084"
- y="0.26458332" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:10.1547;stroke-linejoin:round"
- id="rect1405"
- width="0.26458332"
- height="5.5562401"
- x="-0.26415125"
- y="30.691679"
- transform="matrix(3.6708238e-5,-1,1,1.4067378e-5,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.21594;stroke-linejoin:round"
- id="rect1407"
- width="0.26458332"
- height="0.26458287"
- x="-3.9588995"
- y="33.337505"
- transform="matrix(1.7480114e-6,-1,0.99999996,2.9541491e-4,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.21594;stroke-linejoin:round"
- id="rect1409"
- width="0.26458332"
- height="0.26458287"
- x="-2.1059568"
- y="36.247913"
- transform="matrix(1.7480114e-6,-1,0.99999996,2.9541491e-4,0,0)" />
- <rect
- style="fill:#4fc1e9;fill-opacity:1;fill-rule:evenodd;stroke-width:0.263352"
- id="rect1411"
- width="5.5562501"
- height="3.4395833"
- x="30.691668"
- y="0.26458332" />
- </g>
- <g
- inkscape:label="[9] filedialogdelegate-background-focused"
- inkscape:groupmode="layer"
- id="g939"
- style="display:inline"
- sodipodi:insensitive="true">
- <rect
- style="fill:none;stroke-width:0.946642;stroke-linejoin:round"
- id="rect927"
- width="6.0854168"
- height="3.96875"
- x="18.25625"
- y="-6.9388939e-18" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:7.98967;stroke-linejoin:round"
- id="rect929"
- width="0.26458332"
- height="3.4395833"
- x="18.25625"
- y="0.26458332" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:10.1547;stroke-linejoin:round"
- id="rect931"
- width="0.26458332"
- height="5.5562401"
- x="-0.26432261"
- y="18.520845"
- transform="matrix(3.6708238e-5,-1,1,1.4067378e-5,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.21594;stroke-linejoin:round"
- id="rect933"
- width="0.26458332"
- height="0.26458287"
- x="-3.9624968"
- y="21.166674"
- transform="matrix(1.7480114e-6,-1,0.99999996,2.9541491e-4,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.21594;stroke-linejoin:round"
- id="rect935"
- width="0.26458332"
- height="0.26458287"
- x="-2.1095541"
- y="24.077082"
- transform="matrix(1.7480114e-6,-1,0.99999996,2.9541491e-4,0,0)" />
- <rect
- style="fill:#e6e9ed;fill-opacity:1;fill-rule:evenodd;stroke-width:0.263352"
- id="rect937"
- width="5.5562501"
- height="3.4395833"
- x="18.520834"
- y="0.26458332" />
- </g>
- <g
- inkscape:label="[9] filedialogdelegate-background-pressed"
- inkscape:groupmode="layer"
- id="g867"
- style="display:inline"
- sodipodi:insensitive="true">
- <rect
- style="fill:none;stroke-width:0.946642;stroke-linejoin:round"
- id="rect855"
- width="6.0854168"
- height="3.96875"
- x="12.170834"
- y="-6.9388939e-18" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:7.98967;stroke-linejoin:round"
- id="rect857"
- width="0.26458332"
- height="3.4395833"
- x="12.170834"
- y="0.26458332" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:10.1547;stroke-linejoin:round"
- id="rect859"
- width="0.26458332"
- height="5.5562401"
- x="-0.26440823"
- y="12.435429"
- transform="matrix(3.6708238e-5,-1,1,1.4067378e-5,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.21594;stroke-linejoin:round"
- id="rect861"
- width="0.26458332"
- height="0.26458287"
- x="-3.9642947"
- y="15.081257"
- transform="matrix(1.7480114e-6,-1,0.99999996,2.9541491e-4,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.21594;stroke-linejoin:round"
- id="rect863"
- width="0.26458332"
- height="0.26458287"
- x="-2.111352"
- y="17.991665"
- transform="matrix(1.7480114e-6,-1,0.99999996,2.9541491e-4,0,0)" />
- <rect
- style="fill:#e6e9ed;fill-opacity:1;fill-rule:evenodd;stroke-width:0.263352"
- id="rect865"
- width="5.5562501"
- height="3.4395833"
- x="12.435416"
- y="0.26458332" />
- </g>
- <g
- inkscape:label="[9] filedialogdelegate-background-disabled"
- inkscape:groupmode="layer"
- id="g2435"
- style="display:inline"
- sodipodi:insensitive="true">
- <rect
- style="fill:none;stroke-width:0.946642;stroke-linejoin:round"
- id="rect2425"
- width="6.0854168"
- height="3.96875"
- x="6.0854168"
- y="-6.9388939e-18" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:7.98967;stroke-linejoin:round"
- id="rect2427"
- width="0.26458332"
- height="3.4395833"
- x="6.0854168"
- y="0.26458332" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:10.1547;stroke-linejoin:round"
- id="rect2429"
- width="0.26458332"
- height="5.5562401"
- x="-0.264494"
- y="6.3500099"
- transform="matrix(3.6708238e-5,-1,1,1.4067378e-5,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.21594;stroke-linejoin:round"
- id="rect2431"
- width="0.26458332"
- height="0.26458287"
- x="-3.9660921"
- y="8.995841"
- transform="matrix(1.7480114e-6,-1,0.99999996,2.9541491e-4,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.21594;stroke-linejoin:round"
- id="rect2433"
- width="0.26458332"
- height="0.26458287"
- x="-2.1131494"
- y="11.906255"
- transform="matrix(1.7480114e-6,-1,0.99999996,2.9541491e-4,0,0)" />
- <rect
- style="fill:#f5f7fa;fill-opacity:1;fill-rule:evenodd;stroke-width:0.263352"
- id="rect124"
- width="5.5562501"
- height="3.4395833"
- x="6.3499999"
- y="0.26458332" />
- </g>
- <g
- inkscape:label="[9] filedialogdelegate-background"
- inkscape:groupmode="layer"
- id="layer1"
- style="display:inline"
- sodipodi:insensitive="true">
- <rect
- style="fill:none;stroke-width:0.946642;stroke-linejoin:round"
- id="rect846"
- width="6.0854168"
- height="3.96875"
- x="0"
- y="-6.9388939e-18" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:7.98967;stroke-linejoin:round"
- id="rect1054"
- width="0.26458332"
- height="3.4395833"
- x="0"
- y="0.26458332" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:10.1547;stroke-linejoin:round"
- id="rect1212"
- width="0.26458332"
- height="5.5562401"
- x="-0.26457959"
- y="0.26459303"
- transform="matrix(3.6708238e-5,-1,1,1.4067378e-5,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.21594;stroke-linejoin:round"
- id="rect1505"
- width="0.26458332"
- height="0.26458287"
- x="-3.9678898"
- y="2.9104238"
- transform="matrix(1.7480114e-6,-1,0.99999996,2.9541491e-4,0,0)" />
- <rect
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.21594;stroke-linejoin:round"
- id="rect1587"
- width="0.26458332"
- height="0.26458287"
- x="-2.1149471"
- y="5.8208375"
- transform="matrix(1.7480114e-6,-1,0.99999996,2.9541491e-4,0,0)" />
- <rect
- style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.0578;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- id="rect3108"
- width="5.5562501"
- height="3.4395833"
- x="0.26458332"
- y="0.26458332" />
- </g>
-</svg>
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@2x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@2x.9.png
deleted file mode 100644
index 5a136a0c..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@2x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@3x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@3x.9.png
deleted file mode 100644
index f47a366b..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@3x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@4x.9.png b/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@4x.9.png
deleted file mode 100644
index 9ecb680f..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/imagine/filedialogdelegate-background@4x.9.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round.png
deleted file mode 100644
index a4b7bc03..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round.svg b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round.svg
deleted file mode 100644
index fd053957..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round.svg
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- width="16"
- height="16"
- viewBox="0 0 16 16"
- version="1.1"
- id="svg2"
- inkscape:version="1.1-alpha (b0f32e08fc, 2021-03-07)"
- sodipodi:docname="up-icon-round.svg"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:dc="http://purl.org/dc/elements/1.1/">
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1848"
- inkscape:window-height="1016"
- id="namedview6"
- showgrid="true"
- inkscape:zoom="16"
- inkscape:cx="-1.96875"
- inkscape:cy="10.65625"
- inkscape:window-x="72"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="layer1"
- inkscape:document-rotation="0"
- inkscape:pagecheckerboard="0">
- <inkscape:grid
- type="xygrid"
- id="grid1497" />
- </sodipodi:namedview>
- <g
- inkscape:groupmode="layer"
- id="layer1"
- inkscape:label="up-icon-round" />
- <g
- id="g1413"
- transform="translate(0.3592822,-0.0034197)">
- <path
- style="fill:none;fill-opacity:1;stroke:#757575;stroke-width:2.23721;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="m 7.6407178,2.1165354 3e-7,11.7737686"
- id="path20"
- sodipodi:nodetypes="cc" />
- <path
- style="fill:none;fill-opacity:1;stroke:#757575;stroke-width:2.23721;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 7.6407178,2.1165354 2.6616436,7.0956099"
- id="path950"
- sodipodi:nodetypes="cc" />
- <path
- style="fill:none;fill-opacity:1;stroke:#757575;stroke-width:2.23721;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
- d="M 7.6407178,2.1165354 12.619792,7.0956096"
- id="path952"
- sodipodi:nodetypes="cc" />
- </g>
- <rect
- style="fill:none;stroke-width:5.33333;stroke-linejoin:round"
- id="rect2897"
- width="16"
- height="16"
- x="0"
- y="0" />
-</svg>
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@2x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@2x.png
deleted file mode 100644
index 25ee970a..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@3x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@3x.png
deleted file mode 100644
index 486f2f46..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@4x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@4x.png
deleted file mode 100644
index 58540253..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-round@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square.png
deleted file mode 100644
index f7d4151a..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square.svg b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square.svg
deleted file mode 100644
index 93fc45ba..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square.svg
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- width="16"
- height="16"
- viewBox="0 0 16 16"
- version="1.1"
- id="svg2"
- inkscape:version="1.1-alpha (b0f32e08fc, 2021-03-07)"
- sodipodi:docname="up-icon-square.svg"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:dc="http://purl.org/dc/elements/1.1/">
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1848"
- inkscape:window-height="1016"
- id="namedview6"
- showgrid="true"
- inkscape:zoom="11.313709"
- inkscape:cx="-6.3197669"
- inkscape:cy="28.416854"
- inkscape:window-x="72"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="layer1"
- inkscape:document-rotation="0"
- inkscape:pagecheckerboard="0">
- <inkscape:grid
- type="xygrid"
- id="grid1497" />
- </sodipodi:namedview>
- <g
- inkscape:groupmode="layer"
- id="layer1"
- inkscape:label="up-icon-square" />
- <path
- style="fill:#757575;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m 8.000315,1 -6,6 L 3,8 8,3 13,8 14,7 Z"
- id="path928"
- sodipodi:nodetypes="ccccccc" />
- <rect
- style="fill:none;stroke-width:5.33333;stroke-linejoin:round"
- id="rect2897"
- width="16"
- height="16"
- x="0"
- y="0" />
- <rect
- style="fill:#757575;fill-opacity:1;stroke:none;stroke-width:5.23075;stroke-linejoin:round"
- id="rect4947"
- width="1.5"
- height="11"
- x="7.2501574"
- y="3" />
-</svg>
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@2x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@2x.png
deleted file mode 100644
index 2e2a3d94..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@3x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@3x.png
deleted file mode 100644
index 8965148c..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@4x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@4x.png
deleted file mode 100644
index 0a56bbcc..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-square@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square.png
deleted file mode 100644
index 3f9f8762..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square.svg b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square.svg
deleted file mode 100644
index dd20777b..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square.svg
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- width="16"
- height="16"
- viewBox="0 0 16 16"
- version="1.1"
- id="svg2"
- inkscape:version="1.1-alpha (b0f32e08fc, 2021-03-07)"
- sodipodi:docname="up-icon-thick-square.svg"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:dc="http://purl.org/dc/elements/1.1/">
- <metadata
- id="metadata10">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <defs
- id="defs8" />
- <sodipodi:namedview
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1"
- objecttolerance="10"
- gridtolerance="10"
- guidetolerance="10"
- inkscape:pageopacity="0"
- inkscape:pageshadow="2"
- inkscape:window-width="1848"
- inkscape:window-height="1016"
- id="namedview6"
- showgrid="true"
- inkscape:zoom="22.627417"
- inkscape:cx="2.3201941"
- inkscape:cy="10.00998"
- inkscape:window-x="72"
- inkscape:window-y="27"
- inkscape:window-maximized="1"
- inkscape:current-layer="layer1"
- inkscape:document-rotation="0"
- inkscape:pagecheckerboard="0">
- <inkscape:grid
- type="xygrid"
- id="grid1497" />
- </sodipodi:namedview>
- <g
- inkscape:groupmode="layer"
- id="layer1"
- inkscape:label="up-icon-thick-square" />
- <path
- style="fill:#757575;fill-opacity:1;stroke:none;stroke-width:1.34164px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m 2,8 6,-6 6,6 h -3 v 7 H 5 V 8 Z"
- id="path1103"
- sodipodi:nodetypes="cccccccc" />
- <rect
- style="fill:none;stroke-width:4;stroke-linejoin:round"
- id="rect1748"
- width="16"
- height="16"
- x="0"
- y="0" />
-</svg>
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@2x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@2x.png
deleted file mode 100644
index b4efe132..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@2x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@3x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@3x.png
deleted file mode 100644
index 2e8302b1..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@3x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@4x.png b/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@4x.png
deleted file mode 100644
index 5cf05ab3..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/images/up-icon-thick-square@4x.png
+++ /dev/null
Binary files differ
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FileDialog.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FileDialog.qml
deleted file mode 100644
index 744f32f4..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FileDialog.qml
+++ /dev/null
@@ -1,196 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import Qt.labs.folderlistmodel
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-import QtQuick.Dialogs
-import QtQuick.Dialogs.quickimpl
-import QtQuick.Layouts
-import QtQuick.Templates as T
-
-import "." as DialogsImpl
-
-FileDialogImpl {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- padding: 6
- horizontalPadding: 12
-
- standardButtons: T.Dialog.Open | T.Dialog.Cancel
-
- /*
- We use attached properties because we want to handle logic in C++, and:
- - We can't assume the footer only contains a DialogButtonBox (which would allow us
- to connect up to it in QQuickFileDialogImpl); it also needs to hold a ComboBox
- and therefore the root footer item will be e.g. a layout item instead.
- - We don't want to create our own "FileDialogButtonBox" (in order to be able to handle the logic
- in C++) because we'd need to copy (and hence duplicate code in) DialogButtonBox.qml.
- */
- FileDialogImpl.buttonBox: buttonBox
- FileDialogImpl.nameFiltersComboBox: nameFiltersComboBox
- FileDialogImpl.fileDialogListView: fileDialogListView
- FileDialogImpl.breadcrumbBar: breadcrumbBar
-
- background: Rectangle {
- implicitWidth: 600
- implicitHeight: 400
- color: control.palette.window
- border.color: control.palette.mid
- radius: 2
-
- Rectangle {
- z: -1
- x: 1
- y: 1
- width: parent.width
- height: parent.height
- color: control.palette.shadow
- opacity: 0.2
- radius: 2
- }
- }
-
- header: ColumnLayout {
- spacing: 0
-
- Label {
- objectName: "dialogTitleBarLabel"
- text: control.title
- horizontalAlignment: Label.AlignHCenter
- elide: Label.ElideRight
- font.bold: true
- padding: 6
-
- Layout.fillWidth: true
- Layout.leftMargin: 12
- Layout.rightMargin: 12
- Layout.topMargin: control.title.length > 0 ? 0 : 12
- Layout.preferredHeight: control.title.length > 0 ? implicitHeight : 0
- }
-
- DialogsImpl.FolderBreadcrumbBar {
- id: breadcrumbBar
- fileDialog: control
-
- Layout.fillWidth: true
- Layout.leftMargin: 12
- Layout.rightMargin: 12
-
- KeyNavigation.tab: fileDialogListView
- }
- }
-
- contentItem: Frame {
- padding: 0
- verticalPadding: 1
-
- ListView {
- id: fileDialogListView
- objectName: "fileDialogListView"
- anchors.fill: parent
- clip: true
- focus: true
- boundsBehavior: Flickable.StopAtBounds
-
- ScrollBar.vertical: ScrollBar {}
-
- model: FolderListModel {
- folder: control.currentFolder
- nameFilters: control.selectedNameFilter.globs
- showDirsFirst: true
- }
- delegate: DialogsImpl.FileDialogDelegate {
- objectName: "fileDialogDelegate" + index
- x: 1
- width: ListView.view.width - 2
- highlighted: ListView.isCurrentItem
- fileDialog: control
- fileDetailRowWidth: nameFiltersComboBox.width
-
- KeyNavigation.backtab: breadcrumbBar
- KeyNavigation.tab: nameFiltersComboBox
- }
- }
- }
-
- footer: RowLayout {
- id: rowLayout
- spacing: 12
-
- ComboBox {
- // OK to use IDs here, since users shouldn't be overriding this stuff.
- id: nameFiltersComboBox
- model: control.nameFilters
-
- Layout.leftMargin: 12
- Layout.fillWidth: true
- Layout.bottomMargin: 12
- }
-
- DialogButtonBox {
- id: buttonBox
- standardButtons: control.standardButtons
- spacing: 6
- horizontalPadding: 0
- verticalPadding: 0
- background: null
-
- Layout.rightMargin: 12
- Layout.bottomMargin: 12
- }
- }
-
- T.Overlay.modal: Rectangle {
- color: Fusion.topShadow
- }
-
- T.Overlay.modeless: Rectangle {
- color: Fusion.topShadow
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FileDialogDelegate.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FileDialogDelegate.qml
deleted file mode 100644
index 3c2b7b9c..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FileDialogDelegate.qml
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl as ControlsImpl
-import QtQuick.Controls.Fusion
-import QtQuick.Controls.Fusion.impl
-import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
-
-DialogsQuickImpl.FileDialogDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 6
- spacing: 6
-
- file: fileUrl
-
- icon.width: 16
- icon.height: 16
- icon.color: highlighted ? palette.highlightedText : palette.text
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/"
- + (fileIsDir ? "folder" : "file") + "-icon-round.png"
-
- // We don't use index here, but in C++. Since we're using required
- // properties, the index context property will not be injected, so we can't
- // use its QQmlContext to access it.
- required property int index
- required property string fileName
- required property url fileUrl
- required property int fileSize
- required property date fileModified
- required property bool fileIsDir
-
- required property int fileDetailRowWidth
-
- contentItem: FileDialogDelegateLabel {
- delegate: control
- fileDetailRowTextColor: control.highlighted ? Fusion.highlightedText(control.palette) : control.palette.text
- fileDetailRowWidth: control.fileDetailRowWidth
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 20
- color: control.down ? Fusion.buttonColor(control.palette, false, true, true)
- : control.highlighted ? Fusion.highlight(control.palette) : control.palette.base
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FolderBreadcrumbBar.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FolderBreadcrumbBar.qml
deleted file mode 100644
index 066a60d7..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FolderBreadcrumbBar.qml
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
-
-DialogsQuickImpl.FolderBreadcrumbBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + (upButton ? upButton.implicitWidth + upButtonSpacing : 0)
- + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
- upButtonSpacing: 6
-
- contentItem: ListView {
- id: listView
- currentIndex: control.currentIndex
- model: control.contentModel
- orientation: ListView.Horizontal
- snapMode: ListView.SnapToItem
- highlightMoveDuration: 0
- interactive: false
- clip: true
-
- Rectangle {
- anchors.fill: parent
- color: control.palette.light
- border.color: control.palette.mid
- radius: 2
- z: -1
- }
- }
- buttonDelegate: Button {
- id: buttonDelegateRoot
- text: folderName
- flat: true
-
- // The default of 100 is a bit too wide for short directory names.
- Binding {
- target: buttonDelegateRoot.background
- property: "implicitWidth"
- value: 24
- }
-
- required property int index
- required property string folderName
- }
- separatorDelegate: IconImage {
- id: iconImage
- source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/crumb-separator-icon-round.png"
- sourceSize: Qt.size(8, 8)
- width: 8 + 6
- height: control.contentItem.height
- color: control.palette.dark
- y: (control.height - height) / 2
- }
- upButton: Button {
- x: control.leftPadding
- y: control.topPadding
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/up-icon-round.png"
- icon.width: 16
- icon.height: 16
- width: height
- height: Math.max(implicitHeight, control.contentItem.height)
- focusPolicy: Qt.TabFocus
- }
- textField: TextField {
- text: control.fileDialog.selectedFile
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FontDialog.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FontDialog.qml
deleted file mode 100644
index dd75338f..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Fusion/FontDialog.qml
+++ /dev/null
@@ -1,151 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Controls.Fusion
-import QtQuick.Dialogs
-import QtQuick.Dialogs.quickimpl
-import QtQuick.Layouts
-import QtQuick.Templates as T
-
-FontDialogImpl {
- id: control
-
- implicitWidth: Math.max(control.implicitBackgroundWidth + control.leftInset + control.rightInset,
- control.contentWidth + control.leftPadding + control.rightPadding,
- control.implicitHeaderWidth,
- control.implicitFooterWidth)
- implicitHeight: Math.max(control.implicitBackgroundHeight + control.topInset + control.bottomInset,
- control.contentHeight + control.topPadding + control.bottomPadding
- + (control.implicitHeaderHeight > 0 ? control.implicitHeaderHeight + control.spacing : 0)
- + (control.implicitFooterHeight > 0 ? control.implicitFooterHeight + control.spacing : 0))
-
- leftPadding: 20
- rightPadding: 20
- // Ensure that the background's border is visible.
- leftInset: -1
- rightInset: -1
- topInset: -1
- bottomInset: -1
-
- standardButtons: T.Dialog.Ok | T.Dialog.Cancel
-
- FontDialogImpl.buttonBox: buttonBox
- FontDialogImpl.familyListView: content.familyListView
- FontDialogImpl.styleListView: content.styleListView
- FontDialogImpl.sizeListView: content.sizeListView
- FontDialogImpl.sampleEdit: content.sampleEdit
- FontDialogImpl.writingSystemComboBox: writingSystemComboBox
- FontDialogImpl.underlineCheckBox: content.underline
- FontDialogImpl.strikeoutCheckBox: content.strikeout
- FontDialogImpl.familyEdit: content.familyEdit
- FontDialogImpl.styleEdit: content.styleEdit
- FontDialogImpl.sizeEdit: content.sizeEdit
-
- background: Rectangle {
- implicitWidth: 600
- implicitHeight: 400
- color: control.palette.window
- border.color: control.palette.mid
- radius: 2
-
- Rectangle {
- z: -1
- x: 1
- y: 1
- width: parent.width
- height: parent.height
- color: control.palette.shadow
- opacity: 0.2
- radius: 2
- }
- }
-
- Overlay.modal: Rectangle {
- color: Fusion.topShadow
- }
-
- Overlay.modeless: Rectangle {
- color: Fusion.topShadow
- }
-
- header: Label {
- text: control.title
- horizontalAlignment: Label.AlignHCenter
- elide: Label.ElideRight
- font.bold: true
- padding: 6
- }
-
- contentItem: FontDialogContent {
- id: content
- }
-
- footer: RowLayout {
- id: rowLayout
- spacing: 12
-
- Label {
- text: qsTr("Writing System")
-
- Layout.leftMargin: 12
- Layout.topMargin: 6
- Layout.bottomMargin: 6
- }
- ComboBox{
- id: writingSystemComboBox
-
- Layout.fillWidth: true
- Layout.topMargin: 6
- Layout.bottomMargin: 6
- }
-
- DialogButtonBox {
- id: buttonBox
- standardButtons: control.standardButtons
- spacing: 6
- horizontalPadding: 0
- verticalPadding: 0
- background: null
-
- Layout.rightMargin: 12
- Layout.topMargin: 6
- Layout.bottomMargin: 6
- }
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FileDialog.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FileDialog.qml
deleted file mode 100644
index fdf8f36e..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FileDialog.qml
+++ /dev/null
@@ -1,190 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import Qt.labs.folderlistmodel
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-import QtQuick.Dialogs.quickimpl
-import QtQuick.Layouts
-
-import "." as DialogsImpl
-
-FileDialogImpl {
- id: control
-
- // Can't set implicitWidth of the NinePatchImage background, so we do it here.
- implicitWidth: Math.max(600,
- implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(400,
- implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- standardButtons: T.Dialog.Open | T.Dialog.Cancel
-
- FileDialogImpl.buttonBox: buttonBox
- FileDialogImpl.nameFiltersComboBox: nameFiltersComboBox
- FileDialogImpl.fileDialogListView: fileDialogListView
- FileDialogImpl.breadcrumbBar: breadcrumbBar
-
- background: NinePatchImage {
- source: Imagine.url + "dialog-background"
- NinePatchImageSelector on source {
- states: [
- {"modal": control.modal},
- {"dim": control.dim}
- ]
- }
- }
-
- header: ColumnLayout {
- spacing: 12
-
- Label {
- text: control.title
- elide: Label.ElideRight
- font.bold: true
-
- Layout.leftMargin: 16
- Layout.rightMargin: 16
- Layout.topMargin: 12
- Layout.fillWidth: true
- Layout.preferredHeight: control.title.length > 0 ? implicitHeight : 0
-
- background: NinePatchImage {
- width: parent.width
- height: parent.height
-
- source: Imagine.url + "dialog-title"
- NinePatchImageSelector on source {
- states: [
- {"modal": control.modal},
- {"dim": control.dim}
- ]
- }
- }
- }
-
- DialogsImpl.FolderBreadcrumbBar {
- id: breadcrumbBar
- fileDialog: control
-
- Layout.leftMargin: 16
- Layout.rightMargin: 16
- Layout.fillWidth: true
- Layout.maximumWidth: parent.width - 28
- }
- }
-
- contentItem: ListView {
- id: fileDialogListView
- objectName: "fileDialogListView"
- clip: true
- boundsBehavior: Flickable.StopAtBounds
-
- ScrollBar.vertical: ScrollBar {}
-
- model: FolderListModel {
- folder: control.currentFolder
- nameFilters: control.selectedNameFilter.globs
- showDirsFirst: true
- }
- delegate: DialogsImpl.FileDialogDelegate {
- objectName: "fileDialogDelegate" + index
- width: ListView.view.width
- highlighted: ListView.isCurrentItem
- fileDialog: control
- fileDetailRowWidth: nameFiltersComboBox.width
- }
- }
-
- footer: RowLayout {
- id: rowLayout
- spacing: 20
-
- ComboBox {
- id: nameFiltersComboBox
- model: control.nameFilters
-
- Layout.leftMargin: 16
- Layout.bottomMargin: 16
- Layout.fillWidth: true
- }
-
- DialogButtonBox {
- id: buttonBox
- standardButtons: control.standardButtons
- spacing: 12
-
- Layout.bottomMargin: 16
- Layout.rightMargin: 16
- }
- }
-
- T.Overlay.modal: NinePatchImage {
- source: Imagine.url + "dialog-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": true}
- ]
- }
- }
-
- T.Overlay.modeless: NinePatchImage {
- source: Imagine.url + "dialog-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": false}
- ]
- }
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FileDialogDelegate.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FileDialogDelegate.qml
deleted file mode 100644
index 9785afd1..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FileDialogDelegate.qml
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick.Controls
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-import QtQuick.Controls.impl as ControlsImpl
-import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
-
-DialogsQuickImpl.FileDialogDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- file: fileUrl
-
- icon.width: 16
- icon.height: 16
- icon.color: highlighted ? palette.highlightedText : palette.text
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/"
- + (fileIsDir ? "folder" : "file") + "-icon-round.png"
-
- required property int index
- required property string fileName
- required property url fileUrl
- required property int fileSize
- required property date fileModified
- required property bool fileIsDir
-
- required property int fileDetailRowWidth
-
- contentItem: FileDialogDelegateLabel {
- delegate: control
- fileDetailRowTextColor: control.icon.color
- fileDetailRowWidth: control.fileDetailRowWidth
- }
-
- background: NinePatchImage {
- source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/imagine/filedialogdelegate-background"
- NinePatchImageSelector on source {
- states: [
- { "disabled": !control.enabled },
- { "pressed": control.down },
- { "focused": control.visualFocus },
- { "highlighted": control.highlighted },
- { "mirrored": control.mirrored },
- { "hovered": control.hovered }
- ]
- }
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FolderBreadcrumbBar.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FolderBreadcrumbBar.qml
deleted file mode 100644
index 2a56a3c3..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FolderBreadcrumbBar.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
-
-DialogsQuickImpl.FolderBreadcrumbBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + (upButton ? upButton.implicitWidth + upButtonSpacing : 0)
- + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
- upButtonSpacing: 20
- padding: 1
-
- background: Rectangle {}
- contentItem: ListView {
- id: listView
- currentIndex: control.currentIndex
- model: control.contentModel
- orientation: ListView.Horizontal
- snapMode: ListView.SnapToItem
- highlightMoveDuration: 0
- interactive: false
- clip: true
- }
- buttonDelegate: Button {
- id: buttonDelegateRoot
- text: folderName
- flat: true
-
- required property int index
- required property string folderName
- }
- separatorDelegate: IconImage {
- id: iconImage
- source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/crumb-separator-icon-round.png"
- sourceSize: Qt.size(8, 8)
- width: 8
- height: control.contentItem.height
- y: (control.height - height) / 2
- }
- upButton: ToolButton {
- x: control.leftPadding
- y: control.topPadding
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/up-icon-thick-square.png"
- icon.width: 16
- icon.height: 16
- focusPolicy: Qt.TabFocus
- }
- textField: TextField {
- text: control.fileDialog.selectedFile
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FontDialog.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FontDialog.qml
deleted file mode 100644
index 47bd53da..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Imagine/FontDialog.qml
+++ /dev/null
@@ -1,167 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Controls.Imagine
-import QtQuick.Controls.Imagine.impl
-import QtQuick.Dialogs
-import QtQuick.Dialogs.quickimpl
-import QtQuick.Layouts
-import QtQuick.Templates as T
-
-FontDialogImpl {
- id: control
-
- // Can't set implicitWidth of the NinePatchImage background, so we do it here.
- implicitWidth: Math.max(600,
- implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(400,
- implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- topPadding: background ? background.topPadding : 0
- leftPadding: background ? background.leftPadding : 0
- rightPadding: background ? background.rightPadding : 0
- bottomPadding: background ? background.bottomPadding : 0
-
- topInset: background ? -background.topInset || 0 : 0
- leftInset: background ? -background.leftInset || 0 : 0
- rightInset: background ? -background.rightInset || 0 : 0
- bottomInset: background ? -background.bottomInset || 0 : 0
-
- standardButtons: T.Dialog.Ok | T.Dialog.Cancel
-
- FontDialogImpl.buttonBox: buttonBox
- FontDialogImpl.familyListView: content.familyListView
- FontDialogImpl.styleListView: content.styleListView
- FontDialogImpl.sizeListView: content.sizeListView
- FontDialogImpl.sampleEdit: content.sampleEdit
- FontDialogImpl.writingSystemComboBox: writingSystemComboBox
- FontDialogImpl.underlineCheckBox: content.underline
- FontDialogImpl.strikeoutCheckBox: content.strikeout
- FontDialogImpl.familyEdit: content.familyEdit
- FontDialogImpl.styleEdit: content.styleEdit
- FontDialogImpl.sizeEdit: content.sizeEdit
-
- background: NinePatchImage {
- source: Imagine.url + "dialog-background"
- NinePatchImageSelector on source {
- states: [
- {"modal": control.modal},
- {"dim": control.dim}
- ]
- }
- }
-
- Overlay.modal: NinePatchImage {
- source: Imagine.url + "dialog-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": true}
- ]
- }
- }
-
- Overlay.modeless: NinePatchImage {
- source: Imagine.url + "dialog-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": false}
- ]
- }
- }
-
- header: Label {
- text: control.title
- elide: Label.ElideRight
- font.bold: true
-
- leftPadding: 16
- rightPadding: 16
- topPadding: 12
- height: control.title.length > 0 ? implicitHeight : 0
-
- background: NinePatchImage {
- width: parent.width
- height: parent.height
-
- source: Imagine.url + "dialog-title"
- NinePatchImageSelector on source {
- states: [
- {"modal": control.modal},
- {"dim": control.dim}
- ]
- }
- }
- }
-
- contentItem: FontDialogContent {
- id: content
- rowSpacing: 16
- }
-
- footer: RowLayout {
- id: rowLayout
- spacing: 20
-
- Label {
- text: qsTr("Writing System")
- Layout.leftMargin: 20
- Layout.bottomMargin: 16
- }
- ComboBox{
- id: writingSystemComboBox
-
- Layout.fillWidth: true
- Layout.bottomMargin: 16
- }
-
- DialogButtonBox {
- id: buttonBox
- standardButtons: control.standardButtons
- spacing: 12
- Layout.rightMargin: 20
- Layout.bottomMargin: 16
- }
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FileDialog.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FileDialog.qml
deleted file mode 100644
index 7e7c4307..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FileDialog.qml
+++ /dev/null
@@ -1,163 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import Qt.labs.folderlistmodel
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-import QtQuick.Dialogs
-import QtQuick.Dialogs.quickimpl
-import QtQuick.Layouts
-import QtQuick.Templates as T
-
-import "." as DialogsImpl
-
-FileDialogImpl {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- leftPadding: 24
- rightPadding: 24
-
- standardButtons: T.Dialog.Open | T.Dialog.Cancel
-
- Material.elevation: 24
-
- FileDialogImpl.buttonBox: buttonBox
- FileDialogImpl.nameFiltersComboBox: nameFiltersComboBox
- FileDialogImpl.fileDialogListView: fileDialogListView
- FileDialogImpl.breadcrumbBar: breadcrumbBar
-
- background: Rectangle {
- implicitWidth: 600
- implicitHeight: 400
- radius: 2
- color: control.Material.dialogColor
-
- layer.enabled: control.Material.elevation > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
- }
-
- header: ColumnLayout {
- spacing: 12
-
- Label {
- text: control.title
- visible: control.title.length > 0
- elide: Label.ElideRight
- font.bold: true
- font.pixelSize: 16
-
- Layout.leftMargin: 24
- Layout.rightMargin: 24
- Layout.topMargin: 24
- Layout.fillWidth: true
- }
-
- DialogsImpl.FolderBreadcrumbBar {
- id: breadcrumbBar
- fileDialog: control
-
- Layout.leftMargin: 24
- Layout.rightMargin: 24
- Layout.fillWidth: true
- Layout.maximumWidth: parent.width - 48
- }
- }
-
- contentItem: ListView {
- id: fileDialogListView
- objectName: "fileDialogListView"
- clip: true
-
- ScrollBar.vertical: ScrollBar {}
-
- model: FolderListModel {
- folder: control.currentFolder
- nameFilters: control.selectedNameFilter.globs
- showDirsFirst: true
- }
- delegate: DialogsImpl.FileDialogDelegate {
- objectName: "fileDialogDelegate" + index
- width: ListView.view.width
- highlighted: ListView.isCurrentItem
- fileDialog: control
- fileDetailRowWidth: nameFiltersComboBox.width
- }
- }
-
- footer: RowLayout {
- id: rowLayout
- spacing: 20
-
- ComboBox {
- id: nameFiltersComboBox
- model: control.nameFilters
-
- Layout.leftMargin: 20
- Layout.fillWidth: true
- }
-
- DialogButtonBox {
- id: buttonBox
- standardButtons: control.standardButtons
- spacing: 12
- horizontalPadding: 0
- verticalPadding: 20
-
- Layout.rightMargin: 20
- }
- }
-
- Overlay.modal: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.5)
- }
-
- Overlay.modeless: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.12)
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FileDialogDelegate.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FileDialogDelegate.qml
deleted file mode 100644
index eb4bae9b..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FileDialogDelegate.qml
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
-
-DialogsQuickImpl.FileDialogDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 16
- verticalPadding: 8
- spacing: 16
-
- icon.width: 16
- icon.height: 16
- icon.color: enabled ? Material.foreground : Material.hintTextColor
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/"
- + (fileIsDir ? "folder" : "file") + "-icon-square.png"
-
- file: fileUrl
-
- required property int index
- required property string fileName
- required property url fileUrl
- required property int fileSize
- required property date fileModified
- required property bool fileIsDir
-
- required property int fileDetailRowWidth
-
- contentItem: FileDialogDelegateLabel {
- delegate: control
- fileDetailRowTextColor: control.Material.hintTextColor
- fileDetailRowWidth: control.fileDetailRowWidth
- }
-
- background: Rectangle {
- implicitHeight: control.Material.delegateHeight
-
- color: control.highlighted ? Color.transparent(control.Material.accentColor, 0.08) : "transparent"
-
- Ripple {
- width: parent.width
- height: parent.height
-
- clip: visible
- pressed: control.pressed
- anchor: control
- active: control.down || control.visualFocus || control.hovered
- color: control.highlighted ? control.Material.highlightedRippleColor : control.Material.rippleColor
- }
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FolderBreadcrumbBar.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FolderBreadcrumbBar.qml
deleted file mode 100644
index 7b839034..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FolderBreadcrumbBar.qml
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
-
-DialogsQuickImpl.FolderBreadcrumbBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + (upButton ? upButton.implicitWidth + upButtonSpacing : 0)
- + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
- upButtonSpacing: 20
- padding: 1
-
- background: Rectangle {}
- contentItem: ListView {
- id: listView
- currentIndex: control.currentIndex
- model: control.contentModel
- orientation: ListView.Horizontal
- snapMode: ListView.SnapToItem
- highlightMoveDuration: 0
- interactive: false
- clip: true
- }
- buttonDelegate: Button {
- id: buttonDelegateRoot
- text: folderName
- flat: true
- font.capitalization: Font.MixedCase
-
- // The default of 100 is a bit too wide for short directory names.
- Binding {
- target: buttonDelegateRoot.background
- property: "implicitWidth"
- value: control.Material.buttonHeight
- }
-
- required property int index
- required property string folderName
- }
- separatorDelegate: IconImage {
- id: iconImage
- source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/crumb-separator-icon-square.png"
- sourceSize: Qt.size(8, 8)
- // The image is 8x8, and add 2 px padding on each side.
- width: 8 + 4
- height: control.contentItem.height
- color: control.Material.hintTextColor
- y: (control.height - height) / 2
- }
- upButton: ToolButton {
- x: control.leftPadding
- y: control.topPadding
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/up-icon-thick-square.png"
- icon.width: 16
- icon.height: 16
- width: height
- focusPolicy: Qt.TabFocus
- }
- textField: TextField {
- text: control.fileDialog.selectedFile
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FontDialog.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FontDialog.qml
deleted file mode 100644
index 51134680..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Material/FontDialog.qml
+++ /dev/null
@@ -1,142 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Controls.Material
-import QtQuick.Controls.Material.impl
-import QtQuick.Dialogs
-import QtQuick.Dialogs.quickimpl
-import QtQuick.Layouts
-import QtQuick.Templates as T
-
-FontDialogImpl {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- leftPadding: 24
- rightPadding: 24
-
- standardButtons: T.Dialog.Ok | T.Dialog.Cancel
-
- Material.elevation: 24
-
- FontDialogImpl.buttonBox: buttonBox
- FontDialogImpl.familyListView: content.familyListView
- FontDialogImpl.styleListView: content.styleListView
- FontDialogImpl.sizeListView: content.sizeListView
- FontDialogImpl.sampleEdit: content.sampleEdit
- FontDialogImpl.writingSystemComboBox: writingSystemComboBox
- FontDialogImpl.underlineCheckBox: content.underline
- FontDialogImpl.strikeoutCheckBox: content.strikeout
- FontDialogImpl.familyEdit: content.familyEdit
- FontDialogImpl.styleEdit: content.styleEdit
- FontDialogImpl.sizeEdit: content.sizeEdit
-
- background: Rectangle {
- implicitWidth: 600
- implicitHeight: 400
- radius: 2
- color: control.Material.dialogColor
-
- layer.enabled: control.Material.elevation > 0
- layer.effect: ElevationEffect {
- elevation: control.Material.elevation
- }
- }
-
- Overlay.modal: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.5)
- }
-
- Overlay.modeless: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.12)
- }
-
- header: Label {
- text: control.title
- visible: control.title.length > 0
- elide: Label.ElideRight
- font.bold: true
- font.pixelSize: 16
-
- leftPadding: 24
- rightPadding: 24
- topPadding: 24
- bottomPadding: 24
- }
-
- contentItem: FontDialogContent {
- id: content
- familyEdit.bottomPadding: 8
- styleEdit.bottomPadding: 8
- sizeEdit.bottomPadding: 8
- }
-
- footer: RowLayout {
- id: rowLayout
- spacing: 20
-
- Label {
- text: qsTr("Writing System")
-
- Layout.leftMargin: 20
- }
- ComboBox{
- id: writingSystemComboBox
-
- Layout.fillWidth: true
- }
-
- DialogButtonBox {
- id: buttonBox
- standardButtons: control.standardButtons
- spacing: 12
- horizontalPadding: 0
- verticalPadding: 20
-
- Layout.rightMargin: 20
- }
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FileDialog.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FileDialog.qml
deleted file mode 100644
index 02b7368c..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FileDialog.qml
+++ /dev/null
@@ -1,165 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import Qt.labs.folderlistmodel
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.Universal
-import QtQuick.Dialogs
-import QtQuick.Dialogs.quickimpl
-import QtQuick.Layouts
-import QtQuick.Templates as T
-
-import "." as DialogsImpl
-
-FileDialogImpl {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- padding: 24
- verticalPadding: 18
-
- standardButtons: T.Dialog.Open | T.Dialog.Cancel
-
- FileDialogImpl.buttonBox: buttonBox
- FileDialogImpl.nameFiltersComboBox: nameFiltersComboBox
- FileDialogImpl.fileDialogListView: fileDialogListView
- FileDialogImpl.breadcrumbBar: breadcrumbBar
-
- background: Rectangle {
- implicitWidth: 600
- implicitHeight: 400
- color: control.Universal.chromeMediumLowColor
- border.color: control.Universal.chromeHighColor
- border.width: 1 // FlyoutBorderThemeThickness
- }
-
- header: ColumnLayout {
- spacing: 12
-
- Label {
- text: control.title
- elide: Label.ElideRight
- // TODO: QPlatformTheme::TitleBarFont
- font.pixelSize: 20
-
- Layout.leftMargin: 24
- Layout.rightMargin: 24
- Layout.topMargin: 18
- Layout.fillWidth: true
- Layout.preferredHeight: control.title.length > 0 ? implicitHeight : 0
-
- background: Rectangle {
- x: 1; y: 1 // // FlyoutBorderThemeThickness
- color: control.Universal.chromeMediumLowColor
- width: parent.width - 2
- height: parent.height - 1
- }
- }
-
- DialogsImpl.FolderBreadcrumbBar {
- id: breadcrumbBar
- fileDialog: control
-
- Layout.leftMargin: 24
- Layout.rightMargin: 24
- Layout.fillWidth: true
- Layout.maximumWidth: parent.width - 48
- }
- }
-
- contentItem: ListView {
- id: fileDialogListView
- objectName: "fileDialogListView"
- clip: true
- boundsBehavior: Flickable.StopAtBounds
-
- ScrollBar.vertical: ScrollBar {}
-
- model: FolderListModel {
- folder: control.currentFolder
- nameFilters: control.selectedNameFilter.globs
- showDirsFirst: true
- }
- delegate: DialogsImpl.FileDialogDelegate {
- objectName: "fileDialogDelegate" + index
- width: ListView.view.width
- highlighted: ListView.isCurrentItem
- fileDialog: control
- fileDetailRowWidth: nameFiltersComboBox.width
- }
- }
-
- footer: RowLayout {
- id: rowLayout
- spacing: 24
-
- ComboBox {
- id: nameFiltersComboBox
- model: control.nameFilters
-
- Layout.leftMargin: 24
- Layout.fillWidth: true
- Layout.topMargin: 6
- Layout.bottomMargin: 24
- }
-
- DialogButtonBox {
- id: buttonBox
- standardButtons: control.standardButtons
- spacing: 12
- horizontalPadding: 0
-
- Layout.rightMargin: 24
- }
- }
-
- T.Overlay.modal: Rectangle {
- color: control.Universal.baseLowColor
- }
-
- T.Overlay.modeless: Rectangle {
- color: control.Universal.baseLowColor
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FileDialogDelegate.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FileDialogDelegate.qml
deleted file mode 100644
index d4322dc5..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FileDialogDelegate.qml
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
-
-DialogsQuickImpl.FileDialogDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- spacing: 12
-
- padding: 12
- topPadding: padding - 1
- bottomPadding: padding + 1
-
- icon.width: 20
- icon.height: 20
- icon.color: Color.transparent(Universal.foreground, enabled ? 1.0 : 0.2)
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/"
- + (fileIsDir ? "folder" : "file") + "-icon-square.png"
-
- file: fileUrl
-
- required property int index
- required property string fileName
- required property url fileUrl
- required property int fileSize
- required property date fileModified
- required property bool fileIsDir
-
- required property int fileDetailRowWidth
-
- contentItem: FileDialogDelegateLabel {
- delegate: control
- fileDetailRowTextColor: control.icon.color
- fileDetailRowWidth: control.fileDetailRowWidth
- }
-
- background: Rectangle {
- visible: control.down || control.highlighted || control.visualFocus || control.hovered
- color: control.down ? control.Universal.listMediumColor :
- control.hovered ? control.Universal.listLowColor : control.Universal.altMediumLowColor
-
- Rectangle {
- width: parent.width
- height: parent.height
- visible: control.visualFocus || control.highlighted
- color: control.Universal.accent
- opacity: control.Universal.theme === Universal.Light ? 0.4 : 0.6
- }
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FolderBreadcrumbBar.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FolderBreadcrumbBar.qml
deleted file mode 100644
index f270b411..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FolderBreadcrumbBar.qml
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
-
-DialogsQuickImpl.FolderBreadcrumbBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + (upButton ? upButton.implicitWidth + upButtonSpacing : 0)
- + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
- upButtonSpacing: 20
- padding: 1
-
- background: Rectangle {}
- contentItem: ListView {
- id: listView
- currentIndex: control.currentIndex
- model: control.contentModel
- orientation: ListView.Horizontal
- snapMode: ListView.SnapToItem
- highlightMoveDuration: 0
- interactive: false
- clip: true
- }
- buttonDelegate: ToolButton {
- id: buttonDelegateRoot
- text: folderName
-
- // The default is a bit too wide for short directory names.
- Binding {
- target: buttonDelegateRoot.background
- property: "implicitWidth"
- value: 48
- }
-
- required property int index
- required property string folderName
- }
- separatorDelegate: IconImage {
- id: iconImage
- source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/crumb-separator-icon-square.png"
- sourceSize: Qt.size(8, 8)
- // The image is 8x8, and add 2 px padding on each side.
- width: 8 + 4
- height: control.contentItem.height
- color: Color.transparent(control.Universal.foreground, enabled ? 1.0 : 0.2)
- y: (control.height - height) / 2
- }
- upButton: ToolButton {
- x: control.leftPadding
- y: control.topPadding
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/up-icon-square.png"
- icon.width: 16
- icon.height: 16
- width: height
- focusPolicy: Qt.TabFocus
- }
- textField: TextField {
- text: control.fileDialog.selectedFile
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FontDialog.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FontDialog.qml
deleted file mode 100644
index 1bd3092e..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/+Universal/FontDialog.qml
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Controls.Universal
-import QtQuick.Dialogs
-import QtQuick.Dialogs.quickimpl
-import QtQuick.Layouts
-import QtQuick.Templates as T
-
-FontDialogImpl {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- padding: 24
- verticalPadding: 18
-
- standardButtons: T.Dialog.Ok | T.Dialog.Cancel
-
- FontDialogImpl.buttonBox: buttonBox
- FontDialogImpl.familyListView: content.familyListView
- FontDialogImpl.styleListView: content.styleListView
- FontDialogImpl.sizeListView: content.sizeListView
- FontDialogImpl.sampleEdit: content.sampleEdit
- FontDialogImpl.writingSystemComboBox: writingSystemComboBox
- FontDialogImpl.underlineCheckBox: content.underline
- FontDialogImpl.strikeoutCheckBox: content.strikeout
- FontDialogImpl.familyEdit: content.familyEdit
- FontDialogImpl.styleEdit: content.styleEdit
- FontDialogImpl.sizeEdit: content.sizeEdit
-
- background: Rectangle {
- implicitWidth: 600
- implicitHeight: 400
- color: control.Universal.chromeMediumLowColor
- border.color: control.Universal.chromeHighColor
- border.width: 1 // FlyoutBorderThemeThickness
- }
-
- Overlay.modal: Rectangle {
- color: control.Universal.baseLowColor
- }
-
- Overlay.modeless: Rectangle {
- color: control.Universal.baseLowColor
- }
-
- header: Label {
- text: control.title
- elide: Label.ElideRight
- // TODO: QPlatformTheme::TitleBarFont
- font.pixelSize: 20
-
- leftPadding: 24
- rightPadding: 24
- topPadding: 18
- height: control.title.length > 0 ? implicitHeight : 0
-
- background: Rectangle {
- x: 1; y: 1 // // FlyoutBorderThemeThickness
- color: control.Universal.chromeMediumLowColor
- width: parent.width - 2
- height: parent.height - 1
- }
- }
-
- contentItem: FontDialogContent {
- id: content
- rowSpacing: 12
- }
-
- footer: RowLayout {
- id: rowLayout
- spacing: 24
-
- Label {
- text: qsTr("Writing System")
-
- Layout.leftMargin: 24
- Layout.topMargin: 6
- Layout.bottomMargin: 24
- }
- ComboBox{
- id: writingSystemComboBox
-
- Layout.fillWidth: true
- Layout.topMargin: 6
- Layout.bottomMargin: 24
-
- }
-
- DialogButtonBox {
- id: buttonBox
- standardButtons: control.standardButtons
- spacing: 12
- horizontalPadding: 0
-
- Layout.rightMargin: 24
- }
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialog.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialog.qml
deleted file mode 100644
index 99a90cbc..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialog.qml
+++ /dev/null
@@ -1,183 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import Qt.labs.folderlistmodel
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Dialogs
-import QtQuick.Dialogs.quickimpl
-import QtQuick.Layouts
-import QtQuick.Templates as T
-
-import "." as DialogsImpl
-
-FileDialogImpl {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitHeaderWidth,
- implicitFooterWidth)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding
- + (implicitHeaderHeight > 0 ? implicitHeaderHeight + spacing : 0)
- + (implicitFooterHeight > 0 ? implicitFooterHeight + spacing : 0))
-
- leftPadding: 20
- rightPadding: 20
- // Ensure that the background's border is visible.
- leftInset: -1
- rightInset: -1
- topInset: -1
- bottomInset: -1
-
- standardButtons: T.Dialog.Open | T.Dialog.Cancel
-
- /*
- We use attached properties because we want to handle logic in C++, and:
- - We can't assume the footer only contains a DialogButtonBox (which would allow us
- to connect up to it in QQuickFileDialogImpl); it also needs to hold a ComboBox
- and therefore the root footer item will be e.g. a layout item instead.
- - We don't want to create our own "FileDialogButtonBox" (in order to be able to handle the logic
- in C++) because we'd need to copy (and hence duplicate code in) DialogButtonBox.qml.
- */
- FileDialogImpl.buttonBox: buttonBox
- FileDialogImpl.nameFiltersComboBox: nameFiltersComboBox
- FileDialogImpl.fileDialogListView: fileDialogListView
- FileDialogImpl.breadcrumbBar: breadcrumbBar
-
- background: Rectangle {
- implicitWidth: 600
- implicitHeight: 400
- color: control.palette.window
- border.color: control.palette.dark
- }
-
- header: Pane {
- palette.window: control.palette.light
- padding: 20
-
- contentItem: Column {
- spacing: 12
-
- Label {
- objectName: "dialogTitleBarLabel"
- width: parent.width
- text: control.title
- visible: control.title.length > 0
- horizontalAlignment: Label.AlignHCenter
- elide: Label.ElideRight
- font.bold: true
- }
-
- DialogsImpl.FolderBreadcrumbBar {
- id: breadcrumbBar
- width: parent.width
- fileDialog: control
-
- KeyNavigation.tab: fileDialogListView
- }
- }
- }
-
- contentItem: ListView {
- id: fileDialogListView
- objectName: "fileDialogListView"
- clip: true
- focus: true
- boundsBehavior: Flickable.StopAtBounds
-
- ScrollBar.vertical: ScrollBar {}
-
- model: FolderListModel {
- folder: control.currentFolder
- nameFilters: control.selectedNameFilter.globs
- showDirsFirst: true
- }
- delegate: DialogsImpl.FileDialogDelegate {
- objectName: "fileDialogDelegate" + index
- width: ListView.view.width
- highlighted: ListView.isCurrentItem
- fileDialog: control
- fileDetailRowWidth: nameFiltersComboBox.width
-
- KeyNavigation.backtab: breadcrumbBar
- KeyNavigation.tab: nameFiltersComboBox
- }
- }
-
- footer: Rectangle {
- color: control.palette.light
- implicitWidth: rowLayout.implicitWidth
- implicitHeight: rowLayout.implicitHeight
-
- RowLayout {
- id: rowLayout
- width: parent.width
- height: parent.height
- spacing: 20
-
- ComboBox {
- // OK to use IDs here, since users shouldn't be overriding this stuff.
- id: nameFiltersComboBox
- model: control.nameFilters
-
- Layout.leftMargin: 20
- Layout.fillWidth: true
- }
-
- DialogButtonBox {
- id: buttonBox
- standardButtons: control.standardButtons
- palette.window: control.palette.light
- spacing: 12
- horizontalPadding: 0
- verticalPadding: 20
-
- Layout.rightMargin: 20
- }
- }
- }
-
- Overlay.modal: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.5)
- }
-
- Overlay.modeless: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.12)
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialogDelegate.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialogDelegate.qml
deleted file mode 100644
index 03250faa..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialogDelegate.qml
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl as ControlsImpl
-import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
-
-DialogsQuickImpl.FileDialogDelegate {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- padding: 12
- spacing: 8
- topPadding: 0
- bottomPadding: 0
-
- file: fileUrl
-
- icon.width: 16
- icon.height: 16
- icon.color: highlighted ? palette.highlightedText : palette.text
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/"
- + (fileIsDir ? "folder" : "file") + "-icon-round.png"
-
- // We don't use index here, but in C++. Since we're using required
- // properties, the index context property will not be injected, so we can't
- // use its QQmlContext to access it.
- required property int index
- required property string fileName
- required property url fileUrl
- required property int fileSize
- required property date fileModified
- required property bool fileIsDir
-
- required property int fileDetailRowWidth
-
- contentItem: FileDialogDelegateLabel {
- delegate: control
- fileDetailRowTextColor: control.icon.color
- fileDetailRowWidth: control.fileDetailRowWidth
- }
-
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- visible: control.down || control.highlighted || control.visualFocus
- color: Color.blend(control.down ? control.palette.midlight : control.palette.light,
- control.palette.highlight, control.highlighted ? 0.15 : 0.0)
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialogDelegateLabel.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialogDelegateLabel.qml
deleted file mode 100644
index 9768cd51..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/FileDialogDelegateLabel.qml
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
-
-/*
- Most of the elements in here are the same between styles, so we
- have a reusable component for it and provide some properties to enable style-specific tweaks.
-*/
-Item {
- id: root
- implicitWidth: column.implicitWidth
- implicitHeight: column.implicitHeight
-
- required property DialogsQuickImpl.FileDialogDelegate delegate
- required property int fileDetailRowWidth
-
- property color fileDetailRowTextColor
-
- Column {
- id: column
- y: (parent.height - height) / 2
-
- Row {
- spacing: root.delegate.spacing
-
- IconImage {
- id: iconImage
- source: root.delegate.icon.source
- sourceSize: Qt.size(root.delegate.icon.width, root.delegate.icon.height)
- width: root.delegate.icon.width
- height: root.delegate.icon.height
- color: root.delegate.icon.color
- y: (parent.height - height) / 2
- }
- Label {
- text: root.delegate.fileName
- color: root.delegate.icon.color
- y: (parent.height - height) / 2
- }
- }
-
- Item {
- id: fileDetailRow
- x: iconImage.width + root.delegate.spacing
- width: fileDetailRowWidth - x - root.delegate.leftPadding
- implicitHeight: childrenRect.height
-
- Label {
- text: locale.formattedDataSize(root.delegate.fileSize)
- font.pixelSize: root.delegate.font.pixelSize * 0.75
- color: root.fileDetailRowTextColor
- }
- Label {
- text: Qt.formatDateTime(root.delegate.fileModified)
- font.pixelSize: root.delegate.font.pixelSize * 0.75
- color: root.fileDetailRowTextColor
- x: parent.width - width
- }
- }
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/FolderBreadcrumbBar.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/FolderBreadcrumbBar.qml
deleted file mode 100644
index f04d5804..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/FolderBreadcrumbBar.qml
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Dialogs.quickimpl as DialogsQuickImpl
-
-DialogsQuickImpl.FolderBreadcrumbBar {
- id: control
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + (upButton ? upButton.implicitWidth + upButtonSpacing : 0)
- + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
- upButtonSpacing: 20
- padding: 1
-
- background: Rectangle {
- border.color: control.palette.button
- }
- contentItem: ListView {
- id: listView
- currentIndex: control.currentIndex
- model: control.contentModel
- orientation: ListView.Horizontal
- snapMode: ListView.SnapToItem
- highlightMoveDuration: 0
- interactive: false
- clip: true
- }
- buttonDelegate: Button {
- id: buttonDelegateRoot
- text: folderName
- flat: true
-
- // The default of 100 is a bit too wide for short directory names.
- Binding {
- target: buttonDelegateRoot.background
- property: "implicitWidth"
- value: 40
- }
-
- required property int index
- required property string folderName
- }
- separatorDelegate: IconImage {
- id: iconImage
- source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/crumb-separator-icon-round.png"
- sourceSize: Qt.size(8, 8)
- width: 8
- height: control.contentItem.height
- color: control.palette.button
- y: (control.height - height) / 2
- }
- upButton: ToolButton {
- x: control.leftPadding
- y: control.topPadding
- icon.source: "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/images/up-icon-round.png"
- icon.width: 16
- icon.height: 16
- width: height
- focusPolicy: Qt.TabFocus
- }
- textField: TextField {
- text: control.fileDialog.selectedFile
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/FontDialog.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/FontDialog.qml
deleted file mode 100644
index e2caea40..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/FontDialog.qml
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Dialogs
-import QtQuick.Dialogs.quickimpl
-import QtQuick.Layouts
-import QtQuick.Templates as T
-
-FontDialogImpl {
- id: control
-
- implicitWidth: Math.max(control.implicitBackgroundWidth + control.leftInset + control.rightInset,
- control.contentWidth + control.leftPadding + control.rightPadding,
- control.implicitHeaderWidth,
- control.implicitFooterWidth)
- implicitHeight: Math.max(control.implicitBackgroundHeight + control.topInset + control.bottomInset,
- control.contentHeight + control.topPadding + control.bottomPadding
- + (control.implicitHeaderHeight > 0 ? control.implicitHeaderHeight + control.spacing : 0)
- + (control.implicitFooterHeight > 0 ? control.implicitFooterHeight + control.spacing : 0))
-
- leftPadding: 20
- rightPadding: 20
- // Ensure that the background's border is visible.
- leftInset: -1
- rightInset: -1
- topInset: -1
- bottomInset: -1
-
- spacing: 12
-
- standardButtons: T.Dialog.Ok | T.Dialog.Cancel
-
- FontDialogImpl.buttonBox: buttonBox
- FontDialogImpl.familyListView: content.familyListView
- FontDialogImpl.styleListView: content.styleListView
- FontDialogImpl.sizeListView: content.sizeListView
- FontDialogImpl.sampleEdit: content.sampleEdit
- FontDialogImpl.writingSystemComboBox: writingSystemComboBox
- FontDialogImpl.underlineCheckBox: content.underline
- FontDialogImpl.strikeoutCheckBox: content.strikeout
- FontDialogImpl.familyEdit: content.familyEdit
- FontDialogImpl.styleEdit: content.styleEdit
- FontDialogImpl.sizeEdit: content.sizeEdit
-
- background: Rectangle {
- implicitWidth: 600
- implicitHeight: 400
- color: control.palette.window
- border.color: control.palette.dark
- }
-
- Overlay.modal: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.5)
- }
-
- Overlay.modeless: Rectangle {
- color: Color.transparent(control.palette.shadow, 0.12)
- }
-
- header: Pane {
- palette.window: control.palette.light
- padding: 20
-
- contentItem: Label {
- width: parent.width
- text: control.title
- visible: control.title.length > 0
- horizontalAlignment: Label.AlignHCenter
- elide: Label.ElideRight
- font.bold: true
- }
- }
-
- contentItem: FontDialogContent {
- id: content
- }
-
- footer: Rectangle {
- color: control.palette.light
- implicitWidth: rowLayout.implicitWidth
- implicitHeight: rowLayout.implicitHeight
-
- RowLayout {
- id: rowLayout
- width: parent.width
- height: parent.height
- spacing: 20
-
- Label {
- text: qsTr("Writing System")
-
- Layout.leftMargin: 20
- }
- ComboBox{
- id: writingSystemComboBox
-
- Layout.fillWidth: true
- }
-
- DialogButtonBox {
- id: buttonBox
- standardButtons: control.standardButtons
- palette.window: control.palette.light
- spacing: 12
- horizontalPadding: 0
- verticalPadding: 20
-
- Layout.rightMargin: 20
- }
- }
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qml/FontDialogContent.qml b/src/quickdialogs2/quickdialogs2quickimpl/qml/FontDialogContent.qml
deleted file mode 100644
index a0b7dd38..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qml/FontDialogContent.qml
+++ /dev/null
@@ -1,267 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Dialogs
-import QtQuick.Dialogs.quickimpl
-import QtQuick.Layouts
-
-GridLayout {
- property alias familyListView: fontFamilyListView
- property alias styleListView: fontStyleListView
- property alias sizeListView: fontSizeListView
- property alias sampleEdit: fontSample
- property alias underline: fontUnderline
- property alias strikeout: fontStrikeout
- property alias familyEdit: fontFamilyEdit
- property alias styleEdit: fontStyleEdit
- property alias sizeEdit: fontSizeEdit
-
- columns: 3
-
- ColumnLayout {
- spacing: 0
-
- Layout.preferredWidth: 50
-
- Label {
- text: qsTr("Family")
- Layout.alignment: Qt.AlignLeft
- }
- TextField {
- id: fontFamilyEdit
- objectName: "familyEdit"
- readOnly: true
- Layout.fillWidth: true
- focus: true
- }
- Frame {
- Layout.fillWidth: true
- Layout.fillHeight: true
- background: Rectangle {
- color: "white"
- }
- ListView {
- id: fontFamilyListView
- objectName: "familyListView"
- implicitHeight: 200
- anchors.fill: parent
- clip: true
-
- ScrollBar.vertical: ScrollBar {
- policy: ScrollBar.AlwaysOn
- }
-
- boundsBehavior: Flickable.StopAtBounds
-
- highlightMoveVelocity: -1
- highlightMoveDuration: 1
- highlightFollowsCurrentItem: true
- keyNavigationEnabled: true
-
- delegate: ItemDelegate {
- width: ListView.view.width
- highlighted: ListView.isCurrentItem
- onClicked: () => fontFamilyListView.currentIndex = index
- text: modelData
- }
- }
- }
- }
-
- ColumnLayout {
- spacing: 0
-
- Layout.preferredWidth: 30
-
- Label {
- text: qsTr("Style")
- Layout.alignment: Qt.AlignLeft
- }
- TextField {
- id: fontStyleEdit
- objectName: "styleEdit"
- readOnly: true
- Layout.fillWidth: true
- }
- Frame {
- Layout.fillWidth: true
- Layout.fillHeight: true
- background: Rectangle {
- color: "white"
- }
- ListView {
- id: fontStyleListView
- objectName: "styleListView"
- implicitHeight: 200
- anchors.fill: parent
- clip: true
-
- ScrollBar.vertical: ScrollBar {}
- boundsBehavior: Flickable.StopAtBounds
-
- highlightMoveVelocity: -1
- highlightMoveDuration: 1
- highlightFollowsCurrentItem: true
- keyNavigationEnabled: true
-
- delegate: ItemDelegate {
- width: ListView.view.width
- highlighted: ListView.isCurrentItem
- onClicked: () => fontStyleListView.currentIndex = index
- text: modelData
- }
- }
- }
- }
-
- ColumnLayout {
- spacing: 0
-
- Layout.preferredWidth: 20
-
- Label {
- text: qsTr("Size")
- Layout.alignment: Qt.AlignLeft
- }
- TextField {
- id: fontSizeEdit
- objectName: "sizeEdit"
- Layout.fillWidth: true
- validator: IntValidator {
- bottom: 1
- top: 512
- }
- }
- Frame {
- Layout.fillWidth: true
- Layout.fillHeight: true
-
- background: Rectangle {
- color: "white"
- }
- ListView {
- id: fontSizeListView
- objectName: "sizeListView"
- implicitHeight: 200
- anchors.fill: parent
- clip: true
-
- ScrollBar.vertical: ScrollBar {
- policy: ScrollBar.AlwaysOn
- }
-
- boundsBehavior: Flickable.StopAtBounds
-
- highlightMoveVelocity: -1
- highlightMoveDuration: 1
- highlightFollowsCurrentItem: true
- keyNavigationEnabled: true
-
- delegate: ItemDelegate {
- width: ListView.view.width
- highlighted: ListView.isCurrentItem
- onClicked: () => fontSizeListView.currentIndex = index
- text: modelData
- }
- }
- }
- }
-
- ColumnLayout {
- Layout.preferredWidth: 80
-
- GroupBox {
- id: effectsGroupBox
- title: qsTr("Effects")
-
- Layout.fillWidth: true
- Layout.fillHeight: true
-
- label: Label {
- anchors.left: effectsGroupBox.left
- text: parent.title
- }
-
- RowLayout {
- anchors.fill: parent
- CheckBox {
- id: fontUnderline
- objectName: "underlineEffect"
- text: qsTr("Underline")
- }
- CheckBox{
- id: fontStrikeout
- objectName: "strikeoutEffect"
- text: qsTr("Strikeout")
- }
- }
- }
- }
-
- GroupBox {
- id: sample
- padding: label.implicitHeight
- title: qsTr("Sample")
-
- Layout.fillWidth: true
- Layout.preferredWidth: 80
- Layout.fillHeight: true
- Layout.columnSpan: 2
- clip: true
-
- background: Rectangle {
- y: sample.topPadding - sample.bottomPadding
- width: parent.width - sample.leftPadding + sample.rightPadding
- height: parent.height - sample.topPadding + sample.bottomPadding
- radius: 3
- }
-
- label: Label {
- anchors.left: sample.left
- text: sample.title
- }
-
- TextEdit {
- id: fontSample
- objectName: "sampleEdit"
- anchors.centerIn: parent
- readOnly: true
- }
- }
-}
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickdialogimplfactory.cpp b/src/quickdialogs2/quickdialogs2quickimpl/qquickdialogimplfactory.cpp
deleted file mode 100644
index da298432..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickdialogimplfactory.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickdialogimplfactory_p.h"
-
-#include <QtCore/qloggingcategory.h>
-
-#include "qquickplatformfiledialog_p.h"
-#include "qquickplatformfontdialog_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \internal
-
- Creates concrete QML-based dialogs.
-*/
-
-Q_LOGGING_CATEGORY(lcQuickDialogImplFactory, "qt.quick.dialogs.quickdialogimplfactory")
-
-QPlatformDialogHelper *QQuickDialogImplFactory::createPlatformDialogHelper(
- QPlatformTheme::DialogType type, QObject *parent)
-{
- switch (type) {
- case QPlatformTheme::FileDialog: {
- auto dialog = new QQuickPlatformFileDialog(parent);
- // If the QML file failed to load, we need to handle it gracefully.
- if (!dialog->isValid()) {
- delete dialog;
- return nullptr;
- }
-
- return dialog;
- }
- case QPlatformTheme::FontDialog: {
- auto dialog = new QQuickPlatformFontDialog(parent);
-
- if (!dialog->isValid()) {
- delete dialog;
- return nullptr;
- }
- return dialog;
- }
- default:
- break;
- }
-
- return nullptr;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickdialogimplfactory_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qquickdialogimplfactory_p.h
deleted file mode 100644
index 54aa921f..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickdialogimplfactory_p.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKQMLDIALOGFACTORY_P_H
-#define QQUICKQMLDIALOGFACTORY_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtGui/qpa/qplatformtheme.h>
-
-#include "qtquickdialogs2quickimplglobal_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickDialogImplFactory
-{
-public:
- static QPlatformDialogHelper *createPlatformDialogHelper(QPlatformTheme::DialogType type,
- QObject *parent);
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKQMLDIALOGFACTORY_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate.cpp b/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate.cpp
deleted file mode 100644
index b1d44773..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfiledialogdelegate_p.h"
-
-#include <QtCore/qfileinfo.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtQml/QQmlFile>
-#include <QtQml/qqmlexpression.h>
-#include <QtQuick/private/qquicklistview_p.h>
-#include <QtQuickTemplates2/private/qquickitemdelegate_p_p.h>
-
-#include "qquickfiledialogimpl_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFileDialogDelegatePrivate : public QQuickItemDelegatePrivate
-{
- Q_DECLARE_PUBLIC(QQuickFileDialogDelegate)
-
-public:
- void highlightFile();
- void chooseFile();
-
- bool acceptKeyClick(Qt::Key key) const override;
-
- QQuickFileDialogImpl *fileDialog = nullptr;
- QUrl file;
-};
-
-void QQuickFileDialogDelegatePrivate::highlightFile()
-{
- Q_Q(QQuickFileDialogDelegate);
- QQuickListViewAttached *attached = static_cast<QQuickListViewAttached*>(
- qmlAttachedPropertiesObject<QQuickListView>(q));
- if (!attached)
- return;
-
- QQmlContext *delegateContext = qmlContext(q);
- if (!delegateContext)
- return;
-
- bool converted = false;
- const int index = q->property("index").toInt(&converted);
- if (converted) {
- attached->view()->setCurrentIndex(index);
- fileDialog->setCurrentFile(file);
- }
-}
-
-void QQuickFileDialogDelegatePrivate::chooseFile()
-{
- const QFileInfo fileInfo(QQmlFile::urlToLocalFileOrQrc(file));
- if (fileInfo.isDir()) {
- // If it's a directory, navigate to it.
- fileDialog->setCurrentFolder(file);
- } else {
- // Otherwise it's a file, so select it and close the dialog.
- fileDialog->setSelectedFile(file);
- fileDialog->accept();
- }
-}
-
-bool QQuickFileDialogDelegatePrivate::acceptKeyClick(Qt::Key key) const
-{
- return key == Qt::Key_Return || key == Qt::Key_Enter;
-}
-
-QQuickFileDialogDelegate::QQuickFileDialogDelegate(QQuickItem *parent)
- : QQuickItemDelegate(*(new QQuickFileDialogDelegatePrivate), parent)
-{
- Q_D(QQuickFileDialogDelegate);
- // Clicking and tabbing should result in it getting focus,
- // as e.g. Ubuntu and Windows both allow tabbing through file dialogs.
- setFocusPolicy(Qt::StrongFocus);
- setCheckable(true);
- QObjectPrivate::connect(this, &QQuickFileDialogDelegate::clicked,
- d, &QQuickFileDialogDelegatePrivate::highlightFile);
- QObjectPrivate::connect(this, &QQuickFileDialogDelegate::doubleClicked,
- d, &QQuickFileDialogDelegatePrivate::chooseFile);
-}
-
-QQuickFileDialogImpl *QQuickFileDialogDelegate::fileDialog() const
-{
- Q_D(const QQuickFileDialogDelegate);
- return d->fileDialog;
-}
-
-void QQuickFileDialogDelegate::setFileDialog(QQuickFileDialogImpl *fileDialog)
-{
- Q_D(QQuickFileDialogDelegate);
- if (fileDialog == d->fileDialog)
- return;
-
- d->fileDialog = fileDialog;
- emit fileDialogChanged();
-}
-
-QUrl QQuickFileDialogDelegate::file() const
-{
- Q_D(const QQuickFileDialogDelegate);
- return d->file;
-}
-
-void QQuickFileDialogDelegate::setFile(const QUrl &file)
-{
- Q_D(QQuickFileDialogDelegate);
- if (file == d->file)
- return;
-
- d->file = file;
- emit fileChanged();
-}
-
-void QQuickFileDialogDelegate::keyReleaseEvent(QKeyEvent *event)
-{
- Q_D(QQuickFileDialogDelegate);
- // We need to respond to being triggered by enter being pressed,
- // but we can't use event->isAccepted() to check, because events are pre-accepted.
- auto connection = QObjectPrivate::connect(this, &QQuickFileDialogDelegate::clicked,
- d, &QQuickFileDialogDelegatePrivate::chooseFile);
-
- QQuickItemDelegate::keyReleaseEvent(event);
-
- disconnect(connection);
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickfiledialogdelegate_p.cpp"
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate_p.h
deleted file mode 100644
index 093e27bd..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogdelegate_p.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFILEDIALOGDELEGATE_P_H
-#define QQUICKFILEDIALOGDELEGATE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickitemdelegate_p.h>
-
-#include "qtquickdialogs2quickimplglobal_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFileDialogImpl;
-class QQuickFileDialogDelegatePrivate;
-
-class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickFileDialogDelegate : public QQuickItemDelegate
-{
- Q_OBJECT
- Q_PROPERTY(QQuickFileDialogImpl *fileDialog READ fileDialog WRITE setFileDialog NOTIFY fileDialogChanged)
- Q_PROPERTY(QUrl file READ file WRITE setFile NOTIFY fileChanged)
- QML_NAMED_ELEMENT(FileDialogDelegate)
- QML_ADDED_IN_VERSION(6, 2)
-
-public:
- explicit QQuickFileDialogDelegate(QQuickItem *parent = nullptr);
-
- QQuickFileDialogImpl *fileDialog() const;
- void setFileDialog(QQuickFileDialogImpl *fileDialog);
-
- QUrl file() const;
- void setFile(const QUrl &file);
-
-Q_SIGNALS:
- void fileDialogChanged();
- void fileChanged();
-
-protected:
- void keyReleaseEvent(QKeyEvent *event) override;
-
-private:
- Q_DISABLE_COPY(QQuickFileDialogDelegate)
- Q_DECLARE_PRIVATE(QQuickFileDialogDelegate)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickFileDialogDelegate)
-
-#endif // QQUICKFILEDIALOGDELEGATE_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl.cpp b/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl.cpp
deleted file mode 100644
index 8074b259..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl.cpp
+++ /dev/null
@@ -1,564 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfiledialogimpl_p.h"
-#include "qquickfiledialogimpl_p_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtQml/qqmlinfo.h>
-#include <QtQml/qqmlfile.h>
-#include <QtQuickDialogs2Utils/private/qquickfilenamefilter_p.h>
-#include <QtQuickTemplates2/private/qquickdialogbuttonbox_p_p.h>
-#include <QtQuickTemplates2/private/qquickpopupitem_p_p.h>
-#include "qquickfiledialogdelegate_p.h"
-#include "qquickfolderbreadcrumbbar_p.h"
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcCurrentFolder, "qt.quick.dialogs.quickfiledialogimpl.currentFolder")
-Q_LOGGING_CATEGORY(lcOptions, "qt.quick.dialogs.quickfiledialogimpl.options")
-Q_LOGGING_CATEGORY(lcNameFilters, "qt.quick.dialogs.quickfiledialogimpl.namefilters")
-Q_LOGGING_CATEGORY(lcAttachedNameFilters, "qt.quick.dialogs.quickfiledialogimplattached.namefilters")
-
-QQuickFileDialogImplPrivate::QQuickFileDialogImplPrivate()
-{
-}
-
-void QQuickFileDialogImplPrivate::setNameFilters(const QStringList &filters)
-{
- Q_Q(QQuickFileDialogImpl);
- if (filters == nameFilters)
- return;
-
- nameFilters = filters;
- emit q->nameFiltersChanged();
-}
-
-void QQuickFileDialogImplPrivate::updateEnabled()
-{
- Q_Q(QQuickFileDialogImpl);
- QQuickFileDialogImplAttached *attached = attachedOrWarn();
- if (!attached)
- return;
-
- auto openButton = attached->buttonBox()->standardButton(QPlatformDialogHelper::Open);
- if (!openButton) {
- qmlWarning(q).nospace() << "Can't update Open button's enabled state because it wasn't found";
- return;
- }
-
- openButton->setEnabled(!currentFile.isEmpty() && attached->breadcrumbBar()
- && !attached->breadcrumbBar()->textField()->isVisible());
-}
-
-/*!
- \internal
-
- Ensures that a file is always selected after a change in \c folder.
-
- \a oldFolderPath is the previous value of \c folder.
-*/
-void QQuickFileDialogImplPrivate::updateCurrentFile(const QString &oldFolderPath)
-{
- Q_Q(QQuickFileDialogImpl);
- QQuickFileDialogImplAttached *attached = attachedOrWarn();
- if (!attached || !attached->fileDialogListView())
- return;
-
- QString newCurrentFilePath;
- int newCurrentFileIndex = 0;
- const QString newFolderPath = QQmlFile::urlToLocalFileOrQrc(currentFolder);
- if (!oldFolderPath.isEmpty() && !newFolderPath.isEmpty()) {
- // If the user went up a directory (or several), we should set
- // currentFile to be the directory that we were in (or
- // its closest ancestor that is a child of the new directory).
- // E.g. if oldFolderPath is /foo/bar/baz/abc/xyz, and newFolderPath is /foo/bar,
- // then we want to set currentFile to be /foo/bar/baz.
- const int indexOfFolder = oldFolderPath.indexOf(newFolderPath);
- if (indexOfFolder != -1) {
- // [folder]
- // [ oldFolderPath ]
- // /foo/bar/baz/abc/xyz
- // [rel...Paths]
- QStringList relativePaths = oldFolderPath.mid(indexOfFolder + newFolderPath.size()).split(QLatin1Char('/'), Qt::SkipEmptyParts);
- newCurrentFilePath = newFolderPath + QLatin1Char('/') + relativePaths.first();
-
- // Now find the index of that directory so that we can set the ListView's currentIndex to it.
- const QDir newFolderDir(newFolderPath);
- // Just to be safe...
- if (!newFolderDir.exists()) {
- qmlWarning(q) << "Directory" << newCurrentFilePath << "doesn't exist; can't get a file entry list for it";
- return;
- }
-
- const QFileInfoList dirs = newFolderDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::DirsFirst);
- const QFileInfo newCurrentFileInfo(newCurrentFilePath);
- // The directory can contain files, but since we put dirs first, that should never affect the indices.
- newCurrentFileIndex = dirs.indexOf(newCurrentFileInfo);
- }
- }
-
- if (newCurrentFilePath.isEmpty()) {
- // When entering into a directory that isn't a parent of the old one, the first
- // file delegate should be selected.
- // TODO: is there a cheaper way to do this? QDirIterator doesn't support sorting,
- // so we can't use that. QQuickFolderListModel uses threads to fetch its data,
- // so should be considered asynchronous. We might be able to use it, but it would
- // complicate the code even more...
- QDir newFolderDir(newFolderPath);
- if (newFolderDir.exists()) {
- const QFileInfoList files = newFolderDir.entryInfoList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot, QDir::DirsFirst);
- if (!files.isEmpty())
- newCurrentFilePath = files.first().absoluteFilePath();
- }
- }
-
- if (!newCurrentFilePath.isEmpty()) {
- q->setCurrentFile(QUrl::fromLocalFile(newCurrentFilePath));
- attached->fileDialogListView()->setCurrentIndex(newCurrentFileIndex);
- if (QQuickItem *currentItem = attached->fileDialogListView()->currentItem())
- currentItem->forceActiveFocus();
- }
-}
-
-void QQuickFileDialogImplPrivate::handleAccept()
-{
- // Let handleClick take care of calling accept().
-}
-
-void QQuickFileDialogImplPrivate::handleClick(QQuickAbstractButton *button)
-{
- Q_Q(QQuickFileDialogImpl);
- if (buttonRole(button) == QPlatformDialogHelper::AcceptRole && currentFile.isValid()) {
- // The "Open" button was clicked, so we need to set the file to the current file, if any.
- const QFileInfo fileInfo(currentFile.toLocalFile());
- if (fileInfo.isDir()) {
- // If it's a directory, navigate to it.
- q->setCurrentFolder(currentFile);
- // Don't call accept(), because selecting a folder != accepting the dialog.
- } else {
- // Otherwise it's a file, so select it and close the dialog.
- q->setSelectedFile(currentFile);
- q->accept();
- QQuickDialogPrivate::handleClick(button);
- emit q->fileSelected(currentFile);
- }
- }
-}
-
-QQuickFileDialogImpl::QQuickFileDialogImpl(QObject *parent)
- : QQuickDialog(*(new QQuickFileDialogImplPrivate), parent)
-{
-}
-
-QQuickFileDialogImplAttached *QQuickFileDialogImpl::qmlAttachedProperties(QObject *object)
-{
- return new QQuickFileDialogImplAttached(object);
-}
-
-QUrl QQuickFileDialogImpl::currentFolder() const
-{
- Q_D(const QQuickFileDialogImpl);
- return d->currentFolder;
-}
-
-void QQuickFileDialogImpl::setCurrentFolder(const QUrl &currentFolder)
-{
- qCDebug(lcCurrentFolder) << "setCurrentFolder called with" << currentFolder;
- Q_D(QQuickFileDialogImpl);
- if (currentFolder == d->currentFolder)
- return;
-
- const QString oldFolderPath = QQmlFile::urlToLocalFileOrQrc(d->currentFolder);
-
- d->currentFolder = currentFolder;
- // Since the directory changed, the old file can no longer be selected.
- setCurrentFile(QUrl());
- d->updateCurrentFile(oldFolderPath);
- emit currentFolderChanged(d->currentFolder);
-}
-
-QUrl QQuickFileDialogImpl::selectedFile() const
-{
- Q_D(const QQuickFileDialogImpl);
- return d->selectedFile;
-}
-
-void QQuickFileDialogImpl::setSelectedFile(const QUrl &selectedFile)
-{
- Q_D(QQuickFileDialogImpl);
- if (selectedFile == d->selectedFile)
- return;
-
- d->selectedFile = selectedFile;
- emit selectedFileChanged();
-}
-
-QUrl QQuickFileDialogImpl::currentFile() const
-{
- Q_D(const QQuickFileDialogImpl);
- return d->currentFile;
-}
-
-void QQuickFileDialogImpl::setCurrentFile(const QUrl &currentFile)
-{
- Q_D(QQuickFileDialogImpl);
- if (currentFile == d->currentFile)
- return;
-
- d->currentFile = currentFile;
- d->updateEnabled();
- emit currentFileChanged(d->currentFile);
-}
-
-QSharedPointer<QFileDialogOptions> QQuickFileDialogImpl::options() const
-{
- Q_D(const QQuickFileDialogImpl);
- return d->options;
-}
-
-void QQuickFileDialogImpl::setOptions(const QSharedPointer<QFileDialogOptions> &options)
-{
- qCDebug(lcOptions).nospace() << "setOptions called with:"
- << " acceptMode=" << options->acceptMode()
- << " fileMode=" << options->fileMode()
- << " initialDirectory=" << options->initialDirectory()
- << " nameFilters=" << options->nameFilters()
- << " initiallySelectedNameFilter=" << options->initiallySelectedNameFilter();
-
- Q_D(QQuickFileDialogImpl);
- d->options = options;
-
- if (d->options) {
- d->selectedNameFilter->setOptions(options);
- d->setNameFilters(options->nameFilters());
- }
-}
-
-/*!
- \internal
-
- The list of user-facing strings describing the available file filters.
-*/
-QStringList QQuickFileDialogImpl::nameFilters() const
-{
- Q_D(const QQuickFileDialogImpl);
- return d->options ? d->options->nameFilters() : QStringList();
-}
-
-void QQuickFileDialogImpl::resetNameFilters()
-{
- Q_D(QQuickFileDialogImpl);
- d->setNameFilters(QStringList());
-}
-
-QQuickFileNameFilter *QQuickFileDialogImpl::selectedNameFilter() const
-{
- Q_D(const QQuickFileDialogImpl);
- if (!d->selectedNameFilter) {
- QQuickFileDialogImpl *that = const_cast<QQuickFileDialogImpl *>(this);
- d->selectedNameFilter = new QQuickFileNameFilter(that);
- if (d->options)
- d->selectedNameFilter->setOptions(d->options);
- }
- return d->selectedNameFilter;
-}
-
-/*!
- \internal
-
- These allow QQuickPlatformFileDialog::show() to set custom labels on the
- dialog buttons without having to know about/go through QQuickFileDialogImplAttached
- and QQuickDialogButtonBox.
-*/
-void QQuickFileDialogImpl::setAcceptLabel(const QString &label)
-{
- Q_D(QQuickFileDialogImpl);
- d->acceptLabel = label;
- QQuickFileDialogImplAttached *attached = d->attachedOrWarn();
- if (!attached)
- return;
-
- auto acceptButton = attached->buttonBox()->standardButton(QPlatformDialogHelper::Open);
- if (!acceptButton) {
- qmlWarning(this).nospace() << "Can't set accept label to " << label
- << "; failed to find Open button in DialogButtonBox of " << this;
- return;
- }
-
- acceptButton->setText(!label.isEmpty()
- ? label : QQuickDialogButtonBoxPrivate::buttonText(QPlatformDialogHelper::Open));
-}
-
-void QQuickFileDialogImpl::setRejectLabel(const QString &label)
-{
- Q_D(QQuickFileDialogImpl);
- d->rejectLabel = label;
- QQuickFileDialogImplAttached *attached = d->attachedOrWarn();
- if (!attached)
- return;
-
- auto rejectButton = attached->buttonBox()->standardButton(QPlatformDialogHelper::Cancel);
- if (!rejectButton) {
- qmlWarning(this).nospace() << "Can't set reject label to " << label
- << "; failed to find Open button in DialogButtonBox of " << this;
- return;
- }
-
- rejectButton->setText(!label.isEmpty()
- ? label : QQuickDialogButtonBoxPrivate::buttonText(QPlatformDialogHelper::Cancel));
-}
-
-void QQuickFileDialogImpl::selectNameFilter(const QString &filter)
-{
- qCDebug(lcNameFilters) << "selectNameFilter called with" << filter;
- Q_D(QQuickFileDialogImpl);
- d->selectedNameFilter->update(filter);
- emit filterSelected(filter);
-}
-
-void QQuickFileDialogImpl::componentComplete()
-{
- Q_D(QQuickFileDialogImpl);
- QQuickDialog::componentComplete();
-
- // Find the right-most button and set its key navigation so that
- // tab moves focus to the breadcrumb bar's up button. I tried
- // doing this via KeyNavigation on the DialogButtonBox in QML,
- // but it didn't work (probably because it's not the right item).
- QQuickFileDialogImplAttached *attached = d->attachedOrWarn();
- if (!attached)
- return;
-
- const int buttonCount = attached->buttonBox()->count();
- if (buttonCount == 0)
- return;
-
- QQuickAbstractButton *rightMostButton = qobject_cast<QQuickAbstractButton *>(
- attached->buttonBox()->itemAt(buttonCount - 1));
- if (!rightMostButton) {
- qmlWarning(this) << "Can't find right-most button in DialogButtonBox";
- return;
- }
-
- auto keyNavigationAttached = QQuickKeyNavigationAttached::qmlAttachedProperties(rightMostButton);
- if (!keyNavigationAttached) {
- qmlWarning(this) << "Can't create attached KeyNavigation object on" << QDebug::toString(rightMostButton);
- return;
- }
-
- keyNavigationAttached->setTab(attached->breadcrumbBar()->upButton());
-}
-
-void QQuickFileDialogImpl::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- Q_D(QQuickFileDialogImpl);
- QQuickDialog::itemChange(change, data);
-
- if (change != QQuickItem::ItemVisibleHasChanged || !isComponentComplete() || !data.boolValue)
- return;
-
- QQuickFileDialogImplAttached *attached = d->attachedOrWarn();
- if (!attached)
- return;
-
- attached->fileDialogListView()->forceActiveFocus();
- d->updateEnabled();
-}
-
-QQuickFileDialogImplAttached *QQuickFileDialogImplPrivate::attachedOrWarn()
-{
- Q_Q(QQuickFileDialogImpl);
- QQuickFileDialogImplAttached *attached = static_cast<QQuickFileDialogImplAttached*>(
- qmlAttachedPropertiesObject<QQuickFileDialogImpl>(q));
- if (!attached)
- qmlWarning(q) << "Expected FileDialogImpl attached object to be present on" << this;
- return attached;
-}
-
-void QQuickFileDialogImplAttachedPrivate::nameFiltersComboBoxItemActivated(int index)
-{
- qCDebug(lcAttachedNameFilters) << "nameFiltersComboBoxItemActivated called with" << index;
- auto fileDialogImpl = qobject_cast<QQuickFileDialogImpl*>(parent);
- if (!fileDialogImpl)
- return;
-
- fileDialogImpl->selectNameFilter(nameFiltersComboBox->textAt(index));
-}
-
-void QQuickFileDialogImplAttachedPrivate::fileDialogListViewCurrentIndexChanged()
-{
- auto fileDialogImpl = qobject_cast<QQuickFileDialogImpl*>(parent);
- if (!fileDialogImpl)
- return;
-
- auto fileDialogDelegate = qobject_cast<QQuickFileDialogDelegate*>(fileDialogListView->currentItem());
- if (!fileDialogDelegate)
- return;
-
- fileDialogImpl->setCurrentFile(fileDialogDelegate->file());
-}
-
-QQuickFileDialogImplAttached::QQuickFileDialogImplAttached(QObject *parent)
- : QObject(*(new QQuickFileDialogImplAttachedPrivate), parent)
-{
- if (!qobject_cast<QQuickFileDialogImpl*>(parent)) {
- qmlWarning(this) << "FileDialogImpl attached properties should only be "
- << "accessed through the root FileDialogImpl instance";
- }
-}
-
-QQuickDialogButtonBox *QQuickFileDialogImplAttached::buttonBox() const
-{
- Q_D(const QQuickFileDialogImplAttached);
- return d->buttonBox;
-}
-
-void QQuickFileDialogImplAttached::setButtonBox(QQuickDialogButtonBox *buttonBox)
-{
- Q_D(QQuickFileDialogImplAttached);
- if (buttonBox == d->buttonBox)
- return;
-
- if (d->buttonBox) {
- QQuickFileDialogImpl *fileDialogImpl = qobject_cast<QQuickFileDialogImpl*>(parent());
- if (fileDialogImpl) {
- auto dialogPrivate = QQuickDialogPrivate::get(fileDialogImpl);
- QObjectPrivate::disconnect(d->buttonBox, &QQuickDialogButtonBox::accepted,
- dialogPrivate, &QQuickDialogPrivate::handleAccept);
- QObjectPrivate::disconnect(d->buttonBox, &QQuickDialogButtonBox::rejected,
- dialogPrivate, &QQuickDialogPrivate::handleReject);
- QObjectPrivate::disconnect(d->buttonBox, &QQuickDialogButtonBox::clicked,
- dialogPrivate, &QQuickDialogPrivate::handleClick);
- }
- }
-
- d->buttonBox = buttonBox;
-
- if (buttonBox) {
- QQuickFileDialogImpl *fileDialogImpl = qobject_cast<QQuickFileDialogImpl*>(parent());
- if (fileDialogImpl) {
- auto dialogPrivate = QQuickDialogPrivate::get(fileDialogImpl);
- QObjectPrivate::connect(d->buttonBox, &QQuickDialogButtonBox::accepted,
- dialogPrivate, &QQuickDialogPrivate::handleAccept);
- QObjectPrivate::connect(d->buttonBox, &QQuickDialogButtonBox::rejected,
- dialogPrivate, &QQuickDialogPrivate::handleReject);
- QObjectPrivate::connect(d->buttonBox, &QQuickDialogButtonBox::clicked,
- dialogPrivate, &QQuickDialogPrivate::handleClick);
- }
- }
-
- emit buttonBoxChanged();
-}
-
-QQuickComboBox *QQuickFileDialogImplAttached::nameFiltersComboBox() const
-{
- Q_D(const QQuickFileDialogImplAttached);
- return d->nameFiltersComboBox;
-}
-
-void QQuickFileDialogImplAttached::setNameFiltersComboBox(QQuickComboBox *nameFiltersComboBox)
-{
- Q_D(QQuickFileDialogImplAttached);
- if (nameFiltersComboBox == d->nameFiltersComboBox)
- return;
-
- d->nameFiltersComboBox = nameFiltersComboBox;
-
- QObjectPrivate::connect(d->nameFiltersComboBox, &QQuickComboBox::activated,
- d, &QQuickFileDialogImplAttachedPrivate::nameFiltersComboBoxItemActivated);
-
- emit nameFiltersComboBoxChanged();
-}
-
-QString QQuickFileDialogImplAttached::selectedNameFilter() const
-{
- Q_D(const QQuickFileDialogImplAttached);
- return d->nameFiltersComboBox ? d->nameFiltersComboBox->currentText() : QString();
-}
-
-void QQuickFileDialogImplAttached::selectNameFilter(const QString &filter)
-{
- Q_D(QQuickFileDialogImplAttached);
- qCDebug(lcAttachedNameFilters) << "selectNameFilter called with" << filter;
- if (!d->nameFiltersComboBox)
- return;
-
- const int indexInComboBox = d->nameFiltersComboBox->find(filter);
- if (indexInComboBox == -1)
- return;
-
- qCDebug(lcAttachedNameFilters) << "setting ComboBox's currentIndex to" << indexInComboBox;
- d->nameFiltersComboBox->setCurrentIndex(indexInComboBox);
-}
-
-QQuickListView *QQuickFileDialogImplAttached::fileDialogListView() const
-{
- Q_D(const QQuickFileDialogImplAttached);
- return d->fileDialogListView;
-}
-
-void QQuickFileDialogImplAttached::setFileDialogListView(QQuickListView *fileDialogListView)
-{
- Q_D(QQuickFileDialogImplAttached);
- if (fileDialogListView == d->fileDialogListView)
- return;
-
- d->fileDialogListView = fileDialogListView;
-
- QObjectPrivate::connect(d->fileDialogListView, &QQuickListView::currentIndexChanged,
- d, &QQuickFileDialogImplAttachedPrivate::fileDialogListViewCurrentIndexChanged);
-
- emit fileDialogListViewChanged();
-}
-
-QQuickFolderBreadcrumbBar *QQuickFileDialogImplAttached::breadcrumbBar() const
-{
- Q_D(const QQuickFileDialogImplAttached);
- return d->breadcrumbBar;
-}
-
-void QQuickFileDialogImplAttached::setBreadcrumbBar(QQuickFolderBreadcrumbBar *breadcrumbBar)
-{
- Q_D(QQuickFileDialogImplAttached);
- if (breadcrumbBar == d->breadcrumbBar)
- return;
-
- d->breadcrumbBar = breadcrumbBar;
- emit breadcrumbBarChanged();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl_p.h
deleted file mode 100644
index 23f8cf14..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl_p.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFILEDIALOGIMPL_P_H
-#define QQUICKFILEDIALOGIMPL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquicklistview_p.h>
-#include <QtQuickTemplates2/private/qquickdialog_p.h>
-
-#include "qtquickdialogs2quickimplglobal_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickComboBox;
-class QQuickDialogButtonBox;
-
-class QQuickFileDialogImplAttached;
-class QQuickFileDialogImplAttachedPrivate;
-class QQuickFileDialogImplPrivate;
-class QQuickFileNameFilter;
-class QQuickFolderBreadcrumbBar;
-
-class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickFileDialogImpl : public QQuickDialog
-{
- Q_OBJECT
- Q_PROPERTY(QUrl currentFolder READ currentFolder WRITE setCurrentFolder NOTIFY currentFolderChanged FINAL)
- Q_PROPERTY(QUrl selectedFile READ selectedFile WRITE setSelectedFile NOTIFY selectedFileChanged FINAL)
- Q_PROPERTY(QUrl currentFile READ currentFile WRITE setCurrentFile NOTIFY currentFileChanged FINAL)
- Q_PROPERTY(QStringList nameFilters READ nameFilters NOTIFY nameFiltersChanged FINAL)
- Q_PROPERTY(QQuickFileNameFilter *selectedNameFilter READ selectedNameFilter CONSTANT)
- QML_NAMED_ELEMENT(FileDialogImpl)
- QML_ATTACHED(QQuickFileDialogImplAttached)
- QML_ADDED_IN_VERSION(6, 2)
- Q_MOC_INCLUDE(<QtQuickDialogs2Utils/private/qquickfilenamefilter_p.h>)
- Q_MOC_INCLUDE(<QtQuickDialogs2QuickImpl/private/qquickfolderbreadcrumbbar_p.h>)
-
-public:
- explicit QQuickFileDialogImpl(QObject *parent = nullptr);
-
- static QQuickFileDialogImplAttached *qmlAttachedProperties(QObject *object);
-
- QUrl currentFolder() const;
- void setCurrentFolder(const QUrl &currentFolder);
-
- QUrl selectedFile() const;
- void setSelectedFile(const QUrl &file);
-
- QUrl currentFile() const;
- void setCurrentFile(const QUrl &currentFile);
-
- QSharedPointer<QFileDialogOptions> options() const;
- void setOptions(const QSharedPointer<QFileDialogOptions> &options);
-
- QStringList nameFilters() const;
- void resetNameFilters();
-
- QQuickFileNameFilter *selectedNameFilter() const;
-
- void setAcceptLabel(const QString &label);
- void setRejectLabel(const QString &label);
-
-public Q_SLOTS:
- void selectNameFilter(const QString &filter);
-
-Q_SIGNALS:
- void currentFolderChanged(const QUrl &folderUrl);
- void selectedFileChanged();
- void currentFileChanged(const QUrl &currentFileUrl);
- void nameFiltersChanged();
- void fileSelected(const QUrl &fileUrl);
- void filterSelected(const QString &filter);
-
-private:
- void componentComplete() override;
- void itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data) override;
-
- Q_DISABLE_COPY(QQuickFileDialogImpl)
- Q_DECLARE_PRIVATE(QQuickFileDialogImpl)
-};
-
-class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickFileDialogImplAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickDialogButtonBox *buttonBox READ buttonBox WRITE setButtonBox NOTIFY buttonBoxChanged FINAL)
- Q_PROPERTY(QQuickComboBox *nameFiltersComboBox READ nameFiltersComboBox WRITE setNameFiltersComboBox NOTIFY nameFiltersComboBoxChanged)
- Q_PROPERTY(QQuickListView *fileDialogListView READ fileDialogListView WRITE setFileDialogListView NOTIFY fileDialogListViewChanged)
- Q_PROPERTY(QQuickFolderBreadcrumbBar *breadcrumbBar READ breadcrumbBar WRITE setBreadcrumbBar NOTIFY breadcrumbBarChanged)
- Q_MOC_INCLUDE(<QtQuickTemplates2/private/qquickdialogbuttonbox_p.h>)
- Q_MOC_INCLUDE(<QtQuickTemplates2/private/qquickcombobox_p.h>)
-
-public:
- explicit QQuickFileDialogImplAttached(QObject *parent = nullptr);
-
- QQuickDialogButtonBox *buttonBox() const;
- void setButtonBox(QQuickDialogButtonBox *buttonBox);
-
- QQuickComboBox *nameFiltersComboBox() const;
- void setNameFiltersComboBox(QQuickComboBox *nameFiltersComboBox);
-
- QString selectedNameFilter() const;
- void selectNameFilter(const QString &filter);
-
- QQuickListView *fileDialogListView() const;
- void setFileDialogListView(QQuickListView *fileDialogListView);
-
- QQuickFolderBreadcrumbBar *breadcrumbBar() const;
- void setBreadcrumbBar(QQuickFolderBreadcrumbBar *breadcrumbBar);
-
-Q_SIGNALS:
- void buttonBoxChanged();
- void nameFiltersComboBoxChanged();
- void fileDialogListViewChanged();
- void breadcrumbBarChanged();
-
-private:
- Q_DISABLE_COPY(QQuickFileDialogImplAttached)
- Q_DECLARE_PRIVATE(QQuickFileDialogImplAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickFileDialogImpl)
-
-#endif // QQUICKFILEDIALOGIMPL_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl_p_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl_p_p.h
deleted file mode 100644
index 1831a7dc..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfiledialogimpl_p_p.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFILEDIALOG_P_P_H
-#define QQUICKFILEDIALOG_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcombobox_p.h>
-#include <QtQuickTemplates2/private/qquickdialog_p_p.h>
-#include <QtQuickTemplates2/private/qquickdialogbuttonbox_p.h>
-
-#include "qquickfiledialogimpl_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFileNameFilter;
-
-class QQuickFileDialogImplPrivate : public QQuickDialogPrivate
-{
- Q_DECLARE_PUBLIC(QQuickFileDialogImpl)
-
-public:
- QQuickFileDialogImplPrivate();
-
- static QQuickFileDialogImplPrivate *get(QQuickFileDialogImpl *dialog)
- {
- return dialog->d_func();
- }
-
- QQuickFileDialogImplAttached *attachedOrWarn();
-
- void setNameFilters(const QStringList &filters);
-
- void updateEnabled();
- void updateCurrentFile(const QString &oldFolderPath);
-
- void handleAccept() override;
- void handleClick(QQuickAbstractButton *button) override;
-
- QSharedPointer<QFileDialogOptions> options;
- QUrl currentFolder;
- QUrl selectedFile;
- QUrl currentFile;
- QStringList nameFilters;
- mutable QQuickFileNameFilter *selectedNameFilter = nullptr;
- QString acceptLabel;
- QString rejectLabel;
-};
-
-class QQuickFileDialogImplAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickFileDialogImplAttached)
-
- void nameFiltersComboBoxItemActivated(int index);
- void fileDialogListViewCurrentIndexChanged();
-
-public:
- QPointer<QQuickDialogButtonBox> buttonBox;
- QPointer<QQuickComboBox> nameFiltersComboBox;
- QPointer<QQuickListView> fileDialogListView;
- QPointer<QQuickFolderBreadcrumbBar> breadcrumbBar;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKFILEDIALOG_P_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar.cpp b/src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar.cpp
deleted file mode 100644
index c204d8fa..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar.cpp
+++ /dev/null
@@ -1,784 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfolderbreadcrumbbar_p.h"
-#include "qquickfolderbreadcrumbbar_p_p.h"
-
-#include <QtCore/qdir.h>
-#include <QtCore/qloggingcategory.h>
-#if QT_CONFIG(shortcut)
-#include <QtGui/private/qshortcutmap_p.h>
-#endif
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtQml/QQmlFile>
-#include <QtQuick/private/qquicktextinput_p.h>
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-#include <QtQuickTemplates2/private/qquickpopupitem_p_p.h>
-#include <QtQuickTemplates2/private/qquickshortcutcontext_p_p.h>
-
-#include "qquickfiledialogimpl_p.h"
-#include "qquickfiledialogimpl_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcFolderBreadcrumbBar, "qt.quick.dialogs.folderbreadcrumbbar")
-Q_LOGGING_CATEGORY(lcContentSize, "qt.quick.dialogs.folderbreadcrumbbar.contentsize")
-Q_LOGGING_CATEGORY(lcDelegates, "qt.quick.dialogs.folderbreadcrumbbar.delegates")
-Q_LOGGING_CATEGORY(lcShortcuts, "qt.quick.dialogs.folderbreadcrumbbar.shortcuts")
-Q_LOGGING_CATEGORY(lcTextInput, "qt.quick.dialogs.folderbreadcrumbbar.textinput")
-Q_LOGGING_CATEGORY(lcCurrentItem, "qt.quick.dialogs.folderbreadcrumbbar.currentitem")
-
-QQuickItem *QQuickFolderBreadcrumbBarPrivate::createDelegateItem(QQmlComponent *component, const QVariantMap &initialProperties)
-{
- Q_Q(QQuickFolderBreadcrumbBar);
- // If we don't use the correct context, it won't be possible to refer to
- // the control's id from within the delegates.
- QQmlContext *creationContext = component->creationContext();
- // The component might not have been created in QML, in which case
- // the creation context will be null and we have to create it ourselves.
- if (!creationContext)
- creationContext = qmlContext(q);
- QQmlContext *context = new QQmlContext(creationContext, q);
- context->setContextObject(q);
- QQuickItem *item = qobject_cast<QQuickItem*>(component->createWithInitialProperties(initialProperties, context));
- if (item)
- QQml_setParent_noEvent(item, q);
- qCDebug(lcDelegates) << "- created delegate item" << item << "with initialProperties" << initialProperties;
- return item;
-}
-
-QString QQuickFolderBreadcrumbBarPrivate::folderBaseName(const QString &folderPath)
-{
- if (folderPath == QLatin1String("/")) {
- // Unix root.
- return folderPath;
- } else if (folderPath.endsWith(QLatin1String(":/"))) {
- // Windows drive.
- return folderPath.mid(0, folderPath.size() - 1);
- }
- const QString baseName = folderPath.mid(folderPath.lastIndexOf(QLatin1Char('/')) + 1);
- return baseName;
-}
-
-/*!
- \internal
-
- Returns \c { "/foo", "/foo/bar", "/foo/bar/baz" } if \a folder is \c "/foo/bar/baz".
-*/
-QStringList QQuickFolderBreadcrumbBarPrivate::crumbPathsForFolder(const QUrl &folder)
-{
- const QString folderPath = QDir::fromNativeSeparators(QQmlFile::urlToLocalFileOrQrc(folder));
- QDir dir(folderPath);
- // In order to collect the paths for each breadcrumb, we need to work backwards, so we prepend.
- QStringList paths;
- do {
- paths.prepend(dir.absolutePath());
- } while (dir.cdUp());
- return paths;
-}
-
-void QQuickFolderBreadcrumbBarPrivate::repopulate()
-{
- Q_Q(QQuickFolderBreadcrumbBar);
- qCDebug(lcDelegates) << "attemping to repopulate breadcrumb bar using folder...";
-
- if (repopulating)
- return;
-
- if (!buttonDelegate || !separatorDelegate || !q->contentItem()) {
- qCWarning(lcDelegates) << "Both delegates and contentItem must be set before repopulating";
- return;
- }
-
- QBoolBlocker repopulateGuard(repopulating);
-
- auto failureCleanup = [=](){
- folderPaths.clear();
- while (q->count() > 0)
- q->removeItem(q->itemAt(0));
- };
-
- qCDebug(lcDelegates) << "- getting paths for directory" << fileDialog->currentFolder();
- folderPaths = crumbPathsForFolder(fileDialog->currentFolder());
-
- while (q->count() > 0)
- q->removeItem(q->itemAt(0));
-
- for (int i = 0; i < folderPaths.size(); ++i) {
- const QString &folderPath = folderPaths.at(i);
-
- QVariantMap initialProperties = {
- { QStringLiteral("index"), QVariant::fromValue(i) },
- { QStringLiteral("folderName"), QVariant::fromValue(folderBaseName(folderPath)) }
- };
- QQuickItem *buttonItem = createDelegateItem(buttonDelegate, initialProperties);
- if (!buttonItem) {
- qCWarning(lcDelegates) << "Failed creating breadcrumb buttonDelegate item:\n" << buttonDelegate->errorString();
- failureCleanup();
- break;
- }
- if (QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton*>(buttonItem)) {
- QObjectPrivate::connect(button, &QQuickAbstractButton::clicked,
- this, &QQuickFolderBreadcrumbBarPrivate::crumbClicked);
- }
- insertItem(q->count(), buttonItem);
-
- // Don't add a separator for the last button.
- if (i < folderPaths.size() - 1) {
- initialProperties = {};
- QQuickItem *separatorItem = createDelegateItem(separatorDelegate, initialProperties);
- if (!separatorItem) {
- qCWarning(lcDelegates) << "Failed creating breadcrumb separatorDelegate item:\n" << buttonDelegate->errorString();
- failureCleanup();
- break;
- }
- insertItem(q->count(), separatorItem);
- }
- }
-
- const int finalCount = q->count();
- // We would do - 2, since separators are included in the count,
- // but as we don't add a separator for the last button, we only need to subtract 1.
- const int newCurrentIndex = finalCount > 2 ? finalCount - 1 : -1;
- qCDebug(lcDelegates) << "- setting currentIndex to" << newCurrentIndex;
- q->setCurrentIndex(newCurrentIndex);
-
- updateImplicitContentSize();
-
- qCDebug(lcDelegates) << "... bar now contains" << q->count()
- << "buttons and separators in total, for the following paths:" << folderPaths;
-}
-
-void QQuickFolderBreadcrumbBarPrivate::crumbClicked()
-{
- Q_Q(QQuickFolderBreadcrumbBar);
- qCDebug(lcCurrentItem) << "updateCurrentIndex called by sender" << q->sender();
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton*>(q->sender());
- if (button) {
- const int buttonIndex = contentModel->indexOf(button, nullptr);
- q->setCurrentIndex(buttonIndex);
- const QUrl folderUrl = QUrl::fromLocalFile(folderPaths.at(buttonIndex / 2));
- // TODO: don't repopulate the whole model when clicking on crumbs
- qCDebug(lcCurrentItem) << "setting file dialog's folder to" << folderUrl;
- fileDialog->setCurrentFolder(folderUrl);
- }
-}
-
-void QQuickFolderBreadcrumbBarPrivate::folderChanged()
-{
- if (componentComplete)
- repopulate();
-}
-
-static inline QString upButtonName()
-{
- return QStringLiteral("upButton");
-}
-
-void QQuickFolderBreadcrumbBarPrivate::cancelUpButton()
-{
- Q_Q(QQuickFolderBreadcrumbBar);
- quickCancelDeferred(q, upButtonName());
-}
-
-void QQuickFolderBreadcrumbBarPrivate::executeUpButton(bool complete)
-{
- Q_Q(QQuickFolderBreadcrumbBar);
- if (upButton.wasExecuted())
- return;
-
- if (!upButton || complete)
- quickBeginDeferred(q, upButtonName(), upButton);
- if (complete)
- quickCompleteDeferred(q, upButtonName(), upButton);
-}
-
-void QQuickFolderBreadcrumbBarPrivate::goUp()
-{
- QDir dir(QQmlFile::urlToLocalFileOrQrc(fileDialog->currentFolder()));
- dir.cdUp();
- fileDialog->setCurrentFolder(QUrl::fromLocalFile(dir.absolutePath()));
-}
-
-static inline QString textFieldName()
-{
- return QStringLiteral("textField");
-}
-
-void QQuickFolderBreadcrumbBarPrivate::cancelTextField()
-{
- Q_Q(QQuickFolderBreadcrumbBar);
- quickCancelDeferred(q, textFieldName());
-}
-
-void QQuickFolderBreadcrumbBarPrivate::executeTextField(bool complete)
-{
- Q_Q(QQuickFolderBreadcrumbBar);
- if (textField.wasExecuted())
- return;
-
- if (!textField || complete)
- quickBeginDeferred(q, textFieldName(), textField);
- if (complete)
- quickCompleteDeferred(q, textFieldName(), textField);
-}
-
-void QQuickFolderBreadcrumbBarPrivate::toggleTextFieldVisibility()
-{
- const QUrl url = !fileDialog->selectedFile().isEmpty() ? fileDialog->selectedFile() : fileDialog->currentFolder();
- textField->setText(QQmlFile::urlToLocalFileOrQrc(url));
- textField->setVisible(!textField->isVisible());
-
- qCDebug(lcTextInput) << "text field visibility changed to" << textField->isVisible();
-
- if (textField->isVisible()) {
- // The text field is now visible, so give it focus,
- // select the text, and let it handle escape/back.
- textField->forceActiveFocus(Qt::ShortcutFocusReason);
- textField->selectAll();
- }
-
- // We connect to the TextField's visibleChanged signal, so textFieldVisibleChanged()
- // will get called automatically and we don't need to call it here.
-
- contentItem->setVisible(!textField->isVisible());
-
- // When the TextField is visible, certain items in the dialog need to be disabled.
- auto fileDialogPrivate = QQuickFileDialogImplPrivate::get(fileDialog);
- fileDialogPrivate->updateEnabled();
-}
-
-void QQuickFolderBreadcrumbBarPrivate::textFieldAccepted()
-{
- const QUrl fileUrl = QUrl::fromLocalFile(textField->text());
- const bool mustExist = fileDialog->options()->acceptMode() != QFileDialogOptions::AcceptSave;
- const bool enteredPathIsValidUrl = fileUrl.isValid();
- bool enteredPathExists = false;
- bool enteredPathIsDir = false;
- if (enteredPathIsValidUrl) {
- const QFileInfo fileInfo(textField->text());
- enteredPathExists = fileInfo.exists();
- if (enteredPathExists)
- enteredPathIsDir = fileInfo.isDir();
- }
-
- qCDebug(lcTextInput).nospace() << "text field accepted -"
- << " text=" << textField->text()
- << " fileUrl=" << fileUrl
- << " mustExist=" << mustExist
- << " enteredPathIsValidUrl=" << enteredPathIsValidUrl
- << " enteredPathExists=" << enteredPathExists
- << " enteredPathIsDir=" << enteredPathIsDir;
-
- if (enteredPathIsDir && (enteredPathExists || !mustExist)) {
- qCDebug(lcTextInput) << "path entered is a folder; setting folder";
- fileDialog->setCurrentFolder(fileUrl);
- } else if (!enteredPathIsDir && (enteredPathExists || !mustExist)) {
- qCDebug(lcTextInput) << "path entered is a file; setting file and calling accept()";
- // It's important that we set the currentFile here, as that's what
- // QQuickPlatformFileDialog::selectedFiles() needs to return, and
- // QQuickFileDialog::accept() sets its file property based on
- // selectedFiles().
- fileDialog->setCurrentFile(fileUrl);
- fileDialog->setSelectedFile(fileUrl);
- fileDialog->accept();
- } else {
- qCDebug(lcTextInput) << "path entered is not valid; not setting file/folder";
- }
-
- toggleTextFieldVisibility();
-}
-
-void QQuickFolderBreadcrumbBarPrivate::textFieldVisibleChanged()
-{
- qCDebug(lcShortcuts) << "text field was either hidden or shown";
-
- if (textField && textField->isVisible())
- handleTextFieldShown();
- else
- handleTextFieldHidden();
-}
-
-void QQuickFolderBreadcrumbBarPrivate::textFieldActiveFocusChanged()
-{
- // When the text field loses focus, it should be hidden.
- if (!textField->hasActiveFocus() && textField->isVisible())
- toggleTextFieldVisibility();
-}
-
-/*
- When the text field is visible:
-
- - Ctrl+L should do nothing (matches e.g. Ubuntu and Windows)
- - Escape/back should hide it
-*/
-void QQuickFolderBreadcrumbBarPrivate::handleTextFieldShown()
-{
-#if QT_CONFIG(shortcut)
- Q_Q(QQuickFolderBreadcrumbBar);
- if (editPathToggleShortcutId == 0)
- return;
-
- QGuiApplicationPrivate *appPrivate = QGuiApplicationPrivate::instance();
- qCDebug(lcShortcuts) << "text field was shown; grabbing/ungrabbing relevant shortcuts...";
-
- // Disable the back/escape shortcuts for QQuickPopup so that the TextField can get them.
- auto popupItem = qobject_cast<QQuickPopupItem*>(fileDialog->popupItem());
- popupItem->ungrabShortcut();
-
- appPrivate->shortcutMap.removeShortcut(editPathToggleShortcutId, q);
- editPathToggleShortcutId = 0;
-
- editPathBackShortcutId = appPrivate->shortcutMap.addShortcut(
- q, Qt::Key_Back, Qt::WindowShortcut, QQuickShortcutContext::matcher);
- editPathEscapeShortcutId = appPrivate->shortcutMap.addShortcut(
- q, Qt::Key_Escape, Qt::WindowShortcut, QQuickShortcutContext::matcher);
-
- qCDebug(lcShortcuts).nospace() << "... shortcut IDs:"
- << " editPathToggleShortcutId=" << editPathToggleShortcutId
- << " editPathBackShortcutId=" << editPathBackShortcutId
- << " editPathEscapeShortcutId=" << editPathEscapeShortcutId;
-#endif
-}
-
-/*
- When the text field is not visible:
-
- - Ctrl+L should make it visible
- - Escape/back should close the dialog
-*/
-void QQuickFolderBreadcrumbBarPrivate::handleTextFieldHidden()
-{
-#if QT_CONFIG(shortcut)
- Q_Q(QQuickFolderBreadcrumbBar);
-
- QGuiApplicationPrivate *appPrivate = QGuiApplicationPrivate::instance();
- qCDebug(lcShortcuts) << "text field was hidden; grabbing/ungrabbing relevant shortcuts...";
-
- if (editPathToggleShortcutId == 0) {
- editPathToggleShortcutId = appPrivate->shortcutMap.addShortcut(
- q, Qt::CTRL | Qt::Key_L, Qt::WindowShortcut, QQuickShortcutContext::matcher);
- }
-
- // When the bar is first completed, this function is called, since the text field starts off hidden.
- // If removeShortcut is called with a zero id, all shortcuts for the given object will be removed,
- // and we don't want that.
- if (editPathBackShortcutId != 0) {
- appPrivate->shortcutMap.removeShortcut(editPathBackShortcutId, q);
- editPathBackShortcutId = 0;
- }
- if (editPathEscapeShortcutId != 0) {
- appPrivate->shortcutMap.removeShortcut(editPathEscapeShortcutId, q);
- editPathEscapeShortcutId = 0;
- }
-
- // Re-enable the back/escape shortcuts for QQuickPopup now that TextField no longer needs them.
- auto popupItem = qobject_cast<QQuickPopupItem*>(fileDialog->popupItem());
- if (popupItem)
- popupItem->grabShortcut();
-
- qCDebug(lcShortcuts).nospace() << "... shortcut IDs: "
- << " editPathToggleShortcutId=" << editPathToggleShortcutId
- << " editPathBackShortcutId=" << editPathBackShortcutId
- << " editPathEscapeShortcutId=" << editPathEscapeShortcutId;
-#endif
-}
-
-void QQuickFolderBreadcrumbBarPrivate::ungrabEditPathShortcuts()
-{
-#if QT_CONFIG(shortcut)
- Q_Q(QQuickFolderBreadcrumbBar);
- QGuiApplicationPrivate *appPrivate = QGuiApplicationPrivate::instance();
- qCDebug(lcShortcuts) << "ungrabbing all edit path shortcuts";
-
- if (editPathToggleShortcutId != 0) {
- appPrivate->shortcutMap.removeShortcut(editPathToggleShortcutId, q);
- editPathToggleShortcutId = 0;
- }
- if (editPathBackShortcutId != 0) {
- appPrivate->shortcutMap.removeShortcut(editPathBackShortcutId, q);
- editPathBackShortcutId = 0;
- }
- if (editPathEscapeShortcutId != 0) {
- appPrivate->shortcutMap.removeShortcut(editPathEscapeShortcutId, q);
- editPathEscapeShortcutId = 0;
- }
-#endif
-}
-
-qreal QQuickFolderBreadcrumbBarPrivate::getContentWidth() const
-{
- Q_Q(const QQuickFolderBreadcrumbBar);
- const int count = contentModel->count();
- qreal totalWidth = qMax(0, count - 1) * spacing;
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = q->itemAt(i);
- if (item) {
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- if (!p->widthValid())
- totalWidth += item->implicitWidth();
- else
- totalWidth += item->width();
- }
- }
- qCDebug(lcContentSize) << "content width:" << totalWidth;
- return totalWidth;
-}
-
-qreal QQuickFolderBreadcrumbBarPrivate::getContentHeight() const
-{
- Q_Q(const QQuickFolderBreadcrumbBar);
- const int count = contentModel->count();
- qreal maxHeight = 0;
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = q->itemAt(i);
- if (item)
- maxHeight = qMax(maxHeight, item->implicitHeight());
- }
- qCDebug(lcContentSize) << "content height:" << maxHeight;
- return maxHeight;
-}
-
-void QQuickFolderBreadcrumbBarPrivate::resizeContent()
-{
- Q_Q(QQuickFolderBreadcrumbBar);
- if (contentItem) {
- const int upButtonSpace = q->upButton() ? q->upButton()->width() + upButtonSpacing : 0;
- contentItem->setPosition(QPointF(q->leftPadding() + upButtonSpace, q->topPadding()));
- contentItem->setSize(QSizeF(q->availableWidth() - upButtonSpace, q->availableHeight()));
-
- if (textField) {
- textField->setPosition(contentItem->position());
- textField->setSize(contentItem->size());
- }
- }
-}
-
-void QQuickFolderBreadcrumbBarPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff)
-{
- QQuickContainerPrivate::itemGeometryChanged(item, change, diff);
- if (change.sizeChange())
- updateImplicitContentSize();
-}
-
-void QQuickFolderBreadcrumbBarPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- QQuickContainerPrivate::itemImplicitWidthChanged(item);
- if (item != contentItem)
- updateImplicitContentWidth();
-}
-
-void QQuickFolderBreadcrumbBarPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- QQuickContainerPrivate::itemImplicitHeightChanged(item);
- if (item != contentItem)
- updateImplicitContentHeight();
-}
-
-/*!
- \internal
-
- Private class for breadcrumb navigation of a directory.
-
- Given a FileDialog, FolderBreadCrumbbar creates breadcrumb buttons and
- separators from the specified delegate components.
-*/
-
-QQuickFolderBreadcrumbBar::QQuickFolderBreadcrumbBar(QQuickItem *parent)
- : QQuickContainer(*(new QQuickFolderBreadcrumbBarPrivate), parent)
-{
- Q_D(QQuickFolderBreadcrumbBar);
- d->changeTypes |= QQuickItemPrivate::Geometry | QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight;
-}
-
-QQuickFileDialogImpl *QQuickFolderBreadcrumbBar::fileDialog() const
-{
- Q_D(const QQuickFolderBreadcrumbBar);
- return d->fileDialog;
-}
-
-void QQuickFolderBreadcrumbBar::setFileDialog(QQuickFileDialogImpl *fileDialog)
-{
- Q_D(QQuickFolderBreadcrumbBar);
- if (fileDialog == d->fileDialog)
- return;
-
- if (d->fileDialog)
- QObjectPrivate::disconnect(d->fileDialog, &QQuickFileDialogImpl::currentFolderChanged,
- d, &QQuickFolderBreadcrumbBarPrivate::folderChanged);
-
- d->fileDialog = fileDialog;
-
- if (d->fileDialog)
- QObjectPrivate::connect(d->fileDialog, &QQuickFileDialogImpl::currentFolderChanged,
- d, &QQuickFolderBreadcrumbBarPrivate::folderChanged);
-
- emit fileDialogChanged();
-}
-
-QQmlComponent *QQuickFolderBreadcrumbBar::buttonDelegate()
-{
- Q_D(QQuickFolderBreadcrumbBar);
- return d->buttonDelegate;
-}
-
-void QQuickFolderBreadcrumbBar::setButtonDelegate(QQmlComponent *delegate)
-{
- Q_D(QQuickFolderBreadcrumbBar);
- qCDebug(lcFolderBreadcrumbBar) << "setButtonDelegate called with" << delegate;
- if (d->componentComplete) {
- // Simplify the code by disallowing this.
- qCWarning(lcFolderBreadcrumbBar) << "BreadcrumbBar does not support setting delegates after component completion";
- return;
- }
-
- if (delegate == d->buttonDelegate)
- return;
-
- d->buttonDelegate = delegate;
- emit buttonDelegateChanged();
-}
-
-QQmlComponent *QQuickFolderBreadcrumbBar::separatorDelegate()
-{
- Q_D(QQuickFolderBreadcrumbBar);
- return d->separatorDelegate;
-}
-
-void QQuickFolderBreadcrumbBar::setSeparatorDelegate(QQmlComponent *delegate)
-{
- Q_D(QQuickFolderBreadcrumbBar);
- qCDebug(lcFolderBreadcrumbBar) << "setSeparatorDelegate called with" << delegate;
- if (d->componentComplete) {
- qCWarning(lcFolderBreadcrumbBar) << "BreadcrumbBar does not support setting delegates after component completion";
- return;
- }
-
- if (delegate == d->separatorDelegate)
- return;
-
- d->separatorDelegate = delegate;
- emit separatorDelegateChanged();
-}
-
-QQuickAbstractButton *QQuickFolderBreadcrumbBar::upButton()
-{
- Q_D(QQuickFolderBreadcrumbBar);
- if (!d->upButton)
- d->executeUpButton();
- return d->upButton;
-}
-
-void QQuickFolderBreadcrumbBar::setUpButton(QQuickAbstractButton *upButton)
-{
- Q_D(QQuickFolderBreadcrumbBar);
- if (upButton == d->upButton)
- return;
-
- if (!d->upButton.isExecuting())
- d->cancelUpButton();
-
- if (d->upButton) {
- QObjectPrivate::disconnect(d->upButton.data(), &QQuickAbstractButton::clicked,
- d, &QQuickFolderBreadcrumbBarPrivate::goUp);
- }
-
- QQuickControlPrivate::hideOldItem(d->upButton);
- d->upButton = upButton;
- if (d->upButton) {
- if (!d->upButton->parentItem())
- d->upButton->setParentItem(this);
-
- QObjectPrivate::connect(d->upButton.data(), &QQuickAbstractButton::clicked,
- d, &QQuickFolderBreadcrumbBarPrivate::goUp);
- }
- if (!d->upButton.isExecuting())
- emit upButtonChanged();
-}
-
-int QQuickFolderBreadcrumbBar::upButtonSpacing() const
-{
- Q_D(const QQuickFolderBreadcrumbBar);
- return d->upButtonSpacing;
-}
-
-void QQuickFolderBreadcrumbBar::setUpButtonSpacing(int upButtonSpacing)
-{
- Q_D(QQuickFolderBreadcrumbBar);
- if (upButtonSpacing == d->upButtonSpacing)
- return;
-
- d->upButtonSpacing = upButtonSpacing;
- emit upButtonSpacingChanged();
-}
-
-QQuickTextField *QQuickFolderBreadcrumbBar::textField()
-{
- Q_D(QQuickFolderBreadcrumbBar);
- return d->textField;
-}
-
-void QQuickFolderBreadcrumbBar::setTextField(QQuickTextField *textField)
-{
- Q_D(QQuickFolderBreadcrumbBar);
- if (textField == d->textField)
- return;
-
- if (!d->textField.isExecuting())
- d->cancelUpButton();
-
- if (d->textField)
- d->handleTextFieldHidden();
-
- if (d->textField) {
- QObjectPrivate::disconnect(d->textField.data(), &QQuickTextInput::visibleChanged,
- d, &QQuickFolderBreadcrumbBarPrivate::textFieldVisibleChanged);
- QObjectPrivate::disconnect(d->textField.data(), &QQuickTextInput::activeFocusChanged,
- d, &QQuickFolderBreadcrumbBarPrivate::textFieldActiveFocusChanged);
- QObjectPrivate::disconnect(d->textField.data(), &QQuickTextInput::accepted,
- d, &QQuickFolderBreadcrumbBarPrivate::textFieldAccepted);
- }
-
- QQuickControlPrivate::hideOldItem(d->textField);
- d->textField = textField;
- if (d->textField) {
- if (!d->textField->parentItem())
- d->textField->setParentItem(this);
-
- d->textField->setVisible(false);
-
- QObjectPrivate::connect(d->textField.data(), &QQuickTextInput::visibleChanged,
- d, &QQuickFolderBreadcrumbBarPrivate::textFieldVisibleChanged);
- QObjectPrivate::connect(d->textField.data(), &QQuickTextInput::activeFocusChanged,
- d, &QQuickFolderBreadcrumbBarPrivate::textFieldActiveFocusChanged);
- QObjectPrivate::connect(d->textField.data(), &QQuickTextInput::accepted,
- d, &QQuickFolderBreadcrumbBarPrivate::textFieldAccepted);
- }
- if (!d->textField.isExecuting())
- emit textFieldChanged();
-}
-
-bool QQuickFolderBreadcrumbBar::event(QEvent *event)
-{
-#if QT_CONFIG(shortcut)
- Q_D(QQuickFolderBreadcrumbBar);
- if (event->type() == QEvent::Shortcut) {
- QShortcutEvent *shortcutEvent = static_cast<QShortcutEvent *>(event);
- if (shortcutEvent->shortcutId() == d->editPathToggleShortcutId
- || shortcutEvent->shortcutId() == d->editPathBackShortcutId
- || shortcutEvent->shortcutId() == d->editPathEscapeShortcutId) {
- d->toggleTextFieldVisibility();
- return true;
- } else if (shortcutEvent->shortcutId() == d->goUpShortcutId) {
- d->goUp();
- }
- }
-#endif
- return QQuickItem::event(event);
-}
-
-void QQuickFolderBreadcrumbBar::componentComplete()
-{
- Q_D(QQuickFolderBreadcrumbBar);
- qCDebug(lcFolderBreadcrumbBar) << "componentComplete";
- QQuickContainer::componentComplete();
- d->repopulate();
-
- if (d->textField) {
- // Force it to be updated as setTextField() is too early to do it.
- d->textFieldVisibleChanged();
- }
-}
-
-void QQuickFolderBreadcrumbBar::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- Q_D(QQuickFolderBreadcrumbBar);
- QQuickContainer::itemChange(change, data);
-
- if (change == QQuickItem::ItemVisibleHasChanged && isComponentComplete()) {
- if (data.boolValue && d->fileDialog->isVisible()) {
- // It's visible.
- d->handleTextFieldHidden();
-
- d->goUpShortcutId = QGuiApplicationPrivate::instance()->shortcutMap.addShortcut(
- this, QKeySequence(Qt::ALT | Qt::Key_Up), Qt::WindowShortcut, QQuickShortcutContext::matcher);
- } else {
- // It's hidden.
- // Hide the text field so that when the dialog gets opened again, it's not still visible.
- if (d->textField)
- d->textField->setVisible(false);
-
- // Make the ListView visible again.
- if (d->contentItem)
- d->contentItem->setVisible(true);
-
- // We also need to ungrab all shortcuts when we're not visible.
- d->ungrabEditPathShortcuts();
-
- if (d->goUpShortcutId != 0) {
- QGuiApplicationPrivate::instance()->shortcutMap.removeShortcut(d->goUpShortcutId, this);
- d->goUpShortcutId = 0;
- }
- }
- }
-}
-
-bool QQuickFolderBreadcrumbBar::isContent(QQuickItem *item) const
-{
- if (!qmlContext(item))
- return false;
-
- if (QQuickItemPrivate::get(item)->isTransparentForPositioner())
- return false;
-
- return true;
-}
-
-QFont QQuickFolderBreadcrumbBar::defaultFont() const
-{
- // TODO
- return QQuickTheme::font(QQuickTheme::TabBar);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickFolderBreadcrumbBar::accessibleRole() const
-{
- // TODO
- return QAccessible::PageTabList;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar_p.h
deleted file mode 100644
index 5e14f5b0..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar_p.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFOLDERBREADCRUMBBAR_P_H
-#define QQUICKFOLDERBREADCRUMBBAR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQml/qqmlcomponent.h>
-#include <QtQuickTemplates2/private/qquickcontainer_p.h>
-#include <QtQuickTemplates2/private/qquicktextfield_p.h>
-
-#include "qquickfiledialogimpl_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFolderBreadcrumbBarPrivate;
-
-class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickFolderBreadcrumbBar : public QQuickContainer
-{
- Q_OBJECT
- Q_PROPERTY(QQuickFileDialogImpl *fileDialog READ fileDialog WRITE setFileDialog NOTIFY fileDialogChanged)
- Q_PROPERTY(QQmlComponent *buttonDelegate READ buttonDelegate WRITE setButtonDelegate NOTIFY buttonDelegateChanged)
- Q_PROPERTY(QQmlComponent *separatorDelegate READ separatorDelegate WRITE setSeparatorDelegate NOTIFY separatorDelegateChanged)
- Q_PROPERTY(QQuickAbstractButton *upButton READ upButton WRITE setUpButton NOTIFY upButtonChanged)
- Q_PROPERTY(QQuickTextField *textField READ textField WRITE setTextField NOTIFY textFieldChanged)
- Q_PROPERTY(int upButtonSpacing READ upButtonSpacing WRITE setUpButtonSpacing NOTIFY upButtonSpacingChanged)
- QML_NAMED_ELEMENT(FolderBreadcrumbBar)
- QML_ADDED_IN_VERSION(6, 2)
-
-public:
- explicit QQuickFolderBreadcrumbBar(QQuickItem *parent = nullptr);
-
- QQuickFileDialogImpl *fileDialog() const;
- void setFileDialog(QQuickFileDialogImpl *fileDialog);
-
- QQmlComponent *buttonDelegate();
- void setButtonDelegate(QQmlComponent *delegate);
-
- QQmlComponent *separatorDelegate();
- void setSeparatorDelegate(QQmlComponent *delegate);
-
- QQuickAbstractButton *upButton();
- void setUpButton(QQuickAbstractButton *upButton);
-
- int upButtonSpacing() const;
- void setUpButtonSpacing(int upButtonSpacing);
-
- QQuickTextField *textField();
- void setTextField(QQuickTextField *textField);
-
-Q_SIGNALS:
- void fileDialogChanged();
- void buttonDelegateChanged();
- void separatorDelegateChanged();
- void upButtonChanged();
- void upButtonSpacingChanged();
- void textFieldChanged();
-
-protected:
- bool event(QEvent *event) override;
-
- void componentComplete() override;
-
- void itemChange(ItemChange change, const ItemChangeData &data) override;
-
- bool isContent(QQuickItem *item) const override;
-
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickFolderBreadcrumbBar)
- Q_DECLARE_PRIVATE(QQuickFolderBreadcrumbBar)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickFolderBreadcrumbBar)
-
-#endif // QQUICKFOLDERBREADCRUMBBAR_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar_p_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar_p_p.h
deleted file mode 100644
index 4616b6a9..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfolderbreadcrumbbar_p_p.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFOLDERBREADCRUMBBAR_P_P_H
-#define QQUICKFOLDERBREADCRUMBBAR_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontainer_p_p.h>
-#include <QtQuickTemplates2/private/qquickdeferredexecute_p_p.h>
-
-#include "qquickfiledialogimpl_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickAbstractButton;
-class QQuickTextField;
-
-class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickFolderBreadcrumbBarPrivate : public QQuickContainerPrivate
-{
- Q_DECLARE_PUBLIC(QQuickFolderBreadcrumbBar)
-
-public:
- QQuickItem *createDelegateItem(QQmlComponent *component, const QVariantMap &initialProperties);
- static QString folderBaseName(const QString &folderPath);
- static QStringList crumbPathsForFolder(const QUrl &folder);
- void repopulate();
- void crumbClicked();
- void folderChanged();
-
- void cancelUpButton();
- void executeUpButton(bool complete = false);
- void goUp();
-
- void cancelTextField();
- void executeTextField(bool complete = false);
- void toggleTextFieldVisibility();
- void textFieldAccepted();
-
- void textFieldVisibleChanged();
- void textFieldActiveFocusChanged();
- void handleTextFieldShown();
- void handleTextFieldHidden();
- void ungrabEditPathShortcuts();
-
- qreal getContentWidth() const override;
- qreal getContentHeight() const override;
- void resizeContent() override;
-
- void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override;
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
-private:
- QQuickFileDialogImpl *fileDialog = nullptr;
- QList<QString> folderPaths;
- QQmlComponent *buttonDelegate = nullptr;
- QQmlComponent *separatorDelegate = nullptr;
- QQuickDeferredPointer<QQuickAbstractButton> upButton;
- QQuickDeferredPointer<QQuickTextField> textField;
- int editPathToggleShortcutId = 0;
- int editPathBackShortcutId = 0;
- int editPathEscapeShortcutId = 0;
- int goUpShortcutId = 0;
- int upButtonSpacing = 0;
- bool repopulating = false;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKFOLDERBREADCRUMBBAR_P_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl.cpp b/src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl.cpp
deleted file mode 100644
index 3263b73b..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl.cpp
+++ /dev/null
@@ -1,836 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfontdialogimpl_p.h"
-#include "qquickfontdialogimpl_p_p.h"
-
-#include <QtQuickTemplates2/private/qquickdialogbuttonbox_p_p.h>
-#include <private/qfontdatabase_p.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcAttachedProperty, "qt.quick.dialogs.quickfontdialogimpl.attachedOrWarn")
-
-QQuickFontDialogImplPrivate::QQuickFontDialogImplPrivate()
-{
-}
-
-QQuickFontDialogImplAttached *QQuickFontDialogImplPrivate::attachedOrWarn()
-{
- Q_Q(QQuickFontDialogImpl);
- QQuickFontDialogImplAttached *attached = static_cast<QQuickFontDialogImplAttached *>(
- qmlAttachedPropertiesObject<QQuickFontDialogImpl>(q));
- if (!attached) {
- qCWarning(lcAttachedProperty)
- << "Expected FontDialogImpl attached object to be present on" << this;
- }
- return attached;
-}
-
-void QQuickFontDialogImplPrivate::handleAccept() { }
-
-void QQuickFontDialogImplPrivate::handleClick(QQuickAbstractButton *button)
-{
- Q_Q(QQuickFontDialogImpl);
- if (buttonRole(button) == QPlatformDialogHelper::AcceptRole) {
- q->accept();
- QQuickDialogPrivate::handleClick(button);
- }
-}
-
-QQuickFontDialogImpl::QQuickFontDialogImpl(QObject *parent)
- : QQuickDialog(*(new QQuickFontDialogImplPrivate), parent)
-{
-}
-
-QQuickFontDialogImplAttached *QQuickFontDialogImpl::qmlAttachedProperties(QObject *object)
-{
- return new QQuickFontDialogImplAttached(object);
-}
-
-QSharedPointer<QFontDialogOptions> QQuickFontDialogImpl::options() const
-{
- Q_D(const QQuickFontDialogImpl);
-
- return d->options;
-}
-
-void QQuickFontDialogImpl::setOptions(const QSharedPointer<QFontDialogOptions> &options)
-{
- Q_D(QQuickFontDialogImpl);
-
- if (options == d->options)
- return;
-
- d->options = options;
-
- emit optionsChanged();
-}
-
-QFont QQuickFontDialogImpl::currentFont() const
-{
- Q_D(const QQuickFontDialogImpl);
- return d->currentFont;
-}
-
-void QQuickFontDialogImpl::setCurrentFont(const QFont &font)
-{
- Q_D(QQuickFontDialogImpl);
-
- if (font == d->currentFont)
- return;
-
- d->currentFont = font;
-
- emit currentFontChanged(font);
-}
-
-void QQuickFontDialogImpl::updateListViews()
-{
- Q_D(QQuickFontDialogImpl);
- QQuickFontDialogImplAttached *attached = d->attachedOrWarn();
- if (!attached)
- return;
-
- attached->updateFamilies();
-
- attached->buttonBox()->setVisible(!(options()->options() & QFontDialogOptions::NoButtons));
-}
-
-void QQuickFontDialogImpl::keyReleaseEvent(QKeyEvent *event)
-{
- Q_D(QQuickFontDialogImpl);
-
- QQuickDialog::keyReleaseEvent(event);
-
- QQuickFontDialogImplAttached *attached = d->attachedOrWarn();
- if (!attached)
- return;
-
- // The family and style text edits are read-only so that they
- // can show the current selection but also allow key input to "search".
- // This is why we handle just the release event, and don't accept it.
- if (window()->activeFocusItem() == attached->familyEdit())
- attached->searchFamily(event->text());
- else if (window()->activeFocusItem() == attached->styleEdit())
- attached->searchStyle(event->text());
-}
-
-void QQuickFontDialogImpl::focusOutEvent(QFocusEvent *event)
-{
- Q_D(QQuickFontDialogImpl);
-
- QQuickDialog::focusOutEvent(event);
-
- QQuickFontDialogImplAttached *attached = d->attachedOrWarn();
- if (!attached)
- return;
-
- attached->clearSearch();
-}
-
-QQuickFontDialogImplAttached::QQuickFontDialogImplAttached(QObject *parent)
- : QObject(*(new QQuickFontDialogImplAttachedPrivate), parent),
- m_writingSystem(QFontDatabase::Any),
- m_selectedSize(-1),
- m_smoothlyScalable(false),
- m_isUpdatingStyles(false)
-{
- if (!qobject_cast<QQuickFontDialogImpl *>(parent)) {
- qmlWarning(this) << "FontDialogImpl attached properties should only be "
- << "accessed through the root FileDialogImpl instance";
- }
-}
-
-QQuickListView *QQuickFontDialogImplAttached::familyListView() const
-{
- Q_D(const QQuickFontDialogImplAttached);
- return d->familyListView;
-}
-
-void QQuickFontDialogImplAttached::setFamilyListView(QQuickListView *familyListView)
-{
- Q_D(QQuickFontDialogImplAttached);
- if (d->familyListView == familyListView)
- return;
-
- if (d->familyListView) {
- disconnect(d->familyListView, &QQuickListView::currentIndexChanged,
- this, &QQuickFontDialogImplAttached::_q_familyChanged);
- }
-
- d->familyListView = familyListView;
-
- if (familyListView) {
- connect(d->familyListView, &QQuickListView::currentIndexChanged,
- this, &QQuickFontDialogImplAttached::_q_familyChanged);
- }
-
- emit familyListViewChanged();
-}
-
-QQuickListView *QQuickFontDialogImplAttached::styleListView() const
-{
- Q_D(const QQuickFontDialogImplAttached);
- return d->styleListView;
-}
-
-void QQuickFontDialogImplAttached::setStyleListView(QQuickListView *styleListView)
-{
- Q_D(QQuickFontDialogImplAttached);
- if (d->styleListView == styleListView)
- return;
-
- if (d->styleListView) {
- disconnect(d->styleListView, &QQuickListView::currentIndexChanged,
- this, &QQuickFontDialogImplAttached::_q_styleChanged);
- }
-
- d->styleListView = styleListView;
-
- if (styleListView) {
- connect(d->styleListView, &QQuickListView::currentIndexChanged,
- this, &QQuickFontDialogImplAttached::_q_styleChanged);
- }
-
- emit styleListViewChanged();
-}
-
-QQuickListView *QQuickFontDialogImplAttached::sizeListView() const
-{
- Q_D(const QQuickFontDialogImplAttached);
- return d->sizeListView;
-}
-
-void QQuickFontDialogImplAttached::setSizeListView(QQuickListView *sizeListView)
-{
- Q_D(QQuickFontDialogImplAttached);
- if (d->sizeListView == sizeListView)
- return;
-
- if (d->sizeListView) {
- disconnect(d->sizeListView, &QQuickListView::currentIndexChanged,
- this, &QQuickFontDialogImplAttached::_q_sizeChanged);
- }
-
- d->sizeListView = sizeListView;
-
- if (d->sizeListView) {
- connect(d->sizeListView, &QQuickListView::currentIndexChanged,
- this, &QQuickFontDialogImplAttached::_q_sizeChanged);
- }
-
- emit sizeListViewChanged();
-}
-
-QQuickTextEdit *QQuickFontDialogImplAttached::sampleEdit() const
-{
- Q_D(const QQuickFontDialogImplAttached);
- return d->sampleEdit;
-}
-
-void QQuickFontDialogImplAttached::setSampleEdit(QQuickTextEdit *sampleEdit)
-{
- Q_D(QQuickFontDialogImplAttached);
-
- if (d->sampleEdit == sampleEdit)
- return;
-
- if (d->sampleEdit) {
- QObjectPrivate::disconnect(d->sampleEdit, &QQuickTextEdit::fontChanged,
- d, &QQuickFontDialogImplAttachedPrivate::currentFontChanged);
- }
-
- d->sampleEdit = sampleEdit;
-
- if (d->sampleEdit) {
- QObjectPrivate::connect(d->sampleEdit, &QQuickTextEdit::fontChanged,
- d, &QQuickFontDialogImplAttachedPrivate::currentFontChanged);
-
- d->sampleEdit->setText(QFontDatabase::writingSystemSample(m_writingSystem));
- }
-
- emit sampleEditChanged();
-}
-
-QQuickDialogButtonBox *QQuickFontDialogImplAttached::buttonBox() const
-{
- Q_D(const QQuickFontDialogImplAttached);
- return d->buttonBox;
-}
-
-void QQuickFontDialogImplAttached::setButtonBox(QQuickDialogButtonBox *buttonBox)
-{
- Q_D(QQuickFontDialogImplAttached);
- if (buttonBox == d->buttonBox)
- return;
-
- if (d->buttonBox) {
- QQuickFontDialogImpl *fontDialogImpl = qobject_cast<QQuickFontDialogImpl *>(parent());
- if (fontDialogImpl) {
- auto dialogPrivate = QQuickDialogPrivate::get(fontDialogImpl);
- QObjectPrivate::disconnect(d->buttonBox, &QQuickDialogButtonBox::accepted,
- dialogPrivate, &QQuickDialogPrivate::handleAccept);
- QObjectPrivate::disconnect(d->buttonBox, &QQuickDialogButtonBox::rejected,
- dialogPrivate, &QQuickDialogPrivate::handleReject);
- QObjectPrivate::disconnect(d->buttonBox, &QQuickDialogButtonBox::clicked, dialogPrivate,
- &QQuickDialogPrivate::handleClick);
- }
- }
-
- d->buttonBox = buttonBox;
-
- if (buttonBox) {
- QQuickFontDialogImpl *fontDialogImpl = qobject_cast<QQuickFontDialogImpl *>(parent());
- if (fontDialogImpl) {
- auto dialogPrivate = QQuickDialogPrivate::get(fontDialogImpl);
- QObjectPrivate::connect(d->buttonBox, &QQuickDialogButtonBox::accepted, dialogPrivate,
- &QQuickDialogPrivate::handleAccept);
- QObjectPrivate::connect(d->buttonBox, &QQuickDialogButtonBox::rejected, dialogPrivate,
- &QQuickDialogPrivate::handleReject);
- QObjectPrivate::connect(d->buttonBox, &QQuickDialogButtonBox::clicked, dialogPrivate,
- &QQuickDialogPrivate::handleClick);
- }
- }
-
- emit buttonBoxChanged();
-}
-
-QQuickComboBox *QQuickFontDialogImplAttached::writingSystemComboBox() const
-{
- Q_D(const QQuickFontDialogImplAttached);
- return d->writingSystemComboBox;
-}
-
-void QQuickFontDialogImplAttached::setWritingSystemComboBox(QQuickComboBox *writingSystemComboBox)
-{
- Q_D(QQuickFontDialogImplAttached);
-
- if (d->writingSystemComboBox == writingSystemComboBox)
- return;
-
- if (d->writingSystemComboBox) {
- disconnect(d->writingSystemComboBox, &QQuickComboBox::activated,
- this, &QQuickFontDialogImplAttached::_q_writingSystemChanged);
- }
-
- d->writingSystemComboBox = writingSystemComboBox;
-
- if (d->writingSystemComboBox) {
- QStringList writingSystemModel;
- for (int i = 0; i < QFontDatabase::WritingSystemsCount; ++i) {
- QFontDatabase::WritingSystem ws = QFontDatabase::WritingSystem(i);
- QString wsName = QFontDatabase::writingSystemName(ws);
- if (wsName.isEmpty())
- break;
- writingSystemModel.append(wsName);
- }
-
- d->writingSystemComboBox->setModel(writingSystemModel);
-
- connect(d->writingSystemComboBox, &QQuickComboBox::activated,
- this, &QQuickFontDialogImplAttached::_q_writingSystemChanged);
- }
-
- emit writingSystemComboBoxChanged();
-}
-
-QQuickCheckBox *QQuickFontDialogImplAttached::underlineCheckBox() const
-{
- Q_D(const QQuickFontDialogImplAttached);
- return d->underlineCheckBox;
-}
-
-void QQuickFontDialogImplAttached::setUnderlineCheckBox(QQuickCheckBox *underlineCheckBox)
-{
- Q_D(QQuickFontDialogImplAttached);
-
- if (d->underlineCheckBox == underlineCheckBox)
- return;
-
- if (d->underlineCheckBox) {
- disconnect(d->underlineCheckBox, &QQuickCheckBox::checkStateChanged,
- this, &QQuickFontDialogImplAttached::_q_updateSample);
- }
-
- d->underlineCheckBox = underlineCheckBox;
-
- if (d->underlineCheckBox) {
- connect(d->underlineCheckBox, &QQuickCheckBox::checkStateChanged,
- this, &QQuickFontDialogImplAttached::_q_updateSample);
- }
-
- emit underlineCheckBoxChanged();
-}
-
-QQuickCheckBox *QQuickFontDialogImplAttached::strikeoutCheckBox() const
-{
- Q_D(const QQuickFontDialogImplAttached);
- return d->strikeoutCheckBox;
-}
-
-void QQuickFontDialogImplAttached::setStrikeoutCheckBox(QQuickCheckBox *strikeoutCheckBox)
-{
- Q_D(QQuickFontDialogImplAttached);
-
- if (d->strikeoutCheckBox == strikeoutCheckBox)
- return;
-
- if (d->strikeoutCheckBox) {
- disconnect(d->strikeoutCheckBox, &QQuickCheckBox::checkStateChanged,
- this, &QQuickFontDialogImplAttached::_q_updateSample);
- }
-
- d->strikeoutCheckBox = strikeoutCheckBox;
-
- if (d->strikeoutCheckBox) {
- connect(d->strikeoutCheckBox, &QQuickCheckBox::checkStateChanged,
- this, &QQuickFontDialogImplAttached::_q_updateSample);
- }
-
- emit strikeoutCheckBoxChanged();
-}
-
-QQuickTextField *QQuickFontDialogImplAttached::familyEdit() const
-{
- Q_D(const QQuickFontDialogImplAttached);
- return d->familyEdit;
-}
-
-void QQuickFontDialogImplAttached::setFamilyEdit(QQuickTextField *familyEdit)
-{
- Q_D(QQuickFontDialogImplAttached);
-
- if (d->familyEdit == familyEdit)
- return;
-
- d->familyEdit = familyEdit;
-
- emit familyEditChanged();
-}
-
-QQuickTextField *QQuickFontDialogImplAttached::styleEdit() const
-{
- Q_D(const QQuickFontDialogImplAttached);
- return d->styleEdit;
-}
-
-void QQuickFontDialogImplAttached::setStyleEdit(QQuickTextField *styleEdit)
-{
- Q_D(QQuickFontDialogImplAttached);
-
- if (d->styleEdit == styleEdit)
- return;
-
- d->styleEdit = styleEdit;
-
- emit styleEditChanged();
-}
-
-QQuickTextField *QQuickFontDialogImplAttached::sizeEdit() const
-{
- Q_D(const QQuickFontDialogImplAttached);
- return d->sizeEdit;
-}
-
-void QQuickFontDialogImplAttached::setSizeEdit(QQuickTextField *sizeEdit)
-{
- Q_D(QQuickFontDialogImplAttached);
-
- if (d->sizeEdit == sizeEdit)
- return;
-
- if (d->sizeEdit) {
- disconnect(d->sizeEdit, &QQuickTextField::textChanged,
- this, &QQuickFontDialogImplAttached::_q_sizeEdited);
- }
-
- d->sizeEdit = sizeEdit;
-
- if (d->sizeEdit) {
- connect(d->sizeEdit, &QQuickTextField::textChanged,
- this, &QQuickFontDialogImplAttached::_q_sizeEdited);
- }
-
- emit sizeEditChanged();
-}
-
-/*!
- \internal
-
- Updates the model for the family list view, and attempt
- to reselect the previously selected font family.
-
- Calls updateStyles()
- */
-void QQuickFontDialogImplAttached::updateFamilies()
-{
- enum match_t { MATCH_NONE = 0, MATCH_LAST_RESORT = 1, MATCH_APP = 2, MATCH_FAMILY = 3 };
-
- const QFontDialogOptions::FontDialogOptions scalableMask(
- QFontDialogOptions::ScalableFonts | QFontDialogOptions::NonScalableFonts);
-
- const QFontDialogOptions::FontDialogOptions spacingMask(QFontDialogOptions::ProportionalFonts
- | QFontDialogOptions::MonospacedFonts);
-
- const auto p = qobject_cast<QQuickFontDialogImpl *>(parent());
-
- const auto options = p->options()->options();
-
- QStringList familyNames;
- const auto families = QFontDatabase::families(m_writingSystem);
- for (const auto &family : families) {
- if (QFontDatabase::isPrivateFamily(family))
- continue;
-
- if ((options & scalableMask) && (options & scalableMask) != scalableMask) {
- if (bool(options & QFontDialogOptions::ScalableFonts)
- != QFontDatabase::isSmoothlyScalable(family))
- continue;
- }
-
- if ((options & spacingMask) && (options & scalableMask) != spacingMask) {
- if (bool(options & QFontDialogOptions::MonospacedFonts)
- != QFontDatabase::isFixedPitch(family))
- continue;
- }
-
- familyNames << family;
- }
-
- auto listView = familyListView();
-
- // Index will be set to -1 on empty model, and 0 for non empty models.
- // Will overwrite selectedFamily and selectedStyle
- listView->setModel(familyNames);
-
- QString foundryName1, familyName1, foundryName2, familyName2;
- int bestFamilyMatch = -1;
- match_t bestFamilyType = MATCH_NONE;
- const QFont f;
-
- QFontDatabasePrivate::parseFontName(m_selectedFamily, foundryName1, familyName1);
-
- int i = 0;
- for (auto it = familyNames.constBegin(); it != familyNames.constEnd(); ++it, ++i) {
- QFontDatabasePrivate::parseFontName(*it, foundryName2, familyName2);
-
- if (familyName1 == familyName2) {
- bestFamilyType = MATCH_FAMILY;
- if (foundryName1 == foundryName2) {
- bestFamilyMatch = i;
- break;
- }
- if (bestFamilyMatch < MATCH_FAMILY) {
- bestFamilyMatch = i;
- }
- }
-
- match_t type = MATCH_NONE;
- if (bestFamilyType <= MATCH_NONE && familyName2 == QStringLiteral("helvetica"))
- type = MATCH_LAST_RESORT;
- if (bestFamilyType <= MATCH_LAST_RESORT && familyName2 == f.families().constFirst())
- type = MATCH_APP;
- if (type != MATCH_NONE) {
- bestFamilyType = type;
- bestFamilyMatch = i;
- }
- }
-
- if (!familyNames.isEmpty() && bestFamilyType != MATCH_NONE) {
- listView->setCurrentIndex(bestFamilyMatch);
- } else {
- listView->setCurrentIndex(-1);
- }
-
- updateStyles();
-}
-
-/*!
- \internal
-
- Updates the model for the style list view, and
- attempt to reselect the style that was previously selected.
-
- Calls updateSizes()
- */
-void QQuickFontDialogImplAttached::updateStyles()
-{
- const QString family = familyListView()->currentIndex() >= 0 ? m_selectedFamily : QString();
- const QStringList styles = QFontDatabase::styles(family);
-
- auto listView = styleListView();
-
- m_isUpdatingStyles = true;
-
- listView->setModel(styles);
-
- if (styles.isEmpty()) {
- styleEdit()->clear();
- m_smoothlyScalable = false;
- } else {
- int newIndex = 0;
-
- if (!m_selectedStyle.isEmpty()) {
- bool redo = true, found = false;
- QString cstyle = m_selectedStyle;
- do {
- for (int i = 0; i < styles.count(); ++i) {
- if (cstyle.toLower() == styles.at(i).toLower()) {
- newIndex = i;
- found = true;
- break;
- }
- }
-
- if (!found && redo) {
- redo = false;
-
- if (cstyle.contains(QLatin1String("Italic"))) {
- cstyle.replace(QLatin1String("Italic"), QLatin1String("Oblique"));
- continue;
- } else if (cstyle.contains(QLatin1String("Oblique"))) {
- cstyle.replace(QLatin1String("Oblique"), QLatin1String("Italic"));
- continue;
- } else if (cstyle.contains(QLatin1String("Regular"))) {
- cstyle.replace(QLatin1String("Regular"), QLatin1String("Normal"));
- continue;
- } else if (cstyle.contains(QLatin1String("Normal"))) {
- cstyle.replace(QLatin1String("Normal"), QLatin1String("Regular"));
- continue;
- }
- }
-
- } while (!found && redo);
- }
-
- listView->setCurrentIndex(newIndex);
-
- m_selectedStyle = styles.at(newIndex);
- styleEdit()->setText(m_selectedStyle);
-
- m_smoothlyScalable = QFontDatabase::isSmoothlyScalable(m_selectedFamily, m_selectedStyle);
- }
-
- m_isUpdatingStyles = false;
-
- updateSizes();
-}
-
-/*!
- \internal
-
- Updates the model for the size list view,
- and attempts to reselect the size that was previously selected
- */
-void QQuickFontDialogImplAttached::updateSizes()
-{
- if (!m_selectedFamily.isEmpty()) {
- const QList<int> sizes = QFontDatabase::pointSizes(m_selectedFamily, m_selectedStyle);
-
- QStringList str_sizes;
-
- str_sizes.reserve(sizes.size());
-
- int idx = 0, current = -1;
- for (QList<int>::const_iterator it = sizes.constBegin(); it != sizes.constEnd(); it++) {
- str_sizes.append(QString::number(*it));
- if (current == -1 && m_selectedSize == *it) {
- current = idx;
- }
- ++idx;
- }
-
- auto listView = sizeListView();
-
- listView->setModel(str_sizes);
- if (current != -1)
- listView->setCurrentIndex(current);
-
- sizeEdit()->setText(!m_smoothlyScalable && listView->currentIndex() > 0
- ? str_sizes.at(listView->currentIndex())
- : QString::number(m_selectedSize));
- } else {
- qCWarning(lcAttachedProperty) << "Warning! selectedFamily is empty";
- sizeEdit()->clear();
- }
-
- _q_updateSample();
-}
-
-void QQuickFontDialogImplAttached::_q_updateSample()
-{
- const int pSize = sizeEdit()->text().toInt();
-
- QFont newFont = QFontDatabase::font(m_selectedFamily, m_selectedStyle, pSize);
-
- newFont.setUnderline(underlineCheckBox()->isChecked());
- newFont.setStrikeOut(strikeoutCheckBox()->isChecked());
-
- if (!m_selectedFamily.isEmpty()) {
- sampleEdit()->setFont(newFont);
- }
-}
-
-void QQuickFontDialogImplAttached::_q_writingSystemChanged(int index)
-{
- m_writingSystem = QFontDatabase::WritingSystem(index);
- sampleEdit()->setText(QFontDatabase::writingSystemSample(m_writingSystem));
-
- updateFamilies();
-}
-
-void QQuickFontDialogImplAttached::searchListView(const QString &s, QQuickListView *listView)
-{
- const QStringList model = listView->model().toStringList();
-
- bool redo = false;
-
- do {
- m_search.append(s);
-
- for (int i = 0; i < model.count(); ++i) {
- if (model.at(i).startsWith(m_search, Qt::CaseInsensitive)) {
- listView->setCurrentIndex(i);
- return;
- }
- }
-
- clearSearch();
-
- redo = !redo;
- } while (redo);
-}
-
-void QQuickFontDialogImplAttached::clearSearch()
-{
- m_search.clear();
-}
-
-void QQuickFontDialogImplAttached::_q_familyChanged()
-{
- const int index = familyListView()->currentIndex();
-
- if (index < 0) {
- familyEdit()->clear();
- return;
- }
-
- m_selectedFamily = familyListView()->model().toStringList().at(index);
- familyEdit()->setText(m_selectedFamily);
-
- updateStyles();
-}
-
-void QQuickFontDialogImplAttached::_q_styleChanged()
-{
- if (m_isUpdatingStyles)
- return;
-
- const int index = styleListView()->currentIndex();
-
- if (index < 0) {
- qCWarning(lcAttachedProperty) << "currentIndex changed to -1";
- return;
- }
-
- m_selectedStyle = styleListView()->model().toStringList().at(index);
- styleEdit()->setText(m_selectedStyle);
-
- updateSizes();
-}
-
-void QQuickFontDialogImplAttached::_q_sizeEdited()
-{
- const int size = sizeEdit()->text().toInt();
-
- if (size == m_selectedSize)
- return;
-
- m_selectedSize = size;
-
- if (sizeListView()->count()) {
- auto model = sizeListView()->model().toStringList();
-
- int i;
- for (i = 0; i < model.count() - 1; ++i) {
- if (model.at(i).toInt() >= size)
- break;
- }
-
- QSignalBlocker blocker(sizeListView());
- if (model.at(i).toInt() == size)
- sizeListView()->setCurrentIndex(i);
- else
- sizeListView()->setCurrentIndex(-1);
- }
-
- _q_updateSample();
-}
-
-void QQuickFontDialogImplAttached::_q_sizeChanged()
-{
- const int index = sizeListView()->currentIndex();
-
- if (index < 0) {
- qCWarning(lcAttachedProperty) << "currentIndex changed to -1";
- return;
- }
-
- const QString s = sizeListView()->model().toStringList().at(index);
- m_selectedSize = s.toInt();
-
- sizeEdit()->setText(s);
-
- _q_updateSample();
-}
-
-void QQuickFontDialogImplAttachedPrivate::currentFontChanged(const QFont &font)
-{
-
- auto fontDialogImpl = qobject_cast<QQuickFontDialogImpl *>(parent);
-
- if (!fontDialogImpl) {
- return;
- }
-
- fontDialogImpl->setCurrentFont(font);
-
- if (fontDialogImpl->options()->testOption(QFontDialogOptions::NoButtons))
- emit fontDialogImpl->fontSelected(font);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl_p.h
deleted file mode 100644
index 98567353..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl_p.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFONTDIALOGIMPL_P_H
-#define QQUICKFONTDIALOGIMPL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qfontdatabase.h>
-#include <QtQuick/private/qquicklistview_p.h>
-#include <QtQuick/private/qquicktextedit_p.h>
-#include <QtQuickTemplates2/private/qquicktextfield_p.h>
-#include <QtQuickTemplates2/private/qquickcombobox_p.h>
-#include <QtQuickTemplates2/private/qquickcheckbox_p.h>
-#include <QtQuickTemplates2/private/qquickdialog_p.h>
-#include "qtquickdialogs2quickimplglobal_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickDialogButtonBox;
-
-class QQuickFontDialogImplAttached;
-class QQuickFontDialogImplAttachedPrivate;
-class QQuickFontDialogImplPrivate;
-
-class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickFontDialogImpl : public QQuickDialog
-{
- Q_OBJECT
- Q_PROPERTY(QFont currentFont READ currentFont WRITE setCurrentFont NOTIFY currentFontChanged FINAL)
- QML_NAMED_ELEMENT(FontDialogImpl)
- QML_ATTACHED(QQuickFontDialogImplAttached)
- QML_ADDED_IN_VERSION(6, 2)
-
-public:
- explicit QQuickFontDialogImpl(QObject *parent = nullptr);
-
- static QQuickFontDialogImplAttached *qmlAttachedProperties(QObject *object);
-
- QSharedPointer<QFontDialogOptions> options() const;
- void setOptions(const QSharedPointer<QFontDialogOptions> &options);
-
- QFont currentFont() const;
- void setCurrentFont(const QFont &font);
-
- void updateListViews();
-
-Q_SIGNALS:
- void optionsChanged();
- void currentFontChanged(const QFont &font);
- void fontSelected(const QFont &font);
-
-private:
- void keyReleaseEvent(QKeyEvent *event) override;
- void focusOutEvent(QFocusEvent *event) override;
-
- Q_DISABLE_COPY(QQuickFontDialogImpl)
- Q_DECLARE_PRIVATE(QQuickFontDialogImpl)
-};
-
-class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickFontDialogImplAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickListView *familyListView READ familyListView WRITE setFamilyListView
- NOTIFY familyListViewChanged)
- Q_PROPERTY(QQuickListView *styleListView READ styleListView WRITE setStyleListView
- NOTIFY styleListViewChanged)
- Q_PROPERTY(QQuickListView *sizeListView READ sizeListView WRITE setSizeListView
- NOTIFY sizeListViewChanged)
- Q_PROPERTY(QQuickTextEdit *sampleEdit READ sampleEdit WRITE setSampleEdit
- NOTIFY sampleEditChanged)
- Q_PROPERTY(QQuickDialogButtonBox *buttonBox READ buttonBox WRITE setButtonBox
- NOTIFY buttonBoxChanged)
- Q_PROPERTY(QQuickComboBox *writingSystemComboBox READ writingSystemComboBox
- WRITE setWritingSystemComboBox NOTIFY writingSystemComboBoxChanged)
- Q_PROPERTY(QQuickCheckBox *underlineCheckBox READ underlineCheckBox WRITE setUnderlineCheckBox
- NOTIFY underlineCheckBoxChanged)
- Q_PROPERTY(QQuickCheckBox *strikeoutCheckBox READ strikeoutCheckBox WRITE setStrikeoutCheckBox
- NOTIFY strikeoutCheckBoxChanged)
-
- Q_PROPERTY(QQuickTextField *familyEdit READ familyEdit WRITE setFamilyEdit
- NOTIFY familyEditChanged)
- Q_PROPERTY(QQuickTextField *styleEdit READ styleEdit WRITE setStyleEdit NOTIFY styleEditChanged)
- Q_PROPERTY(QQuickTextField *sizeEdit READ sizeEdit WRITE setSizeEdit NOTIFY sizeEditChanged)
-
- Q_MOC_INCLUDE(<QtQuickTemplates2 / private / qquickdialogbuttonbox_p.h>)
-
-public:
- explicit QQuickFontDialogImplAttached(QObject *parent = nullptr);
-
- QQuickListView *familyListView() const;
- void setFamilyListView(QQuickListView *familyListView);
-
- QQuickListView *styleListView() const;
- void setStyleListView(QQuickListView *styleListView);
-
- QQuickListView *sizeListView() const;
- void setSizeListView(QQuickListView *sizeListView);
-
- QQuickTextEdit *sampleEdit() const;
- void setSampleEdit(QQuickTextEdit *sampleEdit);
-
- QQuickDialogButtonBox *buttonBox() const;
- void setButtonBox(QQuickDialogButtonBox *buttonBox);
-
- QQuickComboBox *writingSystemComboBox() const;
- void setWritingSystemComboBox(QQuickComboBox *writingSystemComboBox);
-
- QQuickCheckBox *underlineCheckBox() const;
- void setUnderlineCheckBox(QQuickCheckBox *underlineCheckBox);
-
- QQuickCheckBox *strikeoutCheckBox() const;
- void setStrikeoutCheckBox(QQuickCheckBox *strikethroughCheckBox);
-
- QQuickTextField *familyEdit() const;
- void setFamilyEdit(QQuickTextField *familyEdit);
-
- QQuickTextField *styleEdit() const;
- void setStyleEdit(QQuickTextField *styleEdit);
-
- QQuickTextField *sizeEdit() const;
- void setSizeEdit(QQuickTextField *sizeEdit);
-
-Q_SIGNALS:
- void buttonBoxChanged();
- void familyListViewChanged();
- void styleListViewChanged();
- void sizeListViewChanged();
- void sampleEditChanged();
- void writingSystemComboBoxChanged();
- void underlineCheckBoxChanged();
- void strikeoutCheckBoxChanged();
- void familyEditChanged();
- void styleEditChanged();
- void sizeEditChanged();
-
-public:
- void searchFamily(const QString &s) { searchListView(s, familyListView()); }
- void searchStyle(const QString &s) { searchListView(s, styleListView()); }
- void clearSearch();
-
- void updateFamilies();
-
-private:
- void updateStyles();
- void updateSizes();
-
- void _q_familyChanged();
- void _q_styleChanged();
- void _q_sizeEdited();
- void _q_sizeChanged();
- void _q_updateSample();
-
- void _q_writingSystemChanged(int index);
-
- void searchListView(const QString &s, QQuickListView *listView);
-
- QFontDatabase::WritingSystem m_writingSystem;
- QString m_selectedFamily;
- QString m_selectedStyle;
- QString m_search;
- int m_selectedSize;
- bool m_smoothlyScalable;
- bool m_isUpdatingStyles;
-
- Q_DISABLE_COPY(QQuickFontDialogImplAttached)
- Q_DECLARE_PRIVATE(QQuickFontDialogImplAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickFontDialogImpl)
-
-#endif // QQUICKFONTDIALOGIMPL_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl_p_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl_p_p.h
deleted file mode 100644
index 8de3480d..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickfontdialogimpl_p_p.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFONTDIALOGIMPL_P_P_H
-#define QQUICKFONTDIALOGIMPL_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcombobox_p.h>
-#include <QtQuickTemplates2/private/qquickdialog_p_p.h>
-#include <QtQuickTemplates2/private/qquickdialogbuttonbox_p.h>
-
-#include "qquickfontdialogimpl_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFontDialogImplPrivate : public QQuickDialogPrivate
-{
- Q_DECLARE_PUBLIC(QQuickFontDialogImpl)
-public:
- QQuickFontDialogImplPrivate();
-
- static QQuickFontDialogImplPrivate *get(QQuickFontDialogImpl *dialog)
- {
- return dialog->d_func();
- }
-
- QQuickFontDialogImplAttached *attachedOrWarn();
-
- void updateEnabled();
-
- void handleAccept() override;
- void handleClick(QQuickAbstractButton *button) override;
-
- QSharedPointer<QFontDialogOptions> options;
-
- QFont currentFont;
-};
-
-class QQuickFontDialogImplAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickFontDialogImplAttached)
-
- void currentFontChanged(const QFont &font);
-
-public:
- QPointer<QQuickDialogButtonBox> buttonBox;
- QPointer<QQuickListView> familyListView;
- QPointer<QQuickListView> styleListView;
- QPointer<QQuickListView> sizeListView;
- QPointer<QQuickTextEdit> sampleEdit;
- QPointer<QQuickComboBox> writingSystemComboBox;
- QPointer<QQuickCheckBox> underlineCheckBox;
- QPointer<QQuickCheckBox> strikeoutCheckBox;
- QPointer<QQuickTextField> familyEdit;
- QPointer<QQuickTextField> styleEdit;
- QPointer<QQuickTextField> sizeEdit;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKFONTDIALOGIMPL_P_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfiledialog.cpp b/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfiledialog.cpp
deleted file mode 100644
index deccd9bb..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfiledialog.cpp
+++ /dev/null
@@ -1,226 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformfiledialog_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtGui/qwindow.h>
-#include <QtQml/qqmlcontext.h>
-#include <QtQml/qqmlinfo.h>
-#include <QtQuick/qquickwindow.h>
-#include <QtQuickDialogs2Utils/private/qquickfilenamefilter_p.h>
-#include <QtQuickTemplates2/private/qquickdialog_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p_p.h>
-#include <QtQuickTemplates2/private/qquickpopupanchors_p.h>
-
-#include "qquickfiledialogimpl_p.h"
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcQuickPlatformFileDialog, "qt.quick.dialogs.quickplatformfiledialog")
-
-/*!
- \class QQuickPlatformFileDialog
- \internal
-
- An interface that QQuickFileDialog can use to access the non-native Qt Quick FileDialog.
-
- Both this and the native implementations are created in QQuickAbstractDialog::create().
-*/
-QQuickPlatformFileDialog::QQuickPlatformFileDialog(QObject *parent)
-{
- qCDebug(lcQuickPlatformFileDialog) << "creating non-native Qt Quick FileDialog with parent" << parent;
-
- // Set a parent so that we get deleted if we can't be shown for whatever reason.
- // Our eventual parent should be the window, though.
- setParent(parent);
-
- auto qmlContext = ::qmlContext(parent);
- if (!qmlContext) {
- qmlWarning(parent) << "No QQmlContext for QQuickPlatformFileDialog; can't create non-native FileDialog implementation";
- return;
- }
-
- const auto dialogQmlUrl = QUrl(QStringLiteral("qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/qml/FileDialog.qml"));
- QQmlComponent fileDialogComponent(qmlContext->engine(), dialogQmlUrl, parent);
- if (!fileDialogComponent.isReady()) {
- qmlWarning(parent) << "Failed to load non-native FileDialog implementation:\n" << fileDialogComponent.errorString();
- return;
- }
- m_dialog = qobject_cast<QQuickFileDialogImpl*>(fileDialogComponent.create());
- if (!m_dialog) {
- qmlWarning(parent) << "Failed to create an instance of the non-native FileDialog:\n" << fileDialogComponent.errorString();
- return;
- }
- // Give it a parent until it's parented to the window in show().
- m_dialog->setParent(this);
-
- connect(m_dialog, &QQuickDialog::accepted, this, &QPlatformDialogHelper::accept);
- connect(m_dialog, &QQuickDialog::rejected, this, &QPlatformDialogHelper::reject);
-
- connect(m_dialog, &QQuickFileDialogImpl::fileSelected, this, &QQuickPlatformFileDialog::fileSelected);
- // TODO: add support for multiple file selection (QTBUG-92585)
-// connect(m_dialog, &QQuickFileDialogImpl::filesSelected, [this](const QList<QString> &files) {
-// QList<QUrl> urls;
-// urls.reserve(files.count());
-// for (const QString &file : files)
-// urls += QUrl::fromLocalFile(file);
-// emit filesSelected(urls);
-// });
- connect(m_dialog, &QQuickFileDialogImpl::currentFileChanged, this, &QQuickPlatformFileDialog::currentChanged);
- connect(m_dialog, &QQuickFileDialogImpl::currentFolderChanged, this, &QQuickPlatformFileDialog::directoryEntered);
- connect(m_dialog, &QQuickFileDialogImpl::filterSelected, this, &QQuickPlatformFileDialog::filterSelected);
-
- // We would do this in QQuickFileDialogImpl, but we need to ensure that folderChanged()
- // is connected to directoryEntered() before setting it to ensure that the QQuickFileDialog is notified.
- if (m_dialog->currentFolder().isEmpty())
- m_dialog->setCurrentFolder(QUrl::fromLocalFile(QDir().absolutePath()));
-}
-
-bool QQuickPlatformFileDialog::isValid() const
-{
- return m_dialog;
-}
-
-bool QQuickPlatformFileDialog::defaultNameFilterDisables() const
-{
- return false;
-}
-
-void QQuickPlatformFileDialog::setDirectory(const QUrl &directory)
-{
- if (!m_dialog)
- return;
-
- m_dialog->setCurrentFolder(directory);
-}
-
-QUrl QQuickPlatformFileDialog::directory() const
-{
- if (!m_dialog)
- return {};
-
- return m_dialog->currentFolder();
-}
-
-void QQuickPlatformFileDialog::selectFile(const QUrl &file)
-{
- if (!m_dialog)
- return;
-
- m_dialog->setSelectedFile(file);
-}
-
-QList<QUrl> QQuickPlatformFileDialog::selectedFiles() const
-{
- // TODO: support for multiple selected files
- return { m_dialog->currentFile() };
-}
-
-void QQuickPlatformFileDialog::setFilter()
-{
-}
-
-void QQuickPlatformFileDialog::selectNameFilter(const QString &filter)
-{
- // There is a bit of a problem with order here - QQuickFileDialog::onShow()
- // is called before our show(), but it needs to set the selected filter
- // (which we can't do in our show() because we don't know about QQuickFileDialog).
- // So, delay setting the filter until we're shown. This shouldn't be an issue
- // in practice, since it doesn't make sense for the filter to programmatically
- // change while the dialog is visible.
- m_pendingNameFilter = filter;
-}
-
-QString QQuickPlatformFileDialog::selectedNameFilter() const
-{
- return m_dialog->selectedNameFilter()->name();
-}
-
-void QQuickPlatformFileDialog::exec()
-{
- qCWarning(lcQuickPlatformFileDialog) << "exec() is not supported for the Qt Quick FileDialog fallback";
-}
-
-bool QQuickPlatformFileDialog::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent)
-{
- qCDebug(lcQuickPlatformFileDialog) << "show called with flags" << flags <<
- "modality" << modality << "parent" << parent;
- if (!m_dialog)
- return false;
-
- if (!parent)
- return false;
-
- auto quickWindow = qobject_cast<QQuickWindow*>(parent);
- if (!quickWindow) {
- qmlInfo(this->parent()) << "Parent window (" << parent << ") of non-native dialog is not a QQuickWindow";
- return false;
- }
- m_dialog->setParent(parent);
- m_dialog->resetParentItem();
-
- auto popupPrivate = QQuickPopupPrivate::get(m_dialog);
- popupPrivate->getAnchors()->setCenterIn(m_dialog->parentItem());
-
- QSharedPointer<QFileDialogOptions> options = QPlatformFileDialogHelper::options();
- m_dialog->setTitle(options->windowTitle());
- m_dialog->setOptions(options);
- m_dialog->selectNameFilter(m_pendingNameFilter);
- m_pendingNameFilter.clear();
- m_dialog->setAcceptLabel(options->isLabelExplicitlySet(QFileDialogOptions::Accept)
- ? options->labelText(QFileDialogOptions::Accept) : QString());
- m_dialog->setRejectLabel(options->isLabelExplicitlySet(QFileDialogOptions::Reject)
- ? options->labelText(QFileDialogOptions::Reject) : QString());
-
- m_dialog->open();
- return true;
-}
-
-void QQuickPlatformFileDialog::hide()
-{
- if (!m_dialog)
- return;
-
- m_dialog->close();
-}
-
-QQuickFileDialogImpl *QQuickPlatformFileDialog::dialog() const
-{
- return m_dialog;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfiledialog_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfiledialog_p.h
deleted file mode 100644
index 883b7ed9..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfiledialog_p.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMFILEDIALOG_P_H
-#define QQUICKPLATFORMFILEDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpa/qplatformdialoghelper.h>
-
-#include "qtquickdialogs2quickimplglobal_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFileDialogImpl;
-class QWindow;
-
-class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickPlatformFileDialog : public QPlatformFileDialogHelper
-{
- Q_OBJECT
-
-public:
- explicit QQuickPlatformFileDialog(QObject *parent);
- ~QQuickPlatformFileDialog() = default;
-
- bool isValid() const;
- bool defaultNameFilterDisables() const override;
- void setDirectory(const QUrl &directory) override;
- QUrl directory() const override;
- void selectFile(const QUrl &file) override;
- QList<QUrl> selectedFiles() const override;
- void setFilter() override;
- void selectNameFilter(const QString &filter) override;
- QString selectedNameFilter() const override;
-
- void exec() override;
- bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent) override;
- void hide() override;
-
- QQuickFileDialogImpl *dialog() const;
-
-private:
- QQuickFileDialogImpl *m_dialog = nullptr;
- QString m_pendingNameFilter;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPLATFORMFILEDIALOG_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfontdialog.cpp b/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfontdialog.cpp
deleted file mode 100644
index 9ae2c29a..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfontdialog.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickplatformfontdialog_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtGui/qwindow.h>
-#include <QtQml/qqmlcontext.h>
-#include <QtQml/qqmlinfo.h>
-#include <QtQuick/qquickwindow.h>
-#include <QtQuickTemplates2/private/qquickdialog_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p_p.h>
-#include <QtQuickTemplates2/private/qquickpopupanchors_p.h>
-
-#include "qquickfontdialogimpl_p.h"
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcQuickPlatformFontDialog, "qt.quick.dialogs.quickplatformfontdialog")
-
-/*!
- \class QQuickPlatformFontDialog
- \internal
-
- An interface that QQuickFontDialog can use to access the non-native Qt Quick FontDialog.
-
- Both this and the native implementations are created in QQuickAbstractDialog::create().
-
-*/
-QQuickPlatformFontDialog::QQuickPlatformFontDialog(QObject *parent)
-{
- qCDebug(lcQuickPlatformFontDialog)
- << "creating non-native Qt Quick FontDialog with parent" << parent;
-
- // Set a parent so that we get deleted if we can't be shown for whatever reason.
- // Our eventual parent should be the window, though.
- setParent(parent);
-
- auto qmlContext = ::qmlContext(parent);
- if (!qmlContext) {
- qmlWarning(parent) << "No QQmlContext for QQuickPlatformFontDialog; can't create "
- "non-native FontDialog implementation";
- return;
- }
-
- const auto dialogQmlUrl = QUrl(QStringLiteral(
- "qrc:/qt-project.org/imports/QtQuick/Dialogs/quickimpl/qml/FontDialog.qml"));
-
- QQmlComponent fontDialogComponent(qmlContext->engine(), dialogQmlUrl, parent);
- if (!fontDialogComponent.isReady()) {
- qmlWarning(parent) << "Failed to load non-native FontDialog implementation:\n"
- << fontDialogComponent.errorString();
- return;
- }
-
- m_dialog = qobject_cast<QQuickFontDialogImpl *>(fontDialogComponent.create());
-
- if (!m_dialog) {
- qmlWarning(parent) << "Failed to create an instance of the non-native FontDialog:\n"
- << fontDialogComponent.errorString();
- return;
- }
-
- m_dialog->setParent(this);
-
- connect(m_dialog, &QQuickDialog::accepted, this, &QPlatformDialogHelper::accept);
- connect(m_dialog, &QQuickDialog::rejected, this, &QPlatformDialogHelper::reject);
-
- connect(m_dialog, &QQuickFontDialogImpl::currentFontChanged,
- this, &QQuickPlatformFontDialog::currentFontChanged);
- connect(m_dialog, &QQuickFontDialogImpl::fontSelected, this, &QQuickPlatformFontDialog::fontSelected);
-}
-
-bool QQuickPlatformFontDialog::isValid() const
-{
- return m_dialog;
-}
-
-void QQuickPlatformFontDialog::setCurrentFont(const QFont &font)
-{
- if (m_dialog)
- m_dialog->setCurrentFont(font);
-}
-
-QFont QQuickPlatformFontDialog::currentFont() const
-{
- return m_dialog ? m_dialog->currentFont() : QFont();
-}
-
-void QQuickPlatformFontDialog::exec()
-{
- qCWarning(lcQuickPlatformFontDialog)
- << "exec() is not supported for the Qt Quick FontDialog fallback";
-}
-
-bool QQuickPlatformFontDialog::show(Qt::WindowFlags flags, Qt::WindowModality modality,
- QWindow *parent)
-{
- qCDebug(lcQuickPlatformFontDialog)
- << "show called with flags" << flags << "modality" << modality << "parent" << parent;
-
- if (!isValid())
- return false;
-
- if (!parent)
- return false;
-
- auto quickWindow = qobject_cast<QQuickWindow *>(parent);
- if (!quickWindow) {
- qmlInfo(this->parent()) << "Parent window (" << parent
- << ") of non-native dialog is not a QQuickWindow";
- return false;
- }
- m_dialog->setParent(parent);
- m_dialog->resetParentItem();
-
- auto popupPrivate = QQuickPopupPrivate::get(m_dialog);
- popupPrivate->getAnchors()->setCenterIn(m_dialog->parentItem());
-
- QSharedPointer<QFontDialogOptions> options = QPlatformFontDialogHelper::options();
- m_dialog->setTitle(options->windowTitle());
- m_dialog->setOptions(options);
- m_dialog->updateListViews();
-
- m_dialog->open();
- return true;
-}
-
-void QQuickPlatformFontDialog::hide()
-{
- if (isValid())
- m_dialog->close();
-}
-
-QQuickFontDialogImpl *QQuickPlatformFontDialog::dialog() const
-{
- return m_dialog;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfontdialog_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfontdialog_p.h
deleted file mode 100644
index a5009fac..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qquickplatformfontdialog_p.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPLATFORMFONTDIALOG_P_H
-#define QQUICKPLATFORMFONTDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpa/qplatformdialoghelper.h>
-
-#include "qtquickdialogs2quickimplglobal_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFontDialogImpl;
-class QWindow;
-
-class Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT QQuickPlatformFontDialog
- : public QPlatformFontDialogHelper
-{
- Q_OBJECT
-
-public:
- explicit QQuickPlatformFontDialog(QObject *parent);
- ~QQuickPlatformFontDialog() = default;
-
- bool isValid() const;
-
- virtual void setCurrentFont(const QFont &font) override;
- virtual QFont currentFont() const override;
-
- void exec() override;
- bool show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent) override;
- void hide() override;
-
- QQuickFontDialogImpl *dialog() const;
-
-private:
- QQuickFontDialogImpl *m_dialog = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPLATFORMFONTDIALOG_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qtquickdialogs2quickimplforeign_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qtquickdialogs2quickimplforeign_p.h
deleted file mode 100644
index 4564786f..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qtquickdialogs2quickimplforeign_p.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QTQUICKDIALOGS2QUICKIMPLFOREIGN_P_H
-#define QTQUICKDIALOGS2QUICKIMPLFOREIGN_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQml/qqml.h>
-#include <QtQuickDialogs2Utils/private/qquickfilenamefilter_p.h>
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQuickTemplates2/private/qquickdialog_p.h>
-#include <QtQuickTemplates2/private/qquickicon_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p.h>
-
-QT_BEGIN_NAMESPACE
-
-struct QQuickFileNameFilterForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickFileNameFilter)
- QML_ADDED_IN_VERSION(6, 2)
-};
-
-// TODO: remove these ones when not needed (QTBUG-88179)
-
-// verticalPadding, etc.
-struct QQuickControlForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickControl)
- QML_ADDED_IN_VERSION(2, 0)
-};
-
-struct QQuickAbstractButtonForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickAbstractButton)
- QML_ADDED_IN_VERSION(2, 0)
-};
-
-struct QQuickIconForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickIcon)
- QML_ADDED_IN_VERSION(6, 2)
-};
-
-// For leftInset, etc.
-struct QQuickPopupForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickPopup)
- QML_ADDED_IN_VERSION(2, 0)
-};
-
-struct QQuickDialogForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickDialog)
- QML_ADDED_IN_VERSION(2, 1)
-};
-
-QT_END_NAMESPACE
-
-#endif // QTQUICKDIALOGS2QUICKIMPLFOREIGN_P_H
diff --git a/src/quickdialogs2/quickdialogs2quickimpl/qtquickdialogs2quickimplglobal_p.h b/src/quickdialogs2/quickdialogs2quickimpl/qtquickdialogs2quickimplglobal_p.h
deleted file mode 100644
index 38b5a01b..00000000
--- a/src/quickdialogs2/quickdialogs2quickimpl/qtquickdialogs2quickimplglobal_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QTQUICKDIALOGS2QUICKIMPLGLOBAL_P_H
-#define QTQUICKDIALOGS2QUICKIMPLGLOBAL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-#include <QtQml/private/qqmlglobal_p.h>
-
-QT_BEGIN_NAMESPACE
-
-#ifndef QT_STATIC
-# if defined(QT_BUILD_QUICKDIALOGS2QUICKIMPL_LIB)
-# define Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT Q_DECL_EXPORT
-# else
-# define Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT Q_DECL_IMPORT
-# endif
-#else
-# define Q_QUICKDIALOGS2QUICKIMPL_PRIVATE_EXPORT
-#endif
-
-QT_END_NAMESPACE
-
-#endif // QTQUICKDIALOGS2QUICKIMPLGLOBAL_P_H
diff --git a/src/quickdialogs2/quickdialogs2utils/CMakeLists.txt b/src/quickdialogs2/quickdialogs2utils/CMakeLists.txt
deleted file mode 100644
index 0242ffcf..00000000
--- a/src/quickdialogs2/quickdialogs2utils/CMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-# This library exists because QuickDialogs2 and QuickDialogs2QuickImpl
-# both need QQuickNameFilter. QQuickNameFilter was originally in
-# QuickDialogs2. Since QuickDialogs2 already links to
-# QuickDialogs2QuickImpl, making the latter link to the former (to get
-# access to QQuickNameFilter) would result in a circular dependency,
-# so we have this library as a result.
-
-qt_internal_add_module(QuickDialogs2Utils
- SOURCES
- qquickfilenamefilter.cpp
- qquickfilenamefilter_p.h
- qtquickdialogs2utilsglobal_p.h
- DEFINES
- QT_BUILD_QUICKDIALOGS2UTILS_LIB
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- INCLUDE_DIRECTORIES
- ${CMAKE_CURRENT_SOURCE_DIR}
- LIBRARIES
- Qt::GuiPrivate
- PUBLIC_LIBRARIES
- Qt::Core
-)
diff --git a/src/quickdialogs2/quickdialogs2utils/qquickfilenamefilter.cpp b/src/quickdialogs2/quickdialogs2utils/qquickfilenamefilter.cpp
deleted file mode 100644
index bada00d1..00000000
--- a/src/quickdialogs2/quickdialogs2utils/qquickfilenamefilter.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickfilenamefilter_p.h"
-
-#include <QtCore/qloggingcategory.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcFileNameFilter, "qt.quick.dialogs.qquickfilenamefilter")
-
-QQuickFileNameFilter::QQuickFileNameFilter(QObject *parent)
- : QObject(parent), m_index(-1)
-{
-}
-
-int QQuickFileNameFilter::index() const
-{
- return m_index;
-}
-
-void QQuickFileNameFilter::setIndex(int index)
-{
- if (m_index == index)
- return;
-
- m_index = index;
- emit indexChanged(index);
-}
-
-QString QQuickFileNameFilter::name() const
-{
- return m_name;
-}
-
-QStringList QQuickFileNameFilter::extensions() const
-{
- return m_extensions;
-}
-
-QStringList QQuickFileNameFilter::globs() const
-{
- return m_globs;
-}
-
-QSharedPointer<QFileDialogOptions> QQuickFileNameFilter::options() const
-{
- return m_options;
-}
-
-void QQuickFileNameFilter::setOptions(const QSharedPointer<QFileDialogOptions> &options)
-{
- m_options = options;
-}
-
-static QString extractName(const QString &filter)
-{
- return filter.left(filter.indexOf(QLatin1Char('(')) - 1);
-}
-
-static QString extractExtension(QStringView filter)
-{
- return filter.mid(filter.indexOf(QLatin1Char('.')) + 1).toString();
-}
-
-static void extractExtensionsAndGlobs(QStringView filter, QStringList &extensions, QStringList &globs)
-{
- extensions.clear();
- globs.clear();
-
- const int from = filter.indexOf(QLatin1Char('('));
- const int to = filter.lastIndexOf(QLatin1Char(')')) - 1;
- if (from >= 0 && from < to) {
- const QStringView ref = filter.mid(from + 1, to - from);
- const QList<QStringView> exts = ref.split(QLatin1Char(' '), Qt::SkipEmptyParts);
- // For example, given the filter "HTML files (*.html *.htm)",
- // "ref" would be "*.html" and "*.htm".
- for (const QStringView &ref : exts) {
- extensions += extractExtension(ref);
- globs += ref.toString();
- }
- }
-}
-
-void QQuickFileNameFilter::update(const QString &filter)
-{
- const QStringList filters = nameFilters();
-
- const int oldIndex = m_index;
- const QString oldName = m_name;
- const QStringList oldExtensions = m_extensions;
- const QStringList oldGlobs = m_globs;
-
- m_index = filters.indexOf(filter);
- m_name = extractName(filter);
- extractExtensionsAndGlobs(filter, m_extensions, m_globs);
-
- if (oldIndex != m_index)
- emit indexChanged(m_index);
- if (oldName != m_name)
- emit nameChanged(m_name);
- if (oldExtensions != m_extensions)
- emit extensionsChanged(m_extensions);
- if (oldGlobs != m_globs)
- emit globsChanged(m_globs);
-
- qCDebug(lcFileNameFilter).nospace() << "update called on " << this << " of " << parent()
- << " with filter " << filter << " (current filters are " << filters << "):"
- << "\n old index=" << oldIndex << "new index=" << m_index
- << "\n old name=" << oldName << "new name=" << m_name
- << "\n old extensions=" << oldExtensions << "new extensions=" << m_extensions
- << "\n old glob=s" << oldGlobs << "new globs=" << m_globs;
-}
-
-QStringList QQuickFileNameFilter::nameFilters() const
-{
- return m_options ? m_options->nameFilters() : QStringList();
-}
-
-QString QQuickFileNameFilter::nameFilter(int index) const
-{
- return m_options ? m_options->nameFilters().value(index) : QString();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickdialogs2/quickdialogs2utils/qquickfilenamefilter_p.h b/src/quickdialogs2/quickdialogs2utils/qquickfilenamefilter_p.h
deleted file mode 100644
index 586da869..00000000
--- a/src/quickdialogs2/quickdialogs2utils/qquickfilenamefilter_p.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFILENAMEFILTER_P_H
-#define QQUICKFILENAMEFILTER_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtCore/qsharedpointer.h>
-#include <QtCore/qstringlist.h>
-#include <QtGui/qpa/qplatformdialoghelper.h>
-
-#include "qtquickdialogs2utilsglobal_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKDIALOGS2UTILS_PRIVATE_EXPORT QQuickFileNameFilter : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(int index READ index WRITE setIndex NOTIFY indexChanged FINAL)
- Q_PROPERTY(QString name READ name NOTIFY nameChanged FINAL)
- Q_PROPERTY(QStringList extensions READ extensions NOTIFY extensionsChanged FINAL)
- Q_PROPERTY(QStringList globs READ globs NOTIFY globsChanged FINAL)
-
-public:
- explicit QQuickFileNameFilter(QObject *parent = nullptr);
-
- int index() const;
- void setIndex(int index);
-
- QString name() const;
- QStringList extensions() const;
- QStringList globs() const;
-
- QSharedPointer<QFileDialogOptions> options() const;
- void setOptions(const QSharedPointer<QFileDialogOptions> &options);
-
- void update(const QString &filter);
-
-Q_SIGNALS:
- void indexChanged(int index);
- void nameChanged(const QString &name);
- void extensionsChanged(const QStringList &extensions);
- void globsChanged(const QStringList &globs);
-
-private:
- QStringList nameFilters() const;
- QString nameFilter(int index) const;
-
- int m_index;
- QString m_name;
- QStringList m_extensions;
- QStringList m_globs;
- QSharedPointer<QFileDialogOptions> m_options;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKFILENAMEFILTER_P_H
diff --git a/src/quickdialogs2/quickdialogs2utils/qtquickdialogs2utilsglobal_p.h b/src/quickdialogs2/quickdialogs2utils/qtquickdialogs2utilsglobal_p.h
deleted file mode 100644
index 52f7a397..00000000
--- a/src/quickdialogs2/quickdialogs2utils/qtquickdialogs2utilsglobal_p.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Dialogs module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QTQUICKDIALOGS2UTILSGLOBAL_P_H
-#define QTQUICKDIALOGS2UTILSGLOBAL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-#ifndef QT_STATIC
-# if defined(QT_BUILD_QUICKDIALOGS2UTILS_LIB)
-# define Q_QUICKDIALOGS2UTILS_PRIVATE_EXPORT Q_DECL_EXPORT
-# else
-# define Q_QUICKDIALOGS2UTILS_PRIVATE_EXPORT Q_DECL_IMPORT
-# endif
-#else
-# define Q_QUICKDIALOGS2UTILS_PRIVATE_EXPORT
-#endif
-
-QT_END_NAMESPACE
-
-#endif // QTQUICKDIALOGS2UTILSUTILSGLOBAL_P_H
diff --git a/src/quicknativestyle/CMakeLists.txt b/src/quicknativestyle/CMakeLists.txt
deleted file mode 100644
index 428938c2..00000000
--- a/src/quicknativestyle/CMakeLists.txt
+++ /dev/null
@@ -1,103 +0,0 @@
-#####################################################################
-## qtquickcontrols2nativestyleplugin Plugin:
-#####################################################################
-
-set(qml_files
- "controls/DefaultButton.qml"
- "controls/DefaultSlider.qml"
- "controls/DefaultGroupBox.qml"
- "controls/DefaultCheckBox.qml"
- "controls/DefaultRadioButton.qml"
- "controls/DefaultSpinBox.qml"
- "controls/DefaultTextField.qml"
- "controls/DefaultFrame.qml"
- "controls/DefaultTextArea.qml"
- "controls/DefaultComboBox.qml"
- "controls/DefaultScrollBar.qml"
- "controls/DefaultProgressBar.qml"
- "controls/DefaultDial.qml"
-)
-set_source_files_properties(${qml_files} PROPERTIES
- QT_QML_SOURCE_VERSION "2.0;6.0"
-)
-
-if(MACOS)
- # TODO: QT_QML_SOURCE_VERSION wasn't set on this file before, should it be?
- list(APPEND qml_files "util/FocusFrame.qml")
-endif()
-
-qt_internal_add_qml_module(qtquickcontrols2nativestyleplugin
- URI "QtQuick.NativeStyle"
- VERSION "${PROJECT_VERSION}"
- CLASSNAME QtQuickControls2NativeStylePlugin
- DEPENDENCIES
- QtQuick.Controls/auto
- QtQuick.Layouts/auto
- PAST_MAJOR_VERSIONS 2
- PLUGIN_TARGET qtquickcontrols2nativestyleplugin
- NO_PLUGIN_OPTIONAL
- NO_GENERATE_PLUGIN_SOURCE
- SOURCES
- items/qquickstyleitem.cpp items/qquickstyleitem.h
- items/qquickstyleitembutton.cpp items/qquickstyleitembutton.h
- items/qquickstyleitemcheckbox.cpp items/qquickstyleitemcheckbox.h
- items/qquickstyleitemcombobox.cpp items/qquickstyleitemcombobox.h
- items/qquickstyleitemdial.cpp items/qquickstyleitemdial.h
- items/qquickstyleitemframe.cpp items/qquickstyleitemframe.h
- items/qquickstyleitemgroupbox.cpp items/qquickstyleitemgroupbox.h
- items/qquickstyleitemprogressbar.cpp items/qquickstyleitemprogressbar.h
- items/qquickstyleitemradiobutton.cpp items/qquickstyleitemradiobutton.h
- items/qquickstyleitemscrollbar.cpp items/qquickstyleitemscrollbar.h
- items/qquickstyleitemslider.cpp items/qquickstyleitemslider.h
- items/qquickstyleitemspinbox.cpp items/qquickstyleitemspinbox.h
- items/qquickstyleitemtextfield.cpp items/qquickstyleitemtextfield.h
- qstyle/qquickcommonstyle.cpp qstyle/qquickcommonstyle.h qstyle/qquickcommonstyle_p.h
- qstyle/qquickcommonstylepixmaps_p.h
- qstyle/qquickdrawutil.cpp qstyle/qquickdrawutil.h
- qstyle/qquicknativestyle.cpp qstyle/qquicknativestyle.h
- qstyle/qquickstyle.cpp qstyle/qquickstyle.h qstyle/qquickstyle_p.h
- qstyle/qquickstylehelper.cpp qstyle/qquickstylehelper_p.h
- qstyle/qquickstyleoption.cpp qstyle/qquickstyleoption.h
- qtquickcontrols2nativestyleplugin.cpp
- QML_FILES
- ${qml_files}
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- INCLUDE_DIRECTORIES
- items
- qstyle
- util
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickControls2Private
- Qt::QuickPrivate
- Qt::QuickTemplates2Private
-)
-
-qt_internal_extend_target(qtquickcontrols2nativestyleplugin CONDITION MACOS
- SOURCES
- items/qquickstyleitemscrollviewcorner.cpp items/qquickstyleitemscrollviewcorner.h
- qstyle/mac/qquickmacstyle_mac.mm qstyle/mac/qquickmacstyle_mac_p.h
- qstyle/mac/qquickmacstyle_mac_p_p.h
- util/qquickmacfocusframe.h util/qquickmacfocusframe.mm
- INCLUDE_DIRECTORIES
- qstyle/mac
- LIBRARIES
- ${FWAppKit}
-)
-
-qt_internal_extend_target(qtquickcontrols2nativestyleplugin CONDITION WIN32
- SOURCES
- qstyle/windows/qquickwindowsstyle.cpp qstyle/windows/qquickwindowsstyle_p.h
- qstyle/windows/qquickwindowsstyle_p_p.h
- qstyle/windows/qquickwindowsxpstyle.cpp
- INCLUDE_DIRECTORIES
- qstyle/windows
- LIBRARIES
- gdi32
- user32
- uxtheme
-)
diff --git a/src/quicknativestyle/controls/DefaultButton.qml b/src/quicknativestyle/controls/DefaultButton.qml
deleted file mode 100644
index 7e55aaa2..00000000
--- a/src/quicknativestyle/controls/DefaultButton.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.Button {
- id: control
-
- readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
-
- // Since QQuickControl will subtract the insets from the control size to
- // figure out the background size, we need to reverse that here, otherwise
- // the control ends up too big.
- implicitWidth: implicitBackgroundWidth + leftInset + rightInset
- implicitHeight: implicitBackgroundHeight + topInset + bottomInset
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- leftPadding: __nativeBackground ? background.contentPadding.left : 5
- rightPadding: __nativeBackground ? background.contentPadding.right : 5
- topPadding: __nativeBackground ? background.contentPadding.top : 5
- bottomPadding: __nativeBackground ? background.contentPadding.bottom : 5
-
- background: NativeStyle.Button {
- control: control
- contentWidth: contentItem.implicitWidth
- contentHeight: contentItem.implicitHeight
- }
-
- icon.width: 24
- icon.height: 24
- icon.color: control.checked || control.highlighted ? control.palette.brightText :
- control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
-
- contentItem: IconLabel {
- spacing: control.spacing
- mirrored: control.mirrored
- display: control.display
-
- icon: control.icon
- text: control.text
- font: control.font
- color: control.checked || control.highlighted ? control.palette.brightText :
- control.flat && !control.down ? (control.visualFocus ? control.palette.highlight : control.palette.windowText) : control.palette.buttonText
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultCheckBox.qml b/src/quicknativestyle/controls/DefaultCheckBox.qml
deleted file mode 100644
index 09166820..00000000
--- a/src/quicknativestyle/controls/DefaultCheckBox.qml
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.NativeStyle as NativeStyle
-
-T.CheckBox {
- id: control
-
- readonly property bool nativeIndicator: indicator instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- font.pixelSize: nativeIndicator ? indicator.styleFont(control).pixelSize : undefined
-
- spacing: nativeIndicator ? 0 : 6
- padding: nativeIndicator ? 0 : 6
-
- indicator: NativeStyle.CheckBox {
- control: control
- y: control.topPadding + (control.availableHeight - height) >> 1
- contentWidth: contentItem.implicitWidth
- contentHeight: contentItem.implicitHeight
- useNinePatchImage: false
- }
-
- contentItem: CheckLabel {
- text: control.text
- font: control.font
- color: control.palette.windowText
-
- // For some reason, the other styles set padding here (in the delegate), instead of in
- // the control above. And they also adjust the indicator position by setting x and y
- // explicitly (instead of using insets). So we follow the same pattern to ensure that
- // setting a custom contentItem delegate from the app will end up looking the same for
- // all styles. But this should probably be fixed for all styles (to make them work the
- // same way as e.g Buttons).
- leftPadding: {
- if (nativeIndicator)
- indicator.contentPadding.left
- else
- indicator && !mirrored ? indicator.width + spacing : 0
- }
-
- topPadding: nativeIndicator ? indicator.contentPadding.top : 0
- rightPadding: {
- if (nativeIndicator)
- indicator.contentPadding.right
- else
- indicator && mirrored ? indicator.width + spacing : 0
- }
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultComboBox.qml b/src/quicknativestyle/controls/DefaultComboBox.qml
deleted file mode 100644
index 7b286a1e..00000000
--- a/src/quicknativestyle/controls/DefaultComboBox.qml
+++ /dev/null
@@ -1,129 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Window
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.ComboBox {
- id: control
-
- readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding,
- 90 /* minimum */ )
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- leftPadding: __nativeBackground ? background.contentPadding.left : 5
- rightPadding: __nativeBackground ? background.contentPadding.right : 5
- topPadding: __nativeBackground ? background.contentPadding.top : 5
- bottomPadding: __nativeBackground ? background.contentPadding.bottom : 5
-
- contentItem: T.TextField {
- implicitWidth: contentWidth
- implicitHeight: contentHeight
- text: control.editable ? control.editText : control.displayText
-
- enabled: control.editable
- autoScroll: control.editable
- readOnly: control.down
- inputMethodHints: control.inputMethodHints
- validator: control.validator
- selectByMouse: control.selectTextByMouse
-
- font: control.font
- color: control.editable ? control.palette.text : control.palette.buttonText
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- verticalAlignment: Text.AlignVCenter
- }
-
- background: NativeStyle.ComboBox {
- control: control
- contentWidth: contentItem.implicitWidth
- contentHeight: contentItem.implicitHeight
- }
-
- delegate: ItemDelegate {
- width: ListView.view.width
- text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
- palette.text: control.palette.text
- palette.highlightedText: control.palette.highlightedText
- font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal
- highlighted: control.highlightedIndex === index
- hoverEnabled: control.hoverEnabled
- }
-
- popup: T.Popup {
- readonly property var layoutMargins: control.__nativeBackground ? control.background.layoutMargins : null
- x: layoutMargins ? layoutMargins.left : 0
- y: control.height - (layoutMargins ? layoutMargins.bottom : 0)
- width: control.width - (layoutMargins ? layoutMargins.left + layoutMargins.right : 0)
- height: Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin)
- topMargin: 6
- bottomMargin: 6
-
- contentItem: ListView {
- clip: true
- implicitHeight: contentHeight
- model: control.delegateModel
- currentIndex: control.highlightedIndex
- highlightMoveDuration: 0
-
- Rectangle {
- z: 10
- width: parent.width
- height: parent.height
- color: "transparent"
- border.color: control.palette.mid
- }
-
- T.ScrollIndicator.vertical: ScrollIndicator { }
- }
-
- background: Rectangle {
- color: control.palette.window
- }
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultDial.qml b/src/quicknativestyle/controls/DefaultDial.qml
deleted file mode 100644
index b628ed09..00000000
--- a/src/quicknativestyle/controls/DefaultDial.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.Dial {
- id: control
-
- readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding,
- 80 /* minimum */ )
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- 80 /* minimum */ )
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- background: NativeStyle.Dial {
- control: control
- useNinePatchImage: false
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultFrame.qml b/src/quicknativestyle/controls/DefaultFrame.qml
deleted file mode 100644
index 77ca6125..00000000
--- a/src/quicknativestyle/controls/DefaultFrame.qml
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.Frame {
- id: control
-
- readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- leftPadding: __nativeBackground ? background.contentPadding.left : 12
- rightPadding: __nativeBackground ? background.contentPadding.right : 12
- topPadding: __nativeBackground ? background.contentPadding.top : 12
- bottomPadding: __nativeBackground ? background.contentPadding.bottom : 12
-
- background: NativeStyle.Frame {
- control: control
- contentWidth: control.contentWidth
- contentHeight: control.contentHeight
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultGroupBox.qml b/src/quicknativestyle/controls/DefaultGroupBox.qml
deleted file mode 100644
index a7f3f9d0..00000000
--- a/src/quicknativestyle/controls/DefaultGroupBox.qml
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.GroupBox {
- id: control
-
- readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- contentWidth + leftPadding + rightPadding,
- implicitLabelWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding)
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- label: Rectangle {
- color: control.palette.window
- property point labelPos : control.__nativeBackground
- ? background.labelPos
- : Qt.point(0,0)
- x: labelPos.x + background.x
- y: labelPos.y + background.y - (__nativeBackground ? background.groupBoxPadding.top : 0)
- width: children[0].implicitWidth
- height: children[0].implicitHeight
- Text {
- width: parent.width
- height: parent.height
- text: control.title
- font: control.font
- color: control.palette.windowText
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
- }
-
- leftPadding: __nativeBackground ? background.contentPadding.left : 0
- rightPadding: __nativeBackground ? background.contentPadding.right : 0
- topPadding: __nativeBackground ? background.contentPadding.top : 0
- bottomPadding: __nativeBackground ? background.contentPadding.bottom : 0
-
- background: NativeStyle.GroupBox {
- control: control
-
- x: groupBoxPadding.left
- y: groupBoxPadding.top
- width: contentItem.width + control.leftPadding + control.rightPadding - groupBoxPadding.left - groupBoxPadding.right
- height: contentItem.height + control.topPadding + control.bottomPadding - groupBoxPadding.top - groupBoxPadding.bottom
-
- contentWidth: contentItem.implicitWidth
- contentHeight: contentItem.implicitHeight
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultProgressBar.qml b/src/quicknativestyle/controls/DefaultProgressBar.qml
deleted file mode 100644
index 037bdbae..00000000
--- a/src/quicknativestyle/controls/DefaultProgressBar.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls
-import QtQuick.NativeStyle as NativeStyle
-
-T.ProgressBar {
- id: control
-
- readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding,
- control.horizontal ? 90 : 0 /* minimum */ )
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- control.vertical ? 90 : 0 /* minimum */ )
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- background: NativeStyle.ProgressBar {
- control: control
- useNinePatchImage: false
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultRadioButton.qml b/src/quicknativestyle/controls/DefaultRadioButton.qml
deleted file mode 100644
index 29746ba7..00000000
--- a/src/quicknativestyle/controls/DefaultRadioButton.qml
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Templates as T
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.NativeStyle as NativeStyle
-
-T.RadioButton {
- id: control
-
- readonly property bool nativeIndicator: indicator instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding,
- implicitIndicatorHeight + topPadding + bottomPadding)
-
- font.pixelSize: nativeIndicator ? indicator.styleFont(control).pixelSize : undefined
-
- spacing: nativeIndicator ? 0 : 6
- padding: nativeIndicator ? 0 : 6
-
- indicator: NativeStyle.RadioButton {
- control: control
- contentWidth: contentItem.implicitWidth
- contentHeight: contentItem.implicitHeight
- useNinePatchImage: false
-// Component.onCompleted: {
-// var f = indicator.font(control)
-// control.font.pixelSize = f.pixelSize
-// print(f)
-// }
- }
-
- contentItem: CheckLabel {
- text: control.text
- font: control.font
- color: control.palette.windowText
-
- // For some reason, the other styles set padding here (in the delegate), instead of in
- // the control above. And they also adjust the indicator position by setting x and y
- // explicitly (instead of using insets). So we follow the same pattern to ensure that
- // setting a custom contentItem delegate from the app will end up looking the same for
- // all styles. But this should probably be fixed for all styles (to make them work the
- // same way as e.g Buttons).
- leftPadding: {
- if (nativeIndicator)
- indicator.contentPadding.left
- else
- indicator && !mirrored ? indicator.width + spacing : 0
- }
-
- rightPadding: {
- if (nativeIndicator)
- indicator.contentPadding.right
- else
- indicator && mirrored ? indicator.width + spacing : 0
- }
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultScrollBar.qml b/src/quicknativestyle/controls/DefaultScrollBar.qml
deleted file mode 100644
index b7b78732..00000000
--- a/src/quicknativestyle/controls/DefaultScrollBar.qml
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.ScrollBar {
- id: control
-
- readonly property bool __nativeContentItem: contentItem instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
-
- font.pixelSize: __nativeContentItem ? contentItem.styleFont(control).pixelSize : undefined
-
- visible: policy === T.ScrollBar.AlwaysOn || (policy === T.ScrollBar.AsNeeded && size < 1.0)
- minimumSize: !__nativeContentItem ? 10 : orientation === Qt.Vertical ?
- contentItem.minimumSize.height / height : contentItem.minimumSize.width / width
-
- background: NativeStyle.ScrollBar {
- control: control
- subControl: NativeStyle.ScrollBar.Groove
- }
-
- contentItem: NativeStyle.ScrollBar {
- control: control
- subControl: NativeStyle.ScrollBar.Handle
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultSlider.qml b/src/quicknativestyle/controls/DefaultSlider.qml
deleted file mode 100644
index ebc1c265..00000000
--- a/src/quicknativestyle/controls/DefaultSlider.qml
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.Slider {
- id: control
-
- readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitHandleWidth + leftPadding + rightPadding,
- control.horizontal ? 90 : 0 /* minimum */ )
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitHandleHeight + topPadding + bottomPadding,
- control.vertical ? 90 : 0 /* minimum */ )
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- background: NativeStyle.Slider {
- control: control
- subControl: NativeStyle.Slider.Groove
- // We normally cannot use a nine patch image for the
- // groove if we draw tickmarks (since then the scaling
- // would scale the tickmarks too). The groove might
- // also use a different background color before, and
- // after, the handle.
- useNinePatchImage: false
- }
-
- handle: NativeStyle.Slider {
- control: control
- subControl: NativeStyle.Slider.Handle
- x: control.leftPadding + (control.horizontal ? control.visualPosition * (control.availableWidth - width) : (control.availableWidth - width) / 2)
- y: control.topPadding + (control.horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height))
- useNinePatchImage: false
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultSpinBox.qml b/src/quicknativestyle/controls/DefaultSpinBox.qml
deleted file mode 100644
index 869ff411..00000000
--- a/src/quicknativestyle/controls/DefaultSpinBox.qml
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.SpinBox {
- id: control
-
- readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(implicitBackgroundWidth + spacing + up.implicitIndicatorWidth
- + leftInset + rightInset,
- 90 /* minimum */ )
- implicitHeight: Math.max(implicitBackgroundHeight, up.implicitIndicatorHeight + down.implicitIndicatorHeight
- + (spacing * 3)) + topInset + bottomInset
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- spacing: 2
-
- leftPadding: (__nativeBackground ? background.contentPadding.left: 0)
- topPadding: (__nativeBackground ? background.contentPadding.top: 0)
- rightPadding: (__nativeBackground ? background.contentPadding.right : 0) + up.implicitIndicatorWidth + spacing
- bottomPadding: (__nativeBackground ? background.contentPadding.bottom: 0) + spacing
-
- validator: IntValidator {
- locale: control.locale.name
- bottom: Math.min(control.from, control.to)
- top: Math.max(control.from, control.to)
- }
-
- contentItem: TextInput {
- text: control.displayText
- font: font.font
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- horizontalAlignment: Qt.AlignLeft
- verticalAlignment: Qt.AlignVCenter
-
- topPadding: 2
- bottomPadding: 2
- leftPadding: 10
- rightPadding: 10
-
- readOnly: !control.editable
- validator: control.validator
- inputMethodHints: control.inputMethodHints
- }
-
- up.indicator: NativeStyle.SpinBox {
- control: control
- subControl: NativeStyle.SpinBox.Up
- x: parent.width - width - spacing
- y: (parent.height / 2) - height
- useNinePatchImage: false
- }
-
- down.indicator: NativeStyle.SpinBox {
- control: control
- subControl: NativeStyle.SpinBox.Down
- x: up.indicator.x
- y: up.indicator.y + up.indicator.height
- useNinePatchImage: false
- }
-
- background: NativeStyle.SpinBox {
- control: control
- subControl: NativeStyle.SpinBox.Frame
- contentWidth: contentItem.implicitWidth
- contentHeight: contentItem.implicitHeight
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultTextArea.qml b/src/quicknativestyle/controls/DefaultTextArea.qml
deleted file mode 100644
index c634da7e..00000000
--- a/src/quicknativestyle/controls/DefaultTextArea.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.TextArea {
- id: control
-
- implicitWidth: Math.max(contentWidth + leftPadding + rightPadding,
- implicitBackgroundWidth + leftInset + rightInset,
- placeholder.implicitWidth + leftPadding + rightPadding)
- implicitHeight: Math.max(contentHeight + topPadding + bottomPadding,
- implicitBackgroundHeight + topInset + bottomInset,
- placeholder.implicitHeight + topPadding + bottomPadding)
-
- leftPadding: 7
- rightPadding: 7
- topPadding: 3
- bottomPadding: 3
-
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- placeholderTextColor: control.palette.placeholderText
- verticalAlignment: TextInput.AlignTop
-
- PlaceholderText {
- id: placeholder
- height: control.height
- topPadding: control.topPadding
- bottomPadding: control.bottomPadding
- leftPadding: control.leftPadding
- rightPadding: control.rightPadding
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- verticalAlignment: control.verticalAlignment
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- elide: Text.ElideRight
- renderType: control.renderType
- }
-
- background: Rectangle {
- color: control.palette.light
- }
-}
diff --git a/src/quicknativestyle/controls/DefaultTextField.qml b/src/quicknativestyle/controls/DefaultTextField.qml
deleted file mode 100644
index 8f8c8e4d..00000000
--- a/src/quicknativestyle/controls/DefaultTextField.qml
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Controls.impl
-import QtQuick.Templates as T
-import QtQuick.NativeStyle as NativeStyle
-
-T.TextField {
- id: control
-
- readonly property bool __nativeBackground: background instanceof NativeStyle.StyleItem
-
- implicitWidth: Math.max(Math.max(contentWidth, placeholder.implicitWidth) + leftPadding + rightPadding,
- implicitBackgroundWidth + leftInset + rightInset,
- 90 /* minimum */ )
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- contentHeight + topPadding + bottomPadding,
- placeholder.implicitHeight + topPadding + bottomPadding)
-
- font.pixelSize: __nativeBackground ? background.styleFont(control).pixelSize : undefined
-
- leftPadding: __nativeBackground ? background.contentPadding.left: 7
- rightPadding: __nativeBackground ? background.contentPadding.right: 7
- topPadding: __nativeBackground ? background.contentPadding.top: 3
- bottomPadding: __nativeBackground ? background.contentPadding.bottom: 3
-
- color: control.palette.text
- selectionColor: control.palette.highlight
- selectedTextColor: control.palette.highlightedText
- placeholderTextColor: control.palette.placeholderText
- verticalAlignment: TextInput.AlignTop
-
- PlaceholderText {
- id: placeholder
- height: control.height
- topPadding: control.topPadding
- bottomPadding: control.bottomPadding
- leftPadding: control.leftPadding
- rightPadding: control.rightPadding
- text: control.placeholderText
- font: control.font
- color: control.placeholderTextColor
- verticalAlignment: control.verticalAlignment
- visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
- elide: Text.ElideRight
- renderType: control.renderType
- }
-
- background: NativeStyle.TextField {
- control: control
- contentWidth: Math.max(control.contentWidth, placeholder.implicitWidth)
- contentHeight: control.contentHeight
- }
-}
diff --git a/src/quicknativestyle/controls/controls.pri b/src/quicknativestyle/controls/controls.pri
deleted file mode 100644
index 8675989e..00000000
--- a/src/quicknativestyle/controls/controls.pri
+++ /dev/null
@@ -1,14 +0,0 @@
-QML_FILES += \
- $$PWD/DefaultButton.qml \
- $$PWD/DefaultSlider.qml \
- $$PWD/DefaultGroupBox.qml \
- $$PWD/DefaultCheckBox.qml \
- $$PWD/DefaultRadioButton.qml \
- $$PWD/DefaultSpinBox.qml \
- $$PWD/DefaultTextField.qml \
- $$PWD/DefaultFrame.qml \
- $$PWD/DefaultTextArea.qml \
- $$PWD/DefaultComboBox.qml \
- $$PWD/DefaultScrollBar.qml \
- $$PWD/DefaultProgressBar.qml \
- $$PWD/DefaultDial.qml \
diff --git a/src/quicknativestyle/items/items.pri b/src/quicknativestyle/items/items.pri
deleted file mode 100644
index 5b6d9251..00000000
--- a/src/quicknativestyle/items/items.pri
+++ /dev/null
@@ -1,36 +0,0 @@
-INCLUDEPATH += $$PWD
-
-HEADERS += \
- $$PWD/qquickstyleitem.h \
- $$PWD/qquickstyleitembutton.h \
- $$PWD/qquickstyleitemgroupbox.h \
- $$PWD/qquickstyleitemcheckbox.h \
- $$PWD/qquickstyleitemradiobutton.h \
- $$PWD/qquickstyleitemslider.h \
- $$PWD/qquickstyleitemspinbox.h \
- $$PWD/qquickstyleitemtextfield.h \
- $$PWD/qquickstyleitemframe.h \
- $$PWD/qquickstyleitemcombobox.h \
- $$PWD/qquickstyleitemscrollbar.h \
- $$PWD/qquickstyleitemprogressbar.h \
- $$PWD/qquickstyleitemdial.h \
-
-SOURCES += \
- $$PWD/qquickstyleitem.cpp \
- $$PWD/qquickstyleitembutton.cpp \
- $$PWD/qquickstyleitemgroupbox.cpp \
- $$PWD/qquickstyleitemcheckbox.cpp \
- $$PWD/qquickstyleitemradiobutton.cpp \
- $$PWD/qquickstyleitemslider.cpp \
- $$PWD/qquickstyleitemspinbox.cpp \
- $$PWD/qquickstyleitemtextfield.cpp \
- $$PWD/qquickstyleitemframe.cpp \
- $$PWD/qquickstyleitemcombobox.cpp \
- $$PWD/qquickstyleitemscrollbar.cpp \
- $$PWD/qquickstyleitemprogressbar.cpp \
- $$PWD/qquickstyleitemdial.cpp \
-
-macos {
- HEADERS += $$PWD/qquickstyleitemscrollviewcorner.h
- SOURCES += $$PWD/qquickstyleitemscrollviewcorner.cpp
-}
diff --git a/src/quicknativestyle/items/qquickstyleitem.cpp b/src/quicknativestyle/items/qquickstyleitem.cpp
deleted file mode 100644
index ec041d01..00000000
--- a/src/quicknativestyle/items/qquickstyleitem.cpp
+++ /dev/null
@@ -1,563 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitem.h"
-
-#include <QtCore/qscopedvaluerollback.h>
-#include <QtCore/qdir.h>
-
-#include <QtQuick/qsgninepatchnode.h>
-#include <QtQuick/private/qquickwindow_p.h>
-#include <QtQuick/qquickwindow.h>
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQuickTemplates2/private/qquickbutton_p.h>
-
-#include <QtQml/qqml.h>
-
-#include "qquickstyleitembutton.h"
-#include "qquickstylehelper_p.h"
-
-QT_BEGIN_NAMESPACE
-
-QDebug operator<<(QDebug debug, const QQuickStyleMargins &padding)
-{
- QDebugStateSaver saver(debug);
- debug.nospace();
- debug << "StyleMargins(";
- debug << padding.left() << ", ";
- debug << padding.top() << ", ";
- debug << padding.right() << ", ";
- debug << padding.bottom();
- debug << ')';
- return debug;
-}
-
-QDebug operator<<(QDebug debug, const StyleItemGeometry &cg)
-{
- QDebugStateSaver saver(debug);
- debug.nospace();
- debug << "StyleItemGeometry(";
- debug << "implicitSize:" << cg.implicitSize << ", ";
- debug << "contentRect:" << cg.contentRect << ", ";
- debug << "layoutRect:" << cg.layoutRect << ", ";
- debug << "minimumSize:" << cg.minimumSize << ", ";
- debug << "9patchMargins:" << cg.ninePatchMargins;
- debug << ')';
- return debug;
-}
-
-int QQuickStyleItem::dprAlignedSize(const int size) const
-{
- // Return the first value equal to or bigger than size
- // that is a whole number when multiplied with the dpr.
- static int multiplier = [&]() {
- const qreal dpr = window()->devicePixelRatio();
- for (int m = 1; m <= 10; ++m) {
- const qreal v = m * dpr;
- if (v == int(v))
- return m;
- }
-
- qWarning() << "The current dpr (" << dpr << ") is not supported"
- << "by the style and might result in drawing artifacts";
- return 1;
- }();
-
- return int(qCeil(qreal(size) / qreal(multiplier)) * multiplier);
-}
-
-QQuickStyleItem::QQuickStyleItem(QQuickItem *parent)
- : QQuickItem(parent)
-{
- setFlag(QQuickItem::ItemHasContents);
-}
-
-QQuickStyleItem::~QQuickStyleItem()
-{
-}
-
-void QQuickStyleItem::connectToControl() const
-{
- connect(m_control, &QQuickStyleItem::enabledChanged, this, &QQuickStyleItem::markImageDirty);
- connect(m_control, &QQuickItem::activeFocusChanged, this, &QQuickStyleItem::markImageDirty);
-
- if (QQuickWindow *win = window()) {
- connect(win, &QQuickWindow::activeChanged, this, &QQuickStyleItem::markImageDirty);
- m_connectedWindow = win;
- }
-}
-
-void QQuickStyleItem::markImageDirty()
-{
- m_dirty.setFlag(DirtyFlag::Image);
- if (isComponentComplete())
- polish();
-}
-
-void QQuickStyleItem::markGeometryDirty()
-{
- m_dirty.setFlag(DirtyFlag::Geometry);
- if (isComponentComplete())
- polish();
-}
-
-QSGNode *QQuickStyleItem::updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *)
-{
- QSGNinePatchNode *node = static_cast<QSGNinePatchNode *>(oldNode);
- if (!node)
- node = window()->createNinePatchNode();
- if (m_paintedImage.isNull())
- return node;
-
- const auto texture = window()->createTextureFromImage(m_paintedImage, QQuickWindow::TextureCanUseAtlas);
-
- QRectF bounds = boundingRect();
- const qreal dpr = window()->devicePixelRatio();
- const QSizeF unscaledImageSize = QSizeF(m_paintedImage.size()) / dpr;
-
- // We can scale the image up with a nine patch node, but should
- // avoid to scale it down. Otherwise the nine patch image will look
- // wrapped (or look truncated, in case of no padding). So if the
- // item is smaller that the image, don't scale.
- if (bounds.width() < unscaledImageSize.width())
- bounds.setWidth(unscaledImageSize.width());
- if (bounds.height() < unscaledImageSize.height())
- bounds.setHeight(unscaledImageSize.height());
-
-#ifdef QT_DEBUG
- if (m_debugFlags.testFlag(Unscaled)) {
- bounds.setSize(unscaledImageSize);
- qqc2Info() << "Setting qsg node size to the unscaled size of m_paintedImage:" << bounds;
- }
-#endif
-
- if (m_useNinePatchImage) {
- QMargins padding = m_styleItemGeometry.ninePatchMargins;
- if (padding.right() == -1) {
- // Special case: a padding of -1 means that
- // the image shouldn't scale in the given direction.
- padding.setLeft(0);
- padding.setRight(0);
- }
- if (padding.bottom() == -1) {
- padding.setTop(0);
- padding.setBottom(0);
- }
- node->setPadding(padding.left(), padding.top(), padding.right(), padding.bottom());
- }
-
- node->setBounds(bounds);
- node->setTexture(texture);
- node->setDevicePixelRatio(dpr);
- node->update();
-
- return node;
-}
-
-QStyle::State QQuickStyleItem::controlSize(QQuickItem *item)
-{
- // TODO: add proper API for small and mini
- if (item->metaObject()->indexOfProperty("qqc2_style_small") != -1)
- return QStyle::State_Small;
- if (item->metaObject()->indexOfProperty("qqc2_style_mini") != -1)
- return QStyle::State_Mini;
- return QStyle::State_None;
-}
-
-void QQuickStyleItem::initStyleOptionBase(QStyleOption &styleOption) const
-{
- Q_ASSERT(m_control);
-
- styleOption.control = const_cast<QQuickItem *>(control<QQuickItem>());
- styleOption.window = window();
- styleOption.palette = QQuickItemPrivate::get(m_control)->palette()->toQPalette();
- styleOption.rect = QRect(QPoint(0, 0), imageSize());
-
- styleOption.state = QStyle::State_None;
- styleOption.state |= controlSize(styleOption.control);
-
- // Note: not all controls inherit from QQuickControl (e.g QQuickTextField)
- if (const auto quickControl = dynamic_cast<QQuickControl *>(m_control.data()))
- styleOption.direction = quickControl->isMirrored() ? Qt::RightToLeft : Qt::LeftToRight;
-
- if (window()) {
- if (styleOption.window->isActive())
- styleOption.state |= QStyle::State_Active;
- if (m_control->isEnabled())
- styleOption.state |= QStyle::State_Enabled;
- if (m_control->hasActiveFocus())
- styleOption.state |= QStyle::State_HasFocus;
- if (m_control->isUnderMouse())
- styleOption.state |= QStyle::State_MouseOver;
- // Should this depend on the focusReason (e.g. only TabFocus) ?
- styleOption.state |= QStyle::State_KeyboardFocusChange;
- }
-
- if (m_overrideState != None) {
- // In Button.qml we fade between two versions of
- // the handle, depending on if it's hovered or not
- if (m_overrideState & AlwaysHovered)
- styleOption.state |= QStyle::State_MouseOver;
- else if (m_overrideState & NeverHovered)
- styleOption.state &= ~QStyle::State_MouseOver;
- }
-
- qqc2Info() << styleOption;
-}
-
-void QQuickStyleItem::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- QQuickItem::geometryChange(newGeometry, oldGeometry);
-
- // Ensure that we only schedule a new geometry update
- // and polish if this geometry change was caused by
- // something else than us already updating geometry.
- if (!m_polishing)
- markGeometryDirty();
-}
-
-void QQuickStyleItem::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- QQuickItem::itemChange(change, data);
-
- switch (change) {
- case QQuickItem::ItemVisibleHasChanged:
- if (data.boolValue)
- markImageDirty();
- break;
- case QQuickItem::ItemSceneChange: {
- markImageDirty();
- QQuickWindow *win = data.window;
- if (m_connectedWindow)
- disconnect(m_connectedWindow, &QQuickWindow::activeChanged, this, &QQuickStyleItem::markImageDirty);
- if (win)
- connect(win, &QQuickWindow::activeChanged, this, &QQuickStyleItem::markImageDirty);
- m_connectedWindow = win;
- break;}
- default:
- break;
- }
-}
-
-void QQuickStyleItem::updateGeometry()
-{
- qqc2InfoHeading("GEOMETRY");
- m_dirty.setFlag(DirtyFlag::Geometry, false);
-
- const QQuickStyleMargins oldContentPadding = contentPadding();
- const QQuickStyleMargins oldLayoutMargins = layoutMargins();
- const QSize oldMinimumSize = minimumSize();
-
- m_styleItemGeometry = calculateGeometry();
-
-#ifdef QT_DEBUG
- if (m_styleItemGeometry.minimumSize.isEmpty())
- qmlWarning(this) << "minimumSize is empty!";
-#endif
-
- if (m_styleItemGeometry.implicitSize.isEmpty()) {
- // If the item has no contents (or its size is
- // empty), we just use the minimum size as implicit size.
- m_styleItemGeometry.implicitSize = m_styleItemGeometry.minimumSize;
- qqc2Info() << "implicitSize is empty, using minimumSize instead";
- }
-
- if (contentPadding() != oldContentPadding)
- emit contentPaddingChanged();
- if (layoutMargins() != oldLayoutMargins)
- emit layoutMarginsChanged();
- if (minimumSize() != oldMinimumSize)
- emit minimumSizeChanged();
-
- setImplicitSize(m_styleItemGeometry.implicitSize.width(), m_styleItemGeometry.implicitSize.height());
-
- qqc2Info() << m_styleItemGeometry
- << "bounding rect:" << boundingRect()
- << "layout margins:" << layoutMargins()
- << "content padding:" << contentPadding()
- << "input content size:" << m_contentSize;
-}
-
-void QQuickStyleItem::paintControlToImage()
-{
- qqc2InfoHeading("PAINT");
- const QSize imgSize = imageSize();
- if (imgSize.isEmpty())
- return;
-
- m_dirty.setFlag(DirtyFlag::Image, false);
-
- // The size of m_paintedImage should normally be imgSize * dpr. The problem is
- // that the dpr can be e.g 1.25, which means that the size can end up having a
- // fraction. But an image cannot have a size with a fraction, so it would need
- // to be rounded. But on the flip side, rounding the size means that the size
- // of the scene graph node (which is, when the texture is not scaled,
- // m_paintedImage.size() / dpr), will end up with a fraction instead. And this
- // causes rendering artifacts in the scene graph when the texture is mapped
- // to physical screen coordinates. So for that reason we calculate an image size
- // that might be slightly larger than imgSize, so that imgSize * dpr lands on a
- // whole number. The result is that neither the image size, nor the scene graph
- // node, ends up with a size that has a fraction.
- const qreal dpr = window()->devicePixelRatio();
- const int alignedW = int(dprAlignedSize(imgSize.width()) * dpr);
- const int alignedH = int(dprAlignedSize(imgSize.height()) * dpr);
- const QSize alignedSize = QSize(alignedW, alignedH);
-
- if (m_paintedImage.size() != alignedSize) {
- m_paintedImage = QImage(alignedSize, QImage::Format_ARGB32_Premultiplied);
- m_paintedImage.setDevicePixelRatio(dpr);
- qqc2Info() << "created image with dpr aligned size:" << alignedSize;
- }
-
- m_paintedImage.fill(Qt::transparent);
-
- QPainter painter(&m_paintedImage);
- paintEvent(&painter);
-
-#ifdef QT_DEBUG
- if (m_debugFlags != NoDebug) {
- painter.setPen(QColor(255, 0, 0, 255));
- if (m_debugFlags.testFlag(ImageRect))
- painter.drawRect(QRect(QPoint(0, 0), alignedSize / dpr));
- if (m_debugFlags.testFlag(LayoutRect)) {
- const auto m = layoutMargins();
- QRect rect = QRect(QPoint(0, 0), imgSize);
- rect.adjust(m.left(), m.top(), -m.right(), -m.bottom());
- painter.drawRect(rect);
- }
- if (m_debugFlags.testFlag(ContentRect)) {
- const auto p = contentPadding();
- QRect rect = QRect(QPoint(0, 0), imgSize);
- rect.adjust(p.left(), p.top(), -p.right(), -p.bottom());
- painter.drawRect(rect);
- }
- if (m_debugFlags.testFlag(InputContentSize)) {
- const int offset = 2;
- const QPoint p = m_styleItemGeometry.contentRect.topLeft();
- painter.drawLine(p.x() - offset, p.y() - offset, p.x() + m_contentSize.width(), p.y() - offset);
- painter.drawLine(p.x() - offset, p.y() - offset, p.x() - offset, p.y() + m_contentSize.height());
- }
- if (m_debugFlags.testFlag(NinePatchMargins)) {
- const QMargins m = m_styleItemGeometry.ninePatchMargins;
- if (m.right() != -1) {
- painter.drawLine(m.left(), 0, m.left(), imgSize.height());
- painter.drawLine(imgSize.width() - m.right(), 0, imgSize.width() - m.right(), imgSize.height());
- }
- if (m.bottom() != -1) {
- painter.drawLine(0, m.top(), imgSize.width(), m.top());
- painter.drawLine(0, imgSize.height() - m.bottom(), imgSize.width(), imgSize.height() - m.bottom());
- }
- }
- if (m_debugFlags.testFlag(SaveImage)) {
- static int nr = -1;
- ++nr;
- static QString filename = QStringLiteral("styleitem_saveimage_");
- const QString path = QDir::current().absoluteFilePath(filename);
- const QString name = path + QString::number(nr) + QStringLiteral(".png");
- m_paintedImage.save(name);
- qDebug() << "image saved to:" << name;
- }
- }
-#endif
-
- update();
-}
-
-void QQuickStyleItem::updatePolish()
-{
- QScopedValueRollback<bool> guard(m_polishing, true);
-
- const bool dirtyGeometry = m_dirty & DirtyFlag::Geometry;
- const bool dirtyImage = isVisible() && ((m_dirty & DirtyFlag::Image) || (!m_useNinePatchImage && dirtyGeometry));
-
- if (dirtyGeometry)
- updateGeometry();
- if (dirtyImage)
- paintControlToImage();
-}
-
-#ifdef QT_DEBUG
-void QQuickStyleItem::addDebugInfo()
-{
- // Example debug strings:
- // "QQC2_NATIVESTYLE_DEBUG="myButton output contentRect"
- // "QQC2_NATIVESTYLE_DEBUG="ComboBox ninepatchmargins"
- // "QQC2_NATIVESTYLE_DEBUG="All layoutrect"
-
- static const auto debugString = qEnvironmentVariable("QQC2_NATIVESTYLE_DEBUG");
- static const auto matchAll = debugString.startsWith(QLatin1String("All "));
- static const auto prefix = QStringLiteral("QQuickStyleItem");
- if (debugString.isEmpty())
- return;
-
- const auto objectName = m_control->objectName();
- const auto typeName = QString::fromUtf8(metaObject()->className()).remove(prefix);
- const bool matchName = !objectName.isEmpty() && debugString.startsWith(objectName);
- const bool matchType = debugString.startsWith(typeName);
-
- if (!(matchAll || matchName || matchType))
- return;
-
-#define QQC2_DEBUG_FLAG(FLAG) \
- if (debugString.contains(QLatin1String(#FLAG), Qt::CaseInsensitive)) m_debugFlags |= FLAG
-
- QQC2_DEBUG_FLAG(Info);
- QQC2_DEBUG_FLAG(ImageRect);
- QQC2_DEBUG_FLAG(ContentRect);
- QQC2_DEBUG_FLAG(LayoutRect);
- QQC2_DEBUG_FLAG(InputContentSize);
- QQC2_DEBUG_FLAG(DontUseNinePatchImage);
- QQC2_DEBUG_FLAG(NinePatchMargins);
- QQC2_DEBUG_FLAG(Unscaled);
- QQC2_DEBUG_FLAG(Debug);
- QQC2_DEBUG_FLAG(SaveImage);
-
- if (m_debugFlags & (DontUseNinePatchImage
- | InputContentSize
- | ContentRect
- | LayoutRect
- | NinePatchMargins)) {
- // Some rects will not fit inside the drawn image unless
- // we switch off (nine patch) image scaling.
- m_debugFlags |= DontUseNinePatchImage;
- m_useNinePatchImage = false;
- }
-
- if (m_debugFlags != NoDebug)
- qDebug() << "debug options set for" << typeName << "(" << objectName << "):" << m_debugFlags;
- else
- qDebug() << "available debug options:" << DebugFlags(0xFFFF);
-}
-#endif
-
-void QQuickStyleItem::componentComplete()
-{
- Q_ASSERT_X(m_control, Q_FUNC_INFO, "You need to assign a value to property 'control'");
-#ifdef QT_DEBUG
- addDebugInfo();
-#endif
- QQuickItem::componentComplete();
- connectToControl();
- polish();
-}
-
-qreal QQuickStyleItem::contentWidth()
-{
- return m_contentSize.width();
-}
-
-void QQuickStyleItem::setContentWidth(qreal contentWidth)
-{
- if (qFuzzyCompare(m_contentSize.width(), contentWidth))
- return;
-
- m_contentSize.setWidth(contentWidth);
- markGeometryDirty();
-}
-
-qreal QQuickStyleItem::contentHeight()
-{
- return m_contentSize.height();
-}
-
-void QQuickStyleItem::setContentHeight(qreal contentHeight)
-{
- if (qFuzzyCompare(m_contentSize.height(), contentHeight))
- return;
-
- m_contentSize.setHeight(contentHeight);
- markGeometryDirty();
-}
-
-QQuickStyleMargins QQuickStyleItem::contentPadding() const
-{
- const QRect outerRect(QPoint(0, 0), m_styleItemGeometry.implicitSize);
- return QQuickStyleMargins(outerRect, m_styleItemGeometry.contentRect);
-}
-
-QQuickStyleMargins QQuickStyleItem::layoutMargins() const
-{
- // ### TODO: layoutRect is currently not being used for anything. But
- // eventually this information will be needed by layouts to align the controls
- // correctly. This because the images drawn by QStyle are usually a bit bigger
- // than the control(frame) itself, to e.g make room for shadow effects
- // or focus rects/glow. And this will differ from control to control. The
- // layoutRect will then inform where the frame of the control is.
- QQuickStyleMargins margins;
- if (m_styleItemGeometry.layoutRect.isValid()) {
- const QRect outerRect(QPoint(0, 0), m_styleItemGeometry.implicitSize);
- margins = QQuickStyleMargins(outerRect, m_styleItemGeometry.layoutRect);
- }
- return margins;
-}
-
-QSize QQuickStyleItem::minimumSize() const
-{
- // The style item should not be scaled below this size.
- // Otherwise the image will be truncated.
- return m_styleItemGeometry.minimumSize;
-}
-
-QSize QQuickStyleItem::imageSize() const
-{
- // Returns the size of the QImage (unscaled) that
- // is used to draw the control from QStyle.
- return m_useNinePatchImage ? m_styleItemGeometry.minimumSize : size().toSize();
-}
-
-qreal QQuickStyleItem::focusFrameRadius() const
-{
- return m_styleItemGeometry.focusFrameRadius;
-}
-
-QFont QQuickStyleItem::styleFont(QQuickItem *control) const
-{
- Q_ASSERT(control);
- // Note: This function should be treated as if it was static
- // (meaning, don't assume anything in this object to be initialized).
- // Resolving the font/font size should be done early on from QML, before we get
- // around to calculate geometry and paint. Otherwise we typically need to do it
- // all over again when/if the font changes. In practice this means that other
- // items in QML that uses a style font, and at the same time, affects our input
- // contentSize, cannot wait for this item to be fully constructed before it
- // gets the font. So we need to resolve it here and now, even if this
- // object might be in a half initialized state (hence also the control
- // argument, instead of relying on m_control to be set).
- return QGuiApplication::font();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicknativestyle/items/qquickstyleitem.h b/src/quicknativestyle/items/qquickstyleitem.h
deleted file mode 100644
index 3b87faf6..00000000
--- a/src/quicknativestyle/items/qquickstyleitem.h
+++ /dev/null
@@ -1,311 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEM_H
-#define QQUICKSTYLEITEM_H
-
-#include <QtCore/qdebug.h>
-#include <QtQml/qqml.h>
-#include <QtQml/qqmlinfo.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-#include "qquicknativestyle.h"
-#include "qquickstyle.h"
-#include "qquickstyleoption.h"
-
-// Work-around for now, to avoid creator getting confused
-// about missing macros. Should eventually be defined
-// in qt declarative somewhere I assume.
-#ifndef QML_NAMED_ELEMENT
-#define QML_NAMED_ELEMENT(NAME)
-#define QML_UNCREATABLE(NAME)
-#endif
-
-#ifdef QT_DEBUG
-#define qqc2Debug() if (m_debugFlags.testFlag(Debug)) qDebug() << __FUNCTION__ << ":"
-#define qqc2Info() if (m_debugFlags.testFlag(Info)) qDebug() << __FUNCTION__ << ":"
-#define qqc2InfoHeading(HEADING) if (m_debugFlags.testFlag(Info)) qDebug() << "--------" << HEADING << "--------"
-#else
-#define qqc2Debug() if (false) qDebug()
-#define qqc2Info() if (false) qDebug()
-#define qqc2InfoHeading(HEADING) if (false) qDebug()
-#endif
-
-QT_BEGIN_NAMESPACE
-
-using namespace QQC2;
-
-class QQuickStyleMargins
-{
- Q_GADGET
-
- Q_PROPERTY(int left READ left())
- Q_PROPERTY(int top READ top())
- Q_PROPERTY(int right READ right())
- Q_PROPERTY(int bottom READ bottom())
-
- QML_NAMED_ELEMENT(stylemargins)
- QML_UNCREATABLE("")
-
-public:
- QQuickStyleMargins() {}
- QQuickStyleMargins(const QQuickStyleMargins &other) : m_margins(other.m_margins) {}
- QQuickStyleMargins(const QMargins &margins) : m_margins(margins) {}
- QQuickStyleMargins(const QRect &outer, const QRect &inner)
- {
- const int left = inner.left() - outer.left();
- const int top = inner.top() - outer.top();
- const int right = outer.right() - inner.right();
- const int bottom = outer.bottom() - inner.bottom();
- m_margins = QMargins(left, top, right, bottom);
- }
-
- inline void operator=(const QQuickStyleMargins &other) { m_margins = other.m_margins; }
- inline bool operator==(const QQuickStyleMargins &other) const { return other.m_margins == m_margins; }
- inline bool operator!=(const QQuickStyleMargins &other) const { return other.m_margins != m_margins; }
-
- inline int left() const { return m_margins.left(); }
- inline int right() const { return m_margins.right(); }
- inline int top() const { return m_margins.top(); }
- inline int bottom() const { return m_margins.bottom(); }
-
- QMargins m_margins;
-};
-
-QDebug operator<<(QDebug debug, const QQuickStyleMargins &padding);
-
-struct StyleItemGeometry
-{
- /*
- A QQuickStyleItem is responsible for drawing a control, or a part of it.
-
- 'minimumSize' should be the minimum possible size that the item can
- have _without_ taking content size into consideration (and still render
- correctly). This will also be the size of the image that the item is drawn
- to, unless QQuickStyleItem::useNinePatchImage is set to false. In that
- case, the size of the image will be set to the size of the item instead
- (which is set from QML, and will typically be the same as the size of the control).
- The default way to calculate minimumSize is to call style()->sizeFromContents()
- with an empty content size. This is not always well supported by the legacy QStyle
- implementation, which means that you might e.g get an empty size in return.
- For those cases, the correct solution is to go into the specific platform style
- and change it so that it returns a valid size also for this special case.
-
- 'implicitSize' should reflect the preferred size of the item, taking the
- given content size (as set from QML) into account. But not all controls
- have contents (slider), and for many controls, the content/label is instead
- placed outside the item/background image (radiobutton). In both cases, the
- size of the item will not include the content size, and implicitSize can
- usually be set equal to minimumSize instead.
-
- 'contentRect' should be the free space where the contents can be placed. Note that
- this rect doesn't need to have the same size as the contentSize provided as input
- to the style item. Instead, QStyle can typically calculate a rect that is bigger, to
- e.g center the contents inside the control.
-
- 'layoutRect' can be set to shift the position of the whole control so
- that aligns correctly with the other controls. This is important for
- controls that draws e.g shadows or focus rings. Such adornments should
- be painted, but not be included when aligning the controls.
- */
-
- QSize minimumSize;
- QSize implicitSize;
- QRect contentRect;
- QRect layoutRect; // If invalid, there are no layout margins!
- QMargins ninePatchMargins;
- qreal focusFrameRadius;
-};
-
-QDebug operator<<(QDebug debug, const StyleItemGeometry &cg);
-
-class QQuickStyleItem : public QQuickItem
-{
- Q_OBJECT
-
- // Input
- Q_PROPERTY(QQuickItem *control MEMBER m_control NOTIFY controlChanged)
- Q_PROPERTY(qreal contentWidth READ contentWidth WRITE setContentWidth)
- Q_PROPERTY(qreal contentHeight READ contentHeight WRITE setContentHeight)
- Q_PROPERTY(bool useNinePatchImage MEMBER m_useNinePatchImage)
- Q_PROPERTY(OverrideState overrideState MEMBER m_overrideState)
-
- // Output
- Q_PROPERTY(QQuickStyleMargins contentPadding READ contentPadding() NOTIFY contentPaddingChanged)
- Q_PROPERTY(QQuickStyleMargins layoutMargins READ layoutMargins() NOTIFY layoutMarginsChanged)
- Q_PROPERTY(QSize minimumSize READ minimumSize() NOTIFY minimumSizeChanged)
- Q_PROPERTY(int transitionDuration MEMBER m_transitionDuration CONSTANT)
-
- QML_NAMED_ELEMENT(StyleItem)
- QML_UNCREATABLE("StyleItem is an abstract base class.")
-
-public:
- enum DirtyFlag {
- Nothing = 0,
- Geometry,
- Image,
- Everything = 255
- };
- Q_DECLARE_FLAGS(DirtyFlags, DirtyFlag)
-
- enum OverrideState {
- None = 0,
- AlwaysHovered,
- NeverHovered,
- AlwaysSunken
- };
- Q_ENUM(OverrideState)
-
-
-#ifdef QT_DEBUG
- enum DebugFlag {
- NoDebug = 0x000,
- Debug = 0x001,
- Info = 0x002,
- ImageRect = 0x004,
- ContentRect = 0x008,
- LayoutRect = 0x010,
- Unscaled = 0x020,
- InputContentSize = 0x040,
- DontUseNinePatchImage = 0x080,
- NinePatchMargins = 0x100,
- SaveImage = 0x200,
- };
- Q_FLAG(DebugFlag)
- Q_DECLARE_FLAGS(DebugFlags, DebugFlag)
-#endif
-
- explicit QQuickStyleItem(QQuickItem *parent = nullptr);
- ~QQuickStyleItem() override;
-
- qreal contentWidth();
- void setContentWidth(qreal contentWidth);
- qreal contentHeight();
- void setContentHeight(qreal contentHeight);
-
- QQuickStyleMargins contentPadding() const;
- QQuickStyleMargins layoutMargins() const;
- QSize minimumSize() const;
- QSize imageSize() const;
- qreal focusFrameRadius() const;
-
- Q_INVOKABLE virtual QFont styleFont(QQuickItem *control) const;
-
- void markGeometryDirty();
- void markImageDirty();
-
-signals:
- void controlChanged();
- void contentPaddingChanged();
- void layoutMarginsChanged();
- void fontChanged();
- void minimumSizeChanged();
-
-protected:
- void componentComplete() override;
- QSGNode *updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *updatePaintNodeData) override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- void updatePolish() override;
-
- virtual void connectToControl() const;
- virtual void paintEvent(QPainter *painter) const = 0;
- virtual StyleItemGeometry calculateGeometry() = 0;
-
- static QStyle::State controlSize(QQuickItem *item);
- void initStyleOptionBase(QStyleOption &styleOption) const;
-
- inline QSize contentSize() const { return QSize(qCeil(m_contentSize.width()), qCeil(m_contentSize.height())); }
- inline static QStyle *style() { return QQuickNativeStyle::style(); }
-
- template <class T> inline const T* control() const {
-#ifdef QT_DEBUG
- if (!dynamic_cast<T *>(m_control.data())) {
- qmlWarning(this) << "control property is not of correct type";
- Q_UNREACHABLE();
- }
-#endif
- return static_cast<T *>(m_control.data());
- }
-
-#ifdef QT_DEBUG
- DebugFlags m_debugFlags = NoDebug;
-#endif
- OverrideState m_overrideState = None;
-
-private:
- inline void updateGeometry();
- inline void paintControlToImage();
-
- int dprAlignedSize(const int size) const;
-
-#ifdef QT_DEBUG
- void addDebugInfo();
-#endif
-
-private:
- QPointer<QQuickItem> m_control;
- QImage m_paintedImage;
- StyleItemGeometry m_styleItemGeometry;
- QSizeF m_contentSize;
-
- DirtyFlags m_dirty = Everything;
- bool m_useNinePatchImage = true;
- bool m_polishing = false;
- mutable QQuickWindow *m_connectedWindow = nullptr;
-
-#ifdef Q_OS_MACOS
- int m_transitionDuration = 150;
-#else
- int m_transitionDuration = 400;
-#endif
-
-private:
- friend class QtQuickControls2MacOSStylePlugin;
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QQuickStyleItem::DirtyFlags)
-
-#ifdef QT_DEBUG
-Q_DECLARE_OPERATORS_FOR_FLAGS(QQuickStyleItem::DebugFlags)
-#endif
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickStyleItem)
-
-#endif // QQUICKSTYLEITEM_H
diff --git a/src/quicknativestyle/items/qquickstyleitembutton.cpp b/src/quicknativestyle/items/qquickstyleitembutton.cpp
deleted file mode 100644
index 5dfe060f..00000000
--- a/src/quicknativestyle/items/qquickstyleitembutton.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitembutton.h"
-
-QFont QQuickStyleItemButton::styleFont(QQuickItem *control) const
-{
- return style()->font(QStyle::CE_PushButtonLabel, controlSize(control));
-}
-
-void QQuickStyleItemButton::connectToControl() const
-{
- QQuickStyleItem::connectToControl();
- auto button = control<QQuickButton>();
- connect(button, &QQuickButton::downChanged, this, &QQuickStyleItem::markImageDirty);
-}
-
-StyleItemGeometry QQuickStyleItemButton::calculateGeometry()
-{
- QStyleOptionButton styleOption;
- initStyleOption(styleOption);
- StyleItemGeometry geometry;
-
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_PushButton, &styleOption, QSize(0, 0));
- geometry.implicitSize = style()->sizeFromContents(QStyle::CT_PushButton, &styleOption, contentSize());
- styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
- geometry.contentRect = style()->subElementRect(QStyle::SE_PushButtonContents, &styleOption);
- geometry.layoutRect = style()->subElementRect(QStyle::SE_PushButtonLayoutItem, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CE_PushButtonBevel, &styleOption, geometry.minimumSize);
- geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_PushButtonFocusFrameRadius, &styleOption);
-
- return geometry;
-}
-
-void QQuickStyleItemButton::paintEvent(QPainter *painter) const
-{
- QStyleOptionButton styleOption;
- initStyleOption(styleOption);
- style()->drawControl(QStyle::CE_PushButtonBevel, &styleOption, painter);
-}
-
-void QQuickStyleItemButton::initStyleOption(QStyleOptionButton &styleOption) const
-{
- initStyleOptionBase(styleOption);
- auto button = control<QQuickButton>();
-
- if (button->isDown())
- styleOption.state |= QStyle::State_Sunken;
- if (!button->isFlat() && !button->isDown())
- styleOption.state |= QStyle::State_Raised;
- if (button->isHighlighted() || button->isChecked())
- styleOption.state |= QStyle::State_On;
- if (button->isFlat())
- styleOption.features |= QStyleOptionButton::Flat;
-}
diff --git a/src/quicknativestyle/items/qquickstyleitembutton.h b/src/quicknativestyle/items/qquickstyleitembutton.h
deleted file mode 100644
index 41ca0cf1..00000000
--- a/src/quicknativestyle/items/qquickstyleitembutton.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMBUTTON_H
-#define QQUICKSTYLEITEMBUTTON_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickbutton_p.h>
-
-class QQuickStyleItemButton : public QQuickStyleItem
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(Button)
-
-public:
- QFont styleFont(QQuickItem *control) const override;
-
-protected:
- void connectToControl() const override;
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionButton &styleOption) const;
-};
-
-#endif // QQUICKSTYLEITEMBUTTON_H
diff --git a/src/quicknativestyle/items/qquickstyleitemcheckbox.cpp b/src/quicknativestyle/items/qquickstyleitemcheckbox.cpp
deleted file mode 100644
index 6c4ac8ea..00000000
--- a/src/quicknativestyle/items/qquickstyleitemcheckbox.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemcheckbox.h"
-
-QFont QQuickStyleItemCheckBox::styleFont(QQuickItem *control) const
-{
- return style()->font(QStyle::CE_RadioButtonLabel, controlSize(control));
-}
-
-void QQuickStyleItemCheckBox::connectToControl() const
-{
- QQuickStyleItem::connectToControl();
- auto checkbox = control<QQuickCheckBox>();
- connect(checkbox, &QQuickCheckBox::downChanged, this, &QQuickStyleItem::markImageDirty);
- connect(checkbox, &QQuickCheckBox::checkStateChanged, this, &QQuickStyleItem::markImageDirty);
-}
-
-StyleItemGeometry QQuickStyleItemCheckBox::calculateGeometry()
-{
- QStyleOptionButton styleOption;
- initStyleOption(styleOption);
- StyleItemGeometry geometry;
-
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_CheckBox, &styleOption, QSize(0, 0));
- geometry.implicitSize = geometry.minimumSize;
- styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
- geometry.contentRect = style()->subElementRect(QStyle::SE_CheckBoxContents, &styleOption);
- geometry.layoutRect = style()->subElementRect(QStyle::SE_CheckBoxLayoutItem, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CE_CheckBox, &styleOption, geometry.minimumSize);
- geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_CheckBoxFocusFrameRadius, &styleOption);
-
- // Spacing seems to already be baked into SE_CheckBoxContents, so ignore until needed
- //const int space = style()->pixelMetric(QStyle::PM_CheckBoxLabelSpacing, &styleOption);
-
- return geometry;
-}
-
-void QQuickStyleItemCheckBox::paintEvent(QPainter *painter) const
-{
- QStyleOptionButton styleOption;
- initStyleOption(styleOption);
- style()->drawControl(QStyle::CE_CheckBox, &styleOption, painter);
-}
-
-void QQuickStyleItemCheckBox::initStyleOption(QStyleOptionButton &styleOption) const
-{
- initStyleOptionBase(styleOption);
- auto checkbox = control<QQuickCheckBox>();
-
- styleOption.state |= checkbox->isDown() ? QStyle::State_Sunken : QStyle::State_Raised;
- if (checkbox->isTristate() && checkbox->checkState() == Qt::PartiallyChecked)
- styleOption.state |= QStyle::State_NoChange;
- else
- styleOption.state |= checkbox->isChecked() ? QStyle::State_On : QStyle::State_Off;
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemcheckbox.h b/src/quicknativestyle/items/qquickstyleitemcheckbox.h
deleted file mode 100644
index 03bf34b9..00000000
--- a/src/quicknativestyle/items/qquickstyleitemcheckbox.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMCHECKBOX_H
-#define QQUICKSTYLEITEMCHECKBOX_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickcheckbox_p.h>
-
-class QQuickStyleItemCheckBox : public QQuickStyleItem
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(CheckBox)
-
-public:
- QFont styleFont(QQuickItem *control) const override;
-
-protected:
- void connectToControl() const override;
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionButton &styleOption) const;
-};
-
-#endif // QQUICKSTYLEITEMCHECKBOX_H
diff --git a/src/quicknativestyle/items/qquickstyleitemcombobox.cpp b/src/quicknativestyle/items/qquickstyleitemcombobox.cpp
deleted file mode 100644
index 0ac3756e..00000000
--- a/src/quicknativestyle/items/qquickstyleitemcombobox.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemcombobox.h"
-
-QFont QQuickStyleItemComboBox::styleFont(QQuickItem *control) const
-{
- return style()->font(QStyle::CE_PushButtonLabel, controlSize(control));
-}
-
-void QQuickStyleItemComboBox::connectToControl() const
-{
- QQuickStyleItem::connectToControl();
- auto comboBox = control<QQuickComboBox>();
- connect(comboBox, &QQuickComboBox::downChanged, this, &QQuickStyleItem::markImageDirty);
-}
-
-StyleItemGeometry QQuickStyleItemComboBox::calculateGeometry()
-{
- QStyleOptionComboBox styleOption;
- initStyleOption(styleOption);
- StyleItemGeometry geometry;
-
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_ComboBox, &styleOption, QSize(0, 0));
- geometry.implicitSize = style()->sizeFromContents(QStyle::CT_ComboBox, &styleOption, contentSize());
- styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
- geometry.contentRect = style()->subControlRect(QStyle::CC_ComboBox, &styleOption, QStyle::SC_ComboBoxEditField);
- geometry.layoutRect = style()->subElementRect(QStyle::SE_ComboBoxLayoutItem, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_ComboBox, &styleOption, geometry.minimumSize);
- geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_ComboBoxFocusFrameRadius, &styleOption);
-
- return geometry;
-}
-
-void QQuickStyleItemComboBox::paintEvent(QPainter *painter) const
-{
- QStyleOptionComboBox styleOption;
- initStyleOption(styleOption);
- style()->drawComplexControl(QStyle::CC_ComboBox, &styleOption, painter);
-}
-
-void QQuickStyleItemComboBox::initStyleOption(QStyleOptionComboBox &styleOption) const
-{
- initStyleOptionBase(styleOption);
- auto comboBox = control<QQuickComboBox>();
-
- styleOption.subControls = QStyle::SC_ComboBoxArrow | QStyle::SC_ComboBoxFrame | QStyle::SC_ComboBoxEditField;
- styleOption.frame = true;
- styleOption.state |= QStyle::State_Selected;
- styleOption.editable = comboBox->isEditable();
-
- if (comboBox->isDown())
- styleOption.state |= QStyle::State_Sunken;
- if (!comboBox->isFlat() && !comboBox->isDown())
- styleOption.state |= QStyle::State_Raised;
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemcombobox.h b/src/quicknativestyle/items/qquickstyleitemcombobox.h
deleted file mode 100644
index 79f1995e..00000000
--- a/src/quicknativestyle/items/qquickstyleitemcombobox.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMCOMBOBOX_H
-#define QQUICKSTYLEITEMCOMBOBOX_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickcombobox_p.h>
-
-class QQuickStyleItemComboBox : public QQuickStyleItem
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(ComboBox)
-
-public:
- QFont styleFont(QQuickItem *control) const override;
-
-protected:
- void connectToControl() const override;
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionComboBox &styleOption) const;
-};
-
-#endif // QQUICKSTYLEITEMCOMBOBOX_H
diff --git a/src/quicknativestyle/items/qquickstyleitemdial.cpp b/src/quicknativestyle/items/qquickstyleitemdial.cpp
deleted file mode 100644
index bf5784e1..00000000
--- a/src/quicknativestyle/items/qquickstyleitemdial.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemdial.h"
-
-QFont QQuickStyleItemDial::styleFont(QQuickItem *control) const
-{
- return style()->font(QStyle::CE_ProgressBarLabel, controlSize(control));
-}
-
-void QQuickStyleItemDial::connectToControl() const
-{
- QQuickStyleItem::connectToControl();
- auto dial = control<QQuickDial>();
- connect(dial, &QQuickDial::fromChanged, this, &QQuickStyleItem::markImageDirty);
- connect(dial, &QQuickDial::toChanged, this, &QQuickStyleItem::markImageDirty);
- connect(dial, &QQuickDial::positionChanged, this, &QQuickStyleItem::markImageDirty);
- connect(dial, &QQuickDial::valueChanged, this, &QQuickStyleItem::markImageDirty);
- connect(dial, &QQuickDial::stepSizeChanged, this, &QQuickStyleItem::markImageDirty);
- connect(dial, &QQuickDial::pressedChanged, this, &QQuickStyleItem::markImageDirty);
-}
-
-StyleItemGeometry QQuickStyleItemDial::calculateGeometry()
-{
- QStyleOptionSlider styleOption;
- initStyleOption(styleOption);
-
- StyleItemGeometry geometry;
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_Dial, &styleOption, QSize(0, 0));
- geometry.implicitSize = geometry.minimumSize;
- geometry.layoutRect = style()->subElementRect(QStyle::SE_SliderLayoutItem, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_Dial, &styleOption, geometry.minimumSize);
- geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_DialFocusFrameRadius, &styleOption);
-
- return geometry;
-}
-
-void QQuickStyleItemDial::paintEvent(QPainter *painter) const
-{
- QStyleOptionSlider styleOption;
- initStyleOption(styleOption);
- style()->drawComplexControl(QStyle::CC_Dial, &styleOption, painter);
-}
-
-void QQuickStyleItemDial::initStyleOption(QStyleOptionSlider &styleOption) const
-{
- initStyleOptionBase(styleOption);
- auto dial = control<QQuickDial>();
-
- styleOption.subControls = QStyle::SC_SliderGroove | QStyle::SC_SliderHandle;
- styleOption.activeSubControls = QStyle::SC_None;
- styleOption.tickInterval = dial->stepSize();
- styleOption.dialWrapping = dial->wrap();
- styleOption.upsideDown = true;
-
- if (dial->isPressed())
- styleOption.state |= QStyle::State_Sunken;
-
- if (dial->stepSize() == 0) {
- styleOption.minimum = 0;
- styleOption.maximum = 10000;
- styleOption.sliderPosition = dial->position() * styleOption.maximum;
- } else {
- styleOption.minimum = dial->from();
- styleOption.maximum = dial->to();
- styleOption.sliderPosition = dial->value();
- }
-
- // TODO: add proper API for tickmarks
- const int index = dial->metaObject()->indexOfProperty("qqc2_style_tickPosition");
- if (index != -1) {
- const int tickPosition = dial->metaObject()->property(index).read(dial).toInt();
- styleOption.tickPosition = QStyleOptionSlider::TickPosition(tickPosition);
- if (styleOption.tickPosition != QStyleOptionSlider::NoTicks)
- styleOption.subControls |= QStyle::SC_DialTickmarks;
- }
-
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemdial.h b/src/quicknativestyle/items/qquickstyleitemdial.h
deleted file mode 100644
index 569820fe..00000000
--- a/src/quicknativestyle/items/qquickstyleitemdial.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMDIAL_H
-#define QQUICKSTYLEITEMDIAL_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickdial_p.h>
-
-class QQuickStyleItemDial : public QQuickStyleItem
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(Dial)
-
-public:
- QFont styleFont(QQuickItem *control) const override;
-
-protected:
- void connectToControl() const override;
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionSlider &styleOption) const;
-};
-
-#endif // QQUICKSTYLEITEMDIAL_H
diff --git a/src/quicknativestyle/items/qquickstyleitemframe.cpp b/src/quicknativestyle/items/qquickstyleitemframe.cpp
deleted file mode 100644
index cf060492..00000000
--- a/src/quicknativestyle/items/qquickstyleitemframe.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemframe.h"
-
-StyleItemGeometry QQuickStyleItemFrame::calculateGeometry()
-{
- QStyleOptionFrame styleOption;
- initStyleOption(styleOption);
- StyleItemGeometry geometry;
-
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_Frame, &styleOption, QSize(0, 0));
- geometry.implicitSize = contentSize();
- styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
- geometry.contentRect = style()->subElementRect(QStyle::SE_FrameContents, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CE_ShapedFrame, &styleOption, geometry.minimumSize);
-
- return geometry;
-}
-
-void QQuickStyleItemFrame::paintEvent(QPainter *painter) const
-{
- QStyleOptionFrame styleOption;
- initStyleOption(styleOption);
- style()->drawControl(QStyle::CE_ShapedFrame, &styleOption, painter);
-}
-
-void QQuickStyleItemFrame::initStyleOption(QStyleOptionFrame &styleOption) const
-{
- initStyleOptionBase(styleOption);
- styleOption.lineWidth = 1;
- styleOption.frameShape = QStyleOptionFrame::StyledPanel;
- styleOption.features = QStyleOptionFrame::Flat;
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemframe.h b/src/quicknativestyle/items/qquickstyleitemframe.h
deleted file mode 100644
index 8e8da68b..00000000
--- a/src/quicknativestyle/items/qquickstyleitemframe.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMFRAME_H
-#define QQUICKSTYLEITEMFRAME_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickframe_p.h>
-
-class QQuickStyleItemFrame : public QQuickStyleItem
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(Frame)
-
-protected:
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionFrame &styleOption) const;
-};
-
-#endif // QQUICKSTYLEITEMFRAME_H
diff --git a/src/quicknativestyle/items/qquickstyleitemgroupbox.cpp b/src/quicknativestyle/items/qquickstyleitemgroupbox.cpp
deleted file mode 100644
index a828160d..00000000
--- a/src/quicknativestyle/items/qquickstyleitemgroupbox.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemgroupbox.h"
-
-QFont QQuickStyleItemGroupBox::styleFont(QQuickItem *control) const
-{
- return style()->font(QStyle::CE_HeaderLabel, controlSize(control));
-}
-
-StyleItemGeometry QQuickStyleItemGroupBox::calculateGeometry()
-{
- QStyleOptionGroupBox styleOption;
- initStyleOption(styleOption);
-
- StyleItemGeometry geometry;
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_GroupBox, &styleOption, QSize(0, 0));
-
- if (!control<QQuickGroupBox>()->title().isEmpty()) {
- // We don't draw the title, but we need to take
- // it into calculation for the control size
- styleOption.text = QStringLiteral(" ");
- styleOption.subControls |= QStyle::SC_GroupBoxLabel;
- }
-
- geometry.implicitSize = style()->sizeFromContents(QStyle::CT_GroupBox, &styleOption, contentSize());
- styleOption.rect.setSize(geometry.implicitSize);
- geometry.contentRect = style()->subControlRect(QStyle::CC_GroupBox, &styleOption, QStyle::SC_GroupBoxContents);
- geometry.layoutRect = style()->subElementRect(QStyle::SE_GroupBoxLayoutItem, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_GroupBox, &styleOption, geometry.minimumSize);
-
- const QQuickStyleMargins oldGroupBoxPadding = m_groupBoxPadding;
- const QRect frame = style()->subControlRect(QStyle::CC_GroupBox, &styleOption, QStyle::SC_GroupBoxFrame);
- m_groupBoxPadding = QQuickStyleMargins(QRect(QPoint(), geometry.implicitSize), frame);
- if (m_groupBoxPadding != oldGroupBoxPadding)
- emit groupBoxPaddingChanged();
-
- const QPointF oldLabelPos = m_labelPos;
- m_labelPos = style()->subControlRect(QStyle::CC_GroupBox, &styleOption, QStyle::SC_GroupBoxLabel).topLeft();
- if (m_labelPos != oldLabelPos)
- emit labelPosChanged();
- return geometry;
-}
-
-void QQuickStyleItemGroupBox::paintEvent(QPainter *painter) const
-{
- QStyleOptionGroupBox styleOption;
- initStyleOption(styleOption);
- style()->drawComplexControl(QStyle::CC_GroupBox, &styleOption, painter);
-}
-
-void QQuickStyleItemGroupBox::initStyleOption(QStyleOptionGroupBox &styleOption) const
-{
- initStyleOptionBase(styleOption);
- styleOption.subControls = QStyle::SC_GroupBoxFrame;
- styleOption.lineWidth = 1;
-}
-
-QQuickStyleMargins QQuickStyleItemGroupBox::groupBoxPadding() const
-{
- return m_groupBoxPadding;
-}
-
-QPointF QQuickStyleItemGroupBox::labelPos() const
-{
- return m_labelPos;
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemgroupbox.h b/src/quicknativestyle/items/qquickstyleitemgroupbox.h
deleted file mode 100644
index 2b07287f..00000000
--- a/src/quicknativestyle/items/qquickstyleitemgroupbox.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMGROUPBOX_H
-#define QQUICKSTYLEITEMGROUPBOX_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickgroupbox_p.h>
-
-class QQuickStyleItemGroupBox : public QQuickStyleItem
-{
- Q_OBJECT
- Q_PROPERTY(QQuickStyleMargins groupBoxPadding READ groupBoxPadding NOTIFY groupBoxPaddingChanged)
- Q_PROPERTY(QPointF labelPos READ labelPos NOTIFY labelPosChanged)
- QML_NAMED_ELEMENT(GroupBox)
-
-public:
- QQuickStyleMargins groupBoxPadding() const;
- QPointF labelPos() const;
- QFont styleFont(QQuickItem *control) const override;
-
-signals:
- void groupBoxPaddingChanged();
- void labelPosChanged();
-
-protected:
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- QQuickStyleMargins m_groupBoxPadding;
- QPointF m_labelPos;
-
- void initStyleOption(QStyleOptionGroupBox &styleOption) const;
-};
-
-#endif // QQUICKSTYLEITEMGROUPBOX_H
diff --git a/src/quicknativestyle/items/qquickstyleitemprogressbar.cpp b/src/quicknativestyle/items/qquickstyleitemprogressbar.cpp
deleted file mode 100644
index 480e8981..00000000
--- a/src/quicknativestyle/items/qquickstyleitemprogressbar.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemprogressbar.h"
-
-QFont QQuickStyleItemProgressBar::styleFont(QQuickItem *control) const
-{
- return style()->font(QStyle::CE_ProgressBarLabel, controlSize(control));
-}
-
-void QQuickStyleItemProgressBar::connectToControl() const
-{
- QQuickStyleItem::connectToControl();
- auto progressBar = control<QQuickProgressBar>();
- connect(progressBar, &QQuickProgressBar::fromChanged, this, &QQuickStyleItem::markImageDirty);
- connect(progressBar, &QQuickProgressBar::toChanged, this, &QQuickStyleItem::markImageDirty);
- connect(progressBar, &QQuickProgressBar::positionChanged, this, &QQuickStyleItem::markImageDirty);
-}
-
-StyleItemGeometry QQuickStyleItemProgressBar::calculateGeometry()
-{
- QStyleOptionProgressBar styleOption;
- initStyleOption(styleOption);
-
- StyleItemGeometry geometry;
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_ProgressBar, &styleOption, QSize(0, 0));
-
- // From qprogressbar.cpp in qtbase:
- const int cw = style()->pixelMetric(QStyle::PM_ProgressBarChunkWidth, &styleOption);
- QFontMetrics fm(control<QQuickProgressBar>()->font());
- QSize size = QSize(qMax(9, cw) * 7 + fm.horizontalAdvance(QLatin1Char('0')) * 4, fm.height() + 8);
- if (!(styleOption.state & QStyle::State_Horizontal))
- size = size.transposed();
-
- geometry.implicitSize = style()->sizeFromContents(QStyle::CT_ProgressBar, &styleOption, size);
- styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
- geometry.contentRect = style()->subElementRect(QStyle::SE_ProgressBarContents, &styleOption);
- geometry.layoutRect = style()->subElementRect(QStyle::SE_ProgressBarLayoutItem, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CE_ProgressBar, &styleOption, geometry.minimumSize);
-
- return geometry;
-}
-
-void QQuickStyleItemProgressBar::paintEvent(QPainter *painter) const
-{
- QStyleOptionProgressBar styleOption;
- initStyleOption(styleOption);
-#ifndef Q_OS_MACOS
- const QRect r = styleOption.rect;
-#endif
- // Note: on macOS, the groove will paint both the background and the contents
- styleOption.rect = style()->subElementRect(QStyle::SE_ProgressBarGroove, &styleOption);
- style()->drawControl(QStyle::CE_ProgressBarGroove, &styleOption, painter);
-#ifndef Q_OS_MACOS
- styleOption.rect = r;
- styleOption.rect = style()->subElementRect(QStyle::SE_ProgressBarContents, &styleOption);
- style()->drawControl(QStyle::CE_ProgressBarContents, &styleOption, painter);
-#endif
-}
-
-void QQuickStyleItemProgressBar::initStyleOption(QStyleOptionProgressBar &styleOption) const
-{
- initStyleOptionBase(styleOption);
- auto progressBar = control<QQuickProgressBar>();
-
- styleOption.state = QStyle::State_Horizontal;
-
- if (progressBar->isIndeterminate()) {
- styleOption.minimum = 0;
- styleOption.maximum = 0;
- } else if (progressBar->to() - progressBar->from() < 100) {
- // Add some range to support float numbers
- styleOption.minimum = 0;
- styleOption.maximum = (progressBar->to() - progressBar->from()) * 100;
- styleOption.progress = (progressBar->value() - progressBar->from()) * 100;
- } else {
- styleOption.minimum = progressBar->from();
- styleOption.maximum = progressBar->to();
- styleOption.progress = progressBar->value();
- }
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemprogressbar.h b/src/quicknativestyle/items/qquickstyleitemprogressbar.h
deleted file mode 100644
index 53692dbe..00000000
--- a/src/quicknativestyle/items/qquickstyleitemprogressbar.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMPROGRESSBAR_H
-#define QQUICKSTYLEITEMPROGRESSBAR_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickprogressbar_p.h>
-
-class QQuickStyleItemProgressBar : public QQuickStyleItem
-{
- Q_OBJECT
-
- QML_NAMED_ELEMENT(ProgressBar)
-
-public:
- QFont styleFont(QQuickItem *control) const override;
-
-protected:
- void connectToControl() const override;
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionProgressBar &styleOption) const;
-};
-
-#endif // QQUICKSTYLEITEMPROGRESSBAR_H
diff --git a/src/quicknativestyle/items/qquickstyleitemradiobutton.cpp b/src/quicknativestyle/items/qquickstyleitemradiobutton.cpp
deleted file mode 100644
index 655bb0b6..00000000
--- a/src/quicknativestyle/items/qquickstyleitemradiobutton.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemradiobutton.h"
-
-QFont QQuickStyleItemRadioButton::styleFont(QQuickItem *control) const
-{
- return style()->font(QStyle::CE_RadioButtonLabel, controlSize(control));
-}
-
-void QQuickStyleItemRadioButton::connectToControl() const
-{
- QQuickStyleItem::connectToControl();
- auto checkbox = control<QQuickRadioButton>();
- connect(checkbox, &QQuickRadioButton::downChanged, this, &QQuickStyleItem::markImageDirty);
- connect(checkbox, &QQuickRadioButton::checkedChanged, this, &QQuickStyleItem::markImageDirty);
-}
-
-StyleItemGeometry QQuickStyleItemRadioButton::calculateGeometry()
-{
- QStyleOptionButton styleOption;
- initStyleOption(styleOption);
- StyleItemGeometry geometry;
-
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_RadioButton, &styleOption, QSize(0, 0));
- geometry.implicitSize = geometry.minimumSize;
- styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
- geometry.contentRect = style()->subElementRect(QStyle::SE_RadioButtonContents, &styleOption);
- geometry.layoutRect = style()->subElementRect(QStyle::SE_RadioButtonLayoutItem, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CE_RadioButton, &styleOption, geometry.minimumSize);
- geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_RadioButtonFocusFrameRadius, &styleOption);
-
- return geometry;
-}
-
-void QQuickStyleItemRadioButton::paintEvent(QPainter *painter) const
-{
- QStyleOptionButton styleOption;
- initStyleOption(styleOption);
- style()->drawControl(QStyle::CE_RadioButton, &styleOption, painter);
-}
-
-void QQuickStyleItemRadioButton::initStyleOption(QStyleOptionButton &styleOption) const
-{
- initStyleOptionBase(styleOption);
- auto checkbox = control<QQuickRadioButton>();
-
- styleOption.state |= checkbox->isDown() ? QStyle::State_Sunken : QStyle::State_Raised;
- styleOption.state |= checkbox->isChecked() ? QStyle::State_On : QStyle::State_Off;
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemradiobutton.h b/src/quicknativestyle/items/qquickstyleitemradiobutton.h
deleted file mode 100644
index 56073d8f..00000000
--- a/src/quicknativestyle/items/qquickstyleitemradiobutton.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMRADIOBUTTON_H
-#define QQUICKSTYLEITEMRADIOBUTTON_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickradiobutton_p.h>
-
-class QQuickStyleItemRadioButton : public QQuickStyleItem
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(RadioButton)
-
-public:
- QFont styleFont(QQuickItem *control) const override;
-
-protected:
- void connectToControl() const override;
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionButton &styleOption) const;
-};
-
-#endif // QQUICKSTYLEITEMRADIOBUTTON_H
diff --git a/src/quicknativestyle/items/qquickstyleitemscrollbar.cpp b/src/quicknativestyle/items/qquickstyleitemscrollbar.cpp
deleted file mode 100644
index d6d41d96..00000000
--- a/src/quicknativestyle/items/qquickstyleitemscrollbar.cpp
+++ /dev/null
@@ -1,151 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemscrollbar.h"
-
-QFont QQuickStyleItemScrollBar::styleFont(QQuickItem *control) const
-{
- return style()->font(QStyle::CE_ProgressBarLabel, controlSize(control));
-}
-
-void QQuickStyleItemScrollBar::connectToControl() const
-{
- QQuickStyleItem::connectToControl();
- auto scrollBar = control<QQuickScrollBar>();
- connect(scrollBar, &QQuickScrollBar::orientationChanged, this, &QQuickStyleItem::markImageDirty);
- connect(scrollBar, &QQuickScrollBar::pressedChanged, this, &QQuickStyleItem::markImageDirty);
-}
-
-StyleItemGeometry QQuickStyleItemScrollBar::calculateGeometry()
-{
- QStyleOptionSlider styleOption;
- initStyleOption(styleOption);
-
- StyleItemGeometry geometry;
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_ScrollBar, &styleOption, QSize(0, 0));
- if (m_subControl == SubLine || m_subControl == AddLine) {
- // So far, we know that only the windows style uses these subcontrols,
- // so we can use hardcoded sizes...
- QSize sz(16, 17);
- if (styleOption.orientation == Qt::Vertical)
- sz.transpose();
- geometry.minimumSize = sz;
- }
- geometry.implicitSize = geometry.minimumSize;
- styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
- geometry.layoutRect = style()->subElementRect(QStyle::SE_ScrollBarLayoutItem, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_ScrollBar, &styleOption, geometry.minimumSize);
-
- return geometry;
-}
-
-void QQuickStyleItemScrollBar::paintEvent(QPainter *painter) const
-{
- QStyleOptionSlider styleOption;
- initStyleOption(styleOption);
- if (m_subControl == SubLine || m_subControl == AddLine) {
- QStyle::SubControl sc = m_subControl == SubLine ? QStyle::SC_ScrollBarSubLine : QStyle::SC_ScrollBarAddLine;
- QStyleOptionSlider opt = styleOption;
- opt.subControls = QStyle::SC_ScrollBarAddLine
- | QStyle::SC_ScrollBarSubLine
- | QStyle::SC_ScrollBarGroove;
-
- const qreal scale = window()->devicePixelRatio();
- const QSize scrollBarMinSize = style()->sizeFromContents(QStyle::CT_ScrollBar, &opt, QSize(0, 0));
- const QSize sz = scrollBarMinSize * scale;
- QImage scrollBarImage(sz, QImage::Format_ARGB32_Premultiplied);
- scrollBarImage.setDevicePixelRatio(scale);
- QPainter p(&scrollBarImage);
- opt.rect = QRect(QPoint(0, 0), scrollBarMinSize);
- style()->drawComplexControl(QStyle::CC_ScrollBar, &opt, &p);
- QRect sourceImageRect = style()->subControlRect(QStyle::CC_ScrollBar, &opt, sc);
- sourceImageRect = QRect(sourceImageRect.topLeft() * scale, sourceImageRect.size() * scale);
- painter->drawImage(QPoint(0, 0), scrollBarImage, sourceImageRect);
- } else {
- style()->drawComplexControl(QStyle::CC_ScrollBar, &styleOption, painter);
- }
-}
-
-void QQuickStyleItemScrollBar::initStyleOption(QStyleOptionSlider &styleOption) const
-{
- initStyleOptionBase(styleOption);
- auto scrollBar = control<QQuickScrollBar>();
-
- switch (m_subControl) {
- case Groove:
- styleOption.subControls = QStyle::SC_ScrollBarGroove | QStyle::SC_ScrollBarAddLine | QStyle::SC_ScrollBarSubLine;
- break;
- case Handle:
- styleOption.subControls = QStyle::SC_ScrollBarSlider;
- break;
- case AddLine:
- styleOption.subControls = QStyle::SC_ScrollBarAddLine;
- break;
- case SubLine:
- styleOption.subControls = QStyle::SC_ScrollBarSubLine;
- break;
- }
-
- styleOption.activeSubControls = QStyle::SC_None;
- styleOption.orientation = scrollBar->orientation();
- if (styleOption.orientation == Qt::Horizontal)
- styleOption.state |= QStyle::State_Horizontal;
-
- if (scrollBar->isPressed())
- styleOption.state |= QStyle::State_Sunken;
-
- if (m_overrideState != None) {
- // In ScrollBar.qml we fade between two versions of
- // the handle, depending on if it's hovered or not
-
- if (m_overrideState == AlwaysHovered) {
- styleOption.activeSubControls = (styleOption.subControls & (QStyle::SC_ScrollBarSlider | QStyle::SC_ScrollBarGroove | QStyle::SC_ScrollBarAddLine | QStyle::SC_ScrollBarSubLine));
- } else if (m_overrideState == NeverHovered) {
- styleOption.activeSubControls &= ~(styleOption.subControls & (QStyle::SC_ScrollBarSlider | QStyle::SC_ScrollBarGroove | QStyle::SC_ScrollBarAddLine | QStyle::SC_ScrollBarSubLine));
- } else if (m_overrideState == AlwaysSunken) {
- styleOption.state |= QStyle::State_Sunken;
- styleOption.activeSubControls = (styleOption.subControls & (QStyle::SC_ScrollBarSlider | QStyle::SC_ScrollBarGroove | QStyle::SC_ScrollBarAddLine | QStyle::SC_ScrollBarSubLine));
- }
- }
-
- // The following values will let the handle fill 100% of the
- // groove / imageSize. But when the handle is resized by
- // QQuickScrollBar, it will end up with the correct size visually.
- styleOption.pageStep = 1000;
- styleOption.minimum = 0;
- styleOption.maximum = 1;
- styleOption.sliderValue = 0;
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemscrollbar.h b/src/quicknativestyle/items/qquickstyleitemscrollbar.h
deleted file mode 100644
index f89d8d3e..00000000
--- a/src/quicknativestyle/items/qquickstyleitemscrollbar.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMSCROLLBAR_H
-#define QQUICKSTYLEITEMSCROLLBAR_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickscrollbar_p.h>
-
-class QQuickStyleItemScrollBar : public QQuickStyleItem
-{
- Q_OBJECT
-
- Q_PROPERTY(SubControl subControl MEMBER m_subControl)
-
- QML_NAMED_ELEMENT(ScrollBar)
-
-public:
- enum SubControl {
- Groove = 1,
- Handle,
- AddLine,
- SubLine
- };
- Q_ENUM(SubControl)
-
- QFont styleFont(QQuickItem *control) const override;
-
-protected:
- void connectToControl() const override;
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionSlider &styleOption) const;
-
-private:
- SubControl m_subControl = Groove;
-};
-
-#endif // QQUICKSTYLEITEMSCROLLBAR_H
diff --git a/src/quicknativestyle/items/qquickstyleitemscrollviewcorner.cpp b/src/quicknativestyle/items/qquickstyleitemscrollviewcorner.cpp
deleted file mode 100644
index 3a992f2d..00000000
--- a/src/quicknativestyle/items/qquickstyleitemscrollviewcorner.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemscrollviewcorner.h"
-
-StyleItemGeometry QQuickStyleItemScrollViewCorner::calculateGeometry()
-{
- QStyleOptionSlider styleOption;
- initStyleOption(styleOption);
-
- StyleItemGeometry geometry;
-
- // The size of the corner should be the width of the vertical
- // scrollbar and the height of the horizontal scrollbar.
- styleOption.orientation = Qt::Vertical;
- const auto vScrollBarWidth = style()->sizeFromContents(QStyle::CT_ScrollBar, &styleOption, QSize(0, 0)).width();
- styleOption.orientation = Qt::Horizontal;
- const auto hScrollBarHeight = style()->sizeFromContents(QStyle::CT_ScrollBar, &styleOption, QSize(0, 0)).height();
-
- geometry.minimumSize = QSize(vScrollBarWidth, hScrollBarHeight);
- geometry.implicitSize = geometry.minimumSize;
-
- return geometry;
-}
-
-void QQuickStyleItemScrollViewCorner::paintEvent(QPainter *painter) const
-{
- QStyleOptionSlider styleOption;
- initStyleOption(styleOption);
-
- // Grab a center piece of a vertical scrollbar groove onto a QImage, and use this
- // image to draw a corner. We draw the corner by first drawing the piece as it is, and
- // then rotate it 90 degrees, clip it into a triangle, and draw it once more on top.
- // The result is that we end up with one vertical and one horizontal triangle that
- // together form a filled corner rectangle.
-
- styleOption.orientation = Qt::Vertical;
-
- const qreal scale = window()->devicePixelRatio();
- const int grooveWidth = minimumSize().width();
- const int grooveHeight = minimumSize().height();
- const QSize scrollBarMinSize = style()->sizeFromContents(QStyle::CT_ScrollBar, &styleOption, QSize(0, 0));
- const QSize scrollBarSize = scrollBarMinSize + QSize(0, grooveHeight);
- const int hStart = scrollBarMinSize.height() / 2;
- const QRect targetImageRect(0, hStart * scale, grooveWidth * scale, grooveHeight * scale);
-
- QImage scrollBarImage(scrollBarSize * scale, QImage::Format_ARGB32_Premultiplied);
- scrollBarImage.setDevicePixelRatio(scale);
- scrollBarImage.fill(Qt::transparent);
- QPainter scrollBarPainter(&scrollBarImage);
- styleOption.rect = QRect(QPoint(0, 0), scrollBarSize);
- style()->drawComplexControl(QStyle::CC_ScrollBar, &styleOption, &scrollBarPainter);
-
- // Draw vertical groove
- painter->drawImage(QPoint(0, 0), scrollBarImage, targetImageRect);
-
- QPainterPath path;
- path.moveTo(0, 0);
- path.lineTo(0, grooveHeight);
- path.lineTo(grooveWidth, grooveHeight);
- path.closeSubpath();
-
- QTransform transform;
- transform.translate(grooveWidth, 0);
- transform.rotate(90);
-
- painter->save();
- painter->setCompositionMode(QPainter::CompositionMode_Source);
- painter->setClipPath(path);
- painter->setTransform(transform);
- // Draw horizontal groove, clipped to a triangle
- painter->drawImage(QPoint(0, 0), scrollBarImage, targetImageRect);
- painter->restore();
-}
-
-void QQuickStyleItemScrollViewCorner::initStyleOption(QStyleOptionSlider &styleOption) const
-{
- initStyleOptionBase(styleOption);
-
- styleOption.subControls = QStyle::SC_ScrollBarGroove;
- styleOption.activeSubControls = QStyle::SC_None;
- styleOption.pageStep = 1000;
- styleOption.minimum = 0;
- styleOption.maximum = 1;
- styleOption.sliderValue = 0;
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemscrollviewcorner.h b/src/quicknativestyle/items/qquickstyleitemscrollviewcorner.h
deleted file mode 100644
index 637a8ea8..00000000
--- a/src/quicknativestyle/items/qquickstyleitemscrollviewcorner.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMSCROLLVIEWCORNER_H
-#define QQUICKSTYLEITEMSCROLLVIEWCORNER_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickscrollbar_p.h>
-
-class QQuickStyleItemScrollViewCorner : public QQuickStyleItem
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(ScrollViewCorner)
-
-protected:
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionSlider &styleOption) const;
-};
-
-#endif // QQUICKSTYLEITEMSCROLLVIEWCORNER_H
diff --git a/src/quicknativestyle/items/qquickstyleitemslider.cpp b/src/quicknativestyle/items/qquickstyleitemslider.cpp
deleted file mode 100644
index 67161ad3..00000000
--- a/src/quicknativestyle/items/qquickstyleitemslider.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemslider.h"
-
-QFont QQuickStyleItemSlider::styleFont(QQuickItem *control) const
-{
- return style()->font(QStyle::CE_ProgressBarLabel, controlSize(control));
-}
-
-void QQuickStyleItemSlider::connectToControl() const
-{
- QQuickStyleItem::connectToControl();
- auto slider = control<QQuickSlider>();
- connect(slider, &QQuickSlider::fromChanged, this, &QQuickStyleItem::markImageDirty);
- connect(slider, &QQuickSlider::toChanged, this, &QQuickStyleItem::markImageDirty);
- connect(slider, &QQuickSlider::positionChanged, this, &QQuickStyleItem::markImageDirty);
- connect(slider, &QQuickSlider::valueChanged, this, &QQuickStyleItem::markImageDirty);
- connect(slider, &QQuickSlider::stepSizeChanged, this, &QQuickStyleItem::markImageDirty);
- connect(slider, &QQuickSlider::pressedChanged, this, &QQuickStyleItem::markImageDirty);
- connect(slider, &QQuickSlider::orientationChanged, this, &QQuickStyleItem::markImageDirty);
-}
-
-StyleItemGeometry QQuickStyleItemSlider::calculateGeometry()
-{
- QStyleOptionSlider styleOption;
- initStyleOption(styleOption);
-
- StyleItemGeometry geometry;
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_Slider, &styleOption, QSize(0, 0));
- geometry.implicitSize = geometry.minimumSize;
- styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
- geometry.layoutRect = style()->subElementRect(QStyle::SE_SliderLayoutItem, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_Slider, &styleOption, geometry.minimumSize);
- geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_SliderFocusFrameRadius, &styleOption);
-
- return geometry;
-}
-
-void QQuickStyleItemSlider::paintEvent(QPainter *painter) const
-{
- QStyleOptionSlider styleOption;
- initStyleOption(styleOption);
- style()->drawComplexControl(QStyle::CC_Slider, &styleOption, painter);
-}
-
-void QQuickStyleItemSlider::initStyleOption(QStyleOptionSlider &styleOption) const
-{
- initStyleOptionBase(styleOption);
- auto slider = control<QQuickSlider>();
-
- styleOption.subControls = QStyle::SC_None;
- if (m_subControl & Groove)
- styleOption.subControls |= QStyle::SC_SliderGroove;
- if (m_subControl & Handle)
- styleOption.subControls |= QStyle::SC_SliderHandle;
- styleOption.activeSubControls = QStyle::SC_None;
- styleOption.orientation = slider->orientation();
-
- if (slider->isPressed())
- styleOption.state |= QStyle::State_Sunken;
-
- qreal min = 0;
- qreal max = 1;
- if (!qFuzzyIsNull(slider->stepSize())) {
- min = slider->from();
- max = slider->to();
-
- // TODO: add proper API for tickmarks
- const int index = slider->metaObject()->indexOfProperty("qqc2_style_tickPosition");
- if (index != -1) {
- const int tickPosition = slider->metaObject()->property(index).read(slider).toInt();
- styleOption.tickPosition = QStyleOptionSlider::TickPosition(tickPosition);
- if (styleOption.tickPosition != QStyleOptionSlider::NoTicks)
- styleOption.subControls |= QStyle::SC_SliderTickmarks;
- }
- }
-
- // Since the [from, to] interval in QQuickSlider is floating point, users can
- // specify very small ranges and step sizes, (e.g. [0.., 0.25], step size 0.05).
- // Since the style operates on ints, we cannot pass these values directly to the style,
- // so we normalize all values to the range [0, 10000]
- static const qreal Scale = 10000;
- const qreal normalizeMultiplier = Scale/(max - min);
- styleOption.tickInterval = int(slider->stepSize() * normalizeMultiplier);
- styleOption.minimum = 0;
- styleOption.maximum = int(Scale);
- styleOption.sliderValue = int((slider->value() - min) * normalizeMultiplier);
- styleOption.sliderPosition = int(slider->position() * styleOption.maximum);
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemslider.h b/src/quicknativestyle/items/qquickstyleitemslider.h
deleted file mode 100644
index 9a514207..00000000
--- a/src/quicknativestyle/items/qquickstyleitemslider.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMSLIDER_H
-#define QQUICKSTYLEITEMSLIDER_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickslider_p.h>
-
-class QQuickStyleItemSlider : public QQuickStyleItem
-{
- Q_OBJECT
-
- Q_PROPERTY(SubControl subControl MEMBER m_subControl)
-
- QML_NAMED_ELEMENT(Slider)
-
-public:
- enum SubControl {
- Groove = 1,
- Handle,
- };
- Q_ENUM(SubControl)
-
- QFont styleFont(QQuickItem *control) const override;
-
-protected:
- void connectToControl() const override;
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionSlider &styleOption) const;
-
-private:
- SubControl m_subControl = Groove;
-};
-
-#endif // QQUICKSTYLEITEMSLIDER_H
diff --git a/src/quicknativestyle/items/qquickstyleitemspinbox.cpp b/src/quicknativestyle/items/qquickstyleitemspinbox.cpp
deleted file mode 100644
index 2a232b8a..00000000
--- a/src/quicknativestyle/items/qquickstyleitemspinbox.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemspinbox.h"
-#include <QtQuickTemplates2/private/qquickindicatorbutton_p.h>
-
-QFont QQuickStyleItemSpinBox::styleFont(QQuickItem *control) const
-{
- return style()->font(QStyle::CE_ComboBoxLabel, controlSize(control));
-}
-
-void QQuickStyleItemSpinBox::connectToControl() const
-{
- QQuickStyleItem::connectToControl();
- auto spinbox = control<QQuickSpinBox>();
- connect(spinbox->up(), &QQuickIndicatorButton::pressedChanged, this, &QQuickStyleItem::markImageDirty);
- connect(spinbox->down(), &QQuickIndicatorButton::pressedChanged, this, &QQuickStyleItem::markImageDirty);
-}
-
-StyleItemGeometry QQuickStyleItemSpinBox::calculateGeometry()
-{
- QStyleOptionSpinBox styleOption;
- initStyleOption(styleOption);
- StyleItemGeometry geometry;
-
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_SpinBox, &styleOption, QSize(0, 0));
-
- if (styleOption.subControls == QStyle::SC_SpinBoxFrame) {
- geometry.implicitSize = style()->sizeFromContents(QStyle::CT_SpinBox, &styleOption, contentSize());
- styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
- geometry.contentRect = style()->subControlRect(QStyle::CC_SpinBox, &styleOption, QStyle::SC_SpinBoxEditField);
- geometry.layoutRect = style()->subElementRect(QStyle::SE_SpinBoxLayoutItem, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CC_SpinBox, &styleOption, geometry.minimumSize);
- geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_SpinBoxFocusFrameRadius, &styleOption);
- } else {
- geometry.implicitSize = geometry.minimumSize;
- }
-
- return geometry;
-}
-
-void QQuickStyleItemSpinBox::paintEvent(QPainter *painter) const
-{
- QStyleOptionSpinBox styleOption;
- initStyleOption(styleOption);
- style()->drawComplexControl(QStyle::CC_SpinBox, &styleOption, painter);
-}
-
-void QQuickStyleItemSpinBox::initStyleOption(QStyleOptionSpinBox &styleOption) const
-{
- initStyleOptionBase(styleOption);
- auto spinbox = control<QQuickSpinBox>();
-
- switch (m_subControl) {
- case Frame:
- styleOption.subControls = QStyle::SC_SpinBoxFrame;
- styleOption.frame = true;
- break;
- case Up:
- styleOption.subControls = (QStyle::SC_SpinBoxUp | QStyle::SC_SpinBoxDown);
- break;
- case Down:
- styleOption.subControls = QStyle::SC_SpinBoxDown;
- break;
- }
-
- if (spinbox->up()->isPressed()) {
- styleOption.activeSubControls = QStyle::SC_SpinBoxUp;
- styleOption.state |= QStyle::State_Sunken;
- } else if (spinbox->down()->isPressed()) {
- styleOption.activeSubControls = QStyle::SC_SpinBoxDown;
- styleOption.state |= QStyle::State_Sunken;
- }
-
- styleOption.buttonSymbols = QStyleOptionSpinBox::UpDownArrows;
- styleOption.stepEnabled = QStyleOptionSpinBox::StepEnabled;
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemspinbox.h b/src/quicknativestyle/items/qquickstyleitemspinbox.h
deleted file mode 100644
index d4b9f9fa..00000000
--- a/src/quicknativestyle/items/qquickstyleitemspinbox.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMSPINBOX_H
-#define QQUICKSTYLEITEMSPINBOX_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquickspinbox_p.h>
-
-class QQuickStyleItemSpinBox : public QQuickStyleItem
-{
- Q_OBJECT
-
- Q_PROPERTY(SubControl subControl MEMBER m_subControl)
-
- QML_NAMED_ELEMENT(SpinBox)
-
-public:
- enum SubControl {
- Frame = 1,
- Up,
- Down,
- };
- Q_ENUM(SubControl)
-
- QFont styleFont(QQuickItem *control) const override;
-
-protected:
- void connectToControl() const override;
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionSpinBox &styleOption) const;
-
-private:
- SubControl m_subControl = Frame;
-};
-
-#endif // QQUICKSTYLEITEMSPINBOX_H
diff --git a/src/quicknativestyle/items/qquickstyleitemtextfield.cpp b/src/quicknativestyle/items/qquickstyleitemtextfield.cpp
deleted file mode 100644
index cd7d35aa..00000000
--- a/src/quicknativestyle/items/qquickstyleitemtextfield.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleitemtextfield.h"
-
-QFont QQuickStyleItemTextField::styleFont(QQuickItem *control) const
-{
- return style()->font(QStyle::CE_ComboBoxLabel, controlSize(control));
-}
-
-void QQuickStyleItemTextField::connectToControl() const
-{
- QQuickStyleItem::connectToControl();
- auto textField = control<QQuickTextField>();
- connect(textField, &QQuickTextField::readOnlyChanged, this, &QQuickStyleItem::markImageDirty);
- connect(textField, &QQuickTextField::focusChanged, this, &QQuickStyleItem::markImageDirty);
-}
-
-StyleItemGeometry QQuickStyleItemTextField::calculateGeometry()
-{
- QStyleOptionFrame styleOption;
- initStyleOption(styleOption);
- StyleItemGeometry geometry;
-
- geometry.minimumSize = style()->sizeFromContents(QStyle::CT_LineEdit, &styleOption, QSize(0, 0));
- geometry.implicitSize = style()->sizeFromContents(QStyle::CT_LineEdit, &styleOption, contentSize());
- styleOption.rect = QRect(QPoint(0, 0), geometry.implicitSize);
- geometry.layoutRect = styleOption.rect;
- geometry.contentRect = style()->subElementRect(QStyle::SE_LineEditContents, &styleOption);
- geometry.ninePatchMargins = style()->ninePatchMargins(QStyle::CE_ShapedFrame, &styleOption, geometry.minimumSize);
- geometry.focusFrameRadius = style()->pixelMetric(QStyle::PM_TextFieldFocusFrameRadius, &styleOption);
-
- return geometry;
-}
-
-void QQuickStyleItemTextField::paintEvent(QPainter *painter) const
-{
- QStyleOptionFrame styleOption;
- initStyleOption(styleOption);
- style()->drawPrimitive(QStyle::PE_PanelLineEdit, &styleOption, painter);
-}
-
-void QQuickStyleItemTextField::initStyleOption(QStyleOptionFrame &styleOption) const
-{
- initStyleOptionBase(styleOption);
- auto textField = control<QQuickTextField>();
-
- styleOption.lineWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth, &styleOption);
- styleOption.midLineWidth = 0;
- styleOption.state |= QStyle::State_Sunken;
- if (textField->isReadOnly())
- styleOption.state |= QStyle::State_ReadOnly;
-}
diff --git a/src/quicknativestyle/items/qquickstyleitemtextfield.h b/src/quicknativestyle/items/qquickstyleitemtextfield.h
deleted file mode 100644
index 35aaf753..00000000
--- a/src/quicknativestyle/items/qquickstyleitemtextfield.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTYLEITEMTEXTFIELD_H
-#define QQUICKSTYLEITEMTEXTFIELD_H
-
-#include "qquickstyleitem.h"
-#include <QtQuickTemplates2/private/qquicktextfield_p.h>
-
-class QQuickStyleItemTextField : public QQuickStyleItem
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(TextField)
-
-public:
- QFont styleFont(QQuickItem *control) const override;
-
-protected:
- void connectToControl() const override;
- void paintEvent(QPainter *painter) const override;
- StyleItemGeometry calculateGeometry() override;
-
-private:
- void initStyleOption(QStyleOptionFrame &styleOption) const;
-};
-
-#endif // QQUICKSTYLEITEMTEXTFIELD_H
diff --git a/src/quicknativestyle/qstyle/mac/mac.pri b/src/quicknativestyle/qstyle/mac/mac.pri
deleted file mode 100644
index 2f7ee7d4..00000000
--- a/src/quicknativestyle/qstyle/mac/mac.pri
+++ /dev/null
@@ -1,12 +0,0 @@
-LIBS_PRIVATE += -framework AppKit
-
-INCLUDEPATH += $$PWD
-
-HEADERS += \
- $$PWD/qquickmacstyle_mac_p.h \
- $$PWD/qquickmacstyle_mac_p_p.h
-
-SOURCES +=
-
-OBJECTIVE_SOURCES += \
- $$PWD/qquickmacstyle_mac.mm
diff --git a/src/quicknativestyle/qstyle/mac/qquickmacstyle_mac.mm b/src/quicknativestyle/qstyle/mac/qquickmacstyle_mac.mm
deleted file mode 100644
index 5d061667..00000000
--- a/src/quicknativestyle/qstyle/mac/qquickmacstyle_mac.mm
+++ /dev/null
@@ -1,6072 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*
- Note: The qdoc comments for QMacStyle are contained in
- .../doc/src/qstyles.qdoc.
-*/
-
-#include <AppKit/AppKit.h>
-
-#include "qquickmacstyle_mac_p.h"
-#include "qquickmacstyle_mac_p_p.h"
-#include "qquickstylehelper_p.h"
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-#define QMAC_QAQUASTYLE_SIZE_CONSTRAIN
-//#define DEBUG_SIZE_CONSTRAINT
-
-#include <QtCore/qoperatingsystemversion.h>
-#include <QtCore/qvariant.h>
-#include <QtCore/qvarlengtharray.h>
-
-#include <QtGui/qpainterpath.h>
-#include <QtGui/qpa/qplatformnativeinterface.h>
-#include <QtGui/qpa/qplatformfontdatabase.h>
-#include <QtGui/qpa/qplatformtheme.h>
-
-#include <QtCore/private/qcore_mac_p.h>
-#include <QtGui/private/qcoregraphics_p.h>
-#include <QtGui/private/qguiapplication_p.h>
-
-#include <cmath>
-
-QT_USE_NAMESPACE
-
-// OBS! Changing QT_MANGLE_NAMESPACE and QT_NAMESPACE_ALIAS_OBJC_CLASS to take
-// both QT_NAMESPACE and QQC2_NAMESPACE into account (and not only QT_NAMESPACE, which
-// would otherwise be the case). This will make it possible to link in both widgets and
-// controls in the same application when building statically.
-#undef QT_MANGLE_NAMESPACE
-#undef QT_NAMESPACE_ALIAS_OBJC_CLASS
-
-#define QQC2_MANGLE1(a, b) a##_##b
-#define QQC2_MANGLE2(a, b) QQC2_MANGLE1(a, b)
-
-#if defined(QT_NAMESPACE)
- #define QT_MANGLE_NAMESPACE(name) QQC2_MANGLE2(QQC2_MANGLE1(name, QQC2_NAMESPACE), QT_NAMESPACE)
- #define QT_NAMESPACE_ALIAS_OBJC_CLASS(name) @compatibility_alias name QT_MANGLE_NAMESPACE(name)
-#else
- #define QT_MANGLE_NAMESPACE(name) QQC2_MANGLE2(name, QQC2_NAMESPACE)
- #define QT_NAMESPACE_ALIAS_OBJC_CLASS(name) @compatibility_alias name QT_MANGLE_NAMESPACE(name)
-#endif
-
-@interface QT_MANGLE_NAMESPACE(QIndeterminateProgressIndicator) : NSProgressIndicator
-
-@property (readonly, nonatomic) NSInteger animators;
-
-- (instancetype)init;
-
-- (void)startAnimation;
-- (void)stopAnimation;
-
-- (void)drawWithFrame:(CGRect)rect inView:(NSView *)view;
-
-@end
-
-QT_NAMESPACE_ALIAS_OBJC_CLASS(QIndeterminateProgressIndicator);
-
-@implementation QIndeterminateProgressIndicator
-
-- (instancetype)init
-{
- if ((self = [super init])) {
- _animators = 0;
- self.indeterminate = YES;
- self.usesThreadedAnimation = NO;
- self.alphaValue = 0.0;
- }
-
- return self;
-}
-
-- (void)startAnimation
-{
- if (_animators == 0) {
- self.hidden = NO;
- [super startAnimation:self];
- }
- ++_animators;
-}
-
-- (void)stopAnimation
-{
- --_animators;
- if (_animators == 0) {
- [super stopAnimation:self];
- self.hidden = YES;
- [self removeFromSuperviewWithoutNeedingDisplay];
- }
-}
-
-- (void)drawWithFrame:(CGRect)rect inView:(NSView *)view
-{
- // The alphaValue change is not strictly necessary, but feels safer.
- self.alphaValue = 1.0;
- if (self.superview != view)
- [view addSubview:self];
- if (!CGRectEqualToRect(self.frame, rect))
- self.frame = rect;
- [self drawRect:rect];
- self.alphaValue = 0.0;
-}
-
-@end
-
-@interface QT_MANGLE_NAMESPACE(QVerticalSplitView) : NSSplitView
-- (BOOL)isVertical;
-@end
-
-QT_NAMESPACE_ALIAS_OBJC_CLASS(QVerticalSplitView);
-
-@implementation QVerticalSplitView
-- (BOOL)isVertical
-{
- return YES;
-}
-@end
-
-// See render code in drawPrimitive(PE_FrameTabWidget)
-@interface QT_MANGLE_NAMESPACE(QDarkNSBox) : NSBox
-@end
-
-QT_NAMESPACE_ALIAS_OBJC_CLASS(QDarkNSBox);
-
-@implementation QDarkNSBox
-- (instancetype)init
-{
- if ((self = [super init])) {
- self.title = @"";
- self.titlePosition = NSNoTitle;
- self.boxType = NSBoxCustom;
- self.cornerRadius = 3;
- self.borderColor = [NSColor.controlColor colorWithAlphaComponent:0.1];
- self.fillColor = [NSColor.darkGrayColor colorWithAlphaComponent:0.2];
- }
-
- return self;
-}
-
-- (void)drawRect:(NSRect)rect
-{
- [super drawRect:rect];
-}
-@end
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2_NAMESPACE {
-
-// The following constants are used for adjusting the size
-// of push buttons so that they are drawn inside their bounds.
-const int QMacStylePrivate::PushButtonLeftOffset = 6;
-const int QMacStylePrivate::PushButtonRightOffset = 12;
-const int QMacStylePrivate::PushButtonContentPadding = 6;
-
-QVector<QPointer<QObject> > QMacStylePrivate::scrollBars;
-
-// Title bar gradient colors for Lion were determined by inspecting PSDs exported
-// using CoreUI's CoreThemeDocument; there is no public API to retrieve them
-
-static QLinearGradient titlebarGradientActive()
-{
- static QLinearGradient darkGradient = [](){
- QLinearGradient gradient;
- // FIXME: colors are chosen somewhat arbitrarily and could be fine-tuned,
- // or ideally determined by calling a native API.
- gradient.setColorAt(0, QColor(47, 47, 47));
- return gradient;
- }();
- static QLinearGradient lightGradient = [](){
- QLinearGradient gradient;
- gradient.setColorAt(0, QColor(235, 235, 235));
- gradient.setColorAt(0.5, QColor(210, 210, 210));
- gradient.setColorAt(0.75, QColor(195, 195, 195));
- gradient.setColorAt(1, QColor(180, 180, 180));
- return gradient;
- }();
- return qt_mac_applicationIsInDarkMode() ? darkGradient : lightGradient;
-}
-
-static QLinearGradient titlebarGradientInactive()
-{
- static QLinearGradient darkGradient = [](){
- QLinearGradient gradient;
- gradient.setColorAt(1, QColor(42, 42, 42));
- return gradient;
- }();
- static QLinearGradient lightGradient = [](){
- QLinearGradient gradient;
- gradient.setColorAt(0, QColor(250, 250, 250));
- gradient.setColorAt(1, QColor(225, 225, 225));
- return gradient;
- }();
- return qt_mac_applicationIsInDarkMode() ? darkGradient : lightGradient;
-}
-
-/*
- Since macOS 10.14 AppKit is using transparency more extensively, especially for the
- dark theme. Inactive buttons, for example, are semi-transparent. And we use them to
- draw tab widget's tab bar. The combination of NSBox (also a part of tab widget)
- and these transparent buttons gives us an undesired side-effect: an outline of
- NSBox is visible through transparent buttons. To avoid this, we have this hack below:
- we clip the area where the line would be visible through the buttons. The area we
- want to clip away can be described as an intersection of the option's rect and
- the tab widget's tab bar rect. But some adjustments are required, since those rects
- are anyway adjusted during the rendering and they are not exactly what you'll see on
- the screen. Thus this switch-statement inside.
-*/
-static void clipTabBarFrame(const QStyleOption *option, const QMacStyle *style, CGContextRef ctx)
-{
- Q_ASSERT(option);
- Q_ASSERT(style);
- Q_ASSERT(ctx);
-
- if (qt_mac_applicationIsInDarkMode()) {
-// QTabWidget *tabWidget = qobject_cast<QTabWidget *>(option->styleObject);
-// Q_ASSERT(tabWidget);
-
-// QRect tabBarRect = style->subElementRect(QStyle::SE_TabWidgetTabBar, option, tabWidget).adjusted(2, 0, -3, 0);
-// switch (tabWidget->tabPosition()) {
-// case QTabWidget::South:
-// tabBarRect.setY(tabBarRect.y() + tabBarRect.height() / 2);
-// break;
-// case QTabWidget::North:
-// case QTabWidget::West:
-// tabBarRect = tabBarRect.adjusted(0, 2, 0, -2);
-// break;
-// case QTabWidget::East:
-// tabBarRect = tabBarRect.adjusted(tabBarRect.width() / 2, 2, tabBarRect.width() / 2, -2);
-// }
-
-// const QRegion clipPath = QRegion(option->rect) - tabBarRect;
-// QVarLengthArray<CGRect, 3> cgRects;
-// for (const QRect &qtRect : clipPath)
-// cgRects.push_back(qtRect.toCGRect());
-// if (cgRects.size())
-// CGContextClipToRects(ctx, &cgRects[0], size_t(cgRects.size()));
- }
-}
-
-static const QColor titlebarSeparatorLineActive(111, 111, 111);
-static const QColor titlebarSeparatorLineInactive(131, 131, 131);
-static const QColor darkModeSeparatorLine(88, 88, 88);
-
-// Gradient colors used for the dock widget title bar and
-// non-unifed tool bar background.
-static const QColor lightMainWindowGradientBegin(240, 240, 240);
-static const QColor lightMainWindowGradientEnd(200, 200, 200);
-static const QColor darkMainWindowGradientBegin(47, 47, 47);
-static const QColor darkMainWindowGradientEnd(47, 47, 47);
-
-static const int DisclosureOffset = 4;
-
-static const qreal titleBarIconTitleSpacing = 5;
-static const qreal titleBarTitleRightMargin = 12;
-static const qreal titleBarButtonSpacing = 8;
-
-// Tab bar colors
-// active: window is active
-// selected: tab is selected
-// hovered: tab is hovered
-bool isDarkMode() { return qt_mac_applicationIsInDarkMode(); }
-
-static const QColor lightTabBarTabBackgroundActive(190, 190, 190);
-static const QColor darkTabBarTabBackgroundActive(38, 38, 38);
-static const QColor tabBarTabBackgroundActive() { return isDarkMode() ? darkTabBarTabBackgroundActive : lightTabBarTabBackgroundActive; }
-
-static const QColor lightTabBarTabBackgroundActiveHovered(178, 178, 178);
-static const QColor darkTabBarTabBackgroundActiveHovered(32, 32, 32);
-static const QColor tabBarTabBackgroundActiveHovered() { return isDarkMode() ? darkTabBarTabBackgroundActiveHovered : lightTabBarTabBackgroundActiveHovered; }
-
-static const QColor lightTabBarTabBackgroundActiveSelected(211, 211, 211);
-static const QColor darkTabBarTabBackgroundActiveSelected(52, 52, 52);
-static const QColor tabBarTabBackgroundActiveSelected() { return isDarkMode() ? darkTabBarTabBackgroundActiveSelected : lightTabBarTabBackgroundActiveSelected; }
-
-static const QColor lightTabBarTabBackground(227, 227, 227);
-static const QColor darkTabBarTabBackground(38, 38, 38);
-static const QColor tabBarTabBackground() { return isDarkMode() ? darkTabBarTabBackground : lightTabBarTabBackground; }
-
-static const QColor lightTabBarTabBackgroundSelected(246, 246, 246);
-static const QColor darkTabBarTabBackgroundSelected(52, 52, 52);
-static const QColor tabBarTabBackgroundSelected() { return isDarkMode() ? darkTabBarTabBackgroundSelected : lightTabBarTabBackgroundSelected; }
-
-static const QColor lightTabBarTabLineActive(160, 160, 160);
-static const QColor darkTabBarTabLineActive(90, 90, 90);
-static const QColor tabBarTabLineActive() { return isDarkMode() ? darkTabBarTabLineActive : lightTabBarTabLineActive; }
-
-static const QColor lightTabBarTabLineActiveHovered(150, 150, 150);
-static const QColor darkTabBarTabLineActiveHovered(90, 90, 90);
-static const QColor tabBarTabLineActiveHovered() { return isDarkMode() ? darkTabBarTabLineActiveHovered : lightTabBarTabLineActiveHovered; }
-
-static const QColor lightTabBarTabLine(210, 210, 210);
-static const QColor darkTabBarTabLine(90, 90, 90);
-static const QColor tabBarTabLine() { return isDarkMode() ? darkTabBarTabLine : lightTabBarTabLine; }
-
-static const QColor lightTabBarTabLineSelected(189, 189, 189);
-static const QColor darkTabBarTabLineSelected(90, 90, 90);
-static const QColor tabBarTabLineSelected() { return isDarkMode() ? darkTabBarTabLineSelected : lightTabBarTabLineSelected; }
-
-static const QColor tabBarCloseButtonBackgroundHovered(162, 162, 162);
-static const QColor tabBarCloseButtonBackgroundPressed(153, 153, 153);
-static const QColor tabBarCloseButtonBackgroundSelectedHovered(192, 192, 192);
-static const QColor tabBarCloseButtonBackgroundSelectedPressed(181, 181, 181);
-static const QColor tabBarCloseButtonCross(100, 100, 100);
-static const QColor tabBarCloseButtonCrossSelected(115, 115, 115);
-
-static const int closeButtonSize = 14;
-static const qreal closeButtonCornerRadius = 2.0;
-
-#ifndef QT_NO_ACCESSIBILITY // This ifdef to avoid "unused function" warning.
-QBrush brushForToolButton(bool isOnKeyWindow)
-{
- // When a toolbutton in a toolbar is in the 'ON' state, we draw a
- // partially transparent background. The colors must be different
- // for 'Aqua' and 'DarkAqua' appearances though.
- if (isDarkMode())
- return isOnKeyWindow ? QColor(73, 73, 73, 100) : QColor(56, 56, 56, 100);
-
- return isOnKeyWindow ? QColor(0, 0, 0, 28) : QColor(0, 0, 0, 21);
-}
-#endif // QT_NO_ACCESSIBILITY
-
-static const int headerSectionArrowHeight = 6;
-static const int headerSectionSeparatorInset = 2;
-
-// One for each of QStyleHelper::WidgetSizePolicy
-static const QMarginsF comboBoxFocusRingMargins[3] = {
- { 0.5, 2, 3.5, 4 },
- { 0.5, 1, 2.5, 4 },
- { 0.5, 1.5, 2.5, 3.5 }
-};
-
-static const QMarginsF pullDownButtonShadowMargins[3] = {
- { 0.5, -1, 0.5, 2 },
- { 0.5, -1.5, 0.5, 2.5 },
- { 0.5, 0, 0.5, 1 }
-};
-
-static const QMarginsF pushButtonShadowMargins[3] = {
- { 1.5, -1.5, 1.5, 4.5 },
- { 1.5, -1, 1.5, 4 },
- { 1.5, 0.5, 1.5, 2.5 }
-};
-
-// These are frame heights as reported by Xcode 9's Interface Builder.
-// Alignemnet rectangle's heights match for push and popup buttons
-// with respective values 21, 18 and 15.
-
-static const qreal comboBoxDefaultHeight[3] = {
- 26, 22, 19
-};
-
-static const qreal pushButtonDefaultHeight[3] = {
- 32, 28, 16
-};
-
-static const qreal popupButtonDefaultHeight[3] = {
- 26, 22, 15
-};
-
-static const int toolButtonArrowSize = 7;
-static const int toolButtonArrowMargin = 2;
-
-static const qreal focusRingWidth = 3.5;
-
-// An application can force 'Aqua' theme while the system theme is one of
-// the 'Dark' variants. Since in Qt we sometimes use NSControls and even
-// NSCells directly without attaching them to any view hierarchy, we have
-// to set NSAppearance.currentAppearance to 'Aqua' manually, to make sure
-// the correct rendering path is triggered. Apple recommends us to un-set
-// the current appearance back after we finished with drawing. This is what
-// AppearanceSync is for.
-
-class AppearanceSync {
-public:
- AppearanceSync()
- {
-#if QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_14)
- if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::MacOSMojave
- && !qt_mac_applicationIsInDarkMode()) {
- auto requiredAppearanceName = NSApplication.sharedApplication.effectiveAppearance.name;
- if (![NSAppearance.currentAppearance.name isEqualToString:requiredAppearanceName]) {
- previous = NSAppearance.currentAppearance;
- NSAppearance.currentAppearance = [NSAppearance appearanceNamed:requiredAppearanceName];
- }
- }
-#endif // QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_14)
- }
-
- ~AppearanceSync()
- {
- if (previous)
- NSAppearance.currentAppearance = previous;
- }
-
-private:
- NSAppearance *previous = nil;
-
- Q_DISABLE_COPY(AppearanceSync)
-};
-
-static bool setupScroller(NSScroller *scroller, const QStyleOptionSlider *sb)
-{
- const qreal length = sb->maximum - sb->minimum + sb->pageStep;
- if (qFuzzyIsNull(length))
- return false;
- const qreal proportion = sb->pageStep / length;
- const qreal range = qreal(sb->maximum - sb->minimum);
- qreal value = range ? qreal(sb->sliderValue - sb->minimum) / range : 0;
- if (sb->orientation == Qt::Horizontal && sb->direction == Qt::RightToLeft)
- value = 1.0 - value;
-
- scroller.frame = sb->rect.toCGRect();
- scroller.floatValue = value;
- scroller.knobProportion = proportion;
- return true;
-}
-
-static bool setupSlider(NSSlider *slider, const QStyleOptionSlider *sl)
-{
- if (sl->minimum >= sl->maximum)
- return false;
-
- slider.frame = sl->rect.toCGRect();
- slider.minValue = sl->minimum;
- slider.maxValue = sl->maximum;
- slider.intValue = sl->sliderPosition;
- slider.enabled = sl->state & QStyle::State_Enabled;
- if (sl->tickPosition != QStyleOptionSlider::NoTicks) {
- // Set numberOfTickMarks, but TicksBothSides will be treated differently
- int interval = sl->tickInterval;
- if (interval == 0) {
- interval = sl->pageStep;
- if (interval == 0)
- interval = sl->singleStep;
- if (interval == 0)
- interval = 1; // return false?
- }
- slider.numberOfTickMarks = 1 + ((sl->maximum - sl->minimum) / interval);
-
- const bool ticksAbove = sl->tickPosition == QStyleOptionSlider::TicksAbove;
- if (sl->orientation == Qt::Horizontal)
- slider.tickMarkPosition = ticksAbove ? NSTickMarkPositionAbove : NSTickMarkPositionBelow;
- else
- slider.tickMarkPosition = ticksAbove ? NSTickMarkPositionLeading : NSTickMarkPositionTrailing;
- } else {
- slider.numberOfTickMarks = 0;
- }
-
- // Ensure the values set above are reflected when asking
- // the cell for its metrics and to draw itself.
- [slider layoutSubtreeIfNeeded];
-
- return true;
-}
-
-static bool isInMacUnifiedToolbarArea(QWindow *window, int windowY)
-{
- QPlatformNativeInterface *nativeInterface = QGuiApplication::platformNativeInterface();
- QPlatformNativeInterface::NativeResourceForIntegrationFunction function =
- nativeInterface->nativeResourceFunctionForIntegration("testContentBorderPosition");
- if (!function)
- return false; // Not Cocoa platform plugin.
-
- typedef bool (*TestContentBorderPositionFunction)(QWindow *, int);
- return (reinterpret_cast<TestContentBorderPositionFunction>(function))(window, windowY);
-}
-
-
-static void drawTabCloseButton(QPainter *p, bool hover, bool selected, bool pressed, bool documentMode)
-{
- p->setRenderHints(QPainter::Antialiasing);
- QRect rect(0, 0, closeButtonSize, closeButtonSize);
- const int width = rect.width();
- const int height = rect.height();
-
- if (hover) {
- // draw background circle
- QColor background;
- if (selected) {
- if (documentMode)
- background = pressed ? tabBarCloseButtonBackgroundSelectedPressed : tabBarCloseButtonBackgroundSelectedHovered;
- else
- background = QColor(255, 255, 255, pressed ? 150 : 100); // Translucent white
- } else {
- background = pressed ? tabBarCloseButtonBackgroundPressed : tabBarCloseButtonBackgroundHovered;
- if (!documentMode)
- background = background.lighter(pressed ? 135 : 140); // Lighter tab background, lighter color
- }
-
- p->setPen(Qt::transparent);
- p->setBrush(background);
- p->drawRoundedRect(rect, closeButtonCornerRadius, closeButtonCornerRadius);
- }
-
- // draw cross
- const int margin = 3;
- QPen crossPen;
- crossPen.setColor(selected ? (documentMode ? tabBarCloseButtonCrossSelected : Qt::white) : tabBarCloseButtonCross);
- crossPen.setWidthF(1.1);
- crossPen.setCapStyle(Qt::FlatCap);
- p->setPen(crossPen);
- p->drawLine(margin, margin, width - margin, height - margin);
- p->drawLine(margin, height - margin, width - margin, margin);
-}
-
-QRect rotateTabPainter(QPainter *p, QStyleOptionTab::Shape shape, QRect tabRect)
-{
- const auto tabDirection = QMacStylePrivate::tabDirection(shape);
- if (QMacStylePrivate::verticalTabs(tabDirection)) {
- int newX, newY, newRot;
- if (tabDirection == QMacStylePrivate::East) {
- newX = tabRect.width();
- newY = tabRect.y();
- newRot = 90;
- } else {
- newX = 0;
- newY = tabRect.y() + tabRect.height();
- newRot = -90;
- }
- tabRect.setRect(0, 0, tabRect.height(), tabRect.width());
- QTransform transform;
- transform.translate(newX, newY);
- transform.rotate(newRot);
- p->setTransform(transform, true);
- }
- return tabRect;
-}
-
-void drawTabShape(QPainter *p, const QStyleOptionTab *tabOpt, bool isUnified, int tabOverlap)
-{
- QRect rect = tabOpt->rect;
- if (QMacStylePrivate::verticalTabs(QMacStylePrivate::tabDirection(tabOpt->shape)))
- rect = rect.adjusted(-tabOverlap, 0, 0, 0);
- else
- rect = rect.adjusted(0, -tabOverlap, 0, 0);
-
- p->translate(rect.x(), rect.y());
- rect.moveLeft(0);
- rect.moveTop(0);
- const QRect tabRect = rotateTabPainter(p, tabOpt->shape, rect);
-
- const int width = tabRect.width();
- const int height = tabRect.height();
- const bool active = (tabOpt->state & QStyle::State_Active);
- const bool selected = (tabOpt->state & QStyle::State_Selected);
-
- const QRect bodyRect(1, 2, width - 2, height - 3);
- const QRect topLineRect(1, 0, width - 2, 1);
- const QRect bottomLineRect(1, height - 1, width - 2, 1);
- if (selected) {
- // fill body
- if (tabOpt->documentMode && isUnified) {
- p->save();
- p->setCompositionMode(QPainter::CompositionMode_Source);
- p->fillRect(tabRect, QColor(Qt::transparent));
- p->restore();
- } else if (active) {
- p->fillRect(bodyRect, tabBarTabBackgroundActiveSelected());
- // top line
- p->fillRect(topLineRect, tabBarTabLineSelected());
- } else {
- p->fillRect(bodyRect, tabBarTabBackgroundSelected());
- }
- } else {
- // when the mouse is over non selected tabs they get a new color
- const bool hover = (tabOpt->state & QStyle::State_MouseOver);
- if (hover) {
- // fill body
- p->fillRect(bodyRect, tabBarTabBackgroundActiveHovered());
- // bottom line
- p->fillRect(bottomLineRect, isDarkMode() ? QColor(Qt::black) : tabBarTabLineActiveHovered());
- }
- }
-
- // separator lines between tabs
- const QRect leftLineRect(0, 1, 1, height - 2);
- const QRect rightLineRect(width - 1, 1, 1, height - 2);
- const QColor separatorLineColor = active ? tabBarTabLineActive() : tabBarTabLine();
- p->fillRect(leftLineRect, separatorLineColor);
- p->fillRect(rightLineRect, separatorLineColor);
-}
-
-void drawTabBase(QPainter *p, const QStyleOptionTabBarBase *tbb)
-{
- QRect r = tbb->rect;
-// if (QMacStylePrivate::verticalTabs(QMacStylePrivate::tabDirection(tbb->shape)))
-// r.setWidth(w->width());
-// else
-// r.setHeight(w->height());
-
- const QRect tabRect = rotateTabPainter(p, tbb->shape, r);
- const int width = tabRect.width();
- const int height = tabRect.height();
- const bool active = (tbb->state & QStyle::State_Active);
-
- // fill body
- const QRect bodyRect(0, 1, width, height - 1);
- const QColor bodyColor = active ? tabBarTabBackgroundActive() : tabBarTabBackground();
- p->fillRect(bodyRect, bodyColor);
-
- // top line
- const QRect topLineRect(0, 0, width, 1);
- const QColor topLineColor = active ? tabBarTabLineActive() : tabBarTabLine();
- p->fillRect(topLineRect, topLineColor);
-
- // bottom line
- const QRect bottomLineRect(0, height - 1, width, 1);
- bool isDocument = false;
-// if (const QTabBar *tabBar = qobject_cast<const QTabBar*>(w))
-// isDocument = tabBar->documentMode();
- const QColor bottomLineColor = isDocument && isDarkMode() ? QColor(Qt::black) : active ? tabBarTabLineActive() : tabBarTabLine();
- p->fillRect(bottomLineRect, bottomLineColor);
-}
-
-static QStyleHelper::WidgetSizePolicy getControlSize(const QStyleOption *option)
-{
- const auto wsp = QStyleHelper::widgetSizePolicy(option);
- if (wsp == QStyleHelper::SizeDefault)
- return QStyleHelper::SizeLarge;
-
- return wsp;
-}
-
-static QString qt_mac_removeMnemonics(const QString &original)
-{
- QString returnText(original.size(), QChar());
- int finalDest = 0;
- int currPos = 0;
- int l = original.length();
- while (l) {
- if (original.at(currPos) == QLatin1Char('&')) {
- ++currPos;
- --l;
- if (l == 0)
- break;
- } else if (original.at(currPos) == QLatin1Char('(') && l >= 4 &&
- original.at(currPos + 1) == QLatin1Char('&') &&
- original.at(currPos + 2) != QLatin1Char('&') &&
- original.at(currPos + 3) == QLatin1Char(')')) {
- /* remove mnemonics its format is "\s*(&X)" */
- int n = 0;
- while (finalDest > n && returnText.at(finalDest - n - 1).isSpace())
- ++n;
- finalDest -= n;
- currPos += 4;
- l -= 4;
- continue;
- }
- returnText[finalDest] = original.at(currPos);
- ++currPos;
- ++finalDest;
- --l;
- }
- returnText.truncate(finalDest);
- return returnText;
-}
-
-static bool qt_macWindowMainWindow(const QWindow *window)
-{
- if (window->handle()) {
- if (NSWindow *nswindow = static_cast<NSWindow*>(
- QGuiApplication::platformNativeInterface()->
- nativeResourceForWindow(QByteArrayLiteral("nswindow"),
- const_cast<QWindow *>(window)))) {
- return [nswindow isMainWindow];
- }
- }
- return false;
-}
-
-#define LargeSmallMini(option, large, small, mini) \
- (option->state & QStyle::State_Small) ? small : ((option->state & QStyle::State_Mini) ? mini : large)
-
-/*****************************************************************************
- QMacCGStyle globals
- *****************************************************************************/
-const int macItemFrame = 2; // menu item frame width
-const int macItemHMargin = 3; // menu item hor text margin
-const int macRightBorder = 12; // right border on mac
-
-/*****************************************************************************
- QMacCGStyle utility functions
- *****************************************************************************/
-
-enum QAquaMetric {
- // Prepend kThemeMetric to get the HIToolBox constant.
- // Represents the values already used in QMacStyle.
- CheckBoxHeight = 0,
- CheckBoxWidth,
- EditTextFrameOutset,
- FocusRectOutset,
- HSliderHeight,
- HSliderTickHeight,
- LargeProgressBarThickness,
- ListHeaderHeight,
- MenuSeparatorHeight, // GetThemeMenuSeparatorHeight
- MiniCheckBoxHeight,
- MiniCheckBoxWidth,
- MiniHSliderHeight,
- MiniHSliderTickHeight,
- MiniPopupButtonHeight,
- MiniPushButtonHeight,
- MiniRadioButtonHeight,
- MiniRadioButtonWidth,
- MiniVSliderTickWidth,
- MiniVSliderWidth,
- NormalProgressBarThickness,
- PopupButtonHeight,
- ProgressBarShadowOutset,
- PushButtonHeight,
- RadioButtonHeight,
- RadioButtonWidth,
- SeparatorSize,
- SmallCheckBoxHeight,
- SmallCheckBoxWidth,
- SmallHSliderHeight,
- SmallHSliderTickHeight,
- SmallPopupButtonHeight,
- SmallProgressBarShadowOutset,
- SmallPushButtonHeight,
- SmallRadioButtonHeight,
- SmallRadioButtonWidth,
- SmallVSliderTickWidth,
- SmallVSliderWidth,
- VSliderTickWidth,
- VSliderWidth
-};
-
-static const int qt_mac_aqua_metrics[] = {
- // Values as of macOS 10.12.4 and Xcode 8.3.1
- 18 /* CheckBoxHeight */,
- 18 /* CheckBoxWidth */,
- 1 /* EditTextFrameOutset */,
- 4 /* FocusRectOutset */,
- 22 /* HSliderHeight */,
- 5 /* HSliderTickHeight */,
- 16 /* LargeProgressBarThickness */,
- 17 /* ListHeaderHeight */,
- 12 /* MenuSeparatorHeight, aka GetThemeMenuSeparatorHeight */,
- 11 /* MiniCheckBoxHeight */,
- 11 /* MiniCheckBoxWidth */,
- 12 /* MiniHSliderHeight */,
- 4 /* MiniHSliderTickHeight */,
- 15 /* MiniPopupButtonHeight */,
- 16 /* MiniPushButtonHeight */,
- 11 /* MiniRadioButtonHeight */,
- 11 /* MiniRadioButtonWidth */,
- 4 /* MiniVSliderTickWidth */,
- 12 /* MiniVSliderWidth */,
- 12 /* NormalProgressBarThickness */,
- 20 /* PopupButtonHeight */,
- 4 /* ProgressBarShadowOutset */,
- 20 /* PushButtonHeight */,
- 18 /* RadioButtonHeight */,
- 18 /* RadioButtonWidth */,
- 1 /* SeparatorSize */,
- 16 /* SmallCheckBoxHeight */,
- 14 /* SmallCheckBoxWidth */,
- 15 /* SmallHSliderHeight */,
- 4 /* SmallHSliderTickHeight */,
- 17 /* SmallPopupButtonHeight */,
- 2 /* SmallProgressBarShadowOutset */,
- 17 /* SmallPushButtonHeight */,
- 15 /* SmallRadioButtonHeight */,
- 15 /* SmallRadioButtonWidth */,
- 4 /* SmallVSliderTickWidth */,
- 15 /* SmallVSliderWidth */,
- 5 /* VSliderTickWidth */,
- 22 /* VSliderWidth */
-};
-
-static inline int qt_mac_aqua_get_metric(QAquaMetric m)
-{
- return qt_mac_aqua_metrics[m];
-}
-
-static QSize qt_aqua_get_known_size(QStyle::ContentsType ct, const QStyleOption *opt,
- QSize szHint, QStyleHelper::WidgetSizePolicy sz)
-{
- QSize ret(-1, -1);
- if (sz != QStyleHelper::SizeSmall && sz != QStyleHelper::SizeLarge && sz != QStyleHelper::SizeMini) {
- qDebug("Not sure how to return this...");
- return ret;
- }
-// if ((widget && widget->testAttribute(Qt::WA_SetFont)) || !QApplication::desktopSettingsAware()) {
-// // If you're using a custom font and it's bigger than the default font,
-// // then no constraints for you. If you are smaller, we can try to help you out
-// QFont font = qt_app_fonts_hash()->value(widget->metaObject()->className(), QFont());
-// if (widget->font().pointSize() > font.pointSize())
-// return ret;
-// }
-
- // TODO: investigate how this function is used. 'ct' can/should be
- // filled out correctly in the styleoption already from the styleitem?
- Q_ASSERT(ct != QStyle::CT_CustomBase);
-// if (ct == QStyle::CT_CustomBase && widget) {
-//#if QT_CONFIG(pushbutton)
-// if (qobject_cast<const QPushButton *>(widg))
-// ct = QStyle::CT_PushButton;
-//#endif
-// else if (qobject_cast<const QRadioButton *>(widget))
-// ct = QStyle::CT_RadioButton;
-//#if QT_CONFIG(checkbox)
-// else if (qobject_cast<const QCheckBox *>(widg))
-// ct = QStyle::CT_CheckBox;
-//#endif
-//#if QT_CONFIG(combobox)
-// else if (qobject_cast<const QComboBox *>(widg))
-// ct = QStyle::CT_ComboBox;
-//#endif
-//#if QT_CONFIG(toolbutton)
-// else if (qobject_cast<const QToolButton *>(widg))
-// ct = QStyle::CT_ToolButton;
-//#endif
-// else if (qobject_cast<const QSlider *>(widget))
-// ct = QStyle::CT_Slider;
-//#if QT_CONFIG(progressbar)
-// else if (qobject_cast<const QProgressBar *>(widg))
-// ct = QStyle::CT_ProgressBar;
-//#endif
-//#if QT_CONFIG(lineedit)
-// else if (qobject_cast<const QLineEdit *>(widg))
-// ct = QStyle::CT_LineEdit;
-//#endif
-//#if QT_CONFIG(itemviews)
-// else if (qobject_cast<const QHeaderView *>(widg))
-// ct = QStyle::CT_HeaderSection;
-//#endif
-//#if QT_CONFIG(menubar)
-// else if (qobject_cast<const QMenuBar *>(widg))
-// ct = QStyle::CT_MenuBar;
-//#endif
-//#if QT_CONFIG(sizegrip)
-// else if (qobject_cast<const QSizeGrip *>(widg))
-// ct = QStyle::CT_SizeGrip;
-//#endif
-// else
-// return ret;
-// }
-
- switch (ct) {
- case QStyle::CT_PushButton: {
- const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt);
- if (btn) {
- QString buttonText = qt_mac_removeMnemonics(btn->text);
- if (buttonText.contains(QLatin1Char('\n')))
- ret = QSize(-1, -1);
- else if (sz == QStyleHelper::SizeLarge)
- ret = QSize(-1, qt_mac_aqua_get_metric(PushButtonHeight));
- else if (sz == QStyleHelper::SizeSmall)
- ret = QSize(-1, qt_mac_aqua_get_metric(SmallPushButtonHeight));
- else if (sz == QStyleHelper::SizeMini)
- ret = QSize(-1, qt_mac_aqua_get_metric(MiniPushButtonHeight));
-
- if (!btn->icon.isNull()){
- // If the button got an icon, and the icon is larger than the
- // button, we can't decide on a default size
- ret.setWidth(-1);
- if (ret.height() < btn->iconSize.height())
- ret.setHeight(-1);
- }
- else if (buttonText == QLatin1String("OK") || buttonText == QLatin1String("Cancel")){
- // Aqua Style guidelines restrict the size of OK and Cancel buttons to 68 pixels.
- // However, this doesn't work for German, therefore only do it for English,
- // I suppose it would be better to do some sort of lookups for languages
- // that like to have really long words.
- // FIXME This is not exactly true. Out of context, OK buttons have their
- // implicit size calculated the same way as any other button. Inside a
- // QDialogButtonBox, their size should be calculated such that the action
- // or accept button (i.e., rightmost) and cancel button have the same width.
- ret.setWidth(69);
- }
- } else {
- // The only sensible thing to do is to return whatever the style suggests...
- if (sz == QStyleHelper::SizeLarge)
- ret = QSize(-1, qt_mac_aqua_get_metric(PushButtonHeight));
- else if (sz == QStyleHelper::SizeSmall)
- ret = QSize(-1, qt_mac_aqua_get_metric(SmallPushButtonHeight));
- else if (sz == QStyleHelper::SizeMini)
- ret = QSize(-1, qt_mac_aqua_get_metric(MiniPushButtonHeight));
- else
- // Since there's no default size we return the large size...
- ret = QSize(-1, qt_mac_aqua_get_metric(PushButtonHeight));
- }
- break; }
- case QStyle::CT_SizeGrip:
- // Not HIG kosher: mimic what we were doing earlier until we support 4-edge resizing in MDI subwindows
- if (sz == QStyleHelper::SizeLarge || sz == QStyleHelper::SizeSmall) {
- int s = sz == QStyleHelper::SizeSmall ? 16 : 22; // large: pixel measured from HITheme, small: from my hat
- int width = 0;
-//#if QT_CONFIG(mdiarea)
-// if (widg && qobject_cast<QMdiSubWindow *>(widg->parentWidget()))
-// width = s;
-//#endif
- ret = QSize(width, s);
- }
- break;
- case QStyle::CT_ComboBox:
- switch (sz) {
- case QStyleHelper::SizeLarge:
- ret = QSize(-1, qt_mac_aqua_get_metric(PopupButtonHeight));
- break;
- case QStyleHelper::SizeSmall:
- ret = QSize(-1, qt_mac_aqua_get_metric(SmallPopupButtonHeight));
- break;
- case QStyleHelper::SizeMini:
- ret = QSize(-1, qt_mac_aqua_get_metric(MiniPopupButtonHeight));
- break;
- default:
- break;
- }
- break;
- case QStyle::CT_ToolButton:
- if (sz == QStyleHelper::SizeSmall) {
- int width = 0, height = 0;
- if (szHint == QSize(-1, -1)) { //just 'guess'..
-//#if QT_CONFIG(toolbutton)
-// const QStyleOptionToolButton *bt = qstyleoption_cast<const QStyleOptionToolButton *>(opt);
-// // If this conversion fails then the widget was not what it claimed to be.
-// if(bt) {
-// if (!bt->icon.isNull()) {
-// QSize iconSize = bt->iconSize;
-// QSize pmSize = bt->icon.actualSize(QSize(32, 32), QIcon::Normal);
-// width = qMax(width, qMax(iconSize.width(), pmSize.width()));
-// height = qMax(height, qMax(iconSize.height(), pmSize.height()));
-// }
-// if (!bt->text.isNull() && bt->toolButtonStyle != Qt::ToolButtonIconOnly) {
-// int text_width = bt->fontMetrics.horizontalAdvance(bt->text),
-// text_height = bt->fontMetrics.height();
-// if (bt->toolButtonStyle == Qt::ToolButtonTextUnderIcon) {
-// width = qMax(width, text_width);
-// height += text_height;
-// } else {
-// width += text_width;
-// width = qMax(height, text_height);
-// }
-// }
-// } else
-//#endif
- {
- // Let's return the size hint...
- width = szHint.width();
- height = szHint.height();
- }
- } else {
- width = szHint.width();
- height = szHint.height();
- }
- width = qMax(20, width + 5); //border
- height = qMax(20, height + 5); //border
- ret = QSize(width, height);
- }
- break;
- case QStyle::CT_Slider: {
- int w = -1;
- const QStyleOptionSlider *sld = qstyleoption_cast<const QStyleOptionSlider *>(opt);
- // If this conversion fails then the widget was not what it claimed to be.
- if(sld) {
- if (sz == QStyleHelper::SizeLarge) {
- if (sld->orientation == Qt::Horizontal) {
- w = qt_mac_aqua_get_metric(HSliderHeight);
- if (sld->tickPosition != QStyleOptionSlider::NoTicks)
- w += qt_mac_aqua_get_metric(HSliderTickHeight);
- } else {
- w = qt_mac_aqua_get_metric(VSliderWidth);
- if (sld->tickPosition != QStyleOptionSlider::NoTicks)
- w += qt_mac_aqua_get_metric(VSliderTickWidth);
- }
- } else if (sz == QStyleHelper::SizeSmall) {
- if (sld->orientation == Qt::Horizontal) {
- w = qt_mac_aqua_get_metric(SmallHSliderHeight);
- if (sld->tickPosition != QStyleOptionSlider::NoTicks)
- w += qt_mac_aqua_get_metric(SmallHSliderTickHeight);
- } else {
- w = qt_mac_aqua_get_metric(SmallVSliderWidth);
- if (sld->tickPosition != QStyleOptionSlider::NoTicks)
- w += qt_mac_aqua_get_metric(SmallVSliderTickWidth);
- }
- } else if (sz == QStyleHelper::SizeMini) {
- if (sld->orientation == Qt::Horizontal) {
- w = qt_mac_aqua_get_metric(MiniHSliderHeight);
- if (sld->tickPosition != QStyleOptionSlider::NoTicks)
- w += qt_mac_aqua_get_metric(MiniHSliderTickHeight);
- } else {
- w = qt_mac_aqua_get_metric(MiniVSliderWidth);
- if (sld->tickPosition != QStyleOptionSlider::NoTicks)
- w += qt_mac_aqua_get_metric(MiniVSliderTickWidth);
- }
- }
- } else {
- // This is tricky, we were requested to find a size for a slider which is not
- // a slider. We don't know if this is vertical or horizontal or if we need to
- // have tick marks or not.
- // For this case we will return an horizontal slider without tick marks.
- w = qt_mac_aqua_get_metric(HSliderHeight);
- w += qt_mac_aqua_get_metric(HSliderTickHeight);
- }
- if (sld->orientation == Qt::Horizontal)
- ret.setHeight(w);
- else
- ret.setWidth(w);
- break;
- }
-//#if QT_CONFIG(progressbar)
-// case QStyle::CT_ProgressBar: {
-// int finalValue = -1;
-// Qt::Orientation orient = Qt::Horizontal;
-// if (const QProgressBar *pb = qobject_cast<const QProgressBar *>(widg))
-// orient = pb->orientation();
-
-// if (sz == QStyleHelper::SizeLarge)
-// finalValue = qt_mac_aqua_get_metric(LargeProgressBarThickness)
-// + qt_mac_aqua_get_metric(ProgressBarShadowOutset);
-// else
-// finalValue = qt_mac_aqua_get_metric(NormalProgressBarThickness)
-// + qt_mac_aqua_get_metric(SmallProgressBarShadowOutset);
-// if (orient == Qt::Horizontal)
-// ret.setHeight(finalValue);
-// else
-// ret.setWidth(finalValue);
-// break;
-// }
-//#endif
-//#if QT_CONFIG(combobox)
-// case QStyle::CT_LineEdit:
-// if (!widg || !qobject_cast<QComboBox *>(widg->parentWidget())) {
-// //should I take into account the font dimentions of the lineedit? -Sam
-// if (sz == QStyleHelper::SizeLarge)
-// ret = QSize(-1, 21);
-// else
-// ret = QSize(-1, 19);
-// }
-// break;
-//#endif
- case QStyle::CT_HeaderSection:
-//#if QT_CONFIG(treeview)
-// if (isTreeView(widg))
-// ret = QSize(-1, qt_mac_aqua_get_metric(ListHeaderHeight));
-//#endif
- break;
- case QStyle::CT_MenuBar:
- if (sz == QStyleHelper::SizeLarge) {
- ret = QSize(-1, [[NSApp mainMenu] menuBarHeight]);
- // In the qt_mac_set_native_menubar(false) case,
- // we come it here with a zero-height main menu,
- // preventing the in-window menu from displaying.
- // Use 22 pixels for the height, by observation.
- if (ret.height() <= 0)
- ret.setHeight(22);
- }
- break;
- default:
- break;
- }
- return ret;
-}
-
-#if defined(QMAC_QAQUASTYLE_SIZE_CONSTRAIN) || defined(DEBUG_SIZE_CONSTRAINT)
-static QStyleHelper::WidgetSizePolicy qt_aqua_guess_size(
- const QSize &large,
- const QSize &small,
- const QSize &mini)
-{
- if (large == QSize(-1, -1)) {
- if (small != QSize(-1, -1))
- return QStyleHelper::SizeSmall;
- if (mini != QSize(-1, -1))
- return QStyleHelper::SizeMini;
- return QStyleHelper::SizeDefault;
- } else if (small == QSize(-1, -1)) {
- if (mini != QSize(-1, -1))
- return QStyleHelper::SizeMini;
- return QStyleHelper::SizeLarge;
- } else if (mini == QSize(-1, -1)) {
- return QStyleHelper::SizeLarge;
- }
-
- if (qEnvironmentVariableIsSet("QWIDGET_ALL_SMALL"))
- return QStyleHelper::SizeSmall;
- else if (qEnvironmentVariableIsSet("QWIDGET_ALL_MINI"))
- return QStyleHelper::SizeMini;
-
- return QStyleHelper::SizeLarge;
-}
-#endif
-
-QPainterPath QMacStylePrivate::windowPanelPath(const QRectF &r) const
-{
- static const qreal CornerPointOffset = 5.5;
- static const qreal CornerControlOffset = 2.1;
-
- QPainterPath path;
- // Top-left corner
- path.moveTo(r.left(), r.top() + CornerPointOffset);
- path.cubicTo(r.left(), r.top() + CornerControlOffset,
- r.left() + CornerControlOffset, r.top(),
- r.left() + CornerPointOffset, r.top());
- // Top-right corner
- path.lineTo(r.right() - CornerPointOffset, r.top());
- path.cubicTo(r.right() - CornerControlOffset, r.top(),
- r.right(), r.top() + CornerControlOffset,
- r.right(), r.top() + CornerPointOffset);
- // Bottom-right corner
- path.lineTo(r.right(), r.bottom() - CornerPointOffset);
- path.cubicTo(r.right(), r.bottom() - CornerControlOffset,
- r.right() - CornerControlOffset, r.bottom(),
- r.right() - CornerPointOffset, r.bottom());
- // Bottom-right corner
- path.lineTo(r.left() + CornerPointOffset, r.bottom());
- path.cubicTo(r.left() + CornerControlOffset, r.bottom(),
- r.left(), r.bottom() - CornerControlOffset,
- r.left(), r.bottom() - CornerPointOffset);
- path.lineTo(r.left(), r.top() + CornerPointOffset);
-
- return path;
-}
-
-QMacStylePrivate::CocoaControlType QMacStylePrivate::windowButtonCocoaControl(QStyle::SubControl sc) const
-{
- struct WindowButtons {
- QStyle::SubControl sc;
- QMacStylePrivate::CocoaControlType ct;
- };
-
- static const WindowButtons buttons[] = {
- { QStyle::SC_TitleBarCloseButton, QMacStylePrivate::Button_WindowClose },
- { QStyle::SC_TitleBarMinButton, QMacStylePrivate::Button_WindowMiniaturize },
- { QStyle::SC_TitleBarMaxButton, QMacStylePrivate::Button_WindowZoom }
- };
-
- for (const auto &wb : buttons)
- if (wb.sc == sc)
- return wb.ct;
-
- return NoControl;
-}
-
-
-void QMacStylePrivate::tabLayout(const QStyleOptionTab *opt, QRect *textRect, QRect *iconRect) const
-{
- Q_ASSERT(textRect);
- Q_ASSERT(iconRect);
- QRect tr = opt->rect;
- const bool verticalTabs = opt->shape == QStyleOptionTab::RoundedEast
- || opt->shape == QStyleOptionTab::RoundedWest
- || opt->shape == QStyleOptionTab::TriangularEast
- || opt->shape == QStyleOptionTab::TriangularWest;
- if (verticalTabs)
- tr.setRect(0, 0, tr.height(), tr.width()); // 0, 0 as we will have a translate transform
-
- int verticalShift = proxyStyle->pixelMetric(QStyle::PM_TabBarTabShiftVertical, opt);
- int horizontalShift = proxyStyle->pixelMetric(QStyle::PM_TabBarTabShiftHorizontal, opt);
- const int hpadding = 4;
- const int vpadding = proxyStyle->pixelMetric(QStyle::PM_TabBarTabVSpace, opt) / 2;
- if (opt->shape == QStyleOptionTab::RoundedSouth || opt->shape == QStyleOptionTab::TriangularSouth)
- verticalShift = -verticalShift;
- tr.adjust(hpadding, verticalShift - vpadding, horizontalShift - hpadding, vpadding);
-
- // left widget
- if (!opt->leftButtonSize.isEmpty()) {
- const int buttonSize = verticalTabs ? opt->leftButtonSize.height() : opt->leftButtonSize.width();
- tr.setLeft(tr.left() + 4 + buttonSize);
- // make text aligned to center
- if (opt->rightButtonSize.isEmpty())
- tr.setRight(tr.right() - 4 - buttonSize);
- }
- // right widget
- if (!opt->rightButtonSize.isEmpty()) {
- const int buttonSize = verticalTabs ? opt->rightButtonSize.height() : opt->rightButtonSize.width();
- tr.setRight(tr.right() - 4 - buttonSize);
- // make text aligned to center
- if (opt->leftButtonSize.isEmpty())
- tr.setLeft(tr.left() + 4 + buttonSize);
- }
-
- // icon
- if (!opt->icon.isNull()) {
- QSize iconSize = opt->iconSize;
- if (!iconSize.isValid()) {
- int iconExtent = proxyStyle->pixelMetric(QStyle::PM_SmallIconSize);
- iconSize = QSize(iconExtent, iconExtent);
- }
- QSize tabIconSize = opt->icon.actualSize(iconSize,
- (opt->state & QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled,
- (opt->state & QStyle::State_Selected) ? QIcon::On : QIcon::Off);
- // High-dpi icons do not need adjustment; make sure tabIconSize is not larger than iconSize
- tabIconSize = QSize(qMin(tabIconSize.width(), iconSize.width()), qMin(tabIconSize.height(), iconSize.height()));
-
- const int stylePadding = proxyStyle->pixelMetric(QStyle::PM_TabBarTabHSpace, opt) / 2 - hpadding;
-
- if (opt->documentMode) {
- // documents show the icon as part of the the text
- const int textWidth =
- opt->fontMetrics.boundingRect(tr, Qt::AlignCenter | Qt::TextShowMnemonic, opt->text).width();
- *iconRect = QRect(tr.center().x() - textWidth / 2 - stylePadding - tabIconSize.width(),
- tr.center().y() - tabIconSize.height() / 2,
- tabIconSize.width(), tabIconSize.height());
- } else {
- *iconRect = QRect(tr.left() + stylePadding, tr.center().y() - tabIconSize.height() / 2,
- tabIconSize.width(), tabIconSize.height());
- }
- if (!verticalTabs)
- *iconRect = proxyStyle->visualRect(opt->direction, opt->rect, *iconRect);
-
- tr.setLeft(tr.left() + stylePadding + tabIconSize.width() + 4);
- tr.setRight(tr.right() - stylePadding - tabIconSize.width() - 4);
- }
-
- if (!verticalTabs)
- tr = proxyStyle->visualRect(opt->direction, opt->rect, tr);
-
- *textRect = tr;
-}
-
-QMacStylePrivate::Direction QMacStylePrivate::tabDirection(QStyleOptionTab::Shape shape)
-{
- switch (shape) {
- case QStyleOptionTab::RoundedSouth:
- case QStyleOptionTab::TriangularSouth:
- return South;
- case QStyleOptionTab::RoundedNorth:
- case QStyleOptionTab::TriangularNorth:
- return North;
- case QStyleOptionTab::RoundedWest:
- case QStyleOptionTab::TriangularWest:
- return West;
- case QStyleOptionTab::RoundedEast:
- case QStyleOptionTab::TriangularEast:
- return East;
- }
-}
-
-bool QMacStylePrivate::verticalTabs(QMacStylePrivate::Direction direction)
-{
- return (direction == QMacStylePrivate::East
- || direction == QMacStylePrivate::West);
-}
-
-QStyleHelper::WidgetSizePolicy QMacStylePrivate::effectiveAquaSizeConstrain(const QStyleOption *option,
- QStyle::ContentsType ct,
- QSize szHint, QSize *insz) const
-{
- QStyleHelper::WidgetSizePolicy sz = aquaSizeConstrain(option, ct, szHint, insz);
- if (sz == QStyleHelper::SizeDefault)
- return QStyleHelper::SizeLarge;
- return sz;
-}
-
-QStyleHelper::WidgetSizePolicy QMacStylePrivate::aquaSizeConstrain(const QStyleOption *option,
- QStyle::ContentsType ct, QSize szHint, QSize *insz) const
-{
- if (!option)
- return QStyleHelper::SizeLarge;
-
- if (option->state & QStyle::State_Small)
- return QStyleHelper::SizeSmall;
- if (option->state & QStyle::State_Mini)
- return QStyleHelper::SizeMini;
-
- return QStyleHelper::SizeLarge;
-
-}
-
-uint qHash(const QMacStylePrivate::CocoaControl &cw, uint seed = 0)
-{
- return ((cw.type << 2) | cw.size) ^ seed;
-}
-
-QMacStylePrivate::CocoaControl::CocoaControl()
- : type(NoControl), size(QStyleHelper::SizeDefault)
-{
-}
-
-QMacStylePrivate::CocoaControl::CocoaControl(CocoaControlType t, QStyleHelper::WidgetSizePolicy s)
- : type(t), size(s)
-{
-}
-
-bool QMacStylePrivate::CocoaControl::operator==(const CocoaControl &other) const
-{
- return other.type == type && other.size == size;
-}
-
-QSizeF QMacStylePrivate::CocoaControl::defaultFrameSize() const
-{
- // We need this because things like NSView.alignmentRectInsets
- // or -[NSCell titleRectForBounds:] won't work unless the control
- // has a reasonable frame set. IOW, it's a chicken and egg problem.
- // These values are as observed in Xcode 9's Interface Builder.
-
- if (type == Button_PushButton)
- return QSizeF(-1, pushButtonDefaultHeight[size]);
-
- if (type == Button_PopupButton
- || type == Button_PullDown)
- return QSizeF(-1, popupButtonDefaultHeight[size]);
-
- if (type == ComboBox)
- return QSizeF(-1, comboBoxDefaultHeight[size]);
-
- return QSizeF();
-}
-
-QRectF QMacStylePrivate::CocoaControl::adjustedControlFrame(const QRectF &rect) const
-{
- QRectF frameRect;
- const auto frameSize = defaultFrameSize();
- if (type == QMacStylePrivate::Button_SquareButton) {
- frameRect = rect.adjusted(3, 1, -3, -1)
- .adjusted(focusRingWidth, focusRingWidth, -focusRingWidth, -focusRingWidth);
- } else if (type == QMacStylePrivate::Button_PushButton) {
- // Start from the style option's top-left corner.
- frameRect = QRectF(rect.topLeft(),
- QSizeF(rect.width(), frameSize.height()));
- if (size == QStyleHelper::SizeSmall)
- frameRect = frameRect.translated(0, 1.5);
- else if (size == QStyleHelper::SizeMini)
- frameRect = frameRect.adjusted(0, 0, -8, 0).translated(4, 4);
- } else {
- // Center in the style option's rect.
- frameRect = QRectF(QPointF(0, (rect.height() - frameSize.height()) / 2.0),
- QSizeF(rect.width(), frameSize.height()));
- frameRect = frameRect.translated(rect.topLeft());
- if (type == QMacStylePrivate::Button_PullDown || type == QMacStylePrivate::Button_PopupButton) {
- if (size == QStyleHelper::SizeLarge)
- frameRect = frameRect.adjusted(0, 0, -6, 0).translated(3, 0);
- else if (size == QStyleHelper::SizeSmall)
- frameRect = frameRect.adjusted(0, 0, -4, 0).translated(2, 1);
- else if (size == QStyleHelper::SizeMini)
- frameRect = frameRect.adjusted(0, 0, -9, 0).translated(5, 0);
- } else if (type == QMacStylePrivate::ComboBox) {
- frameRect = frameRect.adjusted(0, 0, -6, 0).translated(4, 0);
- }
- }
-
- return frameRect;
-}
-
-QMarginsF QMacStylePrivate::CocoaControl::titleMargins() const
-{
- if (type == QMacStylePrivate::Button_PushButton) {
- if (size == QStyleHelper::SizeLarge)
- return QMarginsF(12, 5, 12, 9);
- if (size == QStyleHelper::SizeSmall)
- return QMarginsF(12, 4, 12, 9);
- if (size == QStyleHelper::SizeMini)
- return QMarginsF(10, 1, 10, 2);
- }
-
- if (type == QMacStylePrivate::Button_PullDown) {
- if (size == QStyleHelper::SizeLarge)
- return QMarginsF(7.5, 2.5, 22.5, 5.5);
- if (size == QStyleHelper::SizeSmall)
- return QMarginsF(7.5, 2, 20.5, 4);
- if (size == QStyleHelper::SizeMini)
- return QMarginsF(4.5, 0, 16.5, 2);
- }
-
- if (type == QMacStylePrivate::Button_SquareButton)
- return QMarginsF(6, 1, 6, 2);
-
- return QMarginsF();
-}
-
-bool QMacStylePrivate::CocoaControl::getCocoaButtonTypeAndBezelStyle(NSButtonType *buttonType, NSBezelStyle *bezelStyle) const
-{
- switch (type) {
- case Button_CheckBox:
- *buttonType = NSSwitchButton;
- *bezelStyle = NSRegularSquareBezelStyle;
- break;
- case Button_Disclosure:
- *buttonType = NSOnOffButton;
- *bezelStyle = NSDisclosureBezelStyle;
- break;
- case Button_RadioButton:
- *buttonType = NSRadioButton;
- *bezelStyle = NSRegularSquareBezelStyle;
- break;
- case Button_SquareButton:
- *buttonType = NSPushOnPushOffButton;
- *bezelStyle = NSShadowlessSquareBezelStyle;
- break;
- case Button_PushButton:
- *buttonType = NSPushOnPushOffButton;
- *bezelStyle = NSRoundedBezelStyle;
- break;
- default:
- return false;
- }
-
- return true;
-}
-
-QMacStylePrivate::CocoaControlType cocoaControlType(const QStyleOption *opt)
-{
- if (const auto *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- const bool hasMenu = btn->features & QStyleOptionButton::HasMenu;
- // When the contents won't fit in a large sized button,
- // and WA_MacNormalSize is not set, make the button square.
- // Threshold used to be at 34, not 32.
- const auto maxNonSquareHeight = pushButtonDefaultHeight[QStyleHelper::SizeLarge];
- const bool isSquare = (btn->features & QStyleOptionButton::Flat)
- || (btn->rect.height() > maxNonSquareHeight);
-// && !(w && w->testAttribute(Qt::WA_MacNormalSize)));
- return (isSquare? QMacStylePrivate::Button_SquareButton :
- hasMenu ? QMacStylePrivate::Button_PullDown :
- QMacStylePrivate::Button_PushButton);
- }
-
- if (const auto *combo = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- if (combo->editable)
- return QMacStylePrivate::ComboBox;
- // TODO Me may support square, non-editable combo boxes, but not more than that
- return QMacStylePrivate::Button_PopupButton;
- }
-
- return QMacStylePrivate::NoControl;
-}
-
-/**
- Carbon draws comboboxes (and other views) outside the rect given as argument. Use this function to obtain
- the corresponding inner rect for drawing the same combobox so that it stays inside the given outerBounds.
-*/
-CGRect QMacStylePrivate::comboboxInnerBounds(const CGRect &outerBounds, const CocoaControl &cocoaWidget)
-{
- CGRect innerBounds = outerBounds;
- // Carbon draw parts of the view outside the rect.
- // So make the rect a bit smaller to compensate
- // (I wish HIThemeGetButtonBackgroundBounds worked)
- if (cocoaWidget.type == Button_PopupButton) {
- switch (cocoaWidget.size) {
- case QStyleHelper::SizeSmall:
- innerBounds.origin.x += 3;
- innerBounds.origin.y += 3;
- innerBounds.size.width -= 6;
- innerBounds.size.height -= 7;
- break;
- case QStyleHelper::SizeMini:
- innerBounds.origin.x += 2;
- innerBounds.origin.y += 2;
- innerBounds.size.width -= 5;
- innerBounds.size.height -= 6;
- break;
- case QStyleHelper::SizeLarge:
- case QStyleHelper::SizeDefault:
- innerBounds.origin.x += 2;
- innerBounds.origin.y += 2;
- innerBounds.size.width -= 5;
- innerBounds.size.height -= 6;
- }
- } else if (cocoaWidget.type == ComboBox) {
- switch (cocoaWidget.size) {
- case QStyleHelper::SizeSmall:
- innerBounds.origin.x += 3;
- innerBounds.origin.y += 3;
- innerBounds.size.width -= 7;
- innerBounds.size.height -= 8;
- break;
- case QStyleHelper::SizeMini:
- innerBounds.origin.x += 3;
- innerBounds.origin.y += 3;
- innerBounds.size.width -= 4;
- innerBounds.size.height -= 8;
- break;
- case QStyleHelper::SizeLarge:
- case QStyleHelper::SizeDefault:
- innerBounds.origin.x += 3;
- innerBounds.origin.y += 2;
- innerBounds.size.width -= 6;
- innerBounds.size.height -= 8;
- }
- }
-
- return innerBounds;
-}
-
-/**
- Inside a combobox Qt places a line edit widget. The size of this widget should depend on the kind
- of combobox we choose to draw. This function calculates and returns this size.
-*/
-QRectF QMacStylePrivate::comboboxEditBounds(const QRectF &outerBounds, const CocoaControl &cw)
-{
- QRectF ret = outerBounds;
- if (cw.type == ComboBox) {
- switch (cw.size) {
- case QStyleHelper::SizeLarge:
- ret = ret.adjusted(0, 0, -25, 0).translated(2, 4.5);
- ret.setHeight(16);
- break;
- case QStyleHelper::SizeSmall:
- ret = ret.adjusted(0, 0, -22, 0).translated(2, 3);
- ret.setHeight(14);
- break;
- case QStyleHelper::SizeMini:
- ret = ret.adjusted(0, 0, -19, 0).translated(2, 2.5);
- ret.setHeight(10.5);
- break;
- default:
- break;
- }
- } else if (cw.type == Button_PopupButton) {
- switch (cw.size) {
- case QStyleHelper::SizeLarge:
- ret.adjust(10, 1, -23, -4);
- break;
- case QStyleHelper::SizeSmall:
- ret.adjust(10, 4, -20, -3);
- break;
- case QStyleHelper::SizeMini:
- ret.adjust(9, 0, -19, 0);
- ret.setHeight(13);
- break;
- default:
- break;
- }
- }
- return ret;
-}
-
-QMacStylePrivate::QMacStylePrivate()
- : backingStoreNSView(nil)
-{
- if (auto *ssf = QGuiApplicationPrivate::platformTheme()->font(QPlatformTheme::SmallFont))
- smallSystemFont = *ssf;
- if (auto *msf = QGuiApplicationPrivate::platformTheme()->font(QPlatformTheme::MiniFont))
- miniSystemFont = *msf;
-}
-
-QMacStylePrivate::~QMacStylePrivate()
-{
- QMacAutoReleasePool pool;
- for (NSView *b : cocoaControls)
- [b release];
- for (NSCell *cell : cocoaCells)
- [cell release];
-}
-
-NSView *QMacStylePrivate::cocoaControl(CocoaControl cocoaControl) const
-{
- if (cocoaControl.type == QMacStylePrivate::NoControl
- || cocoaControl.size == QStyleHelper::SizeDefault)
- return nil;
-
- if (cocoaControl.type == Box) {
- if (__builtin_available(macOS 10.14, *)) {
- if (qt_mac_applicationIsInDarkMode()) {
- // See render code in drawPrimitive(PE_FrameTabWidget)
- cocoaControl.type = Box_Dark;
- }
- }
- }
-
- NSView *bv = cocoaControls.value(cocoaControl, nil);
- if (!bv) {
- switch (cocoaControl.type) {
- case Box: {
- NSBox *box = [[NSBox alloc] init];
- bv = box;
- box.title = @"";
- box.titlePosition = NSNoTitle;
- break;
- }
- case Box_Dark:
- bv = [[QDarkNSBox alloc] init];
- break;
- case Button_CheckBox:
- case Button_Disclosure:
- case Button_PushButton:
- case Button_RadioButton:
- case Button_SquareButton: {
- NSButton *bc = [[NSButton alloc] init];
- bc.title = @"";
- // See below for style and bezel setting.
- bv = bc;
- break;
- }
- case Button_PopupButton:
- case Button_PullDown: {
- NSPopUpButton *bc = [[NSPopUpButton alloc] init];
- bc.title = @"";
- if (cocoaControl.type == Button_PullDown)
- bc.pullsDown = YES;
- bv = bc;
- break;
- }
- case Button_WindowClose:
- case Button_WindowMiniaturize:
- case Button_WindowZoom: {
- const NSWindowButton button = [=] {
- switch (cocoaControl.type) {
- case Button_WindowClose:
- return NSWindowCloseButton;
- case Button_WindowMiniaturize:
- return NSWindowMiniaturizeButton;
- case Button_WindowZoom:
- return NSWindowZoomButton;
- default:
- break;
- }
- Q_UNREACHABLE();
- } ();
- const auto styleMask = NSWindowStyleMaskTitled
- | NSWindowStyleMaskClosable
- | NSWindowStyleMaskMiniaturizable
- | NSWindowStyleMaskResizable;
- bv = [NSWindow standardWindowButton:button forStyleMask:styleMask];
- [bv retain];
- break;
- }
- case ComboBox:
- bv = [[NSComboBox alloc] init];
- break;
- case ProgressIndicator_Determinate:
- bv = [[NSProgressIndicator alloc] init];
- break;
- case ProgressIndicator_Indeterminate:
- bv = [[QIndeterminateProgressIndicator alloc] init];
- break;
- case Scroller_Horizontal:
- bv = [[NSScroller alloc] initWithFrame:NSMakeRect(0, 0, 200, 20)];
- break;
- case Scroller_Vertical:
- // Cocoa sets the orientation from the view's frame
- // at construction time, and it cannot be changed later.
- bv = [[NSScroller alloc] initWithFrame:NSMakeRect(0, 0, 20, 200)];
- break;
- case Slider_Horizontal:
- bv = [[NSSlider alloc] initWithFrame:NSMakeRect(0, 0, 200, 20)];
- break;
- case Slider_Vertical:
- // Cocoa sets the orientation from the view's frame
- // at construction time, and it cannot be changed later.
- bv = [[NSSlider alloc] initWithFrame:NSMakeRect(0, 0, 20, 200)];
- break;
- case SplitView_Horizontal:
- bv = [[NSSplitView alloc] init];
- break;
- case SplitView_Vertical:
- bv = [[QVerticalSplitView alloc] init];
- break;
- case TextField:
- bv = [[NSTextField alloc] init];
- break;
- default:
- break;
- }
-
- if ([bv isKindOfClass:[NSControl class]]) {
- auto *ctrl = static_cast<NSControl *>(bv);
- switch (cocoaControl.size) {
- case QStyleHelper::SizeSmall:
- ctrl.controlSize = NSControlSizeSmall;
- break;
- case QStyleHelper::SizeMini:
- ctrl.controlSize = NSControlSizeMini;
- break;
- default:
- break;
- }
- } else if (cocoaControl.type == ProgressIndicator_Determinate ||
- cocoaControl.type == ProgressIndicator_Indeterminate) {
- auto *pi = static_cast<NSProgressIndicator *>(bv);
- pi.indeterminate = (cocoaControl.type == ProgressIndicator_Indeterminate);
- switch (cocoaControl.size) {
- case QStyleHelper::SizeSmall:
- pi.controlSize = NSControlSizeSmall;
- break;
- case QStyleHelper::SizeMini:
- pi.controlSize = NSControlSizeMini;
- break;
- default:
- break;
- }
- }
-
- cocoaControls.insert(cocoaControl, bv);
- }
-
- NSButtonType buttonType;
- NSBezelStyle bezelStyle;
- if (cocoaControl.getCocoaButtonTypeAndBezelStyle(&buttonType, &bezelStyle)) {
- // FIXME We need to reset the button's type and
- // bezel style properties, even when cached.
- auto *button = static_cast<NSButton *>(bv);
- button.buttonType = buttonType;
- button.bezelStyle = bezelStyle;
- if (cocoaControl.type == Button_CheckBox)
- button.allowsMixedState = YES;
- }
-
- return bv;
-}
-
-NSCell *QMacStylePrivate::cocoaCell(CocoaControl cocoaControl) const
-{
- NSCell *cell = cocoaCells[cocoaControl];
- if (!cell) {
- switch (cocoaControl.type) {
- case Stepper:
- cell = [[NSStepperCell alloc] init];
- break;
- case Button_Disclosure: {
- NSButtonCell *bc = [[NSButtonCell alloc] init];
- bc.buttonType = NSOnOffButton;
- bc.bezelStyle = NSDisclosureBezelStyle;
- cell = bc;
- break;
- }
- default:
- break;
- }
-
- switch (cocoaControl.size) {
- case QStyleHelper::SizeSmall:
- cell.controlSize = NSControlSizeSmall;
- break;
- case QStyleHelper::SizeMini:
- cell.controlSize = NSControlSizeMini;
- break;
- default:
- break;
- }
-
- cocoaCells.insert(cocoaControl, cell);
- }
-
- return cell;
-}
-
-void QMacStylePrivate::drawNSViewInRect(NSView *view, const QRectF &rect, QPainter *p, DrawRectBlock drawRectBlock) const
-{
- QMacAutoReleasePool pool;
- QMacCGContext ctx(p);
- setupNSGraphicsContext(ctx, YES);
-
- // FIXME: The rect that we get in is relative to the widget that we're drawing
- // style on behalf of, and doesn't take into account the offset of that widget
- // to the widget that owns the backingstore, which we are placing the native
- // view into below. This means most of the views are placed in the upper left
- // corner of backingStoreNSView, which does not map to where the actual widget
- // is, and which may cause problems such as triggering a setNeedsDisplay of the
- // backingStoreNSView for the wrong rect. We work around this by making the view
- // layer-backed, which prevents triggering display of the backingStoreNSView, but
- // but there may be other issues lurking here due to the wrong position. QTBUG-68023
- view.wantsLayer = YES;
-
- // FIXME: We are also setting the frame of the incoming view a lot at the call
- // sites of this function, making it unclear who's actually responsible for
- // maintaining the size and position of the view. In theory the call sites
- // should ensure the _size_ of the view is correct, and then let this code
- // take care of _positioning_ the view at the right place inside backingStoreNSView.
- // For now we pass on the rect as is, to prevent any regressions until this
- // can be investigated properly.
- view.frame = rect.toCGRect();
-
- [backingStoreNSView addSubview:view];
-
- // FIXME: Based on the code below, this method isn't drawing an NSView into
- // a rect, it's drawing _part of the NSView_, defined by the incoming clip
- // or dirty rect, into the current graphics context. We're doing some manual
- // translations at the call sites that would indicate that this relationship
- // is a bit fuzzy.
- const CGRect dirtyRect = rect.toCGRect();
-
- if (drawRectBlock)
- drawRectBlock(ctx, dirtyRect);
- else
- [view drawRect:dirtyRect];
-
- [view removeFromSuperviewWithoutNeedingDisplay];
-
- restoreNSGraphicsContext(ctx);
-}
-
-void QMacStylePrivate::resolveCurrentNSView(QWindow *window) const
-{
- backingStoreNSView = window ? (NSView *)window->winId() : nil;
-}
-
-QMacStyle::QMacStyle()
- : QCommonStyle(*new QMacStylePrivate)
-{
- QMacAutoReleasePool pool;
-
- static QMacNotificationObserver scrollbarStyleObserver(nil,
- NSPreferredScrollerStyleDidChangeNotification, []() {
- // Purge destroyed scroll bars
- QMacStylePrivate::scrollBars.removeAll(QPointer<QObject>());
-
- QEvent event(QEvent::StyleChange);
- for (const auto &o : QMacStylePrivate::scrollBars)
- QCoreApplication::sendEvent(o, &event);
- });
-
-#if QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_14)
- Q_D(QMacStyle);
- // FIXME: Tie this logic into theme change, or even polish/unpolish
- if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::MacOSMojave) {
- d->appearanceObserver = QMacKeyValueObserver(NSApp, @"effectiveAppearance", [this] {
- Q_D(QMacStyle);
- for (NSView *b : d->cocoaControls)
- [b release];
- d->cocoaControls.clear();
- });
- }
-#endif
-}
-
-QMacStyle::~QMacStyle()
-{
-}
-
-int QMacStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt) const
-{
- Q_D(const QMacStyle);
- const int controlSize = getControlSize(opt);
- int ret = 0;
-
- switch (metric) {
- case PM_TabCloseIndicatorWidth:
- case PM_TabCloseIndicatorHeight:
- ret = closeButtonSize;
- break;
- case PM_ToolBarIconSize:
- ret = proxy()->pixelMetric(PM_LargeIconSize);
- break;
- case PM_FocusFrameVMargin:
- case PM_FocusFrameHMargin:
- ret = qt_mac_aqua_get_metric(FocusRectOutset);
- break;
- case PM_DialogButtonsSeparator:
- ret = -5;
- break;
- case PM_DialogButtonsButtonHeight: {
- QSize sz;
- ret = d->aquaSizeConstrain(opt, QStyle::CT_PushButton, QSize(-1, -1), &sz);
- if (sz == QSize(-1, -1))
- ret = 32;
- else
- ret = sz.height();
- break; }
- case PM_DialogButtonsButtonWidth: {
- QSize sz;
- ret = d->aquaSizeConstrain(opt, QStyle::CT_PushButton, QSize(-1, -1), &sz);
- if (sz == QSize(-1, -1))
- ret = 70;
- else
- ret = sz.width();
- break; }
-
- case PM_MenuBarHMargin:
- ret = 8;
- break;
-
- case PM_MenuBarVMargin:
- ret = 0;
- break;
-
- case PM_MenuBarPanelWidth:
- ret = 0;
- break;
-
- case PM_MenuButtonIndicator:
- ret = toolButtonArrowSize;
- break;
-
- case QStyle::PM_MenuDesktopFrameWidth:
- ret = 5;
- break;
-
- case PM_CheckBoxLabelSpacing:
- case PM_RadioButtonLabelSpacing:
- ret = [=] {
- if (opt) {
- if (opt->state & State_Mini)
- return 4;
- if (opt->state & State_Small)
- return 3;
- }
- return 2;
- } ();
- break;
- case PM_MenuScrollerHeight:
- ret = 15; // I hate having magic numbers in here...
- break;
- case PM_DefaultFrameWidth:
-//#if QT_CONFIG(mainwindow)
-// if (widget && (widget->isWindow() || !widget->parentWidget()
-// || (qobject_cast<const QMainWindow*>(widget->parentWidget())
-// && static_cast<QMainWindow *>(widget->parentWidget())->centralWidget() == widget))
-// && qobject_cast<const QAbstractScrollArea *>(widget))
-// ret = 0;
-// else
-//#endif
- // The combo box popup has no frame.
- if (qstyleoption_cast<const QStyleOptionComboBox *>(opt) != 0)
- ret = 0;
- else
- ret = 1;
- break;
- case PM_MaximumDragDistance:
- ret = -1;
- break;
- case PM_ScrollBarSliderMin:
- ret = 24;
- break;
- case PM_SpinBoxFrameWidth:
- ret = qt_mac_aqua_get_metric(EditTextFrameOutset);
- break;
- case PM_ButtonShiftHorizontal:
- case PM_ButtonShiftVertical:
- ret = 0;
- break;
- case PM_SliderLength:
- ret = 17;
- break;
- // Returns the number of pixels to use for the business part of the
- // slider (i.e., the non-tickmark portion). The remaining space is shared
- // equally between the tickmark regions.
- case PM_SliderControlThickness:
- if (const QStyleOptionSlider *sl = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- int space = (sl->orientation == Qt::Horizontal) ? sl->rect.height() : sl->rect.width();
- int ticks = sl->tickPosition;
- int n = 0;
- if (ticks & QStyleOptionSlider::TicksAbove)
- ++n;
- if (ticks & QStyleOptionSlider::TicksBelow)
- ++n;
- if (!n) {
- ret = space;
- break;
- }
-
- int thick = 6; // Magic constant to get 5 + 16 + 5
- if (ticks != QStyleOptionSlider::TicksBothSides && ticks != QStyleOptionSlider::NoTicks)
- thick += proxy()->pixelMetric(PM_SliderLength, sl) / 4;
-
- space -= thick;
- if (space > 0)
- thick += (space * 2) / (n + 2);
- ret = thick;
- } else {
- ret = 0;
- }
- break;
- case PM_SmallIconSize:
- ret = int(QStyleHelper::dpiScaled(16., opt));
- break;
-
- case PM_LargeIconSize:
- ret = int(QStyleHelper::dpiScaled(32., opt));
- break;
-
- case PM_IconViewIconSize:
- ret = proxy()->pixelMetric(PM_LargeIconSize, opt);
- break;
-
- case PM_ButtonDefaultIndicator:
- ret = 0;
- break;
- case PM_TitleBarHeight: {
- NSUInteger style = NSWindowStyleMaskTitled;
-// if (widget && ((widget->windowFlags() & Qt::Tool) == Qt::Tool))
-// style |= NSWindowStyleMaskUtilityWindow;
- ret = int([NSWindow frameRectForContentRect:NSZeroRect
- styleMask:style].size.height);
- break; }
- case QStyle::PM_TabBarTabHSpace:
- switch (d->aquaSizeConstrain(opt)) {
- case QStyleHelper::SizeLarge:
- ret = QCommonStyle::pixelMetric(metric, opt);
- break;
- case QStyleHelper::SizeSmall:
- ret = 20;
- break;
- case QStyleHelper::SizeMini:
- ret = 16;
- break;
- case QStyleHelper::SizeDefault:
- const QStyleOptionTab *tb = qstyleoption_cast<const QStyleOptionTab *>(opt);
- if (tb && tb->documentMode)
- ret = 30;
- else
- ret = QCommonStyle::pixelMetric(metric, opt);
- break;
- }
- break;
- case PM_TabBarTabVSpace:
- ret = 4;
- break;
- case PM_TabBarTabShiftHorizontal:
- case PM_TabBarTabShiftVertical:
- ret = 0;
- break;
- case PM_TabBarBaseHeight:
- ret = 0;
- break;
- case PM_TabBarTabOverlap:
- ret = 1;
- break;
- case PM_TabBarBaseOverlap:
- switch (d->aquaSizeConstrain(opt)) {
- case QStyleHelper::SizeDefault:
- case QStyleHelper::SizeLarge:
- ret = 11;
- break;
- case QStyleHelper::SizeSmall:
- ret = 8;
- break;
- case QStyleHelper::SizeMini:
- ret = 7;
- break;
- }
- break;
- case PM_ScrollBarExtent: {
- const QStyleHelper::WidgetSizePolicy size = d->effectiveAquaSizeConstrain(opt);
- ret = static_cast<int>([NSScroller
- scrollerWidthForControlSize:static_cast<NSControlSize>(size)
- scrollerStyle:[NSScroller preferredScrollerStyle]]);
- break; }
- case PM_IndicatorHeight: {
- switch (d->aquaSizeConstrain(opt)) {
- case QStyleHelper::SizeDefault:
- case QStyleHelper::SizeLarge:
- ret = qt_mac_aqua_get_metric(CheckBoxHeight);
- break;
- case QStyleHelper::SizeMini:
- ret = qt_mac_aqua_get_metric(MiniCheckBoxHeight);
- break;
- case QStyleHelper::SizeSmall:
- ret = qt_mac_aqua_get_metric(SmallCheckBoxHeight);
- break;
- }
- break; }
- case PM_IndicatorWidth: {
- switch (d->aquaSizeConstrain(opt)) {
- case QStyleHelper::SizeDefault:
- case QStyleHelper::SizeLarge:
- ret = qt_mac_aqua_get_metric(CheckBoxWidth);
- break;
- case QStyleHelper::SizeMini:
- ret = qt_mac_aqua_get_metric(MiniCheckBoxWidth);
- break;
- case QStyleHelper::SizeSmall:
- ret = qt_mac_aqua_get_metric(SmallCheckBoxWidth);
- break;
- }
- ++ret;
- break; }
- case PM_ExclusiveIndicatorHeight: {
- switch (d->aquaSizeConstrain(opt)) {
- case QStyleHelper::SizeDefault:
- case QStyleHelper::SizeLarge:
- ret = qt_mac_aqua_get_metric(RadioButtonHeight);
- break;
- case QStyleHelper::SizeMini:
- ret = qt_mac_aqua_get_metric(MiniRadioButtonHeight);
- break;
- case QStyleHelper::SizeSmall:
- ret = qt_mac_aqua_get_metric(SmallRadioButtonHeight);
- break;
- }
- break; }
- case PM_ExclusiveIndicatorWidth: {
- switch (d->aquaSizeConstrain(opt)) {
- case QStyleHelper::SizeDefault:
- case QStyleHelper::SizeLarge:
- ret = qt_mac_aqua_get_metric(RadioButtonWidth);
- break;
- case QStyleHelper::SizeMini:
- ret = qt_mac_aqua_get_metric(MiniRadioButtonWidth);
- break;
- case QStyleHelper::SizeSmall:
- ret = qt_mac_aqua_get_metric(SmallRadioButtonWidth);
- break;
- }
- ++ret;
- break; }
- case PM_MenuVMargin:
- ret = 4;
- break;
- case PM_MenuPanelWidth:
- ret = 0;
- break;
- case PM_ToolTipLabelFrameWidth:
- ret = 0;
- break;
- case PM_SizeGripSize: {
- QStyleHelper::WidgetSizePolicy aSize;
-// if (widget && widget->window()->windowType() == Qt::Tool)
-// aSize = QStyleHelper::SizeSmall;
-// else
- aSize = QStyleHelper::SizeLarge;
- const QSize size = qt_aqua_get_known_size(CT_SizeGrip, opt, QSize(), aSize);
- ret = size.width();
- break; }
- case PM_MdiSubWindowFrameWidth:
- ret = 1;
- break;
- case PM_DockWidgetFrameWidth:
- ret = 0;
- break;
- case PM_DockWidgetTitleMargin:
- ret = 0;
- break;
- case PM_DockWidgetSeparatorExtent:
- ret = 1;
- break;
- case PM_ToolBarHandleExtent:
- ret = 11;
- break;
- case PM_ToolBarItemMargin:
- ret = 0;
- break;
- case PM_ToolBarItemSpacing:
- ret = 4;
- break;
- case PM_SplitterWidth:
- ret = 7;
- break;
- case PM_LayoutLeftMargin:
- case PM_LayoutTopMargin:
- case PM_LayoutRightMargin:
- case PM_LayoutBottomMargin:
- {
- if (opt->state & State_Window) {
- /*
- AHIG would have (20, 8, 10) here but that makes
- no sense. It would also have 14 for the top margin
- but this contradicts both Builder and most
- applications.
- */
- return_SIZE(20, 10, 10); // AHIG
- } else {
- // hack to detect QTabWidget
-// if (widget && widget->parentWidget()
-// && widget->parentWidget()->sizePolicy().controlType() == QSizePolicy::TabWidget) {
-// if (metric == PM_LayoutTopMargin) {
-// /*
-// Builder would have 14 (= 20 - 6) instead of 12,
-// but that makes the tab look disproportionate.
-// */
-// return_SIZE(12, 6, 6); // guess
-// } else {
-// return_SIZE(20 /* Builder */, 8 /* guess */, 8 /* guess */);
-// }
-// } else {
- /*
- Child margins are highly inconsistent in AHIG and Builder.
- */
- return_SIZE(12, 8, 6); // guess
-// }
- }
- }
- case PM_LayoutHorizontalSpacing:
- case PM_LayoutVerticalSpacing:
- return -1;
- case PM_MenuHMargin:
- ret = 0;
- break;
- case PM_ToolBarExtensionExtent:
- ret = 21;
- break;
- case PM_ToolBarFrameWidth:
- ret = 1;
- break;
- case PM_ScrollView_ScrollBarOverlap:
- ret = [NSScroller preferredScrollerStyle] == NSScrollerStyleOverlay ?
- pixelMetric(PM_ScrollBarExtent, opt) : 0;
- break;
- case PM_PushButtonFocusFrameRadius:
- ret = LargeSmallMini(opt, 8, 7, 5);
- break;
- case PM_CheckBoxFocusFrameRadius:
- ret = LargeSmallMini(opt, 6, 5, 4);
- break;
- case PM_ComboBoxFocusFrameRadius:
- ret = LargeSmallMini(opt, 8, 7, 4);
- break;
- case PM_RadioButtonFocusFrameRadius:
- ret = 10;
- break;
- case PM_SliderFocusFrameRadius:
- // QTBUG-93423: We currently need to skip drawing a focus ring around the handle, since
- // the handle drawn by the UIKit is not centered inside the rect we get from calling
- // [cell knobRectFlipped:slider.isFlipped]. So we choose to draw the focus as
- // a rect instead until we have a better solution available.
- ret = 0;
- break;
- case PM_DialFocusFrameRadius:
- case PM_SpinBoxFocusFrameRadius:
- case PM_TextAreaFocusFrameRadius:
- case PM_TextFieldFocusFrameRadius:
- ret = 3;
- break;
- default:
- ret = QCommonStyle::pixelMetric(metric, opt);
- break;
- }
- return ret;
-}
-
-//QPalette QMacStyle::standardPalette() const
-//{
-// auto platformTheme = QGuiApplicationPrivate::platformTheme();
-// auto styleNames = platformTheme->themeHint(QPlatformTheme::StyleNames);
-// if (styleNames.toStringList().contains("macintosh"))
-// return QPalette(); // Inherit everything from theme
-// else
-// return QStyle::standardPalette();
-//}
-
-int QMacStyle::styleHint(StyleHint sh, const QStyleOption *opt, QStyleHintReturn *hret) const
-{
- QMacAutoReleasePool pool;
-
- int ret = 0;
- switch (sh) {
- case SH_Slider_SnapToValue:
- case SH_PrintDialog_RightAlignButtons:
- case SH_FontDialog_SelectAssociatedText:
- case SH_MenuBar_MouseTracking:
- case SH_Menu_MouseTracking:
- case SH_ComboBox_ListMouseTracking:
- case SH_MainWindow_SpaceBelowMenuBar:
- case SH_ItemView_ChangeHighlightOnFocus:
- ret = 1;
- break;
- case SH_ToolBox_SelectedPageTitleBold:
- ret = 0;
- break;
- case SH_DialogButtonBox_ButtonsHaveIcons:
- ret = 0;
- break;
- case SH_Menu_SelectionWrap:
- ret = false;
- break;
- case SH_Menu_KeyboardSearch:
- ret = true;
- break;
- case SH_Menu_SpaceActivatesItem:
- ret = true;
- break;
- case SH_Slider_AbsoluteSetButtons:
- ret = Qt::LeftButton|Qt::MiddleButton;
- break;
- case SH_Slider_PageSetButtons:
- ret = 0;
- break;
- case SH_ScrollBar_ContextMenu:
- ret = false;
- break;
- case SH_TitleBar_AutoRaise:
- ret = true;
- break;
- case SH_Menu_AllowActiveAndDisabled:
- ret = false;
- break;
- case SH_Menu_SubMenuPopupDelay:
- ret = 100;
- break;
- case SH_Menu_SubMenuUniDirection:
- ret = true;
- break;
- case SH_Menu_SubMenuSloppySelectOtherActions:
- ret = false;
- break;
- case SH_Menu_SubMenuResetWhenReenteringParent:
- ret = true;
- break;
- case SH_Menu_SubMenuDontStartSloppyOnLeave:
- ret = true;
- break;
-
- case SH_ScrollBar_LeftClickAbsolutePosition: {
- NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
- bool result = [defaults boolForKey:@"AppleScrollerPagingBehavior"];
-// if(QApplication::keyboardModifiers() & Qt::AltModifier)
-// ret = !result;
-// else
- ret = result;
- break; }
- case SH_TabBar_PreferNoArrows:
- ret = true;
- break;
- /*
- case SH_DialogButtons_DefaultButton:
- ret = QDialogButtons::Reject;
- break;
- */
- case SH_GroupBox_TextLabelVerticalAlignment:
- ret = Qt::AlignTop;
- break;
- case SH_ScrollView_FrameOnlyAroundContents:
- ret = QCommonStyle::styleHint(sh, opt, hret);
- break;
- case SH_Menu_FillScreenWithScroll:
- ret = false;
- break;
- case SH_Menu_Scrollable:
- ret = true;
- break;
- case SH_RichText_FullWidthSelection:
- ret = true;
- break;
- case SH_BlinkCursorWhenTextSelected:
- ret = false;
- break;
- case SH_Slider_StopMouseOverSlider:
- ret = true;
- break;
- case SH_ListViewExpand_SelectMouseType:
- ret = QEvent::MouseButtonRelease;
- break;
- case SH_TabBar_SelectMouseType:
- if (const QStyleOptionTabBarBase *opt2 = qstyleoption_cast<const QStyleOptionTabBarBase *>(opt)) {
- ret = opt2->documentMode ? QEvent::MouseButtonPress : QEvent::MouseButtonRelease;
- } else {
- ret = QEvent::MouseButtonRelease;
- }
- break;
- case SH_ComboBox_Popup:
- if (const QStyleOptionComboBox *cmb = qstyleoption_cast<const QStyleOptionComboBox *>(opt))
- ret = !cmb->editable;
- else
- ret = 0;
- break;
- case SH_Workspace_FillSpaceOnMaximize:
- ret = true;
- break;
- case SH_Widget_ShareActivation:
- ret = true;
- break;
- case SH_Header_ArrowAlignment:
- ret = Qt::AlignRight;
- break;
- case SH_TabBar_Alignment: {
-//#if QT_CONFIG(tabwidget)
-// if (const QTabWidget *tab = qobject_cast<const QTabWidget*>(w)) {
-// if (tab->documentMode()) {
-// ret = Qt::AlignLeft;
-// break;
-// }
-// }
-//#endif
-//#if QT_CONFIG(tabbar)
-// if (const QTabBar *tab = qobject_cast<const QTabBar*>(w)) {
-// if (tab->documentMode()) {
-// ret = Qt::AlignLeft;
-// break;
-// }
-// }
-//#endif
- ret = Qt::AlignCenter;
- } break;
- case SH_UnderlineShortcut:
- ret = false;
- break;
- case SH_ToolTipLabel_Opacity:
- ret = 242; // About 95%
- break;
- case SH_Button_FocusPolicy:
- ret = Qt::TabFocus;
- break;
- case SH_EtchDisabledText:
- ret = false;
- break;
- case SH_FocusFrame_Mask: {
- ret = true;
- if(QStyleHintReturnMask *mask = qstyleoption_cast<QStyleHintReturnMask*>(hret)) {
- const uchar fillR = 192, fillG = 191, fillB = 190;
- QImage img;
-
- QSize pixmapSize = opt->rect.size();
- if (!pixmapSize.isEmpty()) {
- QPixmap pix(pixmapSize);
- pix.fill(QColor(fillR, fillG, fillB));
- QPainter pix_paint(&pix);
- proxy()->drawControl(CE_FocusFrame, opt, &pix_paint);
- pix_paint.end();
- img = pix.toImage();
- }
-
- const QRgb *sptr = (QRgb*)img.bits(), *srow;
- const qsizetype sbpl = img.bytesPerLine();
- const int w = sbpl/4, h = img.height();
-
- QImage img_mask(img.width(), img.height(), QImage::Format_ARGB32);
- QRgb *dptr = (QRgb*)img_mask.bits(), *drow;
- const qsizetype dbpl = img_mask.bytesPerLine();
-
- for (int y = 0; y < h; ++y) {
- srow = sptr+((y*sbpl)/4);
- drow = dptr+((y*dbpl)/4);
- for (int x = 0; x < w; ++x) {
- const int redDiff = qRed(*srow) - fillR;
- const int greenDiff = qGreen(*srow) - fillG;
- const int blueDiff = qBlue(*srow) - fillB;
- const int diff = (redDiff * redDiff) + (greenDiff * greenDiff) + (blueDiff * blueDiff);
- (*drow++) = (diff < 10) ? 0xffffffff : 0xff000000;
- ++srow;
- }
- }
- QBitmap qmask = QBitmap::fromImage(img_mask);
- mask->region = QRegion(qmask);
- }
- break; }
- case SH_TitleBar_NoBorder:
- ret = 1;
- break;
- case SH_RubberBand_Mask:
- ret = 0;
- break;
- case SH_ComboBox_LayoutDirection:
- ret = Qt::LeftToRight;
- break;
- case SH_ItemView_EllipsisLocation:
- ret = Qt::AlignHCenter;
- break;
- case SH_ItemView_ShowDecorationSelected:
- ret = true;
- break;
- case SH_TitleBar_ModifyNotification:
- ret = false;
- break;
- case SH_ScrollBar_RollBetweenButtons:
- ret = true;
- break;
- case SH_WindowFrame_Mask:
- ret = false;
- break;
- case SH_TabBar_ElideMode:
- ret = Qt::ElideRight;
- break;
-// case SH_DialogButtonLayout:
-// ret = QDialogButtonBox::MacLayout;
-// break;
-// case SH_FormLayoutWrapPolicy:
-// ret = QFormLayout::DontWrapRows;
-// break;
-// case SH_FormLayoutFieldGrowthPolicy:
-// ret = QFormLayout::FieldsStayAtSizeHint;
-// break;
- case SH_FormLayoutFormAlignment:
- ret = Qt::AlignHCenter | Qt::AlignTop;
- break;
- case SH_FormLayoutLabelAlignment:
- ret = Qt::AlignRight;
- break;
-// case SH_ComboBox_PopupFrameStyle:
-// ret = QFrame::NoFrame;
-// break;
- case SH_MessageBox_TextInteractionFlags:
- ret = Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse | Qt::TextSelectableByKeyboard;
- break;
- case SH_SpellCheckUnderlineStyle:
- ret = QTextCharFormat::DashUnderline;
- break;
- case SH_MessageBox_CenterButtons:
- ret = false;
- break;
- case SH_MenuBar_AltKeyNavigation:
- ret = false;
- break;
- case SH_ItemView_MovementWithoutUpdatingSelection:
- ret = false;
- break;
- case SH_FocusFrame_AboveWidget:
- ret = true;
- break;
-// case SH_WizardStyle:
-// ret = QWizard::MacStyle;
-// break;
- case SH_ItemView_ArrowKeysNavigateIntoChildren:
- ret = false;
- break;
- case SH_Menu_FlashTriggeredItem:
- ret = true;
- break;
- case SH_Menu_FadeOutOnHide:
- ret = true;
- break;
- case SH_ItemView_PaintAlternatingRowColorsForEmptyArea:
- ret = true;
- break;
- case SH_TabBar_CloseButtonPosition:
- ret = QStyleOptionTabBarBase::LeftSide;
- break;
- case SH_DockWidget_ButtonsHaveFrame:
- ret = false;
- break;
- case SH_ScrollBar_Transient:
- // For the initial version in QQC2, we don't support transient scrollbars. When the
- // time comes, consider doing all such animations from QML.
- // ret = [NSScroller preferredScrollerStyle] == NSScrollerStyleOverlay;
- ret = false;
- break;
- case SH_TitleBar_ShowToolTipsOnButtons:
- // min/max/close buttons on windows don't show tool tips
- ret = false;
- break;
- case SH_ComboBox_AllowWheelScrolling:
- ret = false;
- break;
- case SH_SpinBox_ButtonsInsideFrame:
- ret = false;
- break;
- case SH_Table_GridLineColor:
- ret = int(qt_mac_toQColor(NSColor.gridColor).rgba());
- break;
- default:
- ret = QCommonStyle::styleHint(sh, opt, hret);
- break;
- }
- return ret;
-}
-
-QPixmap QMacStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap,
- const QStyleOption *opt) const
-{
- switch (iconMode) {
- case QIcon::Disabled: {
- QImage img = pixmap.toImage().convertToFormat(QImage::Format_ARGB32);
- int imgh = img.height();
- int imgw = img.width();
- QRgb pixel;
- for (int y = 0; y < imgh; ++y) {
- for (int x = 0; x < imgw; ++x) {
- pixel = img.pixel(x, y);
- img.setPixel(x, y, qRgba(qRed(pixel), qGreen(pixel), qBlue(pixel),
- qAlpha(pixel) / 2));
- }
- }
- return QPixmap::fromImage(img);
- }
- default:
- ;
- }
- return QCommonStyle::generatedIconPixmap(iconMode, pixmap, opt);
-}
-
-
-QPixmap QMacStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt) const
-{
- // The default implementation of QStyle::standardIconImplementation() is to call standardPixmap()
- // I don't want infinite recursion so if we do get in that situation, just return the Window's
- // standard pixmap instead (since there is no mac-specific icon then). This should be fine until
- // someone changes how Windows standard
- // pixmap works.
- static bool recursionGuard = false;
-
- if (recursionGuard)
- return QCommonStyle::standardPixmap(standardPixmap, opt);
-
- recursionGuard = true;
- QIcon icon = proxy()->standardIcon(standardPixmap, opt);
- recursionGuard = false;
- int size;
- switch (standardPixmap) {
- default:
- size = 32;
- break;
- case SP_MessageBoxCritical:
- case SP_MessageBoxQuestion:
- case SP_MessageBoxInformation:
- case SP_MessageBoxWarning:
- size = 64;
- break;
- }
- return icon.pixmap(opt->window, QSize(size, size));
-}
-
-void QMacStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p) const
-{
- Q_D(const QMacStyle);
-
- const AppearanceSync appSync;
- QMacCGContext cg(p);
- d->resolveCurrentNSView(opt->window);
-
- switch (pe) {
- case PE_IndicatorArrowUp:
- case PE_IndicatorArrowDown:
- case PE_IndicatorArrowRight:
- case PE_IndicatorArrowLeft: {
- p->save();
- p->setRenderHint(QPainter::Antialiasing);
- const int xOffset = 1; // FIXME: opt->direction == Qt::LeftToRight ? 2 : -1;
- qreal halfSize = 0.5 * qMin(opt->rect.width(), opt->rect.height());
- const qreal penWidth = qMax(halfSize / 3.0, 1.25);
-//#if QT_CONFIG(toolbutton)
-// if (const QToolButton *tb = qobject_cast<const QToolButton *>(w)) {
-// // When stroking the arrow, make sure it fits in the tool button
-// if (tb->arrowType() != Qt::NoArrow
-// || tb->popupMode() == QToolButton::MenuButtonPopup)
-// halfSize -= penWidth;
-// }
-//#endif
-
- QTransform transform;
- transform.translate(opt->rect.center().x() + xOffset, opt->rect.center().y() + 2);
- QPainterPath path;
- switch(pe) {
- default:
- case PE_IndicatorArrowDown:
- break;
- case PE_IndicatorArrowUp:
- transform.rotate(180);
- break;
- case PE_IndicatorArrowLeft:
- transform.rotate(90);
- break;
- case PE_IndicatorArrowRight:
- transform.rotate(-90);
- break;
- }
- p->setTransform(transform);
-
- path.moveTo(-halfSize, -halfSize * 0.5);
- path.lineTo(0.0, halfSize * 0.5);
- path.lineTo(halfSize, -halfSize * 0.5);
-
- const QPen arrowPen(opt->palette.text(), penWidth,
- Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
- p->strokePath(path, arrowPen);
- p->restore();
- break; }
- case PE_FrameTabBarBase:
- if (const QStyleOptionTabBarBase *tbb
- = qstyleoption_cast<const QStyleOptionTabBarBase *>(opt)) {
- if (tbb->documentMode) {
- p->save();
- drawTabBase(p, tbb);
- p->restore();
- return;
- }
- QRegion region(tbb->rect);
- region -= tbb->tabBarRect;
- p->save();
- p->setClipRegion(region);
- QStyleOptionTabWidgetFrame twf;
- twf.QStyleOption::operator=(*tbb);
- twf.shape = tbb->shape;
- switch (QMacStylePrivate::tabDirection(twf.shape)) {
- case QMacStylePrivate::North:
- twf.rect = twf.rect.adjusted(0, 0, 0, 10);
- break;
- case QMacStylePrivate::South:
- twf.rect = twf.rect.adjusted(0, -10, 0, 0);
- break;
- case QMacStylePrivate::West:
- twf.rect = twf.rect.adjusted(0, 0, 10, 0);
- break;
- case QMacStylePrivate::East:
- twf.rect = twf.rect.adjusted(0, -10, 0, 0);
- break;
- }
- proxy()->drawPrimitive(PE_FrameTabWidget, &twf, p);
- p->restore();
- }
- break;
- case PE_PanelTipLabel:
- p->fillRect(opt->rect, opt->palette.brush(QPalette::ToolTipBase));
- break;
- case PE_FrameGroupBox:
- if (const auto *groupBox = qstyleoption_cast<const QStyleOptionFrame *>(opt))
- if (groupBox->features & QStyleOptionFrame::Flat) {
- QCommonStyle::drawPrimitive(pe, groupBox, p);
- break;
- }
- Q_FALLTHROUGH();
- case PE_FrameTabWidget:
- {
- const auto cw = QMacStylePrivate::CocoaControl(QMacStylePrivate::Box, QStyleHelper::SizeLarge);
- auto *box = static_cast<NSBox *>(d->cocoaControl(cw));
- // FIXME Since macOS 10.14, simply calling drawRect: won't display anything anymore.
- // The AppKit team is aware of this and has proposed a couple of solutions.
- // The first solution was to call displayRectIgnoringOpacity:inContext: instead.
- // However, it doesn't seem to work on 10.13. More importantly, dark mode on 10.14
- // is extremely slow. Light mode works fine.
- // The second solution is to subclass NSBox and reimplement a trivial drawRect: which
- // would only call super. This works without any issue on 10.13, but a double border
- // shows on 10.14 in both light and dark modes.
- // The code below picks what works on each version and mode. On 10.13 and earlier, we
- // simply call drawRect: on a regular NSBox. On 10.14, we call displayRectIgnoringOpacity:
- // inContext:, but only in light mode. In dark mode, we use a custom NSBox subclass,
- // QDarkNSBox, of type NSBoxCustom. Its appearance is close enough to the real thing so
- // we can use this for now.
- auto adjustedRect = opt->rect;
- bool needTranslation = false;
- if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::MacOSMojave
- && !qt_mac_applicationIsInDarkMode()) {
- // In Aqua theme we have to use the 'default' NSBox (as opposite
- // to the 'custom' QDarkNSBox we use in dark theme). Since -drawRect:
- // does nothing in default NSBox, we call -displayRectIgnoringOpaticty:.
- // Unfortunately, the resulting box is smaller then the actual rect we
- // wanted. This can be seen, e.g. because tabs (buttons) are misaligned
- // vertically and even worse, if QTabWidget has autoFillBackground
- // set, this background overpaints NSBox making it to disappear.
- // We trick our NSBox to render in a larger rectangle, so that
- // the actuall result (which is again smaller than requested),
- // more or less is what we really want. We'll have to adjust CTM
- // and translate accordingly.
- adjustedRect.adjust(0, 0, 6, 6);
- needTranslation = true;
- }
- d->drawNSViewInRect(box, adjustedRect, p, ^(CGContextRef ctx, const CGRect &rect) {
-//#if QT_CONFIG(tabwidget)
-// if (QTabWidget *tabWidget = qobject_cast<QTabWidget *>(opt->styleObject))
-// clipTabBarFrame(opt, this, ctx);
-//#endif
- QMacAutoReleasePool pool;
- CGContextTranslateCTM(ctx, 0, rect.origin.y + rect.size.height);
- CGContextScaleCTM(ctx, 1, -1);
- if (QOperatingSystemVersion::current() < QOperatingSystemVersion::MacOSMojave
- || [box isMemberOfClass:QDarkNSBox.class]) {
- [box drawRect:rect];
- } else {
- if (needTranslation)
- CGContextTranslateCTM(ctx, -3.0, 5.0);
- [box displayRectIgnoringOpacity:box.bounds inContext:NSGraphicsContext.currentContext];
- }
- });
- break;
- }
- case PE_IndicatorToolBarSeparator: {
- QPainterPath path;
- if (opt->state & State_Horizontal) {
- int xpoint = opt->rect.center().x();
- path.moveTo(xpoint + 0.5, opt->rect.top() + 1);
- path.lineTo(xpoint + 0.5, opt->rect.bottom());
- } else {
- int ypoint = opt->rect.center().y();
- path.moveTo(opt->rect.left() + 2 , ypoint + 0.5);
- path.lineTo(opt->rect.right() + 1, ypoint + 0.5);
- }
- QPainterPathStroker theStroker;
- theStroker.setCapStyle(Qt::FlatCap);
- theStroker.setDashPattern(QVector<qreal>() << 1 << 2);
- path = theStroker.createStroke(path);
- const auto dark = qt_mac_applicationIsInDarkMode() ? opt->palette.dark().color().darker()
- : QColor(0, 0, 0, 119);
- p->fillPath(path, dark);
- }
- break;
- case PE_FrameWindow:
- if (const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
-// if (w && w->inherits("QMdiSubWindow")) {
-// p->save();
-// p->setPen(QPen(frame->palette.dark().color(), frame->lineWidth));
-// p->setBrush(frame->palette.window());
-// p->drawRect(frame->rect);
-// p->restore();
-// }
- }
- break;
- case PE_IndicatorDockWidgetResizeHandle: {
- // The docwidget resize handle is drawn as a one-pixel wide line.
- p->save();
- if (opt->state & State_Horizontal) {
- p->setPen(QColor(160, 160, 160));
- p->drawLine(opt->rect.topLeft(), opt->rect.topRight());
- } else {
- p->setPen(QColor(145, 145, 145));
- p->drawLine(opt->rect.topRight(), opt->rect.bottomRight());
- }
- p->restore();
- } break;
- case PE_IndicatorToolBarHandle: {
- p->save();
- QPainterPath path;
- int x = opt->rect.x() + 6;
- int y = opt->rect.y() + 7;
- static const int RectHeight = 2;
- if (opt->state & State_Horizontal) {
- while (y < opt->rect.height() - RectHeight - 5) {
- path.moveTo(x, y);
- path.addEllipse(x, y, RectHeight, RectHeight);
- y += 6;
- }
- } else {
- while (x < opt->rect.width() - RectHeight - 5) {
- path.moveTo(x, y);
- path.addEllipse(x, y, RectHeight, RectHeight);
- x += 6;
- }
- }
- p->setPen(Qt::NoPen);
- QColor dark = opt->palette.dark().color().darker();
- dark.setAlphaF(0.50);
- p->fillPath(path, dark);
- p->restore();
-
- break;
- }
- case PE_IndicatorHeaderArrow:
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(opt)) {
- // In HITheme, up is down, down is up and hamburgers eat people.
- if (header->sortIndicator != QStyleOptionHeader::None)
- proxy()->drawPrimitive(
- (header->sortIndicator == QStyleOptionHeader::SortDown) ?
- PE_IndicatorArrowUp : PE_IndicatorArrowDown, header, p);
- }
- break;
- case PE_IndicatorMenuCheckMark: {
- QColor pc;
- if (opt->state & State_On)
- pc = opt->palette.highlightedText().color();
- else
- pc = opt->palette.text().color();
-
- QCFType<CGColorRef> checkmarkColor = CGColorCreateGenericRGB(static_cast<CGFloat>(pc.redF()),
- static_cast<CGFloat>(pc.greenF()),
- static_cast<CGFloat>(pc.blueF()),
- static_cast<CGFloat>(pc.alphaF()));
- // kCTFontUIFontSystem and others give the same result
- // as kCTFontUIFontMenuItemMark. However, the latter is
- // more reminiscent to HITheme's kThemeMenuItemMarkFont.
- // See also the font for small- and mini-sized widgets,
- // where we end up using the generic system font type.
- const CTFontUIFontType fontType = (opt->state & State_Mini) ? kCTFontUIFontMiniSystem :
- (opt->state & State_Small) ? kCTFontUIFontSmallSystem :
- kCTFontUIFontMenuItemMark;
- // Similarly for the font size, where there is a small difference
- // between regular combobox and item view items, and and menu items.
- // However, we ignore any difference for small- and mini-sized widgets.
- const CGFloat fontSize = fontType == kCTFontUIFontMenuItemMark ? opt->fontMetrics.height() : 0.0;
- QCFType<CTFontRef> checkmarkFont = CTFontCreateUIFontForLanguage(fontType, fontSize, NULL);
-
- CGContextSaveGState(cg);
- CGContextSetShouldSmoothFonts(cg, NO); // Same as HITheme and Cocoa menu checkmarks
-
- // Baseline alignment tweaks for QComboBox and QMenu
- const CGFloat vOffset = (opt->state & State_Mini) ? 0.0 :
- (opt->state & State_Small) ? 1.0 :
- 0.75;
-
- CGContextTranslateCTM(cg, 0, opt->rect.bottom());
- CGContextScaleCTM(cg, 1, -1);
- // Translate back to the original position and add rect origin and offset
- CGContextTranslateCTM(cg, opt->rect.x(), vOffset);
-
- // CTFont has severe difficulties finding the checkmark character among its
- // glyphs. Fortunately, CTLine knows its ways inside the Cocoa labyrinth.
- static const CFStringRef keys[] = { kCTFontAttributeName, kCTForegroundColorAttributeName };
- static const int numValues = sizeof(keys) / sizeof(keys[0]);
- const CFTypeRef values[] = { (CFTypeRef)checkmarkFont, (CFTypeRef)checkmarkColor };
- Q_STATIC_ASSERT((sizeof(values) / sizeof(values[0])) == numValues);
- QCFType<CFDictionaryRef> attributes = CFDictionaryCreate(kCFAllocatorDefault, (const void **)keys, (const void **)values,
- numValues, NULL, NULL);
- // U+2713: CHECK MARK
- QCFType<CFAttributedStringRef> checkmarkString = CFAttributedStringCreate(kCFAllocatorDefault, (CFStringRef)@"\u2713", attributes);
- QCFType<CTLineRef> line = CTLineCreateWithAttributedString(checkmarkString);
-
- CTLineDraw((CTLineRef)line, cg);
- CGContextFlush(cg); // CTLineDraw's documentation says it doesn't flush
-
- CGContextRestoreGState(cg);
- break; }
- case PE_IndicatorItemViewItemCheck:
- case PE_IndicatorRadioButton:
- case PE_IndicatorCheckBox: {
- const bool isEnabled = opt->state & State_Enabled;
- const bool isPressed = opt->state & State_Sunken;
- const bool isRadioButton = (pe == PE_IndicatorRadioButton);
- const auto ct = isRadioButton ? QMacStylePrivate::Button_RadioButton : QMacStylePrivate::Button_CheckBox;
- const auto cs = d->effectiveAquaSizeConstrain(opt);
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
- auto *tb = static_cast<NSButton *>(d->cocoaControl(cw));
- tb.enabled = isEnabled;
- tb.state = (opt->state & State_NoChange) ? NSMixedState :
- (opt->state & State_On) ? NSOnState : NSOffState;
- [tb highlight:isPressed];
- const auto vOffset = [=] {
- // As measured
- if (cs == QStyleHelper::SizeMini)
- return ct == QMacStylePrivate::Button_CheckBox ? -0.5 : 0.5;
-
- return cs == QStyleHelper::SizeSmall ? 0.5 : 0.0;
- } ();
- d->drawNSViewInRect(tb, opt->rect, p, ^(CGContextRef ctx, const CGRect &rect) {
- QMacAutoReleasePool pool;
- CGContextTranslateCTM(ctx, 0, vOffset);
- [tb.cell drawInteriorWithFrame:rect inView:tb];
- });
- break; }
- case PE_FrameFocusRect:
- // Use the our own focus widget stuff.
- break;
- case PE_IndicatorBranch: {
- if (!(opt->state & State_Children))
- break;
- const auto cw = QMacStylePrivate::CocoaControl(QMacStylePrivate::Button_Disclosure, QStyleHelper::SizeLarge);
- NSButtonCell *triangleCell = static_cast<NSButtonCell *>(d->cocoaCell(cw));
- [triangleCell setState:(opt->state & State_Open) ? NSOnState : NSOffState];
-// bool viewHasFocus = (w && w->hasFocus()) || (opt->state & State_HasFocus);
- bool viewHasFocus = false;
- [triangleCell setBackgroundStyle:((opt->state & State_Selected) && viewHasFocus) ? NSBackgroundStyleDark : NSBackgroundStyleLight];
-
- d->setupNSGraphicsContext(cg, NO);
-
- QRect qtRect = opt->rect.adjusted(DisclosureOffset, 0, -DisclosureOffset, 0);
- CGRect rect = CGRectMake(qtRect.x() + 1, qtRect.y(), qtRect.width(), qtRect.height());
- CGContextTranslateCTM(cg, rect.origin.x, rect.origin.y + rect.size.height);
- CGContextScaleCTM(cg, 1, -1);
- CGContextTranslateCTM(cg, -rect.origin.x, -rect.origin.y);
-
- [triangleCell drawBezelWithFrame:NSRectFromCGRect(rect) inView:[triangleCell controlView]];
-
- d->restoreNSGraphicsContext(cg);
- break; }
-
- case PE_Frame: {
- const QPen oldPen = p->pen();
- QPen penCpy = p->pen();
- penCpy.setWidth(2);
- penCpy.setColor(opt->palette.dark().color());
- p->setPen(penCpy);
- p->drawRect(opt->rect);
- p->setPen(oldPen);
- break; }
- case PE_PanelLineEdit:
- case PE_FrameLineEdit:
- if (const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- if (frame->state & State_Sunken) {
- const bool isEnabled = opt->state & State_Enabled;
- const bool isReadOnly = opt->state & State_ReadOnly;
- const bool isRounded = frame->features & QStyleOptionFrame::Rounded;
- const auto cs = d->effectiveAquaSizeConstrain(opt, CT_LineEdit);
- const auto cw = QMacStylePrivate::CocoaControl(QMacStylePrivate::TextField, cs);
- auto *tf = static_cast<NSTextField *>(d->cocoaControl(cw));
- tf.enabled = isEnabled;
- tf.editable = !isReadOnly;
- tf.bezeled = YES;
- static_cast<NSTextFieldCell *>(tf.cell).bezelStyle = isRounded ? NSTextFieldRoundedBezel : NSTextFieldSquareBezel;
- tf.frame = opt->rect.toCGRect();
- d->drawNSViewInRect(tf, opt->rect, p, ^(CGContextRef, const CGRect &rect) {
- QMacAutoReleasePool pool;
- if (!qt_mac_applicationIsInDarkMode()) {
- // In 'Dark' mode controls are transparent, so we do not
- // over-paint the (potentially custom) color in the background.
- // In 'Light' mode we have to care about the correct
- // background color. See the comments below for PE_PanelLineEdit.
- CGContextRef cgContext = NSGraphicsContext.currentContext.CGContext;
- // See QMacCGContext, here we expect bitmap context created with
- // color space 'kCGColorSpaceSRGB', if it's something else - we
- // give up.
- if (cgContext ? bool(CGBitmapContextGetColorSpace(cgContext)) : false) {
- tf.drawsBackground = YES;
- const QColor bgColor = frame->palette.brush(QPalette::Base).color();
- tf.backgroundColor = [NSColor colorWithSRGBRed:bgColor.redF()
- green:bgColor.greenF()
- blue:bgColor.blueF()
- alpha:bgColor.alphaF()];
- if (bgColor.alpha() != 255) {
- // No way we can have it bezeled and transparent ...
- tf.bordered = YES;
- }
- }
- }
-
- [tf.cell drawWithFrame:rect inView:tf];
- });
- } else {
- QCommonStyle::drawPrimitive(pe, opt, p);
- }
- }
- break;
- case PE_PanelScrollAreaCorner: {
- const QBrush brush(opt->palette.brush(QPalette::Base));
- p->fillRect(opt->rect, brush);
- p->setPen(QPen(QColor(217, 217, 217)));
- p->drawLine(opt->rect.topLeft(), opt->rect.topRight());
- p->drawLine(opt->rect.topLeft(), opt->rect.bottomLeft());
- } break;
- case PE_FrameStatusBarItem:
- break;
-//#if QT_CONFIG(tabbar)
-// case PE_IndicatorTabClose: {
-// // Make close button visible only on the hovered tab.
-// QTabBar *tabBar = qobject_cast<QTabBar*>(w->parentWidget());
-// const QWidget *closeBtn = w;
-// if (!tabBar) {
-// // QStyleSheetStyle instead of CloseButton (which has
-// // a QTabBar as a parent widget) uses the QTabBar itself:
-// tabBar = qobject_cast<QTabBar *>(const_cast<QWidget*>(w));
-// closeBtn = decltype(closeBtn)(property("_q_styleSheetRealCloseButton").value<void *>());
-// }
-// if (tabBar) {
-// const bool documentMode = tabBar->documentMode();
-// const QTabBarPrivate *tabBarPrivate = static_cast<QTabBarPrivate *>(QObjectPrivate::get(tabBar));
-// const int hoveredTabIndex = tabBarPrivate->hoveredTabIndex();
-// if (!documentMode ||
-// (hoveredTabIndex != -1 && ((closeBtn == tabBar->tabButton(hoveredTabIndex, QTabBar::LeftSide)) ||
-// (closeBtn == tabBar->tabButton(hoveredTabIndex, QTabBar::RightSide))))) {
-// const bool hover = (opt->state & State_MouseOver);
-// const bool selected = (opt->state & State_Selected);
-// const bool pressed = (opt->state & State_Sunken);
-// drawTabCloseButton(p, hover, selected, pressed, documentMode);
-// }
-// }
-// } break;
-//#endif // QT_CONFIG(tabbar)
- case PE_PanelStatusBar: {
- // Fill the status bar with the titlebar gradient.
- QLinearGradient linearGrad;
- const bool isMainWindow = qt_macWindowMainWindow(opt->window);
- if (isMainWindow)
- linearGrad = titlebarGradientActive();
- else
- linearGrad = titlebarGradientInactive();
-
- linearGrad.setStart(0, opt->rect.top());
- linearGrad.setFinalStop(0, opt->rect.bottom());
- p->fillRect(opt->rect, linearGrad);
-
- // Draw the black separator line at the top of the status bar.
- if (isMainWindow)
- p->setPen(titlebarSeparatorLineActive);
- else
- p->setPen(titlebarSeparatorLineInactive);
- p->drawLine(opt->rect.left(), opt->rect.top(), opt->rect.right(), opt->rect.top());
-
- break;
- }
- case PE_PanelMenu: {
- p->save();
- p->fillRect(opt->rect, Qt::transparent);
- p->setPen(Qt::transparent);
- p->setBrush(opt->palette.window());
- p->setRenderHint(QPainter::Antialiasing, true);
- const QPainterPath path = d->windowPanelPath(opt->rect);
- p->drawPath(path);
- p->restore();
- } break;
-
- default:
- QCommonStyle::drawPrimitive(pe, opt, p);
- break;
- }
-}
-
-static QPixmap darkenPixmap(const QPixmap &pixmap)
-{
- QImage img = pixmap.toImage().convertToFormat(QImage::Format_ARGB32);
- int imgh = img.height();
- int imgw = img.width();
- int h, s, v, a;
- QRgb pixel;
- for (int y = 0; y < imgh; ++y) {
- for (int x = 0; x < imgw; ++x) {
- pixel = img.pixel(x, y);
- a = qAlpha(pixel);
- QColor hsvColor(pixel);
- hsvColor.getHsv(&h, &s, &v);
- s = qMin(100, s * 2);
- v = v / 2;
- hsvColor.setHsv(h, s, v);
- pixel = hsvColor.rgb();
- img.setPixel(x, y, qRgba(qRed(pixel), qGreen(pixel), qBlue(pixel), a));
- }
- }
- return QPixmap::fromImage(img);
-}
-
-void QMacStylePrivate::setupVerticalInvertedXform(CGContextRef cg, bool reverse, bool vertical, const CGRect &rect) const
-{
- if (vertical) {
- CGContextTranslateCTM(cg, rect.size.height, 0);
- CGContextRotateCTM(cg, M_PI_2);
- }
- if (vertical != reverse) {
- CGContextTranslateCTM(cg, rect.size.width, 0);
- CGContextScaleCTM(cg, -1, 1);
- }
-}
-
-void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter *p) const
-{
- Q_D(const QMacStyle);
-
- const AppearanceSync sync;
- const QMacAutoReleasePool pool;
-
- QMacCGContext cg(p);
- d->resolveCurrentNSView(opt->window);
-
- switch (ce) {
- case CE_HeaderSection:
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(opt)) {
- State flags = header->state;
- QRect ir = header->rect;
- const bool pressed = (flags & State_Sunken) && !(flags & State_On);
- p->fillRect(ir, pressed ? header->palette.dark() : header->palette.button());
- p->setPen(QPen(header->palette.dark(), 1.0));
- if (header->orientation == Qt::Horizontal)
- p->drawLine(QLineF(ir.right() + 0.5, ir.top() + headerSectionSeparatorInset,
- ir.right() + 0.5, ir.bottom() - headerSectionSeparatorInset));
- else
- p->drawLine(QLineF(ir.left() + headerSectionSeparatorInset, ir.bottom(),
- ir.right() - headerSectionSeparatorInset, ir.bottom()));
- }
-
- break;
- case CE_HeaderLabel:
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(opt)) {
- p->save();
- QRect textr = header->rect;
- if (!header->icon.isNull()) {
- QIcon::Mode mode = QIcon::Disabled;
- if (opt->state & State_Enabled)
- mode = QIcon::Normal;
- int iconExtent = proxy()->pixelMetric(PM_SmallIconSize);
- QPixmap pixmap = header->icon.pixmap(opt->window, QSize(iconExtent, iconExtent), mode);
-
- QRect pixr = header->rect;
- pixr.setY(header->rect.center().y() - (pixmap.height() / pixmap.devicePixelRatio() - 1) / 2);
- proxy()->drawItemPixmap(p, pixr, Qt::AlignVCenter, pixmap);
- textr.translate(pixmap.width() / pixmap.devicePixelRatio() + 2, 0);
- }
-
- proxy()->drawItemText(p, textr, header->textAlignment | Qt::AlignVCenter, header->palette,
- header->state & State_Enabled, header->text, QPalette::ButtonText);
- p->restore();
- }
- break;
- case CE_ToolButtonLabel:
- if (const QStyleOptionToolButton *tb = qstyleoption_cast<const QStyleOptionToolButton *>(opt)) {
- QStyleOptionToolButton myTb = *tb;
- myTb.state &= ~State_AutoRaise;
-#ifndef QT_NO_ACCESSIBILITY
- if (QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ToolBar)) {
- QRect cr = tb->rect;
- int shiftX = 0;
- int shiftY = 0;
- bool needText = false;
- int alignment = 0;
- bool down = tb->state & (State_Sunken | State_On);
- if (down) {
- shiftX = proxy()->pixelMetric(PM_ButtonShiftHorizontal, tb);
- shiftY = proxy()->pixelMetric(PM_ButtonShiftVertical, tb);
- }
- // The down state is special for QToolButtons in a toolbar on the Mac
- // The text is a bit bolder and gets a drop shadow and the icons are also darkened.
- // This doesn't really fit into any particular case in QIcon, so we
- // do the majority of the work ourselves.
- if (!(tb->features & QStyleOptionToolButton::Arrow)) {
- Qt::ToolButtonStyle tbstyle = tb->toolButtonStyle;
- if (tb->icon.isNull() && !tb->text.isEmpty())
- tbstyle = Qt::ToolButtonTextOnly;
-
- switch (tbstyle) {
- case Qt::ToolButtonTextOnly: {
- needText = true;
- alignment = Qt::AlignCenter;
- break; }
- case Qt::ToolButtonIconOnly:
- case Qt::ToolButtonTextBesideIcon:
- case Qt::ToolButtonTextUnderIcon: {
- QRect pr = cr;
- QIcon::Mode iconMode = (tb->state & State_Enabled) ? QIcon::Normal
- : QIcon::Disabled;
- QIcon::State iconState = (tb->state & State_On) ? QIcon::On
- : QIcon::Off;
- QPixmap pixmap = tb->icon.pixmap(opt->window,
- tb->rect.size().boundedTo(tb->iconSize),
- iconMode, iconState);
-
- // Draw the text if it's needed.
- if (tb->toolButtonStyle != Qt::ToolButtonIconOnly) {
- needText = true;
- if (tb->toolButtonStyle == Qt::ToolButtonTextUnderIcon) {
- pr.setHeight(pixmap.size().height() / pixmap.devicePixelRatio() + 6);
- cr.adjust(0, pr.bottom(), 0, -3);
- alignment |= Qt::AlignCenter;
- } else {
- pr.setWidth(pixmap.width() / pixmap.devicePixelRatio() + 8);
- cr.adjust(pr.right(), 0, 0, 0);
- alignment |= Qt::AlignLeft | Qt::AlignVCenter;
- }
- }
- if (opt->state & State_Sunken) {
- pr.translate(shiftX, shiftY);
- pixmap = darkenPixmap(pixmap);
- }
- proxy()->drawItemPixmap(p, pr, Qt::AlignCenter, pixmap);
- break; }
- default:
- Q_ASSERT(false);
- break;
- }
-
- if (needText) {
- QPalette pal = tb->palette;
- QPalette::ColorRole role = QPalette::NoRole;
- if (!proxy()->styleHint(SH_UnderlineShortcut, tb))
- alignment |= Qt::TextHideMnemonic;
- if (down)
- cr.translate(shiftX, shiftY);
- if (tbstyle == Qt::ToolButtonTextOnly
- || (tbstyle != Qt::ToolButtonTextOnly && !down)) {
- QPen pen = p->pen();
- QColor light = down || isDarkMode() ? Qt::black : Qt::white;
- light.setAlphaF(0.375f);
- p->setPen(light);
- p->drawText(cr.adjusted(0, 1, 0, 1), alignment, tb->text);
- p->setPen(pen);
- if (down && tbstyle == Qt::ToolButtonTextOnly) {
-// pal = QApplication::palette("QMenu");
- pal.setCurrentColorGroup(tb->palette.currentColorGroup());
- role = QPalette::HighlightedText;
- }
- }
- proxy()->drawItemText(p, cr, alignment, pal,
- tb->state & State_Enabled, tb->text, role);
- }
- } else {
- QCommonStyle::drawControl(ce, &myTb, p);
- }
- } else
-#endif // QT_NO_ACCESSIBILITY
- {
- QCommonStyle::drawControl(ce, &myTb, p);
- }
- }
- break;
- case CE_ToolBoxTabShape:
- QCommonStyle::drawControl(ce, opt, p);
- break;
- case CE_PushButtonBevel:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- if (!(btn->state & (State_Raised | State_Sunken | State_On)))
- break;
-
- if (btn->features & QStyleOptionButton::CommandLinkButton) {
- QCommonStyle::drawControl(ce, opt, p);
- break;
- }
-
- const bool hasFocus = btn->state & State_HasFocus;
- const bool isActive = btn->state & State_Active;
-
- // a focused auto-default button within an active window
- // takes precedence over a normal default button
- if ((btn->features & QStyleOptionButton::AutoDefaultButton)
- && isActive && hasFocus)
- d->autoDefaultButton = btn->styleObject;
- else if (d->autoDefaultButton == btn->styleObject)
- d->autoDefaultButton = nullptr;
-
- const bool isEnabled = btn->state & State_Enabled;
- const bool isPressed = btn->state & State_Sunken;
- const bool isHighlighted = isActive &&
- ((btn->state & State_On)
- || (btn->features & QStyleOptionButton::DefaultButton)
- || (btn->features & QStyleOptionButton::AutoDefaultButton
- && d->autoDefaultButton == btn->styleObject));
- const bool hasMenu = btn->features & QStyleOptionButton::HasMenu;
- const auto ct = cocoaControlType(btn);
- const auto cs = d->effectiveAquaSizeConstrain(btn);
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
- auto *pb = static_cast<NSButton *>(d->cocoaControl(cw));
- // Ensure same size and location as we used to have with HITheme.
- // This is more convoluted than we initialy thought. See for example
- // differences between plain and menu button frames.
- const QRectF frameRect = cw.adjustedControlFrame(btn->rect);
- pb.frame = frameRect.toCGRect();
-
- pb.enabled = isEnabled;
- [pb highlight:isPressed];
- pb.state = isHighlighted && !isPressed ? NSOnState : NSOffState;
- d->drawNSViewInRect(pb, frameRect, p, ^(CGContextRef, const CGRect &r) {
- QMacAutoReleasePool pool;
- [pb.cell drawBezelWithFrame:r inView:pb.superview];
- });
- [pb highlight:NO];
-
- if (hasMenu && cw.type == QMacStylePrivate::Button_SquareButton) {
- // Using -[NSPopuButtonCell drawWithFrame:inView:] above won't do
- // it right because we don't set the text in the native button.
- const int mbi = proxy()->pixelMetric(QStyle::PM_MenuButtonIndicator, btn);
- const auto ir = frameRect.toRect();
- int arrowYOffset = 0;
- const auto ar = visualRect(btn->direction, ir, QRect(ir.right() - mbi - 6, ir.height() / 2 - arrowYOffset, mbi, mbi));
-
- QStyleOption arrowOpt = *opt;
- arrowOpt.rect = ar;
- proxy()->drawPrimitive(PE_IndicatorArrowDown, &arrowOpt, p);
- }
- }
- break;
- case CE_PushButtonLabel:
- if (const QStyleOptionButton *b = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- QStyleOptionButton btn(*b);
- // We really don't want the label to be drawn the same as on
- // windows style if it has an icon and text, then it should be more like a
- // tab. So, cheat a little here. However, if it *is* only an icon
- // the windows style works great, so just use that implementation.
- const bool isEnabled = btn.state & State_Enabled;
- const bool hasMenu = btn.features & QStyleOptionButton::HasMenu;
- const bool hasIcon = !btn.icon.isNull();
- const bool hasText = !btn.text.isEmpty();
- const bool isActive = btn.state & State_Active;
- const bool isPressed = btn.state & State_Sunken;
-
- const auto ct = cocoaControlType(&btn);
-
- if (!hasMenu && ct != QMacStylePrivate::Button_SquareButton) {
- if (isPressed
- || (isActive && isEnabled
- && ((btn.state & State_On)
- || ((btn.features & QStyleOptionButton::DefaultButton) && !d->autoDefaultButton)
- || d->autoDefaultButton == btn.styleObject)))
- btn.palette.setColor(QPalette::ButtonText, Qt::white);
- }
-
- if ((!hasIcon && !hasMenu) || (hasIcon && !hasText)) {
- QCommonStyle::drawControl(ce, &btn, p);
- } else {
- QRect freeContentRect = btn.rect;
- QRect textRect = itemTextRect(
- btn.fontMetrics, freeContentRect, Qt::AlignCenter, isEnabled, btn.text);
- if (hasMenu) {
- textRect.moveTo(11, textRect.top());
- }
- // Draw the icon:
- if (hasIcon) {
- int contentW = textRect.width();
- if (hasMenu)
- contentW += proxy()->pixelMetric(PM_MenuButtonIndicator) + 4;
- QIcon::Mode mode = isEnabled ? QIcon::Normal : QIcon::Disabled;
- if (mode == QIcon::Normal && btn.state & State_HasFocus)
- mode = QIcon::Active;
- // Decide if the icon is should be on or off:
- QIcon::State state = QIcon::Off;
- if (btn.state & State_On)
- state = QIcon::On;
- QPixmap pixmap = btn.icon.pixmap(opt->window, btn.iconSize, mode, state);
- int pixmapWidth = pixmap.width() / pixmap.devicePixelRatio();
- int pixmapHeight = pixmap.height() / pixmap.devicePixelRatio();
- contentW += pixmapWidth + QMacStylePrivate::PushButtonContentPadding;
- int iconLeftOffset = freeContentRect.x() + (freeContentRect.width() - contentW) / 2;
- int iconTopOffset = freeContentRect.y() + (freeContentRect.height() - pixmapHeight) / 2;
- QRect iconDestRect(iconLeftOffset, iconTopOffset, pixmapWidth, pixmapHeight);
- QRect visualIconDestRect = visualRect(btn.direction, freeContentRect, iconDestRect);
- proxy()->drawItemPixmap(p, visualIconDestRect, Qt::AlignLeft | Qt::AlignVCenter, pixmap);
- int newOffset = iconDestRect.x() + iconDestRect.width()
- + QMacStylePrivate::PushButtonContentPadding - textRect.x();
- textRect.adjust(newOffset, 0, newOffset, 0);
- }
- // Draw the text:
- if (hasText) {
- textRect = visualRect(btn.direction, freeContentRect, textRect);
- proxy()->drawItemText(p, textRect, Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic, btn.palette,
- isEnabled, btn.text, QPalette::ButtonText);
- }
- }
- }
- break;
- case CE_ComboBoxLabel:
- if (const auto *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- auto comboCopy = *cb;
- comboCopy.direction = Qt::LeftToRight;
- // The rectangle will be adjusted to SC_ComboBoxEditField with comboboxEditBounds()
- QCommonStyle::drawControl(CE_ComboBoxLabel, &comboCopy, p);
- }
- break;
- case CE_TabBarTabShape:
- if (const auto *tabOpt = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- if (tabOpt->documentMode) {
- p->save();
- bool isUnified = false;
-// if (w) {
-// QRect tabRect = tabOpt->rect;
-// QPoint windowTabStart = w->mapTo(w->window(), tabRect.topLeft());
-// isUnified = isInMacUnifiedToolbarArea(w->window()->windowHandle(), windowTabStart.y());
-// }
-
- const int tabOverlap = proxy()->pixelMetric(PM_TabBarTabOverlap, opt);
- drawTabShape(p, tabOpt, isUnified, tabOverlap);
-
- p->restore();
- return;
- }
-
- const bool isActive = tabOpt->state & State_Active;
- const bool isEnabled = tabOpt->state & State_Enabled;
- const bool isPressed = tabOpt->state & State_Sunken;
- const bool isSelected = tabOpt->state & State_Selected;
- const auto tabDirection = QMacStylePrivate::tabDirection(tabOpt->shape);
- const bool verticalTabs = tabDirection == QMacStylePrivate::East
- || tabDirection == QMacStylePrivate::West;
-
- QStyleOptionTab::TabPosition tp = tabOpt->position;
- QStyleOptionTab::SelectedPosition sp = tabOpt->selectedPosition;
- if (tabOpt->direction == Qt::RightToLeft && !verticalTabs) {
- if (tp == QStyleOptionTab::Beginning)
- tp = QStyleOptionTab::End;
- else if (tp == QStyleOptionTab::End)
- tp = QStyleOptionTab::Beginning;
-
- if (sp == QStyleOptionTab::NextIsSelected)
- sp = QStyleOptionTab::PreviousIsSelected;
- else if (sp == QStyleOptionTab::PreviousIsSelected)
- sp = QStyleOptionTab::NextIsSelected;
- }
-
- // Alas, NSSegmentedControl and NSSegmentedCell are letting us down.
- // We're not able to draw it at will, either calling -[drawSegment:
- // inFrame:withView:], -[drawRect:] or anything in between. Besides,
- // there's no public API do draw the pressed state, AFAICS. We'll use
- // a push NSButton instead and clip the CGContext.
- // NOTE/TODO: this is not true. On 10.13 NSSegmentedControl works with
- // some (black?) magic/magic dances, on 10.14 it simply works (was
- // it fixed in AppKit?). But, indeed, we cannot make a tab 'pressed'
- // with NSSegmentedControl (only selected), so we stay with buttons
- // (mixing buttons and NSSegmentedControl for such a simple thing
- // is too much work).
-
- const auto cs = d->effectiveAquaSizeConstrain(opt);
- // Extra hacks to get the proper pressed appreance when not selected or selected and inactive
- const bool needsInactiveHack = (!isActive && isSelected);
- const auto ct = !needsInactiveHack && (isSelected || tp == QStyleOptionTab::OnlyOneTab) ?
- QMacStylePrivate::Button_PushButton :
- QMacStylePrivate::Button_PopupButton;
- const bool isPopupButton = ct == QMacStylePrivate::Button_PopupButton;
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
- auto *pb = static_cast<NSButton *>(d->cocoaControl(cw));
-
- auto vOffset = isPopupButton ? 1 : 2;
- if (tabDirection == QMacStylePrivate::East)
- vOffset -= 1;
- const auto outerAdjust = isPopupButton ? 1 : 4;
- const auto innerAdjust = isPopupButton ? 20 : 10;
- QRectF frameRect = tabOpt->rect;
- if (verticalTabs)
- frameRect = QRectF(frameRect.y(), frameRect.x(), frameRect.height(), frameRect.width());
- // Adjust before clipping
- frameRect = frameRect.translated(0, vOffset);
- switch (tp) {
- case QStyleOptionTab::Beginning:
- // Pressed state hack: tweak adjustments in preparation for flip below
- if (!isSelected && tabDirection == QMacStylePrivate::West)
- frameRect = frameRect.adjusted(-innerAdjust, 0, outerAdjust, 0);
- else
- frameRect = frameRect.adjusted(-outerAdjust, 0, innerAdjust, 0);
- break;
- case QStyleOptionTab::Middle:
- frameRect = frameRect.adjusted(-innerAdjust, 0, innerAdjust, 0);
- break;
- case QStyleOptionTab::End:
- // Pressed state hack: tweak adjustments in preparation for flip below
- if (isSelected || tabDirection == QMacStylePrivate::West)
- frameRect = frameRect.adjusted(-innerAdjust, 0, outerAdjust, 0);
- else
- frameRect = frameRect.adjusted(-outerAdjust, 0, innerAdjust, 0);
- break;
- case QStyleOptionTab::OnlyOneTab:
- frameRect = frameRect.adjusted(-outerAdjust, 0, outerAdjust, 0);
- break;
- }
- pb.frame = frameRect.toCGRect();
-
- pb.enabled = isEnabled;
- [pb highlight:isPressed];
- // Set off state when inactive. See needsInactiveHack for when it's selected
- pb.state = (isActive && isSelected && !isPressed) ? NSOnState : NSOffState;
-
- const auto drawBezelBlock = ^(CGContextRef ctx, const CGRect &r) {
- QMacAutoReleasePool pool;
- CGContextClipToRect(ctx, opt->rect.toCGRect());
- if (!isSelected || needsInactiveHack) {
- // Final stage of the pressed state hack: flip NSPopupButton rendering
- if (!verticalTabs && tp == QStyleOptionTab::End) {
- CGContextTranslateCTM(ctx, opt->rect.right(), 0);
- CGContextScaleCTM(ctx, -1, 1);
- CGContextTranslateCTM(ctx, -frameRect.left(), 0);
- } else if (tabDirection == QMacStylePrivate::West && tp == QStyleOptionTab::Beginning) {
- CGContextTranslateCTM(ctx, 0, opt->rect.top());
- CGContextScaleCTM(ctx, 1, -1);
- CGContextTranslateCTM(ctx, 0, -frameRect.right());
- } else if (tabDirection == QMacStylePrivate::East && tp == QStyleOptionTab::End) {
- CGContextTranslateCTM(ctx, 0, opt->rect.bottom());
- CGContextScaleCTM(ctx, 1, -1);
- CGContextTranslateCTM(ctx, 0, -frameRect.left());
- }
- }
-
- // Rotate and translate CTM when vertical
- // On macOS: positive angle is CW, negative is CCW
- if (tabDirection == QMacStylePrivate::West) {
- CGContextTranslateCTM(ctx, 0, frameRect.right());
- CGContextRotateCTM(ctx, -M_PI_2);
- CGContextTranslateCTM(ctx, -frameRect.left(), 0);
- } else if (tabDirection == QMacStylePrivate::East) {
- CGContextTranslateCTM(ctx, opt->rect.right(), 0);
- CGContextRotateCTM(ctx, M_PI_2);
- }
-
- // Now, if it's a trick with a popup button, it has an arrow
- // which makes no sense on tabs.
- NSPopUpArrowPosition oldPosition = NSPopUpArrowAtCenter;
- NSPopUpButtonCell *pbCell = nil;
- if (isPopupButton) {
- pbCell = static_cast<NSPopUpButtonCell *>(pb.cell);
- oldPosition = pbCell.arrowPosition;
- pbCell.arrowPosition = NSPopUpNoArrow;
- }
-
- [pb.cell drawBezelWithFrame:r inView:pb.superview];
-
- if (pbCell) // Restore, we may reuse it for a ComboBox.
- pbCell.arrowPosition = oldPosition;
- };
-
- if (needsInactiveHack) {
- // First, render tab as non-selected tab on a pixamp
- const qreal pixelRatio = p->device()->devicePixelRatioF();
- QImage tabPixmap(opt->rect.size() * pixelRatio, QImage::Format_ARGB32_Premultiplied);
- tabPixmap.setDevicePixelRatio(pixelRatio);
- tabPixmap.fill(Qt::transparent);
- QPainter tabPainter(&tabPixmap);
- d->drawNSViewInRect(pb, frameRect, &tabPainter, ^(CGContextRef ctx, const CGRect &r) {
- QMacAutoReleasePool pool;
- CGContextTranslateCTM(ctx, -opt->rect.left(), -opt->rect.top());
- drawBezelBlock(ctx, r);
- });
- tabPainter.end();
-
- // Then, darken it with the proper shade of gray
- const qreal inactiveGray = 0.898; // As measured
- const int inactiveGray8 = qRound(inactiveGray * 255.0);
- const QRgb inactiveGrayRGB = qRgb(inactiveGray8, inactiveGray8, inactiveGray8);
- for (int l = 0; l < tabPixmap.height(); ++l) {
- auto *line = reinterpret_cast<QRgb*>(tabPixmap.scanLine(l));
- for (int i = 0; i < tabPixmap.width(); ++i) {
- if (qAlpha(line[i]) == 255) {
- line[i] = inactiveGrayRGB;
- } else if (qAlpha(line[i]) > 128) {
- const int g = qRound(inactiveGray * qRed(line[i]));
- line[i] = qRgba(g, g, g, qAlpha(line[i]));
- }
- }
- }
-
- // Finally, draw the tab pixmap on the current painter
- p->drawImage(opt->rect, tabPixmap);
- } else {
- d->drawNSViewInRect(pb, frameRect, p, drawBezelBlock);
- }
-
- if (!isSelected && sp != QStyleOptionTab::NextIsSelected
- && tp != QStyleOptionTab::End
- && tp != QStyleOptionTab::OnlyOneTab) {
- static const QPen separatorPen(Qt::black, 1.0);
- p->save();
- p->setOpacity(isEnabled ? 0.105 : 0.06); // As measured
- p->setPen(separatorPen);
- if (tabDirection == QMacStylePrivate::West) {
- p->drawLine(QLineF(opt->rect.left() + 1.5, opt->rect.bottom(),
- opt->rect.right() - 0.5, opt->rect.bottom()));
- } else if (tabDirection == QMacStylePrivate::East) {
- p->drawLine(QLineF(opt->rect.left(), opt->rect.bottom(),
- opt->rect.right() - 0.5, opt->rect.bottom()));
- } else {
- p->drawLine(QLineF(opt->rect.right(), opt->rect.top() + 1.0,
- opt->rect.right(), opt->rect.bottom() - 0.5));
- }
- p->restore();
- }
-
- // TODO Needs size adjustment to fit the focus ring
- if (tabOpt->state & State_HasFocus) {
- QMacStylePrivate::CocoaControlType focusRingType;
- switch (tp) {
- case QStyleOptionTab::Beginning:
- focusRingType = verticalTabs ? QMacStylePrivate::SegmentedControl_Last
- : QMacStylePrivate::SegmentedControl_First;
- break;
- case QStyleOptionTab::Middle:
- focusRingType = QMacStylePrivate::SegmentedControl_Middle;
- break;
- case QStyleOptionTab::End:
- focusRingType = verticalTabs ? QMacStylePrivate::SegmentedControl_First
- : QMacStylePrivate::SegmentedControl_Last;
- break;
- case QStyleOptionTab::OnlyOneTab:
- focusRingType = QMacStylePrivate::SegmentedControl_Single;
- break;
- }
- }
- }
- break;
- case CE_TabBarTabLabel:
- if (const auto *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- QStyleOptionTab myTab = *tab;
- const auto tabDirection = QMacStylePrivate::tabDirection(tab->shape);
- const bool verticalTabs = tabDirection == QMacStylePrivate::East
- || tabDirection == QMacStylePrivate::West;
-
- // Check to see if we use have the same as the system font
- // (QComboMenuItem is internal and should never be seen by the
- // outside world, unless they read the source, in which case, it's
- // their own fault).
-// const bool nonDefaultFont = p->font() != qt_app_fonts_hash()->value("QComboMenuItem");
- const bool nonDefaultFont = false;
-
-// if (!myTab.documentMode && (myTab.state & State_Selected) && (myTab.state & State_Active))
-// if (const auto *tabBar = qobject_cast<const QTabBar *>(w))
-// if (!tabBar->tabTextColor(tabBar->currentIndex()).isValid())
-// myTab.palette.setColor(QPalette::WindowText, Qt::white);
-
- if (myTab.documentMode && isDarkMode()) {
- bool active = (myTab.state & State_Selected) && (myTab.state & State_Active);
- myTab.palette.setColor(QPalette::WindowText, active ? Qt::white : Qt::gray);
- }
-
- int heightOffset = 0;
- if (verticalTabs) {
- heightOffset = -1;
- } else if (nonDefaultFont) {
- if (p->fontMetrics().height() == myTab.rect.height())
- heightOffset = 2;
- }
- myTab.rect.setHeight(myTab.rect.height() + heightOffset);
-
- QCommonStyle::drawControl(ce, &myTab, p);
- }
- break;
- case CE_DockWidgetTitle:
- if (const auto *dwOpt = qstyleoption_cast<const QStyleOptionDockWidget *>(opt)) {
- const bool isVertical = dwOpt->verticalTitleBar;
- const auto effectiveRect = isVertical ? opt->rect.transposed() : opt->rect;
- p->save();
- if (isVertical) {
- p->translate(effectiveRect.left(), effectiveRect.top() + effectiveRect.width());
- p->rotate(-90);
- p->translate(-effectiveRect.left(), -effectiveRect.top());
- }
-
- // fill title bar background
- QLinearGradient linearGrad;
- linearGrad.setStart(QPointF(0, 0));
- linearGrad.setFinalStop(QPointF(0, 2 * effectiveRect.height()));
- linearGrad.setColorAt(0, opt->palette.button().color());
- linearGrad.setColorAt(1, opt->palette.dark().color());
- p->fillRect(effectiveRect, linearGrad);
-
- // draw horizontal line at bottom
- p->setPen(opt->palette.dark().color());
- p->drawLine(effectiveRect.bottomLeft(), effectiveRect.bottomRight());
-
- if (!dwOpt->title.isEmpty()) {
- auto titleRect = proxy()->subElementRect(SE_DockWidgetTitleBarText, opt);
- if (isVertical)
- titleRect = QRect(effectiveRect.left() + opt->rect.bottom() - titleRect.bottom(),
- effectiveRect.top() + titleRect.left() - opt->rect.left(),
- titleRect.height(),
- titleRect.width());
-
- const auto text = p->fontMetrics().elidedText(dwOpt->title, Qt::ElideRight, titleRect.width());
- proxy()->drawItemText(p, titleRect, Qt::AlignCenter, dwOpt->palette,
- dwOpt->state & State_Enabled, text, QPalette::WindowText);
- }
- p->restore();
- }
- break;
- case CE_FocusFrame: {
-// const auto *ff = qobject_cast<const QFocusFrame *>(w);
-// const auto *ffw = ff ? ff->widget() : nullptr;
-// const auto ct = [=] {
-// if (ffw) {
-// if (ffw->inherits("QCheckBox"))
-// return QMacStylePrivate::Button_CheckBox;
-// if (ffw->inherits("QRadioButton"))
-// return QMacStylePrivate::Button_RadioButton;
-// if (ffw->inherits("QLineEdit") || ffw->inherits("QTextEdit"))
-// return QMacStylePrivate::TextField;
-// }
-//
-// return QMacStylePrivate::Box; // Not really, just make it the default
-// } ();
-// const auto cs = ffw ? (ffw->testAttribute(Qt::WA_MacMiniSize) ? QStyleHelper::SizeMini :
-// ffw->testAttribute(Qt::WA_MacSmallSize) ? QStyleHelper::SizeSmall :
-// QStyleHelper::SizeLarge) :
-// QStyleHelper::SizeLarge;
-// const int hMargin = proxy()->pixelMetric(QStyle::PM_FocusFrameHMargin, opt);
-// const int vMargin = proxy()->pixelMetric(QStyle::PM_FocusFrameVMargin, opt);
-// d->drawFocusRing(p, opt->rect, hMargin, vMargin, QMacStylePrivate::CocoaControl(ct, cs));
- break; }
- case CE_MenuEmptyArea:
- // Skip: PE_PanelMenu fills in everything
- break;
- case CE_MenuItem:
- case CE_MenuHMargin:
- case CE_MenuVMargin:
- case CE_MenuTearoff:
- case CE_MenuScroller:
- if (const QStyleOptionMenuItem *mi = qstyleoption_cast<const QStyleOptionMenuItem *>(opt)) {
- const bool active = mi->state & State_Selected;
- if (active)
- p->fillRect(mi->rect, mi->palette.highlight());
-
- const QStyleHelper::WidgetSizePolicy widgetSize = d->aquaSizeConstrain(opt);
-
- if (ce == CE_MenuTearoff) {
- p->setPen(QPen(mi->palette.dark().color(), 1, Qt::DashLine));
- p->drawLine(mi->rect.x() + 2, mi->rect.y() + mi->rect.height() / 2 - 1,
- mi->rect.x() + mi->rect.width() - 4,
- mi->rect.y() + mi->rect.height() / 2 - 1);
- p->setPen(QPen(mi->palette.light().color(), 1, Qt::DashLine));
- p->drawLine(mi->rect.x() + 2, mi->rect.y() + mi->rect.height() / 2,
- mi->rect.x() + mi->rect.width() - 4,
- mi->rect.y() + mi->rect.height() / 2);
- } else if (ce == CE_MenuScroller) {
- const QSize scrollerSize = QSize(10, 8);
- const int scrollerVOffset = 5;
- const int left = mi->rect.x() + (mi->rect.width() - scrollerSize.width()) / 2;
- const int right = left + scrollerSize.width();
- int top;
- int bottom;
- if (opt->state & State_DownArrow) {
- bottom = mi->rect.y() + scrollerVOffset;
- top = bottom + scrollerSize.height();
- } else {
- bottom = mi->rect.bottom() - scrollerVOffset;
- top = bottom - scrollerSize.height();
- }
- p->save();
- p->setRenderHint(QPainter::Antialiasing);
- QPainterPath path;
- path.moveTo(left, bottom);
- path.lineTo(right, bottom);
- path.lineTo((left + right) / 2, top);
- p->fillPath(path, opt->palette.buttonText());
- p->restore();
- } else if (ce != CE_MenuItem) {
- break;
- }
-
- if (mi->menuItemType == QStyleOptionMenuItem::Separator) {
- CGColorRef separatorColor = [NSColor quaternaryLabelColor].CGColor;
- const QRect separatorRect = QRect(mi->rect.left(), mi->rect.center().y(), mi->rect.width(), 2);
- p->fillRect(separatorRect, qt_mac_toQColor(separatorColor));
- break;
- }
-
- const int maxpmw = mi->maxIconWidth;
- const bool enabled = mi->state & State_Enabled;
-
- int xpos = mi->rect.x() + 18;
- int checkcol = maxpmw;
- if (!enabled)
- p->setPen(mi->palette.text().color());
- else if (active)
- p->setPen(mi->palette.highlightedText().color());
- else
- p->setPen(mi->palette.buttonText().color());
-
- if (mi->checked) {
- QStyleOption checkmarkOpt;
-// checkmarkOpt.initFrom(w);
-
- const int mw = checkcol + macItemFrame;
- const int mh = mi->rect.height() + macItemFrame;
- const int xp = mi->rect.x() + macItemFrame;
- checkmarkOpt.rect = QRect(xp, mi->rect.y() - checkmarkOpt.fontMetrics.descent(), mw, mh);
-
- checkmarkOpt.state.setFlag(State_On, active);
- checkmarkOpt.state.setFlag(State_Enabled, enabled);
- if (widgetSize == QStyleHelper::SizeMini)
- checkmarkOpt.state |= State_Mini;
- else if (widgetSize == QStyleHelper::SizeSmall)
- checkmarkOpt.state |= State_Small;
-
- // We let drawPrimitive(PE_IndicatorMenuCheckMark) pick the right color
- checkmarkOpt.palette.setColor(QPalette::HighlightedText, p->pen().color());
- checkmarkOpt.palette.setColor(QPalette::Text, p->pen().color());
-
- proxy()->drawPrimitive(PE_IndicatorMenuCheckMark, &checkmarkOpt, p);
- }
- if (!mi->icon.isNull()) {
- QIcon::Mode mode = (mi->state & State_Enabled) ? QIcon::Normal
- : QIcon::Disabled;
- // Always be normal or disabled to follow the Mac style.
- int smallIconSize = proxy()->pixelMetric(PM_SmallIconSize);
- QSize iconSize(smallIconSize, smallIconSize);
-//#if QT_CONFIG(combobox)
-// if (const QComboBox *comboBox = qobject_cast<const QComboBox *>(w)) {
-// iconSize = comboBox->iconSize();
-// }
-//#endif
- QPixmap pixmap = mi->icon.pixmap(opt->window, iconSize, mode);
- int pixw = pixmap.width() / pixmap.devicePixelRatio();
- int pixh = pixmap.height() / pixmap.devicePixelRatio();
- QRect cr(xpos, mi->rect.y(), checkcol, mi->rect.height());
- QRect pmr(0, 0, pixw, pixh);
- pmr.moveCenter(cr.center());
- p->drawPixmap(pmr.topLeft(), pixmap);
- xpos += pixw + 6;
- }
-
- QString s = mi->text;
- const auto text_flags = Qt::AlignVCenter | Qt::TextHideMnemonic
- | Qt::TextSingleLine | Qt::AlignAbsolute;
- int yPos = mi->rect.y();
- if (widgetSize == QStyleHelper::SizeMini)
- yPos += 1;
-
- const bool isSubMenu = mi->menuItemType == QStyleOptionMenuItem::SubMenu;
- const int tabwidth = isSubMenu ? 9 : mi->tabWidth;
-
- QString rightMarginText;
- if (isSubMenu)
- rightMarginText = QStringLiteral("\u25b6\ufe0e"); // U+25B6 U+FE0E: BLACK RIGHT-POINTING TRIANGLE
-
- // If present, save and remove embedded shorcut from text
- const int tabIndex = s.indexOf(QLatin1Char('\t'));
- if (tabIndex >= 0) {
- if (!isSubMenu) // ... but ignore it if it's a submenu.
- rightMarginText = s.mid(tabIndex + 1);
- s = s.left(tabIndex);
- }
-
- p->save();
- if (!rightMarginText.isEmpty()) {
-// p->setFont(qt_app_fonts_hash()->value("QMenuItem", p->font()));
- int xp = mi->rect.right() - tabwidth - macRightBorder + 2;
- if (!isSubMenu)
- xp -= macItemHMargin + macItemFrame + 3; // Adjust for shortcut
- p->drawText(xp, yPos, tabwidth, mi->rect.height(), text_flags | Qt::AlignRight, rightMarginText);
- }
-
- if (!s.isEmpty()) {
- const int xm = macItemFrame + maxpmw + macItemHMargin;
- QFont myFont = mi->font;
- // myFont may not have any "hard" flags set. We override
- // the point size so that when it is resolved against the device, this font will win.
- // This is mainly to handle cases where someone sets the font on the window
- // and then the combo inherits it and passes it onward. At that point the resolve mask
- // is very, very weak. This makes it stonger.
- myFont.setPointSizeF(QFontInfo(mi->font).pointSizeF());
-
- // QTBUG-65653: Our own text rendering doesn't look good enough, especially on non-retina
- // displays. Worked around here while waiting for a proper fix in QCoreTextFontEngine.
- // Only if we're not using QCoreTextFontEngine we do fallback to our own text rendering.
- const auto *fontEngine = QFontPrivate::get(myFont)->engineForScript(QChar::Script_Common);
- Q_ASSERT(fontEngine);
- if (fontEngine->type() == QFontEngine::Multi) {
- fontEngine = static_cast<const QFontEngineMulti *>(fontEngine)->engine(0);
- Q_ASSERT(fontEngine);
- }
- if (fontEngine->type() == QFontEngine::Mac) {
- NSFont *f = (NSFont *)(CTFontRef)fontEngine->handle();
-
- // Respect the menu item palette as set in the style option.
- const auto pc = p->pen().color();
- NSColor *c = [NSColor colorWithSRGBRed:pc.redF()
- green:pc.greenF()
- blue:pc.blueF()
- alpha:pc.alphaF()];
-
- s = qt_mac_removeMnemonics(s);
-
- QMacCGContext cgCtx(p);
- d->setupNSGraphicsContext(cgCtx, YES);
-
- // Draw at point instead of in rect, as the rect we've computed for the menu item
- // is based on the font metrics we got from HarfBuzz, so we may risk having CoreText
- // line-break the string if it doesn't fit the given rect. It's better to draw outside
- // the rect and possibly overlap something than to have part of the text disappear.
- [s.toNSString() drawAtPoint:CGPointMake(xpos, yPos)
- withAttributes:@{ NSFontAttributeName:f, NSForegroundColorAttributeName:c,
- NSObliquenessAttributeName: [NSNumber numberWithDouble: myFont.italic() ? 0.3 : 0.0]}];
-
- d->restoreNSGraphicsContext(cgCtx);
- } else {
- p->setFont(myFont);
- p->drawText(xpos, yPos, mi->rect.width() - xm - tabwidth + 1,
- mi->rect.height(), text_flags, s);
- }
- }
- p->restore();
- }
- break;
- case CE_MenuBarItem:
- case CE_MenuBarEmptyArea:
- if (const QStyleOptionMenuItem *mi = qstyleoption_cast<const QStyleOptionMenuItem *>(opt)) {
- const bool selected = (opt->state & State_Selected) && (opt->state & State_Enabled) && (opt->state & State_Sunken);
- const QBrush bg = selected ? mi->palette.highlight() : mi->palette.window();
- p->fillRect(mi->rect, bg);
-
- if (ce != CE_MenuBarItem)
- break;
-
- if (!mi->icon.isNull()) {
- int iconExtent = proxy()->pixelMetric(PM_SmallIconSize);
- drawItemPixmap(p, mi->rect,
- Qt::AlignCenter | Qt::TextHideMnemonic | Qt::TextDontClip
- | Qt::TextSingleLine,
- mi->icon.pixmap(opt->window, QSize(iconExtent, iconExtent),
- (mi->state & State_Enabled) ? QIcon::Normal : QIcon::Disabled));
- } else {
- drawItemText(p, mi->rect,
- Qt::AlignCenter | Qt::TextHideMnemonic | Qt::TextDontClip
- | Qt::TextSingleLine,
- mi->palette, mi->state & State_Enabled,
- mi->text, selected ? QPalette::HighlightedText : QPalette::ButtonText);
- }
- }
- break;
- case CE_ProgressBarLabel:
- case CE_ProgressBarContents:
- break;
- case CE_ProgressBarGroove:
- if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(opt)) {
- const bool isIndeterminate = (pb->minimum == 0 && pb->maximum == 0);
- const bool inverted = pb->invertedAppearance;
- bool reverse = pb->direction == Qt::RightToLeft;
- if (inverted)
- reverse = !reverse;
-
- QRect rect = pb->rect;
- const CGRect cgRect = rect.toCGRect();
-
- const auto aquaSize = d->aquaSizeConstrain(opt);
-
-// const QProgressStyleAnimation *animation = qobject_cast<QProgressStyleAnimation*>(d->animation(opt->styleObject));
- QIndeterminateProgressIndicator *ipi = nil;
-// if (isIndeterminate || animation)
- ipi = static_cast<QIndeterminateProgressIndicator *>(d->cocoaControl({ QMacStylePrivate::ProgressIndicator_Indeterminate, aquaSize }));
- if (isIndeterminate) {
- // QIndeterminateProgressIndicator derives from NSProgressIndicator. We use a single
- // instance that we start animating as soon as one of the progress bars is indeterminate.
- // Since they will be in sync (as it's the case in Cocoa), we just need to draw it with
- // the right geometry when the animation triggers an update. However, we can't hide it
- // entirely between frames since that would stop the animation, so we just set its alpha
- // value to 0. Same if we remove it from its superview. See QIndeterminateProgressIndicator
- // implementation for details.
- //
- // Quick: consider implementing this animation by using Quick/QML instead.
- //
-// if (!animation && opt->styleObject) {
-// auto *animation = new QProgressStyleAnimation(d->animateSpeed(QMacStylePrivate::AquaProgressBar), opt->styleObject);
-// // NSProgressIndicator is heavier to draw than the HITheme API, so we reduce the frame rate a couple notches.
-// animation->setFrameRate(QStyleAnimation::FifteenFps);
-// d->startAnimation(animation);
-// [ipi startAnimation];
-// }
-
- d->setupNSGraphicsContext(cg, NO);
- d->setupVerticalInvertedXform(cg, reverse, false, cgRect);
- [ipi drawWithFrame:cgRect inView:d->backingStoreNSView];
- d->restoreNSGraphicsContext(cg);
- } else {
-// if (animation) {
-// d->stopAnimation(opt->styleObject);
-// [ipi stopAnimation];
-// }
-
- const auto cw = QMacStylePrivate::CocoaControl(QMacStylePrivate::ProgressIndicator_Determinate, aquaSize);
- auto *pi = static_cast<NSProgressIndicator *>(d->cocoaControl(cw));
- d->drawNSViewInRect(pi, rect, p, ^(CGContextRef ctx, const CGRect &rect) {
- QMacAutoReleasePool pool;
- d->setupVerticalInvertedXform(ctx, reverse, false, rect);
- pi.minValue = pb->minimum;
- pi.maxValue = pb->maximum;
- pi.doubleValue = pb->progress;
- [pi drawRect:rect];
- });
- }
- }
- break;
- case CE_SizeGrip: {
- // This is not HIG kosher: Fall back to the old stuff until we decide what to do.
-//#ifndef QT_NO_MDIAREA
-// if (!w || !qobject_cast<QMdiSubWindow *>(w->parentWidget()))
-//#endif
-// break;
-
-// if (w->testAttribute(Qt::WA_MacOpaqueSizeGrip))
-// p->fillRect(opt->rect, opt->palette.window());
-
-// QPen lineColor = QColor(82, 82, 82, 192);
-// lineColor.setWidth(1);
-// p->save();
-// p->setRenderHint(QPainter::Antialiasing);
-// p->setPen(lineColor);
-// const Qt::LayoutDirection layoutDirection = w ? w->layoutDirection() : qApp->layoutDirection();
-// const int NumLines = 3;
-// for (int l = 0; l < NumLines; ++l) {
-// const int offset = (l * 4 + 3);
-// QPoint start, end;
-// if (layoutDirection == Qt::LeftToRight) {
-// start = QPoint(opt->rect.width() - offset, opt->rect.height() - 1);
-// end = QPoint(opt->rect.width() - 1, opt->rect.height() - offset);
-// } else {
-// start = QPoint(offset, opt->rect.height() - 1);
-// end = QPoint(1, opt->rect.height() - offset);
-// }
-// p->drawLine(start, end);
-// }
-// p->restore();
- break;
- }
- case CE_Splitter:
- if (opt->rect.width() > 1 && opt->rect.height() > 1) {
- const bool isVertical = !(opt->state & QStyle::State_Horizontal);
- // Qt refers to the layout orientation, while Cocoa refers to the divider's.
- const auto ct = isVertical ? QMacStylePrivate::SplitView_Horizontal : QMacStylePrivate::SplitView_Vertical;
- const auto cw = QMacStylePrivate::CocoaControl(ct, QStyleHelper::SizeLarge);
- auto *sv = static_cast<NSSplitView *>(d->cocoaControl(cw));
- sv.frame = opt->rect.toCGRect();
- d->drawNSViewInRect(sv, opt->rect, p, ^(CGContextRef, const CGRect &rect) {
- QMacAutoReleasePool pool;
- [sv drawDividerInRect:rect];
- });
- } else {
- QPen oldPen = p->pen();
- p->setPen(opt->palette.dark().color());
- if (opt->state & QStyle::State_Horizontal)
- p->drawLine(opt->rect.topLeft(), opt->rect.bottomLeft());
- else
- p->drawLine(opt->rect.topLeft(), opt->rect.topRight());
- p->setPen(oldPen);
- }
- break;
- case CE_RubberBand:
- if (const QStyleOptionRubberBand *rubber = qstyleoption_cast<const QStyleOptionRubberBand *>(opt)) {
- QColor fillColor(opt->palette.color(QPalette::Disabled, QPalette::Highlight));
- if (!rubber->opaque) {
- QColor strokeColor;
- // I retrieved these colors from the Carbon-Dev mailing list
- strokeColor.setHsvF(0, 0, 0.86, 1.0);
- fillColor.setHsvF(0, 0, 0.53, 0.25);
- if (opt->rect.width() * opt->rect.height() <= 3) {
- p->fillRect(opt->rect, strokeColor);
- } else {
- QPen oldPen = p->pen();
- QBrush oldBrush = p->brush();
- QPen pen(strokeColor);
- p->setPen(pen);
- p->setBrush(fillColor);
- QRect adjusted = opt->rect.adjusted(1, 1, -1, -1);
- if (adjusted.isValid())
- p->drawRect(adjusted);
- p->setPen(oldPen);
- p->setBrush(oldBrush);
- }
- } else {
- p->fillRect(opt->rect, fillColor);
- }
- }
- break;
- case CE_ToolBar: {
- const QStyleOptionToolBar *toolBar = qstyleoption_cast<const QStyleOptionToolBar *>(opt);
- const bool isDarkMode = qt_mac_applicationIsInDarkMode();
-
- // Unified title and toolbar drawing. In this mode the cocoa platform plugin will
- // fill the top toolbar area part with a background gradient that "unifies" with
- // the title bar. The following code fills the toolBar area with transparent pixels
- // to make that gradient visible.
-// if (w) {
-//#if QT_CONFIG(mainwindow)
-// if (QMainWindow * mainWindow = qobject_cast<QMainWindow *>(w->window())) {
-// if (toolBar && toolBar->toolBarArea == Qt::TopToolBarArea && mainWindow->unifiedTitleAndToolBarOnMac()) {
-// // fill with transparent pixels.
-// p->save();
-// p->setCompositionMode(QPainter::CompositionMode_Source);
-// p->fillRect(opt->rect, Qt::transparent);
-// p->restore();
-
-// // Draw a horizontal separator line at the toolBar bottom if the "unified" area ends here.
-// // There might be additional toolbars or other widgets such as tab bars in document
-// // mode below. Determine this by making a unified toolbar area test for the row below
-// // this toolbar.
-// const QPoint windowToolbarEnd = w->mapTo(w->window(), opt->rect.bottomLeft());
-// const bool isEndOfUnifiedArea = !isInMacUnifiedToolbarArea(w->window()->windowHandle(), windowToolbarEnd.y() + 1);
-// if (isEndOfUnifiedArea) {
-// const int margin = qt_mac_aqua_get_metric(SeparatorSize);
-// const auto separatorRect = QRect(opt->rect.left(), opt->rect.bottom(), opt->rect.width(), margin);
-// p->fillRect(separatorRect, isDarkMode ? darkModeSeparatorLine : opt->palette.dark().color());
-// }
-// break;
-// }
-// }
-//#endif
-// }
-
- // draw background gradient
- QLinearGradient linearGrad;
- if (opt->state & State_Horizontal)
- linearGrad = QLinearGradient(0, opt->rect.top(), 0, opt->rect.bottom());
- else
- linearGrad = QLinearGradient(opt->rect.left(), 0, opt->rect.right(), 0);
-
- QColor mainWindowGradientBegin = isDarkMode ? darkMainWindowGradientBegin : lightMainWindowGradientBegin;
- QColor mainWindowGradientEnd = isDarkMode ? darkMainWindowGradientEnd : lightMainWindowGradientEnd;
-
- linearGrad.setColorAt(0, mainWindowGradientBegin);
- linearGrad.setColorAt(1, mainWindowGradientEnd);
- p->fillRect(opt->rect, linearGrad);
-
- p->save();
- QRect toolbarRect = isDarkMode ? opt->rect.adjusted(0, 0, 0, 1) : opt->rect;
- if (opt->state & State_Horizontal) {
- p->setPen(isDarkMode ? darkModeSeparatorLine : mainWindowGradientBegin.lighter(114));
- p->drawLine(toolbarRect.topLeft(), toolbarRect.topRight());
- p->setPen(isDarkMode ? darkModeSeparatorLine :mainWindowGradientEnd.darker(114));
- p->drawLine(toolbarRect.bottomLeft(), toolbarRect.bottomRight());
- } else {
- p->setPen(isDarkMode ? darkModeSeparatorLine : mainWindowGradientBegin.lighter(114));
- p->drawLine(toolbarRect.topLeft(), toolbarRect.bottomLeft());
- p->setPen(isDarkMode ? darkModeSeparatorLine : mainWindowGradientEnd.darker(114));
- p->drawLine(toolbarRect.topRight(), toolbarRect.bottomRight());
- }
- p->restore();
-
- break; }
- default:
- QCommonStyle::drawControl(ce, opt, p);
- break;
- }
-}
-
-static void setLayoutItemMargins(int left, int top, int right, int bottom, QRect *rect, Qt::LayoutDirection dir)
-{
- if (dir == Qt::RightToLeft) {
- rect->adjust(-right, top, -left, bottom);
- } else {
- rect->adjust(left, top, right, bottom);
- }
-}
-
-QRect QMacStyle::subElementRect(SubElement sr, const QStyleOption *opt) const
-{
- Q_D(const QMacStyle);
- QRect rect;
- const int controlSize = getControlSize(opt);
-
- switch (sr) {
- case SE_ItemViewItemText:
- if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
- int fw = proxy()->pixelMetric(PM_FocusFrameHMargin, opt);
- // We add the focusframeargin between icon and text in commonstyle
- rect = QCommonStyle::subElementRect(sr, opt);
- if (vopt->features & QStyleOptionViewItem::HasDecoration)
- rect.adjust(-fw, 0, 0, 0);
- }
- break;
- case SE_ToolBoxTabContents:
- rect = QCommonStyle::subElementRect(sr, opt);
- break;
- case SE_PushButtonContents:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- // Comment from the old HITheme days:
- // "Unlike Carbon, we want the button to always be drawn inside its bounds.
- // Therefore, the button is a bit smaller, so that even if it got focus,
- // the focus 'shadow' will be inside. Adjust the content rect likewise."
- // In the future, we should consider using -[NSCell titleRectForBounds:].
- // Since it requires configuring the NSButton fully, i.e. frame, image,
- // title and font, we keep things more manual until we are more familiar
- // with side effects when changing NSButton state.
- const auto ct = cocoaControlType(btn);
- const auto cs = d->effectiveAquaSizeConstrain(btn);
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
- auto frameRect = cw.adjustedControlFrame(btn->rect);
- frameRect -= cw.titleMargins();
- rect = frameRect.toRect();
- }
- break;
- case SE_HeaderLabel: {
- int margin = proxy()->pixelMetric(QStyle::PM_HeaderMargin, opt);
- rect.setRect(opt->rect.x() + margin, opt->rect.y(),
- opt->rect.width() - margin * 2, opt->rect.height() - 2);
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(opt)) {
- // Subtract width needed for arrow, if there is one
- if (header->sortIndicator != QStyleOptionHeader::None) {
- if (opt->state & State_Horizontal)
- rect.setWidth(rect.width() - (headerSectionArrowHeight) - (margin * 2));
- else
- rect.setHeight(rect.height() - (headerSectionArrowHeight) - (margin * 2));
- }
- }
- rect = visualRect(opt->direction, opt->rect, rect);
- break;
- }
- case SE_HeaderArrow: {
- int h = opt->rect.height();
- int w = opt->rect.width();
- int x = opt->rect.x();
- int y = opt->rect.y();
- int margin = proxy()->pixelMetric(QStyle::PM_HeaderMargin, opt);
-
- if (opt->state & State_Horizontal) {
- rect.setRect(x + w - margin * 2 - headerSectionArrowHeight, y + 5,
- headerSectionArrowHeight, h - margin * 2 - 5);
- } else {
- rect.setRect(x + 5, y + h - margin * 2 - headerSectionArrowHeight,
- w - margin * 2 - 5, headerSectionArrowHeight);
- }
- rect = visualRect(opt->direction, opt->rect, rect);
- break;
- }
- case SE_ProgressBarGroove:
- // Wrong in the secondary dimension, but accurate enough in the main dimension.
- rect = opt->rect;
- break;
- case SE_ProgressBarLabel:
- break;
- case SE_ProgressBarContents:
- rect = opt->rect;
- break;
- case SE_TreeViewDisclosureItem: {
- rect = opt->rect;
- // As previously returned by HIThemeGetButtonContentBounds
- rect.setLeft(rect.left() + 2 + DisclosureOffset);
- break;
- }
- case SE_TabWidgetLeftCorner:
- if (const QStyleOptionTabWidgetFrame *twf
- = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
- switch (twf->shape) {
- case QStyleOptionTab::RoundedNorth:
- case QStyleOptionTab::TriangularNorth:
- rect = QRect(QPoint(0, 0), twf->leftCornerWidgetSize);
- break;
- case QStyleOptionTab::RoundedSouth:
- case QStyleOptionTab::TriangularSouth:
- rect = QRect(QPoint(0, twf->rect.height() - twf->leftCornerWidgetSize.height()),
- twf->leftCornerWidgetSize);
- break;
- default:
- break;
- }
- rect = visualRect(twf->direction, twf->rect, rect);
- }
- break;
- case SE_TabWidgetRightCorner:
- if (const QStyleOptionTabWidgetFrame *twf
- = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
- switch (twf->shape) {
- case QStyleOptionTab::RoundedNorth:
- case QStyleOptionTab::TriangularNorth:
- rect = QRect(QPoint(twf->rect.width() - twf->rightCornerWidgetSize.width(), 0),
- twf->rightCornerWidgetSize);
- break;
- case QStyleOptionTab::RoundedSouth:
- case QStyleOptionTab::TriangularSouth:
- rect = QRect(QPoint(twf->rect.width() - twf->rightCornerWidgetSize.width(),
- twf->rect.height() - twf->rightCornerWidgetSize.height()),
- twf->rightCornerWidgetSize);
- break;
- default:
- break;
- }
- rect = visualRect(twf->direction, twf->rect, rect);
- }
- break;
- case SE_TabWidgetTabContents:
- rect = QCommonStyle::subElementRect(sr, opt);
- if (const auto *twf = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
- if (twf->lineWidth != 0) {
- switch (QMacStylePrivate::tabDirection(twf->shape)) {
- case QMacStylePrivate::North:
- rect.adjust(+1, +14, -1, -1);
- break;
- case QMacStylePrivate::South:
- rect.adjust(+1, +1, -1, -14);
- break;
- case QMacStylePrivate::West:
- rect.adjust(+14, +1, -1, -1);
- break;
- case QMacStylePrivate::East:
- rect.adjust(+1, +1, -14, -1);
- }
- }
- }
- break;
- case SE_TabBarTabText:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- QRect dummyIconRect;
- d->tabLayout(tab, &rect, &dummyIconRect);
- }
- break;
- case SE_TabBarTabLeftButton:
- case SE_TabBarTabRightButton:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- bool selected = tab->state & State_Selected;
- int verticalShift = proxy()->pixelMetric(QStyle::PM_TabBarTabShiftVertical, tab);
- int horizontalShift = proxy()->pixelMetric(QStyle::PM_TabBarTabShiftHorizontal, tab);
- int hpadding = 5;
-
- bool verticalTabs = tab->shape == QStyleOptionTab::RoundedEast
- || tab->shape == QStyleOptionTab::RoundedWest
- || tab->shape == QStyleOptionTab::TriangularEast
- || tab->shape == QStyleOptionTab::TriangularWest;
-
- QRect tr = tab->rect;
- if (tab->shape == QStyleOptionTab::RoundedSouth || tab->shape == QStyleOptionTab::TriangularSouth)
- verticalShift = -verticalShift;
- if (verticalTabs) {
- qSwap(horizontalShift, verticalShift);
- horizontalShift *= -1;
- verticalShift *= -1;
- }
- if (tab->shape == QStyleOptionTab::RoundedWest || tab->shape == QStyleOptionTab::TriangularWest)
- horizontalShift = -horizontalShift;
-
- tr.adjust(0, 0, horizontalShift, verticalShift);
- if (selected)
- {
- tr.setBottom(tr.bottom() - verticalShift);
- tr.setRight(tr.right() - horizontalShift);
- }
-
- QSize size = (sr == SE_TabBarTabLeftButton) ? tab->leftButtonSize : tab->rightButtonSize;
- int w = size.width();
- int h = size.height();
- int midHeight = static_cast<int>(qCeil(float(tr.height() - h) / 2));
- int midWidth = ((tr.width() - w) / 2);
-
- bool atTheTop = true;
- switch (tab->shape) {
- case QStyleOptionTab::RoundedWest:
- case QStyleOptionTab::TriangularWest:
- atTheTop = (sr == SE_TabBarTabLeftButton);
- break;
- case QStyleOptionTab::RoundedEast:
- case QStyleOptionTab::TriangularEast:
- atTheTop = (sr == SE_TabBarTabRightButton);
- break;
- default:
- if (sr == SE_TabBarTabLeftButton)
- rect = QRect(tab->rect.x() + hpadding, midHeight, w, h);
- else
- rect = QRect(tab->rect.right() - w - hpadding, midHeight, w, h);
- rect = visualRect(tab->direction, tab->rect, rect);
- }
- if (verticalTabs) {
- if (atTheTop)
- rect = QRect(midWidth, tr.y() + tab->rect.height() - hpadding - h, w, h);
- else
- rect = QRect(midWidth, tr.y() + hpadding, w, h);
- }
- }
- break;
- case SE_LineEditContents: {
- // From using pixelTool with XCode/NSTextTextField
- int leftPadding = 4;
- int rightPadding = 4;
- int topPadding = 4;
- int bottomPadding = 0;
-
- if (opt->state & QStyle::State_Small) {
- topPadding = 3;
- } else if (opt->state & QStyle::State_Mini) {
- topPadding = 2;
- }
-
- rect = QRect(leftPadding, topPadding, opt->rect.width() - leftPadding - rightPadding,
- opt->rect.height() - topPadding - bottomPadding);
- break; }
- case SE_CheckBoxLayoutItem:
- rect = opt->rect;
- if (controlSize == QStyleHelper::SizeLarge) {
- setLayoutItemMargins(+2, +2, -3, -2, &rect, opt->direction);
- } else if (controlSize == QStyleHelper::SizeSmall) {
- setLayoutItemMargins(+1, +2, -2, -1, &rect, opt->direction);
- } else {
- setLayoutItemMargins(-0, +0, -1, -0, &rect, opt->direction);
- }
- break;
- case SE_ComboBoxLayoutItem:
- if (const auto *combo = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- //#ifndef QT_NO_TOOLBAR
- // if (widget && qobject_cast<QToolBar *>(widget->parentWidget())) {
- // // Do nothing, because QToolbar needs the entire widget rect.
- // // Otherwise it will be clipped. Equivalent to
- // // widget->setAttribute(Qt::WA_LayoutUsesWidgetRect), but without
- // // all the hassle.
- // } else
- //#endif
- if (combo->editable)
- rect = LargeSmallMini(opt,
- opt->rect.adjusted(5, 6, -6, -7),
- opt->rect.adjusted(4, 4, -5, -7),
- opt->rect.adjusted(5, 4, -4, -6));
- else
- rect = LargeSmallMini(opt,
- opt->rect.adjusted(6, 4, -7, -7),
- opt->rect.adjusted(6, 7, -6, -5),
- opt->rect.adjusted(9, 5, -5, -7));
- }
- break;
- case SE_LabelLayoutItem:
- rect = opt->rect;
- setLayoutItemMargins(+1, 0 /* SHOULD be -1, done for alignment */, 0, 0 /* SHOULD be -1, done for alignment */, &rect, opt->direction);
- break;
- case SE_ProgressBarLayoutItem:
- if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(opt)) {
- const bool isIndeterminate = (pb->minimum == 0 && pb->maximum == 0);
- rect = opt->rect;
-
- if (isIndeterminate) {
- rect.adjust(1, 2, -1, -2);
- } else {
- rect.adjust(1, 1, -1, -2);
- }
- }
- break;
- case SE_PushButtonLayoutItem:
- rect = opt->rect;
- if (const QStyleOptionButton *buttonOpt = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- if ((buttonOpt->features & QStyleOptionButton::Flat))
- break;
- }
- rect = LargeSmallMini(opt,
- opt->rect.adjusted(7, 5, -7, -7),
- opt->rect.adjusted(6, 6, -6, -6),
- opt->rect.adjusted(6, 5, -6, -6));
- break;
- case SE_SpinBoxLayoutItem:
- rect = LargeSmallMini(opt,
- opt->rect.adjusted(2, 3, -2, -2),
- opt->rect.adjusted(2, 3, -2, -2),
- opt->rect.adjusted(2, 3, -2, -2));
- break;
- case SE_RadioButtonLayoutItem:
- rect = LargeSmallMini(opt,
- opt->rect.adjusted(2, 2, -3, -2),
- opt->rect.adjusted(2, 2, -3, -2),
- opt->rect.adjusted(1, 2, -3, -2));
- break;
- case SE_SliderLayoutItem:
- if (const QStyleOptionSlider *sliderOpt
- = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- rect = opt->rect;
- if (sliderOpt->subControls & QStyle::SC_SliderHandle) {
- if (sliderOpt->tickPosition == QStyleOptionSlider::NoTicks)
- rect.adjust(3, 3, -3, -3);
- } else {
- rect.adjust(3, 0, -3, 0);
- }
- }
- break;
- case SE_ScrollBarLayoutItem:
- if (const QStyleOptionSlider *sliderOpt = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- rect = opt->rect;
- }
- case SE_FrameLayoutItem:
- // hack because QStyleOptionFrame doesn't have a frameStyle member
-// if (const QFrame *frame = qobject_cast<const QFrame *>(widget)) {
-// rect = opt->rect;
-// switch (frame->frameStyle() & QFrame::Shape_Mask) {
-// case QFrame::HLine:
-// rect.adjust(0, +1, 0, -1);
-// break;
-// case QFrame::VLine:
-// rect.adjust(+1, 0, -1, 0);
-// break;
-// default:
-// ;
-// }
-// }
- break;
- case SE_GroupBoxLayoutItem:
- rect = opt->rect;
- if (const QStyleOptionGroupBox *groupBoxOpt =
- qstyleoption_cast<const QStyleOptionGroupBox *>(opt)) {
- /*
- AHIG is very inconsistent when it comes to group boxes.
- Basically, we make sure that (non-checkable) group boxes
- and tab widgets look good when laid out side by side.
- */
- if (groupBoxOpt->subControls & (QStyle::SC_GroupBoxCheckBox
- | QStyle::SC_GroupBoxLabel)) {
- int delta;
- if (groupBoxOpt->subControls & QStyle::SC_GroupBoxCheckBox) {
- delta = SIZE(8, 4, 4); // guess
- } else {
- delta = SIZE(15, 12, 12); // guess
- }
- rect.setTop(rect.top() + delta);
- }
- }
- rect.setBottom(rect.bottom() - 1);
- break;
- case SE_TabWidgetLayoutItem:
- if (const QStyleOptionTabWidgetFrame *tabWidgetOpt =
- qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
- /*
- AHIG specifies "12 or 14" as the distance from the window
- edge. We choose 14 and since the default top margin is 20,
- the overlap is 6.
- */
- rect = tabWidgetOpt->rect;
- if (tabWidgetOpt->shape == QStyleOptionTab::RoundedNorth)
- rect.setTop(rect.top() + SIZE(6 /* AHIG */, 3 /* guess */, 2 /* AHIG */));
- }
- break;
- case SE_DockWidgetCloseButton:
- case SE_DockWidgetFloatButton:
- case SE_DockWidgetTitleBarText:
- case SE_DockWidgetIcon: {
- int iconSize = proxy()->pixelMetric(PM_SmallIconSize, opt);
- int buttonMargin = proxy()->pixelMetric(PM_DockWidgetTitleBarButtonMargin, opt);
- QRect srect = opt->rect;
-
- const QStyleOptionDockWidget *dwOpt
- = qstyleoption_cast<const QStyleOptionDockWidget*>(opt);
- bool canClose = dwOpt == 0 ? true : dwOpt->closable;
- bool canFloat = dwOpt == 0 ? false : dwOpt->floatable;
-
- const bool verticalTitleBar = dwOpt->verticalTitleBar;
-
- // If this is a vertical titlebar, we transpose and work as if it was
- // horizontal, then transpose again.
- if (verticalTitleBar)
- srect = srect.transposed();
-
- do {
- int right = srect.right();
- int left = srect.left();
-
- QRect closeRect;
- if (canClose) {
- QSize sz = proxy()->standardIcon(QStyle::SP_TitleBarCloseButton,
- opt).actualSize(QSize(iconSize, iconSize));
- sz += QSize(buttonMargin, buttonMargin);
- if (verticalTitleBar)
- sz = sz.transposed();
- closeRect = QRect(left,
- srect.center().y() - sz.height()/2,
- sz.width(), sz.height());
- left = closeRect.right() + 1;
- }
- if (sr == SE_DockWidgetCloseButton) {
- rect = closeRect;
- break;
- }
-
- QRect floatRect;
- if (canFloat) {
- QSize sz = proxy()->standardIcon(QStyle::SP_TitleBarNormalButton,
- opt).actualSize(QSize(iconSize, iconSize));
- sz += QSize(buttonMargin, buttonMargin);
- if (verticalTitleBar)
- sz = sz.transposed();
- floatRect = QRect(left,
- srect.center().y() - sz.height()/2,
- sz.width(), sz.height());
- left = floatRect.right() + 1;
- }
- if (sr == SE_DockWidgetFloatButton) {
- rect = floatRect;
- break;
- }
-
- QRect iconRect;
-// if (const QDockWidget *dw = qobject_cast<const QDockWidget*>(widget)) {
-// QIcon icon;
-// if (dw->isFloating())
-// icon = dw->windowIcon();
-// if (!icon.isNull()
-// && icon.cacheKey() != QApplication::windowIcon().cacheKey()) {
-// QSize sz = icon.actualSize(QSize(rect.height(), rect.height()));
-// if (verticalTitleBar)
-// sz = sz.transposed();
-// iconRect = QRect(right - sz.width(), srect.center().y() - sz.height()/2,
-// sz.width(), sz.height());
-// right = iconRect.left() - 1;
-// }
-// }
- if (sr == SE_DockWidgetIcon) {
- rect = iconRect;
- break;
- }
-
- QRect textRect = QRect(left, srect.top(),
- right - left, srect.height());
- if (sr == SE_DockWidgetTitleBarText) {
- rect = textRect;
- break;
- }
- } while (false);
-
- if (verticalTitleBar) {
- rect = QRect(srect.left() + rect.top() - srect.top(),
- srect.top() + srect.right() - rect.right(),
- rect.height(), rect.width());
- } else {
- rect = visualRect(opt->direction, srect, rect);
- }
- break;
- }
- default:
- rect = QCommonStyle::subElementRect(sr, opt);
- break;
- }
- return rect;
-}
-
-void QMacStylePrivate::drawToolbarButtonArrow(const QStyleOption *opt, QPainter *p) const
-{
- Q_Q(const QMacStyle);
- QStyleOption arrowOpt = *opt;
- arrowOpt.rect = QRect(opt->rect.right() - (toolButtonArrowSize + toolButtonArrowMargin),
- opt->rect.bottom() - (toolButtonArrowSize + toolButtonArrowMargin),
- toolButtonArrowSize,
- toolButtonArrowSize);
- q->proxy()->drawPrimitive(QStyle::PE_IndicatorArrowDown, &arrowOpt, p);
-}
-
-void QMacStylePrivate::setupNSGraphicsContext(CGContextRef cg, bool flipped) const
-{
- CGContextSaveGState(cg);
- [NSGraphicsContext saveGraphicsState];
-
- [NSGraphicsContext setCurrentContext:
- [NSGraphicsContext graphicsContextWithCGContext:cg flipped:flipped]];
-}
-
-void QMacStylePrivate::restoreNSGraphicsContext(CGContextRef cg) const
-{
- [NSGraphicsContext restoreGraphicsState];
- CGContextRestoreGState(cg);
-}
-
-void QMacStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p) const
-{
- Q_D(const QMacStyle);
- const AppearanceSync sync;
-
- QMacCGContext cg(p);
- d->resolveCurrentNSView(opt->window);
-
- switch (cc) {
- case CC_ScrollBar:
- if (const QStyleOptionSlider *sb = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
-
- const bool drawTrack = sb->subControls & SC_ScrollBarGroove;
- const bool drawKnob = sb->subControls & SC_ScrollBarSlider;
- if (!drawTrack && !drawKnob)
- break;
-
- const bool isHorizontal = sb->orientation == Qt::Horizontal;
-
- if (opt && opt->styleObject && !QMacStylePrivate::scrollBars.contains(opt->styleObject))
- QMacStylePrivate::scrollBars.append(QPointer<QObject>(opt->styleObject));
-
- static const CGFloat knobWidths[] = { 7.0, 5.0, 5.0 };
- static const CGFloat expandedKnobWidths[] = { 11.0, 9.0, 9.0 };
- const auto cocoaSize = d->effectiveAquaSizeConstrain(opt);
- const CGFloat maxExpandScale = expandedKnobWidths[cocoaSize] / knobWidths[cocoaSize];
-
- const bool isTransient = proxy()->styleHint(SH_ScrollBar_Transient, opt);
-// if (!isTransient)
-// d->stopAnimation(opt->styleObject);
- bool wasActive = false;
- CGFloat opacity = 0.0;
- CGFloat expandScale = 1.0;
- CGFloat expandOffset = 0.0;
- bool shouldExpand = false;
-
- if (QObject *styleObject = opt->styleObject) {
- const int oldPos = styleObject->property("_q_stylepos").toInt();
- const int oldMin = styleObject->property("_q_stylemin").toInt();
- const int oldMax = styleObject->property("_q_stylemax").toInt();
- const QRect oldRect = styleObject->property("_q_stylerect").toRect();
- const QStyle::State oldState = static_cast<QStyle::State>(styleObject->property("_q_stylestate").value<QStyle::State::Int>());
- const uint oldActiveControls = styleObject->property("_q_stylecontrols").toUInt();
-
- // a scrollbar is transient when the scrollbar itself and
- // its sibling are both inactive (ie. not pressed/hovered/moved)
- const bool transient = isTransient && !opt->activeSubControls && !(sb->state & State_On);
-
- if (!transient ||
- oldPos != sb->sliderPosition ||
- oldMin != sb->minimum ||
- oldMax != sb->maximum ||
- oldRect != sb->rect ||
- oldState != sb->state ||
- oldActiveControls != sb->activeSubControls) {
-
- // if the scrollbar is transient or its attributes, geometry or
- // state has changed, the opacity is reset back to 100% opaque
- opacity = 1.0;
-
- styleObject->setProperty("_q_stylepos", sb->sliderPosition);
- styleObject->setProperty("_q_stylemin", sb->minimum);
- styleObject->setProperty("_q_stylemax", sb->maximum);
- styleObject->setProperty("_q_stylerect", sb->rect);
- styleObject->setProperty("_q_stylestate", static_cast<QStyle::State::Int>(sb->state));
- styleObject->setProperty("_q_stylecontrols", static_cast<uint>(sb->activeSubControls));
-
-// QScrollbarStyleAnimation *anim = qobject_cast<QScrollbarStyleAnimation *>(d->animation(styleObject));
-// if (transient) {
-// if (!anim) {
-// anim = new QScrollbarStyleAnimation(QScrollbarStyleAnimation::Deactivating, styleObject);
-// d->startAnimation(anim);
-// } else if (anim->mode() == QScrollbarStyleAnimation::Deactivating) {
-// // the scrollbar was already fading out while the
-// // state changed -> restart the fade out animation
-// anim->setCurrentTime(0);
-// }
-// } else if (anim && anim->mode() == QScrollbarStyleAnimation::Deactivating) {
-// d->stopAnimation(styleObject);
-// }
- }
-
-// QScrollbarStyleAnimation *anim = qobject_cast<QScrollbarStyleAnimation *>(d->animation(styleObject));
-// if (anim && anim->mode() == QScrollbarStyleAnimation::Deactivating) {
-// // once a scrollbar was active (hovered/pressed), it retains
-// // the active look even if it's no longer active while fading out
-// if (oldActiveControls)
-// anim->setActive(true);
-
-// wasActive = anim->wasActive();
-// opacity = anim->currentValue();
-// }
-
- shouldExpand = isTransient && (opt->activeSubControls || wasActive);
- if (shouldExpand) {
-// if (!anim && !oldActiveControls) {
-// // Start expand animation only once and when entering
-// anim = new QScrollbarStyleAnimation(QScrollbarStyleAnimation::Activating, styleObject);
-// d->startAnimation(anim);
-// }
-// if (anim && anim->mode() == QScrollbarStyleAnimation::Activating) {
-// expandScale = 1.0 + (maxExpandScale - 1.0) * anim->currentValue();
-// expandOffset = 5.5 * (1.0 - anim->currentValue());
-// } else {
-// // Keep expanded state after the animation ends, and when fading out
-// expandScale = maxExpandScale;
-// expandOffset = 0.0;
-// }
- }
- }
-
- d->setupNSGraphicsContext(cg, NO /* flipped */);
-
- const auto controlType = isHorizontal ? QMacStylePrivate::Scroller_Horizontal : QMacStylePrivate::Scroller_Vertical;
- const auto cw = QMacStylePrivate::CocoaControl(controlType, cocoaSize);
- NSScroller *scroller = static_cast<NSScroller *>(d->cocoaControl(cw));
-
- const QColor bgColor = QStyleHelper::backgroundColor(opt->palette);
- const bool hasDarkBg = bgColor.red() < 128 && bgColor.green() < 128 && bgColor.blue() < 128;
- if (isTransient) {
- // macOS behavior: as soon as one color channel is >= 128,
- // the background is considered bright, scroller is dark.
- scroller.knobStyle = hasDarkBg? NSScrollerKnobStyleLight : NSScrollerKnobStyleDark;
- } else {
- scroller.knobStyle = NSScrollerKnobStyleDefault;
- }
-
- scroller.scrollerStyle = isTransient ? NSScrollerStyleOverlay : NSScrollerStyleLegacy;
-
- if (!setupScroller(scroller, sb))
- break;
-
- if (isTransient) {
- CGContextBeginTransparencyLayerWithRect(cg, scroller.frame, nullptr);
- CGContextSetAlpha(cg, opacity);
- }
-
- if (drawTrack) {
- // Draw the track when hovering. Expand by shifting the track rect.
- if (!isTransient || opt->activeSubControls || wasActive) {
- CGRect trackRect = scroller.bounds;
- if (isHorizontal)
- trackRect.origin.y += expandOffset;
- else
- trackRect.origin.x += expandOffset;
- [scroller drawKnobSlotInRect:trackRect highlight:NO];
- }
- }
-
- if (drawKnob) {
- if (shouldExpand) {
- // -[NSScroller drawKnob] is not useful here because any scaling applied
- // will only be used to draw the hi-DPI artwork. And even if did scale,
- // the stretched knob would look wrong, actually. So we need to draw the
- // scroller manually when it's being hovered.
- const CGFloat scrollerWidth = [NSScroller scrollerWidthForControlSize:scroller.controlSize scrollerStyle:scroller.scrollerStyle];
- const CGFloat knobWidth = knobWidths[cocoaSize] * expandScale;
- // Cocoa can help get the exact knob length in the current orientation
- const CGRect scrollerKnobRect = CGRectInset([scroller rectForPart:NSScrollerKnob], 1, 1);
- const CGFloat knobLength = isHorizontal ? scrollerKnobRect.size.width : scrollerKnobRect.size.height;
- const CGFloat knobPos = isHorizontal ? scrollerKnobRect.origin.x : scrollerKnobRect.origin.y;
- const CGFloat knobOffset = qRound((scrollerWidth + expandOffset - knobWidth) / 2.0);
- const CGFloat knobRadius = knobWidth / 2.0;
- CGRect knobRect;
- if (isHorizontal)
- knobRect = CGRectMake(knobPos, knobOffset, knobLength, knobWidth);
- else
- knobRect = CGRectMake(knobOffset, knobPos, knobWidth, knobLength);
- QCFType<CGPathRef> knobPath = CGPathCreateWithRoundedRect(knobRect, knobRadius, knobRadius, nullptr);
- CGContextAddPath(cg, knobPath);
- CGContextSetAlpha(cg, 0.5);
- CGColorRef knobColor = hasDarkBg ? NSColor.whiteColor.CGColor : NSColor.blackColor.CGColor;
- CGContextSetFillColorWithColor(cg, knobColor);
- CGContextFillPath(cg);
- } else {
- [scroller drawKnob];
-
- if (!isTransient && opt->state & State_Sunken) {
- // The knob should appear darker (going from 0.76 down to 0.49).
- // But no blending mode can help darken enough in a single pass,
- // so we resort to drawing the knob twice with a small help from
- // blending. This brings the gray level to a close enough 0.53.
- CGContextSetBlendMode(cg, kCGBlendModePlusDarker);
- [scroller drawKnob];
- }
- }
- }
-
- if (isTransient)
- CGContextEndTransparencyLayer(cg);
-
- d->restoreNSGraphicsContext(cg);
- }
- break;
- case CC_Slider:
- if (const QStyleOptionSlider *sl = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- const bool isHorizontal = sl->orientation == Qt::Horizontal;
- const auto ct = isHorizontal ? QMacStylePrivate::Slider_Horizontal : QMacStylePrivate::Slider_Vertical;
- const auto cs = d->effectiveAquaSizeConstrain(opt);
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
- auto *slider = static_cast<NSSlider *>(d->cocoaControl(cw));
- if (!setupSlider(slider, sl))
- break;
-
- const bool hasTicks = sl->tickPosition != QStyleOptionSlider::NoTicks;
- const bool hasDoubleTicks = sl->tickPosition == QStyleOptionSlider::TicksBothSides;
- const bool drawKnob = sl->subControls & SC_SliderHandle;
- const bool drawBar = sl->subControls & SC_SliderGroove;
- const bool drawTicks = sl->subControls & SC_SliderTickmarks;
- const bool isPressed = sl->state & State_Sunken;
-
- CGPoint pressPoint;
- if (isPressed && drawKnob) {
- const CGRect knobRect = [slider.cell knobRectFlipped:slider.isFlipped];
- pressPoint.x = CGRectGetMidX(knobRect);
- pressPoint.y = CGRectGetMidY(knobRect);
- [slider.cell startTrackingAt:pressPoint inView:slider];
- }
-
- d->drawNSViewInRect(slider, opt->rect, p, ^(CGContextRef, const CGRect &) {
- // Note that we don't support drawing the slider upside down. When this
- // is needed, simply set scale = -1 on the QML control / style item instead.
- NSSliderCell *cell = slider.cell;
-
- if (drawBar) {
- const CGRect barRect = [cell barRectFlipped:slider.isFlipped];
- // "flipped" will only make a difference when NSSliderCell is vertical. And then
- // flipped means fill the groove from bottom-to-top instead of top-to-bottom.
- // Bottom-to-top is QSlider's normal mode, which means that we always need to flip
- // in vertical mode. (In case NSSlider can also be flipped horizontally in the future,
- // we stay on the safe side, and only flip when in vertical mode).
- [cell drawBarInside:barRect flipped:!isHorizontal];
- }
-
- if (drawBar && hasTicks && drawTicks) {
- if (!hasDoubleTicks) {
- [cell drawTickMarks];
- } else {
- if (sl->orientation == Qt::Horizontal) {
- slider.tickMarkPosition = NSTickMarkPositionAbove;
- [slider layoutSubtreeIfNeeded];
- [cell drawTickMarks];
- slider.tickMarkPosition = NSTickMarkPositionBelow;
- [slider layoutSubtreeIfNeeded];
- [cell drawTickMarks];
- } else {
- slider.tickMarkPosition = NSTickMarkPositionLeading;
- [slider layoutSubtreeIfNeeded];
- [cell drawTickMarks];
- slider.tickMarkPosition = NSTickMarkPositionTrailing;
- [slider layoutSubtreeIfNeeded];
- [cell drawTickMarks];
- }
- }
- }
-
- if (drawKnob)
- [cell drawKnob];
- });
-
- if (isPressed && drawKnob)
- [slider.cell stopTracking:pressPoint at:pressPoint inView:slider mouseIsUp:NO];
- }
- break;
- case CC_SpinBox:
- if (const QStyleOptionSpinBox *sb = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) {
- if (sb->frame && (sb->subControls & SC_SpinBoxFrame)) {
- const auto lineEditRect = proxy()->subControlRect(CC_SpinBox, sb, SC_SpinBoxEditField);
- QStyleOptionFrame frame;
- static_cast<QStyleOption &>(frame) = *opt;
- frame.rect = lineEditRect;
- frame.state |= State_Sunken;
- frame.lineWidth = 1;
- frame.midLineWidth = 0;
- frame.features = QStyleOptionFrame::None;
- frame.frameShape = QStyleOptionFrame::Box;
- drawPrimitive(PE_FrameLineEdit, &frame, p);
- }
- if (sb->subControls & (SC_SpinBoxUp | SC_SpinBoxDown)) {
- const QRect updown = proxy()->subControlRect(CC_SpinBox, sb, SC_SpinBoxUp)
- | proxy()->subControlRect(CC_SpinBox, sb, SC_SpinBoxDown);
-
- d->setupNSGraphicsContext(cg, NO);
-
- const auto aquaSize = d->effectiveAquaSizeConstrain(opt);
- const auto cw = QMacStylePrivate::CocoaControl(QMacStylePrivate::Stepper, aquaSize);
- NSStepperCell *cell = static_cast<NSStepperCell *>(d->cocoaCell(cw));
- cell.enabled = (sb->state & State_Enabled);
-
- const CGRect newRect = [cell drawingRectForBounds:updown.toCGRect()];
-
- const bool upPressed = sb->activeSubControls == SC_SpinBoxUp && (sb->state & State_Sunken);
- const bool downPressed = sb->activeSubControls == SC_SpinBoxDown && (sb->state & State_Sunken);
- const CGFloat x = CGRectGetMidX(newRect);
- const CGFloat y = upPressed ? -3 : 3; // Weird coordinate shift going on. Verified with Hopper
- const CGPoint pressPoint = CGPointMake(x, y);
- // Pretend we're pressing the mouse on the right button. Unfortunately, NSStepperCell has no
- // API to highlight a specific button. The highlighted property works only on the down button.
- if (upPressed || downPressed)
- [cell startTrackingAt:pressPoint inView:d->backingStoreNSView];
-
- [cell drawWithFrame:newRect inView:d->backingStoreNSView];
-
- if (upPressed || downPressed)
- [cell stopTracking:pressPoint at:pressPoint inView:d->backingStoreNSView mouseIsUp:NO];
-
- d->restoreNSGraphicsContext(cg);
- }
- }
- break;
- case CC_ComboBox:
- if (const auto *combo = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- const bool isEnabled = combo->state & State_Enabled;
- const bool isPressed = combo->state & State_Sunken;
-
- const auto ct = cocoaControlType(combo);
- const auto cs = d->effectiveAquaSizeConstrain(combo);
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
- auto *cc = static_cast<NSControl *>(d->cocoaControl(cw));
- cc.enabled = isEnabled;
- QRectF frameRect = cw.adjustedControlFrame(combo->rect);;
- if (cw.type == QMacStylePrivate::Button_PopupButton) {
- // Non-editable QComboBox
- auto *pb = static_cast<NSPopUpButton *>(cc);
- // FIXME Old offsets. Try to move to adjustedControlFrame()
- if (cw.size == QStyleHelper::SizeSmall) {
- frameRect = frameRect.translated(0, 1);
- } else if (cw.size == QStyleHelper::SizeMini) {
- // Same 0.5 pt misalignment as AppKit and fit the focus ring
- frameRect = frameRect.translated(2, -0.5);
- }
- pb.frame = frameRect.toCGRect();
- [pb highlight:isPressed];
- d->drawNSViewInRect(pb, frameRect, p, ^(CGContextRef, const CGRect &r) {
- QMacAutoReleasePool pool;
- [pb.cell drawBezelWithFrame:r inView:pb.superview];
- });
- } else if (cw.type == QMacStylePrivate::ComboBox) {
- // Editable QComboBox
- auto *cb = static_cast<NSComboBox *>(cc);
- const auto frameRect = cw.adjustedControlFrame(combo->rect);
- cb.frame = frameRect.toCGRect();
-
- // This API was requested to Apple in rdar #36197888. We know it's safe to use up to macOS 10.13.3
- if (NSButtonCell *cell = static_cast<NSButtonCell *>([cc.cell qt_valueForPrivateKey:@"_buttonCell"])) {
- cell.highlighted = isPressed;
- } else {
- // TODO Render to pixmap and darken the button manually
- }
-
- d->drawNSViewInRect(cb, frameRect, p, ^(CGContextRef, const CGRect &r) {
- // FIXME This is usually drawn in the control's superview, but we wouldn't get inactive look in this case
- QMacAutoReleasePool pool;
- [cb.cell drawWithFrame:r inView:cb];
- });
- }
- }
- break;
- case CC_TitleBar:
- if (const auto *titlebar = qstyleoption_cast<const QStyleOptionTitleBar *>(opt)) {
- const bool isActive = (titlebar->state & State_Active)
- && (titlebar->titleBarState & State_Active);
-
- p->fillRect(opt->rect, Qt::transparent);
- p->setRenderHint(QPainter::Antialiasing);
- p->setClipRect(opt->rect, Qt::IntersectClip);
-
- // FIXME A single drawPath() with 0-sized pen
- // doesn't look as good as this double fillPath().
- const auto outerFrameRect = QRectF(opt->rect.adjusted(0, 0, 0, opt->rect.height()));
- QPainterPath outerFramePath = d->windowPanelPath(outerFrameRect);
- p->fillPath(outerFramePath, opt->palette.dark());
-
- const auto frameAdjust = 1.0 / p->device()->devicePixelRatioF();
- const auto innerFrameRect = outerFrameRect.adjusted(frameAdjust, frameAdjust, -frameAdjust, 0);
- QPainterPath innerFramePath = d->windowPanelPath(innerFrameRect);
- if (isActive) {
- QLinearGradient g;
- g.setStart(QPointF(0, 0));
- g.setFinalStop(QPointF(0, 2 * opt->rect.height()));
- g.setColorAt(0, opt->palette.button().color());
- g.setColorAt(1, opt->palette.dark().color());
- p->fillPath(innerFramePath, g);
- } else {
- p->fillPath(innerFramePath, opt->palette.button());
- }
-
- if (titlebar->subControls & (SC_TitleBarCloseButton
- | SC_TitleBarMaxButton
- | SC_TitleBarMinButton
- | SC_TitleBarNormalButton)) {
- const bool isHovered = (titlebar->state & State_MouseOver);
- static const SubControl buttons[] = {
- SC_TitleBarCloseButton, SC_TitleBarMinButton, SC_TitleBarMaxButton
- };
- for (const auto sc : buttons) {
- const auto ct = d->windowButtonCocoaControl(sc);
- const auto cw = QMacStylePrivate::CocoaControl(ct, QStyleHelper::SizeLarge);
- auto *wb = static_cast<NSButton *>(d->cocoaControl(cw));
- wb.enabled = (sc & titlebar->subControls) && isActive;
- [wb highlight:(titlebar->state & State_Sunken) && (sc & titlebar->activeSubControls)];
- Q_UNUSED(isHovered); // FIXME No public API for this
-
- const auto buttonRect = proxy()->subControlRect(CC_TitleBar, titlebar, sc);
- d->drawNSViewInRect(wb, buttonRect, p, ^(CGContextRef, const CGRect &rect) {
- QMacAutoReleasePool pool;
- auto *wbCell = static_cast<NSButtonCell *>(wb.cell);
- [wbCell drawWithFrame:rect inView:wb];
- });
- }
- }
-
- if (titlebar->subControls & SC_TitleBarLabel) {
- const auto tr = proxy()->subControlRect(CC_TitleBar, titlebar, SC_TitleBarLabel);
- if (!titlebar->icon.isNull()) {
- const auto iconExtent = proxy()->pixelMetric(PM_SmallIconSize);
- const auto iconSize = QSize(iconExtent, iconExtent);
- const auto iconPos = tr.x() - titlebar->icon.actualSize(iconSize).width() - qRound(titleBarIconTitleSpacing);
- // Only render the icon if it'll be fully visible
- if (iconPos < tr.right() - titleBarIconTitleSpacing)
- p->drawPixmap(iconPos, tr.y(), titlebar->icon.pixmap(opt->window, iconSize, QIcon::Normal));
- }
-
- if (!titlebar->text.isEmpty())
- drawItemText(p, tr, Qt::AlignCenter, opt->palette, isActive, titlebar->text, QPalette::Text);
- }
- }
- break;
- case CC_GroupBox:
- if (const QStyleOptionGroupBox *gb
- = qstyleoption_cast<const QStyleOptionGroupBox *>(opt)) {
-
- QStyleOptionGroupBox groupBox(*gb);
- const bool flat = groupBox.features & QStyleOptionFrame::Flat;
- if (!flat)
- groupBox.state |= QStyle::State_Mini; // Force mini-sized checkbox to go with small-sized label
- else
- groupBox.subControls = groupBox.subControls & ~SC_GroupBoxFrame; // We don't like frames and ugly lines
-
-// const bool didSetFont = widget && widget->testAttribute(Qt::WA_SetFont);
-// const bool didModifySubControls = !didSetFont && QApplication::desktopSettingsAware();
-// if (didModifySubControls)
-// groupBox.subControls = groupBox.subControls & ~SC_GroupBoxLabel;
- QCommonStyle::drawComplexControl(cc, &groupBox, p);
-// if (didModifySubControls) {
-// const QRect rect = proxy()->subControlRect(CC_GroupBox, &groupBox, SC_GroupBoxLabel);
-// const bool rtl = groupBox.direction == Qt::RightToLeft;
-// const int alignment = Qt::TextHideMnemonic | (rtl ? Qt::AlignRight : Qt::AlignLeft);
-// const QFont savedFont = p->font();
-// if (!flat)
-// p->setFont(d->smallSystemFont);
-// proxy()->drawItemText(p, rect, alignment, groupBox.palette, groupBox.state & State_Enabled, groupBox.text, QPalette::WindowText);
-// if (!flat)
-// p->setFont(savedFont);
-// }
- }
- break;
- case CC_ToolButton:
- if (const QStyleOptionToolButton *tb
- = qstyleoption_cast<const QStyleOptionToolButton *>(opt)) {
-#ifndef QT_NO_ACCESSIBILITY
- if (QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ToolBar)) {
- if (tb->subControls & SC_ToolButtonMenu) {
- QStyleOption arrowOpt = *tb;
- arrowOpt.rect = proxy()->subControlRect(cc, tb, SC_ToolButtonMenu);
- arrowOpt.rect.setY(arrowOpt.rect.y() + arrowOpt.rect.height() / 2);
- arrowOpt.rect.setHeight(arrowOpt.rect.height() / 2);
- proxy()->drawPrimitive(PE_IndicatorArrowDown, &arrowOpt, p);
- } else if ((tb->features & QStyleOptionToolButton::HasMenu)
- && (tb->toolButtonStyle != Qt::ToolButtonTextOnly && !tb->icon.isNull())) {
- d->drawToolbarButtonArrow(tb, p);
- }
- if (tb->state & State_On) {
- NSView *view = reinterpret_cast<NSView *>(opt->window->winId());
- bool isKey = false;
- if (view)
- isKey = [view.window isKeyWindow];
-
- QBrush brush(brushForToolButton(isKey));
- QPainterPath path;
- path.addRoundedRect(QRectF(tb->rect.x(), tb->rect.y(), tb->rect.width(), tb->rect.height() + 4), 4, 4);
- p->setRenderHint(QPainter::Antialiasing);
- p->fillPath(path, brush);
- }
- proxy()->drawControl(CE_ToolButtonLabel, opt, p);
- } else
-#endif // QT_NO_ACCESSIBILITY
- {
- auto bflags = tb->state;
- if (tb->subControls & SC_ToolButton)
- bflags |= State_Sunken;
- auto mflags = tb->state;
- if (tb->subControls & SC_ToolButtonMenu)
- mflags |= State_Sunken;
-
- if (tb->subControls & SC_ToolButton) {
- if (bflags & (State_Sunken | State_On | State_Raised)) {
- const bool isEnabled = tb->state & State_Enabled;
- const bool isPressed = tb->state & State_Sunken;
- const bool isHighlighted = (tb->state & State_Active) && (tb->state & State_On);
- const auto ct = QMacStylePrivate::Button_PushButton;
- const auto cs = d->effectiveAquaSizeConstrain(opt);
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
- auto *pb = static_cast<NSButton *>(d->cocoaControl(cw));
- pb.bezelStyle = NSShadowlessSquareBezelStyle; // TODO Use NSTexturedRoundedBezelStyle in the future.
- pb.frame = opt->rect.toCGRect();
- pb.buttonType = NSPushOnPushOffButton;
- pb.enabled = isEnabled;
- [pb highlight:isPressed];
- pb.state = isHighlighted && !isPressed ? NSOnState : NSOffState;
- const auto buttonRect = proxy()->subControlRect(cc, tb, SC_ToolButton);
- d->drawNSViewInRect(pb, buttonRect, p, ^(CGContextRef, const CGRect &rect) {
- QMacAutoReleasePool pool;
- [pb.cell drawBezelWithFrame:rect inView:pb];
- });
- }
- }
-
- if (tb->subControls & SC_ToolButtonMenu) {
- const auto menuRect = proxy()->subControlRect(cc, tb, SC_ToolButtonMenu);
- QStyleOption arrowOpt = *tb;
- arrowOpt.rect = QRect(menuRect.x() + ((menuRect.width() - toolButtonArrowSize) / 2),
- menuRect.height() - (toolButtonArrowSize + toolButtonArrowMargin),
- toolButtonArrowSize,
- toolButtonArrowSize);
- proxy()->drawPrimitive(PE_IndicatorArrowDown, &arrowOpt, p);
- } else if (tb->features & QStyleOptionToolButton::HasMenu) {
- d->drawToolbarButtonArrow(tb, p);
- }
- QRect buttonRect = proxy()->subControlRect(CC_ToolButton, tb, SC_ToolButton);
- int fw = proxy()->pixelMetric(PM_DefaultFrameWidth, opt);
- QStyleOptionToolButton label = *tb;
- label.rect = buttonRect.adjusted(fw, fw, -fw, -fw);
- proxy()->drawControl(CE_ToolButtonLabel, &label, p);
- }
- }
- break;
- case CC_Dial:
- if (const QStyleOptionSlider *dial = qstyleoption_cast<const QStyleOptionSlider *>(opt))
- QStyleHelper::drawDial(dial, p);
- break;
- default:
- QCommonStyle::drawComplexControl(cc, opt, p);
- break;
- }
-}
-
-QStyle::SubControl QMacStyle::hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt) const
-{
- Q_D(const QMacStyle);
-
- SubControl sc = QStyle::SC_None;
-
- switch (cc) {
- case CC_ComboBox:
- if (const QStyleOptionComboBox *cmb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- sc = QCommonStyle::hitTestComplexControl(cc, cmb, pt);
- if (!cmb->editable && sc != QStyle::SC_None)
- sc = SC_ComboBoxArrow; // A bit of a lie, but what we want
- }
- break;
- case CC_Slider:
- if (const QStyleOptionSlider *sl = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- if (!sl->rect.contains(pt))
- break;
-
- const bool hasTicks = sl->tickPosition != QStyleOptionSlider::NoTicks;
- const bool isHorizontal = sl->orientation == Qt::Horizontal;
- const auto ct = isHorizontal ? QMacStylePrivate::Slider_Horizontal : QMacStylePrivate::Slider_Vertical;
- const auto cs = d->effectiveAquaSizeConstrain(opt);
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
- auto *slider = static_cast<NSSlider *>(d->cocoaControl(cw));
- if (!setupSlider(slider, sl))
- break;
-
- NSSliderCell *cell = slider.cell;
- const auto barRect = QRectF::fromCGRect([cell barRectFlipped:slider.isFlipped]);
- const auto knobRect = QRectF::fromCGRect([cell knobRectFlipped:slider.isFlipped]);
- if (knobRect.contains(pt)) {
- sc = SC_SliderHandle;
- } else if (barRect.contains(pt)) {
- sc = SC_SliderGroove;
- } else if (hasTicks) {
- sc = SC_SliderTickmarks;
- }
- }
- break;
- case CC_ScrollBar:
- if (const QStyleOptionSlider *sb = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- if (!sb->rect.contains(pt)) {
- sc = SC_None;
- break;
- }
-
- const bool isHorizontal = sb->orientation == Qt::Horizontal;
- const auto ct = isHorizontal ? QMacStylePrivate::Scroller_Horizontal : QMacStylePrivate::Scroller_Vertical;
- const auto cs = d->effectiveAquaSizeConstrain(opt);
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
- auto *scroller = static_cast<NSScroller *>(d->cocoaControl(cw));
- if (!setupScroller(scroller, sb)) {
- sc = SC_None;
- break;
- }
-
- // Since -[NSScroller testPart:] doesn't want to cooperate, we do it the
- // straightforward way. In any case, macOS doesn't return line-sized changes
- // with NSScroller since 10.7, according to the aforementioned method's doc.
- const auto knobRect = QRectF::fromCGRect([scroller rectForPart:NSScrollerKnob]);
- if (isHorizontal) {
- const bool isReverse = sb->direction == Qt::RightToLeft;
- if (pt.x() < knobRect.left())
- sc = isReverse ? SC_ScrollBarAddPage : SC_ScrollBarSubPage;
- else if (pt.x() > knobRect.right())
- sc = isReverse ? SC_ScrollBarSubPage : SC_ScrollBarAddPage;
- else
- sc = SC_ScrollBarSlider;
- } else {
- if (pt.y() < knobRect.top())
- sc = SC_ScrollBarSubPage;
- else if (pt.y() > knobRect.bottom())
- sc = SC_ScrollBarAddPage;
- else
- sc = SC_ScrollBarSlider;
- }
- }
- break;
- default:
- sc = QCommonStyle::hitTestComplexControl(cc, opt, pt);
- break;
- }
- return sc;
-}
-
-QRect QMacStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc) const
-{
- Q_D(const QMacStyle);
-
- QRect ret;
-
- switch (cc) {
- case CC_ScrollBar:
- if (const QStyleOptionSlider *sb = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- const bool isHorizontal = sb->orientation == Qt::Horizontal;
- const bool isReverseHorizontal = isHorizontal && (sb->direction == Qt::RightToLeft);
-
- NSScrollerPart part = NSScrollerNoPart;
- if (sc == SC_ScrollBarSlider) {
- part = NSScrollerKnob;
- } else if (sc == SC_ScrollBarGroove) {
- part = NSScrollerKnobSlot;
- } else if (sc == SC_ScrollBarSubPage || sc == SC_ScrollBarAddPage) {
- if ((!isReverseHorizontal && sc == SC_ScrollBarSubPage)
- || (isReverseHorizontal && sc == SC_ScrollBarAddPage))
- part = NSScrollerDecrementPage;
- else
- part = NSScrollerIncrementPage;
- }
- // And nothing else since 10.7
-
- if (part != NSScrollerNoPart) {
- const auto ct = isHorizontal ? QMacStylePrivate::Scroller_Horizontal : QMacStylePrivate::Scroller_Vertical;
- const auto cs = d->effectiveAquaSizeConstrain(opt);
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
- auto *scroller = static_cast<NSScroller *>(d->cocoaControl(cw));
- if (setupScroller(scroller, sb))
- ret = QRectF::fromCGRect([scroller rectForPart:part]).toRect();
- }
- }
- break;
- case CC_Slider:
- if (const QStyleOptionSlider *sl = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- const bool hasTicks = sl->tickPosition != QStyleOptionSlider::NoTicks;
- const bool isHorizontal = sl->orientation == Qt::Horizontal;
- const auto ct = isHorizontal ? QMacStylePrivate::Slider_Horizontal : QMacStylePrivate::Slider_Vertical;
- const auto cs = d->effectiveAquaSizeConstrain(opt);
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
- auto *slider = static_cast<NSSlider *>(d->cocoaControl(cw));
- if (!setupSlider(slider, sl))
- break;
-
- NSSliderCell *cell = slider.cell;
- if (sc == SC_SliderHandle) {
- ret = QRectF::fromCGRect([cell knobRectFlipped:slider.isFlipped]).toRect();
- } else if (sc == SC_SliderGroove) {
- ret = QRectF::fromCGRect([cell barRectFlipped:slider.isFlipped]).toRect();
- } else if (hasTicks && sc == SC_SliderTickmarks) {
- const auto tickMarkRect = QRectF::fromCGRect([cell rectOfTickMarkAtIndex:0]);
- if (isHorizontal)
- ret = QRect(sl->rect.left(), tickMarkRect.top(), sl->rect.width(), tickMarkRect.height());
- else
- ret = QRect(tickMarkRect.left(), sl->rect.top(), tickMarkRect.width(), sl->rect.height());
- }
-
-// if (sl->upsideDown) {
-// if isHorizontal) {
-// } else {
-// }
-// }
- }
- break;
- case CC_TitleBar:
- if (const auto *titlebar = qstyleoption_cast<const QStyleOptionTitleBar *>(opt)) {
- // The title bar layout is as follows: close, min, zoom, icon, title
- // [ x _ + @ Window Title ]
- // Center the icon and title until it starts to overlap with the buttons.
- // The icon doesn't count towards SC_TitleBarLabel, but it's still rendered
- // next to the title text. See drawComplexControl().
- if (sc == SC_TitleBarLabel) {
- qreal labelWidth = titlebar->fontMetrics.horizontalAdvance(titlebar->text) + 1; // FIXME Rounding error?
- qreal labelHeight = titlebar->fontMetrics.height();
-
- const auto lastButtonRect = proxy()->subControlRect(CC_TitleBar, titlebar, SC_TitleBarMaxButton);
- qreal controlsSpacing = lastButtonRect.right() + titleBarButtonSpacing;
- if (!titlebar->icon.isNull()) {
- const auto iconSize = proxy()->pixelMetric(PM_SmallIconSize);
- const auto actualIconSize = titlebar->icon.actualSize(QSize(iconSize, iconSize)).width();;
- controlsSpacing += actualIconSize + titleBarIconTitleSpacing;
- }
-
- const qreal labelPos = qMax(controlsSpacing, (opt->rect.width() - labelWidth) / 2.0);
- labelWidth = qMin(labelWidth, opt->rect.width() - (labelPos + titleBarTitleRightMargin));
- ret = QRect(labelPos, (opt->rect.height() - labelHeight) / 2,
- labelWidth, labelHeight);
- } else {
- const auto currentButton = d->windowButtonCocoaControl(sc);
- if (currentButton == QMacStylePrivate::NoControl)
- break;
-
- QPointF buttonPos = titlebar->rect.topLeft() + QPointF(titleBarButtonSpacing, 0);
- QSizeF buttonSize;
- for (int ct = QMacStylePrivate::Button_WindowClose; ct <= currentButton; ct++) {
- const auto cw = QMacStylePrivate::CocoaControl(QMacStylePrivate::CocoaControlType(ct),
- QStyleHelper::SizeLarge);
- auto *wb = static_cast<NSButton *>(d->cocoaControl(cw));
- if (ct == currentButton)
- buttonSize = QSizeF::fromCGSize(wb.frame.size);
- else
- buttonPos.rx() += wb.frame.size.width + titleBarButtonSpacing;
- }
-
- const auto vOffset = (opt->rect.height() - buttonSize.height()) / 2.0;
- ret = QRectF(buttonPos, buttonSize).translated(0, vOffset).toRect();
- }
- }
- break;
- case CC_ComboBox:
- if (const QStyleOptionComboBox *combo = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- const auto ct = cocoaControlType(combo);
- const auto cs = d->effectiveAquaSizeConstrain(combo);
- const auto cw = QMacStylePrivate::CocoaControl(ct, cs);
-
- // Old widget path. Current not understood why it's needed:
- //const auto editRect = QMacStylePrivate::comboboxEditBounds(cw.adjustedControlFrame(combo->rect), cw);
-
- // New path:
- QRectF editRect;
- switch (cs) {
- case QStyleHelper::SizeLarge:
- editRect = combo->rect.adjusted(15, 7, -25, -9);
- break;
- case QStyleHelper::SizeSmall:
- if (combo->editable)
- editRect = combo->rect.adjusted(15, 6, -22, -9);
- else
- editRect = combo->rect.adjusted(15, 8, -22, -6);
- break;
- default:
- if (combo->editable)
- editRect = combo->rect.adjusted(15, 6, -20, -7);
- else
- editRect = combo->rect.adjusted(15, 5, -22, -6);
- break;
- }
-
- switch (sc) {
- case SC_ComboBoxEditField:{
- ret = editRect.toAlignedRect();
- break; }
- case SC_ComboBoxArrow:{
- ret = editRect.toAlignedRect();
- ret.setX(ret.x() + ret.width());
- ret.setWidth(combo->rect.right() - ret.right());
- break; }
- case SC_ComboBoxListBoxPopup:{
- if (combo->editable) {
- const CGRect inner = QMacStylePrivate::comboboxInnerBounds(combo->rect.toCGRect(), cw);
- const int comboTop = combo->rect.top();
- ret = QRect(qRound(inner.origin.x),
- comboTop,
- qRound(inner.origin.x - combo->rect.left() + inner.size.width),
- editRect.bottom() - comboTop + 2);
- } else {
- ret = QRect(combo->rect.x() + 4 - 11,
- combo->rect.y() + 1,
- editRect.width() + 10 + 11,
- 1);
- }
- break; }
- default:
- break;
- }
- }
- break;
- case CC_GroupBox:
- if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast<const QStyleOptionGroupBox *>(opt)) {
- bool checkable = groupBox->subControls & SC_GroupBoxCheckBox;
- const bool flat = groupBox->features & QStyleOptionFrame::Flat;
- bool hasNoText = !checkable && groupBox->text.isEmpty();
- switch (sc) {
- case SC_GroupBoxLabel:
- case SC_GroupBoxCheckBox: {
- // Cheat and use the smaller font if we need to
- const bool checkable = groupBox->subControls & SC_GroupBoxCheckBox;
- const bool fontIsSet = false;
-// const bool fontIsSet = (widget && widget->testAttribute(Qt::WA_SetFont))
-// || !QApplication::desktopSettingsAware();
- const int margin = flat || hasNoText ? 0 : 9;
- ret = groupBox->rect.adjusted(margin, 0, -margin, 0);
-
- const QFontMetricsF fm = flat || fontIsSet ? QFontMetricsF(groupBox->fontMetrics) : QFontMetricsF(d->smallSystemFont);
- const QSizeF s = fm.size(Qt::AlignHCenter | Qt::AlignVCenter, qt_mac_removeMnemonics(groupBox->text), 0, nullptr);
- const int tw = qCeil(s.width());
- const int h = qCeil(fm.height());
- ret.setHeight(h);
-
- QRect labelRect = alignedRect(groupBox->direction, groupBox->textAlignment,
- QSize(tw, h), ret);
- if (flat && checkable)
- labelRect.moveLeft(labelRect.left() + 4);
- int indicatorWidth = proxy()->pixelMetric(PM_IndicatorWidth, opt);
- bool rtl = groupBox->direction == Qt::RightToLeft;
- if (sc == SC_GroupBoxLabel) {
- if (checkable) {
- int newSum = indicatorWidth + 1;
- int newLeft = labelRect.left() + (rtl ? -newSum : newSum);
- labelRect.moveLeft(newLeft);
- if (flat)
- labelRect.moveTop(labelRect.top() + 3);
- else
- labelRect.moveTop(labelRect.top() + 4);
- } else if (flat) {
- int newLeft = labelRect.left() - (rtl ? 3 : -3);
- labelRect.moveLeft(newLeft);
- labelRect.moveTop(labelRect.top() + 3);
- } else {
- int newLeft = labelRect.left() - (rtl ? 3 : 2);
- labelRect.moveLeft(newLeft);
- labelRect.moveTop(labelRect.top() + 4);
- }
- ret = labelRect;
- }
-
- if (sc == SC_GroupBoxCheckBox) {
- int left = rtl ? labelRect.right() - indicatorWidth : labelRect.left() - 1;
- int top = flat ? ret.top() + 1 : ret.top() + 5;
- ret.setRect(left, top,
- indicatorWidth, proxy()->pixelMetric(PM_IndicatorHeight, opt));
- }
- break;
- }
- case SC_GroupBoxContents:
- case SC_GroupBoxFrame: {
- QFontMetrics fm = groupBox->fontMetrics;
- int yOffset = 3;
- if (!flat)
- yOffset = 5;
-
- if (hasNoText)
- yOffset = -qCeil(QFontMetricsF(fm).height());
- ret = opt->rect.adjusted(0, qCeil(QFontMetricsF(fm).height()) + yOffset, 0, 0);
- if (sc == SC_GroupBoxContents) {
- if (flat)
- ret.adjust(3, -5, -3, -4); // guess too
- else
- ret.adjust(3, 3, -3, -4); // guess
- }
- }
- break;
- default:
- ret = QCommonStyle::subControlRect(cc, groupBox, sc);
- break;
- }
- }
- break;
- case CC_SpinBox:
- if (const QStyleOptionSpinBox *spin = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) {
- QStyleHelper::WidgetSizePolicy aquaSize = d->effectiveAquaSizeConstrain(spin);
- const auto fw = proxy()->pixelMetric(PM_SpinBoxFrameWidth, spin);
- int spinner_w;
- int spinner_h;
- int adjust_y;
- int spinBoxSep;
- switch (aquaSize) {
- case QStyleHelper::SizeLarge:
- spinner_w = 14;
- spinner_h = 24;
- adjust_y = -1;
- spinBoxSep = 2;
- break;
- case QStyleHelper::SizeSmall:
- spinner_w = 12;
- spinner_h = 20;
- adjust_y = -1;
- spinBoxSep = 2;
- break;
- case QStyleHelper::SizeMini:
- spinner_w = 10;
- spinner_h = 16;
- adjust_y = -1;
- spinBoxSep = 1;
- break;
- default:
- Q_UNREACHABLE();
- }
-
- switch (sc) {
- case SC_SpinBoxUp:
- case SC_SpinBoxDown: {
- if (spin->buttonSymbols == QStyleOptionSpinBox::NoButtons)
- break;
-
- const int y = fw;
- const int x = spin->rect.width() - spinner_w;
- ret.setRect(x + spin->rect.x(), y + spin->rect.y(), spinner_w, spinner_h);
-
- const auto cw = QMacStylePrivate::CocoaControl(QMacStylePrivate::Stepper, aquaSize);
- NSStepperCell *cell = static_cast<NSStepperCell *>(d->cocoaCell(cw));
- const CGRect outRect = [cell drawingRectForBounds:ret.toCGRect()];
- ret = QRectF::fromCGRect(outRect).toRect();
-
- switch (sc) {
- case SC_SpinBoxUp:
- ret.setHeight(ret.height() / 2);
- break;
- case SC_SpinBoxDown:
- ret.setY(ret.y() + ret.height() / 2);
- break;
- default:
- Q_ASSERT(0);
- break;
- }
- // The buttons are drawn with a top-margin (for some reason) into
- // the rect. So undo that margin here:
- ret.translate(0, adjust_y);
- ret = visualRect(spin->direction, spin->rect, ret);
- break;
- }
- case SC_SpinBoxEditField:
- ret = spin->rect.adjusted(fw, fw, -fw, -fw);
- if (spin->subControls & SC_SpinBoxUp || spin->subControls & SC_SpinBoxDown) {
- ret.setWidth(spin->rect.width() - spinBoxSep - spinner_w);
- ret = visualRect(spin->direction, spin->rect, ret);
- }
- break;
- default:
- ret = QCommonStyle::subControlRect(cc, spin, sc);
- break;
- }
- }
- break;
- case CC_ToolButton:
- ret = QCommonStyle::subControlRect(cc, opt, sc);
- if (sc == SC_ToolButtonMenu) {
-#ifndef QT_NO_ACCESSIBILITY
- if (QStyleHelper::hasAncestor(opt->styleObject, QAccessible::ToolBar))
- ret.adjust(-toolButtonArrowMargin, 0, 0, 0);
-#endif
- ret.adjust(-1, 0, 0, 0);
- }
- break;
- default:
- ret = QCommonStyle::subControlRect(cc, opt, sc);
- break;
- }
- return ret;
-}
-
-QSize QMacStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &csz) const
-{
- Q_D(const QMacStyle);
-
- QSize sz(csz);
- bool useAquaGuideline = true;
-
- switch (ct) {
- case CT_SpinBox:
- if (const QStyleOptionSpinBox *vopt = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) {
- if (vopt->subControls == SC_SpinBoxFrame) {
- const QSize minimumSize(20, 24);
- if (sz.width() < minimumSize.width())
- sz.setWidth(minimumSize.width());
- if (sz.height() < minimumSize.height())
- sz.setHeight(minimumSize.height());
- } else {
- const QSize buttonSize = proxy()->subControlRect(CC_SpinBox, vopt, SC_SpinBoxUp).size();
- const int upAndDownTogetherHeight = buttonSize.height() * 2;
- sz += QSize(buttonSize.width(), upAndDownTogetherHeight);
- }
- }
- break;
- case QStyle::CT_TabWidget:
- // the size between the pane and the "contentsRect" (+4,+4)
- // (the "contentsRect" is on the inside of the pane)
- sz = QCommonStyle::sizeFromContents(ct, opt, csz);
- /**
- This is supposed to show the relationship between the tabBar and
- the stack widget of a QTabWidget.
- Unfortunately ascii is not a good way of representing graphics.....
- PS: The '=' line is the painted frame.
-
- top ---+
- |
- |
- |
- | vvv just outside the painted frame is the "pane"
- - -|- - - - - - - - - - <-+
- TAB BAR +=====^============ | +2 pixels
- - - -|- - -|- - - - - - - <-+
- | | ^ ^^^ just inside the painted frame is the "contentsRect"
- | | |
- | overlap |
- | | |
- bottom ------+ <-+ +14 pixels
- |
- v
- ------------------------------ <- top of stack widget
-
-
- To summarize:
- * 2 is the distance between the pane and the contentsRect
- * The 14 and the 1's are the distance from the contentsRect to the stack widget.
- (same value as used in SE_TabWidgetTabContents)
- * overlap is how much the pane should overlap the tab bar
- */
- // then add the size between the stackwidget and the "contentsRect"
- if (const QStyleOptionTabWidgetFrame *twf
- = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
- QSize extra(0,0);
- const int overlap = pixelMetric(PM_TabBarBaseOverlap, opt);
- const int gapBetweenTabbarAndStackWidget = 2 + 14 - overlap;
-
- const auto tabDirection = QMacStylePrivate::tabDirection(twf->shape);
- if (tabDirection == QMacStylePrivate::North
- || tabDirection == QMacStylePrivate::South) {
- extra = QSize(2, gapBetweenTabbarAndStackWidget + 1);
- } else {
- extra = QSize(gapBetweenTabbarAndStackWidget + 1, 2);
- }
- sz+= extra;
- }
- break;
- case QStyle::CT_TabBarTab:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
-// const bool differentFont = (widget && widget->testAttribute(Qt::WA_SetFont))
-// || !QApplication::desktopSettingsAware();
- const bool differentFont = false;
- const auto tabDirection = QMacStylePrivate::tabDirection(tab->shape);
- const bool verticalTabs = tabDirection == QMacStylePrivate::East
- || tabDirection == QMacStylePrivate::West;
- if (verticalTabs)
- sz = sz.transposed();
-
- int defaultTabHeight;
- const auto cs = d->effectiveAquaSizeConstrain(opt);
- switch (cs) {
- case QStyleHelper::SizeLarge:
- if (tab->documentMode)
- defaultTabHeight = 24;
- else
- defaultTabHeight = 21;
- break;
- case QStyleHelper::SizeSmall:
- defaultTabHeight = 18;
- break;
- case QStyleHelper::SizeMini:
- defaultTabHeight = 16;
- break;
- default:
- break;
- }
-
- const bool widthSet = !differentFont && tab->icon.isNull();
- if (widthSet) {
- const auto textSize = opt->fontMetrics.size(Qt::TextShowMnemonic, tab->text);
- sz.rwidth() = textSize.width();
- sz.rheight() = qMax(defaultTabHeight, textSize.height());
- } else {
- sz.rheight() = qMax(defaultTabHeight, sz.height());
- }
- sz.rwidth() += proxy()->pixelMetric(PM_TabBarTabHSpace, tab);
-
- if (verticalTabs)
- sz = sz.transposed();
-
- int maxWidgetHeight = qMax(tab->leftButtonSize.height(), tab->rightButtonSize.height());
- int maxWidgetWidth = qMax(tab->leftButtonSize.width(), tab->rightButtonSize.width());
-
- int widgetWidth = 0;
- int widgetHeight = 0;
- int padding = 0;
- if (tab->leftButtonSize.isValid()) {
- padding += 8;
- widgetWidth += tab->leftButtonSize.width();
- widgetHeight += tab->leftButtonSize.height();
- }
- if (tab->rightButtonSize.isValid()) {
- padding += 8;
- widgetWidth += tab->rightButtonSize.width();
- widgetHeight += tab->rightButtonSize.height();
- }
-
- if (verticalTabs) {
- sz.setWidth(qMax(sz.width(), maxWidgetWidth));
- sz.setHeight(sz.height() + widgetHeight + padding);
- } else {
- if (widthSet)
- sz.setWidth(sz.width() + widgetWidth + padding);
- sz.setHeight(qMax(sz.height(), maxWidgetHeight));
- }
- }
- break;
- case CT_LineEdit:
- if (const QStyleOptionFrame *f = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- if (sz.isEmpty()) {
- // Minimum size (with padding: 18x24)
- sz.rwidth() = 10;
- sz.rheight() = 20;
- }
- // From using pixelTool with XCode/NSTextTextField
- int leftPadding = 4;
- int rightPadding = 4;
- int topPadding = 4;
- int bottomPadding = 0;
-
- if (opt->state & QStyle::State_Small) {
- topPadding = 3;
- } else if (opt->state & QStyle::State_Mini) {
- topPadding = 2;
- }
-
- sz.rwidth() += leftPadding + rightPadding;
- sz.rheight() += topPadding + bottomPadding;
- }
- break;
- case QStyle::CT_PushButton: {
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt))
- if (btn->features & QStyleOptionButton::CommandLinkButton)
- return QCommonStyle::sizeFromContents(ct, opt, sz);
-
- // By default, we fit the contents inside a normal rounded push button.
- // Do this by add enough space around the contents so that rounded
- // borders (including highlighting when active) will show.
- // TODO Use QFocusFrame and get rid of these horrors.
- QSize macsz;
- const auto controlSize = d->effectiveAquaSizeConstrain(opt, CT_PushButton, sz, &macsz);
- // FIXME See comment in CT_PushButton case in qt_aqua_get_known_size().
- if (macsz.width() != -1)
- sz.setWidth(macsz.width());
- else
- sz.rwidth() += QMacStylePrivate::PushButtonLeftOffset + QMacStylePrivate::PushButtonRightOffset + 12;
- // All values as measured from HIThemeGetButtonBackgroundBounds()
- if (controlSize != QStyleHelper::SizeMini)
- sz.rwidth() += 12; // We like 12 over here.
- if (controlSize == QStyleHelper::SizeLarge && sz.height() > 16)
- sz.rheight() += pushButtonDefaultHeight[QStyleHelper::SizeLarge] - 16;
- else if (controlSize == QStyleHelper::SizeMini)
- sz.setHeight(24); // FIXME Our previous HITheme-based logic returned this.
- else
- sz.setHeight(pushButtonDefaultHeight[controlSize]);
- break;
- }
- case QStyle::CT_MenuItem:
- if (const QStyleOptionMenuItem *mi = qstyleoption_cast<const QStyleOptionMenuItem *>(opt)) {
- int maxpmw = mi->maxIconWidth;
- int w = sz.width();
- int h = sz.height();
-
-//#if QT_CONFIG(combobox)
-// const QComboBox *comboBox = qobject_cast<const QComboBox *>(widget);
-//#endif
-
- if (mi->menuItemType == QStyleOptionMenuItem::Separator) {
- w = 10;
- h = qt_mac_aqua_get_metric(MenuSeparatorHeight);
- } else {
- h = mi->fontMetrics.height() + 2;
- if (!mi->icon.isNull()) {
-//#if QT_CONFIG(combobox)
-// if (comboBox) {
-// const QSize &iconSize = comboBox->iconSize();
-// h = qMax(h, iconSize.height() + 4);
-// maxpmw = qMax(maxpmw, iconSize.width());
-// } else
-//#endif
- {
- int iconExtent = proxy()->pixelMetric(PM_SmallIconSize);
- h = qMax(h, mi->icon.actualSize(QSize(iconExtent, iconExtent)).height() + 4);
- }
- }
- }
- if (mi->text.contains(QLatin1Char('\t')))
- w += 12;
- else if (mi->menuItemType == QStyleOptionMenuItem::SubMenu)
- w += 35; // Not quite exactly as it seems to depend on other factors
- if (maxpmw)
- w += maxpmw + 6;
- // add space for a check. All items have place for a check too.
- w += 20;
-// if (comboBox && comboBox->isVisible()) {
-// QStyleOptionComboBox cmb;
-// cmb.initFrom(comboBox);
-// cmb.editable = false;
-// cmb.subControls = QStyle::SC_ComboBoxEditField;
-// cmb.activeSubControls = QStyle::SC_None;
-// w = qMax(w, subControlRect(QStyle::CC_ComboBox, &cmb,
-// QStyle::SC_ComboBoxEditField,
-// comboBox).width());
-// } else {
-// w += 12;
- sz = QSize(w, h);
- } break;
- case CT_MenuBarItem:
- if (!sz.isEmpty())
- sz += QSize(12, 4); // Constants from QWindowsStyle
- break;
- case CT_ToolButton:
- sz.rwidth() += 10;
- sz.rheight() += 10;
- if (const auto *tb = qstyleoption_cast<const QStyleOptionToolButton *>(opt))
- if (tb->features & QStyleOptionToolButton::Menu)
- sz.rwidth() += toolButtonArrowMargin;
- return sz;
- case CT_ComboBox:
- if (const auto *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- const int controlSize = getControlSize(opt);
-
- if (!cb->editable) {
- if (sz.width() < 10) {
- // minimumSize (to ensure a nice nine patch image)
- sz.rwidth() += 10;
- }
- // Same as CT_PushButton, because we have to fit the focus
- // ring and a non-editable combo box is a NSPopUpButton.
- sz.rwidth() += QMacStylePrivate::PushButtonLeftOffset + QMacStylePrivate::PushButtonRightOffset;
-
- if (controlSize == QStyleHelper::SizeLarge) {
- sz.rwidth() += 30;
- } else if (controlSize == QStyleHelper::SizeSmall) {
- sz.rwidth() += 26;
- } else {
- sz.rwidth() += 21;
- }
- } else {
- sz.rwidth() += 50; // FIXME Double check this
- }
-
- // This should be enough to fit the focus ring
- if (controlSize == QStyleHelper::SizeMini)
- sz.setHeight(24); // FIXME Our previous HITheme-based logic returned this for CT_PushButton.
- else
- sz.setHeight(pushButtonDefaultHeight[controlSize]);
-
- return sz;
- }
- break;
- case CT_Menu: {
- if (proxy() == this) {
- sz = csz;
- } else {
- QStyleHintReturnMask menuMask;
- QStyleOption myOption = *opt;
- myOption.rect.setSize(sz);
- if (proxy()->styleHint(SH_Menu_Mask, &myOption, &menuMask))
- sz = menuMask.region.boundingRect().size();
- }
- break; }
- case CT_HeaderSection:{
- const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(opt);
- sz = QCommonStyle::sizeFromContents(ct, opt, csz);
- if (header->text.contains(QLatin1Char('\n')))
- useAquaGuideline = false;
- break; }
- case CT_ScrollBar :
- // Make sure that the scroll bar is large enough to display the thumb indicator.
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- const int minimumWidth = 24;
- const int absoluteHeight = 14;
- if (slider->orientation == Qt::Horizontal) {
- sz = sz.expandedTo(QSize(minimumWidth, sz.height()));
- sz.setHeight(absoluteHeight);
- } else {
- sz = sz.expandedTo(QSize(sz.width(), minimumWidth));
- sz.setWidth(absoluteHeight);
- }
- }
- break;
- case CT_ItemViewItem:
- if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
- sz = QCommonStyle::sizeFromContents(ct, vopt, csz);
- sz.setHeight(sz.height() + 2);
- }
- break;
- default:
- sz = QCommonStyle::sizeFromContents(ct, opt, csz);
- }
-
- if (useAquaGuideline && ct != CT_PushButton) {
- // TODO Probably going away at some point
- QSize macsz;
- if (d->aquaSizeConstrain(opt, ct, sz, &macsz) != QStyleHelper::SizeDefault) {
- if (macsz.width() != -1)
- sz.setWidth(macsz.width());
- if (macsz.height() != -1)
- sz.setHeight(macsz.height());
- }
- }
-
- // The sizes that Carbon and the guidelines gives us excludes the focus frame.
- // We compensate for this by adding some extra space here to make room for the frame when drawing:
- if (const QStyleOptionComboBox *combo = qstyleoption_cast<const QStyleOptionComboBox *>(opt)){
- if (combo->editable) {
- const auto widgetSize = d->aquaSizeConstrain(opt);
- QMacStylePrivate::CocoaControl cw;
- cw.type = combo->editable ? QMacStylePrivate::ComboBox : QMacStylePrivate::Button_PopupButton;
- cw.size = widgetSize;
- const CGRect diffRect = QMacStylePrivate::comboboxInnerBounds(CGRectZero, cw);
- sz.rwidth() -= qRound(diffRect.size.width);
- sz.rheight() -= qRound(diffRect.size.height);
- }
- }
- return sz;
-}
-
-QFont QMacStyle::font(QStyle::ControlElement element, const QStyle::State state) const
-{
- QFont font = QCommonStyle::font(element, state);
-
- if (state & QStyle::State_Small) {
- font.setPixelSize(11);
- } else if (state & QStyle::State_Mini) {
- font.setPixelSize(9);
- }
-
- return font;
-}
-
-QMargins QMacStyle::ninePatchMargins(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, const QSize &imageSize) const
-{
- QMargins margins;
-
- switch (cc) {
- case CC_ComboBox: {
- const QRect arrow = subControlRect(CC_ComboBox, opt, SC_ComboBoxArrow);
- margins = QMargins(10, 0, arrow.width() + 1, -1);
- break; }
- default:
- margins = QCommonStyle::ninePatchMargins(cc, opt, imageSize);
- break;
- }
-
- return margins;
-}
-
-void QMacStyle::drawItemText(QPainter *p, const QRect &r, int flags, const QPalette &pal,
- bool enabled, const QString &text, QPalette::ColorRole textRole) const
-{
- if(flags & Qt::TextShowMnemonic)
- flags |= Qt::TextHideMnemonic;
- QCommonStyle::drawItemText(p, r, flags, pal, enabled, text, textRole);
-}
-
-QIcon QMacStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption *opt) const
-{
- switch (standardIcon) {
- default:
- return QCommonStyle::standardIcon(standardIcon, opt);
- case SP_ToolBarHorizontalExtensionButton:
- case SP_ToolBarVerticalExtensionButton: {
- QPixmap pixmap(QLatin1String(":/qt-project.org/styles/macstyle/images/toolbar-ext.png"));
- if (standardIcon == SP_ToolBarVerticalExtensionButton) {
- QPixmap pix2(pixmap.height(), pixmap.width());
- pix2.setDevicePixelRatio(pixmap.devicePixelRatio());
- pix2.fill(Qt::transparent);
- QPainter p(&pix2);
- p.translate(pix2.width(), 0);
- p.rotate(90);
- p.drawPixmap(0, 0, pixmap);
- return pix2;
- }
- return pixmap;
- }
- }
-}
-
-} // QQC2_NAMESPACE
-
-QT_END_NAMESPACE
diff --git a/src/quicknativestyle/qstyle/mac/qquickmacstyle_mac_p.h b/src/quicknativestyle/qstyle/mac/qquickmacstyle_mac_p.h
deleted file mode 100644
index b9e1c5f3..00000000
--- a/src/quicknativestyle/qstyle/mac/qquickmacstyle_mac_p.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QMACSTYLE_MAC_P_H
-#define QMACSTYLE_MAC_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickcommonstyle.h"
-
-#define QQC2_NAMESPACE QQC2
-
-QT_BEGIN_NAMESPACE
-
-class QPalette;
-
-namespace QQC2_NAMESPACE {
-
-class QStyleOptionButton;
-class QMacStylePrivate;
-
-class QMacStyle : public QCommonStyle
-{
- Q_OBJECT
-public:
- QMacStyle();
- ~QMacStyle();
-
- void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p) const override;
- void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p) const override;
- void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p) const override;
-
- QRect subElementRect(SubElement r, const QStyleOption *opt) const override;
- QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc) const override;
- SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt) const override;
-
- QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize) const override;
- QFont font(ControlElement element, const QStyle::State state) const override;
- QMargins ninePatchMargins(ComplexControl cc, const QStyleOptionComplex *opt, const QSize &imageSize) const override;
-
- int pixelMetric(PixelMetric pm, const QStyleOption *opt = 0) const override;
- int styleHint(StyleHint sh, const QStyleOption *opt = 0, QStyleHintReturn *shret = 0) const override;
-
- QPixmap standardPixmap(StandardPixmap sp, const QStyleOption *opt) const override;
- QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const override;
-
- void drawItemText(QPainter *p, const QRect &r, int flags, const QPalette &pal,
- bool enabled, const QString &text,
- QPalette::ColorRole textRole = QPalette::NoRole) const override;
-
- QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *opt = 0) const override;
-
-private:
- Q_DISABLE_COPY_MOVE(QMacStyle)
- Q_DECLARE_PRIVATE(QMacStyle)
-};
-
-} // QQC2_NAMESPACE
-
-QT_END_NAMESPACE
-
-#endif // QMACSTYLE_MAC_P_H
diff --git a/src/quicknativestyle/qstyle/mac/qquickmacstyle_mac_p_p.h b/src/quicknativestyle/qstyle/mac/qquickmacstyle_mac_p_p.h
deleted file mode 100644
index a0c67bfb..00000000
--- a/src/quicknativestyle/qstyle/mac/qquickmacstyle_mac_p_p.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#ifndef QMACSTYLE_MAC_P_P_H
-#define QMACSTYLE_MAC_P_P_H
-
-#include "qquickmacstyle_mac_p.h"
-#include "qquickcommonstyle_p.h"
-#include "qquickstylehelper_p.h"
-
-#include <QtCore/qdebug.h>
-#include <QtCore/qhash.h>
-#include <QtCore/qmap.h>
-#include <QtCore/qmath.h>
-#include <QtCore/qpair.h>
-#include <QtCore/qpointer.h>
-#include <QtCore/qtextstream.h>
-#include <QtCore/qvector.h>
-
-#include <QtGui/qbitmap.h>
-#include <QtGui/qevent.h>
-#include <QtGui/qpaintdevice.h>
-#include <QtGui/qpainter.h>
-#include <QtGui/qpixmapcache.h>
-
-#include <QtQuick/qquickitem.h>
-
-#include <QtCore/private/qcore_mac_p.h>
-#include <QtGui/private/qpainter_p.h>
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-Q_FORWARD_DECLARE_MUTABLE_CG_TYPE(CGContext);
-
-Q_FORWARD_DECLARE_OBJC_CLASS(NSView);
-Q_FORWARD_DECLARE_OBJC_CLASS(NSCell);
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2 {
-
-/*
- AHIG:
- macOS Human Interface Guidelines
- https://developer.apple.com/macos/human-interface-guidelines/overview/themes/
-
- Builder:
- Interface Builder in Xcode 8 or later
-*/
-
-// this works as long as we have at most 16 different control types
-#define CT1(c) CT2(c, c)
-#define CT2(c1, c2) ((uint(c1) << 16) | uint(c2))
-
-#define SIZE(large, small, mini) \
- (controlSize == QStyleHelper::SizeLarge ? (large) : controlSize == QStyleHelper::SizeSmall ? (small) : (mini))
-
-// same as return SIZE(...) but optimized
-#define return_SIZE(large, small, mini) \
- do { \
- static const int sizes[] = { (large), (small), (mini) }; \
- return sizes[controlSize]; \
- } while (false)
-
-class QMacStylePrivate : public QCommonStylePrivate
-{
- Q_DECLARE_PUBLIC(QMacStyle)
-
-public:
- enum Direction {
- North, South, East, West
- };
-
- enum CocoaControlType {
- NoControl, // For when there's no such a control in Cocoa
- Box, // QGroupBox
- Box_Dark, // FIXME See render code in drawPrimitive(PE_FrameTabWidget)
- Button_CheckBox,
- Button_Disclosure, // Disclosure triangle, like in QTreeView
- Button_PopupButton, // Non-editable QComboBox
- Button_PullDown, // QPushButton with menu
- Button_PushButton, // Plain QPushButton and QTabBar buttons
- Button_RadioButton,
- Button_SquareButton, // Oversized QPushButton
- Button_WindowClose,
- Button_WindowMiniaturize,
- Button_WindowZoom,
- ComboBox, // Editable QComboBox
- ProgressIndicator_Determinate,
- ProgressIndicator_Indeterminate,
- Scroller_Horizontal,
- Scroller_Vertical,
- SegmentedControl_First, // QTabBar buttons focus ring
- SegmentedControl_Middle,
- SegmentedControl_Last,
- SegmentedControl_Single,
- Slider_Horizontal,
- Slider_Vertical,
- SplitView_Horizontal,
- SplitView_Vertical,
- Stepper, // QSpinBox buttons
- TextField
- };
-
- struct CocoaControl {
- CocoaControl();
- CocoaControl(CocoaControlType t, QStyleHelper::WidgetSizePolicy s);
-
- CocoaControlType type;
- QStyleHelper::WidgetSizePolicy size;
-
- bool operator==(const CocoaControl &other) const;
-
- QSizeF defaultFrameSize() const;
- QRectF adjustedControlFrame(const QRectF &rect) const;
- QMarginsF titleMargins() const;
-
- bool getCocoaButtonTypeAndBezelStyle(NSButtonType *buttonType, NSBezelStyle *bezelStyle) const;
- };
-
- typedef void (^DrawRectBlock)(CGContextRef, const CGRect &);
-
- QMacStylePrivate();
- ~QMacStylePrivate();
-
- // Ideally these wouldn't exist, but since they already exist we need some accessors.
- static const int PushButtonLeftOffset;
- static const int PushButtonRightOffset;
- static const int PushButtonContentPadding;
-
- enum Animates { AquaPushButton, AquaProgressBar, AquaListViewItemOpen, AquaScrollBar };
- QStyleHelper::WidgetSizePolicy aquaSizeConstrain(const QStyleOption *option,
- QStyle::ContentsType ct = QStyle::CT_CustomBase,
- QSize szHint=QSize(-1, -1), QSize *insz = 0) const;
- QStyleHelper::WidgetSizePolicy effectiveAquaSizeConstrain(const QStyleOption *option,
- QStyle::ContentsType ct = QStyle::CT_CustomBase,
- QSize szHint=QSize(-1, -1), QSize *insz = 0) const;
- inline int animateSpeed(Animates) const { return 33; }
-
- // Utility functions
- static CGRect comboboxInnerBounds(const CGRect &outterBounds, const CocoaControl &cocoaWidget);
-
- static QRectF comboboxEditBounds(const QRectF &outterBounds, const CocoaControl &cw);
-
- void setAutoDefaultButton(QObject *button) const;
-
- NSView *cocoaControl(CocoaControl cocoaControl) const;
- NSCell *cocoaCell(CocoaControl cocoaControl) const;
-
- void setupNSGraphicsContext(CGContextRef cg, bool flipped) const;
- void restoreNSGraphicsContext(CGContextRef cg) const;
-
- void setupVerticalInvertedXform(CGContextRef cg, bool reverse, bool vertical, const CGRect &rect) const;
-
- void drawNSViewInRect(NSView *view, const QRectF &rect, QPainter *p, DrawRectBlock drawRectBlock = nil) const;
- void resolveCurrentNSView(QWindow *window) const;
-
- void drawToolbarButtonArrow(const QStyleOption *opt, QPainter *p) const;
-
- QPainterPath windowPanelPath(const QRectF &r) const;
-
- CocoaControlType windowButtonCocoaControl(QStyle::SubControl sc) const;
-
- void tabLayout(const QStyleOptionTab *opt, QRect *textRect, QRect *iconRect) const override;
- static Direction tabDirection(QStyleOptionTab::Shape shape);
- static bool verticalTabs(QMacStylePrivate::Direction tabDirection);
-
-public:
- mutable QPointer<QObject> autoDefaultButton;
- static QVector<QPointer<QObject> > scrollBars;
-
- mutable QPointer<QQuickItem> focusWidget; // TODO: rename to focusItem
- mutable NSView *backingStoreNSView;
- mutable QHash<CocoaControl, NSView *> cocoaControls;
- mutable QHash<CocoaControl, NSCell *> cocoaCells;
-
- QFont smallSystemFont;
- QFont miniSystemFont;
-
- QMacKeyValueObserver appearanceObserver;
-};
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif // QMACSTYLE_MAC_P_P_H
diff --git a/src/quicknativestyle/qstyle/qquickcommonstyle.cpp b/src/quicknativestyle/qstyle/qquickcommonstyle.cpp
deleted file mode 100644
index c5797009..00000000
--- a/src/quicknativestyle/qstyle/qquickcommonstyle.cpp
+++ /dev/null
@@ -1,6082 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickcommonstyle.h"
-#include "qquickcommonstyle_p.h"
-#include "qquickcommonstylepixmaps_p.h"
-
-#include "qquickstyleoption.h"
-#include "qquickdrawutil.h"
-#include "qquickstylehelper_p.h"
-
-#include <QtGui/QWindow>
-#include <qfile.h>
-#include <private/qguiapplication_p.h>
-#include <qpa/qplatformtheme.h>
-#include <qbitmap.h>
-#include <qcache.h>
-#include <qmath.h>
-#include <qpainter.h>
-#include <qpaintengine.h>
-#include <qpainterpath.h>
-#include <private/qmath_p.h>
-#include <qdebug.h>
-#include <qtextformat.h>
-#include <qfileinfo.h>
-#include <qdir.h>
-#include <qsettings.h>
-#include <qvariant.h>
-#include <qpixmapcache.h>
-#include <qmatrix4x4.h>
-
-#include <limits.h>
-
-#include <private/qtextengine_p.h>
-#include <QtGui/private/qhexstring_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static inline qreal dpr(const QWindow *w)
-{
- return w != nullptr ? w->devicePixelRatio() : qApp->devicePixelRatio();
-}
-
-/*!
- \class QCommonStyle
- \brief The QCommonStyle class encapsulates the common Look and Feel of a GUI.
-
- \ingroup appearance
- \inmodule QtWidgets
-
- This abstract class implements some of the widget's look and feel
- that is common to all GUI styles provided and shipped as part of
- Qt.
-
- Since QCommonStyle inherits QStyle, all of its functions are fully documented
- in the QStyle documentation.
- \omit
- , although the
- extra functions that QCommonStyle provides, e.g.
- drawComplexControl(), drawControl(), drawPrimitive(),
- hitTestComplexControl(), subControlRect(), sizeFromContents(), and
- subElementRect() are documented here.
- \endomit
-
- \sa QStyle, QProxyStyle
-*/
-
-namespace QQC2 {
-
-QCommonStyle::QCommonStyle()
- : QStyle(*new QCommonStylePrivate)
-{ }
-
-QCommonStyle::QCommonStyle(QCommonStylePrivate &dd)
- : QStyle(dd)
-{ }
-
-QCommonStyle::~QCommonStyle()
-{ }
-
-void QCommonStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p) const
-{
- Q_D(const QCommonStyle);
- switch (pe) {
- case PE_FrameButtonBevel:
- case PE_FrameButtonTool:
- qDrawShadeRect(p, opt->rect, opt->palette,
- opt->state & (State_Sunken | State_On), 1, 0);
- break;
- case PE_PanelButtonCommand:
- case PE_PanelButtonBevel:
- case PE_PanelButtonTool:
- case PE_IndicatorButtonDropDown:
- qDrawShadePanel(p, opt->rect, opt->palette,
- opt->state & (State_Sunken | State_On), 1,
- &opt->palette.brush(QPalette::Button));
- break;
- case PE_IndicatorItemViewItemCheck:
- proxy()->drawPrimitive(PE_IndicatorCheckBox, opt, p);
- break;
- case PE_IndicatorCheckBox:
- if (opt->state & State_NoChange) {
- p->setPen(opt->palette.windowText().color());
- p->fillRect(opt->rect, opt->palette.brush(QPalette::Button));
- p->drawRect(opt->rect);
- p->drawLine(opt->rect.topLeft(), opt->rect.bottomRight());
- } else {
- qDrawShadePanel(p, opt->rect.x(), opt->rect.y(), opt->rect.width(), opt->rect.height(),
- opt->palette, opt->state & (State_Sunken | State_On), 1,
- &opt->palette.brush(QPalette::Button));
- }
- break;
- case PE_IndicatorRadioButton: {
- QRect ir = opt->rect;
- p->setPen(opt->palette.dark().color());
- p->drawArc(opt->rect, 0, 5760);
- if (opt->state & (State_Sunken | State_On)) {
- ir.adjust(2, 2, -2, -2);
- p->setBrush(opt->palette.windowText());
- p->drawEllipse(ir);
- }
- break; }
- case PE_FrameFocusRect:
- if (const QStyleOptionFocusRect *fropt = qstyleoption_cast<const QStyleOptionFocusRect *>(opt)) {
- QColor bg = fropt->backgroundColor;
- QPen oldPen = p->pen();
- if (bg.isValid()) {
- int h, s, v;
- bg.getHsv(&h, &s, &v);
- if (v >= 128)
- p->setPen(Qt::black);
- else
- p->setPen(Qt::white);
- } else {
- p->setPen(opt->palette.windowText().color());
- }
- QRect focusRect = opt->rect.adjusted(1, 1, -1, -1);
- p->drawRect(focusRect.adjusted(0, 0, -1, -1)); //draw pen inclusive
- p->setPen(oldPen);
- }
- break;
- case PE_IndicatorMenuCheckMark: {
- const int markW = opt->rect.width() > 7 ? 7 : opt->rect.width();
- const int markH = markW;
- int posX = opt->rect.x() + (opt->rect.width() - markW)/2 + 1;
- int posY = opt->rect.y() + (opt->rect.height() - markH)/2;
-
- QVector<QLineF> a;
- a.reserve(markH);
-
- int i, xx, yy;
- xx = posX;
- yy = 3 + posY;
- for (i = 0; i < markW/2; ++i) {
- a << QLineF(xx, yy, xx, yy + 2);
- ++xx;
- ++yy;
- }
- yy -= 2;
- for (; i < markH; ++i) {
- a << QLineF(xx, yy, xx, yy + 2);
- ++xx;
- --yy;
- }
- if (!(opt->state & State_Enabled) && !(opt->state & State_On)) {
- p->save();
- p->translate(1, 1);
- p->setPen(opt->palette.light().color());
- p->drawLines(a);
- p->restore();
- }
- p->setPen((opt->state & State_On) ? opt->palette.highlightedText().color() : opt->palette.text().color());
- p->drawLines(a);
- break; }
- case PE_Frame:
- case PE_FrameMenu:
- if (const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- if (pe == PE_FrameMenu || (frame->state & State_Sunken) || (frame->state & State_Raised)) {
- qDrawShadePanel(p, frame->rect, frame->palette, frame->state & State_Sunken,
- frame->lineWidth);
- } else {
- qDrawPlainRect(p, frame->rect, frame->palette.windowText().color(), frame->lineWidth);
- }
- }
- break;
- case PE_PanelMenuBar:
- if (const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(opt)){
- qDrawShadePanel(p, frame->rect, frame->palette, false, frame->lineWidth,
- &frame->palette.brush(QPalette::Button));
-
- }
- else if (const QStyleOptionToolBar *frame = qstyleoption_cast<const QStyleOptionToolBar *>(opt)){
- qDrawShadePanel(p, frame->rect, frame->palette, false, frame->lineWidth,
- &frame->palette.brush(QPalette::Button));
- }
-
- break;
- case PE_PanelMenu:
- break;
- case PE_PanelToolBar:
- break;
- case PE_IndicatorProgressChunk:
- {
- p->fillRect(opt->rect.x(), opt->rect.y() + 3, opt->rect.width() -2, opt->rect.height() - 6,
- opt->palette.brush(QPalette::Highlight));
- }
- break;
- case PE_IndicatorBranch: {
- static const int decoration_size = 9;
- int mid_h = opt->rect.x() + opt->rect.width() / 2;
- int mid_v = opt->rect.y() + opt->rect.height() / 2;
- int bef_h = mid_h;
- int bef_v = mid_v;
- int aft_h = mid_h;
- int aft_v = mid_v;
- if (opt->state & State_Children) {
- int delta = decoration_size / 2;
- bef_h -= delta;
- bef_v -= delta;
- aft_h += delta;
- aft_v += delta;
- p->drawLine(bef_h + 2, bef_v + 4, bef_h + 6, bef_v + 4);
- if (!(opt->state & State_Open))
- p->drawLine(bef_h + 4, bef_v + 2, bef_h + 4, bef_v + 6);
- QPen oldPen = p->pen();
- p->setPen(opt->palette.dark().color());
- p->drawRect(bef_h, bef_v, decoration_size - 1, decoration_size - 1);
- p->setPen(oldPen);
- }
- QBrush brush(opt->palette.dark().color(), Qt::Dense4Pattern);
- if (opt->state & State_Item) {
- if (opt->direction == Qt::RightToLeft)
- p->fillRect(opt->rect.left(), mid_v, bef_h - opt->rect.left(), 1, brush);
- else
- p->fillRect(aft_h, mid_v, opt->rect.right() - aft_h + 1, 1, brush);
- }
- if (opt->state & State_Sibling)
- p->fillRect(mid_h, aft_v, 1, opt->rect.bottom() - aft_v + 1, brush);
- if (opt->state & (State_Open | State_Children | State_Item | State_Sibling))
- p->fillRect(mid_h, opt->rect.y(), 1, bef_v - opt->rect.y(), brush);
- break; }
- case PE_FrameStatusBarItem:
- qDrawShadeRect(p, opt->rect, opt->palette, true, 1, 0, nullptr);
- break;
- case PE_IndicatorHeaderArrow:
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(opt)) {
- QPen oldPen = p->pen();
- if (header->sortIndicator & QStyleOptionHeader::SortUp) {
- p->setPen(QPen(opt->palette.light(), 0));
- p->drawLine(opt->rect.x() + opt->rect.width(), opt->rect.y(),
- opt->rect.x() + opt->rect.width() / 2, opt->rect.y() + opt->rect.height());
- p->setPen(QPen(opt->palette.dark(), 0));
- const QPoint points[] = {
- QPoint(opt->rect.x() + opt->rect.width() / 2, opt->rect.y() + opt->rect.height()),
- QPoint(opt->rect.x(), opt->rect.y()),
- QPoint(opt->rect.x() + opt->rect.width(), opt->rect.y()),
- };
- p->drawPolyline(points, sizeof points / sizeof *points);
- } else if (header->sortIndicator & QStyleOptionHeader::SortDown) {
- p->setPen(QPen(opt->palette.light(), 0));
- const QPoint points[] = {
- QPoint(opt->rect.x(), opt->rect.y() + opt->rect.height()),
- QPoint(opt->rect.x() + opt->rect.width(), opt->rect.y() + opt->rect.height()),
- QPoint(opt->rect.x() + opt->rect.width() / 2, opt->rect.y()),
- };
- p->drawPolyline(points, sizeof points / sizeof *points);
- p->setPen(QPen(opt->palette.dark(), 0));
- p->drawLine(opt->rect.x(), opt->rect.y() + opt->rect.height(),
- opt->rect.x() + opt->rect.width() / 2, opt->rect.y());
- }
- p->setPen(oldPen);
- }
- break;
- case PE_FrameTabBarBase:
- if (const QStyleOptionTabBarBase *tbb
- = qstyleoption_cast<const QStyleOptionTabBarBase *>(opt)) {
- p->save();
- switch (tbb->shape) {
- case QStyleOptionTab::RoundedNorth:
- case QStyleOptionTab::TriangularNorth:
- p->setPen(QPen(tbb->palette.light(), 0));
- p->drawLine(tbb->rect.topLeft(), tbb->rect.topRight());
- break;
- case QStyleOptionTab::RoundedWest:
- case QStyleOptionTab::TriangularWest:
- p->setPen(QPen(tbb->palette.light(), 0));
- p->drawLine(tbb->rect.topLeft(), tbb->rect.bottomLeft());
- break;
- case QStyleOptionTab::RoundedSouth:
- case QStyleOptionTab::TriangularSouth:
- p->setPen(QPen(tbb->palette.shadow(), 0));
- p->drawLine(tbb->rect.left(), tbb->rect.bottom(),
- tbb->rect.right(), tbb->rect.bottom());
- p->setPen(QPen(tbb->palette.dark(), 0));
- p->drawLine(tbb->rect.left(), tbb->rect.bottom() - 1,
- tbb->rect.right() - 1, tbb->rect.bottom() - 1);
- break;
- case QStyleOptionTab::RoundedEast:
- case QStyleOptionTab::TriangularEast:
- p->setPen(QPen(tbb->palette.dark(), 0));
- p->drawLine(tbb->rect.topRight(), tbb->rect.bottomRight());
- break;
- }
- p->restore();
- }
- break;
- case PE_IndicatorTabClose: {
- if (d->tabBarcloseButtonIcon.isNull()) {
- d->tabBarcloseButtonIcon.addPixmap(QPixmap(
- QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-closetab-16.png")),
- QIcon::Normal, QIcon::Off);
- d->tabBarcloseButtonIcon.addPixmap(QPixmap(
- QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-closetab-down-16.png")),
- QIcon::Normal, QIcon::On);
- d->tabBarcloseButtonIcon.addPixmap(QPixmap(
- QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-closetab-hover-16.png")),
- QIcon::Active, QIcon::Off);
- }
-
- int size = proxy()->pixelMetric(QStyle::PM_SmallIconSize);
- QIcon::Mode mode = opt->state & State_Enabled ?
- (opt->state & State_Raised ? QIcon::Active : QIcon::Normal)
- : QIcon::Disabled;
- if (!(opt->state & State_Raised)
- && !(opt->state & State_Sunken)
- && !(opt->state & QStyle::State_Selected))
- mode = QIcon::Disabled;
-
- QIcon::State state = opt->state & State_Sunken ? QIcon::On : QIcon::Off;
- QPixmap pixmap = d->tabBarcloseButtonIcon.pixmap(QSize(size, size), dpr(opt->window), mode, state);
- proxy()->drawItemPixmap(p, opt->rect, Qt::AlignCenter, pixmap);
- break;
- }
- case PE_FrameTabWidget:
- case PE_FrameWindow:
- qDrawWinPanel(p, opt->rect, opt->palette, false, nullptr);
- break;
- case PE_FrameLineEdit:
- proxy()->drawPrimitive(PE_Frame, opt, p);
- break;
- case PE_FrameGroupBox:
- if (const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- if (frame->features & QStyleOptionFrame::Flat) {
- QRect fr = frame->rect;
- QPoint p1(fr.x(), fr.y() + 1);
- QPoint p2(fr.x() + fr.width(), p1.y());
- qDrawShadeLine(p, p1, p2, frame->palette, true,
- frame->lineWidth, frame->midLineWidth);
- } else {
- qDrawShadeRect(p, frame->rect.x(), frame->rect.y(), frame->rect.width(),
- frame->rect.height(), frame->palette, true,
- frame->lineWidth, frame->midLineWidth);
- }
- }
- break;
- case PE_FrameDockWidget:
- if (const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- int lw = frame->lineWidth;
- if (lw <= 0)
- lw = proxy()->pixelMetric(PM_DockWidgetFrameWidth);
-
- qDrawShadePanel(p, frame->rect, frame->palette, false, lw);
- }
- break;
- case PE_IndicatorToolBarHandle:
- p->save();
- p->translate(opt->rect.x(), opt->rect.y());
- if (opt->state & State_Horizontal) {
- int x = opt->rect.width() / 3;
- if (opt->direction == Qt::RightToLeft)
- x -= 2;
- if (opt->rect.height() > 4) {
- qDrawShadePanel(p, x, 2, 3, opt->rect.height() - 4,
- opt->palette, false, 1, nullptr);
- qDrawShadePanel(p, x+3, 2, 3, opt->rect.height() - 4,
- opt->palette, false, 1, nullptr);
- }
- } else {
- if (opt->rect.width() > 4) {
- int y = opt->rect.height() / 3;
- qDrawShadePanel(p, 2, y, opt->rect.width() - 4, 3,
- opt->palette, false, 1, nullptr);
- qDrawShadePanel(p, 2, y+3, opt->rect.width() - 4, 3,
- opt->palette, false, 1, nullptr);
- }
- }
- p->restore();
- break;
- case PE_IndicatorToolBarSeparator:
- {
- QPoint p1, p2;
- if (opt->state & State_Horizontal) {
- p1 = QPoint(opt->rect.width()/2, 0);
- p2 = QPoint(p1.x(), opt->rect.height());
- } else {
- p1 = QPoint(0, opt->rect.height()/2);
- p2 = QPoint(opt->rect.width(), p1.y());
- }
- qDrawShadeLine(p, p1, p2, opt->palette, 1, 1, 0);
- break;
- }
- case PE_IndicatorSpinPlus:
- case PE_IndicatorSpinMinus: {
- QRect r = opt->rect;
- int fw = proxy()->pixelMetric(PM_DefaultFrameWidth, opt);
- QRect br = r.adjusted(fw, fw, -fw, -fw);
-
- int offset = (opt->state & State_Sunken) ? 1 : 0;
- int step = (br.width() + 4) / 5;
- p->fillRect(br.x() + offset, br.y() + offset +br.height() / 2 - step / 2,
- br.width(), step,
- opt->palette.buttonText());
- if (pe == PE_IndicatorSpinPlus)
- p->fillRect(br.x() + br.width() / 2 - step / 2 + offset, br.y() + offset,
- step, br.height(),
- opt->palette.buttonText());
-
- break; }
- case PE_IndicatorSpinUp:
- case PE_IndicatorSpinDown: {
- QRect r = opt->rect;
- int fw = proxy()->pixelMetric(PM_DefaultFrameWidth, opt);
- // QRect br = r.adjusted(fw, fw, -fw, -fw);
- int x = r.x(), y = r.y(), w = r.width(), h = r.height();
- int sw = w-4;
- if (sw < 3)
- break;
- else if (!(sw & 1))
- sw--;
- sw -= (sw / 7) * 2; // Empty border
- int sh = sw/2 + 2; // Must have empty row at foot of arrow
-
- int sx = x + w / 2 - sw / 2;
- int sy = y + h / 2 - sh / 2;
-
- if (pe == PE_IndicatorSpinUp && fw)
- --sy;
-
- int bsx = 0;
- int bsy = 0;
- if (opt->state & State_Sunken) {
- bsx = proxy()->pixelMetric(PM_ButtonShiftHorizontal);
- bsy = proxy()->pixelMetric(PM_ButtonShiftVertical);
- }
- p->save();
- p->translate(sx + bsx, sy + bsy);
- p->setPen(opt->palette.buttonText().color());
- p->setBrush(opt->palette.buttonText());
- if (pe == PE_IndicatorSpinDown) {
- const QPoint points[] = { QPoint(0, 1), QPoint(sw-1, 1), QPoint(sh-2, sh-1) };
- p->drawPolygon(points, sizeof points / sizeof *points);
- } else {
- const QPoint points[] = { QPoint(0, sh-1), QPoint(sw-1, sh-1), QPoint(sh-2, 1) };
- p->drawPolygon(points, sizeof points / sizeof *points);
- }
- p->restore();
- break; }
- case PE_PanelTipLabel: {
- const QBrush brush(opt->palette.toolTipBase());
- qDrawPlainRect(p, opt->rect, opt->palette.toolTipText().color(), 1, &brush);
- break;
- }
- case PE_IndicatorTabTear:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- bool rtl = tab->direction == Qt::RightToLeft;
- const bool horizontal = tab->rect.height() > tab->rect.width();
- const int margin = 4;
- QPainterPath path;
-
- if (horizontal) {
- QRect rect = tab->rect.adjusted(rtl ? margin : 0, 0, rtl ? 1 : -margin, 0);
- rect.setTop(rect.top() + ((tab->state & State_Selected) ? 1 : 3));
- rect.setBottom(rect.bottom() - ((tab->state & State_Selected) ? 0 : 2));
-
- path.moveTo(QPoint(rtl ? rect.right() : rect.left(), rect.top()));
- int count = 4;
- for (int jags = 1; jags <= count; ++jags, rtl = !rtl)
- path.lineTo(QPoint(rtl ? rect.left() : rect.right(), rect.top() + jags * rect.height()/count));
- } else {
- QRect rect = tab->rect.adjusted(0, 0, 0, -margin);
- rect.setLeft(rect.left() + ((tab->state & State_Selected) ? 1 : 3));
- rect.setRight(rect.right() - ((tab->state & State_Selected) ? 0 : 2));
-
- path.moveTo(QPoint(rect.left(), rect.top()));
- int count = 4;
- for (int jags = 1; jags <= count; ++jags, rtl = !rtl)
- path.lineTo(QPoint(rect.left() + jags * rect.width()/count, rtl ? rect.top() : rect.bottom()));
- }
-
- p->setPen(QPen(tab->palette.dark(), qreal(.8)));
- p->setBrush(tab->palette.window());
- p->setRenderHint(QPainter::Antialiasing);
- p->drawPath(path);
- }
- break;
- case PE_PanelLineEdit:
- if (const QStyleOptionFrame *panel = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- p->fillRect(panel->rect.adjusted(panel->lineWidth, panel->lineWidth, -panel->lineWidth, -panel->lineWidth),
- panel->palette.brush(QPalette::Base));
-
- if (panel->lineWidth > 0)
- proxy()->drawPrimitive(PE_FrameLineEdit, panel, p);
- }
- break;
- case PE_IndicatorColumnViewArrow: {
- if (const QStyleOptionViewItem *viewOpt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
- bool reverse = (viewOpt->direction == Qt::RightToLeft);
- p->save();
- QPainterPath path;
- int x = viewOpt->rect.x() + 1;
- int offset = (viewOpt->rect.height() / 3);
- int height = (viewOpt->rect.height()) - offset * 2;
- if (height % 2 == 1)
- --height;
- int x2 = x + height - 1;
- if (reverse) {
- x = viewOpt->rect.x() + viewOpt->rect.width() - 1;
- x2 = x - height + 1;
- }
- path.moveTo(x, viewOpt->rect.y() + offset);
- path.lineTo(x, viewOpt->rect.y() + offset + height);
- path.lineTo(x2, viewOpt->rect.y() + offset+height/2);
- path.closeSubpath();
- if (viewOpt->state & QStyle::State_Selected ) {
- if (viewOpt->showDecorationSelected) {
- QColor color = viewOpt->palette.color(QPalette::Active, QPalette::HighlightedText);
- p->setPen(color);
- p->setBrush(color);
- } else {
- QColor color = viewOpt->palette.color(QPalette::Active, QPalette::WindowText);
- p->setPen(color);
- p->setBrush(color);
- }
-
- } else {
- QColor color = viewOpt->palette.color(QPalette::Active, QPalette::Mid);
- p->setPen(color);
- p->setBrush(color);
- }
- p->drawPath(path);
-
- // draw the vertical and top triangle line
- if (!(viewOpt->state & QStyle::State_Selected)) {
- QPainterPath lines;
- lines.moveTo(x, viewOpt->rect.y() + offset);
- lines.lineTo(x, viewOpt->rect.y() + offset + height);
- lines.moveTo(x, viewOpt->rect.y() + offset);
- lines.lineTo(x2, viewOpt->rect.y() + offset+height/2);
- QColor color = viewOpt->palette.color(QPalette::Active, QPalette::Dark);
- p->setPen(color);
- p->drawPath(lines);
- }
- p->restore();
- }
- break; }
- case PE_IndicatorItemViewItemDrop: {
- QRect rect = opt->rect;
- if (opt->rect.height() == 0)
- p->drawLine(rect.topLeft(), rect.topRight());
- else
- p->drawRect(rect);
- break; }
- case PE_PanelItemViewRow:
- if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
- QPalette::ColorGroup cg = vopt->state & QStyle::State_Enabled ? QPalette::Normal : QPalette::Disabled;
- if (cg == QPalette::Normal && !(vopt->state & QStyle::State_Active))
- cg = QPalette::Inactive;
-
- if ((vopt->state & QStyle::State_Selected) && proxy()->styleHint(QStyle::SH_ItemView_ShowDecorationSelected, opt))
- p->fillRect(vopt->rect, vopt->palette.brush(cg, QPalette::Highlight));
- else if (vopt->features & QStyleOptionViewItem::Alternate)
- p->fillRect(vopt->rect, vopt->palette.brush(cg, QPalette::AlternateBase));
- }
- break;
- case PE_PanelItemViewItem:
- if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
- QPalette::ColorGroup cg = vopt->state & QStyle::State_Enabled ? QPalette::Normal : QPalette::Disabled;
- if (cg == QPalette::Normal && !(vopt->state & QStyle::State_Active))
- cg = QPalette::Inactive;
-
- if (vopt->showDecorationSelected && (vopt->state & QStyle::State_Selected)) {
- p->fillRect(vopt->rect, vopt->palette.brush(cg, QPalette::Highlight));
- } else {
- if (vopt->backgroundBrush.style() != Qt::NoBrush) {
- QPointF oldBO = p->brushOrigin();
- p->setBrushOrigin(vopt->rect.topLeft());
- p->fillRect(vopt->rect, vopt->backgroundBrush);
- p->setBrushOrigin(oldBO);
- }
-
- if (vopt->state & QStyle::State_Selected) {
- QRect textRect = subElementRect(QStyle::SE_ItemViewItemText, opt);
- p->fillRect(textRect, vopt->palette.brush(cg, QPalette::Highlight));
- }
- }
- }
- break;
- case PE_PanelScrollAreaCorner: {
- const QBrush brush(opt->palette.brush(QPalette::Window));
- p->fillRect(opt->rect, brush);
- } break;
- case PE_IndicatorArrowUp:
- case PE_IndicatorArrowDown:
- case PE_IndicatorArrowRight:
- case PE_IndicatorArrowLeft:
- {
- if (opt->rect.width() <= 1 || opt->rect.height() <= 1)
- break;
- QRect r = opt->rect;
- int size = qMin(r.height(), r.width());
- QPixmap pixmap;
- QString pixmapName = QStyleHelper::uniqueName(QLatin1String("$qt_ia-")
- % QLatin1String(metaObject()->className()), opt, QSize(size, size))
- % HexString<uint>(pe);
- if (!QPixmapCache::find(pixmapName, &pixmap)) {
- qreal pixelRatio = p->device()->devicePixelRatioF();
- int border = qRound(pixelRatio*(size/5));
- int sqsize = qRound(pixelRatio*(2*(size/2)));
- QImage image(sqsize, sqsize, QImage::Format_ARGB32_Premultiplied);
- image.fill(0);
- QPainter imagePainter(&image);
-
- QPolygon a;
- switch (pe) {
- case PE_IndicatorArrowUp:
- a.setPoints(3, border, sqsize/2, sqsize/2, border, sqsize - border, sqsize/2);
- break;
- case PE_IndicatorArrowDown:
- a.setPoints(3, border, sqsize/2, sqsize/2, sqsize - border, sqsize - border, sqsize/2);
- break;
- case PE_IndicatorArrowRight:
- a.setPoints(3, sqsize - border, sqsize/2, sqsize/2, border, sqsize/2, sqsize - border);
- break;
- case PE_IndicatorArrowLeft:
- a.setPoints(3, border, sqsize/2, sqsize/2, border, sqsize/2, sqsize - border);
- break;
- default:
- break;
- }
-
- int bsx = 0;
- int bsy = 0;
-
- if (opt->state & State_Sunken) {
- bsx = proxy()->pixelMetric(PM_ButtonShiftHorizontal, opt);
- bsy = proxy()->pixelMetric(PM_ButtonShiftVertical, opt);
- }
-
- QRect bounds = a.boundingRect();
- int sx = sqsize / 2 - bounds.center().x() - 1;
- int sy = sqsize / 2 - bounds.center().y() - 1;
- imagePainter.translate(sx + bsx, sy + bsy);
- imagePainter.setPen(opt->palette.buttonText().color());
- imagePainter.setBrush(opt->palette.buttonText());
-
- if (!(opt->state & State_Enabled)) {
- imagePainter.translate(1, 1);
- imagePainter.setBrush(opt->palette.light().color());
- imagePainter.setPen(opt->palette.light().color());
- imagePainter.drawPolygon(a);
- imagePainter.translate(-1, -1);
- imagePainter.setBrush(opt->palette.mid().color());
- imagePainter.setPen(opt->palette.mid().color());
- }
-
- imagePainter.drawPolygon(a);
- imagePainter.end();
- pixmap = QPixmap::fromImage(image);
- pixmap.setDevicePixelRatio(pixelRatio);
- QPixmapCache::insert(pixmapName, pixmap);
- }
- int xOffset = r.x() + (r.width() - size)/2;
- int yOffset = r.y() + (r.height() - size)/2;
- p->drawPixmap(xOffset, yOffset, pixmap);
- }
- break;
- default:
- break;
- }
-}
-
-static void drawArrow(const QStyle *style, const QStyleOptionToolButton *toolbutton,
- const QRect &rect, QPainter *painter)
-{
- QStyle::PrimitiveElement pe;
- switch (toolbutton->arrowType) {
- case Qt::LeftArrow:
- pe = QStyle::PE_IndicatorArrowLeft;
- break;
- case Qt::RightArrow:
- pe = QStyle::PE_IndicatorArrowRight;
- break;
- case Qt::UpArrow:
- pe = QStyle::PE_IndicatorArrowUp;
- break;
- case Qt::DownArrow:
- pe = QStyle::PE_IndicatorArrowDown;
- break;
- default:
- return;
- }
- QStyleOption arrowOpt = *toolbutton;
- arrowOpt.rect = rect;
- style->drawPrimitive(pe, &arrowOpt, painter);
-}
-
-static QSizeF viewItemTextLayout(QTextLayout &textLayout, int lineWidth, int maxHeight = -1, int *lastVisibleLine = nullptr)
-{
- if (lastVisibleLine)
- *lastVisibleLine = -1;
- qreal height = 0;
- qreal widthUsed = 0;
- textLayout.beginLayout();
- int i = 0;
- while (true) {
- QTextLine line = textLayout.createLine();
- if (!line.isValid())
- break;
- line.setLineWidth(lineWidth);
- line.setPosition(QPointF(0, height));
- height += line.height();
- widthUsed = qMax(widthUsed, line.naturalTextWidth());
- // we assume that the height of the next line is the same as the current one
- if (maxHeight > 0 && lastVisibleLine && height + line.height() > maxHeight) {
- const QTextLine nextLine = textLayout.createLine();
- *lastVisibleLine = nextLine.isValid() ? i : -1;
- break;
- }
- ++i;
- }
- textLayout.endLayout();
- return QSizeF(widthUsed, height);
-}
-
-QString QCommonStylePrivate::calculateElidedText(const QString &text, const QTextOption &textOption,
- const QFont &font, const QRect &textRect, const Qt::Alignment valign,
- Qt::TextElideMode textElideMode, int flags,
- bool lastVisibleLineShouldBeElided, QPointF *paintStartPosition) const
-{
- QTextLayout textLayout(text, font);
- textLayout.setTextOption(textOption);
-
- // In AlignVCenter mode when more than one line is displayed and the height only allows
- // some of the lines it makes no sense to display those. From a users perspective it makes
- // more sense to see the start of the text instead something inbetween.
- const bool vAlignmentOptimization = paintStartPosition && valign.testFlag(Qt::AlignVCenter);
-
- int lastVisibleLine = -1;
- viewItemTextLayout(textLayout, textRect.width(), vAlignmentOptimization ? textRect.height() : -1, &lastVisibleLine);
-
- const QRectF boundingRect = textLayout.boundingRect();
- // don't care about LTR/RTL here, only need the height
- const QRect layoutRect = QStyle::alignedRect(Qt::LayoutDirectionAuto, valign,
- boundingRect.size().toSize(), textRect);
-
- if (paintStartPosition)
- *paintStartPosition = QPointF(textRect.x(), layoutRect.top());
-
- QString ret;
- qreal height = 0;
- const int lineCount = textLayout.lineCount();
- for (int i = 0; i < lineCount; ++i) {
- const QTextLine line = textLayout.lineAt(i);
- height += line.height();
-
- // above visible rect
- if (height + layoutRect.top() <= textRect.top()) {
- if (paintStartPosition)
- paintStartPosition->ry() += line.height();
- continue;
- }
-
- const int start = line.textStart();
- const int length = line.textLength();
- const bool drawElided = line.naturalTextWidth() > textRect.width();
- bool elideLastVisibleLine = lastVisibleLine == i;
- if (!drawElided && i + 1 < lineCount && lastVisibleLineShouldBeElided) {
- const QTextLine nextLine = textLayout.lineAt(i + 1);
- const int nextHeight = height + nextLine.height() / 2;
- // elide when less than the next half line is visible
- if (nextHeight + layoutRect.top() > textRect.height() + textRect.top())
- elideLastVisibleLine = true;
- }
-
- QString text = textLayout.text().mid(start, length);
- if (drawElided || elideLastVisibleLine) {
- if (elideLastVisibleLine) {
- if (text.endsWith(QChar::LineSeparator))
- text.chop(1);
- text += QChar(0x2026);
- }
- const QStackTextEngine engine(text, font);
- ret += engine.elidedText(textElideMode, textRect.width(), flags);
-
- // no newline for the last line (last visible or real)
- // sometimes drawElided is true but no eliding is done so the text ends
- // with QChar::LineSeparator - don't add another one. This happened with
- // arabic text in the testcase for QTBUG-72805
- if (i < lineCount - 1 &&
- !ret.endsWith(QChar::LineSeparator))
- ret += QChar::LineSeparator;
- } else {
- ret += text;
- }
-
- // below visible text, can stop
- if ((height + layoutRect.top() >= textRect.bottom()) ||
- (lastVisibleLine >= 0 && lastVisibleLine == i))
- break;
- }
- return ret;
-}
-
-QSize QCommonStylePrivate::viewItemSize(const QStyleOptionViewItem *option, int role) const
-{
- switch (role) {
- case Qt::CheckStateRole:
- if (option->features & QStyleOptionViewItem::HasCheckIndicator)
- return QSize(proxyStyle->pixelMetric(QStyle::PM_IndicatorWidth, option),
- proxyStyle->pixelMetric(QStyle::PM_IndicatorHeight, option));
- break;
- case Qt::DisplayRole:
- if (option->features & QStyleOptionViewItem::HasDisplay) {
- QTextOption textOption;
- textOption.setWrapMode(QTextOption::WordWrap);
- QTextLayout textLayout(option->text, option->font);
- textLayout.setTextOption(textOption);
- const bool wrapText = option->features & QStyleOptionViewItem::WrapText;
- const int textMargin = proxyStyle->pixelMetric(QStyle::PM_FocusFrameHMargin, option) + 1;
- QRect bounds = option->rect;
- switch (option->decorationPosition) {
- case QStyleOptionViewItem::Left:
- case QStyleOptionViewItem::Right: {
- if (wrapText && bounds.isValid()) {
- int width = bounds.width() - 2 * textMargin;
- if (option->features & QStyleOptionViewItem::HasDecoration)
- width -= option->decorationSize.width() + 2 * textMargin;
- bounds.setWidth(width);
- } else
- bounds.setWidth(QFIXED_MAX);
- break;
- }
- case QStyleOptionViewItem::Top:
- case QStyleOptionViewItem::Bottom:
- if (wrapText)
- bounds.setWidth(bounds.isValid() ? bounds.width() - 2 * textMargin : option->decorationSize.width());
- else
- bounds.setWidth(QFIXED_MAX);
- break;
- default:
- break;
- }
-
- if (wrapText && option->features & QStyleOptionViewItem::HasCheckIndicator)
- bounds.setWidth(bounds.width() - proxyStyle->pixelMetric(QStyle::PM_IndicatorWidth) - 2 * textMargin);
-
- const int lineWidth = bounds.width();
- const QSizeF size = viewItemTextLayout(textLayout, lineWidth);
- return QSize(qCeil(size.width()) + 2 * textMargin, qCeil(size.height()));
- }
- break;
- case Qt::DecorationRole:
- if (option->features & QStyleOptionViewItem::HasDecoration) {
- return option->decorationSize;
- }
- break;
- default:
- break;
- }
-
- return QSize(0, 0);
-}
-
-void QCommonStylePrivate::viewItemDrawText(QPainter *p, const QStyleOptionViewItem *option, const QRect &rect) const
-{
- const int textMargin = proxyStyle->pixelMetric(QStyle::PM_FocusFrameHMargin, nullptr) + 1;
-
- QRect textRect = rect.adjusted(textMargin, 0, -textMargin, 0); // remove width padding
- const bool wrapText = option->features & QStyleOptionViewItem::WrapText;
- QTextOption textOption;
- textOption.setWrapMode(wrapText ? QTextOption::WordWrap : QTextOption::ManualWrap);
- textOption.setTextDirection(option->direction);
- textOption.setAlignment(QStyle::visualAlignment(option->direction, option->displayAlignment));
-
- QPointF paintPosition;
- const QString newText = calculateElidedText(option->text, textOption,
- option->font, textRect, option->displayAlignment,
- option->textElideMode, 0,
- true, &paintPosition);
-
- QTextLayout textLayout(newText, option->font);
- textLayout.setTextOption(textOption);
- viewItemTextLayout(textLayout, textRect.width());
- textLayout.draw(p, paintPosition);
-}
-
-/*! \internal
- compute the position for the different component of an item (pixmap, text, checkbox)
-
- Set sizehint to false to layout the elements inside opt->rect. Set sizehint to true to ignore
- opt->rect and return rectangles in infinite space
-
- Code duplicated in QItemDelegate::doLayout
-*/
-void QCommonStylePrivate::viewItemLayout(const QStyleOptionViewItem *opt, QRect *checkRect,
- QRect *pixmapRect, QRect *textRect, bool sizehint) const
-{
- Q_ASSERT(checkRect && pixmapRect && textRect);
- *pixmapRect = QRect(QPoint(0, 0), viewItemSize(opt, Qt::DecorationRole));
- *textRect = QRect(QPoint(0, 0), viewItemSize(opt, Qt::DisplayRole));
- *checkRect = QRect(QPoint(0, 0), viewItemSize(opt, Qt::CheckStateRole));
-
- const bool hasCheck = checkRect->isValid();
- const bool hasPixmap = pixmapRect->isValid();
- const bool hasText = textRect->isValid();
- const bool hasMargin = (hasText | hasPixmap | hasCheck);
- const int frameHMargin = hasMargin ?
- proxyStyle->pixelMetric(QStyle::PM_FocusFrameHMargin, opt) + 1 : 0;
- const int textMargin = hasText ? frameHMargin : 0;
- const int pixmapMargin = hasPixmap ? frameHMargin : 0;
- const int checkMargin = hasCheck ? frameHMargin : 0;
- const int x = opt->rect.left();
- const int y = opt->rect.top();
- int w, h;
-
- if (textRect->height() == 0 && (!hasPixmap || !sizehint)) {
- //if there is no text, we still want to have a decent height for the item sizeHint and the editor size
- textRect->setHeight(opt->fontMetrics.height());
- }
-
- QSize pm(0, 0);
- if (hasPixmap) {
- pm = pixmapRect->size();
- pm.rwidth() += 2 * pixmapMargin;
- }
- if (sizehint) {
- h = qMax(checkRect->height(), qMax(textRect->height(), pm.height()));
- if (opt->decorationPosition == QStyleOptionViewItem::Left
- || opt->decorationPosition == QStyleOptionViewItem::Right) {
- w = textRect->width() + pm.width();
- } else {
- w = qMax(textRect->width(), pm.width());
- }
- } else {
- w = opt->rect.width();
- h = opt->rect.height();
- }
-
- int cw = 0;
- QRect check;
- if (hasCheck) {
- cw = checkRect->width() + 2 * checkMargin;
- if (sizehint) w += cw;
- if (opt->direction == Qt::RightToLeft) {
- check.setRect(x + w - cw, y, cw, h);
- } else {
- check.setRect(x, y, cw, h);
- }
- }
-
- QRect display;
- QRect decoration;
- switch (opt->decorationPosition) {
- case QStyleOptionViewItem::Top: {
- if (hasPixmap)
- pm.setHeight(pm.height() + pixmapMargin); // add space
- h = sizehint ? textRect->height() : h - pm.height();
-
- if (opt->direction == Qt::RightToLeft) {
- decoration.setRect(x, y, w - cw, pm.height());
- display.setRect(x, y + pm.height(), w - cw, h);
- } else {
- decoration.setRect(x + cw, y, w - cw, pm.height());
- display.setRect(x + cw, y + pm.height(), w - cw, h);
- }
- break; }
- case QStyleOptionViewItem::Bottom: {
- if (hasText)
- textRect->setHeight(textRect->height() + textMargin); // add space
- h = sizehint ? textRect->height() + pm.height() : h;
-
- if (opt->direction == Qt::RightToLeft) {
- display.setRect(x, y, w - cw, textRect->height());
- decoration.setRect(x, y + textRect->height(), w - cw, h - textRect->height());
- } else {
- display.setRect(x + cw, y, w - cw, textRect->height());
- decoration.setRect(x + cw, y + textRect->height(), w - cw, h - textRect->height());
- }
- break; }
- case QStyleOptionViewItem::Left: {
- if (opt->direction == Qt::LeftToRight) {
- decoration.setRect(x + cw, y, pm.width(), h);
- display.setRect(decoration.right() + 1, y, w - pm.width() - cw, h);
- } else {
- display.setRect(x, y, w - pm.width() - cw, h);
- decoration.setRect(display.right() + 1, y, pm.width(), h);
- }
- break; }
- case QStyleOptionViewItem::Right: {
- if (opt->direction == Qt::LeftToRight) {
- display.setRect(x + cw, y, w - pm.width() - cw, h);
- decoration.setRect(display.right() + 1, y, pm.width(), h);
- } else {
- decoration.setRect(x, y, pm.width(), h);
- display.setRect(decoration.right() + 1, y, w - pm.width() - cw, h);
- }
- break; }
- default:
- qWarning("doLayout: decoration position is invalid");
- decoration = *pixmapRect;
- break;
- }
-
- if (!sizehint) { // we only need to do the internal layout if we are going to paint
- *checkRect = QStyle::alignedRect(opt->direction, Qt::AlignCenter,
- checkRect->size(), check);
- *pixmapRect = QStyle::alignedRect(opt->direction, opt->decorationAlignment,
- pixmapRect->size(), decoration);
- // the text takes up all available space, unless the decoration is not shown as selected
- if (opt->showDecorationSelected)
- *textRect = display;
- else
- *textRect = QStyle::alignedRect(opt->direction, opt->displayAlignment,
- textRect->size().boundedTo(display.size()), display);
- } else {
- *checkRect = check;
- *pixmapRect = decoration;
- *textRect = display;
- }
-}
-
-QString QCommonStylePrivate::toolButtonElideText(const QStyleOptionToolButton *option,
- const QRect &textRect, int flags) const
-{
- if (option->fontMetrics.horizontalAdvance(option->text) <= textRect.width())
- return option->text;
-
- QString text = option->text;
- text.replace(QLatin1Char('\n'), QChar::LineSeparator);
- QTextOption textOption;
- textOption.setWrapMode(QTextOption::ManualWrap);
- textOption.setTextDirection(option->direction);
-
- return calculateElidedText(text, textOption,
- option->font, textRect, Qt::AlignTop,
- Qt::ElideMiddle, flags,
- false, nullptr);
-}
-
-/*! \internal
- Compute the textRect and the pixmapRect from the opt rect
-
- Uses the same computation than in QTabBar::tabSizeHint
- */
-void QCommonStylePrivate::tabLayout(const QStyleOptionTab *opt, QRect *textRect, QRect *iconRect) const
-{
- Q_ASSERT(textRect);
- Q_ASSERT(iconRect);
- QRect tr = opt->rect;
- bool verticalTabs = opt->shape == QStyleOptionTab::RoundedEast
- || opt->shape == QStyleOptionTab::RoundedWest
- || opt->shape == QStyleOptionTab::TriangularEast
- || opt->shape == QStyleOptionTab::TriangularWest;
- if (verticalTabs)
- tr.setRect(0, 0, tr.height(), tr.width()); // 0, 0 as we will have a translate transform
-
- int verticalShift = proxyStyle->pixelMetric(QStyle::PM_TabBarTabShiftVertical, opt);
- int horizontalShift = proxyStyle->pixelMetric(QStyle::PM_TabBarTabShiftHorizontal, opt);
- int hpadding = proxyStyle->pixelMetric(QStyle::PM_TabBarTabHSpace, opt) / 2;
- int vpadding = proxyStyle->pixelMetric(QStyle::PM_TabBarTabVSpace, opt) / 2;
- if (opt->shape == QStyleOptionTab::RoundedSouth || opt->shape == QStyleOptionTab::TriangularSouth)
- verticalShift = -verticalShift;
- tr.adjust(hpadding, verticalShift - vpadding, horizontalShift - hpadding, vpadding);
- bool selected = opt->state & QStyle::State_Selected;
- if (selected) {
- tr.setTop(tr.top() - verticalShift);
- tr.setRight(tr.right() - horizontalShift);
- }
-
- // left widget
- if (!opt->leftButtonSize.isEmpty()) {
- tr.setLeft(tr.left() + 4 +
- (verticalTabs ? opt->leftButtonSize.height() : opt->leftButtonSize.width()));
- }
- // right widget
- if (!opt->rightButtonSize.isEmpty()) {
- tr.setRight(tr.right() - 4 -
- (verticalTabs ? opt->rightButtonSize.height() : opt->rightButtonSize.width()));
- }
-
- // icon
- if (!opt->icon.isNull()) {
- QSize iconSize = opt->iconSize;
- if (!iconSize.isValid()) {
- int iconExtent = proxyStyle->pixelMetric(QStyle::PM_SmallIconSize);
- iconSize = QSize(iconExtent, iconExtent);
- }
- QSize tabIconSize = opt->icon.actualSize(iconSize,
- (opt->state & QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled,
- (opt->state & QStyle::State_Selected) ? QIcon::On : QIcon::Off);
- // High-dpi icons do not need adjustment; make sure tabIconSize is not larger than iconSize
- tabIconSize = QSize(qMin(tabIconSize.width(), iconSize.width()), qMin(tabIconSize.height(), iconSize.height()));
-
- const int offsetX = (iconSize.width() - tabIconSize.width()) / 2;
- *iconRect = QRect(tr.left() + offsetX, tr.center().y() - tabIconSize.height() / 2,
- tabIconSize.width(), tabIconSize.height());
- if (!verticalTabs)
- *iconRect = QStyle::visualRect(opt->direction, opt->rect, *iconRect);
- tr.setLeft(tr.left() + tabIconSize.width() + 4);
- }
-
- if (!verticalTabs)
- tr = QStyle::visualRect(opt->direction, opt->rect, tr);
-
- *textRect = tr;
-}
-
-/*!
- \reimp
-*/
-void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt, QPainter *p) const
-{
- Q_D(const QCommonStyle);
-
- // TODO: Set opt->window manually for now before calling any of the drawing functions. opt->window is
- // pulled of the widget is QStyle. But now that we have no widget, we need some other
- // solution.
- Q_ASSERT(opt->window);
-
- switch (element) {
-
- case CE_PushButton:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- proxy()->drawControl(CE_PushButtonBevel, btn, p);
- QStyleOptionButton subopt = *btn;
- subopt.rect = subElementRect(SE_PushButtonContents, btn);
- proxy()->drawControl(CE_PushButtonLabel, &subopt, p);
- }
- break;
- case CE_PushButtonBevel:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- QRect br = btn->rect;
- int dbi = proxy()->pixelMetric(PM_ButtonDefaultIndicator, btn);
- if (btn->features & QStyleOptionButton::DefaultButton)
- proxy()->drawPrimitive(PE_FrameDefaultButton, opt, p);
- if (btn->features & QStyleOptionButton::AutoDefaultButton)
- br.setCoords(br.left() + dbi, br.top() + dbi, br.right() - dbi, br.bottom() - dbi);
- if (!(btn->features & (QStyleOptionButton::Flat | QStyleOptionButton::CommandLinkButton))
- || btn->state & (State_Sunken | State_On)
- || (btn->features & QStyleOptionButton::CommandLinkButton && btn->state & State_MouseOver)) {
- QStyleOptionButton tmpBtn = *btn;
- tmpBtn.rect = br;
- proxy()->drawPrimitive(PE_PanelButtonCommand, &tmpBtn, p);
- }
- if (btn->features & QStyleOptionButton::HasMenu) {
- int mbi = proxy()->pixelMetric(PM_MenuButtonIndicator, btn);
- QRect ir = btn->rect;
- QStyleOptionButton newBtn = *btn;
- newBtn.rect = QRect(ir.right() - mbi + 2, ir.height()/2 - mbi/2 + 3, mbi - 6, mbi - 6);
- proxy()->drawPrimitive(PE_IndicatorArrowDown, &newBtn, p);
- }
- if (btn->state & State_HasFocus) {
- QStyleOptionFocusRect fropt;
- fropt.QStyleOption::operator=(*btn);
- fropt.rect = subElementRect(SE_PushButtonFocusRect, btn);
- proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, p);
- }
- }
- break;
- case CE_PushButtonLabel:
- if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- QRect textRect = button->rect;
- uint tf = Qt::AlignVCenter | Qt::TextShowMnemonic;
- if (!proxy()->styleHint(SH_UnderlineShortcut, button))
- tf |= Qt::TextHideMnemonic;
-
- if (!button->icon.isNull()) {
- //Center both icon and text
- QIcon::Mode mode = button->state & State_Enabled ? QIcon::Normal : QIcon::Disabled;
- if (mode == QIcon::Normal && button->state & State_HasFocus)
- mode = QIcon::Active;
- QIcon::State state = QIcon::Off;
- if (button->state & State_On)
- state = QIcon::On;
-
- QPixmap pixmap = button->icon.pixmap(button->iconSize, dpr(opt->window), mode, state);
- int pixmapWidth = pixmap.width() / pixmap.devicePixelRatio();
- int pixmapHeight = pixmap.height() / pixmap.devicePixelRatio();
- int labelWidth = pixmapWidth;
- int labelHeight = pixmapHeight;
- int iconSpacing = 4;//### 4 is currently hardcoded in QPushButton::sizeHint()
- if (!button->text.isEmpty()) {
- int textWidth = button->fontMetrics.boundingRect(opt->rect, tf, button->text).width();
- labelWidth += (textWidth + iconSpacing);
- }
-
- QRect iconRect = QRect(textRect.x() + (textRect.width() - labelWidth) / 2,
- textRect.y() + (textRect.height() - labelHeight) / 2,
- pixmapWidth, pixmapHeight);
-
- iconRect = visualRect(button->direction, textRect, iconRect);
-
- if (button->direction == Qt::RightToLeft) {
- tf |= Qt::AlignRight;
- textRect.setRight(iconRect.left() - iconSpacing);
- } else {
- tf |= Qt::AlignLeft; //left align, we adjust the text-rect instead
- textRect.setLeft(iconRect.left() + iconRect.width() + iconSpacing);
- }
-
- if (button->state & (State_On | State_Sunken))
- iconRect.translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal, opt),
- proxy()->pixelMetric(PM_ButtonShiftVertical, opt));
- p->drawPixmap(iconRect, pixmap);
- } else {
- tf |= Qt::AlignHCenter;
- }
- if (button->state & (State_On | State_Sunken))
- textRect.translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal, opt),
- proxy()->pixelMetric(PM_ButtonShiftVertical, opt));
-
- if (button->features & QStyleOptionButton::HasMenu) {
- int indicatorSize = proxy()->pixelMetric(PM_MenuButtonIndicator, button);
- if (button->direction == Qt::LeftToRight)
- textRect = textRect.adjusted(0, 0, -indicatorSize, 0);
- else
- textRect = textRect.adjusted(indicatorSize, 0, 0, 0);
- }
- proxy()->drawItemText(p, textRect, tf, button->palette, (button->state & State_Enabled),
- button->text, QPalette::ButtonText);
- }
- break;
- case CE_RadioButton:
- case CE_CheckBox:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- bool isRadio = (element == CE_RadioButton);
- QStyleOptionButton subopt = *btn;
- subopt.rect = subElementRect(isRadio ? SE_RadioButtonIndicator
- : SE_CheckBoxIndicator, btn);
- proxy()->drawPrimitive(isRadio ? PE_IndicatorRadioButton : PE_IndicatorCheckBox,
- &subopt, p);
- subopt.rect = subElementRect(isRadio ? SE_RadioButtonContents
- : SE_CheckBoxContents, btn);
- proxy()->drawControl(isRadio ? CE_RadioButtonLabel : CE_CheckBoxLabel, &subopt, p);
- if (btn->state & State_HasFocus) {
- QStyleOptionFocusRect fropt;
- fropt.QStyleOption::operator=(*btn);
- fropt.rect = subElementRect(isRadio ? SE_RadioButtonFocusRect
- : SE_CheckBoxFocusRect, btn);
- proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, p);
- }
- }
- break;
- case CE_RadioButtonLabel:
- case CE_CheckBoxLabel:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- uint alignment = visualAlignment(btn->direction, Qt::AlignLeft | Qt::AlignVCenter);
-
- if (!proxy()->styleHint(SH_UnderlineShortcut, btn))
- alignment |= Qt::TextHideMnemonic;
- QPixmap pix;
- QRect textRect = btn->rect;
- if (!btn->icon.isNull()) {
- pix = btn->icon.pixmap(btn->iconSize, dpr(opt->window), btn->state & State_Enabled ? QIcon::Normal : QIcon::Disabled);
- proxy()->drawItemPixmap(p, btn->rect, alignment, pix);
- if (btn->direction == Qt::RightToLeft)
- textRect.setRight(textRect.right() - btn->iconSize.width() - 4);
- else
- textRect.setLeft(textRect.left() + btn->iconSize.width() + 4);
- }
- if (!btn->text.isEmpty()){
- proxy()->drawItemText(p, textRect, alignment | Qt::TextShowMnemonic,
- btn->palette, btn->state & State_Enabled, btn->text, QPalette::WindowText);
- }
- }
- break;
- case CE_MenuScroller: {
- QStyleOption arrowOpt = *opt;
- arrowOpt.state |= State_Enabled;
- proxy()->drawPrimitive(((opt->state & State_DownArrow) ? PE_IndicatorArrowDown : PE_IndicatorArrowUp), &arrowOpt, p);
- break; }
- case CE_MenuTearoff:
- if (opt->state & State_Selected)
- p->fillRect(opt->rect, opt->palette.brush(QPalette::Highlight));
- else
- p->fillRect(opt->rect, opt->palette.brush(QPalette::Button));
- p->setPen(QPen(opt->palette.dark().color(), 1, Qt::DashLine));
- p->drawLine(opt->rect.x() + 2, opt->rect.y() + opt->rect.height() / 2 - 1,
- opt->rect.x() + opt->rect.width() - 4,
- opt->rect.y() + opt->rect.height() / 2 - 1);
- p->setPen(QPen(opt->palette.light().color(), 1, Qt::DashLine));
- p->drawLine(opt->rect.x() + 2, opt->rect.y() + opt->rect.height() / 2,
- opt->rect.x() + opt->rect.width() - 4, opt->rect.y() + opt->rect.height() / 2);
- break;
- case CE_MenuBarItem:
- if (const QStyleOptionMenuItem *mbi = qstyleoption_cast<const QStyleOptionMenuItem *>(opt)) {
- uint alignment = Qt::AlignCenter | Qt::TextShowMnemonic | Qt::TextDontClip
- | Qt::TextSingleLine;
- if (!proxy()->styleHint(SH_UnderlineShortcut, mbi))
- alignment |= Qt::TextHideMnemonic;
- int iconExtent = proxy()->pixelMetric(PM_SmallIconSize);
- QPixmap pix = mbi->icon.pixmap(QSize(iconExtent, iconExtent), dpr(opt->window),
- mbi->state.testFlag(State_Enabled) ? QIcon::Normal : QIcon::Disabled);
- if (!pix.isNull())
- proxy()->drawItemPixmap(p,mbi->rect, alignment, pix);
- else
- proxy()->drawItemText(p, mbi->rect, alignment, mbi->palette, mbi->state & State_Enabled,
- mbi->text, QPalette::ButtonText);
- }
- break;
- case CE_MenuBarEmptyArea:
- break;
- case CE_ProgressBar:
- if (const QStyleOptionProgressBar *pb
- = qstyleoption_cast<const QStyleOptionProgressBar *>(opt)) {
- QStyleOptionProgressBar subopt = *pb;
- subopt.rect = subElementRect(SE_ProgressBarGroove, pb);
- proxy()->drawControl(CE_ProgressBarGroove, &subopt, p);
- subopt.rect = subElementRect(SE_ProgressBarContents, pb);
- proxy()->drawControl(CE_ProgressBarContents, &subopt, p);
- if (pb->textVisible) {
- subopt.rect = subElementRect(SE_ProgressBarLabel, pb);
- proxy()->drawControl(CE_ProgressBarLabel, &subopt, p);
- }
- }
- break;
- case CE_ProgressBarGroove:
- if (opt->rect.isValid())
- qDrawShadePanel(p, opt->rect, opt->palette, true, 1,
- &opt->palette.brush(QPalette::Window));
- break;
- case CE_ProgressBarLabel:
- if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(opt)) {
- QPalette::ColorRole textRole = QPalette::NoRole;
- if ((pb->textAlignment & Qt::AlignCenter) && pb->textVisible
- && ((qint64(pb->progress) - qint64(pb->minimum)) * 2 >= (qint64(pb->maximum) - qint64(pb->minimum)))) {
- textRole = QPalette::HighlightedText;
- //Draw text shadow, This will increase readability when the background of same color
- QRect shadowRect(pb->rect);
- shadowRect.translate(1,1);
- QColor shadowColor = (pb->palette.color(textRole).value() <= 128)
- ? QColor(255,255,255,160) : QColor(0,0,0,160);
- QPalette shadowPalette = pb->palette;
- shadowPalette.setColor(textRole, shadowColor);
- proxy()->drawItemText(p, shadowRect, Qt::AlignCenter | Qt::TextSingleLine, shadowPalette,
- pb->state & State_Enabled, pb->text, textRole);
- }
- proxy()->drawItemText(p, pb->rect, Qt::AlignCenter | Qt::TextSingleLine, pb->palette,
- pb->state & State_Enabled, pb->text, textRole);
- }
- break;
- case CE_ProgressBarContents:
- if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(opt)) {
-
- QRect rect = pb->rect;
- const bool inverted = pb->invertedAppearance;
- qint64 minimum = qint64(pb->minimum);
- qint64 maximum = qint64(pb->maximum);
- qint64 progress = qint64(pb->progress);
-
- QPalette pal2 = pb->palette;
- // Correct the highlight color if it is the same as the background
- if (pal2.highlight() == pal2.window())
- pal2.setColor(QPalette::Highlight, pb->palette.color(QPalette::Active,
- QPalette::Highlight));
- bool reverse = pb->direction == Qt::RightToLeft;
- if (inverted)
- reverse = !reverse;
- int w = rect.width();
- if (pb->minimum == 0 && pb->maximum == 0) {
- // draw busy indicator
- int x = (progress - minimum) % (w * 2);
- if (x > w)
- x = 2 * w - x;
- x = reverse ? rect.right() - x : x + rect.x();
- p->setPen(QPen(pal2.highlight().color(), 4));
- p->drawLine(x, rect.y(), x, rect.height());
- } else {
- const int unit_width = proxy()->pixelMetric(PM_ProgressBarChunkWidth, pb);
- if (!unit_width)
- return;
-
- int u;
- if (unit_width > 1)
- u = ((rect.width() + unit_width) / unit_width);
- else
- u = w / unit_width;
- qint64 p_v = progress - minimum;
- qint64 t_s = (maximum - minimum) ? (maximum - minimum) : qint64(1);
-
- if (u > 0 && p_v >= INT_MAX / u && t_s >= u) {
- // scale down to something usable.
- p_v /= u;
- t_s /= u;
- }
-
- // nu < tnu, if last chunk is only a partial chunk
- int tnu, nu;
- tnu = nu = p_v * u / t_s;
-
- if (nu * unit_width > w)
- --nu;
-
- // Draw nu units out of a possible u of unit_width
- // width, each a rectangle bordered by background
- // color, all in a sunken panel with a percentage text
- // display at the end.
- int x = 0;
- int x0 = reverse ? rect.right() - ((unit_width > 1) ? unit_width : 0)
- : rect.x();
-
- QStyleOptionProgressBar pbBits = *pb;
- pbBits.rect = rect;
- pbBits.palette = pal2;
- int myY = pbBits.rect.y();
- int myHeight = pbBits.rect.height();
- pbBits.state = State_Horizontal;
- for (int i = 0; i < nu; ++i) {
- pbBits.rect.setRect(x0 + x, myY, unit_width, myHeight);
- proxy()->drawPrimitive(PE_IndicatorProgressChunk, &pbBits, p);
- x += reverse ? -unit_width : unit_width;
- }
-
- // Draw the last partial chunk to fill up the
- // progress bar entirely
- if (nu < tnu) {
- int pixels_left = w - (nu * unit_width);
- int offset = reverse ? x0 + x + unit_width-pixels_left : x0 + x;
- pbBits.rect.setRect(offset, myY, pixels_left, myHeight);
- proxy()->drawPrimitive(PE_IndicatorProgressChunk, &pbBits, p);
- }
- }
- }
- break;
- case CE_HeaderLabel:
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(opt)) {
- QRect rect = header->rect;
- if (!header->icon.isNull()) {
- int iconExtent = proxy()->pixelMetric(PM_SmallIconSize);
- QPixmap pixmap
- = header->icon.pixmap(QSize(iconExtent, iconExtent), dpr(opt->window),
- header->state.testFlag(State_Enabled) ? QIcon::Normal : QIcon::Disabled);
- int pixw = pixmap.width() / pixmap.devicePixelRatio();
-
- QRect aligned = alignedRect(header->direction, QFlag(header->iconAlignment), pixmap.size() / pixmap.devicePixelRatio(), rect);
- QRect inter = aligned.intersected(rect);
- p->drawPixmap(inter.x(), inter.y(), pixmap,
- inter.x() - aligned.x(), inter.y() - aligned.y(),
- aligned.width() * pixmap.devicePixelRatio(),
- pixmap.height() * pixmap.devicePixelRatio());
-
- const int margin = proxy()->pixelMetric(QStyle::PM_HeaderMargin, opt);
- if (header->direction == Qt::LeftToRight)
- rect.setLeft(rect.left() + pixw + margin);
- else
- rect.setRight(rect.right() - pixw - margin);
- }
- if (header->state & QStyle::State_On) {
- QFont fnt = p->font();
- fnt.setBold(true);
- p->setFont(fnt);
- }
- proxy()->drawItemText(p, rect, header->textAlignment, header->palette,
- (header->state & State_Enabled), header->text, QPalette::ButtonText);
- }
- break;
- case CE_ToolButtonLabel:
- if (const QStyleOptionToolButton *toolbutton
- = qstyleoption_cast<const QStyleOptionToolButton *>(opt)) {
- QRect rect = toolbutton->rect;
- int shiftX = 0;
- int shiftY = 0;
- if (toolbutton->state & (State_Sunken | State_On)) {
- shiftX = proxy()->pixelMetric(PM_ButtonShiftHorizontal, toolbutton);
- shiftY = proxy()->pixelMetric(PM_ButtonShiftVertical, toolbutton);
- }
- // Arrow type always overrules and is always shown
- bool hasArrow = toolbutton->features & QStyleOptionToolButton::Arrow;
- if (((!hasArrow && toolbutton->icon.isNull()) && !toolbutton->text.isEmpty())
- || toolbutton->toolButtonStyle == Qt::ToolButtonTextOnly) {
- int alignment = Qt::AlignCenter | Qt::TextShowMnemonic;
- if (!proxy()->styleHint(SH_UnderlineShortcut, opt))
- alignment |= Qt::TextHideMnemonic;
- rect.translate(shiftX, shiftY);
- p->setFont(toolbutton->font);
- proxy()->drawItemText(p, rect, alignment, toolbutton->palette,
- opt->state & State_Enabled, toolbutton->text,
- QPalette::ButtonText);
- } else {
- QPixmap pm;
- QSize pmSize = toolbutton->iconSize;
- if (!toolbutton->icon.isNull()) {
- QIcon::State state = toolbutton->state & State_On ? QIcon::On : QIcon::Off;
- QIcon::Mode mode;
- if (!(toolbutton->state & State_Enabled))
- mode = QIcon::Disabled;
- else if ((opt->state & State_MouseOver) && (opt->state & State_AutoRaise))
- mode = QIcon::Active;
- else
- mode = QIcon::Normal;
- pm = toolbutton->icon.pixmap(toolbutton->rect.size().boundedTo(toolbutton->iconSize),
- dpr(opt->window), mode, state);
- pmSize = pm.size() / pm.devicePixelRatio();
- }
-
- if (toolbutton->toolButtonStyle != Qt::ToolButtonIconOnly) {
- p->setFont(toolbutton->font);
- QRect pr = rect,
- tr = rect;
- int alignment = Qt::TextShowMnemonic;
- if (!proxy()->styleHint(SH_UnderlineShortcut, opt))
- alignment |= Qt::TextHideMnemonic;
-
- if (toolbutton->toolButtonStyle == Qt::ToolButtonTextUnderIcon) {
- pr.setHeight(pmSize.height() + 4); //### 4 is currently hardcoded in QToolButton::sizeHint()
- tr.adjust(0, pr.height() - 1, 0, -1);
- pr.translate(shiftX, shiftY);
- if (!hasArrow) {
- proxy()->drawItemPixmap(p, pr, Qt::AlignCenter, pm);
- } else {
- drawArrow(proxy(), toolbutton, pr, p);
- }
- alignment |= Qt::AlignCenter;
- } else {
- pr.setWidth(pmSize.width() + 4); //### 4 is currently hardcoded in QToolButton::sizeHint()
- tr.adjust(pr.width(), 0, 0, 0);
- pr.translate(shiftX, shiftY);
- if (!hasArrow) {
- proxy()->drawItemPixmap(p, QStyle::visualRect(opt->direction, rect, pr), Qt::AlignCenter, pm);
- } else {
- drawArrow(proxy(), toolbutton, pr, p);
- }
- alignment |= Qt::AlignLeft | Qt::AlignVCenter;
- }
- tr.translate(shiftX, shiftY);
- const QString text = d->toolButtonElideText(toolbutton, tr, alignment);
- proxy()->drawItemText(p, QStyle::visualRect(opt->direction, rect, tr), alignment, toolbutton->palette,
- toolbutton->state & State_Enabled, text,
- QPalette::ButtonText);
- } else {
- rect.translate(shiftX, shiftY);
- if (hasArrow) {
- drawArrow(proxy(), toolbutton, rect, p);
- } else {
- proxy()->drawItemPixmap(p, rect, Qt::AlignCenter, pm);
- }
- }
- }
- }
- break;
- case CE_ToolBoxTab:
- if (const QStyleOptionToolBox *tb = qstyleoption_cast<const QStyleOptionToolBox *>(opt)) {
- proxy()->drawControl(CE_ToolBoxTabShape, tb, p);
- proxy()->drawControl(CE_ToolBoxTabLabel, tb, p);
- }
- break;
- case CE_ToolBoxTabShape:
- if (const QStyleOptionToolBox *tb = qstyleoption_cast<const QStyleOptionToolBox *>(opt)) {
- p->setPen(tb->palette.mid().color().darker(150));
- int d = 20 + tb->rect.height() - 3;
- if (tb->direction != Qt::RightToLeft) {
- const QPoint points[] = {
- QPoint(-1, tb->rect.height() + 1),
- QPoint(-1, 1),
- QPoint(tb->rect.width() - d, 1),
- QPoint(tb->rect.width() - 20, tb->rect.height() - 2),
- QPoint(tb->rect.width() - 1, tb->rect.height() - 2),
- QPoint(tb->rect.width() - 1, tb->rect.height() + 1),
- QPoint(-1, tb->rect.height() + 1),
- };
- p->drawPolygon(points, sizeof points / sizeof *points);
- } else {
- const QPoint points[] = {
- QPoint(tb->rect.width(), tb->rect.height() + 1),
- QPoint(tb->rect.width(), 1),
- QPoint(d - 1, 1),
- QPoint(20 - 1, tb->rect.height() - 2),
- QPoint(0, tb->rect.height() - 2),
- QPoint(0, tb->rect.height() + 1),
- QPoint(tb->rect.width(), tb->rect.height() + 1),
- };
- p->drawPolygon(points, sizeof points / sizeof *points);
- }
- p->setPen(tb->palette.light().color());
- if (tb->direction != Qt::RightToLeft) {
- p->drawLine(0, 2, tb->rect.width() - d, 2);
- p->drawLine(tb->rect.width() - d - 1, 2, tb->rect.width() - 21, tb->rect.height() - 1);
- p->drawLine(tb->rect.width() - 20, tb->rect.height() - 1,
- tb->rect.width(), tb->rect.height() - 1);
- } else {
- p->drawLine(tb->rect.width() - 1, 2, d - 1, 2);
- p->drawLine(d, 2, 20, tb->rect.height() - 1);
- p->drawLine(19, tb->rect.height() - 1,
- -1, tb->rect.height() - 1);
- }
- p->setBrush(Qt::NoBrush);
- }
- break;
- case CE_TabBarTab:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- proxy()->drawControl(CE_TabBarTabShape, tab, p);
- proxy()->drawControl(CE_TabBarTabLabel, tab, p);
- }
- break;
- case CE_TabBarTabShape:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- p->save();
-
- QRect rect(tab->rect);
- bool selected = tab->state & State_Selected;
- bool onlyOne = tab->position == QStyleOptionTab::OnlyOneTab;
- int tabOverlap = onlyOne ? 0 : proxy()->pixelMetric(PM_TabBarTabOverlap, opt);
-
- if (!selected) {
- switch (tab->shape) {
- case QStyleOptionTab::TriangularNorth:
- rect.adjust(0, 0, 0, -tabOverlap);
- if(!selected)
- rect.adjust(1, 1, -1, 0);
- break;
- case QStyleOptionTab::TriangularSouth:
- rect.adjust(0, tabOverlap, 0, 0);
- if(!selected)
- rect.adjust(1, 0, -1, -1);
- break;
- case QStyleOptionTab::TriangularEast:
- rect.adjust(tabOverlap, 0, 0, 0);
- if(!selected)
- rect.adjust(0, 1, -1, -1);
- break;
- case QStyleOptionTab::TriangularWest:
- rect.adjust(0, 0, -tabOverlap, 0);
- if(!selected)
- rect.adjust(1, 1, 0, -1);
- break;
- default:
- break;
- }
- }
-
- p->setPen(QPen(tab->palette.windowText(), 0));
- if (selected) {
- p->setBrush(tab->palette.base());
- } else {
- p->setBrush(tab->palette.window());
- }
-
- int y;
- int x;
- QPolygon a(10);
- switch (tab->shape) {
- case QStyleOptionTab::TriangularNorth:
- case QStyleOptionTab::TriangularSouth: {
- a.setPoint(0, 0, -1);
- a.setPoint(1, 0, 0);
- y = rect.height() - 2;
- x = y / 3;
- a.setPoint(2, x++, y - 1);
- ++x;
- a.setPoint(3, x++, y++);
- a.setPoint(4, x, y);
-
- int i;
- int right = rect.width() - 1;
- for (i = 0; i < 5; ++i)
- a.setPoint(9 - i, right - a.point(i).x(), a.point(i).y());
- if (tab->shape == QStyleOptionTab::TriangularNorth)
- for (i = 0; i < 10; ++i)
- a.setPoint(i, a.point(i).x(), rect.height() - 1 - a.point(i).y());
-
- a.translate(rect.left(), rect.top());
- p->setRenderHint(QPainter::Antialiasing);
- p->translate(0, 0.5);
-
- QPainterPath path;
- path.addPolygon(a);
- p->drawPath(path);
- break; }
- case QStyleOptionTab::TriangularEast:
- case QStyleOptionTab::TriangularWest: {
- a.setPoint(0, -1, 0);
- a.setPoint(1, 0, 0);
- x = rect.width() - 2;
- y = x / 3;
- a.setPoint(2, x - 1, y++);
- ++y;
- a.setPoint(3, x++, y++);
- a.setPoint(4, x, y);
- int i;
- int bottom = rect.height() - 1;
- for (i = 0; i < 5; ++i)
- a.setPoint(9 - i, a.point(i).x(), bottom - a.point(i).y());
- if (tab->shape == QStyleOptionTab::TriangularWest)
- for (i = 0; i < 10; ++i)
- a.setPoint(i, rect.width() - 1 - a.point(i).x(), a.point(i).y());
- a.translate(rect.left(), rect.top());
- p->setRenderHint(QPainter::Antialiasing);
- p->translate(0.5, 0);
- QPainterPath path;
- path.addPolygon(a);
- p->drawPath(path);
- break; }
- default:
- break;
- }
- p->restore();
- }
- break;
- case CE_ToolBoxTabLabel:
- if (const QStyleOptionToolBox *tb = qstyleoption_cast<const QStyleOptionToolBox *>(opt)) {
- bool enabled = tb->state & State_Enabled;
- bool selected = tb->state & State_Selected;
- int iconExtent = proxy()->pixelMetric(QStyle::PM_SmallIconSize, tb);
- QPixmap pm = tb->icon.pixmap(QSize(iconExtent, iconExtent), dpr(opt->window),
- enabled ? QIcon::Normal : QIcon::Disabled);
-
- QRect cr = subElementRect(QStyle::SE_ToolBoxTabContents, tb);
- QRect tr, ir;
- int ih = 0;
- if (pm.isNull()) {
- tr = cr;
- tr.adjust(4, 0, -8, 0);
- } else {
- int iw = pm.width() / pm.devicePixelRatio() + 4;
- ih = pm.height()/ pm.devicePixelRatio();
- ir = QRect(cr.left() + 4, cr.top(), iw + 2, ih);
- tr = QRect(ir.right(), cr.top(), cr.width() - ir.right() - 4, cr.height());
- }
-
- if (selected && proxy()->styleHint(QStyle::SH_ToolBox_SelectedPageTitleBold, tb)) {
- QFont f(p->font());
- f.setBold(true);
- p->setFont(f);
- }
-
- QString txt = tb->fontMetrics.elidedText(tb->text, Qt::ElideRight, tr.width());
-
- if (ih)
- p->drawPixmap(ir.left(), (tb->rect.height() - ih) / 2, pm);
-
- int alignment = Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic;
- if (!proxy()->styleHint(QStyle::SH_UnderlineShortcut, tb))
- alignment |= Qt::TextHideMnemonic;
- proxy()->drawItemText(p, tr, alignment, tb->palette, enabled, txt, QPalette::ButtonText);
-
- if (!txt.isEmpty() && opt->state & State_HasFocus) {
- QStyleOptionFocusRect opt;
- opt.rect = tr;
- opt.palette = tb->palette;
- opt.state = QStyle::State_None;
- proxy()->drawPrimitive(QStyle::PE_FrameFocusRect, &opt, p);
- }
- }
- break;
- case CE_TabBarTabLabel:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- QRect tr = tab->rect;
- bool verticalTabs = tab->shape == QStyleOptionTab::RoundedEast
- || tab->shape == QStyleOptionTab::RoundedWest
- || tab->shape == QStyleOptionTab::TriangularEast
- || tab->shape == QStyleOptionTab::TriangularWest;
-
- int alignment = Qt::AlignCenter | Qt::TextShowMnemonic;
- if (!proxy()->styleHint(SH_UnderlineShortcut, opt))
- alignment |= Qt::TextHideMnemonic;
-
- if (verticalTabs) {
- p->save();
- int newX, newY, newRot;
- if (tab->shape == QStyleOptionTab::RoundedEast || tab->shape == QStyleOptionTab::TriangularEast) {
- newX = tr.width() + tr.x();
- newY = tr.y();
- newRot = 90;
- } else {
- newX = tr.x();
- newY = tr.y() + tr.height();
- newRot = -90;
- }
- QTransform m = QTransform::fromTranslate(newX, newY);
- m.rotate(newRot);
- p->setTransform(m, true);
- }
- QRect iconRect;
- d->tabLayout(tab, &tr, &iconRect);
- tr = proxy()->subElementRect(SE_TabBarTabText, opt); //we compute tr twice because the style may override subElementRect
-
- if (!tab->icon.isNull()) {
- QPixmap tabIcon = tab->icon.pixmap(tab->iconSize, dpr(opt->window),
- (tab->state & State_Enabled) ? QIcon::Normal
- : QIcon::Disabled,
- (tab->state & State_Selected) ? QIcon::On
- : QIcon::Off);
- p->drawPixmap(iconRect.x(), iconRect.y(), tabIcon);
- }
-
- proxy()->drawItemText(p, tr, alignment, tab->palette, tab->state & State_Enabled, tab->text, QPalette::WindowText);
- if (verticalTabs)
- p->restore();
-
- if (tab->state & State_HasFocus) {
- const int OFFSET = 1 + pixelMetric(PM_DefaultFrameWidth);
-
- int x1, x2;
- x1 = tab->rect.left();
- x2 = tab->rect.right() - 1;
-
- QStyleOptionFocusRect fropt;
- fropt.QStyleOption::operator=(*tab);
- fropt.rect.setRect(x1 + 1 + OFFSET, tab->rect.y() + OFFSET,
- x2 - x1 - 2*OFFSET, tab->rect.height() - 2*OFFSET);
- drawPrimitive(PE_FrameFocusRect, &fropt, p);
- }
- }
- break;
- case CE_SizeGrip: {
- p->save();
- int x, y, w, h;
- opt->rect.getRect(&x, &y, &w, &h);
-
- int sw = qMin(h, w);
- if (h > w)
- p->translate(0, h - w);
- else
- p->translate(w - h, 0);
-
- int sx = x;
- int sy = y;
- int s = sw / 3;
-
- Qt::Corner corner;
- if (const QStyleOptionSizeGrip *sgOpt = qstyleoption_cast<const QStyleOptionSizeGrip *>(opt))
- corner = sgOpt->corner;
- else if (opt->direction == Qt::RightToLeft)
- corner = Qt::BottomLeftCorner;
- else
- corner = Qt::BottomRightCorner;
-
- if (corner == Qt::BottomLeftCorner) {
- sx = x + sw;
- for (int i = 0; i < 4; ++i) {
- p->setPen(QPen(opt->palette.light().color(), 1));
- p->drawLine(x, sy - 1 , sx + 1, sw);
- p->setPen(QPen(opt->palette.dark().color(), 1));
- p->drawLine(x, sy, sx, sw);
- p->setPen(QPen(opt->palette.dark().color(), 1));
- p->drawLine(x, sy + 1, sx - 1, sw);
- sx -= s;
- sy += s;
- }
- } else if (corner == Qt::BottomRightCorner) {
- for (int i = 0; i < 4; ++i) {
- p->setPen(QPen(opt->palette.light().color(), 1));
- p->drawLine(sx - 1, sw, sw, sy - 1);
- p->setPen(QPen(opt->palette.dark().color(), 1));
- p->drawLine(sx, sw, sw, sy);
- p->setPen(QPen(opt->palette.dark().color(), 1));
- p->drawLine(sx + 1, sw, sw, sy + 1);
- sx += s;
- sy += s;
- }
- } else if (corner == Qt::TopRightCorner) {
- sy = y + sw;
- for (int i = 0; i < 4; ++i) {
- p->setPen(QPen(opt->palette.light().color(), 1));
- p->drawLine(sx - 1, y, sw, sy + 1);
- p->setPen(QPen(opt->palette.dark().color(), 1));
- p->drawLine(sx, y, sw, sy);
- p->setPen(QPen(opt->palette.dark().color(), 1));
- p->drawLine(sx + 1, y, sw, sy - 1);
- sx += s;
- sy -= s;
- }
- } else if (corner == Qt::TopLeftCorner) {
- for (int i = 0; i < 4; ++i) {
- p->setPen(QPen(opt->palette.light().color(), 1));
- p->drawLine(x, sy - 1, sx - 1, y);
- p->setPen(QPen(opt->palette.dark().color(), 1));
- p->drawLine(x, sy, sx, y);
- p->setPen(QPen(opt->palette.dark().color(), 1));
- p->drawLine(x, sy + 1, sx + 1, y);
- sx += s;
- sy += s;
- }
- }
- p->restore();
- break; }
- case CE_RubberBand: {
- if (const QStyleOptionRubberBand *rbOpt = qstyleoption_cast<const QStyleOptionRubberBand *>(opt)) {
- QPixmap tiledPixmap(16, 16);
- QPainter pixmapPainter(&tiledPixmap);
- pixmapPainter.setPen(Qt::NoPen);
- pixmapPainter.setBrush(Qt::Dense4Pattern);
- pixmapPainter.setBackground(QBrush(opt->palette.base()));
- pixmapPainter.setBackgroundMode(Qt::OpaqueMode);
- pixmapPainter.drawRect(0, 0, tiledPixmap.width(), tiledPixmap.height());
- pixmapPainter.end();
- // ### workaround for borked XRENDER
- tiledPixmap = QPixmap::fromImage(tiledPixmap.toImage());
-
- p->save();
- QRect r = opt->rect;
- QStyleHintReturnMask mask;
- if (proxy()->styleHint(QStyle::SH_RubberBand_Mask, opt, &mask))
- p->setClipRegion(mask.region);
- p->drawTiledPixmap(r.x(), r.y(), r.width(), r.height(), tiledPixmap);
- p->setPen(opt->palette.color(QPalette::Active, QPalette::WindowText));
- p->setBrush(Qt::NoBrush);
- p->drawRect(r.adjusted(0, 0, -1, -1));
- if (rbOpt->shape == QStyleOptionRubberBand::Rectangle)
- p->drawRect(r.adjusted(3, 3, -4, -4));
- p->restore();
- }
- break; }
- case CE_DockWidgetTitle:
- if (const QStyleOptionDockWidget *dwOpt = qstyleoption_cast<const QStyleOptionDockWidget *>(opt)) {
- QRect r = dwOpt->rect.adjusted(0, 0, -1, -1);
- if (dwOpt->movable) {
- p->setPen(dwOpt->palette.color(QPalette::Dark));
- p->drawRect(r);
- }
-
- if (!dwOpt->title.isEmpty()) {
- const bool verticalTitleBar = dwOpt->verticalTitleBar;
-
- if (verticalTitleBar) {
- r = r.transposed();
-
- p->save();
- p->translate(r.left(), r.top() + r.width());
- p->rotate(-90);
- p->translate(-r.left(), -r.top());
- }
-
- const int indent = p->fontMetrics().descent();
- proxy()->drawItemText(p, r.adjusted(indent + 1, 1, -indent - 1, -1),
- Qt::AlignLeft | Qt::AlignVCenter, dwOpt->palette,
- dwOpt->state & State_Enabled, dwOpt->title,
- QPalette::WindowText);
-
- if (verticalTitleBar)
- p->restore();
- }
- }
- break;
- case CE_Header:
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(opt)) {
- QRegion clipRegion = p->clipRegion();
- p->setClipRect(opt->rect);
- proxy()->drawControl(CE_HeaderSection, header, p);
- QStyleOptionHeader subopt = *header;
- subopt.rect = subElementRect(SE_HeaderLabel, header);
- if (subopt.rect.isValid())
- proxy()->drawControl(CE_HeaderLabel, &subopt, p);
- if (header->sortIndicator != QStyleOptionHeader::None) {
- subopt.rect = subElementRect(SE_HeaderArrow, opt);
- proxy()->drawPrimitive(PE_IndicatorHeaderArrow, &subopt, p);
- }
- p->setClipRegion(clipRegion);
- }
- break;
- case CE_FocusFrame:
- p->fillRect(opt->rect, opt->palette.windowText());
- break;
- case CE_HeaderSection:
- qDrawShadePanel(p, opt->rect, opt->palette,
- opt->state & State_Sunken, 1,
- &opt->palette.brush(QPalette::Button));
- break;
- case CE_HeaderEmptyArea:
- p->fillRect(opt->rect, opt->palette.window());
- break;
- case CE_ComboBoxLabel:
- if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- QRect editRect = proxy()->subControlRect(CC_ComboBox, cb, SC_ComboBoxEditField);
- p->save();
- p->setClipRect(editRect);
- if (!cb->currentIcon.isNull()) {
- QIcon::Mode mode = cb->state & State_Enabled ? QIcon::Normal
- : QIcon::Disabled;
- QPixmap pixmap = cb->currentIcon.pixmap(cb->iconSize, dpr(opt->window), mode);
- QRect iconRect(editRect);
- iconRect.setWidth(cb->iconSize.width() + 4);
- iconRect = alignedRect(cb->direction,
- Qt::AlignLeft | Qt::AlignVCenter,
- iconRect.size(), editRect);
- if (cb->editable)
- p->fillRect(iconRect, opt->palette.brush(QPalette::Base));
- proxy()->drawItemPixmap(p, iconRect, Qt::AlignCenter, pixmap);
-
- if (cb->direction == Qt::RightToLeft)
- editRect.translate(-4 - cb->iconSize.width(), 0);
- else
- editRect.translate(cb->iconSize.width() + 4, 0);
- }
- if (!cb->currentText.isEmpty() && !cb->editable) {
- proxy()->drawItemText(p, editRect.adjusted(1, 0, -1, 0),
- visualAlignment(cb->direction, Qt::AlignLeft | Qt::AlignVCenter),
- cb->palette, cb->state & State_Enabled, cb->currentText);
- }
- p->restore();
- }
- break;
- case CE_ToolBar:
- if (const QStyleOptionToolBar *toolBar = qstyleoption_cast<const QStyleOptionToolBar *>(opt)) {
- // Compatibility with styles that use PE_PanelToolBar
- QStyleOptionFrame frame;
- frame.QStyleOption::operator=(*toolBar);
- frame.lineWidth = toolBar->lineWidth;
- frame.midLineWidth = toolBar->midLineWidth;
- proxy()->drawPrimitive(PE_PanelToolBar, opt, p);
-
- qDrawShadePanel(p, toolBar->rect, toolBar->palette, false, toolBar->lineWidth,
- &toolBar->palette.brush(QPalette::Button));
- }
- break;
- case CE_ColumnViewGrip: {
- // draw background gradients
- QLinearGradient g(0, 0, opt->rect.width(), 0);
- g.setColorAt(0, opt->palette.color(QPalette::Active, QPalette::Mid));
- g.setColorAt(0.5, Qt::white);
- p->fillRect(QRect(0, 0, opt->rect.width(), opt->rect.height()), g);
-
- // draw the two lines
- QPen pen(p->pen());
- pen.setWidth(opt->rect.width()/20);
- pen.setColor(opt->palette.color(QPalette::Active, QPalette::Dark));
- p->setPen(pen);
-
- int line1starting = opt->rect.width()*8 / 20;
- int line2starting = opt->rect.width()*13 / 20;
- int top = opt->rect.height()*20/75;
- int bottom = opt->rect.height() - 1 - top;
- p->drawLine(line1starting, top, line1starting, bottom);
- p->drawLine(line2starting, top, line2starting, bottom);
- }
- break;
- case CE_ItemViewItem:
- if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
- p->save();
- p->setClipRect(opt->rect);
-
- QRect checkRect = proxy()->subElementRect(SE_ItemViewItemCheckIndicator, vopt);
- QRect iconRect = proxy()->subElementRect(SE_ItemViewItemDecoration, vopt);
- QRect textRect = proxy()->subElementRect(SE_ItemViewItemText, vopt);
-
- // draw the background
- proxy()->drawPrimitive(PE_PanelItemViewItem, opt, p);
-
- // draw the check mark
- if (vopt->features & QStyleOptionViewItem::HasCheckIndicator) {
- QStyleOptionViewItem option(*vopt);
- option.rect = checkRect;
- option.state = option.state & ~QStyle::State_HasFocus;
-
- switch (vopt->checkState) {
- case Qt::Unchecked:
- option.state |= QStyle::State_Off;
- break;
- case Qt::PartiallyChecked:
- option.state |= QStyle::State_NoChange;
- break;
- case Qt::Checked:
- option.state |= QStyle::State_On;
- break;
- }
- proxy()->drawPrimitive(QStyle::PE_IndicatorItemViewItemCheck, &option, p);
- }
-
- // draw the icon
- QIcon::Mode mode = QIcon::Normal;
- if (!(vopt->state & QStyle::State_Enabled))
- mode = QIcon::Disabled;
- else if (vopt->state & QStyle::State_Selected)
- mode = QIcon::Selected;
- QIcon::State state = vopt->state & QStyle::State_Open ? QIcon::On : QIcon::Off;
- vopt->icon.paint(p, iconRect, vopt->decorationAlignment, mode, state);
-
- // draw the text
- if (!vopt->text.isEmpty()) {
- QPalette::ColorGroup cg = vopt->state & QStyle::State_Enabled
- ? QPalette::Normal : QPalette::Disabled;
- if (cg == QPalette::Normal && !(vopt->state & QStyle::State_Active))
- cg = QPalette::Inactive;
-
- if (vopt->state & QStyle::State_Selected) {
- p->setPen(vopt->palette.color(cg, QPalette::HighlightedText));
- } else {
- p->setPen(vopt->palette.color(cg, QPalette::Text));
- }
- if (vopt->state & QStyle::State_Editing) {
- p->setPen(vopt->palette.color(cg, QPalette::Text));
- p->drawRect(textRect.adjusted(0, 0, -1, -1));
- }
-
- d->viewItemDrawText(p, vopt, textRect);
- }
-
- // draw the focus rect
- if (vopt->state & QStyle::State_HasFocus) {
- QStyleOptionFocusRect o;
- o.QStyleOption::operator=(*vopt);
- o.rect = proxy()->subElementRect(SE_ItemViewItemFocusRect, vopt);
- o.state |= QStyle::State_KeyboardFocusChange;
- o.state |= QStyle::State_Item;
- QPalette::ColorGroup cg = (vopt->state & QStyle::State_Enabled)
- ? QPalette::Normal : QPalette::Disabled;
- o.backgroundColor = vopt->palette.color(cg, (vopt->state & QStyle::State_Selected)
- ? QPalette::Highlight : QPalette::Window);
- proxy()->drawPrimitive(QStyle::PE_FrameFocusRect, &o, p);
- }
-
- p->restore();
- }
- break;
- case CE_ShapedFrame:
- if (const QStyleOptionFrame *f = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- int frameShape = f->frameShape;
- int frameShadow = QStyleOptionFrame::Plain;
- if (f->state & QStyle::State_Sunken) {
- frameShadow = QStyleOptionFrame::Sunken;
- } else if (f->state & QStyle::State_Raised) {
- frameShadow = QStyleOptionFrame::Raised;
- }
-
- int lw = f->lineWidth;
- int mlw = f->midLineWidth;
- QPalette::ColorRole foregroundRole = QPalette::WindowText;
-
- switch (frameShape) {
- case QStyleOptionFrame::Box:
- if (frameShadow == QStyleOptionFrame::Plain) {
- qDrawPlainRect(p, f->rect, f->palette.color(foregroundRole), lw);
- } else {
- qDrawShadeRect(p, f->rect, f->palette, frameShadow == QStyleOptionFrame::Sunken, lw, mlw);
- }
- break;
- case QStyleOptionFrame::StyledPanel:
- proxy()->drawPrimitive(QStyle::PE_Frame, opt, p);
- break;
- case QStyleOptionFrame::Panel:
- if (frameShadow == QStyleOptionFrame::Plain) {
- qDrawPlainRect(p, f->rect, f->palette.color(foregroundRole), lw);
- } else {
- qDrawShadePanel(p, f->rect, f->palette, frameShadow == QStyleOptionFrame::Sunken, lw);
- }
- break;
- case QStyleOptionFrame::WinPanel:
- if (frameShadow == QStyleOptionFrame::Plain) {
- qDrawPlainRect(p, f->rect, f->palette.color(foregroundRole), lw);
- } else {
- qDrawWinPanel(p, f->rect, f->palette, frameShadow == QStyleOptionFrame::Sunken);
- }
- break;
- case QStyleOptionFrame::HLine:
- case QStyleOptionFrame::VLine: {
- QPoint p1, p2;
- if (frameShape == QStyleOptionFrame::HLine) {
- p1 = QPoint(opt->rect.x(), opt->rect.y() + opt->rect.height() / 2);
- p2 = QPoint(opt->rect.x() + opt->rect.width(), p1.y());
- } else {
- p1 = QPoint(opt->rect.x() + opt->rect.width() / 2, opt->rect.y());
- p2 = QPoint(p1.x(), p1.y() + opt->rect.height());
- }
- if (frameShadow == QStyleOptionFrame::Plain) {
- QPen oldPen = p->pen();
- p->setPen(QPen(opt->palette.brush(foregroundRole), lw));
- p->drawLine(p1, p2);
- p->setPen(oldPen);
- } else {
- qDrawShadeLine(p, p1, p2, f->palette, frameShadow == QStyleOptionFrame::Sunken, lw, mlw);
- }
- break;
- }
- }
- }
- break;
- default:
- break;
- }
-}
-
-QRect QCommonStyle::subElementRect(SubElement sr, const QStyleOption *opt) const
-{
- Q_D(const QCommonStyle);
- QRect r;
- switch (sr) {
- case SE_PushButtonContents:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- int dx1, dx2;
- dx1 = proxy()->pixelMetric(PM_DefaultFrameWidth, btn);
- if (btn->features & QStyleOptionButton::AutoDefaultButton)
- dx1 += proxy()->pixelMetric(PM_ButtonDefaultIndicator, btn);
- dx2 = dx1 * 2;
- r.setRect(opt->rect.x() + dx1, opt->rect.y() + dx1, opt->rect.width() - dx2,
- opt->rect.height() - dx2);
- r = visualRect(opt->direction, opt->rect, r);
- }
- break;
- case SE_PushButtonFocusRect:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- int dbw1 = 0, dbw2 = 0;
- if (btn->features & QStyleOptionButton::AutoDefaultButton){
- dbw1 = proxy()->pixelMetric(PM_ButtonDefaultIndicator, btn);
- dbw2 = dbw1 * 2;
- }
-
- int dfw1 = proxy()->pixelMetric(PM_DefaultFrameWidth, btn) + 1,
- dfw2 = dfw1 * 2;
-
- r.setRect(btn->rect.x() + dfw1 + dbw1, btn->rect.y() + dfw1 + dbw1,
- btn->rect.width() - dfw2 - dbw2, btn->rect.height()- dfw2 - dbw2);
- r = visualRect(opt->direction, opt->rect, r);
- }
- break;
- case SE_CheckBoxIndicator:
- {
- int h = proxy()->pixelMetric(PM_IndicatorHeight, opt);
- r.setRect(opt->rect.x(), opt->rect.y() + ((opt->rect.height() - h) / 2),
- proxy()->pixelMetric(PM_IndicatorWidth, opt), h);
- r = visualRect(opt->direction, opt->rect, r);
- }
- break;
-
- case SE_CheckBoxContents:
- {
- // Deal with the logical first, then convert it back to screen coords.
- QRect ir = visualRect(opt->direction, opt->rect,
- subElementRect(SE_CheckBoxIndicator, opt));
- int spacing = proxy()->pixelMetric(PM_CheckBoxLabelSpacing, opt);
- r.setRect(ir.right() + spacing, opt->rect.y(), opt->rect.width() - ir.width() - spacing,
- opt->rect.height());
- r = visualRect(opt->direction, opt->rect, r);
- }
- break;
-
- case SE_CheckBoxFocusRect:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- if (btn->icon.isNull() && btn->text.isEmpty()) {
- r = subElementRect(SE_CheckBoxIndicator, opt);
- r.adjust(1, 1, -1, -1);
- break;
- }
- // As above, deal with the logical first, then convert it back to screen coords.
- QRect cr = visualRect(btn->direction, btn->rect, subElementRect(SE_CheckBoxContents, btn));
-
- QRect iconRect, textRect;
- if (!btn->text.isEmpty()) {
- textRect = itemTextRect(opt->fontMetrics, cr, Qt::AlignAbsolute | Qt::AlignLeft
- | Qt::AlignVCenter | Qt::TextShowMnemonic,
- btn->state & State_Enabled, btn->text);
- }
- if (!btn->icon.isNull()) {
- iconRect = itemPixmapRect(cr, Qt::AlignAbsolute | Qt::AlignLeft | Qt::AlignVCenter
- | Qt::TextShowMnemonic,
- btn->icon.pixmap(btn->iconSize, dpr(opt->window), QIcon::Normal));
- if (!textRect.isEmpty())
- textRect.translate(iconRect.right() + 4, 0);
- }
- r = iconRect | textRect;
- r.adjust(-3, -2, 3, 2);
- r = r.intersected(btn->rect);
- r = visualRect(btn->direction, btn->rect, r);
- }
- break;
-
- case SE_RadioButtonIndicator:
- {
- int h = proxy()->pixelMetric(PM_ExclusiveIndicatorHeight, opt);
- r.setRect(opt->rect.x(), opt->rect.y() + ((opt->rect.height() - h) / 2),
- proxy()->pixelMetric(PM_ExclusiveIndicatorWidth, opt), h);
- r = visualRect(opt->direction, opt->rect, r);
- }
- break;
-
- case SE_RadioButtonContents:
- {
- QRect ir = visualRect(opt->direction, opt->rect,
- subElementRect(SE_RadioButtonIndicator, opt));
- int spacing = proxy()->pixelMetric(PM_RadioButtonLabelSpacing, opt);
- r.setRect(ir.left() + ir.width() + spacing, opt->rect.y(), opt->rect.width() - ir.width() - spacing,
- opt->rect.height());
- r = visualRect(opt->direction, opt->rect, r);
- break;
- }
-
- case SE_RadioButtonFocusRect:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- if (btn->icon.isNull() && btn->text.isEmpty()) {
- r = subElementRect(SE_RadioButtonIndicator, opt);
- r.adjust(1, 1, -1, -1);
- break;
- }
- QRect cr = visualRect(btn->direction, btn->rect, subElementRect(SE_RadioButtonContents, opt));
-
- QRect iconRect, textRect;
- if (!btn->text.isEmpty()){
- textRect = itemTextRect(opt->fontMetrics, cr, Qt::AlignAbsolute | Qt::AlignLeft | Qt::AlignVCenter
- | Qt::TextShowMnemonic, btn->state & State_Enabled, btn->text);
- }
- if (!btn->icon.isNull()) {
- iconRect = itemPixmapRect(cr, Qt::AlignAbsolute | Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic,
- btn->icon.pixmap(btn->iconSize, dpr(opt->window), QIcon::Normal));
- if (!textRect.isEmpty())
- textRect.translate(iconRect.right() + 4, 0);
- }
- r = iconRect | textRect;
- r.adjust(-3, -2, 3, 2);
- r = r.intersected(btn->rect);
- r = visualRect(btn->direction, btn->rect, r);
- }
- break;
- case SE_SliderFocusRect:
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- int tickOffset = proxy()->pixelMetric(PM_SliderTickmarkOffset, slider);
- int thickness = proxy()->pixelMetric(PM_SliderControlThickness, slider);
- if (slider->orientation == Qt::Horizontal)
- r.setRect(0, tickOffset - 1, slider->rect.width(), thickness + 2);
- else
- r.setRect(tickOffset - 1, 0, thickness + 2, slider->rect.height());
- r = r.intersected(slider->rect);
- r = visualRect(opt->direction, opt->rect, r);
- }
- break;
- case SE_ProgressBarGroove:
- case SE_ProgressBarContents:
- case SE_ProgressBarLabel:
- if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(opt)) {
- int textw = 0;
- if (pb->textVisible)
- textw = qMax(pb->fontMetrics.horizontalAdvance(pb->text), pb->fontMetrics.horizontalAdvance(QLatin1String("100%"))) + 6;
-
- if ((pb->textAlignment & Qt::AlignCenter) == 0) {
- if (sr != SE_ProgressBarLabel)
- r.setCoords(pb->rect.left(), pb->rect.top(),
- pb->rect.right() - textw, pb->rect.bottom());
- else
- r.setCoords(pb->rect.right() - textw, pb->rect.top(),
- pb->rect.right(), pb->rect.bottom());
- } else {
- r = pb->rect;
- }
- r = visualRect(pb->direction, pb->rect, r);
- }
- break;
- case SE_ComboBoxFocusRect:
- if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- int margin = cb->frame ? 3 : 0;
- r.setRect(opt->rect.left() + margin, opt->rect.top() + margin,
- opt->rect.width() - 2*margin - 16, opt->rect.height() - 2*margin);
- r = visualRect(opt->direction, opt->rect, r);
- }
- break;
- case SE_ToolBoxTabContents:
- r = opt->rect;
- r.adjust(0, 0, -30, 0);
- break;
- case SE_HeaderLabel: {
- int margin = proxy()->pixelMetric(QStyle::PM_HeaderMargin, opt);
- r.setRect(opt->rect.x() + margin, opt->rect.y() + margin,
- opt->rect.width() - margin * 2, opt->rect.height() - margin * 2);
-
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(opt)) {
- // Subtract width needed for arrow, if there is one
- if (header->sortIndicator != QStyleOptionHeader::None) {
- if (opt->state & State_Horizontal)
- r.setWidth(r.width() - (opt->rect.height() / 2) - (margin * 2));
- else
- r.setHeight(r.height() - (opt->rect.width() / 2) - (margin * 2));
- }
- }
- r = visualRect(opt->direction, opt->rect, r);
- break; }
- case SE_HeaderArrow: {
- int h = opt->rect.height();
- int w = opt->rect.width();
- int x = opt->rect.x();
- int y = opt->rect.y();
- int margin = proxy()->pixelMetric(QStyle::PM_HeaderMargin, opt);
-
- if (opt->state & State_Horizontal) {
- int horiz_size = h / 2;
- r.setRect(x + w - margin * 2 - horiz_size, y + 5,
- horiz_size, h - margin * 2 - 5);
- } else {
- int vert_size = w / 2;
- r.setRect(x + 5, y + h - margin * 2 - vert_size,
- w - margin * 2 - 5, vert_size);
- }
- r = visualRect(opt->direction, opt->rect, r);
- break; }
-
- case SE_RadioButtonClickRect:
- r = subElementRect(SE_RadioButtonFocusRect, opt);
- r |= subElementRect(SE_RadioButtonIndicator, opt);
- break;
- case SE_CheckBoxClickRect:
- r = subElementRect(SE_CheckBoxFocusRect, opt);
- r |= subElementRect(SE_CheckBoxIndicator, opt);
- break;
- case SE_TabWidgetTabBar:
- if (const QStyleOptionTabWidgetFrame *twf
- = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
- r.setSize(twf->tabBarSize);
- const uint alingMask = Qt::AlignLeft | Qt::AlignRight | Qt::AlignHCenter;
- switch (twf->shape) {
- case QStyleOptionTab::RoundedNorth:
- case QStyleOptionTab::TriangularNorth:
- // Constrain the size now, otherwise, center could get off the page
- // This of course repeated for all the other directions
- r.setWidth(qMin(r.width(), twf->rect.width()
- - twf->leftCornerWidgetSize.width()
- - twf->rightCornerWidgetSize.width()));
- switch (proxy()->styleHint(SH_TabBar_Alignment, twf) & alingMask) {
- default:
- case Qt::AlignLeft:
- r.moveTopLeft(QPoint(twf->leftCornerWidgetSize.width(), 0));
- break;
- case Qt::AlignHCenter:
- r.moveTopLeft(QPoint(twf->rect.center().x() - qRound(r.width() / 2.0f)
- + (twf->leftCornerWidgetSize.width() / 2)
- - (twf->rightCornerWidgetSize.width() / 2), 0));
- break;
- case Qt::AlignRight:
- r.moveTopLeft(QPoint(twf->rect.width() - twf->tabBarSize.width()
- - twf->rightCornerWidgetSize.width(), 0));
- break;
- }
- r = visualRect(twf->direction, twf->rect, r);
- break;
- case QStyleOptionTab::RoundedSouth:
- case QStyleOptionTab::TriangularSouth:
- r.setWidth(qMin(r.width(), twf->rect.width()
- - twf->leftCornerWidgetSize.width()
- - twf->rightCornerWidgetSize.width()));
- switch (proxy()->styleHint(SH_TabBar_Alignment, twf) & alingMask) {
- default:
- case Qt::AlignLeft:
- r.moveTopLeft(QPoint(twf->leftCornerWidgetSize.width(),
- twf->rect.height() - twf->tabBarSize.height()));
- break;
- case Qt::AlignHCenter:
- r.moveTopLeft(QPoint(twf->rect.center().x() - qRound(r.width() / 2.0f)
- + (twf->leftCornerWidgetSize.width() / 2)
- - (twf->rightCornerWidgetSize.width() / 2),
- twf->rect.height() - twf->tabBarSize.height()));
- break;
- case Qt::AlignRight:
- r.moveTopLeft(QPoint(twf->rect.width() - twf->tabBarSize.width()
- - twf->rightCornerWidgetSize.width(),
- twf->rect.height() - twf->tabBarSize.height()));
- break;
- }
- r = visualRect(twf->direction, twf->rect, r);
- break;
- case QStyleOptionTab::RoundedEast:
- case QStyleOptionTab::TriangularEast:
- r.setHeight(qMin(r.height(), twf->rect.height()
- - twf->leftCornerWidgetSize.height()
- - twf->rightCornerWidgetSize.height()));
- switch (proxy()->styleHint(SH_TabBar_Alignment, twf) & alingMask) {
- default:
- case Qt::AlignLeft:
- r.moveTopLeft(QPoint(twf->rect.width() - twf->tabBarSize.width(),
- twf->leftCornerWidgetSize.height()));
- break;
- case Qt::AlignHCenter:
- r.moveTopLeft(QPoint(twf->rect.width() - twf->tabBarSize.width(),
- twf->rect.center().y() - r.height() / 2));
- break;
- case Qt::AlignRight:
- r.moveTopLeft(QPoint(twf->rect.width() - twf->tabBarSize.width(),
- twf->rect.height() - twf->tabBarSize.height()
- - twf->rightCornerWidgetSize.height()));
- break;
- }
- break;
- case QStyleOptionTab::RoundedWest:
- case QStyleOptionTab::TriangularWest:
- r.setHeight(qMin(r.height(), twf->rect.height()
- - twf->leftCornerWidgetSize.height()
- - twf->rightCornerWidgetSize.height()));
- switch (proxy()->styleHint(SH_TabBar_Alignment, twf) & alingMask) {
- default:
- case Qt::AlignLeft:
- r.moveTopLeft(QPoint(0, twf->leftCornerWidgetSize.height()));
- break;
- case Qt::AlignHCenter:
- r.moveTopLeft(QPoint(0, twf->rect.center().y() - r.height() / 2));
- break;
- case Qt::AlignRight:
- r.moveTopLeft(QPoint(0, twf->rect.height() - twf->tabBarSize.height()
- - twf->rightCornerWidgetSize.height()));
- break;
- }
- break;
- }
- }
- break;
- case SE_TabWidgetTabPane:
- case SE_TabWidgetTabContents:
- if (const QStyleOptionTabWidgetFrame *twf = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
- QStyleOptionTab tabopt;
- tabopt.shape = twf->shape;
- int overlap = proxy()->pixelMetric(PM_TabBarBaseOverlap, &tabopt);
- if (twf->lineWidth == 0)
- overlap = 0;
- switch (twf->shape) {
- case QStyleOptionTab::RoundedNorth:
- case QStyleOptionTab::TriangularNorth:
- r = QRect(QPoint(0,qMax(twf->tabBarSize.height() - overlap, 0)),
- QSize(twf->rect.width(), qMin(twf->rect.height() - twf->tabBarSize.height() + overlap, twf->rect.height())));
- break;
- case QStyleOptionTab::RoundedSouth:
- case QStyleOptionTab::TriangularSouth:
- r = QRect(QPoint(0,0), QSize(twf->rect.width(), qMin(twf->rect.height() - twf->tabBarSize.height() + overlap, twf->rect.height())));
- break;
- case QStyleOptionTab::RoundedEast:
- case QStyleOptionTab::TriangularEast:
- r = QRect(QPoint(0, 0), QSize(qMin(twf->rect.width() - twf->tabBarSize.width() + overlap, twf->rect.width()), twf->rect.height()));
- break;
- case QStyleOptionTab::RoundedWest:
- case QStyleOptionTab::TriangularWest:
- r = QRect(QPoint(qMax(twf->tabBarSize.width() - overlap, 0), 0),
- QSize(qMin(twf->rect.width() - twf->tabBarSize.width() + overlap, twf->rect.width()), twf->rect.height()));
- break;
- }
- if (sr == SE_TabWidgetTabContents && twf->lineWidth > 0)
- r.adjust(2, 2, -2, -2);
- }
- break;
- case SE_TabWidgetLeftCorner:
- if (const QStyleOptionTabWidgetFrame *twf = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
- QRect paneRect = subElementRect(SE_TabWidgetTabPane, twf);
- switch (twf->shape) {
- case QStyleOptionTab::RoundedNorth:
- case QStyleOptionTab::TriangularNorth:
- r = QRect(QPoint(paneRect.x(), paneRect.y() - twf->leftCornerWidgetSize.height()),
- twf->leftCornerWidgetSize);
- break;
- case QStyleOptionTab::RoundedSouth:
- case QStyleOptionTab::TriangularSouth:
- r = QRect(QPoint(paneRect.x(), paneRect.height()), twf->leftCornerWidgetSize);
- break;
- default:
- break;
- }
- r = visualRect(twf->direction, twf->rect, r);
- }
- break;
- case SE_TabWidgetRightCorner:
- if (const QStyleOptionTabWidgetFrame *twf = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(opt)) {
- QRect paneRect = subElementRect(SE_TabWidgetTabPane, twf);
- switch (twf->shape) {
- case QStyleOptionTab::RoundedNorth:
- case QStyleOptionTab::TriangularNorth:
- r = QRect(QPoint(paneRect.width() - twf->rightCornerWidgetSize.width(),
- paneRect.y() - twf->rightCornerWidgetSize.height()),
- twf->rightCornerWidgetSize);
- break;
- case QStyleOptionTab::RoundedSouth:
- case QStyleOptionTab::TriangularSouth:
- r = QRect(QPoint(paneRect.width() - twf->rightCornerWidgetSize.width(),
- paneRect.height()), twf->rightCornerWidgetSize);
- break;
- default:
- break;
- }
- r = visualRect(twf->direction, twf->rect, r);
- }
- break;
- case SE_TabBarTabText:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- QRect dummyIconRect;
- d->tabLayout(tab, &r, &dummyIconRect);
- }
- break;
- case SE_TabBarTabLeftButton:
- case SE_TabBarTabRightButton:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- bool selected = tab->state & State_Selected;
- int verticalShift = proxy()->pixelMetric(QStyle::PM_TabBarTabShiftVertical, tab);
- int horizontalShift = proxy()->pixelMetric(QStyle::PM_TabBarTabShiftHorizontal, tab);
- int hpadding = proxy()->pixelMetric(QStyle::PM_TabBarTabHSpace, opt) / 2;
- hpadding = qMax(hpadding, 4); //workaround KStyle returning 0 because they workaround an old bug in Qt
-
- bool verticalTabs = tab->shape == QStyleOptionTab::RoundedEast
- || tab->shape == QStyleOptionTab::RoundedWest
- || tab->shape == QStyleOptionTab::TriangularEast
- || tab->shape == QStyleOptionTab::TriangularWest;
-
- QRect tr = tab->rect;
- if (tab->shape == QStyleOptionTab::RoundedSouth || tab->shape == QStyleOptionTab::TriangularSouth)
- verticalShift = -verticalShift;
- if (verticalTabs) {
- qSwap(horizontalShift, verticalShift);
- horizontalShift *= -1;
- verticalShift *= -1;
- }
- if (tab->shape == QStyleOptionTab::RoundedWest || tab->shape == QStyleOptionTab::TriangularWest)
- horizontalShift = -horizontalShift;
-
- tr.adjust(0, 0, horizontalShift, verticalShift);
- if (selected)
- {
- tr.setBottom(tr.bottom() - verticalShift);
- tr.setRight(tr.right() - horizontalShift);
- }
-
- QSize size = (sr == SE_TabBarTabLeftButton) ? tab->leftButtonSize : tab->rightButtonSize;
- int w = size.width();
- int h = size.height();
- int midHeight = static_cast<int>(qCeil(float(tr.height() - h) / 2));
- int midWidth = ((tr.width() - w) / 2);
-
- bool atTheTop = true;
- switch (tab->shape) {
- case QStyleOptionTab::RoundedWest:
- case QStyleOptionTab::TriangularWest:
- atTheTop = (sr == SE_TabBarTabLeftButton);
- break;
- case QStyleOptionTab::RoundedEast:
- case QStyleOptionTab::TriangularEast:
- atTheTop = (sr == SE_TabBarTabRightButton);
- break;
- default:
- if (sr == SE_TabBarTabLeftButton)
- r = QRect(tab->rect.x() + hpadding, midHeight, w, h);
- else
- r = QRect(tab->rect.right() - w - hpadding, midHeight, w, h);
- r = visualRect(tab->direction, tab->rect, r);
- }
- if (verticalTabs) {
- if (atTheTop)
- r = QRect(midWidth, tr.y() + tab->rect.height() - hpadding - h, w, h);
- else
- r = QRect(midWidth, tr.y() + hpadding, w, h);
- }
- }
-
- break;
- case SE_TabBarTearIndicator:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- switch (tab->shape) {
- case QStyleOptionTab::RoundedNorth:
- case QStyleOptionTab::TriangularNorth:
- case QStyleOptionTab::RoundedSouth:
- case QStyleOptionTab::TriangularSouth:
- r.setRect(tab->rect.left(), tab->rect.top(), 8, opt->rect.height());
- break;
- case QStyleOptionTab::RoundedWest:
- case QStyleOptionTab::TriangularWest:
- case QStyleOptionTab::RoundedEast:
- case QStyleOptionTab::TriangularEast:
- r.setRect(tab->rect.left(), tab->rect.top(), opt->rect.width(), 8);
- break;
- default:
- break;
- }
- r = visualRect(opt->direction, opt->rect, r);
- }
- break;
- case SE_TabBarScrollLeftButton: {
- const bool vertical = opt->rect.width() < opt->rect.height();
- const Qt::LayoutDirection ld = opt->direction;
- const int buttonWidth = proxy()->pixelMetric(QStyle::PM_TabBarScrollButtonWidth, nullptr);
- const int buttonOverlap = proxy()->pixelMetric(QStyle::PM_TabBar_ScrollButtonOverlap, nullptr);
-
- r = vertical ? QRect(0, opt->rect.height() - (buttonWidth * 2) + buttonOverlap, opt->rect.width(), buttonWidth)
- : QStyle::visualRect(ld, opt->rect, QRect(opt->rect.width() - (buttonWidth * 2) + buttonOverlap, 0, buttonWidth, opt->rect.height()));
- break; }
- case SE_TabBarScrollRightButton: {
- const bool vertical = opt->rect.width() < opt->rect.height();
- const Qt::LayoutDirection ld = opt->direction;
- const int buttonWidth = proxy()->pixelMetric(QStyle::PM_TabBarScrollButtonWidth, nullptr);
-
- r = vertical ? QRect(0, opt->rect.height() - buttonWidth, opt->rect.width(), buttonWidth)
- : QStyle::visualRect(ld, opt->rect, QRect(opt->rect.width() - buttonWidth, 0, buttonWidth, opt->rect.height()));
- break; }
- case SE_TreeViewDisclosureItem:
- r = opt->rect;
- break;
- case SE_LineEditContents:
- if (const QStyleOptionFrame *f = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- r = f->rect.adjusted(f->lineWidth, f->lineWidth, -f->lineWidth, -f->lineWidth);
- r = visualRect(opt->direction, opt->rect, r);
- }
- break;
- case SE_FrameContents:
- if (const QStyleOptionFrame *f = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- int fw = proxy()->pixelMetric(PM_DefaultFrameWidth, f);
- r = opt->rect.adjusted(fw, fw, -fw, -fw);
- r = visualRect(opt->direction, opt->rect, r);
- }
- break;
- case SE_ShapedFrameContents:
- if (const QStyleOptionFrame *f = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- int frameShape = f->frameShape;
- int frameShadow = QStyleOptionFrame::Plain;
- if (f->state & QStyle::State_Sunken) {
- frameShadow = QStyleOptionFrame::Sunken;
- } else if (f->state & QStyle::State_Raised) {
- frameShadow = QStyleOptionFrame::Raised;
- }
-
- int frameWidth = 0;
-
- switch (frameShape) {
- case QStyleOptionFrame::NoFrame:
- frameWidth = 0;
- break;
-
- case QStyleOptionFrame::Box:
- case QStyleOptionFrame::HLine:
- case QStyleOptionFrame::VLine:
- switch (frameShadow) {
- case QStyleOptionFrame::Plain:
- frameWidth = f->lineWidth;
- break;
- case QStyleOptionFrame::Raised:
- case QStyleOptionFrame::Sunken:
- frameWidth = (short)(f->lineWidth*2 + f->midLineWidth);
- break;
- }
- break;
-
- case QStyleOptionFrame::StyledPanel:
- //keep the compatibility with Qt 4.4 if there is a proxy style.
- //be sure to call drawPrimitive(QStyle::SE_FrameContents) on the proxy style
- return subElementRect(QStyle::SE_FrameContents, opt);
-
- case QStyleOptionFrame::WinPanel:
- frameWidth = 2;
- break;
-
- case QStyleOptionFrame::Panel:
- switch (frameShadow) {
- case QStyleOptionFrame::Plain:
- case QStyleOptionFrame::Raised:
- case QStyleOptionFrame::Sunken:
- frameWidth = f->lineWidth;
- break;
- }
- break;
- }
- r = f->rect.adjusted(frameWidth, frameWidth, -frameWidth, -frameWidth);
- }
- break;
- case SE_DockWidgetCloseButton:
- case SE_DockWidgetFloatButton:
- case SE_DockWidgetTitleBarText:
- case SE_DockWidgetIcon: {
- int iconSize = proxy()->pixelMetric(PM_SmallIconSize, opt);
- int buttonMargin = proxy()->pixelMetric(PM_DockWidgetTitleBarButtonMargin, opt);
- QRect rect = opt->rect;
-
- const QStyleOptionDockWidget *dwOpt
- = qstyleoption_cast<const QStyleOptionDockWidget*>(opt);
- bool canClose = dwOpt == nullptr ? true : dwOpt->closable;
- bool canFloat = dwOpt == nullptr ? false : dwOpt->floatable;
-
- const bool verticalTitleBar = dwOpt && dwOpt->verticalTitleBar;
-
- // If this is a vertical titlebar, we transpose and work as if it was
- // horizontal, then transpose again.
-
- if (verticalTitleBar)
- rect = rect.transposed();
-
- do {
- int right = rect.right();
- int left = rect.left();
-
- QRect closeRect;
- if (canClose) {
- QSize sz = proxy()->standardIcon(QStyle::SP_TitleBarCloseButton,
- opt).actualSize(QSize(iconSize, iconSize));
- sz += QSize(buttonMargin, buttonMargin);
- if (verticalTitleBar)
- sz = sz.transposed();
- closeRect = QRect(right - sz.width(),
- rect.center().y() - sz.height()/2,
- sz.width(), sz.height());
- right = closeRect.left() - 1;
- }
- if (sr == SE_DockWidgetCloseButton) {
- r = closeRect;
- break;
- }
-
- QRect floatRect;
- if (canFloat) {
- QSize sz = proxy()->standardIcon(QStyle::SP_TitleBarNormalButton,
- opt).actualSize(QSize(iconSize, iconSize));
- sz += QSize(buttonMargin, buttonMargin);
- if (verticalTitleBar)
- sz = sz.transposed();
- floatRect = QRect(right - sz.width(),
- rect.center().y() - sz.height()/2,
- sz.width(), sz.height());
- right = floatRect.left() - 1;
- }
- if (sr == SE_DockWidgetFloatButton) {
- r = floatRect;
- break;
- }
-
- QRect iconRect;
- if (sr == SE_DockWidgetIcon) {
- r = iconRect;
- break;
- }
-
- QRect textRect = QRect(left, rect.top(),
- right - left, rect.height());
- if (sr == SE_DockWidgetTitleBarText) {
- r = textRect;
- break;
- }
-
- } while (false);
-
- if (verticalTitleBar) {
- r = QRect(rect.left() + r.top() - rect.top(),
- rect.top() + rect.right() - r.right(),
- r.height(), r.width());
- } else {
- r = visualRect(opt->direction, rect, r);
- }
- break;
- }
- case SE_ItemViewItemCheckIndicator:
- if (!qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
- r = subElementRect(SE_CheckBoxIndicator, opt);
- break;
- }
- Q_FALLTHROUGH();
- case SE_ItemViewItemDecoration:
- case SE_ItemViewItemText:
- case SE_ItemViewItemFocusRect:
- if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
- if (!d->isViewItemCached(*vopt)) {
- d->viewItemLayout(vopt, &d->checkRect, &d->decorationRect, &d->displayRect, false);
- if (d->cachedOption) {
- delete d->cachedOption;
- d->cachedOption = nullptr;
- }
- d->cachedOption = new QStyleOptionViewItem(*vopt);
- }
- if (sr == SE_ItemViewItemCheckIndicator)
- r = d->checkRect;
- else if (sr == SE_ItemViewItemDecoration)
- r = d->decorationRect;
- else if (sr == SE_ItemViewItemText || sr == SE_ItemViewItemFocusRect)
- r = d->displayRect;
- }
- break;
- case SE_ToolBarHandle:
- if (const QStyleOptionToolBar *tbopt = qstyleoption_cast<const QStyleOptionToolBar *>(opt)) {
- if (tbopt->features & QStyleOptionToolBar::Movable) {
- ///we need to access the widget here because the style option doesn't
- //have all the information we need (ie. the layout's margin)
- const QMargins margins(2, 2, 2, 2);
- const int handleExtent = proxy()->pixelMetric(QStyle::PM_ToolBarHandleExtent, opt);
- if (tbopt->state & QStyle::State_Horizontal) {
- r = QRect(margins.left(), margins.top(),
- handleExtent,
- tbopt->rect.height() - (margins.top() + margins.bottom()));
- r = QStyle::visualRect(tbopt->direction, tbopt->rect, r);
- } else {
- r = QRect(margins.left(), margins.top(),
- tbopt->rect.width() - (margins.left() + margins.right()),
- handleExtent);
- }
- }
- }
- break;
- default:
- break;
- }
- return r;
-}
-
-// in lieu of std::array, minimal API
-template <int N>
-struct StaticPolygonF
-{
- QPointF data[N];
-
- Q_DECL_CONSTEXPR int size() const { return N; }
- Q_DECL_CONSTEXPR const QPointF *cbegin() const { return data; }
- Q_DECL_CONSTEXPR const QPointF &operator[](int idx) const { return data[idx]; }
-};
-
-static StaticPolygonF<3> calcArrow(const QStyleOptionSlider *dial, qreal &a)
-{
- int width = dial->rect.width();
- int height = dial->rect.height();
- int r = qMin(width, height) / 2;
- int currentSliderPosition = dial->upsideDown ? dial->sliderPosition : (dial->maximum - dial->sliderPosition);
-
- if (dial->maximum == dial->minimum)
- a = Q_PI / 2;
- else if (dial->dialWrapping)
- a = Q_PI * 3 / 2 - (currentSliderPosition - dial->minimum) * 2 * Q_PI
- / (dial->maximum - dial->minimum);
- else
- a = (Q_PI * 8 - (currentSliderPosition - dial->minimum) * 10 * Q_PI
- / (dial->maximum - dial->minimum)) / 6;
-
- int xc = width / 2;
- int yc = height / 2;
-
- int len = r - QStyleHelper::calcBigLineSize(r) - 5;
- if (len < 5)
- len = 5;
- int back = len / 2;
-
- StaticPolygonF<3> arrow = {{
- QPointF(0.5 + xc + len * qCos(a),
- 0.5 + yc - len * qSin(a)),
- QPointF(0.5 + xc + back * qCos(a + Q_PI * 5 / 6),
- 0.5 + yc - back * qSin(a + Q_PI * 5 / 6)),
- QPointF(0.5 + xc + back * qCos(a - Q_PI * 5 / 6),
- 0.5 + yc - back * qSin(a - Q_PI * 5 / 6)),
- }};
- return arrow;
-}
-
-void QCommonStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p) const
-{
- switch (cc) {
- case CC_Slider:
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- if (slider->subControls == SC_SliderTickmarks) {
- int tickOffset = proxy()->pixelMetric(PM_SliderTickmarkOffset, slider);
- int ticks = slider->tickPosition;
- int thickness = proxy()->pixelMetric(PM_SliderControlThickness, slider);
- int len = proxy()->pixelMetric(PM_SliderLength, slider);
- int available = proxy()->pixelMetric(PM_SliderSpaceAvailable, slider);
- int interval = slider->tickInterval;
- if (interval <= 0) {
- interval = slider->singleStep;
- if (QStyle::sliderPositionFromValue(slider->minimum, slider->maximum, interval,
- available)
- - QStyle::sliderPositionFromValue(slider->minimum, slider->maximum,
- 0, available) < 3)
- interval = slider->pageStep;
- }
- if (!interval)
- interval = 1;
- int fudge = len / 2;
- int pos;
- // Since there is no subrect for tickmarks do a translation here.
- p->save();
- p->translate(slider->rect.x(), slider->rect.y());
- p->setPen(slider->palette.windowText().color());
- int v = slider->minimum;
- while (v <= slider->maximum + 1) {
- if (v == slider->maximum + 1 && interval == 1)
- break;
- const int v_ = qMin(v, slider->maximum);
- pos = QStyle::sliderPositionFromValue(slider->minimum, slider->maximum,
- v_, available) + fudge;
- if (slider->orientation == Qt::Horizontal) {
- if (ticks & QStyleOptionSlider::TicksAbove)
- p->drawLine(pos, 0, pos, tickOffset - 2);
- if (ticks & QStyleOptionSlider::TicksBelow)
- p->drawLine(pos, tickOffset + thickness + 1, pos,
- slider->rect.height()-1);
- } else {
- if (ticks & QStyleOptionSlider::TicksAbove)
- p->drawLine(0, pos, tickOffset - 2, pos);
- if (ticks & QStyleOptionSlider::TicksBelow)
- p->drawLine(tickOffset + thickness + 1, pos,
- slider->rect.width()-1, pos);
- }
- // in the case where maximum is max int
- int nextInterval = v + interval;
- if (nextInterval < v)
- break;
- v = nextInterval;
- }
- p->restore();
- }
- }
- break;
- case CC_ScrollBar:
- if (const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- // Make a copy here and reset it for each primitive.
- QStyleOptionSlider newScrollbar = *scrollbar;
- State saveFlags = scrollbar->state;
-
- if (scrollbar->subControls & SC_ScrollBarSubLine) {
- newScrollbar.state = saveFlags;
- newScrollbar.rect = proxy()->subControlRect(cc, &newScrollbar, SC_ScrollBarSubLine);
- if (newScrollbar.rect.isValid()) {
- if (!(scrollbar->activeSubControls & SC_ScrollBarSubLine))
- newScrollbar.state &= ~(State_Sunken | State_MouseOver);
- proxy()->drawControl(CE_ScrollBarSubLine, &newScrollbar, p);
- }
- }
- if (scrollbar->subControls & SC_ScrollBarAddLine) {
- newScrollbar.rect = scrollbar->rect;
- newScrollbar.state = saveFlags;
- newScrollbar.rect = proxy()->subControlRect(cc, &newScrollbar, SC_ScrollBarAddLine);
- if (newScrollbar.rect.isValid()) {
- if (!(scrollbar->activeSubControls & SC_ScrollBarAddLine))
- newScrollbar.state &= ~(State_Sunken | State_MouseOver);
- proxy()->drawControl(CE_ScrollBarAddLine, &newScrollbar, p);
- }
- }
- if (scrollbar->subControls & SC_ScrollBarSubPage) {
- newScrollbar.rect = scrollbar->rect;
- newScrollbar.state = saveFlags;
- newScrollbar.rect = proxy()->subControlRect(cc, &newScrollbar, SC_ScrollBarSubPage);
- if (newScrollbar.rect.isValid()) {
- if (!(scrollbar->activeSubControls & SC_ScrollBarSubPage))
- newScrollbar.state &= ~(State_Sunken | State_MouseOver);
- proxy()->drawControl(CE_ScrollBarSubPage, &newScrollbar, p);
- }
- }
- if (scrollbar->subControls & SC_ScrollBarAddPage) {
- newScrollbar.rect = scrollbar->rect;
- newScrollbar.state = saveFlags;
- newScrollbar.rect = proxy()->subControlRect(cc, &newScrollbar, SC_ScrollBarAddPage);
- if (newScrollbar.rect.isValid()) {
- if (!(scrollbar->activeSubControls & SC_ScrollBarAddPage))
- newScrollbar.state &= ~(State_Sunken | State_MouseOver);
- proxy()->drawControl(CE_ScrollBarAddPage, &newScrollbar, p);
- }
- }
- if (scrollbar->subControls & SC_ScrollBarFirst) {
- newScrollbar.rect = scrollbar->rect;
- newScrollbar.state = saveFlags;
- newScrollbar.rect = proxy()->subControlRect(cc, &newScrollbar, SC_ScrollBarFirst);
- if (newScrollbar.rect.isValid()) {
- if (!(scrollbar->activeSubControls & SC_ScrollBarFirst))
- newScrollbar.state &= ~(State_Sunken | State_MouseOver);
- proxy()->drawControl(CE_ScrollBarFirst, &newScrollbar, p);
- }
- }
- if (scrollbar->subControls & SC_ScrollBarLast) {
- newScrollbar.rect = scrollbar->rect;
- newScrollbar.state = saveFlags;
- newScrollbar.rect = proxy()->subControlRect(cc, &newScrollbar, SC_ScrollBarLast);
- if (newScrollbar.rect.isValid()) {
- if (!(scrollbar->activeSubControls & SC_ScrollBarLast))
- newScrollbar.state &= ~(State_Sunken | State_MouseOver);
- proxy()->drawControl(CE_ScrollBarLast, &newScrollbar, p);
- }
- }
- if (scrollbar->subControls & SC_ScrollBarSlider) {
- newScrollbar.rect = scrollbar->rect;
- newScrollbar.state = saveFlags;
- newScrollbar.rect = proxy()->subControlRect(cc, &newScrollbar, SC_ScrollBarSlider);
- if (newScrollbar.rect.isValid()) {
- if (!(scrollbar->activeSubControls & SC_ScrollBarSlider))
- newScrollbar.state &= ~(State_Sunken | State_MouseOver);
- proxy()->drawControl(CE_ScrollBarSlider, &newScrollbar, p);
-
- if (scrollbar->state & State_HasFocus) {
- QStyleOptionFocusRect fropt;
- fropt.QStyleOption::operator=(newScrollbar);
- fropt.rect.setRect(newScrollbar.rect.x() + 2, newScrollbar.rect.y() + 2,
- newScrollbar.rect.width() - 5,
- newScrollbar.rect.height() - 5);
- proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, p);
- }
- }
- }
- }
- break;
- case CC_SpinBox:
- if (const QStyleOptionSpinBox *sb = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) {
- QStyleOptionSpinBox copy = *sb;
- PrimitiveElement pe;
-
- if (sb->frame && (sb->subControls & SC_SpinBoxFrame)) {
- QRect r = proxy()->subControlRect(CC_SpinBox, sb, SC_SpinBoxFrame);
- qDrawWinPanel(p, r, sb->palette, true);
- }
-
- if (sb->subControls & SC_SpinBoxUp) {
- copy.subControls = SC_SpinBoxUp;
- QPalette pal2 = sb->palette;
- if (!(sb->stepEnabled & QStyleOptionSpinBox::StepUpEnabled)) {
- pal2.setCurrentColorGroup(QPalette::Disabled);
- copy.state &= ~State_Enabled;
- }
-
- copy.palette = pal2;
-
- if (sb->activeSubControls == SC_SpinBoxUp && (sb->state & State_Sunken)) {
- copy.state |= State_On;
- copy.state |= State_Sunken;
- } else {
- copy.state |= State_Raised;
- copy.state &= ~State_Sunken;
- }
- pe = (sb->buttonSymbols == QStyleOptionSpinBox::PlusMinus ? PE_IndicatorSpinPlus
- : PE_IndicatorSpinUp);
-
- copy.rect = proxy()->subControlRect(CC_SpinBox, sb, SC_SpinBoxUp);
- proxy()->drawPrimitive(PE_PanelButtonBevel, &copy, p);
- copy.rect.adjust(3, 0, -4, 0);
- proxy()->drawPrimitive(pe, &copy, p);
- }
-
- if (sb->subControls & SC_SpinBoxDown) {
- copy.subControls = SC_SpinBoxDown;
- copy.state = sb->state;
- QPalette pal2 = sb->palette;
- if (!(sb->stepEnabled & QStyleOptionSpinBox::StepDownEnabled)) {
- pal2.setCurrentColorGroup(QPalette::Disabled);
- copy.state &= ~State_Enabled;
- }
- copy.palette = pal2;
-
- if (sb->activeSubControls == SC_SpinBoxDown && (sb->state & State_Sunken)) {
- copy.state |= State_On;
- copy.state |= State_Sunken;
- } else {
- copy.state |= State_Raised;
- copy.state &= ~State_Sunken;
- }
- pe = (sb->buttonSymbols == QStyleOptionSpinBox::PlusMinus ? PE_IndicatorSpinMinus
- : PE_IndicatorSpinDown);
-
- copy.rect = proxy()->subControlRect(CC_SpinBox, sb, SC_SpinBoxDown);
- proxy()->drawPrimitive(PE_PanelButtonBevel, &copy, p);
- copy.rect.adjust(3, 0, -4, 0);
- proxy()->drawPrimitive(pe, &copy, p);
- }
- }
- break;
- case CC_ToolButton:
- if (const QStyleOptionToolButton *toolbutton
- = qstyleoption_cast<const QStyleOptionToolButton *>(opt)) {
- QRect button, menuarea;
- button = proxy()->subControlRect(cc, toolbutton, SC_ToolButton);
- menuarea = proxy()->subControlRect(cc, toolbutton, SC_ToolButtonMenu);
-
- State bflags = toolbutton->state & ~State_Sunken;
-
- if (bflags & State_AutoRaise) {
- if (!(bflags & State_MouseOver) || !(bflags & State_Enabled)) {
- bflags &= ~State_Raised;
- }
- }
- State mflags = bflags;
- if (toolbutton->state & State_Sunken) {
- if (toolbutton->activeSubControls & SC_ToolButton)
- bflags |= State_Sunken;
- mflags |= State_Sunken;
- }
-
- QStyleOption tool = *toolbutton;
- if (toolbutton->subControls & SC_ToolButton) {
- if (bflags & (State_Sunken | State_On | State_Raised)) {
- tool.rect = button;
- tool.state = bflags;
- proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p);
- }
- }
-
- if (toolbutton->state & State_HasFocus) {
- QStyleOptionFocusRect fr;
- fr.QStyleOption::operator=(*toolbutton);
- fr.rect.adjust(3, 3, -3, -3);
- if (toolbutton->features & QStyleOptionToolButton::MenuButtonPopup)
- fr.rect.adjust(0, 0, -proxy()->pixelMetric(QStyle::PM_MenuButtonIndicator,
- toolbutton), 0);
- proxy()->drawPrimitive(PE_FrameFocusRect, &fr, p);
- }
- QStyleOptionToolButton label = *toolbutton;
- label.state = bflags;
- int fw = proxy()->pixelMetric(PM_DefaultFrameWidth, opt);
- label.rect = button.adjusted(fw, fw, -fw, -fw);
- proxy()->drawControl(CE_ToolButtonLabel, &label, p);
-
- if (toolbutton->subControls & SC_ToolButtonMenu) {
- tool.rect = menuarea;
- tool.state = mflags;
- if (mflags & (State_Sunken | State_On | State_Raised))
- proxy()->drawPrimitive(PE_IndicatorButtonDropDown, &tool, p);
- proxy()->drawPrimitive(PE_IndicatorArrowDown, &tool, p);
- } else if (toolbutton->features & QStyleOptionToolButton::HasMenu) {
- int mbi = proxy()->pixelMetric(PM_MenuButtonIndicator, toolbutton);
- QRect ir = toolbutton->rect;
- QStyleOptionToolButton newBtn = *toolbutton;
- newBtn.rect = QRect(ir.right() + 5 - mbi, ir.y() + ir.height() - mbi + 4, mbi - 6, mbi - 6);
- newBtn.rect = visualRect(toolbutton->direction, button, newBtn.rect);
- proxy()->drawPrimitive(PE_IndicatorArrowDown, &newBtn, p);
- }
- }
- break;
- case CC_TitleBar:
- if (const QStyleOptionTitleBar *tb = qstyleoption_cast<const QStyleOptionTitleBar *>(opt)) {
- QRect ir;
- if (opt->subControls & SC_TitleBarLabel) {
- QColor left = tb->palette.highlight().color();
- QColor right = tb->palette.base().color();
-
- QBrush fillBrush(left);
- if (left != right) {
- QPoint p1(tb->rect.x(), tb->rect.top() + tb->rect.height()/2);
- QPoint p2(tb->rect.right(), tb->rect.top() + tb->rect.height()/2);
- QLinearGradient lg(p1, p2);
- lg.setColorAt(0, left);
- lg.setColorAt(1, right);
- fillBrush = lg;
- }
-
- p->fillRect(opt->rect, fillBrush);
-
- ir = proxy()->subControlRect(CC_TitleBar, tb, SC_TitleBarLabel);
-
- p->setPen(tb->palette.highlightedText().color());
- p->drawText(ir.x() + 2, ir.y(), ir.width() - 2, ir.height(),
- Qt::AlignLeft | Qt::AlignVCenter | Qt::TextSingleLine, tb->text);
- }
-
- bool down = false;
- QPixmap pm;
-
- QStyleOption tool = *tb;
- if (tb->subControls & SC_TitleBarCloseButton && tb->titleBarFlags & Qt::WindowSystemMenuHint) {
- ir = proxy()->subControlRect(CC_TitleBar, tb, SC_TitleBarCloseButton);
- down = tb->activeSubControls & SC_TitleBarCloseButton && (opt->state & State_Sunken);
- if ((tb->titleBarFlags & Qt::WindowType_Mask) == Qt::Tool)
- pm = proxy()->standardIcon(SP_DockWidgetCloseButton, &tool).pixmap(QSize(10, 10), dpr(opt->window));
- else
- pm = proxy()->standardIcon(SP_TitleBarCloseButton, &tool).pixmap(QSize(10, 10), dpr(opt->window));
- tool.rect = ir;
- tool.state = down ? State_Sunken : State_Raised;
- proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p);
-
- p->save();
- if (down)
- p->translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal, tb),
- proxy()->pixelMetric(PM_ButtonShiftVertical, tb));
- proxy()->drawItemPixmap(p, ir, Qt::AlignCenter, pm);
- p->restore();
- }
-
- if (tb->subControls & SC_TitleBarMaxButton
- && tb->titleBarFlags & Qt::WindowMaximizeButtonHint
- && !(tb->titleBarState & Qt::WindowMaximized)) {
- ir = proxy()->subControlRect(CC_TitleBar, tb, SC_TitleBarMaxButton);
-
- down = tb->activeSubControls & SC_TitleBarMaxButton && (opt->state & State_Sunken);
- pm = proxy()->standardIcon(SP_TitleBarMaxButton, &tool).pixmap(QSize(10, 10), dpr(opt->window));
- tool.rect = ir;
- tool.state = down ? State_Sunken : State_Raised;
- proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p);
-
- p->save();
- if (down)
- p->translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal, tb),
- proxy()->pixelMetric(PM_ButtonShiftVertical, tb));
- proxy()->drawItemPixmap(p, ir, Qt::AlignCenter, pm);
- p->restore();
- }
-
- if (tb->subControls & SC_TitleBarMinButton
- && tb->titleBarFlags & Qt::WindowMinimizeButtonHint
- && !(tb->titleBarState & Qt::WindowMinimized)) {
- ir = proxy()->subControlRect(CC_TitleBar, tb, SC_TitleBarMinButton);
- down = tb->activeSubControls & SC_TitleBarMinButton && (opt->state & State_Sunken);
- pm = proxy()->standardIcon(SP_TitleBarMinButton, &tool).pixmap(QSize(10, 10), dpr(opt->window));
- tool.rect = ir;
- tool.state = down ? State_Sunken : State_Raised;
- proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p);
-
- p->save();
- if (down)
- p->translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal, tb),
- proxy()->pixelMetric(PM_ButtonShiftVertical, tb));
- proxy()->drawItemPixmap(p, ir, Qt::AlignCenter, pm);
- p->restore();
- }
-
- bool drawNormalButton = (tb->subControls & SC_TitleBarNormalButton)
- && (((tb->titleBarFlags & Qt::WindowMinimizeButtonHint)
- && (tb->titleBarState & Qt::WindowMinimized))
- || ((tb->titleBarFlags & Qt::WindowMaximizeButtonHint)
- && (tb->titleBarState & Qt::WindowMaximized)));
-
- if (drawNormalButton) {
- ir = proxy()->subControlRect(CC_TitleBar, tb, SC_TitleBarNormalButton);
- down = tb->activeSubControls & SC_TitleBarNormalButton && (opt->state & State_Sunken);
- pm = proxy()->standardIcon(SP_TitleBarNormalButton, &tool).pixmap(QSize(10, 10), dpr(opt->window));
- tool.rect = ir;
- tool.state = down ? State_Sunken : State_Raised;
- proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p);
-
- p->save();
- if (down)
- p->translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal, tb),
- proxy()->pixelMetric(PM_ButtonShiftVertical, tb));
- proxy()->drawItemPixmap(p, ir, Qt::AlignCenter, pm);
- p->restore();
- }
-
- if (tb->subControls & SC_TitleBarShadeButton
- && tb->titleBarFlags & Qt::WindowShadeButtonHint
- && !(tb->titleBarState & Qt::WindowMinimized)) {
- ir = proxy()->subControlRect(CC_TitleBar, tb, SC_TitleBarShadeButton);
- down = (tb->activeSubControls & SC_TitleBarShadeButton && (opt->state & State_Sunken));
- pm = proxy()->standardIcon(SP_TitleBarShadeButton, &tool).pixmap(QSize(10, 10), dpr(opt->window));
- tool.rect = ir;
- tool.state = down ? State_Sunken : State_Raised;
- proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p);
- p->save();
- if (down)
- p->translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal, tb),
- proxy()->pixelMetric(PM_ButtonShiftVertical, tb));
- proxy()->drawItemPixmap(p, ir, Qt::AlignCenter, pm);
- p->restore();
- }
-
- if (tb->subControls & SC_TitleBarUnshadeButton
- && tb->titleBarFlags & Qt::WindowShadeButtonHint
- && tb->titleBarState & Qt::WindowMinimized) {
- ir = proxy()->subControlRect(CC_TitleBar, tb, SC_TitleBarUnshadeButton);
-
- down = tb->activeSubControls & SC_TitleBarUnshadeButton && (opt->state & State_Sunken);
- pm = proxy()->standardIcon(SP_TitleBarUnshadeButton, &tool).pixmap(QSize(10, 10), dpr(opt->window));
- tool.rect = ir;
- tool.state = down ? State_Sunken : State_Raised;
- proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p);
- p->save();
- if (down)
- p->translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal, tb),
- proxy()->pixelMetric(PM_ButtonShiftVertical, tb));
- proxy()->drawItemPixmap(p, ir, Qt::AlignCenter, pm);
- p->restore();
- }
- if (tb->subControls & SC_TitleBarContextHelpButton
- && tb->titleBarFlags & Qt::WindowContextHelpButtonHint) {
- ir = proxy()->subControlRect(CC_TitleBar, tb, SC_TitleBarContextHelpButton);
-
- down = tb->activeSubControls & SC_TitleBarContextHelpButton && (opt->state & State_Sunken);
- pm = proxy()->standardIcon(SP_TitleBarContextHelpButton, &tool).pixmap(QSize(10, 10), dpr(opt->window));
- tool.rect = ir;
- tool.state = down ? State_Sunken : State_Raised;
- proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p);
- p->save();
- if (down)
- p->translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal, tb),
- proxy()->pixelMetric(PM_ButtonShiftVertical, tb));
- proxy()->drawItemPixmap(p, ir, Qt::AlignCenter, pm);
- p->restore();
- }
- if (tb->subControls & SC_TitleBarSysMenu && tb->titleBarFlags & Qt::WindowSystemMenuHint) {
- ir = proxy()->subControlRect(CC_TitleBar, tb, SC_TitleBarSysMenu);
- if (!tb->icon.isNull()) {
- tb->icon.paint(p, ir);
- } else {
- int iconSize = proxy()->pixelMetric(PM_SmallIconSize, tb);
- pm = proxy()->standardIcon(SP_TitleBarMenuButton, &tool).pixmap(QSize(iconSize, iconSize), dpr(opt->window));
- tool.rect = ir;
- p->save();
- proxy()->drawItemPixmap(p, ir, Qt::AlignCenter, pm);
- p->restore();
- }
- }
- }
- break;
- case CC_Dial:
- if (const QStyleOptionSlider *dial = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- // OK, this is more a port of things over
- p->save();
-
- // avoid dithering
- if (p->paintEngine()->hasFeature(QPaintEngine::Antialiasing))
- p->setRenderHint(QPainter::Antialiasing);
-
- int width = dial->rect.width();
- int height = dial->rect.height();
- qreal r = qMin(width, height) / 2;
- qreal d_ = r / 6;
- qreal dx = dial->rect.x() + d_ + (width - 2 * r) / 2 + 1;
- qreal dy = dial->rect.y() + d_ + (height - 2 * r) / 2 + 1;
- QRect br = QRect(int(dx), int(dy), int(r * 2 - 2 * d_ - 2), int(r * 2 - 2 * d_ - 2));
-
- QPalette pal = opt->palette;
- // draw notches
- if (dial->subControls & QStyle::SC_DialTickmarks) {
- p->setPen(pal.windowText().color());
- p->drawLines(QStyleHelper::calcLines(dial));
- }
-
- if (dial->state & State_Enabled) {
- p->setBrush(pal.brush(QPalette::ColorRole(proxy()->styleHint(SH_Dial_BackgroundRole, dial))));
- p->setPen(Qt::NoPen);
- p->drawEllipse(br);
- p->setBrush(Qt::NoBrush);
- }
- p->setPen(QPen(pal.dark().color()));
- p->drawArc(br, 60 * 16, 180 * 16);
- p->setPen(QPen(pal.light().color()));
- p->drawArc(br, 240 * 16, 180 * 16);
-
- qreal a;
- const StaticPolygonF<3> arrow = calcArrow(dial, a);
-
- p->setPen(Qt::NoPen);
- p->setBrush(pal.button());
- p->drawPolygon(arrow.cbegin(), arrow.size());
-
- a = QStyleHelper::angle(QPointF(width / 2, height / 2), arrow[0]);
- p->setBrush(Qt::NoBrush);
-
- if (a <= 0 || a > 200) {
- p->setPen(pal.light().color());
- p->drawLine(arrow[2], arrow[0]);
- p->drawLine(arrow[1], arrow[2]);
- p->setPen(pal.dark().color());
- p->drawLine(arrow[0], arrow[1]);
- } else if (a > 0 && a < 45) {
- p->setPen(pal.light().color());
- p->drawLine(arrow[2], arrow[0]);
- p->setPen(pal.dark().color());
- p->drawLine(arrow[1], arrow[2]);
- p->drawLine(arrow[0], arrow[1]);
- } else if (a >= 45 && a < 135) {
- p->setPen(pal.dark().color());
- p->drawLine(arrow[2], arrow[0]);
- p->drawLine(arrow[1], arrow[2]);
- p->setPen(pal.light().color());
- p->drawLine(arrow[0], arrow[1]);
- } else if (a >= 135 && a < 200) {
- p->setPen(pal.dark().color());
- p->drawLine(arrow[2], arrow[0]);
- p->setPen(pal.light().color());
- p->drawLine(arrow[0], arrow[1]);
- p->drawLine(arrow[1], arrow[2]);
- }
-
- // draw focus rect around the dial
- QStyleOptionFocusRect fropt;
- fropt.rect = dial->rect;
- fropt.state = dial->state;
- fropt.palette = dial->palette;
- if (fropt.state & QStyle::State_HasFocus) {
- br.adjust(0, 0, 2, 2);
- if (dial->subControls & SC_DialTickmarks) {
- int r = qMin(width, height) / 2;
- br.translate(-r / 6, - r / 6);
- br.setWidth(br.width() + r / 3);
- br.setHeight(br.height() + r / 3);
- }
- fropt.rect = br.adjusted(-2, -2, 2, 2);
- proxy()->drawPrimitive(QStyle::PE_FrameFocusRect, &fropt, p);
- }
- p->restore();
- }
- break;
- case CC_GroupBox:
- if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast<const QStyleOptionGroupBox *>(opt)) {
- // Draw frame
- QRect textRect = proxy()->subControlRect(CC_GroupBox, opt, SC_GroupBoxLabel);
- QRect checkBoxRect = proxy()->subControlRect(CC_GroupBox, opt, SC_GroupBoxCheckBox);
- if (groupBox->subControls & QStyle::SC_GroupBoxFrame) {
- QStyleOptionFrame frame;
- frame.QStyleOption::operator=(*groupBox);
- frame.features = groupBox->features;
- frame.lineWidth = groupBox->lineWidth;
- frame.midLineWidth = groupBox->midLineWidth;
- frame.rect = proxy()->subControlRect(CC_GroupBox, opt, SC_GroupBoxFrame);
- p->save();
- QRegion region(groupBox->rect);
- if (!groupBox->text.isEmpty()) {
- bool ltr = groupBox->direction == Qt::LeftToRight;
- QRect finalRect;
- if (groupBox->subControls & QStyle::SC_GroupBoxCheckBox) {
- finalRect = checkBoxRect.united(textRect);
- finalRect.adjust(ltr ? -4 : 0, 0, ltr ? 0 : 4, 0);
- } else {
- finalRect = textRect;
- }
- region -= finalRect;
- }
- p->setClipRegion(region);
- proxy()->drawPrimitive(PE_FrameGroupBox, &frame, p);
- p->restore();
- }
-
- // Draw title
- if ((groupBox->subControls & QStyle::SC_GroupBoxLabel) && !groupBox->text.isEmpty()) {
- QColor textColor = groupBox->textColor;
- if (textColor.isValid())
- p->setPen(textColor);
- int alignment = int(groupBox->textAlignment);
- if (!proxy()->styleHint(QStyle::SH_UnderlineShortcut, opt))
- alignment |= Qt::TextHideMnemonic;
-
- proxy()->drawItemText(p, textRect, Qt::TextShowMnemonic | Qt::AlignHCenter | alignment,
- groupBox->palette, groupBox->state & State_Enabled, groupBox->text,
- textColor.isValid() ? QPalette::NoRole : QPalette::WindowText);
-
- if (groupBox->state & State_HasFocus) {
- QStyleOptionFocusRect fropt;
- fropt.QStyleOption::operator=(*groupBox);
- fropt.rect = textRect;
- proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, p);
- }
- }
-
- // Draw checkbox
- if (groupBox->subControls & SC_GroupBoxCheckBox) {
- QStyleOptionButton box;
- box.QStyleOption::operator=(*groupBox);
- box.rect = checkBoxRect;
- proxy()->drawPrimitive(PE_IndicatorCheckBox, &box, p);
- }
- }
- break;
- case CC_MdiControls:
- {
- QStyleOptionButton btnOpt;
- btnOpt.QStyleOption::operator=(*opt);
- btnOpt.state &= ~State_MouseOver;
- int bsx = 0;
- int bsy = 0;
- const int buttonIconMetric = proxy()->pixelMetric(PM_TitleBarButtonIconSize, &btnOpt);
- const QSize buttonIconSize(buttonIconMetric, buttonIconMetric);
- if (opt->subControls & QStyle::SC_MdiCloseButton) {
- if (opt->activeSubControls & QStyle::SC_MdiCloseButton && (opt->state & State_Sunken)) {
- btnOpt.state |= State_Sunken;
- btnOpt.state &= ~State_Raised;
- bsx = proxy()->pixelMetric(PM_ButtonShiftHorizontal);
- bsy = proxy()->pixelMetric(PM_ButtonShiftVertical);
- } else {
- btnOpt.state |= State_Raised;
- btnOpt.state &= ~State_Sunken;
- bsx = 0;
- bsy = 0;
- }
- btnOpt.rect = proxy()->subControlRect(CC_MdiControls, opt, SC_MdiCloseButton);
- proxy()->drawPrimitive(PE_PanelButtonCommand, &btnOpt, p);
- QPixmap pm = proxy()->standardIcon(SP_TitleBarCloseButton).pixmap(buttonIconSize, dpr(opt->window));
- proxy()->drawItemPixmap(p, btnOpt.rect.translated(bsx, bsy), Qt::AlignCenter, pm);
- }
- if (opt->subControls & QStyle::SC_MdiNormalButton) {
- if (opt->activeSubControls & QStyle::SC_MdiNormalButton && (opt->state & State_Sunken)) {
- btnOpt.state |= State_Sunken;
- btnOpt.state &= ~State_Raised;
- bsx = proxy()->pixelMetric(PM_ButtonShiftHorizontal);
- bsy = proxy()->pixelMetric(PM_ButtonShiftVertical);
- } else {
- btnOpt.state |= State_Raised;
- btnOpt.state &= ~State_Sunken;
- bsx = 0;
- bsy = 0;
- }
- btnOpt.rect = proxy()->subControlRect(CC_MdiControls, opt, SC_MdiNormalButton);
- proxy()->drawPrimitive(PE_PanelButtonCommand, &btnOpt, p);
- QPixmap pm = proxy()->standardIcon(SP_TitleBarNormalButton).pixmap(buttonIconSize, dpr(opt->window));
- proxy()->drawItemPixmap(p, btnOpt.rect.translated(bsx, bsy), Qt::AlignCenter, pm);
- }
- if (opt->subControls & QStyle::SC_MdiMinButton) {
- if (opt->activeSubControls & QStyle::SC_MdiMinButton && (opt->state & State_Sunken)) {
- btnOpt.state |= State_Sunken;
- btnOpt.state &= ~State_Raised;
- bsx = proxy()->pixelMetric(PM_ButtonShiftHorizontal);
- bsy = proxy()->pixelMetric(PM_ButtonShiftVertical);
- } else {
- btnOpt.state |= State_Raised;
- btnOpt.state &= ~State_Sunken;
- bsx = 0;
- bsy = 0;
- }
- btnOpt.rect = proxy()->subControlRect(CC_MdiControls, opt, SC_MdiMinButton);
- proxy()->drawPrimitive(PE_PanelButtonCommand, &btnOpt, p);
- QPixmap pm = proxy()->standardIcon(SP_TitleBarMinButton).pixmap(buttonIconSize, dpr(opt->window));
- proxy()->drawItemPixmap(p, btnOpt.rect.translated(bsx, bsy), Qt::AlignCenter, pm);
- }
- }
- break;
- default:
- qWarning("QCommonStyle::drawComplexControl: Control %d not handled", cc);
- }
-}
-
-/*!
- \reimp
-*/
-QStyle::SubControl QCommonStyle::hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt) const
-{
- SubControl sc = SC_None;
- switch (cc) {
- case CC_Slider:
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- QRect r = proxy()->subControlRect(cc, slider, SC_SliderHandle);
- if (r.isValid() && r.contains(pt)) {
- sc = SC_SliderHandle;
- } else {
- r = proxy()->subControlRect(cc, slider, SC_SliderGroove);
- if (r.isValid() && r.contains(pt))
- sc = SC_SliderGroove;
- }
- }
- break;
- case CC_ScrollBar:
- if (const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- QRect r;
- uint ctrl = SC_ScrollBarAddLine;
- while (ctrl <= SC_ScrollBarGroove) {
- r = proxy()->subControlRect(cc, scrollbar, QStyle::SubControl(ctrl));
- if (r.isValid() && r.contains(pt)) {
- sc = QStyle::SubControl(ctrl);
- break;
- }
- ctrl <<= 1;
- }
- }
- break;
- case CC_ToolButton:
- if (const QStyleOptionToolButton *toolbutton = qstyleoption_cast<const QStyleOptionToolButton *>(opt)) {
- QRect r;
- uint ctrl = SC_ToolButton;
- while (ctrl <= SC_ToolButtonMenu) {
- r = proxy()->subControlRect(cc, toolbutton, QStyle::SubControl(ctrl));
- if (r.isValid() && r.contains(pt)) {
- sc = QStyle::SubControl(ctrl);
- break;
- }
- ctrl <<= 1;
- }
- }
- break;
- case CC_SpinBox:
- if (const QStyleOptionSpinBox *spinbox = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) {
- QRect r;
- uint ctrl = SC_SpinBoxUp;
- while (ctrl <= SC_SpinBoxEditField) {
- r = proxy()->subControlRect(cc, spinbox, QStyle::SubControl(ctrl));
- if (r.isValid() && r.contains(pt)) {
- sc = QStyle::SubControl(ctrl);
- break;
- }
- ctrl <<= 1;
- }
- }
- break;
- case CC_TitleBar:
- if (const QStyleOptionTitleBar *tb = qstyleoption_cast<const QStyleOptionTitleBar *>(opt)) {
- QRect r;
- uint ctrl = SC_TitleBarSysMenu;
-
- while (ctrl <= SC_TitleBarLabel) {
- r = proxy()->subControlRect(cc, tb, QStyle::SubControl(ctrl));
- if (r.isValid() && r.contains(pt)) {
- sc = QStyle::SubControl(ctrl);
- break;
- }
- ctrl <<= 1;
- }
- }
- break;
- case CC_ComboBox:
- if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- QRect r;
- uint ctrl = SC_ComboBoxArrow; // Start here and go down.
- while (ctrl > 0) {
- r = proxy()->subControlRect(cc, cb, QStyle::SubControl(ctrl));
- if (r.isValid() && r.contains(pt)) {
- sc = QStyle::SubControl(ctrl);
- break;
- }
- ctrl >>= 1;
- }
- }
- break;
- case CC_GroupBox:
- if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast<const QStyleOptionGroupBox *>(opt)) {
- QRect r;
- uint ctrl = SC_GroupBoxCheckBox;
- while (ctrl <= SC_GroupBoxFrame) {
- r = proxy()->subControlRect(cc, groupBox, QStyle::SubControl(ctrl));
- if (r.isValid() && r.contains(pt)) {
- sc = QStyle::SubControl(ctrl);
- break;
- }
- ctrl <<= 1;
- }
- }
- break;
- case CC_MdiControls:
- {
- QRect r;
- uint ctrl = SC_MdiMinButton;
- while (ctrl <= SC_MdiCloseButton) {
- r = proxy()->subControlRect(CC_MdiControls, opt, QStyle::SubControl(ctrl));
- if (r.isValid() && r.contains(pt) && (opt->subControls & ctrl)) {
- sc = QStyle::SubControl(ctrl);
- return sc;
- }
- ctrl <<= 1;
- }
- }
- break;
- default:
- qWarning("QCommonStyle::hitTestComplexControl: Case %d not handled", cc);
- }
- return sc;
-}
-
-/*!
- \reimp
-*/
-QRect QCommonStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc) const
-{
- QRect ret;
- switch (cc) {
- case CC_Slider:
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- int tickOffset = proxy()->pixelMetric(PM_SliderTickmarkOffset, slider);
- int thickness = proxy()->pixelMetric(PM_SliderControlThickness, slider);
-
- switch (sc) {
- case SC_SliderHandle: {
- int sliderPos = 0;
- int len = proxy()->pixelMetric(PM_SliderLength, slider);
- bool horizontal = slider->orientation == Qt::Horizontal;
- sliderPos = sliderPositionFromValue(slider->minimum, slider->maximum,
- slider->sliderPosition,
- (horizontal ? slider->rect.width()
- : slider->rect.height()) - len,
- slider->upsideDown);
- if (horizontal)
- ret.setRect(slider->rect.x() + sliderPos, slider->rect.y() + tickOffset, len, thickness);
- else
- ret.setRect(slider->rect.x() + tickOffset, slider->rect.y() + sliderPos, thickness, len);
- break; }
- case SC_SliderGroove:
- if (slider->orientation == Qt::Horizontal)
- ret.setRect(slider->rect.x(), slider->rect.y() + tickOffset,
- slider->rect.width(), thickness);
- else
- ret.setRect(slider->rect.x() + tickOffset, slider->rect.y(),
- thickness, slider->rect.height());
- break;
- default:
- break;
- }
- ret = visualRect(slider->direction, slider->rect, ret);
- }
- break;
- case CC_ScrollBar:
- if (const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- const QRect scrollBarRect = scrollbar->rect;
- int sbextent = 0;
- if (!proxy()->styleHint(SH_ScrollBar_Transient, scrollbar))
- sbextent = proxy()->pixelMetric(PM_ScrollBarExtent, scrollbar);
- int maxlen = ((scrollbar->orientation == Qt::Horizontal) ?
- scrollBarRect.width() : scrollBarRect.height()) - (sbextent * 2);
- int sliderlen;
-
- // calculate slider length
- if (scrollbar->maximum != scrollbar->minimum) {
- uint range = scrollbar->maximum - scrollbar->minimum;
- sliderlen = (qint64(scrollbar->pageStep) * maxlen) / (range + scrollbar->pageStep);
-
- int slidermin = proxy()->pixelMetric(PM_ScrollBarSliderMin, scrollbar);
- if (sliderlen < slidermin || range > INT_MAX / 2)
- sliderlen = slidermin;
- if (sliderlen > maxlen)
- sliderlen = maxlen;
- } else {
- sliderlen = maxlen;
- }
-
- int sliderstart = sbextent + sliderPositionFromValue(scrollbar->minimum,
- scrollbar->maximum,
- scrollbar->sliderPosition,
- maxlen - sliderlen,
- scrollbar->upsideDown);
-
- switch (sc) {
- case SC_ScrollBarSubLine: // top/left button
- if (scrollbar->orientation == Qt::Horizontal) {
- int buttonWidth = qMin(scrollBarRect.width() / 2, sbextent);
- ret.setRect(0, 0, buttonWidth, scrollBarRect.height());
- } else {
- int buttonHeight = qMin(scrollBarRect.height() / 2, sbextent);
- ret.setRect(0, 0, scrollBarRect.width(), buttonHeight);
- }
- break;
- case SC_ScrollBarAddLine: // bottom/right button
- if (scrollbar->orientation == Qt::Horizontal) {
- int buttonWidth = qMin(scrollBarRect.width()/2, sbextent);
- ret.setRect(scrollBarRect.width() - buttonWidth, 0, buttonWidth, scrollBarRect.height());
- } else {
- int buttonHeight = qMin(scrollBarRect.height()/2, sbextent);
- ret.setRect(0, scrollBarRect.height() - buttonHeight, scrollBarRect.width(), buttonHeight);
- }
- break;
- case SC_ScrollBarSubPage: // between top/left button and slider
- if (scrollbar->orientation == Qt::Horizontal)
- ret.setRect(sbextent, 0, sliderstart - sbextent, scrollBarRect.height());
- else
- ret.setRect(0, sbextent, scrollBarRect.width(), sliderstart - sbextent);
- break;
- case SC_ScrollBarAddPage: // between bottom/right button and slider
- if (scrollbar->orientation == Qt::Horizontal)
- ret.setRect(sliderstart + sliderlen, 0,
- maxlen - sliderstart - sliderlen + sbextent, scrollBarRect.height());
- else
- ret.setRect(0, sliderstart + sliderlen, scrollBarRect.width(),
- maxlen - sliderstart - sliderlen + sbextent);
- break;
- case SC_ScrollBarGroove:
- if (scrollbar->orientation == Qt::Horizontal)
- ret.setRect(sbextent, 0, scrollBarRect.width() - sbextent * 2,
- scrollBarRect.height());
- else
- ret.setRect(0, sbextent, scrollBarRect.width(),
- scrollBarRect.height() - sbextent * 2);
- break;
- case SC_ScrollBarSlider:
- if (scrollbar->orientation == Qt::Horizontal)
- ret.setRect(sliderstart, 0, sliderlen, scrollBarRect.height());
- else
- ret.setRect(0, sliderstart, scrollBarRect.width(), sliderlen);
- break;
- default:
- break;
- }
- ret = visualRect(scrollbar->direction, scrollBarRect, ret);
- }
- break;
- case CC_SpinBox:
- if (const QStyleOptionSpinBox *spinbox = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) {
- QSize bs;
- int fw = spinbox->frame ? proxy()->pixelMetric(PM_SpinBoxFrameWidth, spinbox) : 0;
- bs.setHeight(qMax(8, spinbox->rect.height()/2 - fw));
- // 1.6 -approximate golden mean
- bs.setWidth(qMax(16, qMin(bs.height() * 8 / 5, spinbox->rect.width() / 4)));
- int y = fw + spinbox->rect.y();
- int x, lx, rx;
- x = spinbox->rect.x() + spinbox->rect.width() - fw - bs.width();
- lx = fw;
- rx = x - fw;
- switch (sc) {
- case SC_SpinBoxUp:
- if (spinbox->buttonSymbols == QStyleOptionSpinBox::NoButtons)
- return QRect();
- ret = QRect(x, y, bs.width(), bs.height());
- break;
- case SC_SpinBoxDown:
- if (spinbox->buttonSymbols == QStyleOptionSpinBox::NoButtons)
- return QRect();
-
- ret = QRect(x, y + bs.height(), bs.width(), bs.height());
- break;
- case SC_SpinBoxEditField:
- if (spinbox->buttonSymbols == QStyleOptionSpinBox::NoButtons) {
- ret = QRect(lx, fw, spinbox->rect.width() - 2*fw, spinbox->rect.height() - 2*fw);
- } else {
- ret = QRect(lx, fw, rx, spinbox->rect.height() - 2*fw);
- }
- break;
- case SC_SpinBoxFrame:
- ret = spinbox->rect;
- default:
- break;
- }
- ret = visualRect(spinbox->direction, spinbox->rect, ret);
- }
- break;
- case CC_ToolButton:
- if (const QStyleOptionToolButton *tb = qstyleoption_cast<const QStyleOptionToolButton *>(opt)) {
- int mbi = proxy()->pixelMetric(PM_MenuButtonIndicator, tb);
- ret = tb->rect;
- switch (sc) {
- case SC_ToolButton:
- if ((tb->features
- & (QStyleOptionToolButton::MenuButtonPopup | QStyleOptionToolButton::PopupDelay))
- == QStyleOptionToolButton::MenuButtonPopup)
- ret.adjust(0, 0, -mbi, 0);
- break;
- case SC_ToolButtonMenu:
- if ((tb->features
- & (QStyleOptionToolButton::MenuButtonPopup | QStyleOptionToolButton::PopupDelay))
- == QStyleOptionToolButton::MenuButtonPopup)
- ret.adjust(ret.width() - mbi, 0, 0, 0);
- break;
- default:
- break;
- }
- ret = visualRect(tb->direction, tb->rect, ret);
- }
- break;
- case CC_ComboBox:
- if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- const qreal dpi = QStyleHelper::dpi(opt);
- const int x = cb->rect.x(), y = cb->rect.y(), wi = cb->rect.width(), he = cb->rect.height();
- const int margin = cb->frame ? qRound(QStyleHelper::dpiScaled(3, dpi)) : 0;
- const int bmarg = cb->frame ? qRound(QStyleHelper::dpiScaled(2, dpi)) : 0;
- const int xpos = x + wi - bmarg - qRound(QStyleHelper::dpiScaled(16, dpi));
-
-
- switch (sc) {
- case SC_ComboBoxFrame:
- ret = cb->rect;
- break;
- case SC_ComboBoxArrow:
- ret.setRect(xpos, y + bmarg, qRound(QStyleHelper::dpiScaled(16, opt)), he - 2*bmarg);
- break;
- case SC_ComboBoxEditField:
- ret.setRect(x + margin, y + margin, wi - 2 * margin - qRound(QStyleHelper::dpiScaled(16, dpi)), he - 2 * margin);
- break;
- case SC_ComboBoxListBoxPopup:
- ret = cb->rect;
- break;
- default:
- break;
- }
- ret = visualRect(cb->direction, cb->rect, ret);
- }
- break;
- case CC_TitleBar:
- if (const QStyleOptionTitleBar *tb = qstyleoption_cast<const QStyleOptionTitleBar *>(opt)) {
- const int controlMargin = 2;
- const int controlHeight = tb->rect.height() - controlMargin *2;
- const int delta = controlHeight + controlMargin;
- int offset = 0;
-
- bool isMinimized = tb->titleBarState & Qt::WindowMinimized;
- bool isMaximized = tb->titleBarState & Qt::WindowMaximized;
-
- switch (sc) {
- case SC_TitleBarLabel:
- if (tb->titleBarFlags & (Qt::WindowTitleHint | Qt::WindowSystemMenuHint)) {
- ret = tb->rect;
- if (tb->titleBarFlags & Qt::WindowSystemMenuHint)
- ret.adjust(delta, 0, -delta, 0);
- if (tb->titleBarFlags & Qt::WindowMinimizeButtonHint)
- ret.adjust(0, 0, -delta, 0);
- if (tb->titleBarFlags & Qt::WindowMaximizeButtonHint)
- ret.adjust(0, 0, -delta, 0);
- if (tb->titleBarFlags & Qt::WindowShadeButtonHint)
- ret.adjust(0, 0, -delta, 0);
- if (tb->titleBarFlags & Qt::WindowContextHelpButtonHint)
- ret.adjust(0, 0, -delta, 0);
- }
- break;
- case SC_TitleBarContextHelpButton:
- if (tb->titleBarFlags & Qt::WindowContextHelpButtonHint)
- offset += delta;
- Q_FALLTHROUGH();
- case SC_TitleBarMinButton:
- if (!isMinimized && (tb->titleBarFlags & Qt::WindowMinimizeButtonHint))
- offset += delta;
- else if (sc == SC_TitleBarMinButton)
- break;
- Q_FALLTHROUGH();
- case SC_TitleBarNormalButton:
- if (isMinimized && (tb->titleBarFlags & Qt::WindowMinimizeButtonHint))
- offset += delta;
- else if (isMaximized && (tb->titleBarFlags & Qt::WindowMaximizeButtonHint))
- offset += delta;
- else if (sc == SC_TitleBarNormalButton)
- break;
- Q_FALLTHROUGH();
- case SC_TitleBarMaxButton:
- if (!isMaximized && (tb->titleBarFlags & Qt::WindowMaximizeButtonHint))
- offset += delta;
- else if (sc == SC_TitleBarMaxButton)
- break;
- Q_FALLTHROUGH();
- case SC_TitleBarShadeButton:
- if (!isMinimized && (tb->titleBarFlags & Qt::WindowShadeButtonHint))
- offset += delta;
- else if (sc == SC_TitleBarShadeButton)
- break;
- Q_FALLTHROUGH();
- case SC_TitleBarUnshadeButton:
- if (isMinimized && (tb->titleBarFlags & Qt::WindowShadeButtonHint))
- offset += delta;
- else if (sc == SC_TitleBarUnshadeButton)
- break;
- Q_FALLTHROUGH();
- case SC_TitleBarCloseButton:
- if (tb->titleBarFlags & Qt::WindowSystemMenuHint)
- offset += delta;
- else if (sc == SC_TitleBarCloseButton)
- break;
- ret.setRect(tb->rect.right() - offset, tb->rect.top() + controlMargin,
- controlHeight, controlHeight);
- break;
- case SC_TitleBarSysMenu:
- if (tb->titleBarFlags & Qt::WindowSystemMenuHint) {
- ret.setRect(tb->rect.left() + controlMargin, tb->rect.top() + controlMargin,
- controlHeight, controlHeight);
- }
- break;
- default:
- break;
- }
- ret = visualRect(tb->direction, tb->rect, ret);
- }
- break;
- case CC_GroupBox: {
- if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast<const QStyleOptionGroupBox *>(opt)) {
- switch (sc) {
- case SC_GroupBoxFrame:
- case SC_GroupBoxContents: {
- int topMargin = 0;
- int topHeight = 0;
- int verticalAlignment = proxy()->styleHint(SH_GroupBox_TextLabelVerticalAlignment, groupBox);
- bool hasCheckBox = groupBox->subControls & QStyle::SC_GroupBoxCheckBox;
- if (groupBox->text.size() || hasCheckBox) {
- int checkBoxHeight = hasCheckBox ? proxy()->pixelMetric(PM_IndicatorHeight, groupBox) : 0;
- topHeight = qMax(groupBox->fontMetrics.height(), checkBoxHeight);
- if (verticalAlignment & Qt::AlignVCenter)
- topMargin = topHeight / 2;
- else if (verticalAlignment & Qt::AlignTop)
- topMargin = topHeight;
- }
-
- QRect frameRect = groupBox->rect;
- frameRect.setTop(topMargin);
-
- if (sc == SC_GroupBoxFrame) {
- ret = frameRect;
- break;
- }
-
- int frameWidth = 0;
- if ((groupBox->features & QStyleOptionFrame::Flat) == 0)
- frameWidth = proxy()->pixelMetric(PM_DefaultFrameWidth, groupBox);
- ret = frameRect.adjusted(frameWidth, frameWidth + topHeight - topMargin,
- -frameWidth, -frameWidth);
- break;
- }
- case SC_GroupBoxCheckBox:
- case SC_GroupBoxLabel: {
- QFontMetrics fontMetrics = groupBox->fontMetrics;
- int th = fontMetrics.height();
- int tw = fontMetrics.size(Qt::TextShowMnemonic, groupBox->text + QLatin1Char(' ')).width();
- int marg = (groupBox->features & QStyleOptionFrame::Flat) ? 0 : 8;
- ret = groupBox->rect.adjusted(marg, 0, -marg, 0);
-
- int indicatorWidth = proxy()->pixelMetric(PM_IndicatorWidth, opt);
- int indicatorHeight = proxy()->pixelMetric(PM_IndicatorHeight, opt);
- int indicatorSpace = proxy()->pixelMetric(PM_CheckBoxLabelSpacing, opt) - 1;
- bool hasCheckBox = groupBox->subControls & QStyle::SC_GroupBoxCheckBox;
- int checkBoxWidth = hasCheckBox ? (indicatorWidth + indicatorSpace) : 0;
- int checkBoxHeight = hasCheckBox ? indicatorHeight : 0;
-
- int h = qMax(th, checkBoxHeight);
- ret.setHeight(h);
-
- // Adjusted rect for label + indicatorWidth + indicatorSpace
- QRect totalRect = alignedRect(groupBox->direction, groupBox->textAlignment,
- QSize(tw + checkBoxWidth, h), ret);
-
- // Adjust totalRect if checkbox is set
- if (hasCheckBox) {
- bool ltr = groupBox->direction == Qt::LeftToRight;
- int left = 0;
- // Adjust for check box
- if (sc == SC_GroupBoxCheckBox) {
- left = ltr ? totalRect.left() : (totalRect.right() - indicatorWidth);
- int top = totalRect.top() + (h - checkBoxHeight) / 2;
- totalRect.setRect(left, top, indicatorWidth, indicatorHeight);
- // Adjust for label
- } else {
- left = ltr ? (totalRect.left() + checkBoxWidth - 2) : totalRect.left();
- int top = totalRect.top() + (h - th) / 2;
- totalRect.setRect(left, top, totalRect.width() - checkBoxWidth, th);
- }
- }
- ret = totalRect;
- break;
- }
- default:
- break;
- }
- }
- break;
- }
- case CC_MdiControls:
- {
- int numSubControls = 0;
- if (opt->subControls & SC_MdiCloseButton)
- ++numSubControls;
- if (opt->subControls & SC_MdiMinButton)
- ++numSubControls;
- if (opt->subControls & SC_MdiNormalButton)
- ++numSubControls;
- if (numSubControls == 0)
- break;
-
- int buttonWidth = opt->rect.width() / numSubControls - 1;
- int offset = 0;
- switch (sc) {
- case SC_MdiCloseButton:
- // Only one sub control, no offset needed.
- if (numSubControls == 1)
- break;
- offset += buttonWidth + 2;
- Q_FALLTHROUGH();
- case SC_MdiNormalButton:
- // No offset needed if
- // 1) There's only one sub control
- // 2) We have a close button and a normal button (offset already added in SC_MdiClose)
- if (numSubControls == 1 || (numSubControls == 2 && !(opt->subControls & SC_MdiMinButton)))
- break;
- if (opt->subControls & SC_MdiNormalButton)
- offset += buttonWidth;
- break;
- default:
- break;
- }
-
- // Subtract one pixel if we only have one sub control. At this point
- // buttonWidth is the actual width + 1 pixel margin, but we don't want the
- // margin when there are no other controllers.
- if (numSubControls == 1)
- --buttonWidth;
- ret = QRect(offset, 0, buttonWidth, opt->rect.height());
- break; }
- default:
- qWarning("QCommonStyle::subControlRect: Case %d not handled", cc);
- }
-
- return ret;
-}
-
-int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt) const
-{
- int ret;
-
- switch (m) {
- case PM_FocusFrameVMargin:
- case PM_FocusFrameHMargin:
- ret = 2;
- break;
- case PM_MenuBarVMargin:
- case PM_MenuBarHMargin:
- ret = 0;
- break;
- case PM_DialogButtonsSeparator:
- ret = int(QStyleHelper::dpiScaled(5, opt));
- break;
- case PM_DialogButtonsButtonWidth:
- ret = int(QStyleHelper::dpiScaled(70, opt));
- break;
- case PM_DialogButtonsButtonHeight:
- ret = int(QStyleHelper::dpiScaled(30, opt));
- break;
- case PM_TitleBarHeight: {
- if (const QStyleOptionTitleBar *tb = qstyleoption_cast<const QStyleOptionTitleBar *>(opt)) {
- if ((tb->titleBarFlags & Qt::WindowType_Mask) == Qt::Tool) {
- ret = qMax(opt->fontMetrics.height(), 16);
- } else {
- ret = qMax(opt->fontMetrics.height(), 18);
- }
- } else {
- ret = int(QStyleHelper::dpiScaled(18., opt));
- }
-
- break; }
- case PM_TitleBarButtonSize:
- ret = int(QStyleHelper::dpiScaled(16., opt));
- break;
- case PM_TitleBarButtonIconSize:
- ret = int(QStyleHelper::dpiScaled(16., opt));
- break;
-
- case PM_ScrollBarSliderMin:
- ret = int(QStyleHelper::dpiScaled(9., opt));
- break;
-
- case PM_ButtonMargin:
- ret = int(QStyleHelper::dpiScaled(6., opt));
- break;
-
- case PM_DockWidgetTitleBarButtonMargin:
- ret = int(QStyleHelper::dpiScaled(2., opt));
- break;
-
- case PM_ButtonDefaultIndicator:
- ret = 0;
- break;
-
- case PM_MenuButtonIndicator:
- ret = int(QStyleHelper::dpiScaled(12, opt));
- break;
-
- case PM_ButtonShiftHorizontal:
- case PM_ButtonShiftVertical:
-
- case PM_DefaultFrameWidth:
- ret = 2;
- break;
-
- case PM_ComboBoxFrameWidth:
- case PM_SpinBoxFrameWidth:
- case PM_MenuPanelWidth:
- case PM_TabBarBaseOverlap:
- case PM_TabBarBaseHeight:
- ret = proxy()->pixelMetric(PM_DefaultFrameWidth, opt);
- break;
- case PM_MdiSubWindowFrameWidth:
- ret = int(QStyleHelper::dpiScaled(4, opt));
- break;
- case PM_MdiSubWindowMinimizedWidth:
- ret = int(QStyleHelper::dpiScaled(196, opt));
- break;
- case PM_ScrollBarExtent:
- ret = int(QStyleHelper::dpiScaled(16, opt));
- break;
- case PM_MaximumDragDistance:
- ret = QGuiApplicationPrivate::platformTheme()->themeHint(QPlatformTheme::MaximumScrollBarDragDistance).toInt();
- break;
- case PM_SliderThickness:
- ret = int(QStyleHelper::dpiScaled(16, opt));
- break;
- case PM_SliderTickmarkOffset:
- if (const QStyleOptionSlider *sl = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- int space = (sl->orientation == Qt::Horizontal) ? sl->rect.height()
- : sl->rect.width();
- int thickness = proxy()->pixelMetric(PM_SliderControlThickness, sl);
- int ticks = sl->tickPosition;
-
- if (ticks == QStyleOptionSlider::TicksBothSides)
- ret = (space - thickness) / 2;
- else if (ticks == QStyleOptionSlider::TicksAbove)
- ret = space - thickness;
- else
- ret = 0;
- } else {
- ret = 0;
- }
- break;
- case PM_SliderSpaceAvailable:
- if (const QStyleOptionSlider *sl = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- if (sl->orientation == Qt::Horizontal)
- ret = sl->rect.width() - proxy()->pixelMetric(PM_SliderLength, sl);
- else
- ret = sl->rect.height() - proxy()->pixelMetric(PM_SliderLength, sl);
- } else {
- ret = 0;
- }
- break;
- case PM_DockWidgetSeparatorExtent:
- ret = int(QStyleHelper::dpiScaled(6, opt));
- break;
-
- case PM_DockWidgetHandleExtent:
- ret = int(QStyleHelper::dpiScaled(8, opt));
- break;
- case PM_DockWidgetTitleMargin:
- ret = 0;
- break;
- case PM_DockWidgetFrameWidth:
- ret = 1;
- break;
- case PM_SpinBoxSliderHeight:
- case PM_MenuBarPanelWidth:
- ret = 2;
- break;
- case PM_MenuBarItemSpacing:
- ret = 0;
- break;
- case PM_ToolBarFrameWidth:
- ret = 1;
- break;
-
- case PM_ToolBarItemMargin:
- ret = 0;
- break;
-
- case PM_ToolBarItemSpacing:
- ret = int(QStyleHelper::dpiScaled(4, opt));
- break;
-
- case PM_ToolBarHandleExtent:
- ret = int(QStyleHelper::dpiScaled(8, opt));
- break;
-
- case PM_ToolBarSeparatorExtent:
- ret = int(QStyleHelper::dpiScaled(6, opt));
- break;
-
- case PM_ToolBarExtensionExtent:
- ret = int(QStyleHelper::dpiScaled(12, opt));
- break;
-
- case PM_TabBarTabOverlap:
- ret = 3;
- break;
-
- case PM_TabBarTabHSpace:
- ret = int(QStyleHelper::dpiScaled(24, opt));
- break;
-
- case PM_TabBarTabShiftHorizontal:
- ret = 0;
- break;
-
- case PM_TabBarTabShiftVertical:
- ret = 2;
- break;
-
- case PM_TabBarTabVSpace: {
- const QStyleOptionTab *tb = qstyleoption_cast<const QStyleOptionTab *>(opt);
- if (tb && (tb->shape == QStyleOptionTab::RoundedNorth || tb->shape == QStyleOptionTab::RoundedSouth
- || tb->shape == QStyleOptionTab::RoundedWest || tb->shape == QStyleOptionTab::RoundedEast))
- ret = 8;
- else
- if(tb && (tb->shape == QStyleOptionTab::TriangularWest || tb->shape == QStyleOptionTab::TriangularEast))
- ret = 3;
- else
- ret = 2;
- break; }
-
- case PM_ProgressBarChunkWidth:
- ret = 9;
- break;
-
- case PM_IndicatorWidth:
- ret = int(QStyleHelper::dpiScaled(13, opt));
- break;
-
- case PM_IndicatorHeight:
- ret = int(QStyleHelper::dpiScaled(13, opt));
- break;
-
- case PM_ExclusiveIndicatorWidth:
- ret = int(QStyleHelper::dpiScaled(12, opt));
- break;
-
- case PM_ExclusiveIndicatorHeight:
- ret = int(QStyleHelper::dpiScaled(12, opt));
- break;
-
- case PM_MenuTearoffHeight:
- ret = int(QStyleHelper::dpiScaled(10, opt));
- break;
-
- case PM_MenuScrollerHeight:
- ret = int(QStyleHelper::dpiScaled(10, opt));
- break;
-
- case PM_MenuDesktopFrameWidth:
- case PM_MenuHMargin:
- case PM_MenuVMargin:
- ret = 0;
- break;
-
- case PM_HeaderMargin:
- ret = int(QStyleHelper::dpiScaled(4, opt));
- break;
- case PM_HeaderMarkSize:
- ret = int(QStyleHelper::dpiScaled(16, opt));
- break;
- case PM_HeaderGripMargin:
- ret = int(QStyleHelper::dpiScaled(4, opt));
- break;
- case PM_HeaderDefaultSectionSizeHorizontal:
- ret = int(QStyleHelper::dpiScaled(100, opt));
- break;
- case PM_HeaderDefaultSectionSizeVertical:
- ret = int(QStyleHelper::dpiScaled(30, opt));
- break;
- case PM_TabBarScrollButtonWidth:
- ret = int(QStyleHelper::dpiScaled(16, opt));
- break;
- case PM_LayoutLeftMargin:
- case PM_LayoutTopMargin:
- case PM_LayoutRightMargin:
- case PM_LayoutBottomMargin:
- {
- bool isWindow = opt ? (opt->state & State_Window) : false;
- ret = proxy()->pixelMetric(isWindow ? PM_DefaultTopLevelMargin : PM_DefaultChildMargin);
- }
- break;
- case PM_LayoutHorizontalSpacing:
- case PM_LayoutVerticalSpacing:
- ret = proxy()->pixelMetric(PM_DefaultLayoutSpacing);
- break;
-
- case PM_DefaultTopLevelMargin:
- ret = int(QStyleHelper::dpiScaled(11, opt));
- break;
- case PM_DefaultChildMargin:
- ret = int(QStyleHelper::dpiScaled(9, opt));
- break;
- case PM_DefaultLayoutSpacing:
- ret = int(QStyleHelper::dpiScaled(6, opt));
- break;
-
- case PM_ToolBarIconSize:
- ret = 0;
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
- ret = theme->themeHint(QPlatformTheme::ToolBarIconSize).toInt();
- if (ret <= 0)
- ret = int(QStyleHelper::dpiScaled(24, opt));
- break;
-
- case PM_TabBarIconSize:
- case PM_ListViewIconSize:
- ret = proxy()->pixelMetric(PM_SmallIconSize, opt);
- break;
-
- case PM_ButtonIconSize:
- case PM_SmallIconSize:
- ret = int(QStyleHelper::dpiScaled(16, opt));
- break;
- case PM_IconViewIconSize:
- ret = proxy()->pixelMetric(PM_LargeIconSize, opt);
- break;
-
- case PM_LargeIconSize:
- ret = int(QStyleHelper::dpiScaled(32, opt));
- break;
-
- case PM_ToolTipLabelFrameWidth:
- ret = 1;
- break;
- case PM_CheckBoxLabelSpacing:
- case PM_RadioButtonLabelSpacing:
- ret = int(QStyleHelper::dpiScaled(6, opt));
- break;
- case PM_SizeGripSize:
- ret = int(QStyleHelper::dpiScaled(13, opt));
- break;
- case PM_MessageBoxIconSize:
-#ifdef Q_OS_MAC
- if (QGuiApplication::desktopSettingsAware()) {
- ret = 64; // No DPI scaling, it's handled elsewhere.
- } else
-#endif
- {
- ret = int(QStyleHelper::dpiScaled(32, opt));
- }
- break;
- case PM_TextCursorWidth:
- ret = QGuiApplicationPrivate::platformTheme()->themeHint(QPlatformTheme::TextCursorWidth).toInt();
- break;
- case PM_TabBar_ScrollButtonOverlap:
- ret = 1;
- break;
- case PM_TabCloseIndicatorWidth:
- case PM_TabCloseIndicatorHeight:
- ret = int(QStyleHelper::dpiScaled(16, opt));
- break;
- case PM_ScrollView_ScrollBarSpacing:
- ret = 2 * proxy()->pixelMetric(PM_DefaultFrameWidth, opt);
- break;
- case PM_ScrollView_ScrollBarOverlap:
- ret = 0;
- break;
- case PM_SubMenuOverlap:
- ret = -proxy()->pixelMetric(QStyle::PM_MenuPanelWidth, opt);
- break;
- case PM_TreeViewIndentation:
- ret = int(QStyleHelper::dpiScaled(20, opt));
- break;
- default:
- ret = 0;
- break;
- }
-
- return ret;
-}
-
-QSize QCommonStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &csz) const
-{
- Q_D(const QCommonStyle);
- QSize sz(csz);
- switch (ct) {
- case CT_PushButton:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- int w = csz.width(),
- h = csz.height(),
- bm = proxy()->pixelMetric(PM_ButtonMargin, btn),
- fw = proxy()->pixelMetric(PM_DefaultFrameWidth, btn) * 2;
- w += bm + fw;
- h += bm + fw;
- if (btn->features & QStyleOptionButton::AutoDefaultButton){
- int dbw = proxy()->pixelMetric(PM_ButtonDefaultIndicator, btn) * 2;
- w += dbw;
- h += dbw;
- }
- sz = QSize(w, h);
- }
- break;
- case CT_RadioButton:
- case CT_CheckBox:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- bool isRadio = (ct == CT_RadioButton);
-
- int w = proxy()->pixelMetric(isRadio ? PM_ExclusiveIndicatorWidth
- : PM_IndicatorWidth, btn);
- int h = proxy()->pixelMetric(isRadio ? PM_ExclusiveIndicatorHeight
- : PM_IndicatorHeight, btn);
-
- int margins = 0;
- // we add 4 pixels for label margins
- if (!btn->icon.isNull() || !btn->text.isEmpty())
- margins = 4 + proxy()->pixelMetric(isRadio ? PM_RadioButtonLabelSpacing
- : PM_CheckBoxLabelSpacing, opt);
- sz += QSize(w + margins, 4);
- sz.setHeight(qMax(sz.height(), h));
- }
- break;
- case CT_MenuItem:
- if (const QStyleOptionMenuItem *mi = qstyleoption_cast<const QStyleOptionMenuItem *>(opt)) {
- bool checkable = mi->menuHasCheckableItems;
- int maxpmw = mi->maxIconWidth;
- int w = sz.width(), h = sz.height();
- if (mi->menuItemType == QStyleOptionMenuItem::Separator) {
- w = 10;
- h = 2;
- } else {
- h = mi->fontMetrics.height() + 8;
- if (!mi->icon.isNull()) {
- int iconExtent = proxy()->pixelMetric(PM_SmallIconSize);
- h = qMax(h, mi->icon.actualSize(QSize(iconExtent, iconExtent)).height() + 4);
- }
- }
- if (mi->text.contains(QLatin1Char('\t')))
- w += 12;
- if (maxpmw > 0)
- w += maxpmw + 6;
- if (checkable && maxpmw < 20)
- w += 20 - maxpmw;
- if (checkable || maxpmw > 0)
- w += 2;
- w += 12;
- sz = QSize(w, h);
- }
- break;
- case CT_ToolButton:
- sz = QSize(sz.width() + 6, sz.height() + 5);
- break;
- case CT_ComboBox:
- if (const QStyleOptionComboBox *cmb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- int fw = cmb->frame ? proxy()->pixelMetric(PM_ComboBoxFrameWidth, opt) * 2 : 0;
- const int textMargins = 2*(proxy()->pixelMetric(PM_FocusFrameHMargin) + 1);
- // QItemDelegate::sizeHint expands the textMargins two times, thus the 2*textMargins...
- int other = qMax(23, 2*textMargins + proxy()->pixelMetric(QStyle::PM_ScrollBarExtent, opt));
- sz = QSize(sz.width() + fw + other, sz.height() + fw);
- }
- break;
- case CT_HeaderSection:
- if (const QStyleOptionHeader *hdr = qstyleoption_cast<const QStyleOptionHeader *>(opt)) {
- bool nullIcon = hdr->icon.isNull();
- int margin = proxy()->pixelMetric(QStyle::PM_HeaderMargin, hdr);
- int iconSize = nullIcon ? 0 : proxy()->pixelMetric(QStyle::PM_SmallIconSize, hdr);
- QSize txt = hdr->fontMetrics.size(0, hdr->text);
- sz.setHeight(margin + qMax(iconSize, txt.height()) + margin);
- sz.setWidth((nullIcon ? 0 : margin) + iconSize
- + (hdr->text.isNull() ? 0 : margin) + txt.width() + margin);
- if (hdr->sortIndicator != QStyleOptionHeader::None) {
- int margin = proxy()->pixelMetric(QStyle::PM_HeaderMargin, hdr);
- if (hdr->orientation == Qt::Horizontal)
- sz.rwidth() += sz.height() + margin;
- else
- sz.rheight() += sz.width() + margin;
- }
- }
- break;
- case CT_TabWidget:
- sz += QSize(4, 4);
- break;
- case CT_LineEdit:
- if (const QStyleOptionFrame *f = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- const int borderSize = 2 * f->lineWidth;
- sz += QSize(borderSize, borderSize);
- const int minSize = 10;
- if (sz.width() < minSize)
- sz.rwidth() = minSize;
- if (sz.height() < minSize)
- sz.rheight() = minSize;
- }
- break;
- case CT_GroupBox:
- if (const QStyleOptionGroupBox *styleOpt = qstyleoption_cast<const QStyleOptionGroupBox *>(opt)) {
- if (sz.isEmpty())
- sz = QSize(20, 20);
- sz += QSize(styleOpt->features.testFlag(QStyleOptionFrame::Flat) ? 0 : 16, 0);
- }
- break;
- case CT_MdiControls:
- if (const QStyleOptionComplex *styleOpt = qstyleoption_cast<const QStyleOptionComplex *>(opt)) {
- const int buttonSize = proxy()->pixelMetric(PM_TitleBarButtonSize, styleOpt);
- int width = 1;
- if (styleOpt->subControls & SC_MdiMinButton)
- width += buttonSize + 1;
- if (styleOpt->subControls & SC_MdiNormalButton)
- width += buttonSize + 1;
- if (styleOpt->subControls & SC_MdiCloseButton)
- width += buttonSize + 1;
- sz = QSize(width, buttonSize);
- } else {
- const int buttonSize = proxy()->pixelMetric(PM_TitleBarButtonSize, opt);
- sz = QSize(1 + 3 * (buttonSize + 1), buttonSize);
- }
- break;
- case CT_ItemViewItem:
- if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
- QRect decorationRect, displayRect, checkRect;
- d->viewItemLayout(vopt, &checkRect, &decorationRect, &displayRect, true);
- sz = (decorationRect|displayRect|checkRect).size();
- if (decorationRect.isValid() && sz.height() == decorationRect.height())
- sz.rheight() += 2; // Prevent icons from overlapping.
- }
- break;
- case CT_SpinBox:
- if (const QStyleOptionSpinBox *vopt = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) {
- // Add button + frame widths
- if (vopt->subControls == SC_SpinBoxFrame) {
- const qreal dpi = QStyleHelper::dpi(opt);
- const bool hasButtons = (vopt->buttonSymbols != QStyleOptionSpinBox::NoButtons);
- const int buttonWidth = hasButtons ? qRound(QStyleHelper::dpiScaled(16, dpi)) : 0;
- const int fw = vopt->frame ? proxy()->pixelMetric(PM_SpinBoxFrameWidth, vopt) : 0;
- sz += QSize(buttonWidth + 2*fw, 1 + 2*fw);
- } else {
- const QSize buttonSize = proxy()->subControlRect(CC_SpinBox, vopt, SC_SpinBoxUp).size();
- const int upAndDownTogetherHeight = buttonSize.height() * 2;
- sz += QSize(buttonSize.width(), upAndDownTogetherHeight);
- }
- }
- break;
- case CT_Slider:
- if (const QStyleOptionSlider *option = qstyleoption_cast<const QStyleOptionSlider *>(opt))
- sz = subControlRect(QStyle::CC_Slider, option, QStyle::SC_SliderHandle).size();
- break;
- case CT_Dial:
- sz = QSize(20, 20);
- break;
- case CT_Frame:
- if (const QStyleOptionFrame *option = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- const int ninePatchSplit = 1;
- int w = qMax(10, (option->lineWidth * 2) + ninePatchSplit);
- sz = QSize(w, w);
- }
- break;
- case CT_ProgressBar:
- if (sz.isNull()) {
- // Special case: return minimum nine patch image size
- sz = QSize(10, 10);
- }
- break;
- case CT_ScrollBar:
- case CT_MenuBar:
- case CT_Menu:
- case CT_MenuBarItem:
- case CT_TabBarTab:
- // just return the contentsSize for now
- Q_FALLTHROUGH();
- default:
- break;
- }
- return sz;
-}
-
-QFont QCommonStyle::font(QStyle::ControlElement element, const QStyle::State state) const
-{
- Q_UNUSED(element);
- Q_UNUSED(state);
- return QGuiApplication::font();
-}
-
-QMargins QCommonStyle::ninePatchMargins(QStyle::ControlElement /*ce*/, const QStyleOption * /*opt*/, const QSize &imageSize) const
-{
- // By default, we just divide the image at the center
- int w = imageSize.width() / 2;
- int h = imageSize.height() / 2;
- return QMargins(w, h, w, h);
-}
-
-QMargins QCommonStyle::ninePatchMargins(QStyle::ComplexControl /*cc*/, const QStyleOptionComplex * /*opt*/, const QSize &imageSize) const
-{
- // By default, we just divide the image at the center
- int w = imageSize.width() / 2;
- int h = imageSize.height() / 2;
- return QMargins(w, h, w, h);
-}
-
-int QCommonStyle::styleHint(StyleHint sh, const QStyleOption *opt, QStyleHintReturn *hret) const
-{
- int ret = 0;
-
- switch (sh) {
- case SH_Menu_KeyboardSearch:
- ret = false;
- break;
- case SH_Slider_AbsoluteSetButtons:
- ret = Qt::MiddleButton;
- break;
- case SH_Slider_PageSetButtons:
- ret = Qt::LeftButton;
- break;
- case SH_ScrollBar_ContextMenu:
- ret = true;
- break;
- case SH_GroupBox_TextLabelVerticalAlignment:
- ret = Qt::AlignVCenter;
- break;
- case SH_GroupBox_TextLabelColor:
- ret = opt ? int(opt->palette.color(QPalette::Text).rgba()) : 0;
- break;
-
- case SH_ListViewExpand_SelectMouseType:
- case SH_TabBar_SelectMouseType:
- ret = QEvent::MouseButtonPress;
- break;
-
- case SH_TabBar_Alignment:
- ret = Qt::AlignLeft;
- break;
-
- case SH_Header_ArrowAlignment:
- ret = Qt::AlignRight | Qt::AlignVCenter;
- break;
-
- case SH_TitleBar_AutoRaise:
- ret = false;
- break;
-
- case SH_Menu_SubMenuPopupDelay:
- ret = 256;
- break;
-
- case SH_Menu_SloppySubMenus:
- ret = true;
- break;
-
- case SH_Menu_SubMenuUniDirection:
- ret = false;
- break;
- case SH_Menu_SubMenuUniDirectionFailCount:
- ret = 1;
- break;
- case SH_Menu_SubMenuSloppySelectOtherActions:
- ret = true;
- break;
- case SH_Menu_SubMenuSloppyCloseTimeout:
- ret = 1000;
- break;
- case SH_Menu_SubMenuResetWhenReenteringParent:
- ret = false;
- break;
- case SH_Menu_SubMenuDontStartSloppyOnLeave:
- ret = false;
- break;
-
- case SH_ProgressDialog_TextLabelAlignment:
- ret = Qt::AlignCenter;
- break;
-
- case SH_BlinkCursorWhenTextSelected:
-#if defined(Q_OS_DARWIN)
- ret = 0;
-#else
- ret = 1;
-#endif
- break;
-
- case SH_Table_GridLineColor:
- if (opt)
- ret = opt->palette.color(QPalette::Mid).rgba();
- else
- ret = -1;
- break;
- case SH_LineEdit_PasswordCharacter: {
- const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme();
- const QPlatformTheme::ThemeHint hintType = QPlatformTheme::PasswordMaskCharacter;
- const QVariant hint = theme ? theme->themeHint(hintType) : QPlatformTheme::defaultThemeHint(hintType);
- ret = hint.toChar().unicode();
- break;
- }
- case SH_LineEdit_PasswordMaskDelay:
- ret = QGuiApplicationPrivate::platformTheme()->themeHint(QPlatformTheme::PasswordMaskDelay).toInt();
- break;
- case SH_ToolBox_SelectedPageTitleBold:
- ret = 1;
- break;
-
- case SH_UnderlineShortcut:
- ret = 1;
- break;
-
- case SH_SpinBox_ClickAutoRepeatRate:
- ret = 150;
- break;
-
- case SH_SpinBox_ClickAutoRepeatThreshold:
- ret = 500;
- break;
-
- case SH_SpinBox_KeyPressAutoRepeatRate:
- ret = 75;
- break;
-
- case SH_Menu_SelectionWrap:
- ret = true;
- break;
-
- case SH_Menu_FillScreenWithScroll:
- ret = true;
- break;
-
- case SH_ToolTipLabel_Opacity:
- ret = 255;
- break;
-
- case SH_Button_FocusPolicy:
- ret = Qt::StrongFocus;
- break;
-
- case SH_MessageBox_UseBorderForButtonSpacing:
- ret = 0;
- break;
-
- case SH_ToolButton_PopupDelay:
- ret = 600;
- break;
-
- case SH_FocusFrame_Mask:
- ret = 1;
- break;
- case SH_RubberBand_Mask:
- if (const QStyleOptionRubberBand *rbOpt = qstyleoption_cast<const QStyleOptionRubberBand *>(opt)) {
- ret = 0;
- if (rbOpt->shape == QStyleOptionRubberBand::Rectangle) {
- ret = true;
- if(QStyleHintReturnMask *mask = qstyleoption_cast<QStyleHintReturnMask*>(hret)) {
- mask->region = opt->rect;
- int margin = proxy()->pixelMetric(PM_DefaultFrameWidth) * 2;
- mask->region -= opt->rect.adjusted(margin, margin, -margin, -margin);
- }
- }
- }
- break;
- case SH_SpinControls_DisableOnBounds:
- ret = 1;
- break;
-
- case SH_Dial_BackgroundRole:
- ret = QPalette::Window;
- break;
-
- case SH_ComboBox_LayoutDirection:
- ret = opt ? opt->direction : Qt::LeftToRight;
- break;
-
- case SH_ItemView_EllipsisLocation:
- ret = Qt::AlignTrailing;
- break;
-
- case SH_ItemView_ShowDecorationSelected:
- ret = false;
- break;
-
- case SH_ItemView_ActivateItemOnSingleClick:
- ret = 0;
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
- ret = theme->themeHint(QPlatformTheme::ItemViewActivateItemOnSingleClick).toBool() ? 1 : 0;
- break;
- case SH_TitleBar_ModifyNotification:
- ret = true;
- break;
- case SH_ScrollBar_RollBetweenButtons:
- ret = false;
- break;
- case SH_TabBar_ElideMode:
- ret = Qt::ElideNone;
- break;
- case SH_DialogButtonLayout:
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
- ret = theme->themeHint(QPlatformTheme::DialogButtonBoxLayout).toInt();
- break;
- case SH_ComboBox_PopupFrameStyle:
- ret = QStyleOptionFrame::StyledPanel | QStyleOptionFrame::Plain;
- break;
- case SH_MessageBox_TextInteractionFlags:
- ret = Qt::LinksAccessibleByMouse;
- break;
- case SH_DialogButtonBox_ButtonsHaveIcons:
- ret = 0;
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
- ret = theme->themeHint(QPlatformTheme::DialogButtonBoxButtonsHaveIcons).toBool() ? 1 : 0;
- break;
- case SH_SpellCheckUnderlineStyle:
- ret = QTextCharFormat::WaveUnderline;
- break;
- case SH_MessageBox_CenterButtons:
- ret = true;
- break;
- case SH_ItemView_MovementWithoutUpdatingSelection:
- ret = true;
- break;
- case SH_FocusFrame_AboveWidget:
- ret = false;
- break;
- case SH_TabWidget_DefaultTabPosition:
- ret = QStyleOptionTabBarBase::North;
- break;
- case SH_ToolBar_Movable:
- ret = true;
- break;
- case SH_TextControl_FocusIndicatorTextCharFormat:
- ret = true;
- if (QStyleHintReturnVariant *vret = qstyleoption_cast<QStyleHintReturnVariant*>(hret)) {
- QPen outline(opt->palette.color(QPalette::Text), 1, Qt::DotLine);
- QTextCharFormat fmt;
- fmt.setProperty(QTextFormat::OutlinePen, outline);
- vret->variant = fmt;
- }
- break;
- case SH_WizardStyle:
- break;
- case SH_FormLayoutWrapPolicy:
- break;
- case SH_FormLayoutFieldGrowthPolicy:
- break;
- case SH_FormLayoutFormAlignment:
- ret = Qt::AlignLeft | Qt::AlignTop;
- break;
- case SH_FormLayoutLabelAlignment:
- ret = Qt::AlignLeft;
- break;
- case SH_ItemView_ArrowKeysNavigateIntoChildren:
- ret = false;
- break;
- case SH_ItemView_DrawDelegateFrame:
- ret = 0;
- break;
- case SH_TabBar_CloseButtonPosition:
- ret = QStyleOptionTabBarBase::RightSide;
- break;
- case SH_TabBar_ChangeCurrentDelay:
- ret = 500;
- break;
- case SH_DockWidget_ButtonsHaveFrame:
- ret = true;
- break;
- case SH_ToolButtonStyle:
- ret = 0;
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
- ret = theme->themeHint(QPlatformTheme::ToolButtonStyle).toInt();
- break;
- case SH_RequestSoftwareInputPanel:
- ret = RSIP_OnMouseClick;
- break;
- case SH_ScrollBar_Transient:
- ret = false;
- break;
- case SH_Menu_SupportsSections:
- ret = false;
- break;
- case SH_ToolTip_WakeUpDelay:
- ret = 700;
- break;
- case SH_ToolTip_FallAsleepDelay:
- ret = 2000;
- break;
- case SH_Widget_Animate:
- ret = true;
- break;
- case SH_Splitter_OpaqueResize:
- ret = true;
- break;
- case SH_ItemView_ScrollMode:
- ret = QStyleOptionViewItem::ScrollPerItem;
- break;
- case SH_TitleBar_ShowToolTipsOnButtons:
- ret = true;
- break;
- case SH_Widget_Animation_Duration:
- ret = styleHint(SH_Widget_Animate, opt, hret) ? 200 : 0;
- break;
- case SH_ComboBox_AllowWheelScrolling:
- ret = true;
- break;
- case SH_SpinBox_ButtonsInsideFrame:
- ret = true;
- break;
- case SH_SpinBox_StepModifier:
- ret = Qt::ControlModifier;
- break;
- default:
- ret = 0;
- break;
- }
-
- return ret;
-}
-
-#if QT_CONFIG(imageformat_xpm)
-static QPixmap cachedPixmapFromXPM(const char * const *xpm)
-{
- QPixmap result;
- const QString tag = QString::asprintf("xpm:0x%p", static_cast<const void*>(xpm));
- if (!QPixmapCache::find(tag, &result)) {
- result = QPixmap(xpm);
- QPixmapCache::insert(tag, result);
- }
- return result;
-}
-
-static inline QPixmap titleBarMenuCachedPixmapFromXPM() { return cachedPixmapFromXPM(qt_menu_xpm); }
-#endif
-
-static inline QString clearText16IconPath()
-{
- return QStringLiteral(":/qt-project.org/styles/commonstyle/images/cleartext-16.png");
-}
-
-#if defined(Q_OS_WIN) || QT_CONFIG(imageformat_png)
-static QIcon clearTextIcon(bool rtl)
-{
- const QString directionalThemeName = rtl
- ? QStringLiteral("edit-clear-locationbar-ltr") : QStringLiteral("edit-clear-locationbar-rtl");
- if (QIcon::hasThemeIcon(directionalThemeName))
- return QIcon::fromTheme(directionalThemeName);
- const QString themeName = QStringLiteral("edit-clear");
- if (QIcon::hasThemeIcon(themeName))
- return QIcon::fromTheme(themeName);
-
- QIcon icon;
-#ifndef QT_NO_IMAGEFORMAT_PNG
- QPixmap clearText16(clearText16IconPath());
- Q_ASSERT(!clearText16.size().isEmpty());
- icon.addPixmap(clearText16);
- QPixmap clearText32(QStringLiteral(":/qt-project.org/styles/commonstyle/images/cleartext-32.png"));
- Q_ASSERT(!clearText32.size().isEmpty());
- icon.addPixmap(clearText32);
- clearText32.setDevicePixelRatio(2); // The 32x32 pixmap can also be used for 16x16/devicePixelRatio=2
- icon.addPixmap(clearText32);
-#endif // !QT_NO_IMAGEFORMAT_PNG
- return icon;
-}
-#endif
-
-QPixmap QCommonStyle::standardPixmap(StandardPixmap sp, const QStyleOption *option) const
-{
- const bool rtl = (option && option->direction == Qt::RightToLeft) || (!option && QGuiApplication::isRightToLeft());
-#if QT_CONFIG(imageformat_png)
- QPixmap pixmap;
-
- if (QGuiApplication::desktopSettingsAware() && !QIcon::themeName().isEmpty()) {
- switch (sp) {
- case SP_DialogYesButton:
- case SP_DialogOkButton:
- pixmap = QIcon::fromTheme(QLatin1String("dialog-ok")).pixmap(16);
- break;
- case SP_DialogApplyButton:
- pixmap = QIcon::fromTheme(QLatin1String("dialog-ok-apply")).pixmap(16);
- break;
- case SP_DialogDiscardButton:
- pixmap = QIcon::fromTheme(QLatin1String("edit-delete")).pixmap(16);
- break;
- case SP_DialogCloseButton:
- pixmap = QIcon::fromTheme(QLatin1String("dialog-close")).pixmap(16);
- break;
- case SP_DirHomeIcon:
- pixmap = QIcon::fromTheme(QLatin1String("user-home")).pixmap(16);
- break;
- case SP_MessageBoxInformation:
- pixmap = QIcon::fromTheme(QLatin1String("messagebox_info")).pixmap(16);
- break;
- case SP_MessageBoxWarning:
- pixmap = QIcon::fromTheme(QLatin1String("messagebox_warning")).pixmap(16);
- break;
- case SP_MessageBoxCritical:
- pixmap = QIcon::fromTheme(QLatin1String("messagebox_critical")).pixmap(16);
- break;
- case SP_MessageBoxQuestion:
- pixmap = QIcon::fromTheme(QLatin1String("help")).pixmap(16);
- break;
- case SP_DialogOpenButton:
- case SP_DirOpenIcon:
- pixmap = QIcon::fromTheme(QLatin1String("folder-open")).pixmap(16);
- break;
- case SP_FileIcon:
- pixmap = QIcon::fromTheme(QLatin1String("text-x-generic"),
- QIcon::fromTheme(QLatin1String("empty"))).pixmap(16);
- break;
- case SP_DirClosedIcon:
- case SP_DirIcon:
- pixmap = QIcon::fromTheme(QLatin1String("folder")).pixmap(16);
- break;
- case SP_DriveFDIcon:
- pixmap = QIcon::fromTheme(QLatin1String("media-floppy"),
- QIcon::fromTheme(QLatin1String("3floppy_unmount"))).pixmap(16);
- break;
- case SP_ComputerIcon:
- pixmap = QIcon::fromTheme(QLatin1String("computer"),
- QIcon::fromTheme(QLatin1String("system"))).pixmap(16);
- break;
- case SP_DesktopIcon:
- pixmap = QIcon::fromTheme(QLatin1String("user-desktop"),
- QIcon::fromTheme(QLatin1String("desktop"))).pixmap(16);
- break;
- case SP_TrashIcon:
- pixmap = QIcon::fromTheme(QLatin1String("user-trash"),
- QIcon::fromTheme(QLatin1String("trashcan_empty"))).pixmap(16);
- break;
- case SP_DriveCDIcon:
- case SP_DriveDVDIcon:
- pixmap = QIcon::fromTheme(QLatin1String("media-optical"),
- QIcon::fromTheme(QLatin1String("cdrom_unmount"))).pixmap(16);
- break;
- case SP_DriveHDIcon:
- pixmap = QIcon::fromTheme(QLatin1String("drive-harddisk"),
- QIcon::fromTheme(QLatin1String("hdd_unmount"))).pixmap(16);
- break;
- case SP_FileDialogToParent:
- pixmap = QIcon::fromTheme(QLatin1String("go-up"),
- QIcon::fromTheme(QLatin1String("up"))).pixmap(16);
- break;
- case SP_FileDialogNewFolder:
- pixmap = QIcon::fromTheme(QLatin1String("folder_new")).pixmap(16);
- break;
- case SP_ArrowUp:
- pixmap = QIcon::fromTheme(QLatin1String("go-up"),
- QIcon::fromTheme(QLatin1String("up"))).pixmap(16);
- break;
- case SP_ArrowDown:
- pixmap = QIcon::fromTheme(QLatin1String("go-down"),
- QIcon::fromTheme(QLatin1String("down"))).pixmap(16);
- break;
- case SP_ArrowRight:
- pixmap = QIcon::fromTheme(QLatin1String("go-next"),
- QIcon::fromTheme(QLatin1String("forward"))).pixmap(16);
- break;
- case SP_ArrowLeft:
- pixmap = QIcon::fromTheme(QLatin1String("go-previous"),
- QIcon::fromTheme(QLatin1String("back"))).pixmap(16);
- break;
- case SP_FileDialogDetailedView:
- pixmap = QIcon::fromTheme(QLatin1String("view_detailed")).pixmap(16);
- break;
- case SP_FileDialogListView:
- pixmap = QIcon::fromTheme(QLatin1String("view_icon")).pixmap(16);
- break;
- case SP_BrowserReload:
- pixmap = QIcon::fromTheme(QLatin1String("reload")).pixmap(16);
- break;
- case SP_BrowserStop:
- pixmap = QIcon::fromTheme(QLatin1String("process-stop")).pixmap(16);
- break;
- case SP_MediaPlay:
- pixmap = QIcon::fromTheme(QLatin1String("media-playback-start")).pixmap(16);
- break;
- case SP_MediaPause:
- pixmap = QIcon::fromTheme(QLatin1String("media-playback-pause")).pixmap(16);
- break;
- case SP_MediaStop:
- pixmap = QIcon::fromTheme(QLatin1String("media-playback-stop")).pixmap(16);
- break;
- case SP_MediaSeekForward:
- pixmap = QIcon::fromTheme(QLatin1String("media-seek-forward")).pixmap(16);
- break;
- case SP_MediaSeekBackward:
- pixmap = QIcon::fromTheme(QLatin1String("media-seek-backward")).pixmap(16);
- break;
- case SP_MediaSkipForward:
- pixmap = QIcon::fromTheme(QLatin1String("media-skip-forward")).pixmap(16);
- break;
- case SP_MediaSkipBackward:
- pixmap = QIcon::fromTheme(QLatin1String("media-skip-backward")).pixmap(16);
- break;
- case SP_DialogResetButton:
- pixmap = QIcon::fromTheme(QLatin1String("edit-clear")).pixmap(24);
- break;
- case SP_DialogHelpButton:
- pixmap = QIcon::fromTheme(QLatin1String("help-contents")).pixmap(24);
- break;
- case SP_DialogNoButton:
- case SP_DialogCancelButton:
- pixmap = QIcon::fromTheme(QLatin1String("dialog-cancel"),
- QIcon::fromTheme(QLatin1String("process-stop"))).pixmap(24);
- break;
- case SP_DialogSaveButton:
- pixmap = QIcon::fromTheme(QLatin1String("document-save")).pixmap(24);
- break;
- case SP_FileLinkIcon:
- pixmap = QIcon::fromTheme(QLatin1String("emblem-symbolic-link")).pixmap(16);
- if (!pixmap.isNull()) {
- QPixmap fileIcon = QIcon::fromTheme(QLatin1String("text-x-generic")).pixmap(16);
- if (fileIcon.isNull())
- fileIcon = QIcon::fromTheme(QLatin1String("empty")).pixmap(16);
- if (!fileIcon.isNull()) {
- QPainter painter(&fileIcon);
- painter.drawPixmap(0, 0, 16, 16, pixmap);
- return fileIcon;
- }
- }
- break;
- case SP_DirLinkIcon:
- pixmap = QIcon::fromTheme(QLatin1String("emblem-symbolic-link")).pixmap(16);
- if (!pixmap.isNull()) {
- QPixmap dirIcon = QIcon::fromTheme(QLatin1String("folder")).pixmap(16);
- if (!dirIcon.isNull()) {
- QPainter painter(&dirIcon);
- painter.drawPixmap(0, 0, 16, 16, pixmap);
- return dirIcon;
- }
- }
- break;
- case SP_LineEditClearButton:
- pixmap = clearTextIcon(rtl).pixmap(16);
- break;
- default:
- break;
- }
- }
-
- if (!pixmap.isNull())
- return pixmap;
-#endif // QT_CONFIG(imageformat_png)
- switch (sp) {
-#ifndef QT_NO_IMAGEFORMAT_XPM
- case SP_ToolBarHorizontalExtensionButton:
- if (rtl) {
- QImage im(tb_extension_arrow_h_xpm);
- im = im.convertToFormat(QImage::Format_ARGB32).mirrored(true, false);
- return QPixmap::fromImage(im);
- }
- return cachedPixmapFromXPM(tb_extension_arrow_h_xpm);
- case SP_ToolBarVerticalExtensionButton:
- return cachedPixmapFromXPM(tb_extension_arrow_v_xpm);
- case SP_FileDialogStart:
- return cachedPixmapFromXPM(filedialog_start_xpm);
- case SP_FileDialogEnd:
- return cachedPixmapFromXPM(filedialog_end_xpm);
-#endif
-#ifndef QT_NO_IMAGEFORMAT_PNG
- case SP_CommandLink:
- case SP_ArrowForward:
- if (rtl)
- return proxy()->standardPixmap(SP_ArrowLeft, option);
- return proxy()->standardPixmap(SP_ArrowRight, option);
- case SP_ArrowBack:
- if (rtl)
- return proxy()->standardPixmap(SP_ArrowRight, option);
- return proxy()->standardPixmap(SP_ArrowLeft, option);
- case SP_ArrowLeft:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/left-16.png"));
- case SP_ArrowRight:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/right-16.png"));
- case SP_ArrowUp:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/up-16.png"));
- case SP_ArrowDown:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/down-16.png"));
- case SP_FileDialogToParent:
- return proxy()->standardPixmap(SP_ArrowUp, option);
- case SP_FileDialogNewFolder:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/newdirectory-16.png"));
- case SP_FileDialogDetailedView:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/viewdetailed-16.png"));
- case SP_FileDialogInfoView:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/fileinfo-16.png"));
- case SP_FileDialogContentsView:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/filecontents-16.png"));
- case SP_FileDialogListView:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/viewlist-16.png"));
- case SP_FileDialogBack:
- return proxy()->standardPixmap(SP_ArrowBack, option);
- case SP_DriveHDIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/harddrive-16.png"));
- case SP_TrashIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/trash-16.png"));
- case SP_DriveFDIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/floppy-16.png"));
- case SP_DriveNetIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/networkdrive-16.png"));
- case SP_DesktopIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/desktop-16.png"));
- case SP_ComputerIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/computer-16.png"));
- case SP_DriveCDIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/cdr-16.png"));
- case SP_DriveDVDIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/dvd-16.png"));
- case SP_DirHomeIcon:
- case SP_DirOpenIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/diropen-16.png"));
- case SP_DirIcon:
- case SP_DirClosedIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/dirclosed-16.png"));
- case SP_DirLinkIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/dirlink-16.png"));
- case SP_FileIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/file-16.png"));
- case SP_FileLinkIcon:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/filelink-16.png"));
- case SP_DialogOkButton:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-ok-16.png"));
- case SP_DialogCancelButton:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-cancel-16.png"));
- case SP_DialogHelpButton:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-help-16.png"));
- case SP_DialogOpenButton:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-16.png"));
- case SP_DialogSaveButton:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-save-16.png"));
- case SP_DialogCloseButton:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-close-16.png"));
- case SP_DialogApplyButton:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-apply-16.png"));
- case SP_DialogResetButton:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-clear-16.png"));
- case SP_DialogDiscardButton:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-delete-16.png"));
- case SP_DialogYesButton:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-yes-16.png"));
- case SP_DialogNoButton:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-no-16.png"));
- case SP_BrowserReload:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/refresh-24.png"));
- case SP_BrowserStop:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/stop-24.png"));
- case SP_MediaPlay:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-play-32.png"));
- case SP_MediaPause:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-pause-32.png"));
- case SP_MediaStop:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-stop-32.png"));
- case SP_MediaSeekForward:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-seek-forward-32.png"));
- case SP_MediaSeekBackward:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-seek-backward-32.png"));
- case SP_MediaSkipForward:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-skip-forward-32.png"));
- case SP_MediaSkipBackward:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-skip-backward-32.png"));
- case SP_MediaVolume:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-volume-16.png"));
- case SP_MediaVolumeMuted:
- return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-volume-muted-16.png"));
- case SP_LineEditClearButton:
- return QPixmap(clearText16IconPath());
-#endif // QT_NO_IMAGEFORMAT_PNG
- default:
- break;
- }
-
-#ifndef QT_NO_IMAGEFORMAT_XPM
- switch (sp) {
- case SP_TitleBarMenuButton:
- return titleBarMenuCachedPixmapFromXPM();
- case SP_TitleBarShadeButton:
- return cachedPixmapFromXPM(qt_shade_xpm);
- case SP_TitleBarUnshadeButton:
- return cachedPixmapFromXPM(qt_unshade_xpm);
- case SP_TitleBarNormalButton:
- return cachedPixmapFromXPM(qt_normalizeup_xpm);
- case SP_TitleBarMinButton:
- return cachedPixmapFromXPM(qt_minimize_xpm);
- case SP_TitleBarMaxButton:
- return cachedPixmapFromXPM(qt_maximize_xpm);
- case SP_TitleBarCloseButton:
- return cachedPixmapFromXPM(qt_close_xpm);
- case SP_TitleBarContextHelpButton:
- return cachedPixmapFromXPM(qt_help_xpm);
- case SP_DockWidgetCloseButton:
- return cachedPixmapFromXPM(dock_widget_close_xpm);
- case SP_MessageBoxInformation:
- return cachedPixmapFromXPM(information_xpm);
- case SP_MessageBoxWarning:
- return cachedPixmapFromXPM(warning_xpm);
- case SP_MessageBoxCritical:
- return cachedPixmapFromXPM(critical_xpm);
- case SP_MessageBoxQuestion:
- return cachedPixmapFromXPM(question_xpm);
- default:
- break;
- }
-#endif //QT_NO_IMAGEFORMAT_XPM
-
-#if !QT_CONFIG(imageformat_png) && !QT_CONFIG(imageformat_xpm)
- Q_UNUSED(rtl);
-#endif
-
- return QPixmap();
-}
-
-#if QT_CONFIG(imageformat_png)
-static inline QString iconResourcePrefix() { return QStringLiteral(":/qt-project.org/styles/commonstyle/images/"); }
-static inline QString iconPngSuffix() { return QStringLiteral(".png"); }
-
-static void addIconFiles(const QString &prefix, const int sizes[], size_t count, QIcon &icon)
-{
- for (size_t i = 0; i < count; ++i)
- icon.addFile(prefix + QString::number(sizes[i]) + iconPngSuffix());
-}
-
-static const int dockTitleIconSizes[] = {10, 16, 20, 32, 48, 64};
-static const int titleBarSizes[] = {16, 32, 48};
-static const int toolBarExtHSizes[] = {8, 16, 32};
-static const int toolBarExtVSizes[] = {5, 10, 20};
-#endif // imageformat_png
-
-/*!
- \internal
-*/
-QIcon QCommonStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption *option) const
-{
- QIcon icon;
- const bool rtl = (option && option->direction == Qt::RightToLeft) || (!option && QGuiApplication::isRightToLeft());
-
-#ifdef Q_OS_WIN
- switch (standardIcon) {
- case SP_DriveCDIcon:
- case SP_DriveDVDIcon:
- case SP_DriveNetIcon:
- case SP_DriveHDIcon:
- case SP_DriveFDIcon:
- case SP_FileIcon:
- case SP_FileLinkIcon:
- case SP_DesktopIcon:
- case SP_ComputerIcon:
- case SP_VistaShield:
- case SP_MessageBoxInformation:
- case SP_MessageBoxWarning:
- case SP_MessageBoxCritical:
- case SP_MessageBoxQuestion:
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
- QPlatformTheme::StandardPixmap sp = static_cast<QPlatformTheme::StandardPixmap>(standardIcon);
- for (int size = 16 ; size <= 32 ; size += 16) {
- QPixmap pixmap = theme->standardPixmap(sp, QSizeF(size, size));
- icon.addPixmap(pixmap, QIcon::Normal);
- }
- }
- break;
- case SP_DirIcon:
- case SP_DirLinkIcon:
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
- QPlatformTheme::StandardPixmap spOff = static_cast<QPlatformTheme::StandardPixmap>(standardIcon);
- QPlatformTheme::StandardPixmap spOn = standardIcon == SP_DirIcon ? QPlatformTheme::DirOpenIcon :
- QPlatformTheme::DirLinkOpenIcon;
- for (int size = 16 ; size <= 32 ; size += 16) {
- QSizeF pixSize(size, size);
- QPixmap pixmap = theme->standardPixmap(spOff, pixSize);
- icon.addPixmap(pixmap, QIcon::Normal, QIcon::Off);
- pixmap = theme->standardPixmap(spOn, pixSize);
- icon.addPixmap(pixmap, QIcon::Normal, QIcon::On);
- }
- }
- break;
- case SP_LineEditClearButton:
- icon = clearTextIcon(rtl);
- break;
- default:
- break;
- }
- if (!icon.isNull())
- return icon;
-
-#endif
-
- if (QGuiApplication::desktopSettingsAware() && !QIcon::themeName().isEmpty()) {
- switch (standardIcon) {
- case SP_DirHomeIcon:
- icon = QIcon::fromTheme(QLatin1String("user-home"));
- break;
- case SP_MessageBoxInformation:
- icon = QIcon::fromTheme(QLatin1String("dialog-information"));
- break;
- case SP_MessageBoxWarning:
- icon = QIcon::fromTheme(QLatin1String("dialog-warning"));
- break;
- case SP_MessageBoxCritical:
- icon = QIcon::fromTheme(QLatin1String("dialog-error"));
- break;
- case SP_MessageBoxQuestion:
- icon = QIcon::fromTheme(QLatin1String("dialog-question"));
- break;
- case SP_DialogOpenButton:
- case SP_DirOpenIcon:
- icon = QIcon::fromTheme(QLatin1String("folder-open"));
- break;
- case SP_DialogSaveButton:
- icon = QIcon::fromTheme(QLatin1String("document-save"));
- break;
- case SP_DialogApplyButton:
- icon = QIcon::fromTheme(QLatin1String("dialog-ok-apply"));
- break;
- case SP_DialogYesButton:
- case SP_DialogOkButton:
- icon = QIcon::fromTheme(QLatin1String("dialog-ok"));
- break;
- case SP_DialogDiscardButton:
- icon = QIcon::fromTheme(QLatin1String("edit-delete"));
- break;
- case SP_DialogResetButton:
- icon = QIcon::fromTheme(QLatin1String("edit-clear"));
- break;
- case SP_DialogHelpButton:
- icon = QIcon::fromTheme(QLatin1String("help-contents"));
- break;
- case SP_FileIcon:
- icon = QIcon::fromTheme(QLatin1String("text-x-generic"));
- break;
- case SP_DirClosedIcon:
- case SP_DirIcon:
- icon = QIcon::fromTheme(QLatin1String("folder"));
- break;
- case SP_DriveFDIcon:
- icon = QIcon::fromTheme(QLatin1String("floppy_unmount"));
- break;
- case SP_ComputerIcon:
- icon = QIcon::fromTheme(QLatin1String("computer"),
- QIcon::fromTheme(QLatin1String("system")));
- break;
- case SP_DesktopIcon:
- icon = QIcon::fromTheme(QLatin1String("user-desktop"));
- break;
- case SP_TrashIcon:
- icon = QIcon::fromTheme(QLatin1String("user-trash"));
- break;
- case SP_DriveCDIcon:
- case SP_DriveDVDIcon:
- icon = QIcon::fromTheme(QLatin1String("media-optical"));
- break;
- case SP_DriveHDIcon:
- icon = QIcon::fromTheme(QLatin1String("drive-harddisk"));
- break;
- case SP_FileDialogToParent:
- icon = QIcon::fromTheme(QLatin1String("go-up"));
- break;
- case SP_FileDialogNewFolder:
- icon = QIcon::fromTheme(QLatin1String("folder-new"));
- break;
- case SP_ArrowUp:
- icon = QIcon::fromTheme(QLatin1String("go-up"));
- break;
- case SP_ArrowDown:
- icon = QIcon::fromTheme(QLatin1String("go-down"));
- break;
- case SP_ArrowRight:
- icon = QIcon::fromTheme(QLatin1String("go-next"));
- break;
- case SP_ArrowLeft:
- icon = QIcon::fromTheme(QLatin1String("go-previous"));
- break;
- case SP_DialogNoButton:
- case SP_DialogCancelButton:
- icon = QIcon::fromTheme(QLatin1String("dialog-cancel"),
- QIcon::fromTheme(QLatin1String("process-stop")));
- break;
- case SP_DialogCloseButton:
- icon = QIcon::fromTheme(QLatin1String("window-close"));
- break;
- case SP_FileDialogDetailedView:
- icon = QIcon::fromTheme(QLatin1String("view-list-details"));
- break;
- case SP_FileDialogListView:
- icon = QIcon::fromTheme(QLatin1String("view-list-icons"));
- break;
- case SP_BrowserReload:
- icon = QIcon::fromTheme(QLatin1String("view-refresh"));
- break;
- case SP_BrowserStop:
- icon = QIcon::fromTheme(QLatin1String("process-stop"));
- break;
- case SP_MediaPlay:
- icon = QIcon::fromTheme(QLatin1String("media-playback-start"));
- break;
- case SP_MediaPause:
- icon = QIcon::fromTheme(QLatin1String("media-playback-pause"));
- break;
- case SP_MediaStop:
- icon = QIcon::fromTheme(QLatin1String("media-playback-stop"));
- break;
- case SP_MediaSeekForward:
- icon = QIcon::fromTheme(QLatin1String("media-seek-forward"));
- break;
- case SP_MediaSeekBackward:
- icon = QIcon::fromTheme(QLatin1String("media-seek-backward"));
- break;
- case SP_MediaSkipForward:
- icon = QIcon::fromTheme(QLatin1String("media-skip-forward"));
- break;
- case SP_MediaSkipBackward:
- icon = QIcon::fromTheme(QLatin1String("media-skip-backward"));
- break;
- case SP_MediaVolume:
- icon = QIcon::fromTheme(QLatin1String("audio-volume-medium"));
- break;
- case SP_MediaVolumeMuted:
- icon = QIcon::fromTheme(QLatin1String("audio-volume-muted"));
- break;
- case SP_ArrowForward:
- if (rtl)
- return QCommonStyle::standardIcon(SP_ArrowLeft, option);
- return QCommonStyle::standardIcon(SP_ArrowRight, option);
- case SP_ArrowBack:
- if (rtl)
- return QCommonStyle::standardIcon(SP_ArrowRight, option);
- return QCommonStyle::standardIcon(SP_ArrowLeft, option);
- case SP_FileLinkIcon:
- {
- QIcon linkIcon = QIcon::fromTheme(QLatin1String("emblem-symbolic-link"));
- if (!linkIcon.isNull()) {
- QIcon baseIcon = QCommonStyle::standardIcon(SP_FileIcon, option);
- const QList<QSize> sizes = baseIcon.availableSizes(QIcon::Normal, QIcon::Off);
- const qreal devicePixelRatio = option ? dpr(option->window) : 1.;
- for (int i = 0 ; i < sizes.size() ; ++i) {
- int size = sizes[i].width();
- QPixmap basePixmap = baseIcon.pixmap(QSize(size, size), devicePixelRatio);
- QPixmap linkPixmap = linkIcon.pixmap(QSize(size / 2, size / 2), devicePixelRatio);
- QPainter painter(&basePixmap);
- painter.drawPixmap(size/2, size/2, linkPixmap);
- icon.addPixmap(basePixmap);
- }
- }
- }
- break;
- case SP_DirLinkIcon:
- {
- QIcon linkIcon = QIcon::fromTheme(QLatin1String("emblem-symbolic-link"));
- if (!linkIcon.isNull()) {
- QIcon baseIcon = QCommonStyle::standardIcon(SP_DirIcon, option);
- const QList<QSize> sizes = baseIcon.availableSizes(QIcon::Normal, QIcon::Off);
- const qreal devicePixelRatio = option ? dpr(option->window) : 1.;
- for (int i = 0 ; i < sizes.size() ; ++i) {
- int size = sizes[i].width();
- QPixmap basePixmap = baseIcon.pixmap(QSize(size, size), devicePixelRatio);
- QPixmap linkPixmap = linkIcon.pixmap(QSize(size / 2, size / 2), devicePixelRatio);
- QPainter painter(&basePixmap);
- painter.drawPixmap(size/2, size/2, linkPixmap);
- icon.addPixmap(basePixmap);
- }
- }
- }
- break;
- default:
- break;
- }
- } // if (QGuiApplication::desktopSettingsAware() && !QIcon::themeName().isEmpty())
-
- if (!icon.isNull())
- return icon;
-
-#if defined(Q_OS_MAC)
- if (QGuiApplication::desktopSettingsAware()) {
- switch (standardIcon) {
- case SP_DirIcon: {
- // A rather special case
- QIcon closeIcon = QCommonStyle::standardIcon(SP_DirClosedIcon, option);
- QIcon openIcon = QCommonStyle::standardIcon(SP_DirOpenIcon, option);
- closeIcon.addPixmap(openIcon.pixmap(16, 16), QIcon::Normal, QIcon::On);
- closeIcon.addPixmap(openIcon.pixmap(32, 32), QIcon::Normal, QIcon::On);
- closeIcon.addPixmap(openIcon.pixmap(64, 64), QIcon::Normal, QIcon::On);
- closeIcon.addPixmap(openIcon.pixmap(128, 128), QIcon::Normal, QIcon::On);
- return closeIcon;
- }
-
- case SP_TitleBarNormalButton:
- case SP_TitleBarCloseButton: {
- QIcon titleBarIcon;
- if (standardIcon == SP_TitleBarCloseButton) {
- titleBarIcon.addFile(QLatin1String(":/qt-project.org/styles/macstyle/images/closedock-16.png"));
- titleBarIcon.addFile(QLatin1String(":/qt-project.org/styles/macstyle/images/closedock-down-16.png"), QSize(16, 16), QIcon::Normal, QIcon::On);
- } else {
- titleBarIcon.addFile(QLatin1String(":/qt-project.org/styles/macstyle/images/dockdock-16.png"));
- titleBarIcon.addFile(QLatin1String(":/qt-project.org/styles/macstyle/images/dockdock-down-16.png"), QSize(16, 16), QIcon::Normal, QIcon::On);
- }
- return titleBarIcon;
- }
-
- case SP_MessageBoxQuestion:
- case SP_MessageBoxInformation:
- case SP_MessageBoxWarning:
- case SP_MessageBoxCritical:
- case SP_DesktopIcon:
- case SP_TrashIcon:
- case SP_ComputerIcon:
- case SP_DriveFDIcon:
- case SP_DriveHDIcon:
- case SP_DriveCDIcon:
- case SP_DriveDVDIcon:
- case SP_DriveNetIcon:
- case SP_DirOpenIcon:
- case SP_DirClosedIcon:
- case SP_DirLinkIcon:
- case SP_FileLinkIcon:
- case SP_FileIcon:
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
- QPlatformTheme::StandardPixmap sp = static_cast<QPlatformTheme::StandardPixmap>(standardIcon);
- QIcon retIcon;
- const QList<QSize> sizes = theme->themeHint(QPlatformTheme::IconPixmapSizes).value<QList<QSize> >();
- for (const QSize &size : sizes) {
- QPixmap mainIcon;
- const QString cacheKey = QLatin1String("qt_mac_constructQIconFromIconRef") + QString::number(standardIcon) + QString::number(size.width());
- if (standardIcon >= QStyle::SP_CustomBase) {
- mainIcon = theme->standardPixmap(sp, QSizeF(size));
- } else if (QPixmapCache::find(cacheKey, &mainIcon) == false) {
- mainIcon = theme->standardPixmap(sp, QSizeF(size));
- QPixmapCache::insert(cacheKey, mainIcon);
- }
-
- retIcon.addPixmap(mainIcon);
- }
- if (!retIcon.isNull())
- return retIcon;
- }
-
- default:
- break;
- }
- } // if (QGuiApplication::desktopSettingsAware())
-#endif // Q_OS_MAC
-
- switch (standardIcon) {
-#ifndef QT_NO_IMAGEFORMAT_PNG
- case SP_TitleBarMinButton:
- addIconFiles(iconResourcePrefix() + QStringLiteral("titlebar-min-"),
- titleBarSizes, sizeof(titleBarSizes)/sizeof(titleBarSizes[0]), icon);
- break;
- case SP_TitleBarMaxButton:
- addIconFiles(iconResourcePrefix() + QStringLiteral("titlebar-max-"),
- titleBarSizes, sizeof(titleBarSizes)/sizeof(titleBarSizes[0]), icon);
- break;
- case SP_TitleBarShadeButton:
- addIconFiles(iconResourcePrefix() + QStringLiteral("titlebar-shade-"),
- titleBarSizes, sizeof(titleBarSizes)/sizeof(titleBarSizes[0]), icon);
-
- break;
- case SP_TitleBarUnshadeButton:
- addIconFiles(iconResourcePrefix() + QStringLiteral("titlebar-unshade-"),
- titleBarSizes, sizeof(titleBarSizes)/sizeof(titleBarSizes[0]), icon);
- break;
- case SP_TitleBarContextHelpButton:
- addIconFiles(iconResourcePrefix() + QStringLiteral("titlebar-contexthelp-"),
- titleBarSizes, sizeof(titleBarSizes)/sizeof(titleBarSizes[0]), icon);
- break;
- case SP_FileDialogNewFolder:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/newdirectory-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/newdirectory-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/newdirectory-128.png"), QSize(128, 128));
- break;
- case SP_FileDialogBack:
- return QCommonStyle::standardIcon(SP_ArrowBack, option);
- case SP_FileDialogToParent:
- return QCommonStyle::standardIcon(SP_ArrowUp, option);
- case SP_FileDialogDetailedView:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/viewdetailed-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/viewdetailed-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/viewdetailed-128.png"), QSize(128, 128));
- break;
- case SP_FileDialogInfoView:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/fileinfo-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/fileinfo-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/fileinfo-128.png"), QSize(128, 128));
- break;
- case SP_FileDialogContentsView:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/filecontents-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/filecontents-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/filecontents-128.png"), QSize(128, 128));
- break;
- case SP_FileDialogListView:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/viewlist-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/viewlist-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/viewlist-128.png"), QSize(128, 128));
- break;
- case SP_DialogOkButton:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-ok-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-ok-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-ok-128.png"), QSize(128, 128));
- break;
- case SP_DialogCancelButton:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-cancel-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-cancel-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-cancel-128.png"), QSize(128, 128));
- break;
- case SP_DialogHelpButton:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-help-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-help-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-help-128.png"), QSize(128, 128));
- break;
- case SP_DialogOpenButton:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-open-128.png"), QSize(128, 128));
- break;
- case SP_DialogSaveButton:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-save-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-save-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-save-128.png"), QSize(128, 128));
- break;
- case SP_DialogCloseButton:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-close-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-close-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-close-128.png"), QSize(128, 128));
- break;
- case SP_DialogApplyButton:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-apply-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-apply-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-apply-128.png"), QSize(128, 128));
- break;
- case SP_DialogResetButton:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-clear-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-clear-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-clear-128.png"), QSize(128, 128));
- break;
- case SP_DialogDiscardButton:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-delete-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-delete-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-delete-128.png"), QSize(128, 128));
- break;
- case SP_DialogYesButton:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-yes-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-yes-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-yes-128.png"), QSize(128, 128));
- break;
- case SP_DialogNoButton:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-no-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-no-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/standardbutton-no-128.png"), QSize(128, 128));
- break;
- case SP_ArrowForward:
- if (rtl)
- return QCommonStyle::standardIcon(SP_ArrowLeft, option);
- return QCommonStyle::standardIcon(SP_ArrowRight, option);
- case SP_ArrowBack:
- if (rtl)
- return QCommonStyle::standardIcon(SP_ArrowRight, option);
- return QCommonStyle::standardIcon(SP_ArrowLeft, option);
- case SP_ArrowLeft:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/left-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/left-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/left-128.png"), QSize(128, 128));
- break;
- case SP_ArrowRight:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/right-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/right-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/right-128.png"), QSize(128, 128));
- break;
- case SP_ArrowUp:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/up-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/up-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/up-128.png"), QSize(128, 128));
- break;
- case SP_ArrowDown:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/down-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/down-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/down-128.png"), QSize(128, 128));
- break;
- case SP_DirHomeIcon:
- case SP_DirIcon:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/dirclosed-16.png"),
- QSize(), QIcon::Normal, QIcon::Off);
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/diropen-16.png"),
- QSize(), QIcon::Normal, QIcon::On);
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/dirclosed-32.png"),
- QSize(32, 32), QIcon::Normal, QIcon::Off);
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/diropen-32.png"),
- QSize(32, 32), QIcon::Normal, QIcon::On);
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/dirclosed-128.png"),
- QSize(128, 128), QIcon::Normal, QIcon::Off);
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/diropen-128.png"),
- QSize(128, 128), QIcon::Normal, QIcon::On);
- break;
- case SP_DriveCDIcon:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/cdr-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/cdr-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/cdr-128.png"), QSize(128, 128));
- break;
- case SP_DriveDVDIcon:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/dvd-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/dvd-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/dvd-128.png"), QSize(128, 128));
- break;
- case SP_FileIcon:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/file-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/file-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/file-128.png"), QSize(128, 128));
- break;
- case SP_FileLinkIcon:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/filelink-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/filelink-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/filelink-128.png"), QSize(128, 128));
- break;
- case SP_TrashIcon:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/trash-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/trash-32.png"), QSize(32, 32));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/trash-128.png"), QSize(128, 128));
- break;
- case SP_BrowserReload:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/refresh-24.png"), QSize(24, 24));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/refresh-32.png"), QSize(32, 32));
- break;
- case SP_BrowserStop:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/stop-24.png"), QSize(24, 24));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/stop-32.png"), QSize(32, 32));
- break;
- case SP_MediaPlay:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-play-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-play-32.png"), QSize(32, 32));
- break;
- case SP_MediaPause:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-pause-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-pause-32.png"), QSize(32, 32));
- break;
- case SP_MediaStop:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-stop-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-stop-32.png"), QSize(32, 32));
- break;
- case SP_MediaSeekForward:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-seek-forward-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-seek-forward-32.png"), QSize(32, 32));
- break;
- case SP_MediaSeekBackward:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-seek-backward-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-seek-backward-32.png"), QSize(32, 32));
- break;
- case SP_MediaSkipForward:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-skip-forward-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-skip-forward-32.png"), QSize(32, 32));
- break;
- case SP_MediaSkipBackward:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-skip-backward-16.png"), QSize(16, 16));
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-skip-backward-32.png"), QSize(32, 32));
- break;
- case SP_MediaVolume:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-volume-16.png"), QSize(16, 16));
- break;
- case SP_MediaVolumeMuted:
- icon.addFile(QLatin1String(":/qt-project.org/styles/commonstyle/images/media-volume-muted-16.png"), QSize(16, 16));
- break;
- case SP_TitleBarCloseButton:
- addIconFiles(iconResourcePrefix() + QStringLiteral("closedock-"),
- dockTitleIconSizes, sizeof(dockTitleIconSizes)/sizeof(dockTitleIconSizes[0]), icon);
- break;
- case SP_TitleBarMenuButton:
-# ifndef QT_NO_IMAGEFORMAT_XPM
- icon.addPixmap(titleBarMenuCachedPixmapFromXPM());
-# endif
- icon.addFile(QLatin1String(":/qt-project.org/qmessagebox/images/qtlogo-64.png"));
- break;
- case SP_TitleBarNormalButton:
- addIconFiles(iconResourcePrefix() + QStringLiteral("normalizedockup-"),
- dockTitleIconSizes, sizeof(dockTitleIconSizes)/sizeof(dockTitleIconSizes[0]), icon);
- break;
- case SP_ToolBarHorizontalExtensionButton: {
- QString prefix = iconResourcePrefix() + QStringLiteral("toolbar-ext-h-");
- if (rtl)
- prefix += QStringLiteral("rtl-");
- addIconFiles(prefix, toolBarExtHSizes, sizeof(toolBarExtHSizes)/sizeof(toolBarExtHSizes[0]), icon);
- }
- break;
- case SP_ToolBarVerticalExtensionButton:
- addIconFiles(iconResourcePrefix() + QStringLiteral("toolbar-ext-v-"),
- toolBarExtVSizes, sizeof(toolBarExtVSizes)/sizeof(toolBarExtVSizes[0]), icon);
- break;
-#endif // QT_NO_IMAGEFORMAT_PNG
- default:
- icon.addPixmap(proxy()->standardPixmap(standardIcon, option));
- break;
- }
- return icon;
-}
-
-static inline uint qt_intensity(uint r, uint g, uint b)
-{
- // 30% red, 59% green, 11% blue
- return (77 * r + 150 * g + 28 * b) / 255;
-}
-
-/*! \reimp */
-QPixmap QCommonStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap,
- const QStyleOption *opt) const
-{
- switch (iconMode) {
- case QIcon::Disabled: {
- QImage im = pixmap.toImage().convertToFormat(QImage::Format_ARGB32);
-
- // Create a colortable based on the background (black -> bg -> white)
- QColor bg = opt->palette.color(QPalette::Disabled, QPalette::Window);
- int red = bg.red();
- int green = bg.green();
- int blue = bg.blue();
- uchar reds[256], greens[256], blues[256];
- for (int i=0; i<128; ++i) {
- reds[i] = uchar((red * (i<<1)) >> 8);
- greens[i] = uchar((green * (i<<1)) >> 8);
- blues[i] = uchar((blue * (i<<1)) >> 8);
- }
- for (int i=0; i<128; ++i) {
- reds[i+128] = uchar(qMin(red + (i << 1), 255));
- greens[i+128] = uchar(qMin(green + (i << 1), 255));
- blues[i+128] = uchar(qMin(blue + (i << 1), 255));
- }
-
- int intensity = qt_intensity(red, green, blue);
- const int factor = 191;
-
- // High intensity colors needs dark shifting in the color table, while
- // low intensity colors needs light shifting. This is to increase the
- // perceived contrast.
- if ((red - factor > green && red - factor > blue)
- || (green - factor > red && green - factor > blue)
- || (blue - factor > red && blue - factor > green))
- intensity = qMin(255, intensity + 91);
- else if (intensity <= 128)
- intensity -= 51;
-
- for (int y=0; y<im.height(); ++y) {
- QRgb *scanLine = (QRgb*)im.scanLine(y);
- for (int x=0; x<im.width(); ++x) {
- QRgb pixel = *scanLine;
- // Calculate color table index, taking intensity adjustment
- // and a magic offset into account.
- uint ci = uint(qGray(pixel)/3 + (130 - intensity / 3));
- *scanLine = qRgba(reds[ci], greens[ci], blues[ci], qAlpha(pixel));
- ++scanLine;
- }
- }
-
- return QPixmap::fromImage(im);
- }
- case QIcon::Selected: {
- QImage img = pixmap.toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied);
- QColor color = opt->palette.color(QPalette::Normal, QPalette::Highlight);
- color.setAlphaF(0.3f);
- QPainter painter(&img);
- painter.setCompositionMode(QPainter::CompositionMode_SourceAtop);
- painter.fillRect(0, 0, img.width(), img.height(), color);
- painter.end();
- return QPixmap::fromImage(img); }
- case QIcon::Active:
- return pixmap;
- default:
- break;
- }
- return pixmap;
-}
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#include "moc_qquickcommonstyle.cpp"
diff --git a/src/quicknativestyle/qstyle/qquickcommonstyle.h b/src/quicknativestyle/qstyle/qquickcommonstyle.h
deleted file mode 100644
index 894194a0..00000000
--- a/src/quicknativestyle/qstyle/qquickcommonstyle.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QCOMMONSTYLE_H
-#define QCOMMONSTYLE_H
-
-#include "qquickstyle.h"
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2 {
-
-class QCommonStylePrivate;
-
-class QCommonStyle: public QStyle
-{
- Q_OBJECT
-
-public:
- QCommonStyle();
- ~QCommonStyle() override;
-
- void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p) const override;
- void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p) const override;
- void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p) const override;
-
- QRect subElementRect(SubElement r, const QStyleOption *opt) const override;
- QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc) const override;
-
- QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize) const override;
- QFont font(ControlElement element, const QStyle::State state) const override;
- QMargins ninePatchMargins(ControlElement ce, const QStyleOption *opt, const QSize &imageSize) const override;
- QMargins ninePatchMargins(ComplexControl cc, const QStyleOptionComplex *opt, const QSize &imageSize) const override;
-
- int pixelMetric(PixelMetric m, const QStyleOption *opt = nullptr) const override;
- int styleHint(StyleHint sh, const QStyleOption *opt = nullptr, QStyleHintReturn *shret = nullptr) const override;
-
- QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *opt = nullptr) const override;
- QPixmap standardPixmap(StandardPixmap sp, const QStyleOption *opt = nullptr) const override;
- QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const override;
-
- SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt) const override;
-
-protected:
- QCommonStyle(QCommonStylePrivate &dd);
-
-private:
- Q_DECLARE_PRIVATE(QCommonStyle)
- Q_DISABLE_COPY(QCommonStyle)
-};
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif // QCOMMONSTYLE_H
diff --git a/src/quicknativestyle/qstyle/qquickcommonstyle_p.h b/src/quicknativestyle/qstyle/qquickcommonstyle_p.h
deleted file mode 100644
index ba2b8689..00000000
--- a/src/quicknativestyle/qstyle/qquickcommonstyle_p.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QCOMMONSTYLE_P_H
-#define QCOMMONSTYLE_P_H
-
-#include "qquickcommonstyle.h"
-#include "qquickstyle_p.h"
-#include "qquickstyleoption.h"
-
-QT_BEGIN_NAMESPACE
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header
-// file may change from version to version without notice, or even be removed.
-//
-// We mean it.
-//
-
-class QTextOption;
-
-namespace QQC2 {
-
-class QCommonStylePrivate : public QStylePrivate
-{
- Q_DECLARE_PUBLIC(QCommonStyle)
-public:
-
- ~QCommonStylePrivate()
- {
- delete cachedOption;
- }
-
- QString calculateElidedText(const QString &text, const QTextOption &textOption,
- const QFont &font, const QRect &textRect, const Qt::Alignment valign,
- Qt::TextElideMode textElideMode, int flags,
- bool lastVisibleLineShouldBeElided, QPointF *paintStartPosition) const;
- void viewItemDrawText(QPainter *p, const QStyleOptionViewItem *option, const QRect &rect) const;
- void viewItemLayout(const QStyleOptionViewItem *opt, QRect *checkRect,
- QRect *pixmapRect, QRect *textRect, bool sizehint) const;
- QSize viewItemSize(const QStyleOptionViewItem *option, int role) const;
-
- mutable QRect decorationRect, displayRect, checkRect;
- mutable QStyleOptionViewItem *cachedOption = nullptr;
- bool isViewItemCached(const QStyleOptionViewItem &option) const {
- return cachedOption
- && option.index == cachedOption->index
- && option.state == cachedOption->state
- && option.rect == cachedOption->rect
- && option.text == cachedOption->text
- && option.direction == cachedOption->direction
- && option.displayAlignment == cachedOption->displayAlignment
- && option.decorationAlignment == cachedOption->decorationAlignment
- && option.decorationPosition == cachedOption->decorationPosition
- && option.decorationSize == cachedOption->decorationSize
- && option.features == cachedOption->features
- && option.icon.isNull() == cachedOption->icon.isNull()
- && option.font == cachedOption->font
- && option.viewItemPosition == cachedOption->viewItemPosition;
- }
- QString toolButtonElideText(const QStyleOptionToolButton *toolbutton,
- const QRect &textRect, int flags) const;
-
- mutable QIcon tabBarcloseButtonIcon;
- virtual void tabLayout(const QStyleOptionTab *opt, QRect *textRect, QRect *pixmapRect) const;
-};
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif //QCOMMONSTYLE_P_H
diff --git a/src/quicknativestyle/qstyle/qquickcommonstylepixmaps_p.h b/src/quicknativestyle/qstyle/qquickcommonstylepixmaps_p.h
deleted file mode 100644
index 59f1afac..00000000
--- a/src/quicknativestyle/qstyle/qquickcommonstylepixmaps_p.h
+++ /dev/null
@@ -1,532 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QT_NO_IMAGEFORMAT_XPM
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2 {
-
-static const char * const check_list_controller_xpm[] = {
-"16 16 4 1",
-" c None",
-". c #000000000000",
-"X c #FFFFFFFF0000",
-"o c #C71BC30BC71B",
-" ",
-" ",
-" .......... ",
-" .XXXXXXXX. ",
-" .XXXXXXXX.oo ",
-" .XXXXXXXX.oo ",
-" .XXXXXXXX.oo ",
-" .XXXXXXXX.oo ",
-" .XXXXXXXX.oo ",
-" .XXXXXXXX.oo ",
-" .XXXXXXXX.oo ",
-" ..........oo ",
-" oooooooooo ",
-" oooooooooo ",
-" ",
-" "};
-
-
-static const char * const tb_extension_arrow_v_xpm[] = {
- "5 8 3 1",
- " c None",
- ". c #000000",
- "+ c none",
- ".+++.",
- "..+..",
- "+...+",
- "++.++",
- ".+++.",
- "..+..",
- "+...+",
- "++.++"
-};
-
-static const char * const tb_extension_arrow_h_xpm[] = {
- "8 5 3 1",
- " c None",
- ". c #000000",
- "+ c none",
- "..++..++",
- "+..++..+",
- "++..++..",
- "+..++..+",
- "..++..++",
-};
-
-static const char * const filedialog_start_xpm[]={
- "16 15 8 1",
- "a c #cec6bd",
- "# c #000000",
- "e c #ffff00",
- "b c #999999",
- "f c #cccccc",
- "d c #dcdcdc",
- "c c #ffffff",
- ". c None",
- ".....######aaaaa",
- "...bb#cccc##aaaa",
- "..bcc#cccc#d#aaa",
- ".bcef#cccc#dd#aa",
- ".bcfe#cccc#####a",
- ".bcef#ccccccccc#",
- "bbbbbbbbbbbbccc#",
- "bccccccccccbbcc#",
- "bcefefefefee#bc#",
- ".bcefefefefef#c#",
- ".bcfefefefefe#c#",
- "..bcfefefefeeb##",
- "..bbbbbbbbbbbbb#",
- "...#############",
- "................"};
-
-static const char * const filedialog_end_xpm[]={
- "16 15 9 1",
- "d c #a0a0a0",
- "c c #c3c3c3",
- "# c #cec6bd",
- ". c #000000",
- "f c #ffff00",
- "e c #999999",
- "g c #cccccc",
- "b c #ffffff",
- "a c None",
- "......####aaaaaa",
- ".bbbb..###aaaaaa",
- ".bbbb.c.##aaaaaa",
- ".bbbb....ddeeeea",
- ".bbbbbbb.bbbbbe.",
- ".bbbbbbb.bcfgfe.",
- "eeeeeeeeeeeeefe.",
- "ebbbbbbbbbbeege.",
- "ebfgfgfgfgff.ee.",
- "aebfgfgfgfgfg.e.",
- "aebgfgfgfgfgf.e.",
- "aaebgfgfgfgffe..",
- "aaeeeeeeeeeeeee.",
- "aaa.............",
- "aaaaaaaaaaaaaaaa"};
-
-
-/* XPM */
-static const char * const qt_menu_xpm[] = {
-"16 16 72 1",
-" c None",
-". c #65AF36",
-"+ c #66B036",
-"@ c #77B94C",
-"# c #A7D28C",
-"$ c #BADBA4",
-"% c #A4D088",
-"& c #72B646",
-"* c #9ACB7A",
-"= c #7FBD56",
-"- c #85C05F",
-"; c #F4F9F0",
-"> c #FFFFFF",
-", c #E5F1DC",
-"' c #ECF5E7",
-") c #7ABA50",
-"! c #83BF5C",
-"~ c #AED595",
-"{ c #D7EACA",
-"] c #A9D28D",
-"^ c #BCDDA8",
-"/ c #C4E0B1",
-"( c #81BE59",
-"_ c #D0E7C2",
-": c #D4E9C6",
-"< c #6FB542",
-"[ c #6EB440",
-"} c #88C162",
-"| c #98CA78",
-"1 c #F4F9F1",
-"2 c #8FC56C",
-"3 c #F1F8EC",
-"4 c #E8F3E1",
-"5 c #D4E9C7",
-"6 c #74B748",
-"7 c #80BE59",
-"8 c #73B747",
-"9 c #6DB43F",
-"0 c #CBE4BA",
-"a c #80BD58",
-"b c #6DB33F",
-"c c #FEFFFE",
-"d c #68B138",
-"e c #F9FCF7",
-"f c #91C66F",
-"g c #E8F3E0",
-"h c #DCEDD0",
-"i c #91C66E",
-"j c #A3CF86",
-"k c #C9E3B8",
-"l c #B0D697",
-"m c #E3F0DA",
-"n c #95C873",
-"o c #E6F2DE",
-"p c #9ECD80",
-"q c #BEDEAA",
-"r c #C7E2B6",
-"s c #79BA4F",
-"t c #6EB441",
-"u c #BCDCA7",
-"v c #FAFCF8",
-"w c #F6FAF3",
-"x c #84BF5D",
-"y c #EDF6E7",
-"z c #FAFDF9",
-"A c #88C263",
-"B c #98CA77",
-"C c #CDE5BE",
-"D c #67B037",
-"E c #D9EBCD",
-"F c #6AB23C",
-"G c #77B94D",
-" .++++++++++++++",
-".+++++++++++++++",
-"+++@#$%&+++*=+++",
-"++-;>,>')+!>~+++",
-"++{>]+^>/(_>:~<+",
-"+[>>}+|>123>456+",
-"+7>>8+->>90>~+++",
-"+a>>b+a>c[0>~+++",
-"+de>=+f>g+0>~+++",
-"++h>i+j>k+0>~+++",
-"++l>mno>p+q>rst+",
-"++duv>wl++xy>zA+",
-"++++B>Cb++++&D++",
-"+++++0zE++++++++",
-"++++++FG+++++++.",
-"++++++++++++++. "};
-
-static const char * const qt_close_xpm[] = {
-"10 10 2 1",
-"# c #000000",
-". c None",
-"..........",
-".##....##.",
-"..##..##..",
-"...####...",
-"....##....",
-"...####...",
-"..##..##..",
-".##....##.",
-"..........",
-".........."};
-
-static const char * const qt_maximize_xpm[]={
-"10 10 2 1",
-"# c #000000",
-". c None",
-"#########.",
-"#########.",
-"#.......#.",
-"#.......#.",
-"#.......#.",
-"#.......#.",
-"#.......#.",
-"#.......#.",
-"#########.",
-".........."};
-
-static const char * const qt_minimize_xpm[] = {
-"10 10 2 1",
-"# c #000000",
-". c None",
-"..........",
-"..........",
-"..........",
-"..........",
-"..........",
-"..........",
-"..........",
-".#######..",
-".#######..",
-".........."};
-
-static const char * const qt_normalizeup_xpm[] = {
-"10 10 2 1",
-"# c #000000",
-". c None",
-"...######.",
-"...######.",
-"...#....#.",
-".######.#.",
-".######.#.",
-".#....###.",
-".#....#...",
-".#....#...",
-".######...",
-".........."};
-
-static const char * const qt_help_xpm[] = {
-"10 10 2 1",
-". c None",
-"# c #000000",
-"..........",
-"..######..",
-".##....##.",
-"......##..",
-".....##...",
-"....##....",
-"....##....",
-"..........",
-"....##....",
-".........."};
-
-static const char * const qt_shade_xpm[] = {
-"10 10 2 1",
-"# c #000000",
-". c None",
-"..........",
-"..........",
-"..........",
-"..........",
-"....#.....",
-"...###....",
-"..#####...",
-".#######..",
-"..........",
-".........."};
-
-static const char * const qt_unshade_xpm[] = {
-"10 10 2 1",
-"# c #000000",
-". c None",
-"..........",
-"..........",
-"..........",
-".#######..",
-"..#####...",
-"...###....",
-"....#.....",
-"..........",
-"..........",
-".........."};
-
-static const char * const dock_widget_close_xpm[] = {
-"8 8 2 1",
-"# c #000000",
-". c None",
-"........",
-".##..##.",
-"..####..",
-"...##...",
-"..####..",
-".##..##.",
-"........",
-"........"};
-
-/* XPM */
-static const char * const information_xpm[]={
-"32 32 5 1",
-". c None",
-"c c #000000",
-"* c #999999",
-"a c #ffffff",
-"b c #0000ff",
-"...........********.............",
-"........***aaaaaaaa***..........",
-"......**aaaaaaaaaaaaaa**........",
-".....*aaaaaaaaaaaaaaaaaa*.......",
-"....*aaaaaaaabbbbaaaaaaaac......",
-"...*aaaaaaaabbbbbbaaaaaaaac.....",
-"..*aaaaaaaaabbbbbbaaaaaaaaac....",
-".*aaaaaaaaaaabbbbaaaaaaaaaaac...",
-".*aaaaaaaaaaaaaaaaaaaaaaaaaac*..",
-"*aaaaaaaaaaaaaaaaaaaaaaaaaaaac*.",
-"*aaaaaaaaaabbbbbbbaaaaaaaaaaac*.",
-"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**",
-"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**",
-"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**",
-"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**",
-"*aaaaaaaaaaaabbbbbaaaaaaaaaaac**",
-".*aaaaaaaaaaabbbbbaaaaaaaaaac***",
-".*aaaaaaaaaaabbbbbaaaaaaaaaac***",
-"..*aaaaaaaaaabbbbbaaaaaaaaac***.",
-"...caaaaaaabbbbbbbbbaaaaaac****.",
-"....caaaaaaaaaaaaaaaaaaaac****..",
-".....caaaaaaaaaaaaaaaaaac****...",
-"......ccaaaaaaaaaaaaaacc****....",
-".......*cccaaaaaaaaccc*****.....",
-"........***cccaaaac*******......",
-"..........****caaac*****........",
-".............*caaac**...........",
-"...............caac**...........",
-"................cac**...........",
-".................cc**...........",
-"..................***...........",
-"...................**..........."};
-/* XPM */
-static const char* const warning_xpm[]={
-"32 32 4 1",
-". c None",
-"a c #ffff00",
-"* c #000000",
-"b c #999999",
-".............***................",
-"............*aaa*...............",
-"...........*aaaaa*b.............",
-"...........*aaaaa*bb............",
-"..........*aaaaaaa*bb...........",
-"..........*aaaaaaa*bb...........",
-".........*aaaaaaaaa*bb..........",
-".........*aaaaaaaaa*bb..........",
-"........*aaaaaaaaaaa*bb.........",
-"........*aaaa***aaaa*bb.........",
-".......*aaaa*****aaaa*bb........",
-".......*aaaa*****aaaa*bb........",
-"......*aaaaa*****aaaaa*bb.......",
-"......*aaaaa*****aaaaa*bb.......",
-".....*aaaaaa*****aaaaaa*bb......",
-".....*aaaaaa*****aaaaaa*bb......",
-"....*aaaaaaaa***aaaaaaaa*bb.....",
-"....*aaaaaaaa***aaaaaaaa*bb.....",
-"...*aaaaaaaaa***aaaaaaaaa*bb....",
-"...*aaaaaaaaaa*aaaaaaaaaa*bb....",
-"..*aaaaaaaaaaa*aaaaaaaaaaa*bb...",
-"..*aaaaaaaaaaaaaaaaaaaaaaa*bb...",
-".*aaaaaaaaaaaa**aaaaaaaaaaa*bb..",
-".*aaaaaaaaaaa****aaaaaaaaaa*bb..",
-"*aaaaaaaaaaaa****aaaaaaaaaaa*bb.",
-"*aaaaaaaaaaaaa**aaaaaaaaaaaa*bb.",
-"*aaaaaaaaaaaaaaaaaaaaaaaaaaa*bbb",
-"*aaaaaaaaaaaaaaaaaaaaaaaaaaa*bbb",
-".*aaaaaaaaaaaaaaaaaaaaaaaaa*bbbb",
-"..*************************bbbbb",
-"....bbbbbbbbbbbbbbbbbbbbbbbbbbb.",
-".....bbbbbbbbbbbbbbbbbbbbbbbbb.."};
-/* XPM */
-static const char* const critical_xpm[]={
-"32 32 4 1",
-". c None",
-"a c #999999",
-"* c #ff0000",
-"b c #ffffff",
-"...........********.............",
-".........************...........",
-".......****************.........",
-"......******************........",
-".....********************a......",
-"....**********************a.....",
-"...************************a....",
-"..*******b**********b*******a...",
-"..******bbb********bbb******a...",
-".******bbbbb******bbbbb******a..",
-".*******bbbbb****bbbbb*******a..",
-"*********bbbbb**bbbbb*********a.",
-"**********bbbbbbbbbb**********a.",
-"***********bbbbbbbb***********aa",
-"************bbbbbb************aa",
-"************bbbbbb************aa",
-"***********bbbbbbbb***********aa",
-"**********bbbbbbbbbb**********aa",
-"*********bbbbb**bbbbb*********aa",
-".*******bbbbb****bbbbb*******aa.",
-".******bbbbb******bbbbb******aa.",
-"..******bbb********bbb******aaa.",
-"..*******b**********b*******aa..",
-"...************************aaa..",
-"....**********************aaa...",
-"....a********************aaa....",
-".....a******************aaa.....",
-"......a****************aaa......",
-".......aa************aaaa.......",
-".........aa********aaaaa........",
-"...........aaaaaaaaaaa..........",
-".............aaaaaaa............"};
-/* XPM */
-static const char *const question_xpm[] = {
-"32 32 5 1",
-". c None",
-"c c #000000",
-"* c #999999",
-"a c #ffffff",
-"b c #0000ff",
-"...........********.............",
-"........***aaaaaaaa***..........",
-"......**aaaaaaaaaaaaaa**........",
-".....*aaaaaaaaaaaaaaaaaa*.......",
-"....*aaaaaaaaaaaaaaaaaaaac......",
-"...*aaaaaaaabbbbbbaaaaaaaac.....",
-"..*aaaaaaaabaaabbbbaaaaaaaac....",
-".*aaaaaaaabbaaaabbbbaaaaaaaac...",
-".*aaaaaaaabbbbaabbbbaaaaaaaac*..",
-"*aaaaaaaaabbbbaabbbbaaaaaaaaac*.",
-"*aaaaaaaaaabbaabbbbaaaaaaaaaac*.",
-"*aaaaaaaaaaaaabbbbaaaaaaaaaaac**",
-"*aaaaaaaaaaaaabbbaaaaaaaaaaaac**",
-"*aaaaaaaaaaaaabbaaaaaaaaaaaaac**",
-"*aaaaaaaaaaaaabbaaaaaaaaaaaaac**",
-"*aaaaaaaaaaaaaaaaaaaaaaaaaaaac**",
-".*aaaaaaaaaaaabbaaaaaaaaaaaac***",
-".*aaaaaaaaaaabbbbaaaaaaaaaaac***",
-"..*aaaaaaaaaabbbbaaaaaaaaaac***.",
-"...caaaaaaaaaabbaaaaaaaaaac****.",
-"....caaaaaaaaaaaaaaaaaaaac****..",
-".....caaaaaaaaaaaaaaaaaac****...",
-"......ccaaaaaaaaaaaaaacc****....",
-".......*cccaaaaaaaaccc*****.....",
-"........***cccaaaac*******......",
-"..........****caaac*****........",
-".............*caaac**...........",
-"...............caac**...........",
-"................cac**...........",
-".................cc**...........",
-"..................***...........",
-"...................**..........."};
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif //QT_NO_IMAGEFORMAT_XPM
diff --git a/src/quicknativestyle/qstyle/qquickdrawutil.cpp b/src/quicknativestyle/qstyle/qquickdrawutil.cpp
deleted file mode 100644
index d5290a7b..00000000
--- a/src/quicknativestyle/qstyle/qquickdrawutil.cpp
+++ /dev/null
@@ -1,1145 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickdrawutil.h"
-
-#include "qbitmap.h"
-#include "qpixmapcache.h"
-#include "qpainter.h"
-#include "qpalette.h"
-#include <private/qpaintengineex_p.h>
-#include <qvarlengtharray.h>
-#include <qmath.h>
-#include <private/qhexstring_p.h>
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2 {
-
-namespace {
-class PainterStateGuard {
- Q_DISABLE_COPY_MOVE(PainterStateGuard)
-public:
- explicit PainterStateGuard(QPainter *p) : m_painter(p) {}
- ~PainterStateGuard()
- {
- for ( ; m_level > 0; --m_level)
- m_painter->restore();
- }
-
- void save()
- {
- m_painter->save();
- ++m_level;
- }
-
- void restore()
- {
- m_painter->restore();
- --m_level;
- }
-
-private:
- QPainter *m_painter;
- int m_level= 0;
-};
-} // namespace
-
-/*!
- \headerfile <qdrawutil.h>
- \title Drawing Utility Functions
-
- \sa QPainter
-*/
-
-/*!
- \fn void qDrawShadeLine(QPainter *painter, int x1, int y1, int x2, int y2,
- const QPalette &palette, bool sunken,
- int lineWidth, int midLineWidth)
- \relates <qdrawutil.h>
-
- Draws a horizontal (\a y1 == \a y2) or vertical (\a x1 == \a x2)
- shaded line using the given \a painter. Note that nothing is
- drawn if \a y1 != \a y2 and \a x1 != \a x2 (i.e. the line is
- neither horizontal nor vertical).
-
- The provided \a palette specifies the shading colors (\l
- {QPalette::light()}{light}, \l {QPalette::dark()}{dark} and \l
- {QPalette::mid()}{middle} colors). The given \a lineWidth
- specifies the line width for each of the lines; it is not the
- total line width. The given \a midLineWidth specifies the width of
- a middle line drawn in the QPalette::mid() color.
-
- The line appears sunken if \a sunken is true, otherwise raised.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style(). Use the drawing functions in QStyle to
- make widgets that follow the current GUI style.
-
-
- Alternatively you can use a QFrame widget and apply the
- QFrame::setFrameStyle() function to display a shaded line:
-
- \snippet code/src_gui_painting_qdrawutil.cpp 0
-
- \sa qDrawShadeRect(), qDrawShadePanel(), QStyle
-*/
-
-void qDrawShadeLine(QPainter *p, int x1, int y1, int x2, int y2,
- const QPalette &pal, bool sunken,
- int lineWidth, int midLineWidth)
-{
- if (Q_UNLIKELY(!p || lineWidth < 0 || midLineWidth < 0)) {
- qWarning("qDrawShadeLine: Invalid parameters");
- return;
- }
- int tlw = lineWidth*2 + midLineWidth; // total line width
- QPen oldPen = p->pen(); // save pen
- if (sunken)
- p->setPen(pal.color(QPalette::Dark));
- else
- p->setPen(pal.light().color());
- QPolygon a;
- int i;
- if (y1 == y2) { // horizontal line
- int y = y1 - tlw/2;
- if (x1 > x2) { // swap x1 and x2
- int t = x1;
- x1 = x2;
- x2 = t;
- }
- x2--;
- for (i=0; i<lineWidth; i++) { // draw top shadow
- a.setPoints(3, x1+i, y+tlw-1-i,
- x1+i, y+i,
- x2-i, y+i);
- p->drawPolyline(a);
- }
- if (midLineWidth > 0) {
- p->setPen(pal.mid().color());
- for (i=0; i<midLineWidth; i++) // draw lines in the middle
- p->drawLine(x1+lineWidth, y+lineWidth+i,
- x2-lineWidth, y+lineWidth+i);
- }
- if (sunken)
- p->setPen(pal.light().color());
- else
- p->setPen(pal.dark().color());
- for (i=0; i<lineWidth; i++) { // draw bottom shadow
- a.setPoints(3, x1+i, y+tlw-i-1,
- x2-i, y+tlw-i-1,
- x2-i, y+i+1);
- p->drawPolyline(a);
- }
- }
- else if (x1 == x2) { // vertical line
- int x = x1 - tlw/2;
- if (y1 > y2) { // swap y1 and y2
- int t = y1;
- y1 = y2;
- y2 = t;
- }
- y2--;
- for (i=0; i<lineWidth; i++) { // draw left shadow
- a.setPoints(3, x+i, y2,
- x+i, y1+i,
- x+tlw-1, y1+i);
- p->drawPolyline(a);
- }
- if (midLineWidth > 0) {
- p->setPen(pal.mid().color());
- for (i=0; i<midLineWidth; i++) // draw lines in the middle
- p->drawLine(x+lineWidth+i, y1+lineWidth, x+lineWidth+i, y2);
- }
- if (sunken)
- p->setPen(pal.light().color());
- else
- p->setPen(pal.dark().color());
- for (i=0; i<lineWidth; i++) { // draw right shadow
- a.setPoints(3, x+lineWidth, y2-i,
- x+tlw-i-1, y2-i,
- x+tlw-i-1, y1+lineWidth);
- p->drawPolyline(a);
- }
- }
- p->setPen(oldPen);
-}
-
-/*!
- \fn void qDrawShadeRect(QPainter *painter, int x, int y, int width, int height,
- const QPalette &palette, bool sunken,
- int lineWidth, int midLineWidth,
- const QBrush *fill)
- \relates <qdrawutil.h>
-
- Draws the shaded rectangle beginning at (\a x, \a y) with the
- given \a width and \a height using the provided \a painter.
-
- The provide \a palette specifies the shading colors (\l
- {QPalette::light()}{light}, \l {QPalette::dark()}{dark} and \l
- {QPalette::mid()}{middle} colors. The given \a lineWidth
- specifies the line width for each of the lines; it is not the
- total line width. The \a midLineWidth specifies the width of a
- middle line drawn in the QPalette::mid() color. The rectangle's
- interior is filled with the \a fill brush unless \a fill is 0.
-
- The rectangle appears sunken if \a sunken is true, otherwise
- raised.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style(). Use the drawing functions in QStyle to make
- widgets that follow the current GUI style.
-
- Alternatively you can use a QFrame widget and apply the
- QFrame::setFrameStyle() function to display a shaded rectangle:
-
- \snippet code/src_gui_painting_qdrawutil.cpp 1
-
- \sa qDrawShadeLine(), qDrawShadePanel(), qDrawPlainRect(), QStyle
-*/
-
-void qDrawShadeRect(QPainter *p, int x, int y, int w, int h,
- const QPalette &pal, bool sunken,
- int lineWidth, int midLineWidth,
- const QBrush *fill)
-{
- if (w == 0 || h == 0)
- return;
- if (Q_UNLIKELY(w < 0 || h < 0 || lineWidth < 0 || midLineWidth < 0)) {
- qWarning("qDrawShadeRect: Invalid parameters");
- return;
- }
-
- PainterStateGuard painterGuard(p);
- const qreal devicePixelRatio = p->device()->devicePixelRatioF();
- if (!qFuzzyCompare(devicePixelRatio, qreal(1))) {
- painterGuard.save();
- const qreal inverseScale = qreal(1) / devicePixelRatio;
- p->scale(inverseScale, inverseScale);
- x = qRound(devicePixelRatio * x);
- y = qRound(devicePixelRatio * y);
- w = qRound(devicePixelRatio * w);
- h = qRound(devicePixelRatio * h);
- lineWidth = qRound(devicePixelRatio * lineWidth);
- midLineWidth = qRound(devicePixelRatio * midLineWidth);
- }
-
- QPen oldPen = p->pen();
- if (sunken)
- p->setPen(pal.dark().color());
- else
- p->setPen(pal.light().color());
- int x1=x, y1=y, x2=x+w-1, y2=y+h-1;
-
- if (lineWidth == 1 && midLineWidth == 0) {// standard shade rectangle
- p->drawRect(x1, y1, w-2, h-2);
- if (sunken)
- p->setPen(pal.light().color());
- else
- p->setPen(pal.dark().color());
- QLineF lines[4] = { QLineF(x1+1, y1+1, x2-2, y1+1),
- QLineF(x1+1, y1+2, x1+1, y2-2),
- QLineF(x1, y2, x2, y2),
- QLineF(x2,y1, x2,y2-1) };
- p->drawLines(lines, 4); // draw bottom/right lines
- } else { // more complicated
- int m = lineWidth+midLineWidth;
- int i, j=0, k=m;
- for (i=0; i<lineWidth; i++) { // draw top shadow
- QLineF lines[4] = { QLineF(x1+i, y2-i, x1+i, y1+i),
- QLineF(x1+i, y1+i, x2-i, y1+i),
- QLineF(x1+k, y2-k, x2-k, y2-k),
- QLineF(x2-k, y2-k, x2-k, y1+k) };
- p->drawLines(lines, 4);
- k++;
- }
- p->setPen(pal.mid().color());
- j = lineWidth*2;
- for (i=0; i<midLineWidth; i++) { // draw lines in the middle
- p->drawRect(x1+lineWidth+i, y1+lineWidth+i, w-j-1, h-j-1);
- j += 2;
- }
- if (sunken)
- p->setPen(pal.light().color());
- else
- p->setPen(pal.dark().color());
- k = m;
- for (i=0; i<lineWidth; i++) { // draw bottom shadow
- QLineF lines[4] = { QLineF(x1+1+i, y2-i, x2-i, y2-i),
- QLineF(x2-i, y2-i, x2-i, y1+i+1),
- QLineF(x1+k, y2-k, x1+k, y1+k),
- QLineF(x1+k, y1+k, x2-k, y1+k) };
- p->drawLines(lines, 4);
- k++;
- }
- }
- if (fill) {
- QBrush oldBrush = p->brush();
- int tlw = lineWidth + midLineWidth;
- p->setPen(Qt::NoPen);
- p->setBrush(*fill);
- p->drawRect(x+tlw, y+tlw, w-2*tlw, h-2*tlw);
- p->setBrush(oldBrush);
- }
- p->setPen(oldPen); // restore pen
-}
-
-
-/*!
- \fn void qDrawShadePanel(QPainter *painter, int x, int y, int width, int height,
- const QPalette &palette, bool sunken,
- int lineWidth, const QBrush *fill)
- \relates <qdrawutil.h>
-
- Draws the shaded panel beginning at (\a x, \a y) with the given \a
- width and \a height using the provided \a painter and the given \a
- lineWidth.
-
- The given \a palette specifies the shading colors (\l
- {QPalette::light()}{light}, \l {QPalette::dark()}{dark} and \l
- {QPalette::mid()}{middle} colors). The panel's interior is filled
- with the \a fill brush unless \a fill is 0.
-
- The panel appears sunken if \a sunken is true, otherwise raised.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style(). Use the drawing functions in QStyle to make
- widgets that follow the current GUI style.
-
- Alternatively you can use a QFrame widget and apply the
- QFrame::setFrameStyle() function to display a shaded panel:
-
- \snippet code/src_gui_painting_qdrawutil.cpp 2
-
- \sa qDrawWinPanel(), qDrawShadeLine(), qDrawShadeRect(), QStyle
-*/
-
-void qDrawShadePanel(QPainter *p, int x, int y, int w, int h,
- const QPalette &pal, bool sunken,
- int lineWidth, const QBrush *fill)
-{
- if (w == 0 || h == 0)
- return;
- if (Q_UNLIKELY(w < 0 || h < 0 || lineWidth < 0)) {
- qWarning("qDrawShadePanel: Invalid parameters");
- }
-
- PainterStateGuard painterGuard(p);
- const qreal devicePixelRatio = p->device()->devicePixelRatioF();
- if (!qFuzzyCompare(devicePixelRatio, qreal(1))) {
- painterGuard.save();
- const qreal inverseScale = qreal(1) / devicePixelRatio;
- p->scale(inverseScale, inverseScale);
- x = qRound(devicePixelRatio * x);
- y = qRound(devicePixelRatio * y);
- w = qRound(devicePixelRatio * w);
- h = qRound(devicePixelRatio * h);
- lineWidth = qRound(devicePixelRatio * lineWidth);
- }
-
- QColor shade = pal.dark().color();
- QColor light = pal.light().color();
- if (fill) {
- if (fill->color() == shade)
- shade = pal.shadow().color();
- if (fill->color() == light)
- light = pal.midlight().color();
- }
- QPen oldPen = p->pen(); // save pen
- QVector<QLineF> lines;
- lines.reserve(2*lineWidth);
-
- if (sunken)
- p->setPen(shade);
- else
- p->setPen(light);
- int x1, y1, x2, y2;
- int i;
- x1 = x;
- y1 = y2 = y;
- x2 = x+w-2;
- for (i=0; i<lineWidth; i++) { // top shadow
- lines << QLineF(x1, y1++, x2--, y2++);
- }
- x2 = x1;
- y1 = y+h-2;
- for (i=0; i<lineWidth; i++) { // left shado
- lines << QLineF(x1++, y1, x2++, y2--);
- }
- p->drawLines(lines);
- lines.clear();
- if (sunken)
- p->setPen(light);
- else
- p->setPen(shade);
- x1 = x;
- y1 = y2 = y+h-1;
- x2 = x+w-1;
- for (i=0; i<lineWidth; i++) { // bottom shadow
- lines << QLineF(x1++, y1--, x2, y2--);
- }
- x1 = x2;
- y1 = y;
- y2 = y+h-lineWidth-1;
- for (i=0; i<lineWidth; i++) { // right shadow
- lines << QLineF(x1--, y1++, x2--, y2);
- }
- p->drawLines(lines);
- if (fill) // fill with fill color
- p->fillRect(x+lineWidth, y+lineWidth, w-lineWidth*2, h-lineWidth*2, *fill);
- p->setPen(oldPen); // restore pen
-}
-
-
-/*!
- \internal
- This function draws a rectangle with two pixel line width.
- It is called from qDrawWinButton() and qDrawWinPanel().
-
- c1..c4 and fill are used:
-
- 1 1 1 1 1 2
- 1 3 3 3 4 2
- 1 3 F F 4 2
- 1 3 F F 4 2
- 1 4 4 4 4 2
- 2 2 2 2 2 2
-*/
-
-static void qDrawWinShades(QPainter *p,
- int x, int y, int w, int h,
- const QColor &c1, const QColor &c2,
- const QColor &c3, const QColor &c4,
- const QBrush *fill)
-{
- if (w < 2 || h < 2) // can't do anything with that
- return;
-
- PainterStateGuard painterGuard(p);
- const qreal devicePixelRatio = p->device()->devicePixelRatioF();
- if (!qFuzzyCompare(devicePixelRatio, qreal(1))) {
- painterGuard.save();
- const qreal inverseScale = qreal(1) / devicePixelRatio;
- p->scale(inverseScale, inverseScale);
- x = qRound(devicePixelRatio * x);
- y = qRound(devicePixelRatio * y);
- w = qRound(devicePixelRatio * w);
- h = qRound(devicePixelRatio * h);
- }
-
- QPen oldPen = p->pen();
- QPoint a[3] = { QPoint(x, y+h-2), QPoint(x, y), QPoint(x+w-2, y) };
- p->setPen(c1);
- p->drawPolyline(a, 3);
- QPoint b[3] = { QPoint(x, y+h-1), QPoint(x+w-1, y+h-1), QPoint(x+w-1, y) };
- p->setPen(c2);
- p->drawPolyline(b, 3);
- if (w > 4 && h > 4) {
- QPoint c[3] = { QPoint(x+1, y+h-3), QPoint(x+1, y+1), QPoint(x+w-3, y+1) };
- p->setPen(c3);
- p->drawPolyline(c, 3);
- QPoint d[3] = { QPoint(x+1, y+h-2), QPoint(x+w-2, y+h-2), QPoint(x+w-2, y+1) };
- p->setPen(c4);
- p->drawPolyline(d, 3);
- if (fill)
- p->fillRect(QRect(x+2, y+2, w-4, h-4), *fill);
- }
- p->setPen(oldPen);
-}
-
-
-/*!
- \fn void qDrawWinButton(QPainter *painter, int x, int y, int width, int height,
- const QPalette &palette, bool sunken,
- const QBrush *fill)
- \relates <qdrawutil.h>
-
- Draws the Windows-style button specified by the given point (\a x,
- \a y}, \a width and \a height using the provided \a painter with a
- line width of 2 pixels. The button's interior is filled with the
- \a{fill} brush unless \a fill is 0.
-
- The given \a palette specifies the shading colors (\l
- {QPalette::light()}{light}, \l {QPalette::dark()}{dark} and \l
- {QPalette::mid()}{middle} colors).
-
- The button appears sunken if \a sunken is true, otherwise raised.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style()-> Use the drawing functions in QStyle to make
- widgets that follow the current GUI style.
-
- \sa qDrawWinPanel(), QStyle
-*/
-
-void qDrawWinButton(QPainter *p, int x, int y, int w, int h,
- const QPalette &pal, bool sunken,
- const QBrush *fill)
-{
- if (sunken)
- qDrawWinShades(p, x, y, w, h,
- pal.shadow().color(), pal.light().color(), pal.dark().color(),
- pal.button().color(), fill);
- else
- qDrawWinShades(p, x, y, w, h,
- pal.light().color(), pal.shadow().color(), pal.button().color(),
- pal.dark().color(), fill);
-}
-
-/*!
- \fn void qDrawWinPanel(QPainter *painter, int x, int y, int width, int height,
- const QPalette &palette, bool sunken,
- const QBrush *fill)
- \relates <qdrawutil.h>
-
- Draws the Windows-style panel specified by the given point(\a x,
- \a y), \a width and \a height using the provided \a painter with a
- line width of 2 pixels. The button's interior is filled with the
- \a fill brush unless \a fill is 0.
-
- The given \a palette specifies the shading colors. The panel
- appears sunken if \a sunken is true, otherwise raised.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style(). Use the drawing functions in QStyle to make
- widgets that follow the current GUI style.
-
- Alternatively you can use a QFrame widget and apply the
- QFrame::setFrameStyle() function to display a shaded panel:
-
- \snippet code/src_gui_painting_qdrawutil.cpp 3
-
- \sa qDrawShadePanel(), qDrawWinButton(), QStyle
-*/
-
-void qDrawWinPanel(QPainter *p, int x, int y, int w, int h,
- const QPalette &pal, bool sunken,
- const QBrush *fill)
-{
- if (sunken)
- qDrawWinShades(p, x, y, w, h,
- pal.dark().color(), pal.light().color(), pal.shadow().color(),
- pal.midlight().color(), fill);
- else
- qDrawWinShades(p, x, y, w, h,
- pal.light().color(), pal.shadow().color(), pal.midlight().color(),
- pal.dark().color(), fill);
-}
-
-/*!
- \fn void qDrawPlainRect(QPainter *painter, int x, int y, int width, int height, const QColor &lineColor,
- int lineWidth, const QBrush *fill)
- \relates <qdrawutil.h>
-
- Draws the plain rectangle beginning at (\a x, \a y) with the given
- \a width and \a height, using the specified \a painter, \a lineColor
- and \a lineWidth. The rectangle's interior is filled with the \a
- fill brush unless \a fill is 0.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style(). Use the drawing functions in QStyle to make
- widgets that follow the current GUI style.
-
- Alternatively you can use a QFrame widget and apply the
- QFrame::setFrameStyle() function to display a plain rectangle:
-
- \snippet code/src_gui_painting_qdrawutil.cpp 4
-
- \sa qDrawShadeRect(), QStyle
-*/
-
-void qDrawPlainRect(QPainter *p, int x, int y, int w, int h, const QColor &c,
- int lineWidth, const QBrush *fill)
-{
- if (w == 0 || h == 0)
- return;
- if (Q_UNLIKELY(w < 0 || h < 0 || lineWidth < 0)) {
- qWarning("qDrawPlainRect: Invalid parameters");
- }
-
- PainterStateGuard painterGuard(p);
- const qreal devicePixelRatio = p->device()->devicePixelRatioF();
- if (!qFuzzyCompare(devicePixelRatio, qreal(1))) {
- painterGuard.save();
- const qreal inverseScale = qreal(1) / devicePixelRatio;
- p->scale(inverseScale, inverseScale);
- x = qRound(devicePixelRatio * x);
- y = qRound(devicePixelRatio * y);
- w = qRound(devicePixelRatio * w);
- h = qRound(devicePixelRatio * h);
- lineWidth = qRound(devicePixelRatio * lineWidth);
- }
-
- QPen oldPen = p->pen();
- QBrush oldBrush = p->brush();
- p->setPen(c);
- p->setBrush(Qt::NoBrush);
- for (int i=0; i<lineWidth; i++)
- p->drawRect(x+i, y+i, w-i*2 - 1, h-i*2 - 1);
- if (fill) { // fill with fill color
- p->setPen(Qt::NoPen);
- p->setBrush(*fill);
- p->drawRect(x+lineWidth, y+lineWidth, w-lineWidth*2, h-lineWidth*2);
- }
- p->setPen(oldPen);
- p->setBrush(oldBrush);
-}
-
-/*****************************************************************************
- Overloaded functions.
- *****************************************************************************/
-
-/*!
- \fn void qDrawShadeLine(QPainter *painter, const QPoint &p1, const QPoint &p2,
- const QPalette &palette, bool sunken, int lineWidth, int midLineWidth)
- \relates <qdrawutil.h>
- \overload
-
- Draws a horizontal or vertical shaded line between \a p1 and \a p2
- using the given \a painter. Note that nothing is drawn if the line
- between the points would be neither horizontal nor vertical.
-
- The provided \a palette specifies the shading colors (\l
- {QPalette::light()}{light}, \l {QPalette::dark()}{dark} and \l
- {QPalette::mid()}{middle} colors). The given \a lineWidth
- specifies the line width for each of the lines; it is not the
- total line width. The given \a midLineWidth specifies the width of
- a middle line drawn in the QPalette::mid() color.
-
- The line appears sunken if \a sunken is true, otherwise raised.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style(). Use the drawing functions in QStyle to
- make widgets that follow the current GUI style.
-
-
- Alternatively you can use a QFrame widget and apply the
- QFrame::setFrameStyle() function to display a shaded line:
-
- \snippet code/src_gui_painting_qdrawutil.cpp 5
-
- \sa qDrawShadeRect(), qDrawShadePanel(), QStyle
-*/
-
-void qDrawShadeLine(QPainter *p, const QPoint &p1, const QPoint &p2,
- const QPalette &pal, bool sunken,
- int lineWidth, int midLineWidth)
-{
- qDrawShadeLine(p, p1.x(), p1.y(), p2.x(), p2.y(), pal, sunken,
- lineWidth, midLineWidth);
-}
-
-/*!
- \fn void qDrawShadeRect(QPainter *painter, const QRect &rect, const QPalette &palette,
- bool sunken, int lineWidth, int midLineWidth, const QBrush *fill)
- \relates <qdrawutil.h>
- \overload
-
- Draws the shaded rectangle specified by \a rect using the given \a painter.
-
- The provide \a palette specifies the shading colors (\l
- {QPalette::light()}{light}, \l {QPalette::dark()}{dark} and \l
- {QPalette::mid()}{middle} colors. The given \a lineWidth
- specifies the line width for each of the lines; it is not the
- total line width. The \a midLineWidth specifies the width of a
- middle line drawn in the QPalette::mid() color. The rectangle's
- interior is filled with the \a fill brush unless \a fill is 0.
-
- The rectangle appears sunken if \a sunken is true, otherwise
- raised.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style(). Use the drawing functions in QStyle to make
- widgets that follow the current GUI style.
-
- Alternatively you can use a QFrame widget and apply the
- QFrame::setFrameStyle() function to display a shaded rectangle:
-
- \snippet code/src_gui_painting_qdrawutil.cpp 6
-
- \sa qDrawShadeLine(), qDrawShadePanel(), qDrawPlainRect(), QStyle
-*/
-
-void qDrawShadeRect(QPainter *p, const QRect &r,
- const QPalette &pal, bool sunken,
- int lineWidth, int midLineWidth,
- const QBrush *fill)
-{
- qDrawShadeRect(p, r.x(), r.y(), r.width(), r.height(), pal, sunken,
- lineWidth, midLineWidth, fill);
-}
-
-/*!
- \fn void qDrawShadePanel(QPainter *painter, const QRect &rect, const QPalette &palette,
- bool sunken, int lineWidth, const QBrush *fill)
- \relates <qdrawutil.h>
- \overload
-
- Draws the shaded panel at the rectangle specified by \a rect using the
- given \a painter and the given \a lineWidth.
-
- The given \a palette specifies the shading colors (\l
- {QPalette::light()}{light}, \l {QPalette::dark()}{dark} and \l
- {QPalette::mid()}{middle} colors). The panel's interior is filled
- with the \a fill brush unless \a fill is 0.
-
- The panel appears sunken if \a sunken is true, otherwise raised.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style(). Use the drawing functions in QStyle to make
- widgets that follow the current GUI style.
-
- Alternatively you can use a QFrame widget and apply the
- QFrame::setFrameStyle() function to display a shaded panel:
-
- \snippet code/src_gui_painting_qdrawutil.cpp 7
-
- \sa qDrawWinPanel(), qDrawShadeLine(), qDrawShadeRect(), QStyle
-*/
-
-void qDrawShadePanel(QPainter *p, const QRect &r,
- const QPalette &pal, bool sunken,
- int lineWidth, const QBrush *fill)
-{
- qDrawShadePanel(p, r.x(), r.y(), r.width(), r.height(), pal, sunken,
- lineWidth, fill);
-}
-
-/*!
- \fn void qDrawWinButton(QPainter *painter, const QRect &rect, const QPalette &palette,
- bool sunken, const QBrush *fill)
- \relates <qdrawutil.h>
- \overload
-
- Draws the Windows-style button at the rectangle specified by \a rect using
- the given \a painter with a line width of 2 pixels. The button's interior
- is filled with the \a{fill} brush unless \a fill is 0.
-
- The given \a palette specifies the shading colors (\l
- {QPalette::light()}{light}, \l {QPalette::dark()}{dark} and \l
- {QPalette::mid()}{middle} colors).
-
- The button appears sunken if \a sunken is true, otherwise raised.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style()-> Use the drawing functions in QStyle to make
- widgets that follow the current GUI style.
-
- \sa qDrawWinPanel(), QStyle
-*/
-
-void qDrawWinButton(QPainter *p, const QRect &r,
- const QPalette &pal, bool sunken, const QBrush *fill)
-{
- qDrawWinButton(p, r.x(), r.y(), r.width(), r.height(), pal, sunken, fill);
-}
-
-/*!
- \fn void qDrawWinPanel(QPainter *painter, const QRect &rect, const QPalette &palette,
- bool sunken, const QBrush *fill)
- \overload
-
- Draws the Windows-style panel at the rectangle specified by \a rect using
- the given \a painter with a line width of 2 pixels. The button's interior
- is filled with the \a fill brush unless \a fill is 0.
-
- The given \a palette specifies the shading colors. The panel
- appears sunken if \a sunken is true, otherwise raised.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style(). Use the drawing functions in QStyle to make
- widgets that follow the current GUI style.
-
- Alternatively you can use a QFrame widget and apply the
- QFrame::setFrameStyle() function to display a shaded panel:
-
- \snippet code/src_gui_painting_qdrawutil.cpp 8
-
- \sa qDrawShadePanel(), qDrawWinButton(), QStyle
-*/
-
-void qDrawWinPanel(QPainter *p, const QRect &r,
- const QPalette &pal, bool sunken, const QBrush *fill)
-{
- qDrawWinPanel(p, r.x(), r.y(), r.width(), r.height(), pal, sunken, fill);
-}
-
-/*!
- \fn void qDrawPlainRect(QPainter *painter, const QRect &rect, const QColor &lineColor, int lineWidth, const QBrush *fill)
- \relates <qdrawutil.h>
- \overload
-
- Draws the plain rectangle specified by \a rect using the given \a painter,
- \a lineColor and \a lineWidth. The rectangle's interior is filled with the
- \a fill brush unless \a fill is 0.
-
- \warning This function does not look at QWidget::style() or
- QApplication::style(). Use the drawing functions in QStyle to make
- widgets that follow the current GUI style.
-
- Alternatively you can use a QFrame widget and apply the
- QFrame::setFrameStyle() function to display a plain rectangle:
-
- \snippet code/src_gui_painting_qdrawutil.cpp 9
-
- \sa qDrawShadeRect(), QStyle
-*/
-
-void qDrawPlainRect(QPainter *p, const QRect &r, const QColor &c,
- int lineWidth, const QBrush *fill)
-{
- qDrawPlainRect(p, r.x(), r.y(), r.width(), r.height(), c,
- lineWidth, fill);
-}
-
-
-/*!
- \class QTileRules
- \since 4.6
-
- \inmodule QtWidgets
-
- \brief The QTileRules class provides the rules used to draw a
- pixmap or image split into nine segments.
-
- Spliiting is similar to \l{http://www.w3.org/TR/css3-background/}{CSS3 border-images}.
-
- \sa Qt::TileRule, QMargins
-*/
-
-/*! \fn QTileRules::QTileRules(Qt::TileRule horizontalRule, Qt::TileRule verticalRule)
- Constructs a QTileRules with the given \a horizontalRule and
- \a verticalRule.
- */
-
-/*! \fn QTileRules::QTileRules(Qt::TileRule rule)
- Constructs a QTileRules with the given \a rule used for both
- the horizontal rule and the vertical rule.
- */
-
-/*!
- \fn void qDrawBorderPixmap(QPainter *painter, const QRect &target, const QMargins &margins, const QPixmap &pixmap)
- \relates <qdrawutil.h>
- \since 4.6
-
- \brief The qDrawBorderPixmap function is for drawing a pixmap into
- the margins of a rectangle.
-
- Draws the given \a pixmap into the given \a target rectangle, using the
- given \a painter. The pixmap will be split into nine segments and drawn
- according to the \a margins structure.
-*/
-
-typedef QVarLengthArray<QPainter::PixmapFragment, 16> QPixmapFragmentsArray;
-
-/*!
- \since 4.6
-
- Draws the indicated \a sourceRect rectangle from the given \a pixmap into
- the given \a targetRect rectangle, using the given \a painter. The pixmap
- will be split into nine segments according to the given \a targetMargins
- and \a sourceMargins structures. Finally, the pixmap will be drawn
- according to the given \a rules.
-
- This function is used to draw a scaled pixmap, similar to
- \l{http://www.w3.org/TR/css3-background/}{CSS3 border-images}
-
- \sa Qt::TileRule, QTileRules, QMargins
-*/
-
-void qDrawBorderPixmap(QPainter *painter, const QRect &targetRect, const QMargins &targetMargins,
- const QPixmap &pixmap, const QRect &sourceRect,const QMargins &sourceMargins,
- const QTileRules &rules
-#ifndef Q_CLANG_QDOC
- , QDrawBorderPixmap::DrawingHints hints
-#endif
- )
-{
- QPainter::PixmapFragment d;
- d.opacity = 1.0;
- d.rotation = 0.0;
-
- QPixmapFragmentsArray opaqueData;
- QPixmapFragmentsArray translucentData;
-
- // source center
- const int sourceCenterTop = sourceRect.top() + sourceMargins.top();
- const int sourceCenterLeft = sourceRect.left() + sourceMargins.left();
- const int sourceCenterBottom = sourceRect.bottom() - sourceMargins.bottom() + 1;
- const int sourceCenterRight = sourceRect.right() - sourceMargins.right() + 1;
- const int sourceCenterWidth = sourceCenterRight - sourceCenterLeft;
- const int sourceCenterHeight = sourceCenterBottom - sourceCenterTop;
- // target center
- const int targetCenterTop = targetRect.top() + targetMargins.top();
- const int targetCenterLeft = targetRect.left() + targetMargins.left();
- const int targetCenterBottom = targetRect.bottom() - targetMargins.bottom() + 1;
- const int targetCenterRight = targetRect.right() - targetMargins.right() + 1;
- const int targetCenterWidth = targetCenterRight - targetCenterLeft;
- const int targetCenterHeight = targetCenterBottom - targetCenterTop;
-
- QVarLengthArray<qreal, 16> xTarget; // x-coordinates of target rectangles
- QVarLengthArray<qreal, 16> yTarget; // y-coordinates of target rectangles
-
- int columns = 3;
- int rows = 3;
- if (rules.horizontal != Qt::StretchTile && sourceCenterWidth != 0)
- columns = qMax(3, 2 + qCeil(targetCenterWidth / qreal(sourceCenterWidth)));
- if (rules.vertical != Qt::StretchTile && sourceCenterHeight != 0)
- rows = qMax(3, 2 + qCeil(targetCenterHeight / qreal(sourceCenterHeight)));
-
- xTarget.resize(columns + 1);
- yTarget.resize(rows + 1);
-
- bool oldAA = painter->testRenderHint(QPainter::Antialiasing);
- if (painter->paintEngine()->type() != QPaintEngine::OpenGL
- && painter->paintEngine()->type() != QPaintEngine::OpenGL2
- && oldAA && painter->combinedTransform().type() != QTransform::TxNone) {
- painter->setRenderHint(QPainter::Antialiasing, false);
- }
-
- xTarget[0] = targetRect.left();
- xTarget[1] = targetCenterLeft;
- xTarget[columns - 1] = targetCenterRight;
- xTarget[columns] = targetRect.left() + targetRect.width();
-
- yTarget[0] = targetRect.top();
- yTarget[1] = targetCenterTop;
- yTarget[rows - 1] = targetCenterBottom;
- yTarget[rows] = targetRect.top() + targetRect.height();
-
- qreal dx = targetCenterWidth;
- qreal dy = targetCenterHeight;
-
- switch (rules.horizontal) {
- case Qt::StretchTile:
- dx = targetCenterWidth;
- break;
- case Qt::RepeatTile:
- dx = sourceCenterWidth;
- break;
- case Qt::RoundTile:
- dx = targetCenterWidth / qreal(columns - 2);
- break;
- }
-
- for (int i = 2; i < columns - 1; ++i)
- xTarget[i] = xTarget[i - 1] + dx;
-
- switch (rules.vertical) {
- case Qt::StretchTile:
- dy = targetCenterHeight;
- break;
- case Qt::RepeatTile:
- dy = sourceCenterHeight;
- break;
- case Qt::RoundTile:
- dy = targetCenterHeight / qreal(rows - 2);
- break;
- }
-
- for (int i = 2; i < rows - 1; ++i)
- yTarget[i] = yTarget[i - 1] + dy;
-
- // corners
- if (targetMargins.top() > 0 && targetMargins.left() > 0 && sourceMargins.top() > 0 && sourceMargins.left() > 0) { // top left
- d.x = (0.5 * (xTarget[1] + xTarget[0]));
- d.y = (0.5 * (yTarget[1] + yTarget[0]));
- d.sourceLeft = sourceRect.left();
- d.sourceTop = sourceRect.top();
- d.width = sourceMargins.left();
- d.height = sourceMargins.top();
- d.scaleX = qreal(xTarget[1] - xTarget[0]) / d.width;
- d.scaleY = qreal(yTarget[1] - yTarget[0]) / d.height;
- if (hints & QDrawBorderPixmap::OpaqueTopLeft)
- opaqueData.append(d);
- else
- translucentData.append(d);
- }
- if (targetMargins.top() > 0 && targetMargins.right() > 0 && sourceMargins.top() > 0 && sourceMargins.right() > 0) { // top right
- d.x = (0.5 * (xTarget[columns] + xTarget[columns - 1]));
- d.y = (0.5 * (yTarget[1] + yTarget[0]));
- d.sourceLeft = sourceCenterRight;
- d.sourceTop = sourceRect.top();
- d.width = sourceMargins.right();
- d.height = sourceMargins.top();
- d.scaleX = qreal(xTarget[columns] - xTarget[columns - 1]) / d.width;
- d.scaleY = qreal(yTarget[1] - yTarget[0]) / d.height;
- if (hints & QDrawBorderPixmap::OpaqueTopRight)
- opaqueData.append(d);
- else
- translucentData.append(d);
- }
- if (targetMargins.bottom() > 0 && targetMargins.left() > 0 && sourceMargins.bottom() > 0 && sourceMargins.left() > 0) { // bottom left
- d.x = (0.5 * (xTarget[1] + xTarget[0]));
- d.y =(0.5 * (yTarget[rows] + yTarget[rows - 1]));
- d.sourceLeft = sourceRect.left();
- d.sourceTop = sourceCenterBottom;
- d.width = sourceMargins.left();
- d.height = sourceMargins.bottom();
- d.scaleX = qreal(xTarget[1] - xTarget[0]) / d.width;
- d.scaleY = qreal(yTarget[rows] - yTarget[rows - 1]) / d.height;
- if (hints & QDrawBorderPixmap::OpaqueBottomLeft)
- opaqueData.append(d);
- else
- translucentData.append(d);
- }
- if (targetMargins.bottom() > 0 && targetMargins.right() > 0 && sourceMargins.bottom() > 0 && sourceMargins.right() > 0) { // bottom right
- d.x = (0.5 * (xTarget[columns] + xTarget[columns - 1]));
- d.y = (0.5 * (yTarget[rows] + yTarget[rows - 1]));
- d.sourceLeft = sourceCenterRight;
- d.sourceTop = sourceCenterBottom;
- d.width = sourceMargins.right();
- d.height = sourceMargins.bottom();
- d.scaleX = qreal(xTarget[columns] - xTarget[columns - 1]) / d.width;
- d.scaleY = qreal(yTarget[rows] - yTarget[rows - 1]) / d.height;
- if (hints & QDrawBorderPixmap::OpaqueBottomRight)
- opaqueData.append(d);
- else
- translucentData.append(d);
- }
-
- // horizontal edges
- if (targetCenterWidth > 0 && sourceCenterWidth > 0) {
- if (targetMargins.top() > 0 && sourceMargins.top() > 0) { // top
- QPixmapFragmentsArray &data = hints & QDrawBorderPixmap::OpaqueTop ? opaqueData : translucentData;
- d.sourceLeft = sourceCenterLeft;
- d.sourceTop = sourceRect.top();
- d.width = sourceCenterWidth;
- d.height = sourceMargins.top();
- d.y = (0.5 * (yTarget[1] + yTarget[0]));
- d.scaleX = dx / d.width;
- d.scaleY = qreal(yTarget[1] - yTarget[0]) / d.height;
- for (int i = 1; i < columns - 1; ++i) {
- d.x = (0.5 * (xTarget[i + 1] + xTarget[i]));
- data.append(d);
- }
- if (rules.horizontal == Qt::RepeatTile)
- data[data.size() - 1].width = ((xTarget[columns - 1] - xTarget[columns - 2]) / d.scaleX);
- }
- if (targetMargins.bottom() > 0 && sourceMargins.bottom() > 0) { // bottom
- QPixmapFragmentsArray &data = hints & QDrawBorderPixmap::OpaqueBottom ? opaqueData : translucentData;
- d.sourceLeft = sourceCenterLeft;
- d.sourceTop = sourceCenterBottom;
- d.width = sourceCenterWidth;
- d.height = sourceMargins.bottom();
- d.y = (0.5 * (yTarget[rows] + yTarget[rows - 1]));
- d.scaleX = dx / d.width;
- d.scaleY = qreal(yTarget[rows] - yTarget[rows - 1]) / d.height;
- for (int i = 1; i < columns - 1; ++i) {
- d.x = (0.5 * (xTarget[i + 1] + xTarget[i]));
- data.append(d);
- }
- if (rules.horizontal == Qt::RepeatTile)
- data[data.size() - 1].width = ((xTarget[columns - 1] - xTarget[columns - 2]) / d.scaleX);
- }
- }
-
- // vertical edges
- if (targetCenterHeight > 0 && sourceCenterHeight > 0) {
- if (targetMargins.left() > 0 && sourceMargins.left() > 0) { // left
- QPixmapFragmentsArray &data = hints & QDrawBorderPixmap::OpaqueLeft ? opaqueData : translucentData;
- d.sourceLeft = sourceRect.left();
- d.sourceTop = sourceCenterTop;
- d.width = sourceMargins.left();
- d.height = sourceCenterHeight;
- d.x = (0.5 * (xTarget[1] + xTarget[0]));
- d.scaleX = qreal(xTarget[1] - xTarget[0]) / d.width;
- d.scaleY = dy / d.height;
- for (int i = 1; i < rows - 1; ++i) {
- d.y = (0.5 * (yTarget[i + 1] + yTarget[i]));
- data.append(d);
- }
- if (rules.vertical == Qt::RepeatTile)
- data[data.size() - 1].height = ((yTarget[rows - 1] - yTarget[rows - 2]) / d.scaleY);
- }
- if (targetMargins.right() > 0 && sourceMargins.right() > 0) { // right
- QPixmapFragmentsArray &data = hints & QDrawBorderPixmap::OpaqueRight ? opaqueData : translucentData;
- d.sourceLeft = sourceCenterRight;
- d.sourceTop = sourceCenterTop;
- d.width = sourceMargins.right();
- d.height = sourceCenterHeight;
- d.x = (0.5 * (xTarget[columns] + xTarget[columns - 1]));
- d.scaleX = qreal(xTarget[columns] - xTarget[columns - 1]) / d.width;
- d.scaleY = dy / d.height;
- for (int i = 1; i < rows - 1; ++i) {
- d.y = (0.5 * (yTarget[i + 1] + yTarget[i]));
- data.append(d);
- }
- if (rules.vertical == Qt::RepeatTile)
- data[data.size() - 1].height = ((yTarget[rows - 1] - yTarget[rows - 2]) / d.scaleY);
- }
- }
-
- // center
- if (targetCenterWidth > 0 && targetCenterHeight > 0 && sourceCenterWidth > 0 && sourceCenterHeight > 0) {
- QPixmapFragmentsArray &data = hints & QDrawBorderPixmap::OpaqueCenter ? opaqueData : translucentData;
- d.sourceLeft = sourceCenterLeft;
- d.sourceTop = sourceCenterTop;
- d.width = sourceCenterWidth;
- d.height = sourceCenterHeight;
- d.scaleX = dx / d.width;
- d.scaleY = dy / d.height;
-
- qreal repeatWidth = (xTarget[columns - 1] - xTarget[columns - 2]) / d.scaleX;
- qreal repeatHeight = (yTarget[rows - 1] - yTarget[rows - 2]) / d.scaleY;
-
- for (int j = 1; j < rows - 1; ++j) {
- d.y = (0.5 * (yTarget[j + 1] + yTarget[j]));
- for (int i = 1; i < columns - 1; ++i) {
- d.x = (0.5 * (xTarget[i + 1] + xTarget[i]));
- data.append(d);
- }
- if (rules.horizontal == Qt::RepeatTile)
- data[data.size() - 1].width = repeatWidth;
- }
- if (rules.vertical == Qt::RepeatTile) {
- for (int i = 1; i < columns - 1; ++i)
- data[data.size() - i].height = repeatHeight;
- }
- }
-
- if (opaqueData.size())
- painter->drawPixmapFragments(opaqueData.data(), opaqueData.size(), pixmap, QPainter::OpaqueHint);
- if (translucentData.size())
- painter->drawPixmapFragments(translucentData.data(), translucentData.size(), pixmap);
-
- if (oldAA)
- painter->setRenderHint(QPainter::Antialiasing, true);
-}
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
diff --git a/src/quicknativestyle/qstyle/qquickdrawutil.h b/src/quicknativestyle/qstyle/qquickdrawutil.h
deleted file mode 100644
index 4f7a6c2e..00000000
--- a/src/quicknativestyle/qstyle/qquickdrawutil.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QDRAWUTIL_H
-#define QDRAWUTIL_H
-
-#include <QtCore/qnamespace.h>
-#include <QtCore/qstring.h> // char*->QString conversion
-#include <QtCore/qmargins.h>
-#include <QtGui/qpixmap.h>
-
-QT_BEGIN_NAMESPACE
-
-
-class QPainter;
-class QPalette;
-class QPoint;
-class QColor;
-class QBrush;
-class QRect;
-
-namespace QQC2 {
-
-//
-// Standard shade drawing
-//
-
-void qDrawShadeLine(QPainter *p, int x1, int y1, int x2, int y2,
- const QPalette &pal, bool sunken = true,
- int lineWidth = 1, int midLineWidth = 0);
-
-void qDrawShadeLine(QPainter *p, const QPoint &p1, const QPoint &p2,
- const QPalette &pal, bool sunken = true,
- int lineWidth = 1, int midLineWidth = 0);
-
-void qDrawShadeRect(QPainter *p, int x, int y, int w, int h,
- const QPalette &pal, bool sunken = false,
- int lineWidth = 1, int midLineWidth = 0,
- const QBrush *fill = nullptr);
-
-void qDrawShadeRect(QPainter *p, const QRect &r,
- const QPalette &pal, bool sunken = false,
- int lineWidth = 1, int midLineWidth = 0,
- const QBrush *fill = nullptr);
-
-void qDrawShadePanel(QPainter *p, int x, int y, int w, int h,
- const QPalette &pal, bool sunken = false,
- int lineWidth = 1, const QBrush *fill = nullptr);
-
-void qDrawShadePanel(QPainter *p, const QRect &r,
- const QPalette &pal, bool sunken = false,
- int lineWidth = 1, const QBrush *fill = nullptr);
-
-void qDrawWinButton(QPainter *p, int x, int y, int w, int h,
- const QPalette &pal, bool sunken = false,
- const QBrush *fill = nullptr);
-
-void qDrawWinButton(QPainter *p, const QRect &r,
- const QPalette &pal, bool sunken = false,
- const QBrush *fill = nullptr);
-
-void qDrawWinPanel(QPainter *p, int x, int y, int w, int h,
- const QPalette &pal, bool sunken = false,
- const QBrush *fill = nullptr);
-
-void qDrawWinPanel(QPainter *p, const QRect &r,
- const QPalette &pal, bool sunken = false,
- const QBrush *fill = nullptr);
-
-void qDrawPlainRect(QPainter *p, int x, int y, int w, int h, const QColor &,
- int lineWidth = 1, const QBrush *fill = nullptr);
-
-void qDrawPlainRect(QPainter *p, const QRect &r, const QColor &,
- int lineWidth = 1, const QBrush *fill = nullptr);
-
-
-
-struct QTileRules
-{
- inline QTileRules(Qt::TileRule horizontalRule, Qt::TileRule verticalRule)
- : horizontal(horizontalRule), vertical(verticalRule) {}
- inline QTileRules(Qt::TileRule rule = Qt::StretchTile)
- : horizontal(rule), vertical(rule) {}
- Qt::TileRule horizontal;
- Qt::TileRule vertical;
-};
-
-#ifndef Q_CLANG_QDOC
-// For internal use only.
-namespace QDrawBorderPixmap
-{
- enum DrawingHint
- {
- OpaqueTopLeft = 0x0001,
- OpaqueTop = 0x0002,
- OpaqueTopRight = 0x0004,
- OpaqueLeft = 0x0008,
- OpaqueCenter = 0x0010,
- OpaqueRight = 0x0020,
- OpaqueBottomLeft = 0x0040,
- OpaqueBottom = 0x0080,
- OpaqueBottomRight = 0x0100,
- OpaqueCorners = OpaqueTopLeft | OpaqueTopRight | OpaqueBottomLeft | OpaqueBottomRight,
- OpaqueEdges = OpaqueTop | OpaqueLeft | OpaqueRight | OpaqueBottom,
- OpaqueFrame = OpaqueCorners | OpaqueEdges,
- OpaqueAll = OpaqueCenter | OpaqueFrame
- };
-
- Q_DECLARE_FLAGS(DrawingHints, DrawingHint)
-}
-#endif
-
-void qDrawBorderPixmap(QPainter *painter,
- const QRect &targetRect,
- const QMargins &targetMargins,
- const QPixmap &pixmap,
- const QRect &sourceRect,
- const QMargins &sourceMargins,
- const QTileRules &rules = QTileRules()
-#ifndef Q_CLANG_QDOC
- , QDrawBorderPixmap::DrawingHints hints = QDrawBorderPixmap::DrawingHints()
-#endif
- );
-
-inline void qDrawBorderPixmap(QPainter *painter,
- const QRect &target,
- const QMargins &margins,
- const QPixmap &pixmap)
-{
- qDrawBorderPixmap(painter, target, margins, pixmap, pixmap.rect(), margins);
-}
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif // QDRAWUTIL_H
diff --git a/src/quicknativestyle/qstyle/qquicknativestyle.cpp b/src/quicknativestyle/qstyle/qquicknativestyle.cpp
deleted file mode 100644
index 7a2030e0..00000000
--- a/src/quicknativestyle/qstyle/qquicknativestyle.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicknativestyle.h"
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2 {
-
-QStyle *QQuickNativeStyle::s_style = nullptr;
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
diff --git a/src/quicknativestyle/qstyle/qquicknativestyle.h b/src/quicknativestyle/qstyle/qquicknativestyle.h
deleted file mode 100644
index 13c313f0..00000000
--- a/src/quicknativestyle/qstyle/qquicknativestyle.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKNATIVESTYLE_H
-#define QQUICKNATIVESTYLE_H
-
-#include "qquickstyle.h"
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2 {
-
-class QQuickNativeStyle
-{
-public:
- static void setStyle(QStyle *style)
- {
- if (s_style)
- delete s_style;
- s_style = style;
- }
-
- inline static QStyle *style()
- {
- return s_style;
- }
-
-private:
- static QStyle *s_style;
-};
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif // QQUICKNATIVESTYLE_H
diff --git a/src/quicknativestyle/qstyle/qquickstyle.cpp b/src/quicknativestyle/qstyle/qquickstyle.cpp
deleted file mode 100644
index 2278fb65..00000000
--- a/src/quicknativestyle/qstyle/qquickstyle.cpp
+++ /dev/null
@@ -1,412 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyle.h"
-#include "qquickstyle_p.h"
-#include "qquickstyleoption.h"
-
-#include <QtGui/qpainter.h>
-#include <QtGui/qbitmap.h>
-#include <QtGui/qpixmapcache.h>
-#include <QtGui/qpa/qplatformtheme.h>
-
-#include <QtGui/private/qguiapplication_p.h>
-
-#ifndef QT_NO_DEBUG
-# include <QtCore/qdebug.h>
-#endif
-
-#include <limits.h>
-#include <algorithm>
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2 {
-
-/*!
- Constructs a style object.
-*/
-QStyle::QStyle()
- : QObject(*new QStylePrivate)
-{
- Q_D(QStyle);
- d->proxyStyle = this;
-}
-
-/*!
- \internal
-
- Constructs a style object.
-*/
-QStyle::QStyle(QStylePrivate &dd)
- : QObject(dd)
-{
- Q_D(QStyle);
- d->proxyStyle = this;
-}
-
-/*!
- Destroys the style object.
-*/
-QStyle::~QStyle()
-{
-}
-
-/*!
- \fn QRect QStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const
-
- Returns the area within the given \a rectangle in which to draw
- the provided \a text according to the specified font \a metrics
- and \a alignment. The \a enabled parameter indicates whether or
- not the associated item is enabled.
-
- If the given \a rectangle is larger than the area needed to render
- the \a text, the rectangle that is returned will be offset within
- \a rectangle according to the specified \a alignment. For
- example, if \a alignment is Qt::AlignCenter, the returned
- rectangle will be centered within \a rectangle. If the given \a
- rectangle is smaller than the area needed, the returned rectangle
- will be the smallest rectangle large enough to render the \a text.
-
- \sa Qt::Alignment
-*/
-QRect QStyle::itemTextRect(const QFontMetrics &metrics, const QRect &rect, int alignment, bool enabled,
- const QString &text) const
-{
- QRect result;
- int x, y, w, h;
- rect.getRect(&x, &y, &w, &h);
- if (!text.isEmpty()) {
- result = metrics.boundingRect(x, y, w, h, alignment, text);
- if (!enabled && proxy()->styleHint(SH_EtchDisabledText)) {
- result.setWidth(result.width()+1);
- result.setHeight(result.height()+1);
- }
- } else {
- result = QRect(x, y, w, h);
- }
- return result;
-}
-
-/*!
- \fn QRect QStyle::itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const
-
- Returns the area within the given \a rectangle in which to draw
- the specified \a pixmap according to the defined \a alignment.
-*/
-QRect QStyle::itemPixmapRect(const QRect &rect, int alignment, const QPixmap &pixmap) const
-{
- QRect result;
- int x, y, w, h;
- rect.getRect(&x, &y, &w, &h);
-
- const int pixmapWidth = pixmap.width()/pixmap.devicePixelRatio();
- const int pixmapHeight = pixmap.height()/pixmap.devicePixelRatio();
-
- if ((alignment & Qt::AlignVCenter) == Qt::AlignVCenter)
- y += h/2 - pixmapHeight/2;
- else if ((alignment & Qt::AlignBottom) == Qt::AlignBottom)
- y += h - pixmapHeight;
- if ((alignment & Qt::AlignRight) == Qt::AlignRight)
- x += w - pixmapWidth;
- else if ((alignment & Qt::AlignHCenter) == Qt::AlignHCenter)
- x += w/2 - pixmapWidth/2;
- else if ((alignment & Qt::AlignLeft) != Qt::AlignLeft && QGuiApplication::isRightToLeft())
- x += w - pixmapWidth;
- result = QRect(x, y, pixmapWidth, pixmapHeight);
- return result;
-}
-
-/*!
- \fn void QStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString& text, QPalette::ColorRole textRole) const
-
- Draws the given \a text in the specified \a rectangle using the
- provided \a painter and \a palette.
-
- The text is drawn using the painter's pen, and aligned and wrapped
- according to the specified \a alignment. If an explicit \a
- textRole is specified, the text is drawn using the \a palette's
- color for the given role. The \a enabled parameter indicates
- whether or not the item is enabled; when reimplementing this
- function, the \a enabled parameter should influence how the item is
- drawn.
-
- \sa Qt::Alignment, drawItemPixmap()
-*/
-void QStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment, const QPalette &pal,
- bool enabled, const QString& text, QPalette::ColorRole textRole) const
-{
- if (text.isEmpty())
- return;
- QPen savedPen;
- if (textRole != QPalette::NoRole) {
- savedPen = painter->pen();
- painter->setPen(QPen(pal.brush(textRole), savedPen.widthF()));
- }
- if (!enabled) {
- if (proxy()->styleHint(SH_DitherDisabledText)) {
- QRect br;
- painter->drawText(rect, alignment, text, &br);
- painter->fillRect(br, QBrush(painter->background().color(), Qt::Dense5Pattern));
- return;
- } else if (proxy()->styleHint(SH_EtchDisabledText)) {
- QPen pen = painter->pen();
- painter->setPen(pal.light().color());
- painter->drawText(rect.adjusted(1, 1, 1, 1), alignment, text);
- painter->setPen(pen);
- }
- }
- painter->drawText(rect, alignment, text);
- if (textRole != QPalette::NoRole)
- painter->setPen(savedPen);
-}
-
-/*!
- \fn void QStyle::drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment,
- const QPixmap &pixmap) const
-
- Draws the given \a pixmap in the specified \a rectangle, according
- to the specified \a alignment, using the provided \a painter.
-
- \sa drawItemText()
-*/
-
-void QStyle::drawItemPixmap(QPainter *painter, const QRect &rect, int alignment,
- const QPixmap &pixmap) const
-{
- qreal scale = pixmap.devicePixelRatio();
- QRect aligned = alignedRect(QGuiApplication::layoutDirection(), QFlag(alignment), pixmap.size() / scale, rect);
- QRect inter = aligned.intersected(rect);
-
- painter->drawPixmap(inter.x(), inter.y(), pixmap, inter.x() - aligned.x(), inter.y() - aligned.y(), inter.width() * scale, inter.height() *scale);
-}
-
-/*!
- \fn QRect QStyle::visualRect(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QRect &logicalRectangle)
-
- Returns the given \a logicalRectangle converted to screen
- coordinates based on the specified \a direction. The \a
- boundingRectangle is used when performing the translation.
-
- This function is provided to support right-to-left desktops, and
- is typically used in implementations of the subControlRect()
- function.
-
- \sa QWidget::layoutDirection
-*/
-QRect QStyle::visualRect(Qt::LayoutDirection direction, const QRect &boundingRect, const QRect &logicalRect)
-{
- if (direction == Qt::LeftToRight)
- return logicalRect;
- QRect rect = logicalRect;
- rect.translate(2 * (boundingRect.right() - logicalRect.right()) +
- logicalRect.width() - boundingRect.width(), 0);
- return rect;
-}
-
-/*!
- \fn QPoint QStyle::visualPos(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QPoint &logicalPosition)
-
- Returns the given \a logicalPosition converted to screen
- coordinates based on the specified \a direction. The \a
- boundingRectangle is used when performing the translation.
-
- \sa QWidget::layoutDirection
-*/
-QPoint QStyle::visualPos(Qt::LayoutDirection direction, const QRect &boundingRect, const QPoint &logicalPos)
-{
- if (direction == Qt::LeftToRight)
- return logicalPos;
- return QPoint(boundingRect.right() - logicalPos.x(), logicalPos.y());
-}
-
-/*!
- Returns a new rectangle of the specified \a size that is aligned to the given \a
- rectangle according to the specified \a alignment and \a direction.
- */
-QRect QStyle::alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle)
-{
- alignment = visualAlignment(direction, alignment);
- int x = rectangle.x();
- int y = rectangle.y();
- int w = size.width();
- int h = size.height();
- if ((alignment & Qt::AlignVCenter) == Qt::AlignVCenter)
- y += rectangle.size().height()/2 - h/2;
- else if ((alignment & Qt::AlignBottom) == Qt::AlignBottom)
- y += rectangle.size().height() - h;
- if ((alignment & Qt::AlignRight) == Qt::AlignRight)
- x += rectangle.size().width() - w;
- else if ((alignment & Qt::AlignHCenter) == Qt::AlignHCenter)
- x += rectangle.size().width()/2 - w/2;
- return QRect(x, y, w, h);
-}
-
-/*!
- Transforms an \a alignment of Qt::AlignLeft or Qt::AlignRight
- without Qt::AlignAbsolute into Qt::AlignLeft or Qt::AlignRight with
- Qt::AlignAbsolute according to the layout \a direction. The other
- alignment flags are left untouched.
-
- If no horizontal alignment was specified, the function returns the
- default alignment for the given layout \a direction.
-
- QWidget::layoutDirection
-*/
-Qt::Alignment QStyle::visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment)
-{
- return QGuiApplicationPrivate::visualAlignment(direction, alignment);
-}
-
-/*!
- Converts the given \a logicalValue to a pixel position. The \a min
- parameter maps to 0, \a max maps to \a span and other values are
- distributed evenly in-between.
-
- This function can handle the entire integer range without
- overflow, providing that \a span is less than 4096.
-
- By default, this function assumes that the maximum value is on the
- right for horizontal items and on the bottom for vertical items.
- Set the \a upsideDown parameter to true to reverse this behavior.
-
- \sa sliderValueFromPosition()
-*/
-
-int QStyle::sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown)
-{
- if (span <= 0 || logicalValue < min || max <= min)
- return 0;
- if (logicalValue > max)
- return upsideDown ? span : min;
-
- uint range = max - min;
- uint p = upsideDown ? max - logicalValue : logicalValue - min;
-
- if (range > (uint)INT_MAX/4096) {
- double dpos = (double(p))/(double(range)/span);
- return int(dpos);
- } else if (range > (uint)span) {
- return (2 * p * span + range) / (2*range);
- } else {
- uint div = span / range;
- uint mod = span % range;
- return p * div + (2 * p * mod + range) / (2 * range);
- }
- // equiv. to (p * span) / range + 0.5
- // no overflow because of this implicit assumption:
- // span <= 4096
-}
-
-/*!
- \fn int QStyle::sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown)
-
- Converts the given pixel \a position to a logical value. 0 maps to
- the \a min parameter, \a span maps to \a max and other values are
- distributed evenly in-between.
-
- This function can handle the entire integer range without
- overflow.
-
- By default, this function assumes that the maximum value is on the
- right for horizontal items and on the bottom for vertical
- items. Set the \a upsideDown parameter to true to reverse this
- behavior.
-
- \sa sliderPositionFromValue()
-*/
-
-int QStyle::sliderValueFromPosition(int min, int max, int pos, int span, bool upsideDown)
-{
- if (span <= 0 || pos <= 0)
- return upsideDown ? max : min;
- if (pos >= span)
- return upsideDown ? min : max;
-
- uint range = max - min;
-
- if ((uint)span > range) {
- int tmp = (2 * pos * range + span) / (2 * span);
- return upsideDown ? max - tmp : tmp + min;
- } else {
- uint div = range / span;
- uint mod = range % span;
- int tmp = pos * div + (2 * pos * mod + span) / (2 * span);
- return upsideDown ? max - tmp : tmp + min;
- }
- // equiv. to min + (pos*range)/span + 0.5
- // no overflow because of this implicit assumption:
- // pos <= span < sqrt(INT_MAX+0.0625)+0.25 ~ sqrt(INT_MAX)
-}
-
-/*!
- Returns the style's standard palette.
-
- Note that on systems that support system colors, the style's
- standard palette is not used. In particular, the Windows
- Vista and Mac styles do not use the standard palette, but make
- use of native theme engines. With these styles, you should not set
- the palette with QApplication::setPalette().
-
- \sa QApplication::setPalette()
- */
-QPalette QStyle::standardPalette() const
-{
- QColor background = QColor(0xd4, 0xd0, 0xc8); // win 2000 grey
-
- QColor light(background.lighter());
- QColor dark(background.darker());
- QColor mid(Qt::gray);
- QPalette palette(Qt::black, background, light, dark, mid, Qt::black, Qt::white);
- palette.setBrush(QPalette::Disabled, QPalette::WindowText, dark);
- palette.setBrush(QPalette::Disabled, QPalette::Text, dark);
- palette.setBrush(QPalette::Disabled, QPalette::ButtonText, dark);
- palette.setBrush(QPalette::Disabled, QPalette::Base, background);
- return palette;
-}
-
-//Windows and KDE allow menus to cover the taskbar, while GNOME and macOS don't
-bool QStylePrivate::useFullScreenForPopup()
-{
- auto theme = QGuiApplicationPrivate::platformTheme();
- return theme && theme->themeHint(QPlatformTheme::UseFullScreenForPopupMenu).toBool();
-}
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#include "moc_qquickstyle.cpp"
diff --git a/src/quicknativestyle/qstyle/qquickstyle.h b/src/quicknativestyle/qstyle/qquickstyle.h
deleted file mode 100644
index 38a0dcf5..00000000
--- a/src/quicknativestyle/qstyle/qquickstyle.h
+++ /dev/null
@@ -1,839 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QSTYLE_H
-#define QSTYLE_H
-
-#include <QtCore/qobject.h>
-#include <QtCore/qrect.h>
-#include <QtCore/qsize.h>
-#include <QtGui/qwindow.h>
-#include <QtGui/qicon.h>
-#include <QtGui/qpixmap.h>
-#include <QtGui/qpalette.h>
-
-QT_BEGIN_NAMESPACE
-
-class QAction;
-class QDebug;
-class QFontMetrics;
-
-namespace QQC2 {
-
-class QStyleHintReturn;
-class QStyleOption;
-class QStyleOptionComplex;
-class QStylePrivate;
-
-class QStyle : public QObject
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QStyle)
-
-protected:
- QStyle(QStylePrivate &dd);
-
-public:
- QStyle();
- virtual ~QStyle();
-
- enum StateFlag {
- State_None = 0x00000000,
- State_Enabled = 0x00000001,
- State_Raised = 0x00000002,
- State_Sunken = 0x00000004,
- State_Off = 0x00000008,
- State_NoChange = 0x00000010,
- State_On = 0x00000020,
- State_DownArrow = 0x00000040,
- State_Horizontal = 0x00000080,
- State_HasFocus = 0x00000100,
- State_Top = 0x00000200,
- State_Bottom = 0x00000400,
- State_FocusAtBorder = 0x00000800,
- State_AutoRaise = 0x00001000,
- State_MouseOver = 0x00002000,
- State_UpArrow = 0x00004000,
- State_Selected = 0x00008000,
- State_Active = 0x00010000,
- State_Window = 0x00020000,
- State_Open = 0x00040000,
- State_Children = 0x00080000,
- State_Item = 0x00100000,
- State_Sibling = 0x00200000,
- State_Editing = 0x00400000,
- State_KeyboardFocusChange = 0x00800000,
-#ifdef QT_KEYPAD_NAVIGATION
- State_HasEditFocus = 0x01000000,
-#endif
- State_ReadOnly = 0x02000000,
- State_Small = 0x04000000,
- State_Mini = 0x08000000
- };
- Q_ENUM(StateFlag)
- Q_DECLARE_FLAGS(State, StateFlag)
-
- enum PrimitiveElement {
- PE_Frame,
- PE_FrameDefaultButton,
- PE_FrameDockWidget,
- PE_FrameFocusRect,
- PE_FrameGroupBox,
- PE_FrameLineEdit,
- PE_FrameMenu,
- PE_FrameStatusBarItem,
- PE_FrameTabWidget,
- PE_FrameWindow,
- PE_FrameButtonBevel,
- PE_FrameButtonTool,
- PE_FrameTabBarBase,
-
- PE_PanelButtonCommand,
- PE_PanelButtonBevel,
- PE_PanelButtonTool,
- PE_PanelMenuBar,
- PE_PanelToolBar,
- PE_PanelLineEdit,
-
- PE_IndicatorArrowDown,
- PE_IndicatorArrowLeft,
- PE_IndicatorArrowRight,
- PE_IndicatorArrowUp,
- PE_IndicatorBranch,
- PE_IndicatorButtonDropDown,
- PE_IndicatorItemViewItemCheck,
- PE_IndicatorCheckBox,
- PE_IndicatorDockWidgetResizeHandle,
- PE_IndicatorHeaderArrow,
- PE_IndicatorMenuCheckMark,
- PE_IndicatorProgressChunk,
- PE_IndicatorRadioButton,
- PE_IndicatorSpinDown,
- PE_IndicatorSpinMinus,
- PE_IndicatorSpinPlus,
- PE_IndicatorSpinUp,
- PE_IndicatorToolBarHandle,
- PE_IndicatorToolBarSeparator,
- PE_PanelTipLabel,
- PE_IndicatorTabTear,
- PE_IndicatorTabTearLeft = PE_IndicatorTabTear,
- PE_PanelScrollAreaCorner,
-
- PE_Widget,
-
- PE_IndicatorColumnViewArrow,
- PE_IndicatorItemViewItemDrop,
-
- PE_PanelItemViewItem,
- PE_PanelItemViewRow, // ### Qt 6: remove
-
- PE_PanelStatusBar,
-
- PE_IndicatorTabClose,
- PE_PanelMenu,
-
- PE_IndicatorTabTearRight,
-
- // do not add any values below/greater this
- PE_CustomBase = 0xf000000
- };
- Q_ENUM(PrimitiveElement)
-
- enum ControlElement {
- CE_PushButton,
- CE_PushButtonBevel,
- CE_PushButtonLabel,
-
- CE_CheckBox,
- CE_CheckBoxLabel,
-
- CE_RadioButton,
- CE_RadioButtonLabel,
-
- CE_TabBarTab,
- CE_TabBarTabShape,
- CE_TabBarTabLabel,
-
- CE_ProgressBar,
- CE_ProgressBarGroove,
- CE_ProgressBarContents,
- CE_ProgressBarLabel,
-
- CE_MenuItem,
- CE_MenuScroller,
- CE_MenuVMargin,
- CE_MenuHMargin,
- CE_MenuTearoff,
- CE_MenuEmptyArea,
-
- CE_MenuBarItem,
- CE_MenuBarEmptyArea,
-
- CE_ToolButtonLabel,
-
- CE_Header,
- CE_HeaderSection,
- CE_HeaderLabel,
-
- CE_ToolBoxTab,
- CE_SizeGrip,
- CE_Splitter,
- CE_RubberBand,
- CE_DockWidgetTitle,
-
- CE_ScrollBarAddLine,
- CE_ScrollBarSubLine,
- CE_ScrollBarAddPage,
- CE_ScrollBarSubPage,
- CE_ScrollBarSlider,
- CE_ScrollBarFirst,
- CE_ScrollBarLast,
-
- CE_FocusFrame,
- CE_ComboBoxLabel,
-
- CE_ToolBar,
- CE_ToolBoxTabShape,
- CE_ToolBoxTabLabel,
- CE_HeaderEmptyArea,
-
- CE_ColumnViewGrip,
-
- CE_ItemViewItem,
-
- CE_ShapedFrame,
-
- // do not add any values below/greater than this
- CE_CustomBase = 0xf0000000
- };
- Q_ENUM(ControlElement)
-
- enum SubElement {
- SE_PushButtonContents,
- SE_PushButtonFocusRect,
-
- SE_CheckBoxIndicator,
- SE_CheckBoxContents,
- SE_CheckBoxFocusRect,
- SE_CheckBoxClickRect,
-
- SE_RadioButtonIndicator,
- SE_RadioButtonContents,
- SE_RadioButtonFocusRect,
- SE_RadioButtonClickRect,
-
- SE_ComboBoxFocusRect,
-
- SE_SliderFocusRect,
-
- SE_ProgressBarGroove,
- SE_ProgressBarContents,
- SE_ProgressBarLabel,
-
- SE_ToolBoxTabContents,
-
- SE_HeaderLabel,
- SE_HeaderArrow,
-
- SE_TabWidgetTabBar,
- SE_TabWidgetTabPane,
- SE_TabWidgetTabContents,
- SE_TabWidgetLeftCorner,
- SE_TabWidgetRightCorner,
-
- SE_ItemViewItemCheckIndicator,
- SE_TabBarTearIndicator,
- SE_TabBarTearIndicatorLeft = SE_TabBarTearIndicator,
-
- SE_TreeViewDisclosureItem,
-
- SE_LineEditContents,
- SE_FrameContents,
-
- SE_DockWidgetCloseButton,
- SE_DockWidgetFloatButton,
- SE_DockWidgetTitleBarText,
- SE_DockWidgetIcon,
-
- SE_CheckBoxLayoutItem,
- SE_ComboBoxLayoutItem,
- SE_DateTimeEditLayoutItem,
- SE_LabelLayoutItem,
- SE_ProgressBarLayoutItem,
- SE_PushButtonLayoutItem,
- SE_RadioButtonLayoutItem,
- SE_SliderLayoutItem,
- SE_ScrollBarLayoutItem,
- SE_SpinBoxLayoutItem,
- SE_ToolButtonLayoutItem,
-
- SE_FrameLayoutItem,
- SE_GroupBoxLayoutItem,
- SE_TabWidgetLayoutItem,
-
- SE_ItemViewItemDecoration,
- SE_ItemViewItemText,
- SE_ItemViewItemFocusRect,
-
- SE_TabBarTabLeftButton,
- SE_TabBarTabRightButton,
- SE_TabBarTabText,
-
- SE_ShapedFrameContents,
-
- SE_ToolBarHandle,
-
- SE_TabBarScrollLeftButton,
- SE_TabBarScrollRightButton,
- SE_TabBarTearIndicatorRight,
-
- // do not add any values below/greater than this
- SE_CustomBase = 0xf0000000
- };
- Q_ENUM(SubElement)
-
- enum ComplexControl {
- CC_SpinBox,
- CC_ComboBox,
- CC_ScrollBar,
- CC_Slider,
- CC_ToolButton,
- CC_TitleBar,
- CC_Dial,
- CC_GroupBox,
- CC_MdiControls,
-
- // do not add any values below/greater than this
- CC_CustomBase = 0xf0000000
- };
- Q_ENUM(ComplexControl)
-
- enum SubControl {
- SC_None = 0x00000000,
-
- SC_ScrollBarAddLine = 0x00000001,
- SC_ScrollBarSubLine = 0x00000002,
- SC_ScrollBarAddPage = 0x00000004,
- SC_ScrollBarSubPage = 0x00000008,
- SC_ScrollBarFirst = 0x00000010,
- SC_ScrollBarLast = 0x00000020,
- SC_ScrollBarSlider = 0x00000040,
- SC_ScrollBarGroove = 0x00000080,
-
- SC_SpinBoxUp = 0x00000001,
- SC_SpinBoxDown = 0x00000002,
- SC_SpinBoxFrame = 0x00000004,
- SC_SpinBoxEditField = 0x00000008,
-
- SC_ComboBoxFrame = 0x00000001,
- SC_ComboBoxEditField = 0x00000002,
- SC_ComboBoxArrow = 0x00000004,
- SC_ComboBoxListBoxPopup = 0x00000008,
-
- SC_SliderGroove = 0x00000001,
- SC_SliderHandle = 0x00000002,
- SC_SliderTickmarks = 0x00000004,
-
- SC_ToolButton = 0x00000001,
- SC_ToolButtonMenu = 0x00000002,
-
- SC_TitleBarSysMenu = 0x00000001,
- SC_TitleBarMinButton = 0x00000002,
- SC_TitleBarMaxButton = 0x00000004,
- SC_TitleBarCloseButton = 0x00000008,
- SC_TitleBarNormalButton = 0x00000010,
- SC_TitleBarShadeButton = 0x00000020,
- SC_TitleBarUnshadeButton = 0x00000040,
- SC_TitleBarContextHelpButton = 0x00000080,
- SC_TitleBarLabel = 0x00000100,
-
- SC_DialGroove = 0x00000001,
- SC_DialHandle = 0x00000002,
- SC_DialTickmarks = 0x00000004,
-
- SC_GroupBoxCheckBox = 0x00000001,
- SC_GroupBoxLabel = 0x00000002,
- SC_GroupBoxContents = 0x00000004,
- SC_GroupBoxFrame = 0x00000008,
-
- SC_MdiMinButton = 0x00000001,
- SC_MdiNormalButton = 0x00000002,
- SC_MdiCloseButton = 0x00000004,
-
- SC_CustomBase = 0xf0000000,
- SC_All = 0xffffffff
- };
- Q_ENUM(SubControl)
- Q_DECLARE_FLAGS(SubControls, SubControl)
-
- enum PixelMetric {
- PM_ButtonMargin,
- PM_ButtonDefaultIndicator,
- PM_MenuButtonIndicator,
- PM_ButtonShiftHorizontal,
- PM_ButtonShiftVertical,
-
- PM_DefaultFrameWidth,
- PM_SpinBoxFrameWidth,
- PM_ComboBoxFrameWidth,
-
- PM_MaximumDragDistance,
-
- PM_ScrollBarExtent,
- PM_ScrollBarSliderMin,
-
- PM_SliderThickness, // total slider thickness
- PM_SliderControlThickness, // thickness of the business part
- PM_SliderLength, // total length of slider
- PM_SliderTickmarkOffset, //
- PM_SliderSpaceAvailable, // available space for slider to move
-
- PM_DockWidgetSeparatorExtent,
- PM_DockWidgetHandleExtent,
- PM_DockWidgetFrameWidth,
-
- PM_TabBarTabOverlap,
- PM_TabBarTabHSpace,
- PM_TabBarTabVSpace,
- PM_TabBarBaseHeight,
- PM_TabBarBaseOverlap,
-
- PM_ProgressBarChunkWidth,
-
- PM_SplitterWidth,
- PM_TitleBarHeight,
-
- PM_MenuScrollerHeight,
- PM_MenuHMargin,
- PM_MenuVMargin,
- PM_MenuPanelWidth,
- PM_MenuTearoffHeight,
- PM_MenuDesktopFrameWidth,
-
- PM_MenuBarPanelWidth,
- PM_MenuBarItemSpacing,
- PM_MenuBarVMargin,
- PM_MenuBarHMargin,
-
- PM_IndicatorWidth,
- PM_IndicatorHeight,
- PM_ExclusiveIndicatorWidth,
- PM_ExclusiveIndicatorHeight,
-
- PM_DialogButtonsSeparator,
- PM_DialogButtonsButtonWidth,
- PM_DialogButtonsButtonHeight,
-
- PM_MdiSubWindowFrameWidth,
- PM_MdiSubWindowMinimizedWidth,
-
- PM_HeaderMargin,
- PM_HeaderMarkSize,
- PM_HeaderGripMargin,
- PM_TabBarTabShiftHorizontal,
- PM_TabBarTabShiftVertical,
- PM_TabBarScrollButtonWidth,
-
- PM_ToolBarFrameWidth,
- PM_ToolBarHandleExtent,
- PM_ToolBarItemSpacing,
- PM_ToolBarItemMargin,
- PM_ToolBarSeparatorExtent,
- PM_ToolBarExtensionExtent,
-
- PM_SpinBoxSliderHeight,
-
- PM_DefaultTopLevelMargin,
- PM_DefaultChildMargin,
- PM_DefaultLayoutSpacing,
-
- PM_ToolBarIconSize,
- PM_ListViewIconSize,
- PM_IconViewIconSize,
- PM_SmallIconSize,
- PM_LargeIconSize,
-
- PM_FocusFrameVMargin,
- PM_FocusFrameHMargin,
-
- PM_ToolTipLabelFrameWidth,
- PM_CheckBoxLabelSpacing,
- PM_TabBarIconSize,
- PM_SizeGripSize,
- PM_DockWidgetTitleMargin,
- PM_MessageBoxIconSize,
- PM_ButtonIconSize,
-
- PM_DockWidgetTitleBarButtonMargin,
-
- PM_RadioButtonLabelSpacing,
- PM_LayoutLeftMargin,
- PM_LayoutTopMargin,
- PM_LayoutRightMargin,
- PM_LayoutBottomMargin,
- PM_LayoutHorizontalSpacing,
- PM_LayoutVerticalSpacing,
- PM_TabBar_ScrollButtonOverlap,
-
- PM_TextCursorWidth,
-
- PM_TabCloseIndicatorWidth,
- PM_TabCloseIndicatorHeight,
-
- PM_ScrollView_ScrollBarSpacing,
- PM_ScrollView_ScrollBarOverlap,
- PM_SubMenuOverlap,
- PM_TreeViewIndentation,
-
- PM_HeaderDefaultSectionSizeHorizontal,
- PM_HeaderDefaultSectionSizeVertical,
-
- PM_TitleBarButtonIconSize,
- PM_TitleBarButtonSize,
-
- PM_PushButtonFocusFrameRadius,
- PM_CheckBoxFocusFrameRadius,
- PM_ComboBoxFocusFrameRadius,
- PM_DialFocusFrameRadius,
- PM_RadioButtonFocusFrameRadius,
- PM_SliderFocusFrameRadius,
- PM_SpinBoxFocusFrameRadius,
- PM_TextAreaFocusFrameRadius,
- PM_TextFieldFocusFrameRadius,
-
- // do not add any values below/greater than this
- PM_CustomBase = 0xf0000000
- };
- Q_ENUM(PixelMetric)
-
- enum ContentsType {
- CT_PushButton,
- CT_CheckBox,
- CT_RadioButton,
- CT_ToolButton,
- CT_ComboBox,
- CT_Splitter,
- CT_ProgressBar,
- CT_MenuItem,
- CT_MenuBarItem,
- CT_MenuBar,
- CT_Menu,
- CT_TabBarTab,
- CT_Slider,
- CT_Dial,
- CT_ScrollBar,
- CT_LineEdit,
- CT_SpinBox,
- CT_SizeGrip,
- CT_TabWidget,
- CT_DialogButtons,
- CT_HeaderSection,
- CT_GroupBox,
- CT_MdiControls,
- CT_ItemViewItem,
- CT_Frame,
- // do not add any values below/greater than this
- CT_CustomBase = 0xf0000000
- };
- Q_ENUM(ContentsType)
-
- enum RequestSoftwareInputPanel {
- RSIP_OnMouseClickAndAlreadyFocused,
- RSIP_OnMouseClick
- };
- Q_ENUM(RequestSoftwareInputPanel)
-
- enum StyleHint {
- SH_EtchDisabledText,
- SH_DitherDisabledText,
- SH_ScrollBar_MiddleClickAbsolutePosition,
- SH_ScrollBar_ScrollWhenPointerLeavesControl,
- SH_TabBar_SelectMouseType,
- SH_TabBar_Alignment,
- SH_Header_ArrowAlignment,
- SH_Slider_SnapToValue,
- SH_Slider_SloppyKeyEvents,
- SH_ProgressDialog_CenterCancelButton,
- SH_ProgressDialog_TextLabelAlignment,
- SH_PrintDialog_RightAlignButtons,
- SH_MainWindow_SpaceBelowMenuBar,
- SH_FontDialog_SelectAssociatedText,
- SH_Menu_AllowActiveAndDisabled,
- SH_Menu_SpaceActivatesItem,
- SH_Menu_SubMenuPopupDelay,
- SH_ScrollView_FrameOnlyAroundContents,
- SH_MenuBar_AltKeyNavigation,
- SH_ComboBox_ListMouseTracking,
- SH_Menu_MouseTracking,
- SH_MenuBar_MouseTracking,
- SH_ItemView_ChangeHighlightOnFocus,
- SH_Widget_ShareActivation,
- SH_Workspace_FillSpaceOnMaximize,
- SH_ComboBox_Popup,
- SH_TitleBar_NoBorder,
- SH_Slider_StopMouseOverSlider,
- SH_BlinkCursorWhenTextSelected,
- SH_RichText_FullWidthSelection,
- SH_Menu_Scrollable,
- SH_GroupBox_TextLabelVerticalAlignment,
- SH_GroupBox_TextLabelColor,
- SH_Menu_SloppySubMenus,
- SH_Table_GridLineColor,
- SH_LineEdit_PasswordCharacter,
- SH_DialogButtons_DefaultButton,
- SH_ToolBox_SelectedPageTitleBold,
- SH_TabBar_PreferNoArrows,
- SH_ScrollBar_LeftClickAbsolutePosition,
- SH_ListViewExpand_SelectMouseType,
- SH_UnderlineShortcut,
- SH_SpinBox_AnimateButton,
- SH_SpinBox_KeyPressAutoRepeatRate,
- SH_SpinBox_ClickAutoRepeatRate,
- SH_Menu_FillScreenWithScroll,
- SH_ToolTipLabel_Opacity,
- SH_DrawMenuBarSeparator,
- SH_TitleBar_ModifyNotification,
- SH_Button_FocusPolicy,
- SH_MessageBox_UseBorderForButtonSpacing,
- SH_TitleBar_AutoRaise,
- SH_ToolButton_PopupDelay,
- SH_FocusFrame_Mask,
- SH_RubberBand_Mask,
- SH_WindowFrame_Mask,
- SH_SpinControls_DisableOnBounds,
- SH_Dial_BackgroundRole,
- SH_ComboBox_LayoutDirection,
- SH_ItemView_EllipsisLocation,
- SH_ItemView_ShowDecorationSelected,
- SH_ItemView_ActivateItemOnSingleClick,
- SH_ScrollBar_ContextMenu,
- SH_ScrollBar_RollBetweenButtons,
- SH_Slider_AbsoluteSetButtons,
- SH_Slider_PageSetButtons,
- SH_Menu_KeyboardSearch,
- SH_TabBar_ElideMode,
- SH_DialogButtonLayout,
- SH_ComboBox_PopupFrameStyle,
- SH_MessageBox_TextInteractionFlags,
- SH_DialogButtonBox_ButtonsHaveIcons,
- SH_SpellCheckUnderlineStyle,
- SH_MessageBox_CenterButtons,
- SH_Menu_SelectionWrap,
- SH_ItemView_MovementWithoutUpdatingSelection,
- SH_ToolTip_Mask,
- SH_FocusFrame_AboveWidget,
- SH_TextControl_FocusIndicatorTextCharFormat,
- SH_WizardStyle,
- SH_ItemView_ArrowKeysNavigateIntoChildren,
- SH_Menu_Mask,
- SH_Menu_FlashTriggeredItem,
- SH_Menu_FadeOutOnHide,
- SH_SpinBox_ClickAutoRepeatThreshold,
- SH_ItemView_PaintAlternatingRowColorsForEmptyArea,
- SH_FormLayoutWrapPolicy,
- SH_TabWidget_DefaultTabPosition,
- SH_ToolBar_Movable,
- SH_FormLayoutFieldGrowthPolicy,
- SH_FormLayoutFormAlignment,
- SH_FormLayoutLabelAlignment,
- SH_ItemView_DrawDelegateFrame,
- SH_TabBar_CloseButtonPosition,
- SH_DockWidget_ButtonsHaveFrame,
- SH_ToolButtonStyle,
- SH_RequestSoftwareInputPanel,
- SH_ScrollBar_Transient,
- SH_Menu_SupportsSections,
- SH_ToolTip_WakeUpDelay,
- SH_ToolTip_FallAsleepDelay,
- SH_Widget_Animate,
- SH_Splitter_OpaqueResize,
- // Whether we should use a native popup.
- // Only supported for non-editable combo boxes on Mac OS X so far.
- SH_ComboBox_UseNativePopup,
- SH_LineEdit_PasswordMaskDelay,
- SH_TabBar_ChangeCurrentDelay,
- SH_Menu_SubMenuUniDirection,
- SH_Menu_SubMenuUniDirectionFailCount,
- SH_Menu_SubMenuSloppySelectOtherActions,
- SH_Menu_SubMenuSloppyCloseTimeout,
- SH_Menu_SubMenuResetWhenReenteringParent,
- SH_Menu_SubMenuDontStartSloppyOnLeave,
- SH_ItemView_ScrollMode,
- SH_TitleBar_ShowToolTipsOnButtons,
- SH_Widget_Animation_Duration,
- SH_ComboBox_AllowWheelScrolling,
- SH_SpinBox_ButtonsInsideFrame,
- SH_SpinBox_StepModifier,
- // Add new style hint values here
-
- SH_CustomBase = 0xf0000000
- };
- Q_ENUM(StyleHint)
-
- enum StandardPixmap {
- SP_TitleBarMenuButton,
- SP_TitleBarMinButton,
- SP_TitleBarMaxButton,
- SP_TitleBarCloseButton,
- SP_TitleBarNormalButton,
- SP_TitleBarShadeButton,
- SP_TitleBarUnshadeButton,
- SP_TitleBarContextHelpButton,
- SP_DockWidgetCloseButton,
- SP_MessageBoxInformation,
- SP_MessageBoxWarning,
- SP_MessageBoxCritical,
- SP_MessageBoxQuestion,
- SP_DesktopIcon,
- SP_TrashIcon,
- SP_ComputerIcon,
- SP_DriveFDIcon,
- SP_DriveHDIcon,
- SP_DriveCDIcon,
- SP_DriveDVDIcon,
- SP_DriveNetIcon,
- SP_DirOpenIcon,
- SP_DirClosedIcon,
- SP_DirLinkIcon,
- SP_DirLinkOpenIcon,
- SP_FileIcon,
- SP_FileLinkIcon,
- SP_ToolBarHorizontalExtensionButton,
- SP_ToolBarVerticalExtensionButton,
- SP_FileDialogStart,
- SP_FileDialogEnd,
- SP_FileDialogToParent,
- SP_FileDialogNewFolder,
- SP_FileDialogDetailedView,
- SP_FileDialogInfoView,
- SP_FileDialogContentsView,
- SP_FileDialogListView,
- SP_FileDialogBack,
- SP_DirIcon,
- SP_DialogOkButton,
- SP_DialogCancelButton,
- SP_DialogHelpButton,
- SP_DialogOpenButton,
- SP_DialogSaveButton,
- SP_DialogCloseButton,
- SP_DialogApplyButton,
- SP_DialogResetButton,
- SP_DialogDiscardButton,
- SP_DialogYesButton,
- SP_DialogNoButton,
- SP_ArrowUp,
- SP_ArrowDown,
- SP_ArrowLeft,
- SP_ArrowRight,
- SP_ArrowBack,
- SP_ArrowForward,
- SP_DirHomeIcon,
- SP_CommandLink,
- SP_VistaShield,
- SP_BrowserReload,
- SP_BrowserStop,
- SP_MediaPlay,
- SP_MediaStop,
- SP_MediaPause,
- SP_MediaSkipForward,
- SP_MediaSkipBackward,
- SP_MediaSeekForward,
- SP_MediaSeekBackward,
- SP_MediaVolume,
- SP_MediaVolumeMuted,
- SP_LineEditClearButton,
- SP_DialogYesToAllButton,
- SP_DialogNoToAllButton,
- SP_DialogSaveAllButton,
- SP_DialogAbortButton,
- SP_DialogRetryButton,
- SP_DialogIgnoreButton,
- SP_RestoreDefaultsButton,
- // do not add any values below/greater than this
- SP_CustomBase = 0xf0000000
- };
- Q_ENUM(StandardPixmap)
-
- virtual QRect itemTextRect(const QFontMetrics &fm, const QRect &r, int flags, bool enabled, const QString &text) const;
- virtual QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const;
- virtual QRect subElementRect(SubElement subElement, const QStyleOption *option) const = 0;
- virtual QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, SubControl sc) const = 0;
-
- virtual QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize) const = 0;
- virtual QFont font(ControlElement element, const QStyle::State state) const = 0;
- virtual QMargins ninePatchMargins(ControlElement ce, const QStyleOption *opt, const QSize &imageSize) const = 0;
- virtual QMargins ninePatchMargins(ComplexControl cc, const QStyleOptionComplex *opt, const QSize &imageSize) const = 0;
-
- virtual SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, const QPoint &pt) const = 0;
-
- virtual int pixelMetric(PixelMetric metric, const QStyleOption *option = nullptr) const = 0;
- virtual int styleHint(StyleHint stylehint, const QStyleOption *opt = nullptr, QStyleHintReturn* returnData = nullptr) const = 0;
-
- virtual void drawItemText(QPainter *painter, const QRect &rect,
- int flags, const QPalette &pal, bool enabled,
- const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const;
- virtual void drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, const QPixmap &pixmap) const;
- virtual void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p) const = 0;
- virtual void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p) const = 0;
- virtual void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p) const = 0;
-
- virtual QPalette standardPalette() const;
- virtual QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt = nullptr) const = 0;
- virtual QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = nullptr) const = 0;
- virtual QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const = 0;
-
- static QRect visualRect(Qt::LayoutDirection direction, const QRect &boundingRect, const QRect &logicalRect);
- static QPoint visualPos(Qt::LayoutDirection direction, const QRect &boundingRect, const QPoint &logicalPos);
- static int sliderPositionFromValue(int min, int max, int val, int space, bool upsideDown = false);
- static int sliderValueFromPosition(int min, int max, int pos, int space, bool upsideDown = false);
- static Qt::Alignment visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment);
- static QRect alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle);
-
- // TODO: Remove the concept of proxy (but keep it for now until everything builds)
- const QStyle *proxy() const { return this; }
-
-private:
- Q_DISABLE_COPY(QStyle)
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QStyle::State)
-Q_DECLARE_OPERATORS_FOR_FLAGS(QStyle::SubControls)
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif // QSTYLE_H
diff --git a/src/quicknativestyle/qstyle/qquickstyle_p.h b/src/quicknativestyle/qstyle/qquickstyle_p.h
deleted file mode 100644
index 46f53740..00000000
--- a/src/quicknativestyle/qstyle/qquickstyle_p.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QSTYLE_P_H
-#define QSTYLE_P_H
-
-#include "qquickstyle.h"
-
-#include <QtCore/private/qobject_p.h>
-#include <QtGui/qguiapplication.h>
-
-QT_BEGIN_NAMESPACE
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of qstyle_*.cpp. This header file may change from version to version
-// without notice, or even be removed.
-//
-// We mean it.
-//
-
-// Private class
-
-namespace QQC2 {
-
-class QStylePrivate: public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QStyle)
-
-public:
- static bool useFullScreenForPopup();
- mutable int layoutSpacingIndex = -1;
- QStyle *proxyStyle;
-};
-
-inline QImage styleCacheImage(const QSize &size)
-{
- const qreal pixelRatio = qApp->devicePixelRatio();
- QImage cacheImage = QImage(size * pixelRatio, QImage::Format_ARGB32_Premultiplied);
- cacheImage.setDevicePixelRatio(pixelRatio);
- return cacheImage;
-}
-
-inline QPixmap styleCachePixmap(const QSize &size)
-{
- const qreal pixelRatio = qApp->devicePixelRatio();
- QPixmap cachePixmap = QPixmap(size * pixelRatio);
- cachePixmap.setDevicePixelRatio(pixelRatio);
- return cachePixmap;
-}
-
-#define BEGIN_STYLE_PIXMAPCACHE(a) \
- QRect rect = option->rect; \
- QPixmap internalPixmapCache; \
- QImage imageCache; \
- QPainter *p = painter; \
- QString unique = QStyleHelper::uniqueName((a), option, option->rect.size()); \
- int txType = painter->deviceTransform().type() | painter->worldTransform().type(); \
- bool doPixmapCache = (!option->rect.isEmpty()) \
- && ((txType <= QTransform::TxTranslate) || (painter->deviceTransform().type() == QTransform::TxScale)); \
- if (doPixmapCache && QPixmapCache::find(unique, &internalPixmapCache)) { \
- painter->drawPixmap(option->rect.topLeft(), internalPixmapCache); \
- } else { \
- if (doPixmapCache) { \
- rect.setRect(0, 0, option->rect.width(), option->rect.height()); \
- imageCache = styleCacheImage(option->rect.size()); \
- imageCache.fill(0); \
- p = new QPainter(&imageCache); \
- }
-
-#define END_STYLE_PIXMAPCACHE \
- if (doPixmapCache) { \
- p->end(); \
- delete p; \
- internalPixmapCache = QPixmap::fromImage(imageCache); \
- painter->drawPixmap(option->rect.topLeft(), internalPixmapCache); \
- QPixmapCache::insert(unique, internalPixmapCache); \
- } \
- }
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif //QSTYLE_P_H
diff --git a/src/quicknativestyle/qstyle/qquickstylehelper.cpp b/src/quicknativestyle/qstyle/qquickstylehelper.cpp
deleted file mode 100644
index ebc82864..00000000
--- a/src/quicknativestyle/qstyle/qquickstylehelper.cpp
+++ /dev/null
@@ -1,438 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstylehelper_p.h"
-#include "qquickstyleoption.h"
-#include "qquickstyle_p.h"
-
-#include <QtCore/qmath.h>
-#include <QtGui/qpainter.h>
-#include <QtGui/qpixmapcache.h>
-#include <QtGui/qwindow.h>
-#include <QtGui/private/qhighdpiscaling_p.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtGui/private/qmath_p.h>
-#include <QtGui/private/qhexstring_p.h>
-
-#include <qmetaobject.h>
-#include <qstringbuilder.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_GUI_EXPORT int qt_defaultDpiX();
-
-namespace QQC2 {
-
-namespace QStyleHelper {
-
-QString uniqueName(const QString &key, const QStyleOption *option, const QSize &size)
-{
- const QStyleOptionComplex *complexOption = qstyleoption_cast<const QStyleOptionComplex *>(option);
- QString tmp = key % HexString<uint>(option->state)
- % HexString<uint>(option->direction)
- % HexString<uint>(complexOption ? uint(complexOption->activeSubControls) : 0u)
- % HexString<quint64>(option->palette.cacheKey())
- % HexString<uint>(size.width())
- % HexString<uint>(size.height());
-
- if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
- tmp = tmp % HexString<uint>(spinBox->buttonSymbols)
- % HexString<uint>(spinBox->stepEnabled)
- % QLatin1Char(spinBox->frame ? '1' : '0'); ;
- }
-
- return tmp;
-}
-
-#ifdef Q_OS_DARWIN
-static const qreal qstyleBaseDpi = 72;
-#else
-static const qreal qstyleBaseDpi = 96;
-#endif
-
-qreal dpi(const QStyleOption *option)
-{
-#ifndef Q_OS_DARWIN
- // Prioritize the application override, except for on macOS where
- // we have historically not supported the AA_Use96Dpi flag.
- if (QCoreApplication::testAttribute(Qt::AA_Use96Dpi))
- return 96;
-#endif
-
- // Expect that QStyleOption::QFontMetrics::QFont has the correct DPI set
- if (option)
- return option->fontMetrics.fontDpi();
-
- return qstyleBaseDpi;
-}
-
-qreal dpiScaled(qreal value, qreal dpi)
-{
- return value * dpi / qstyleBaseDpi;
-}
-
-qreal dpiScaled(qreal value, const QPaintDevice *device)
-{
- return dpiScaled(value, device->logicalDpiX());
-}
-
-qreal dpiScaled(qreal value, const QStyleOption *option)
-{
- return dpiScaled(value, dpi(option));
-}
-
-bool isInstanceOf(QObject *obj, QAccessible::Role role)
-{
- bool match = false;
- QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(obj);
- match = iface && iface->role() == role;
- return match;
-}
-
-// Searches for an ancestor of a particular accessible role
-bool hasAncestor(QObject *obj, QAccessible::Role role)
-{
- bool found = false;
- QObject *parent = obj ? obj->parent() : nullptr;
- while (parent && !found) {
- if (isInstanceOf(parent, role))
- found = true;
- parent = parent->parent();
- }
- return found;
-}
-
-
-int calcBigLineSize(int radius)
-{
- int bigLineSize = radius / 6;
- if (bigLineSize < 4)
- bigLineSize = 4;
- if (bigLineSize > radius / 2)
- bigLineSize = radius / 2;
- return bigLineSize;
-}
-
-static QPointF calcRadialPos(const QStyleOptionSlider *dial, qreal offset)
-{
- const int width = dial->rect.width();
- const int height = dial->rect.height();
- const int r = qMin(width, height) / 2;
- const int currentSliderPosition = dial->upsideDown ? dial->sliderPosition : (dial->maximum - dial->sliderPosition);
- qreal a = 0;
- if (dial->maximum == dial->minimum)
- a = Q_PI / 2;
- else if (dial->dialWrapping)
- a = Q_PI * 3 / 2 - (currentSliderPosition - dial->minimum) * 2 * Q_PI
- / (dial->maximum - dial->minimum);
- else
- a = (Q_PI * 8 - (currentSliderPosition - dial->minimum) * 10 * Q_PI
- / (dial->maximum - dial->minimum)) / 6;
- qreal xc = width / 2.0;
- qreal yc = height / 2.0;
- qreal len = r - QStyleHelper::calcBigLineSize(r) - 3;
- qreal back = offset * len;
- QPointF pos(QPointF(xc + back * qCos(a), yc - back * qSin(a)));
- return pos;
-}
-
-qreal angle(const QPointF &p1, const QPointF &p2)
-{
- static const qreal rad_factor = 180 / Q_PI;
- qreal _angle = 0;
-
- if (p1.x() == p2.x()) {
- if (p1.y() < p2.y())
- _angle = 270;
- else
- _angle = 90;
- } else {
- qreal x1, x2, y1, y2;
-
- if (p1.x() <= p2.x()) {
- x1 = p1.x(); y1 = p1.y();
- x2 = p2.x(); y2 = p2.y();
- } else {
- x2 = p1.x(); y2 = p1.y();
- x1 = p2.x(); y1 = p2.y();
- }
-
- qreal m = -(y2 - y1) / (x2 - x1);
- _angle = qAtan(m) * rad_factor;
-
- if (p1.x() < p2.x())
- _angle = 180 - _angle;
- else
- _angle = -_angle;
- }
- return _angle;
-}
-
-QPolygonF calcLines(const QStyleOptionSlider *dial)
-{
- QPolygonF poly;
- int width = dial->rect.width();
- int height = dial->rect.height();
- qreal r = qMin(width, height) / 2;
- int bigLineSize = calcBigLineSize(int(r));
-
- qreal xc = width / 2 + 0.5;
- qreal yc = height / 2 + 0.5;
- const int ns = dial->tickInterval;
- if (!ns) // Invalid values may be set by Qt Designer.
- return poly;
- int notches = (dial->maximum + ns - 1 - dial->minimum) / ns;
- if (notches <= 0)
- return poly;
- if (dial->maximum < dial->minimum || dial->maximum - dial->minimum > 1000) {
- int maximum = dial->minimum + 1000;
- notches = (maximum + ns - 1 - dial->minimum) / ns;
- }
-
- poly.resize(2 + 2 * notches);
- int smallLineSize = bigLineSize / 2;
- for (int i = 0; i <= notches; ++i) {
- qreal angle = dial->dialWrapping ? Q_PI * 3 / 2 - i * 2 * Q_PI / notches
- : (Q_PI * 8 - i * 10 * Q_PI / notches) / 6;
- qreal s = qSin(angle);
- qreal c = qCos(angle);
- if (i == 0 || (((ns * i) % (dial->pageStep ? dial->pageStep : 1)) == 0)) {
- poly[2 * i] = QPointF(xc + (r - bigLineSize) * c,
- yc - (r - bigLineSize) * s);
- poly[2 * i + 1] = QPointF(xc + r * c, yc - r * s);
- } else {
- poly[2 * i] = QPointF(xc + (r - 1 - smallLineSize) * c,
- yc - (r - 1 - smallLineSize) * s);
- poly[2 * i + 1] = QPointF(xc + (r - 1) * c, yc -(r - 1) * s);
- }
- }
- return poly;
-}
-
-// This will draw a nice and shiny QDial for us. We don't want
-// all the shinyness in QWindowsStyle, hence we place it here
-
-void drawDial(const QStyleOptionSlider *option, QPainter *painter)
-{
- QPalette pal = option->palette;
- QColor buttonColor = pal.button().color();
- const int width = option->rect.width();
- const int height = option->rect.height();
- const bool enabled = option->state & QStyle::State_Enabled;
- qreal r = qMin(width, height) / 2;
- r -= r/50;
- const qreal penSize = r/20.0;
-
- painter->save();
- painter->setRenderHint(QPainter::Antialiasing);
-
- // Draw notches
- if (option->subControls & QStyle::SC_DialTickmarks) {
- painter->setPen(option->palette.dark().color().darker(120));
- painter->drawLines(QStyleHelper::calcLines(option));
- }
-
- // setting color before BEGIN_STYLE_PIXMAPCACHE since
- // otherwise it is not set when the image is in the cache
- buttonColor.setHsv(buttonColor .hue(),
- qMin(140, buttonColor .saturation()),
- qMax(180, buttonColor.value()));
-
- // Cache dial background
- BEGIN_STYLE_PIXMAPCACHE(QString::fromLatin1("qdial"))
- p->setRenderHint(QPainter::Antialiasing);
-
- const qreal d_ = r / 6;
- const qreal dx = option->rect.x() + d_ + (width - 2 * r) / 2 + 1;
- const qreal dy = option->rect.y() + d_ + (height - 2 * r) / 2 + 1;
-
- QRectF br = QRectF(dx + 0.5, dy + 0.5,
- int(r * 2 - 2 * d_ - 2),
- int(r * 2 - 2 * d_ - 2));
-
- if (enabled) {
- // Drop shadow
- qreal shadowSize = qMax(1.0, penSize/2.0);
- QRectF shadowRect= br.adjusted(-2*shadowSize, -2*shadowSize,
- 2*shadowSize, 2*shadowSize);
- QRadialGradient shadowGradient(shadowRect.center().x(),
- shadowRect.center().y(), shadowRect.width()/2.0,
- shadowRect.center().x(), shadowRect.center().y());
- shadowGradient.setColorAt(qreal(0.91), QColor(0, 0, 0, 40));
- shadowGradient.setColorAt(qreal(1.0), Qt::transparent);
- p->setBrush(shadowGradient);
- p->setPen(Qt::NoPen);
- p->translate(shadowSize, shadowSize);
- p->drawEllipse(shadowRect);
- p->translate(-shadowSize, -shadowSize);
-
- // Main gradient
- QRadialGradient gradient(br.center().x() - br.width()/3, dy,
- br.width()*1.3, br.center().x(),
- br.center().y() - br.height()/2);
- gradient.setColorAt(0, buttonColor.lighter(110));
- gradient.setColorAt(qreal(0.5), buttonColor);
- gradient.setColorAt(qreal(0.501), buttonColor.darker(102));
- gradient.setColorAt(1, buttonColor.darker(115));
- p->setBrush(gradient);
- } else {
- p->setBrush(Qt::NoBrush);
- }
-
- p->setPen(QPen(buttonColor.darker(280)));
- p->drawEllipse(br);
- p->setBrush(Qt::NoBrush);
- p->setPen(buttonColor.lighter(110));
- p->drawEllipse(br.adjusted(1, 1, -1, -1));
-
- if (option->state & QStyle::State_HasFocus) {
- QColor highlight = pal.highlight().color();
- highlight.setHsv(highlight.hue(),
- qMin(160, highlight.saturation()),
- qMax(230, highlight.value()));
- highlight.setAlpha(127);
- p->setPen(QPen(highlight, 2.0));
- p->setBrush(Qt::NoBrush);
- p->drawEllipse(br.adjusted(-1, -1, 1, 1));
- }
-
- END_STYLE_PIXMAPCACHE
-
- QPointF dp = calcRadialPos(option, qreal(0.70));
- buttonColor = buttonColor.lighter(104);
- buttonColor.setAlphaF(0.8f);
- const qreal ds = r/qreal(7.0);
- QRectF dialRect(dp.x() - ds, dp.y() - ds, 2*ds, 2*ds);
- QRadialGradient dialGradient(dialRect.center().x() + dialRect.width()/2,
- dialRect.center().y() + dialRect.width(),
- dialRect.width()*2,
- dialRect.center().x(), dialRect.center().y());
- dialGradient.setColorAt(1, buttonColor.darker(140));
- dialGradient.setColorAt(qreal(0.4), buttonColor.darker(120));
- dialGradient.setColorAt(0, buttonColor.darker(110));
- if (penSize > 3.0) {
- painter->setPen(QPen(QColor(0, 0, 0, 25), penSize));
- painter->drawLine(calcRadialPos(option, qreal(0.90)), calcRadialPos(option, qreal(0.96)));
- }
-
- painter->setBrush(dialGradient);
- painter->setPen(QColor(255, 255, 255, 150));
- painter->drawEllipse(dialRect.adjusted(-1, -1, 1, 1));
- painter->setPen(QColor(0, 0, 0, 80));
- painter->drawEllipse(dialRect);
- painter->restore();
-}
-
-void drawBorderPixmap(const QPixmap &pixmap, QPainter *painter, const QRect &rect,
- int left, int top, int right,
- int bottom)
-{
- QSize size = pixmap.size();
- //painter->setRenderHint(QPainter::SmoothPixmapTransform);
-
- //top
- if (top > 0) {
- painter->drawPixmap(QRect(rect.left() + left, rect.top(), rect.width() -right - left, top), pixmap,
- QRect(left, 0, size.width() -right - left, top));
-
- //top-left
- if(left > 0)
- painter->drawPixmap(QRect(rect.left(), rect.top(), left, top), pixmap,
- QRect(0, 0, left, top));
-
- //top-right
- if (right > 0)
- painter->drawPixmap(QRect(rect.left() + rect.width() - right, rect.top(), right, top), pixmap,
- QRect(size.width() - right, 0, right, top));
- }
-
- //left
- if (left > 0)
- painter->drawPixmap(QRect(rect.left(), rect.top()+top, left, rect.height() - top - bottom), pixmap,
- QRect(0, top, left, size.height() - bottom - top));
-
- //center
- painter->drawPixmap(QRect(rect.left() + left, rect.top()+top, rect.width() -right - left,
- rect.height() - bottom - top), pixmap,
- QRect(left, top, size.width() -right -left,
- size.height() - bottom - top));
- //right
- if (right > 0)
- painter->drawPixmap(QRect(rect.left() +rect.width() - right, rect.top()+top, right, rect.height() - top - bottom), pixmap,
- QRect(size.width() - right, top, right, size.height() - bottom - top));
-
- //bottom
- if (bottom > 0) {
- painter->drawPixmap(QRect(rect.left() +left, rect.top() + rect.height() - bottom,
- rect.width() - right - left, bottom), pixmap,
- QRect(left, size.height() - bottom,
- size.width() - right - left, bottom));
- //bottom-left
- if (left > 0)
- painter->drawPixmap(QRect(rect.left(), rect.top() + rect.height() - bottom, left, bottom), pixmap,
- QRect(0, size.height() - bottom, left, bottom));
-
- //bottom-right
- if (right > 0)
- painter->drawPixmap(QRect(rect.left() + rect.width() - right, rect.top() + rect.height() - bottom, right, bottom), pixmap,
- QRect(size.width() - right, size.height() - bottom, right, bottom));
-
- }
-}
-
-WidgetSizePolicy widgetSizePolicy(const QStyleOption *opt)
-{
- if (opt && opt->state & QStyle::State_Mini)
- return SizeMini;
- else if (opt && opt->state & QStyle::State_Small)
- return SizeSmall;
-
- return SizeDefault;
-}
-
-QColor backgroundColor(const QPalette &pal)
-{
-// if (qobject_cast<const QScrollBar *>(widget) && widget->parent() &&
-// qobject_cast<const QAbstractScrollArea *>(widget->parent()->parent()))
-// return widget->parentWidget()->parentWidget()->palette().color(QPalette::Base);
- return pal.color(QPalette::Base);
-}
-
-}
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
diff --git a/src/quicknativestyle/qstyle/qquickstylehelper_p.h b/src/quicknativestyle/qstyle/qquickstylehelper_p.h
deleted file mode 100644
index 757d647d..00000000
--- a/src/quicknativestyle/qstyle/qquickstylehelper_p.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtCore/qpoint.h>
-#include <QtCore/qstring.h>
-#include <QtGui/qpaintdevice.h>
-#include <QtGui/qpolygon.h>
-#include <QtCore/qstringbuilder.h>
-#include <QtGui/qaccessible.h>
-
-#ifndef QSTYLEHELPER_P_H
-#define QSTYLEHELPER_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-QT_BEGIN_NAMESPACE
-
-class QObject;
-class QPainter;
-class QPixmap;
-
-namespace QQC2 {
-
-class QStyleOptionSlider;
-class QStyleOption;
-
-namespace QStyleHelper
-{
- QString uniqueName(const QString &key, const QStyleOption *option, const QSize &size);
-
- qreal dpi(const QStyleOption *option);
- qreal dpiScaled(qreal value, qreal dpi);
- qreal dpiScaled(qreal value, const QPaintDevice *device);
- qreal dpiScaled(qreal value, const QStyleOption *option);
-
- qreal angle(const QPointF &p1, const QPointF &p2);
- QPolygonF calcLines(const QStyleOptionSlider *dial);
- int calcBigLineSize(int radius);
- void drawDial(const QStyleOptionSlider *dial, QPainter *painter);
-
- void drawBorderPixmap(const QPixmap &pixmap, QPainter *painter, const QRect &rect,
- int left = 0, int top = 0, int right = 0,
- int bottom = 0);
-
- bool isInstanceOf(QObject *obj, QAccessible::Role role);
- bool hasAncestor(QObject *obj, QAccessible::Role role);
- QColor backgroundColor(const QPalette &pal);
-
- enum WidgetSizePolicy { SizeLarge = 0, SizeSmall = 1, SizeMini = 2, SizeDefault = -1 };
- WidgetSizePolicy widgetSizePolicy(const QStyleOption *opt);
-}
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif // QSTYLEHELPER_P_H
diff --git a/src/quicknativestyle/qstyle/qquickstyleoption.cpp b/src/quicknativestyle/qstyle/qquickstyleoption.cpp
deleted file mode 100644
index c34dddd7..00000000
--- a/src/quicknativestyle/qstyle/qquickstyleoption.cpp
+++ /dev/null
@@ -1,652 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstyleoption.h"
-
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtCore/qdebug.h>
-#include <QtCore/qmath.h>
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2 {
-
-QStyleOption::QStyleOption(int version, int type)
- : version(version), type(type), state(QStyle::State_None),
- direction(QGuiApplication::layoutDirection()), fontMetrics(QFont()),
- styleObject(nullptr), control(nullptr), window(nullptr)
-{
-}
-
-/*!
- Destroys this style option object.
-*/
-QStyleOption::~QStyleOption()
-{
-}
-
-/*!
- Constructs a copy of \a other.
-*/
-QStyleOption::QStyleOption(const QStyleOption &other)
- : version(Version), type(Type), state(other.state),
- direction(other.direction), rect(other.rect), fontMetrics(other.fontMetrics),
- palette(other.palette), styleObject(other.styleObject),
- control(other.control), window(other.window)
-{
-}
-
-/*!
- Assign \a other to this QStyleOption.
-*/
-QStyleOption &QStyleOption::operator=(const QStyleOption &other)
-{
- control = other.control;
- window = other.window;
- state = other.state;
- direction = other.direction;
- rect = other.rect;
- fontMetrics = other.fontMetrics;
- palette = other.palette;
- styleObject = other.styleObject;
- return *this;
-}
-
-/*!
- Constructs a QStyleOptionFocusRect, initializing the members
- variables to their default values.
-*/
-QStyleOptionFocusRect::QStyleOptionFocusRect()
- : QStyleOption(Version, SO_FocusRect)
-{
- state |= QStyle::State_KeyboardFocusChange; // assume we had one, will be corrected in initFrom()
-}
-
-/*!
- \internal
-*/
-QStyleOptionFocusRect::QStyleOptionFocusRect(int versionIn)
- : QStyleOption(versionIn, SO_FocusRect)
-{
- state |= QStyle::State_KeyboardFocusChange; // assume we had one, will be corrected in initFrom()
-}
-
-/*!
- Constructs a QStyleOptionFrame, initializing the members
- variables to their default values.
-*/
-QStyleOptionFrame::QStyleOptionFrame()
- : QStyleOption(Version, SO_Frame), lineWidth(0), midLineWidth(0),
- features(None), frameShape(NoFrame)
-{
-}
-
-/*!
- \internal
-*/
-QStyleOptionFrame::QStyleOptionFrame(int versionIn)
- : QStyleOption(versionIn, SO_Frame), lineWidth(0), midLineWidth(0),
- features(None)
-{
-}
-
-/*!
- Constructs a QStyleOptionGroupBox, initializing the members
- variables to their default values.
-*/
-QStyleOptionGroupBox::QStyleOptionGroupBox()
- : QStyleOptionComplex(Version, Type), features(QStyleOptionFrame::None),
- textAlignment(Qt::AlignLeft), lineWidth(0), midLineWidth(0)
-{
-}
-
-QStyleOptionGroupBox::QStyleOptionGroupBox(int versionIn)
- : QStyleOptionComplex(versionIn, Type), features(QStyleOptionFrame::None),
- textAlignment(Qt::AlignLeft), lineWidth(0), midLineWidth(0)
-{
-}
-
-/*!
- Constructs a QStyleOptionHeader, initializing the members
- variables to their default values.
-*/
-QStyleOptionHeader::QStyleOptionHeader()
- : QStyleOption(QStyleOptionHeader::Version, SO_Header),
- section(0), textAlignment(Qt::AlignLeft), iconAlignment(Qt::AlignLeft),
- position(QStyleOptionHeader::Beginning),
- selectedPosition(QStyleOptionHeader::NotAdjacent), sortIndicator(None),
- orientation(Qt::Horizontal)
-{
-}
-
-/*!
- \internal
-*/
-QStyleOptionHeader::QStyleOptionHeader(int versionIn)
- : QStyleOption(versionIn, SO_Header),
- section(0), textAlignment(Qt::AlignLeft), iconAlignment(Qt::AlignLeft),
- position(QStyleOptionHeader::Beginning),
- selectedPosition(QStyleOptionHeader::NotAdjacent), sortIndicator(None),
- orientation(Qt::Horizontal)
-{
-}
-
-/*!
- Constructs a QStyleOptionButton, initializing the members
- variables to their default values.
-*/
-QStyleOptionButton::QStyleOptionButton()
- : QStyleOption(QStyleOptionButton::Version, SO_Button), features(None)
-{
-}
-
-/*!
- \internal
-*/
-QStyleOptionButton::QStyleOptionButton(int versionIn)
- : QStyleOption(versionIn, SO_Button), features(None)
-{
-}
-
-/*!
- Constructs a QStyleOptionToolBar, initializing the members
- variables to their default values.
-*/
-QStyleOptionToolBar::QStyleOptionToolBar()
- : QStyleOption(Version, SO_ToolBar), positionOfLine(OnlyOne), positionWithinLine(OnlyOne),
- toolBarArea(Qt::TopToolBarArea), features(None), lineWidth(0), midLineWidth(0)
-{
-}
-
-/*!
- \fn QStyleOptionToolBar::QStyleOptionToolBar(const QStyleOptionToolBar &other)
-
- Constructs a copy of the \a other style option.
-*/
-QStyleOptionToolBar::QStyleOptionToolBar(int versionIn)
-: QStyleOption(versionIn, SO_ToolBar), positionOfLine(OnlyOne), positionWithinLine(OnlyOne),
- toolBarArea(Qt::TopToolBarArea), features(None), lineWidth(0), midLineWidth(0)
-{
-
-}
-
-/*!
- Constructs a QStyleOptionTab object, initializing the members
- variables to their default values.
-*/
-QStyleOptionTab::QStyleOptionTab()
- : QStyleOption(QStyleOptionTab::Version, SO_Tab),
- row(0),
- position(Beginning),
- selectedPosition(NotAdjacent), cornerWidgets(QStyleOptionTab::NoCornerWidgets),
- documentMode(false),
- features(QStyleOptionTab::None)
-{
-}
-
-QStyleOptionTab::QStyleOptionTab(int versionIn)
- : QStyleOption(versionIn, SO_Tab),
- row(0),
- position(Beginning),
- selectedPosition(NotAdjacent), cornerWidgets(QStyleOptionTab::NoCornerWidgets),
- documentMode(false),
- features(QStyleOptionTab::None)
-{
-}
-
-/*!
- Constructs a QStyleOptionTabV4 object, initializing the members
- variables to their default values.
- */
-QStyleOptionTabV4::QStyleOptionTabV4() : QStyleOptionTab(QStyleOptionTabV4::Version)
-{
-}
-
-/*!
- Constructs a QStyleOptionProgressBar, initializing the members
- variables to their default values.
-*/
-QStyleOptionProgressBar::QStyleOptionProgressBar()
- : QStyleOption(QStyleOptionProgressBar::Version, SO_ProgressBar),
- minimum(0), maximum(0), progress(0), textAlignment(Qt::AlignLeft), textVisible(false),
- invertedAppearance(false), bottomToTop(false)
-{
-}
-
-QStyleOptionProgressBar::QStyleOptionProgressBar(int versionIn)
- : QStyleOption(versionIn, SO_ProgressBar),
- minimum(0), maximum(0), progress(0), textAlignment(Qt::AlignLeft), textVisible(false),
- invertedAppearance(false), bottomToTop(false)
-{
-}
-
-/*!
- Constructs a QStyleOptionMenuItem, initializing the members
- variables to their default values.
-*/
-QStyleOptionMenuItem::QStyleOptionMenuItem()
- : QStyleOption(QStyleOptionMenuItem::Version, SO_MenuItem), menuItemType(Normal),
- checkType(NotCheckable), checked(false), menuHasCheckableItems(true), maxIconWidth(0), tabWidth(0)
-{
-}
-
-/*!
- \internal
-*/
-QStyleOptionMenuItem::QStyleOptionMenuItem(int versionIn)
- : QStyleOption(versionIn, SO_MenuItem), menuItemType(Normal),
- checkType(NotCheckable), checked(false), menuHasCheckableItems(true), maxIconWidth(0), tabWidth(0)
-{
-}
-
-/*!
- Constructs a QStyleOptionComplex of the specified \a type and \a
- version, initializing the member variables to their default
- values. This constructor is usually called by subclasses.
-*/
-QStyleOptionComplex::QStyleOptionComplex(int versionIn, int typeIn)
- : QStyleOption(versionIn, typeIn), subControls(QStyle::SC_All), activeSubControls(QStyle::SC_None)
-{
-}
-
-
-/*!
- Constructs a QStyleOptionSlider, initializing the members
- variables to their default values.
-*/
-QStyleOptionSlider::QStyleOptionSlider()
- : QStyleOptionComplex(Version, SO_Slider), orientation(Qt::Horizontal), minimum(0), maximum(0),
- tickPosition(NoTicks), tickInterval(0), upsideDown(false),
- sliderPosition(0), sliderValue(0), singleStep(0), pageStep(0), notchTarget(0.0),
- dialWrapping(false)
-{
-}
-
-/*!
- \internal
-*/
-QStyleOptionSlider::QStyleOptionSlider(int versionIn)
- : QStyleOptionComplex(versionIn, SO_Slider), orientation(Qt::Horizontal), minimum(0), maximum(0),
- tickPosition(NoTicks), tickInterval(0), upsideDown(false),
- sliderPosition(0), sliderValue(0), singleStep(0), pageStep(0), notchTarget(0.0),
- dialWrapping(false)
-{
-}
-
-/*!
- Constructs a QStyleOptionSpinBox, initializing the members
- variables to their default values.
-*/
-QStyleOptionSpinBox::QStyleOptionSpinBox()
- : QStyleOptionComplex(Version, SO_SpinBox), buttonSymbols(UpDownArrows),
- stepEnabled(StepNone), frame(false)
-{
-}
-
-/*!
- \internal
-*/
-QStyleOptionSpinBox::QStyleOptionSpinBox(int versionIn)
- : QStyleOptionComplex(versionIn, SO_SpinBox), buttonSymbols(UpDownArrows),
- stepEnabled(StepNone), frame(false)
-{
-}
-
-/*!
- Constructs a QStyleOptionDockWidget, initializing the member
- variables to their default values.
-*/
-QStyleOptionDockWidget::QStyleOptionDockWidget()
- : QStyleOption(Version, SO_DockWidget), closable(false),
- movable(false), floatable(false), verticalTitleBar(false)
-{
-}
-
-/*!
- \internal
-*/
-QStyleOptionDockWidget::QStyleOptionDockWidget(int versionIn)
- : QStyleOption(versionIn, SO_DockWidget), closable(false),
- movable(false), floatable(false), verticalTitleBar(false)
-{
-}
-
-/*!
- Constructs a QStyleOptionToolButton, initializing the members
- variables to their default values.
-*/
-QStyleOptionToolButton::QStyleOptionToolButton()
- : QStyleOptionComplex(Version, SO_ToolButton), features(None), arrowType(Qt::DownArrow)
- , toolButtonStyle(Qt::ToolButtonIconOnly)
-{
-}
-
-QStyleOptionToolButton::QStyleOptionToolButton(int versionIn)
- : QStyleOptionComplex(versionIn, SO_ToolButton), features(None), arrowType(Qt::DownArrow)
- , toolButtonStyle(Qt::ToolButtonIconOnly)
-
-{
-}
-
-/*!
- Creates a QStyleOptionComboBox, initializing the members variables
- to their default values.
-*/
-QStyleOptionComboBox::QStyleOptionComboBox()
- : QStyleOptionComplex(Version, SO_ComboBox), editable(false), frame(true)
-{
-}
-
-QStyleOptionComboBox::QStyleOptionComboBox(int versionIn)
- : QStyleOptionComplex(versionIn, SO_ComboBox), editable(false), frame(true)
-{
-}
-
-/*!
- Creates a QStyleOptionToolBox, initializing the members variables
- to their default values.
-*/
-QStyleOptionToolBox::QStyleOptionToolBox()
- : QStyleOption(Version, SO_ToolBox), position(Beginning), selectedPosition(NotAdjacent)
-{
-}
-
-QStyleOptionToolBox::QStyleOptionToolBox(int versionIn)
- : QStyleOption(versionIn, SO_ToolBox), position(Beginning), selectedPosition(NotAdjacent)
-{
-}
-
-
-/*!
- Creates a QStyleOptionRubberBand, initializing the members
- variables to their default values.
-*/
-QStyleOptionRubberBand::QStyleOptionRubberBand()
- : QStyleOption(Version, SO_RubberBand), opaque(false), shape(Line)
-{
-}
-
-QStyleOptionRubberBand::QStyleOptionRubberBand(int versionIn)
- : QStyleOption(versionIn, SO_RubberBand), opaque(false)
-{
-}
-
-/*!
- Constructs a QStyleOptionTitleBar, initializing the members
- variables to their default values.
-*/
-QStyleOptionTitleBar::QStyleOptionTitleBar()
- : QStyleOptionComplex(Version, SO_TitleBar), titleBarState(0)
-{
-}
-
-QStyleOptionTitleBar::QStyleOptionTitleBar(int versionIn)
- : QStyleOptionComplex(versionIn, SO_TitleBar), titleBarState(0)
-{
-}
-
-/*!
- Constructs a QStyleOptionViewItem, initializing the members
- variables to their default values.
-*/
-QStyleOptionViewItem::QStyleOptionViewItem()
- : QStyleOption(Version, SO_ViewItem),
- displayAlignment(Qt::AlignLeft), decorationAlignment(Qt::AlignLeft),
- textElideMode(Qt::ElideMiddle), decorationPosition(Left),
- showDecorationSelected(false), features(None),
- checkState(Qt::Unchecked), viewItemPosition(QStyleOptionViewItem::Invalid)
-{
-}
-
-QStyleOptionViewItem::QStyleOptionViewItem(int versionIn)
- : QStyleOption(versionIn, SO_ViewItem),
- displayAlignment(Qt::AlignLeft), decorationAlignment(Qt::AlignLeft),
- textElideMode(Qt::ElideMiddle), decorationPosition(Left),
- showDecorationSelected(false), features(None),
- checkState(Qt::Unchecked), viewItemPosition(QStyleOptionViewItem::Invalid)
-{
-}
-
-/*!
- Constructs a QStyleOptionTabWidgetFrame, initializing the members
- variables to their default values.
-*/
-QStyleOptionTabWidgetFrame::QStyleOptionTabWidgetFrame()
- : QStyleOption(Version, SO_TabWidgetFrame), lineWidth(0), midLineWidth(0), shape(QStyleOptionTab::RoundedNorth)
-{
-}
-
-QStyleOptionTabWidgetFrame::QStyleOptionTabWidgetFrame(int versionIn)
- : QStyleOption(versionIn, SO_TabWidgetFrame), lineWidth(0), midLineWidth(0)
-{
-}
-
-/*!
- Construct a QStyleOptionTabBarBase, initializing the members
- vaiables to their default values.
-*/
-QStyleOptionTabBarBase::QStyleOptionTabBarBase()
- : QStyleOption(Version, SO_TabBarBase), documentMode(false), shape(QStyleOptionTab::RoundedNorth)
-{
-}
-
-QStyleOptionTabBarBase::QStyleOptionTabBarBase(int versionIn)
- : QStyleOption(versionIn, SO_TabBarBase), documentMode(false)
-{
-}
-
-/*!
- Constructs a QStyleOptionSizeGrip.
-*/
-QStyleOptionSizeGrip::QStyleOptionSizeGrip()
- : QStyleOptionComplex(Version, Type), corner(Qt::BottomRightCorner)
-{
-}
-
-QStyleOptionSizeGrip::QStyleOptionSizeGrip(int versionIn)
- : QStyleOptionComplex(versionIn, Type), corner(Qt::BottomRightCorner)
-{
-}
-
-/*!
- Constructs a QStyleOptionGraphicsItem.
-*/
-QStyleOptionGraphicsItem::QStyleOptionGraphicsItem()
- : QStyleOption(Version, Type), levelOfDetail(1)
-{
-}
-
-QStyleOptionGraphicsItem::QStyleOptionGraphicsItem(int versionIn)
- : QStyleOption(versionIn, Type), levelOfDetail(1)
-{
-}
-
-/*!
- \since 4.6
-
- Returns the level of detail from the \a worldTransform.
-
- Its value represents the maximum value of the height and
- width of a unity rectangle, mapped using the \a worldTransform
- of the painter used to draw the item. By default, if no
- transformations are applied, its value is 1. If zoomed out 1:2, the level
- of detail will be 0.5, and if zoomed in 2:1, its value is 2.
-
- \sa QGraphicsScene::minimumRenderSize()
-*/
-qreal QStyleOptionGraphicsItem::levelOfDetailFromTransform(const QTransform &worldTransform)
-{
- if (worldTransform.type() <= QTransform::TxTranslate)
- return 1; // Translation only? The LOD is 1.
-
- // Two unit vectors.
- QLineF v1(0, 0, 1, 0);
- QLineF v2(0, 0, 0, 1);
- // LOD is the transformed area of a 1x1 rectangle.
- return qSqrt(worldTransform.map(v1).length() * worldTransform.map(v2).length());
-}
-
-/*!
- Constructs a QStyleHintReturn with version \a version and type \a
- type.
-
- The version has no special meaning for QStyleHintReturn; it can be
- used by subclasses to distinguish between different version of
- the same hint type.
-
- \sa QStyleOption::version, QStyleOption::type
-*/
-QStyleHintReturn::QStyleHintReturn(int versionIn, int type)
- : version(versionIn), type(type)
-{
-}
-
-/*!
- \internal
-*/
-
-QStyleHintReturn::~QStyleHintReturn()
-{
-}
-
-/*!
- Constructs a QStyleHintReturnMask. The member variables are
- initialized to default values.
-*/
-QStyleHintReturnMask::QStyleHintReturnMask() : QStyleHintReturn(Version, Type)
-{
-}
-
-QStyleHintReturnMask::~QStyleHintReturnMask()
-{
-}
-
-/*!
- Constructs a QStyleHintReturnVariant. The member variables are
- initialized to default values.
-*/
-QStyleHintReturnVariant::QStyleHintReturnVariant() : QStyleHintReturn(Version, Type)
-{
-}
-
-QStyleHintReturnVariant::~QStyleHintReturnVariant()
-{
-}
-
-#if !defined(QT_NO_DEBUG_STREAM)
-QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType)
-{
-#if !defined(QT_NO_DEBUG)
- switch (optionType) {
- case QStyleOption::SO_Default:
- debug << "SO_Default"; break;
- case QStyleOption::SO_FocusRect:
- debug << "SO_FocusRect"; break;
- case QStyleOption::SO_Button:
- debug << "SO_Button"; break;
- case QStyleOption::SO_Tab:
- debug << "SO_Tab"; break;
- case QStyleOption::SO_MenuItem:
- debug << "SO_MenuItem"; break;
- case QStyleOption::SO_Frame:
- debug << "SO_Frame"; break;
- case QStyleOption::SO_ProgressBar:
- debug << "SO_ProgressBar"; break;
- case QStyleOption::SO_ToolBox:
- debug << "SO_ToolBox"; break;
- case QStyleOption::SO_Header:
- debug << "SO_Header"; break;
- case QStyleOption::SO_DockWidget:
- debug << "SO_DockWidget"; break;
- case QStyleOption::SO_ViewItem:
- debug << "SO_ViewItem"; break;
- case QStyleOption::SO_TabWidgetFrame:
- debug << "SO_TabWidgetFrame"; break;
- case QStyleOption::SO_TabBarBase:
- debug << "SO_TabBarBase"; break;
- case QStyleOption::SO_RubberBand:
- debug << "SO_RubberBand"; break;
- case QStyleOption::SO_Complex:
- debug << "SO_Complex"; break;
- case QStyleOption::SO_Slider:
- debug << "SO_Slider"; break;
- case QStyleOption::SO_SpinBox:
- debug << "SO_SpinBox"; break;
- case QStyleOption::SO_ToolButton:
- debug << "SO_ToolButton"; break;
- case QStyleOption::SO_ComboBox:
- debug << "SO_ComboBox"; break;
- case QStyleOption::SO_TitleBar:
- debug << "SO_TitleBar"; break;
- case QStyleOption::SO_CustomBase:
- debug << "SO_CustomBase"; break;
- case QStyleOption::SO_GroupBox:
- debug << "SO_GroupBox"; break;
- case QStyleOption::SO_ToolBar:
- debug << "SO_ToolBar"; break;
- case QStyleOption::SO_ComplexCustomBase:
- debug << "SO_ComplexCustomBase"; break;
- case QStyleOption::SO_SizeGrip:
- debug << "SO_SizeGrip"; break;
- case QStyleOption::SO_GraphicsItem:
- debug << "SO_GraphicsItem"; break;
- }
-#else
- Q_UNUSED(optionType);
-#endif
- return debug;
-}
-
-QDebug operator<<(QDebug debug, const QStyleOption &option)
-{
-#if !defined(QT_NO_DEBUG)
- debug << "QStyleOption(";
- debug << QStyleOption::OptionType(option.type);
- debug << ',' << (option.direction == Qt::RightToLeft ? "RightToLeft" : "LeftToRight");
- debug << ',' << option.state;
- debug << ',' << option.rect;
- debug << ',' << option.styleObject;
- debug << ')';
-#else
- Q_UNUSED(option);
-#endif
- return debug;
-}
-#endif
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
diff --git a/src/quicknativestyle/qstyle/qquickstyleoption.h b/src/quicknativestyle/qstyle/qquickstyleoption.h
deleted file mode 100644
index 05c9ce57..00000000
--- a/src/quicknativestyle/qstyle/qquickstyleoption.h
+++ /dev/null
@@ -1,795 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QSTYLEOPTION_H
-#define QSTYLEOPTION_H
-
-#include "qquickstyle.h"
-
-#include <QtCore/qlocale.h>
-#include <QtCore/qvariant.h>
-#include <QtCore/qdebug.h>
-#include <QtCore/qabstractitemmodel.h>
-
-#include <QtGui/qicon.h>
-#include <QtGui/qfontmetrics.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickItem;
-
-namespace QQC2 {
-
-class QStyleOption
-{
-public:
- enum OptionType {
- SO_Default, SO_FocusRect, SO_Button, SO_Tab, SO_MenuItem,
- SO_Frame, SO_ProgressBar, SO_ToolBox, SO_Header,
- SO_DockWidget, SO_ViewItem, SO_TabWidgetFrame,
- SO_TabBarBase, SO_RubberBand, SO_ToolBar, SO_GraphicsItem,
-
- SO_Complex = 0xf0000, SO_Slider, SO_SpinBox, SO_ToolButton, SO_ComboBox,
- SO_TitleBar, SO_GroupBox, SO_SizeGrip,
-
- SO_CustomBase = 0xf00,
- SO_ComplexCustomBase = 0xf000000
- };
- Q_ENUMS(OptionType)
-
- enum StyleOptionType { Type = SO_Default };
- enum StyleOptionVersion { Version = 1 };
-
- int version; // TODO: Remove version information
- int type;
- QStyle::State state;
- Qt::LayoutDirection direction;
- QRect rect;
- QFontMetrics fontMetrics;
- QPalette palette;
- QObject *styleObject;
-
- // QQC2 additions. Remember to also update copy
- // constructor and assignment operator when adding
- // new variables here.
- QQuickItem *control;
- QWindow *window;
-
- QStyleOption(int version = QStyleOption::Version, int type = SO_Default);
- QStyleOption(const QStyleOption &other);
- ~QStyleOption();
-
- QStyleOption &operator=(const QStyleOption &other);
-};
-
-class QStyleOptionFocusRect : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_FocusRect };
- enum StyleOptionVersion { Version = 1 };
-
- QColor backgroundColor;
-
- QStyleOptionFocusRect();
- QStyleOptionFocusRect(const QStyleOptionFocusRect &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionFocusRect &operator=(const QStyleOptionFocusRect &) = default;
-
-protected:
- QStyleOptionFocusRect(int version);
-};
-
-class QStyleOptionFrame : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_Frame };
- enum StyleOptionVersion { Version = 3 };
- enum FrameFeature {
- None = 0x00,
- Flat = 0x01,
- Rounded = 0x02
- };
- Q_DECLARE_FLAGS(FrameFeatures, FrameFeature)
- enum Shape {
- NoFrame = 0, // no frame
- Box = 0x0001, // rectangular box
- Panel = 0x0002, // rectangular panel
- WinPanel = 0x0003, // rectangular panel (Windows)
- HLine = 0x0004, // horizontal line
- VLine = 0x0005, // vertical line
- StyledPanel = 0x0006 // rectangular panel depending on the GUI style
- };
- enum Shadow {
- Plain = 0x0010, // plain line
- Raised = 0x0020, // raised shadow effect
- Sunken = 0x0030 // sunken shadow effect
- };
-
- int lineWidth;
- int midLineWidth;
- FrameFeatures features;
- Shape frameShape;
-
- QStyleOptionFrame();
- QStyleOptionFrame(const QStyleOptionFrame &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionFrame &operator=(const QStyleOptionFrame &) = default;
-
-protected:
- QStyleOptionFrame(int version);
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionFrame::FrameFeatures)
-
-Q_DECL_DEPRECATED typedef QStyleOptionFrame QStyleOptionFrameV2;
-Q_DECL_DEPRECATED typedef QStyleOptionFrame QStyleOptionFrameV3;
-
-class QStyleOptionTab : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_Tab };
- enum StyleOptionVersion { Version = 3 };
-
- enum TabPosition { Beginning, Middle, End, OnlyOneTab };
- enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected };
- enum CornerWidget { NoCornerWidgets = 0x00, LeftCornerWidget = 0x01,
- RightCornerWidget = 0x02 };
- enum TabFeature { None = 0x00, HasFrame = 0x01 };
- enum Shape { RoundedNorth, RoundedSouth, RoundedWest, RoundedEast,
- TriangularNorth, TriangularSouth, TriangularWest, TriangularEast
- };
- Q_DECLARE_FLAGS(CornerWidgets, CornerWidget)
- Q_DECLARE_FLAGS(TabFeatures, TabFeature)
-
- QString text;
- QIcon icon;
- int row;
- TabPosition position;
- Shape shape = RoundedNorth;
- SelectedPosition selectedPosition;
- CornerWidgets cornerWidgets;
- QSize iconSize;
- bool documentMode;
- QSize leftButtonSize;
- QSize rightButtonSize;
- TabFeatures features;
-
- QStyleOptionTab();
- QStyleOptionTab(const QStyleOptionTab &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionTab &operator=(const QStyleOptionTab &) = default;
-
-protected:
- QStyleOptionTab(int version);
-};
-
-class QStyleOptionTabWidgetFrame : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_TabWidgetFrame };
- enum StyleOptionVersion { Version = 2 };
-
- int lineWidth;
- int midLineWidth;
- QStyleOptionTab::Shape shape;
- QSize tabBarSize;
- QSize rightCornerWidgetSize;
- QSize leftCornerWidgetSize;
- QRect tabBarRect;
- QRect selectedTabRect;
-
- QStyleOptionTabWidgetFrame();
- inline QStyleOptionTabWidgetFrame(const QStyleOptionTabWidgetFrame &other)
- : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionTabWidgetFrame &operator=(const QStyleOptionTabWidgetFrame &) = default;
-
-protected:
- QStyleOptionTabWidgetFrame(int version);
-};
-
-Q_DECL_DEPRECATED typedef QStyleOptionTabWidgetFrame QStyleOptionTabWidgetFrameV2;
-
-
-class QStyleOptionTabBarBase : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_TabBarBase };
-
- enum TabBarPosition { North, South, West, East };
- enum ButtonPosition { LeftSide, RightSide };
-
- QRect tabBarRect;
- QRect selectedTabRect;
- bool documentMode;
- QStyleOptionTab::Shape shape;
-
- QStyleOptionTabBarBase();
- QStyleOptionTabBarBase(const QStyleOptionTabBarBase &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionTabBarBase &operator=(const QStyleOptionTabBarBase &) = default;
-
-protected:
- QStyleOptionTabBarBase(int version);
-};
-
-class QStyleOptionHeader : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_Header };
- enum StyleOptionVersion { Version = 1 };
- enum SectionPosition { Beginning, Middle, End, OnlyOneSection };
- enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected,
- NextAndPreviousAreSelected };
- enum SortIndicator { None, SortUp, SortDown };
-
- int section;
- QString text;
- Qt::Alignment textAlignment;
- QIcon icon;
- Qt::Alignment iconAlignment;
- SectionPosition position;
- SelectedPosition selectedPosition;
- SortIndicator sortIndicator;
- Qt::Orientation orientation;
-
- QStyleOptionHeader();
- QStyleOptionHeader(const QStyleOptionHeader &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionHeader &operator=(const QStyleOptionHeader &) = default;
-
-protected:
- QStyleOptionHeader(int version);
-};
-
-class QStyleOptionButton : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_Button };
- enum StyleOptionVersion { Version = 1 };
-
- enum ButtonFeature { None = 0x00, Flat = 0x01, HasMenu = 0x02, DefaultButton = 0x04,
- AutoDefaultButton = 0x08, CommandLinkButton = 0x10 };
- Q_DECLARE_FLAGS(ButtonFeatures, ButtonFeature)
-
- ButtonFeatures features;
- QString text;
- QIcon icon;
- QSize iconSize;
-
- QStyleOptionButton();
- QStyleOptionButton(const QStyleOptionButton &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionButton &operator=(const QStyleOptionButton &) = default;
-
-protected:
- QStyleOptionButton(int version);
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionButton::ButtonFeatures)
-
-class QStyleOptionTabV4 : public QStyleOptionTab
-{
-public:
- enum StyleOptionVersion { Version = 4 };
- QStyleOptionTabV4();
- int tabIndex = -1;
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionTab::CornerWidgets)
-
-Q_DECL_DEPRECATED typedef QStyleOptionTab QStyleOptionTabV2;
-Q_DECL_DEPRECATED typedef QStyleOptionTab QStyleOptionTabV3;
-
-
-class QStyleOptionToolBar : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_ToolBar };
- enum StyleOptionVersion { Version = 1 };
- enum ToolBarPosition { Beginning, Middle, End, OnlyOne };
- enum ToolBarFeature { None = 0x0, Movable = 0x1 };
- Q_DECLARE_FLAGS(ToolBarFeatures, ToolBarFeature)
-
- ToolBarPosition positionOfLine; // The toolbar line position
- ToolBarPosition positionWithinLine; // The position within a toolbar
- Qt::ToolBarArea toolBarArea; // The toolbar docking area
- ToolBarFeatures features;
- int lineWidth;
- int midLineWidth;
-
- QStyleOptionToolBar();
- QStyleOptionToolBar(const QStyleOptionToolBar &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionToolBar &operator=(const QStyleOptionToolBar &) = default;
-
-protected:
- QStyleOptionToolBar(int version);
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionToolBar::ToolBarFeatures)
-
-class QStyleOptionProgressBar : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_ProgressBar };
- enum StyleOptionVersion { Version = 2 };
-
- int minimum;
- int maximum;
- int progress;
- QString text;
- Qt::Alignment textAlignment;
- bool textVisible;
- bool invertedAppearance;
- bool bottomToTop;
-
- QStyleOptionProgressBar();
- QStyleOptionProgressBar(const QStyleOptionProgressBar &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionProgressBar &operator=(const QStyleOptionProgressBar &) = default;
-
-protected:
- QStyleOptionProgressBar(int version);
-};
-
-class QStyleOptionMenuItem : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_MenuItem };
- enum StyleOptionVersion { Version = 1 };
-
- enum MenuItemType { Normal, DefaultItem, Separator, SubMenu, Scroller, TearOff, Margin,
- EmptyArea };
- enum CheckType { NotCheckable, Exclusive, NonExclusive };
-
- MenuItemType menuItemType;
- CheckType checkType;
- bool checked;
- bool menuHasCheckableItems;
- QRect menuRect;
- QString text;
- QIcon icon;
- int maxIconWidth;
- int tabWidth; // ### Qt 6: rename to reservedShortcutWidth
- QFont font;
-
- QStyleOptionMenuItem();
- QStyleOptionMenuItem(const QStyleOptionMenuItem &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionMenuItem &operator=(const QStyleOptionMenuItem &) = default;
-
-protected:
- QStyleOptionMenuItem(int version);
-};
-
-class QStyleOptionDockWidget : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_DockWidget };
- enum StyleOptionVersion { Version = 2 };
-
- QString title;
- bool closable;
- bool movable;
- bool floatable;
- bool verticalTitleBar;
-
- QStyleOptionDockWidget();
- QStyleOptionDockWidget(const QStyleOptionDockWidget &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionDockWidget &operator=(const QStyleOptionDockWidget &) = default;
-
-protected:
- QStyleOptionDockWidget(int version);
-};
-
-Q_DECL_DEPRECATED typedef QStyleOptionDockWidget QStyleOptionDockWidgetV2;
-
-class QStyleOptionViewItem : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_ViewItem };
- enum StyleOptionVersion { Version = 4 };
-
- enum Position { Left, Right, Top, Bottom };
- enum ScrollMode { ScrollPerItem, ScrollPerPixel }; // Doesn't really belong in this class.
-
- Qt::Alignment displayAlignment;
- Qt::Alignment decorationAlignment;
- Qt::TextElideMode textElideMode;
- Position decorationPosition;
- QSize decorationSize;
- QFont font;
- bool showDecorationSelected;
-
- enum ViewItemFeature {
- None = 0x00,
- WrapText = 0x01,
- Alternate = 0x02,
- HasCheckIndicator = 0x04,
- HasDisplay = 0x08,
- HasDecoration = 0x10
- };
- Q_DECLARE_FLAGS(ViewItemFeatures, ViewItemFeature)
-
- ViewItemFeatures features;
-
- QLocale locale;
-
- enum ViewItemPosition { Invalid, Beginning, Middle, End, OnlyOne };
-
- QModelIndex index;
- Qt::CheckState checkState;
- QIcon icon;
- QString text;
- ViewItemPosition viewItemPosition;
- QBrush backgroundBrush;
-
- QStyleOptionViewItem();
- QStyleOptionViewItem(const QStyleOptionViewItem &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionViewItem &operator=(const QStyleOptionViewItem &) = default;
-
-protected:
- QStyleOptionViewItem(int version);
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionViewItem::ViewItemFeatures)
-
-Q_DECL_DEPRECATED typedef QStyleOptionViewItem QStyleOptionViewItemV2;
-Q_DECL_DEPRECATED typedef QStyleOptionViewItem QStyleOptionViewItemV3;
-Q_DECL_DEPRECATED typedef QStyleOptionViewItem QStyleOptionViewItemV4;
-
-class QStyleOptionToolBox : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_ToolBox };
- enum StyleOptionVersion { Version = 2 };
-
- QString text;
- QIcon icon;
-
- enum TabPosition { Beginning, Middle, End, OnlyOneTab };
- enum SelectedPosition { NotAdjacent, NextIsSelected, PreviousIsSelected };
-
- TabPosition position;
- SelectedPosition selectedPosition;
-
- QStyleOptionToolBox();
- QStyleOptionToolBox(const QStyleOptionToolBox &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionToolBox &operator=(const QStyleOptionToolBox &) = default;
-
-protected:
- QStyleOptionToolBox(int version);
-};
-
-Q_DECL_DEPRECATED typedef QStyleOptionToolBox QStyleOptionToolBoxV2;
-
-class QStyleOptionRubberBand : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_RubberBand };
- enum StyleOptionVersion { Version = 1 };
- enum Shape { Line, Rectangle };
-
- bool opaque;
- Shape shape;
-
- QStyleOptionRubberBand();
- QStyleOptionRubberBand(const QStyleOptionRubberBand &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionRubberBand &operator=(const QStyleOptionRubberBand &) = default;
-
-protected:
- QStyleOptionRubberBand(int version);
-};
-
-// -------------------------- Complex style options -------------------------------
-class QStyleOptionComplex : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_Complex };
- enum StyleOptionVersion { Version = 1 };
-
- QStyle::SubControls subControls;
- QStyle::SubControls activeSubControls;
-
- QStyleOptionComplex(int version = QStyleOptionComplex::Version, int type = SO_Complex);
- QStyleOptionComplex(const QStyleOptionComplex &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionComplex &operator=(const QStyleOptionComplex &) = default;
-};
-
-class QStyleOptionSlider : public QStyleOptionComplex
-{
-public:
- enum StyleOptionType { Type = SO_Slider };
- enum StyleOptionVersion { Version = 1 };
- enum TickPosition {
- NoTicks = 0,
- TicksAbove = 1,
- TicksLeft = TicksAbove,
- TicksBelow = 2,
- TicksRight = TicksBelow,
- TicksBothSides = 3
- };
-
- Qt::Orientation orientation;
- int minimum;
- int maximum;
- TickPosition tickPosition;
- int tickInterval;
- bool upsideDown;
- int sliderPosition;
- int sliderValue;
- int singleStep;
- int pageStep;
- qreal notchTarget;
- bool dialWrapping;
-
- QStyleOptionSlider();
- QStyleOptionSlider(const QStyleOptionSlider &other) : QStyleOptionComplex(Version, Type) { *this = other; }
- QStyleOptionSlider &operator=(const QStyleOptionSlider &) = default;
-
-protected:
- QStyleOptionSlider(int version);
-};
-
-class QStyleOptionSpinBox : public QStyleOptionComplex
-{
-public:
- enum StyleOptionType { Type = SO_SpinBox };
- enum StyleOptionVersion { Version = 1 };
- enum StepEnabledFlag { StepNone = 0x00, StepUpEnabled = 0x01, StepDownEnabled = 0x02, StepEnabled = 0xFF };
- enum ButtonSymbols { UpDownArrows, PlusMinus, NoButtons };
-
- ButtonSymbols buttonSymbols;
- StepEnabledFlag stepEnabled;
- bool frame;
-
- QStyleOptionSpinBox();
- QStyleOptionSpinBox(const QStyleOptionSpinBox &other) : QStyleOptionComplex(Version, Type) { *this = other; }
- QStyleOptionSpinBox &operator=(const QStyleOptionSpinBox &) = default;
-
-protected:
- QStyleOptionSpinBox(int version);
-};
-
-class QStyleOptionToolButton : public QStyleOptionComplex
-{
-public:
- enum StyleOptionType { Type = SO_ToolButton };
- enum StyleOptionVersion { Version = 1 };
-
- enum ToolButtonFeature { None = 0x00, Arrow = 0x01, Menu = 0x04, MenuButtonPopup = Menu, PopupDelay = 0x08,
- HasMenu = 0x10 };
- Q_DECLARE_FLAGS(ToolButtonFeatures, ToolButtonFeature)
-
- ToolButtonFeatures features;
- QIcon icon;
- QSize iconSize;
- QString text;
- Qt::ArrowType arrowType;
- Qt::ToolButtonStyle toolButtonStyle;
- QPoint pos;
- QFont font;
-
- QStyleOptionToolButton();
- QStyleOptionToolButton(const QStyleOptionToolButton &other) : QStyleOptionComplex(Version, Type) { *this = other; }
- QStyleOptionToolButton &operator=(const QStyleOptionToolButton &) = default;
-
-protected:
- QStyleOptionToolButton(int version);
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QStyleOptionToolButton::ToolButtonFeatures)
-
-class QStyleOptionComboBox : public QStyleOptionComplex
-{
-public:
- enum StyleOptionType { Type = SO_ComboBox };
- enum StyleOptionVersion { Version = 1 };
-
- bool editable;
- QRect popupRect;
- bool frame;
- QString currentText;
- QIcon currentIcon;
- QSize iconSize;
-
- QStyleOptionComboBox();
- QStyleOptionComboBox(const QStyleOptionComboBox &other) : QStyleOptionComplex(Version, Type) { *this = other; }
- QStyleOptionComboBox &operator=(const QStyleOptionComboBox &) = default;
-
-protected:
- QStyleOptionComboBox(int version);
-};
-
-class QStyleOptionTitleBar : public QStyleOptionComplex
-{
-public:
- enum StyleOptionType { Type = SO_TitleBar };
- enum StyleOptionVersion { Version = 1 };
-
- QString text;
- QIcon icon;
- int titleBarState;
- Qt::WindowFlags titleBarFlags;
-
- QStyleOptionTitleBar();
- QStyleOptionTitleBar(const QStyleOptionTitleBar &other) : QStyleOptionComplex(Version, Type) { *this = other; }
- QStyleOptionTitleBar &operator=(const QStyleOptionTitleBar &) = default;
-
-protected:
- QStyleOptionTitleBar(int version);
-};
-
-class QStyleOptionGroupBox : public QStyleOptionComplex
-{
-public:
- enum StyleOptionType { Type = SO_GroupBox };
- enum StyleOptionVersion { Version = 1 };
-
- QStyleOptionFrame::FrameFeatures features;
- QString text;
- Qt::Alignment textAlignment;
- QColor textColor;
- int lineWidth;
- int midLineWidth;
-
- QStyleOptionGroupBox();
- QStyleOptionGroupBox(const QStyleOptionGroupBox &other) : QStyleOptionComplex(Version, Type) { *this = other; }
- QStyleOptionGroupBox &operator=(const QStyleOptionGroupBox &) = default;
-protected:
- QStyleOptionGroupBox(int version);
-};
-
-class QStyleOptionSizeGrip : public QStyleOptionComplex
-{
-public:
- enum StyleOptionType { Type = SO_SizeGrip };
- enum StyleOptionVersion { Version = 1 };
-
- Qt::Corner corner;
-
- QStyleOptionSizeGrip();
- QStyleOptionSizeGrip(const QStyleOptionSizeGrip &other) : QStyleOptionComplex(Version, Type) { *this = other; }
- QStyleOptionSizeGrip &operator=(const QStyleOptionSizeGrip &) = default;
-protected:
- QStyleOptionSizeGrip(int version);
-};
-
-class QStyleOptionGraphicsItem : public QStyleOption
-{
-public:
- enum StyleOptionType { Type = SO_GraphicsItem };
- enum StyleOptionVersion { Version = 1 };
-
- QRectF exposedRect;
- qreal levelOfDetail;
-
- QStyleOptionGraphicsItem();
- QStyleOptionGraphicsItem(const QStyleOptionGraphicsItem &other) : QStyleOption(Version, Type) { *this = other; }
- QStyleOptionGraphicsItem &operator=(const QStyleOptionGraphicsItem &) = default;
- static qreal levelOfDetailFromTransform(const QTransform &worldTransform);
-protected:
- QStyleOptionGraphicsItem(int version);
-};
-
-template <typename T>
-T qstyleoption_cast(const QStyleOption *opt)
-{
- typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
- if (opt && opt->version >= Opt::Version && (opt->type == Opt::Type
- || int(Opt::Type) == QStyleOption::SO_Default
- || (int(Opt::Type) == QStyleOption::SO_Complex
- && opt->type > QStyleOption::SO_Complex)))
- return static_cast<T>(opt);
- return nullptr;
-}
-
-template <typename T>
-T qstyleoption_cast(QStyleOption *opt)
-{
- typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
- if (opt && opt->version >= Opt::Version && (opt->type == Opt::Type
- || int(Opt::Type) == QStyleOption::SO_Default
- || (int(Opt::Type) == QStyleOption::SO_Complex
- && opt->type > QStyleOption::SO_Complex)))
- return static_cast<T>(opt);
- return nullptr;
-}
-
-// -------------------------- QStyleHintReturn -------------------------------
-
-class QStyleHintReturn
-{
-public:
- enum HintReturnType {
- SH_Default=0xf000, SH_Mask, SH_Variant
- };
-
- enum StyleOptionType { Type = SH_Default };
- enum StyleOptionVersion { Version = 1 };
-
- QStyleHintReturn(int version = QStyleOption::Version, int type = SH_Default);
- ~QStyleHintReturn();
-
- int version;
- int type;
-};
-
-class QStyleHintReturnMask : public QStyleHintReturn
-{
-public:
- enum StyleOptionType { Type = SH_Mask };
- enum StyleOptionVersion { Version = 1 };
-
- QStyleHintReturnMask();
- ~QStyleHintReturnMask();
-
- QRegion region;
-};
-
-class QStyleHintReturnVariant : public QStyleHintReturn
-{
-public:
- enum StyleOptionType { Type = SH_Variant };
- enum StyleOptionVersion { Version = 1 };
-
- QStyleHintReturnVariant();
- ~QStyleHintReturnVariant();
-
- QVariant variant;
-};
-
-template <typename T>
-T qstyleoption_cast(const QStyleHintReturn *hint)
-{
- typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
- if (hint && hint->version <= Opt::Version &&
- (hint->type == Opt::Type || int(Opt::Type) == QStyleHintReturn::SH_Default))
- return static_cast<T>(hint);
- return nullptr;
-}
-
-template <typename T>
-T qstyleoption_cast(QStyleHintReturn *hint)
-{
- typedef typename std::remove_cv<typename std::remove_pointer<T>::type>::type Opt;
- if (hint && hint->version <= Opt::Version &&
- (hint->type == Opt::Type || int(Opt::Type) == QStyleHintReturn::SH_Default))
- return static_cast<T>(hint);
- return nullptr;
-}
-
-#if !defined(QT_NO_DEBUG_STREAM)
-QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType);
-QDebug operator<<(QDebug debug, const QStyleOption &option);
-#endif
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif // QSTYLEOPTION_H
diff --git a/src/quicknativestyle/qstyle/qstyle.pri b/src/quicknativestyle/qstyle/qstyle.pri
deleted file mode 100644
index 4d025498..00000000
--- a/src/quicknativestyle/qstyle/qstyle.pri
+++ /dev/null
@@ -1,23 +0,0 @@
-INCLUDEPATH += $$PWD
-
-HEADERS += \
- $$PWD/qquicknativestyle.h \
- $$PWD/qquickcommonstyle.h \
- $$PWD/qquickcommonstyle_p.h \
- $$PWD/qquickcommonstylepixmaps_p.h \
- $$PWD/qquickdrawutil.h \
- $$PWD/qquickstyle.h \
- $$PWD/qquickstyle_p.h \
- $$PWD/qquickstylehelper_p.h \
- $$PWD/qquickstyleoption.h
-
-SOURCES += \
- $$PWD/qquicknativestyle.cpp \
- $$PWD/qquickcommonstyle.cpp \
- $$PWD/qquickdrawutil.cpp \
- $$PWD/qquickstyle.cpp \
- $$PWD/qquickstylehelper.cpp \
- $$PWD/qquickstyleoption.cpp
-
-macos: include(mac/mac.pri)
-win32: include(windows/windows.pri)
diff --git a/src/quicknativestyle/qstyle/windows/qquickwindowsstyle.cpp b/src/quicknativestyle/qstyle/windows/qquickwindowsstyle.cpp
deleted file mode 100644
index 242b770d..00000000
--- a/src/quicknativestyle/qstyle/windows/qquickwindowsstyle.cpp
+++ /dev/null
@@ -1,2388 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWidgets module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickwindowsstyle_p.h"
-#include "qquickwindowsstyle_p_p.h"
-#include "qquickstyleoption.h"
-#include "qquickstylehelper_p.h"
-#include "qquickdrawutil.h"
-
-#include <QtGui/qbitmap.h>
-#include <QtGui/qevent.h>
-#include <QtGui/qpaintengine.h>
-#include <QtGui/qpainter.h>
-#include <QtCore/qdebug.h>
-#include <QtCore/qfile.h>
-#include <QtCore/qtextstream.h>
-#include <QtGui/qpixmapcache.h>
-#include <private/qmath_p.h>
-#include <qmath.h>
-#include <QtGui/qpainterpath.h>
-#include <QtGui/qscreen.h>
-#include <QtGui/qwindow.h>
-#include <qpa/qplatformtheme.h>
-#include <qpa/qplatformscreen.h>
-#include <private/qguiapplication_p.h>
-#include <private/qhighdpiscaling_p.h>
-#include <qpa/qplatformnativeinterface.h>
-
-#if 0 && QT_CONFIG(animation)
-//#include <private/qstyleanimation_p.h>
-#endif
-
-#include <algorithm>
-
-QT_BEGIN_NAMESPACE
-
-#if defined(Q_OS_WIN)
-
-QT_BEGIN_INCLUDE_NAMESPACE
-#include "qt_windows.h"
-QT_END_INCLUDE_NAMESPACE
-# ifndef COLOR_GRADIENTACTIVECAPTION
-# define COLOR_GRADIENTACTIVECAPTION 27
-# endif
-# ifndef COLOR_GRADIENTINACTIVECAPTION
-# define COLOR_GRADIENTINACTIVECAPTION 28
-# endif
-
-Q_GUI_EXPORT HICON qt_pixmapToWinHICON(const QPixmap &);
-#endif //Q_OS_WIN
-
-QT_BEGIN_INCLUDE_NAMESPACE
-#include <limits.h>
-QT_END_INCLUDE_NAMESPACE
-
-namespace QQC2 {
-
-enum QSliderDirection { SlUp, SlDown, SlLeft, SlRight };
-
-/*
- \internal
-*/
-
-QWindowsStylePrivate::QWindowsStylePrivate() = default;
-
-qreal QWindowsStylePrivate::appDevicePixelRatio()
-{
- return qApp->devicePixelRatio();
-}
-
-bool QWindowsStylePrivate::isDarkMode()
-{
- bool result = false;
-#ifdef Q_OS_WIN
- // Windows only: Return whether dark mode style support is desired and
- // dark mode is in effect.
- if (auto ni = QGuiApplication::platformNativeInterface()) {
- const QVariant darkModeStyleP = ni->property("darkModeStyle");
- result = darkModeStyleP.metaType().id() == QMetaType::Bool
- && darkModeStyleP.value<bool>()
- && ni->property("darkMode").value<bool>();
- }
-#endif
- return result;
-}
-
-// ###TODO SH_UnderlineShortcut
-#if 0
-// Returns \c true if the toplevel parent of \a widget has seen the Alt-key
-bool QWindowsStylePrivate::hasSeenAlt(const QWidget *widget) const
-{
- widget = widget->window();
- return seenAlt.contains(widget);
-}
-
-/*!
- \reimp
-*/
-bool QWindowsStyle::eventFilter(QObject *o, QEvent *e)
-{
- // Records Alt- and Focus events
-// if (!o->isWidgetType())
- return QObject::eventFilter(o, e);
- QWidget *widget = qobject_cast<QWidget*>(o);
- Q_D(QWindowsStyle);
- switch (e->type()) {
- case QEvent::KeyPress:
- if (static_cast<QKeyEvent *>(e)->key() == Qt::Key_Alt) {
- widget = widget->window();
-
- // Alt has been pressed - find all widgets that care
- QList<QWidget *> l = widget->findChildren<QWidget *>();
- auto ignorable = [](QWidget *w) {
- return w->isWindow() || !w->isVisible()
- || w->style()->styleHint(SH_UnderlineShortcut, nullptr, w);
- };
- l.erase(std::remove_if (l.begin(), l.end(), ignorable), l.end());
- // Update states before repainting
- d->seenAlt.append(widget);
- d->alt_down = true;
-
- // Repaint all relevant widgets
- for (int pos = 0; pos < l.size(); ++pos)
- l.at(pos)->update();
- }
- break;
- case QEvent::KeyRelease:
- if (static_cast<QKeyEvent*>(e)->key() == Qt::Key_Alt) {
- widget = widget->window();
-
- // Update state and repaint the menu bars.
- d->alt_down = false;
-#if 0 && QT_CONFIG(menubar)
- QList<QMenuBar *> l = widget->findChildren<QMenuBar *>();
- for (int i = 0; i < l.size(); ++i)
- l.at(i)->update();
-#endif
- }
- break;
- case QEvent::Close:
- // Reset widget when closing
- d->seenAlt.removeAll(widget);
- d->seenAlt.removeAll(widget->window());
- break;
- default:
- break;
- }
- return QCommonStyle::eventFilter(o, e);
-}
-#endif
-
-/*!
- \class QWindowsStyle
- \brief The QWindowsStyle class provides a Microsoft Windows-like look and feel.
-
- \ingroup appearance
- \inmodule QtWidgets
- \internal
-
- This style is Qt's default GUI style on Windows.
-
- \image qwindowsstyle.png
- \sa QWindowsVistaStyle, QMacStyle, QFusionStyle
-*/
-
-/*!
- Constructs a QWindowsStyle object.
-*/
-QWindowsStyle::QWindowsStyle() : QCommonStyle(*new QWindowsStylePrivate)
-{
-}
-
-/*!
- \internal
-
- Constructs a QWindowsStyle object.
-*/
-QWindowsStyle::QWindowsStyle(QWindowsStylePrivate &dd) : QCommonStyle(dd)
-{
-}
-
-
-/*! Destroys the QWindowsStyle object. */
-QWindowsStyle::~QWindowsStyle()
-{
-}
-
-#ifdef Q_OS_WIN
-static inline QRgb colorref2qrgb(COLORREF col)
-{
- return qRgb(GetRValue(col), GetGValue(col), GetBValue(col));
-}
-#endif
-#if 0
-/*! \reimp */
-void QWindowsStyle::polish(QApplication *app)
-{
- QCommonStyle::polish(app);
- QWindowsStylePrivate *d = const_cast<QWindowsStylePrivate*>(d_func());
- // We only need the overhead when shortcuts are sometimes hidden
- if (!proxy()->styleHint(SH_UnderlineShortcut, nullptr) && app)
- app->installEventFilter(this);
-
- const auto &palette = QGuiApplication::palette();
- d->activeGradientCaptionColor = palette.highlight().color();
- d->activeCaptionColor = d->activeGradientCaptionColor;
- d->inactiveGradientCaptionColor = palette.dark().color();
- d->inactiveCaptionColor = d->inactiveGradientCaptionColor;
- d->inactiveCaptionText = palette.window().color();
-
-#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) //fetch native title bar colors
- if (app->desktopSettingsAware()){
- DWORD activeCaption = GetSysColor(COLOR_ACTIVECAPTION);
- DWORD gradientActiveCaption = GetSysColor(COLOR_GRADIENTACTIVECAPTION);
- DWORD inactiveCaption = GetSysColor(COLOR_INACTIVECAPTION);
- DWORD gradientInactiveCaption = GetSysColor(COLOR_GRADIENTINACTIVECAPTION);
- DWORD inactiveCaptionText = GetSysColor(COLOR_INACTIVECAPTIONTEXT);
- d->activeCaptionColor = colorref2qrgb(activeCaption);
- d->activeGradientCaptionColor = colorref2qrgb(gradientActiveCaption);
- d->inactiveCaptionColor = colorref2qrgb(inactiveCaption);
- d->inactiveGradientCaptionColor = colorref2qrgb(gradientInactiveCaption);
- d->inactiveCaptionText = colorref2qrgb(inactiveCaptionText);
- }
-#endif
-}
-
-/*! \reimp */
-void QWindowsStyle::unpolish(QApplication *app)
-{
- QCommonStyle::unpolish(app);
- app->removeEventFilter(this);
-}
-
-/*! \reimp */
-void QWindowsStyle::polish(QWidget *widget)
-{
- QCommonStyle::polish(widget);
-}
-
-/*! \reimp */
-void QWindowsStyle::unpolish(QWidget *widget)
-{
- QCommonStyle::unpolish(widget);
-}
-
-/*!
- \reimp
-*/
-void QWindowsStyle::polish(QPalette &pal)
-{
- QCommonStyle::polish(pal);
-}
-#endif
-
-int QWindowsStylePrivate::pixelMetricFromSystemDp(QStyle::PixelMetric pm, const QStyleOption *opt)
-{
-#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT)
- switch (pm) {
- case QStyle::PM_DockWidgetFrameWidth:
- return GetSystemMetrics(SM_CXFRAME);
-
- case QStyle::PM_TitleBarHeight:
- Q_ASSERT(opt);
- if (const QStyleOptionTitleBar *tb = qstyleoption_cast<const QStyleOptionTitleBar *>(opt)) {
- if ((tb->titleBarFlags & Qt::WindowType_Mask) == Qt::Tool) {
- // MS always use one less than they say
- return GetSystemMetrics(SM_CYSMCAPTION) - 1;
- }
- }
- return GetSystemMetrics(SM_CYCAPTION) - 1;
-
- case QStyle::PM_ScrollBarExtent:
- {
- NONCLIENTMETRICS ncm;
- ncm.cbSize = FIELD_OFFSET(NONCLIENTMETRICS, lfMessageFont) + sizeof(LOGFONT);
- if (SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0))
- return qMax(ncm.iScrollHeight, ncm.iScrollWidth);
- }
- break;
-
- case QStyle::PM_MdiSubWindowFrameWidth:
- return GetSystemMetrics(SM_CYFRAME);
-
- default:
- break;
- }
-#else // Q_OS_WIN && !Q_OS_WINRT
- Q_UNUSED(pm);
- Q_UNUSED(widget);
-#endif
- return QWindowsStylePrivate::InvalidMetric;
-}
-
-int QWindowsStylePrivate::fixedPixelMetric(QStyle::PixelMetric pm)
-{
- switch (pm) {
- case QStyle::PM_ToolBarItemSpacing:
- return 0;
- case QStyle::PM_ButtonDefaultIndicator:
- case QStyle::PM_ButtonShiftHorizontal:
- case QStyle::PM_ButtonShiftVertical:
- case QStyle::PM_MenuHMargin:
- case QStyle::PM_MenuVMargin:
- case QStyle::PM_ToolBarItemMargin:
- return 1;
- case QStyle::PM_DockWidgetSeparatorExtent:
- return 4;
-#if 0 && QT_CONFIG(tabbar)
- case QStyle::PM_TabBarTabShiftHorizontal:
- return 0;
- case QStyle::PM_TabBarTabShiftVertical:
- return 2;
-#endif
-
- case QStyle::PM_SliderLength:
- return 11;
-
-#if 0 && QT_CONFIG(menu)
- case QStyle::PM_MenuBarHMargin:
- case QStyle::PM_MenuBarVMargin:
- case QStyle::PM_MenuBarPanelWidth:
- return 0;
- case QStyle::PM_SmallIconSize:
- return 16;
- case QStyle::PM_LargeIconSize:
- return 32;
- case QStyle::PM_DockWidgetTitleMargin:
- return 2;
- case QStyle::PM_DockWidgetTitleBarButtonMargin:
- case QStyle::PM_DockWidgetFrameWidth:
- return 4;
-
-#endif // QT_CONFIG(menu)
- case QStyle::PM_ToolBarHandleExtent:
- return 10;
- default:
- break;
- }
- return QWindowsStylePrivate::InvalidMetric;
-}
-
-static QScreen *screenOf(const QWindow *w)
-{
- if (w) {
- if (auto screen = w->screen())
- return screen;
- }
- return QGuiApplication::primaryScreen();
-}
-
-// Calculate the overall scale factor to obtain Qt Device Independent
-// Pixels from a native Windows size. Divide by devicePixelRatio
-// and account for secondary screens with differing logical DPI.
-qreal QWindowsStylePrivate::nativeMetricScaleFactor(const QStyleOption *opt)
-{
- Q_ASSERT(opt);
- const QWindow *win = opt->window;
- return nativeMetricScaleFactor(win);
-}
-
-qreal QWindowsStylePrivate::nativeMetricScaleFactor(const QWindow *win)
-{
- qreal result = qreal(1) / QWindowsStylePrivate::devicePixelRatio(win);
- if (QGuiApplicationPrivate::screen_list.size() > 1) {
- const QScreen *primaryScreen = QGuiApplication::primaryScreen();
- const QScreen *screen = screenOf(win);
- if (screen != primaryScreen) {
- const qreal primaryLogicalDpi = primaryScreen->handle()->logicalDpi().first;
- const qreal logicalDpi = screen->handle()->logicalDpi().first;
- if (!qFuzzyCompare(primaryLogicalDpi, logicalDpi))
- result *= logicalDpi / primaryLogicalDpi;
- }
- }
- return result;
-}
-
-/*!
- \reimp
-*/
-int QWindowsStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt) const
-{
- int ret = QWindowsStylePrivate::pixelMetricFromSystemDp(pm, opt);
- if (ret != QWindowsStylePrivate::InvalidMetric)
- return qRound(qreal(ret) * QWindowsStylePrivate::nativeMetricScaleFactor(opt));
-
- ret = QWindowsStylePrivate::fixedPixelMetric(pm);
- if (ret != QWindowsStylePrivate::InvalidMetric)
- return int(QStyleHelper::dpiScaled(ret, opt));
-
- ret = 0;
-
- switch (pm) {
- case PM_MaximumDragDistance:
- ret = QCommonStyle::pixelMetric(PM_MaximumDragDistance);
- if (ret == -1)
- ret = 60;
- break;
-
- // Returns the number of pixels to use for the business part of the
- // slider (i.e., the non-tickmark portion). The remaining space is shared
- // equally between the tickmark regions.
- case PM_SliderControlThickness:
- if (const QStyleOptionSlider *sl = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- int space = (sl->orientation == Qt::Horizontal) ? sl->rect.height() : sl->rect.width();
- int ticks = sl->tickPosition;
- int n = 0;
- if (ticks & QStyleOptionSlider::TicksAbove)
- ++n;
- if (ticks & QStyleOptionSlider::TicksBelow)
- ++n;
- if (!n) {
- ret = space;
- break;
- }
-
- int thick = 6; // Magic constant to get 5 + 16 + 5
- if (ticks != QStyleOptionSlider::TicksBothSides && ticks != QStyleOptionSlider::NoTicks)
- thick += proxy()->pixelMetric(PM_SliderLength, sl) / 4;
-
- space -= thick;
- if (space > 0)
- thick += (space * 2) / (n + 2);
- ret = thick;
- }
- break;
-
- case PM_IconViewIconSize:
- ret = proxy()->pixelMetric(PM_LargeIconSize, opt);
- break;
-
- case PM_SplitterWidth:
- ret = int(QStyleHelper::dpiScaled(4, opt));
- break;
-
- default:
- ret = QCommonStyle::pixelMetric(pm, opt);
- break;
- }
-
- return ret;
-}
-
-/*!
- \reimp
- */
-QPixmap QWindowsStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt) const
-{
-#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT)
- QPixmap desktopIcon;
- switch (standardPixmap) {
- case SP_DriveCDIcon:
- case SP_DriveDVDIcon:
- case SP_DriveNetIcon:
- case SP_DriveHDIcon:
- case SP_DriveFDIcon:
- case SP_FileIcon:
- case SP_FileLinkIcon:
- case SP_DirLinkIcon:
- case SP_DirClosedIcon:
- case SP_DesktopIcon:
- case SP_ComputerIcon:
- case SP_DirOpenIcon:
- case SP_FileDialogNewFolder:
- case SP_DirHomeIcon:
- case SP_TrashIcon:
- case SP_VistaShield:
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
- QPlatformTheme::StandardPixmap sp = static_cast<QPlatformTheme::StandardPixmap>(standardPixmap);
- desktopIcon = theme->standardPixmap(sp, QSizeF(16, 16));
- }
- break;
- case SP_MessageBoxInformation:
- case SP_MessageBoxWarning:
- case SP_MessageBoxCritical:
- case SP_MessageBoxQuestion:
- if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
- QPlatformTheme::StandardPixmap sp = static_cast<QPlatformTheme::StandardPixmap>(standardPixmap);
- desktopIcon = theme->standardPixmap(sp, QSizeF());
- }
- break;
- default:
- break;
- }
- if (!desktopIcon.isNull()) {
- return desktopIcon;
- }
-#endif // Q_OS_WIN && !Q_OS_WINRT
- return QCommonStyle::standardPixmap(standardPixmap, opt);
-}
-
-/*! \reimp */
-int QWindowsStyle::styleHint(StyleHint hint, const QStyleOption *opt,
- QStyleHintReturn *returnData) const
-{
- int ret = 0;
-
- switch (hint) {
- case SH_EtchDisabledText:
- ret = d_func()->isDarkMode() ? 0 : 1;
- break;
- case SH_Slider_SnapToValue:
- case SH_PrintDialog_RightAlignButtons:
- case SH_FontDialog_SelectAssociatedText:
- case SH_Menu_AllowActiveAndDisabled:
- case SH_MenuBar_AltKeyNavigation:
- case SH_MenuBar_MouseTracking:
- case SH_Menu_MouseTracking:
- case SH_ComboBox_ListMouseTracking:
- case SH_Slider_StopMouseOverSlider:
- case SH_MainWindow_SpaceBelowMenuBar:
- ret = 1;
-
- break;
- case SH_ItemView_ShowDecorationSelected:
-#if 0 && QT_CONFIG(listview)
- if (qobject_cast<const QListView*>(widget))
- ret = 1;
-#endif
- break;
- case SH_ItemView_ChangeHighlightOnFocus:
- ret = 1;
- break;
- case SH_ToolBox_SelectedPageTitleBold:
- ret = 0;
- break;
-
-#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) // Option not used on WinRT -> common style
- case SH_UnderlineShortcut:
- {
- ret = 1;
- BOOL cues = false;
- SystemParametersInfo(SPI_GETKEYBOARDCUES, 0, &cues, 0);
- ret = int(cues);
- // Do nothing if we always paint underlines
- Q_D(const QWindowsStyle);
- if (!ret && d) {
-#if 0 && QT_CONFIG(menubar)
- const QMenuBar *menuBar = qobject_cast<const QMenuBar *>(widget);
- if (!menuBar && qobject_cast<const QMenu *>(widget)) {
- QWidget *w = QApplication::activeWindow();
- if (w && w != widget)
- menuBar = w->findChild<QMenuBar *>();
- }
- // If we paint a menu bar draw underlines if is in the keyboardState
- if (menuBar) {
- if (menuBar->d_func()->keyboardState || d->altDown())
- ret = 1;
- // Otherwise draw underlines if the toplevel widget has seen an alt-press
- } else
-#endif // QT_CONFIG(menubar)
-// if (d->hasSeenAlt(widget)) {
-// ret = 1;
-// }
- }
-#ifndef QT_NO_ACCESSIBILITY
- if (!ret && opt && opt->type == QStyleOption::SO_MenuItem
- && QStyleHelper::isInstanceOf(opt->styleObject, QAccessible::MenuItem)
- && opt->styleObject->property("_q_showUnderlined").toBool())
- ret = 1;
-#endif // QT_NO_ACCESSIBILITY
- break;
- }
-#endif // Q_OS_WIN && !Q_OS_WINRT
- case SH_Menu_SubMenuSloppyCloseTimeout:
- case SH_Menu_SubMenuPopupDelay: {
-#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT)
- DWORD delay;
- if (SystemParametersInfo(SPI_GETMENUSHOWDELAY, 0, &delay, 0))
- ret = delay;
- else
-#endif // Q_OS_WIN && !Q_OS_WINRT
- ret = 400;
- break;
- }
-#if 0 && QT_CONFIG(rubberband)
- case SH_RubberBand_Mask:
- if (const QStyleOptionRubberBand *rbOpt = qstyleoption_cast<const QStyleOptionRubberBand *>(opt)) {
- ret = 0;
- if (rbOpt->shape == QRubberBand::Rectangle) {
- ret = true;
- if (QStyleHintReturnMask *mask = qstyleoption_cast<QStyleHintReturnMask*>(returnData)) {
- mask->region = opt->rect;
- int size = 1;
- if (widget && widget->isWindow())
- size = 4;
- mask->region -= opt->rect.adjusted(size, size, -size, -size);
- }
- }
- }
- break;
-#endif // QT_CONFIG(rubberband)
-#if 0 && QT_CONFIG(wizard)
- case SH_WizardStyle:
- ret = QWizard::ModernStyle;
- break;
-#endif
- case SH_ItemView_ArrowKeysNavigateIntoChildren:
- ret = true;
- break;
- case SH_DialogButtonBox_ButtonsHaveIcons:
- ret = 0;
- break;
- default:
- ret = QCommonStyle::styleHint(hint, opt, returnData);
- break;
- }
- return ret;
-}
-
-/*! \reimp */
-void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p) const
-{
- // Used to restore across fallthrough cases. Currently only used in PE_IndicatorCheckBox
- bool doRestore = false;
-
- switch (pe) {
-#if 0 && QT_CONFIG(toolbar)
- case PE_IndicatorToolBarSeparator:
- {
- QRect rect = opt->rect;
- const int margin = 2;
- QPen oldPen = p->pen();
- if (opt->state & State_Horizontal){
- const int offset = rect.width()/2;
- p->setPen(QPen(opt->palette.dark().color()));
- p->drawLine(rect.bottomLeft().x() + offset,
- rect.bottomLeft().y() - margin,
- rect.topLeft().x() + offset,
- rect.topLeft().y() + margin);
- p->setPen(QPen(opt->palette.light().color()));
- p->drawLine(rect.bottomLeft().x() + offset + 1,
- rect.bottomLeft().y() - margin,
- rect.topLeft().x() + offset + 1,
- rect.topLeft().y() + margin);
- }
- else{ //Draw vertical separator
- const int offset = rect.height()/2;
- p->setPen(QPen(opt->palette.dark().color()));
- p->drawLine(rect.topLeft().x() + margin ,
- rect.topLeft().y() + offset,
- rect.topRight().x() - margin,
- rect.topRight().y() + offset);
- p->setPen(QPen(opt->palette.light().color()));
- p->drawLine(rect.topLeft().x() + margin ,
- rect.topLeft().y() + offset + 1,
- rect.topRight().x() - margin,
- rect.topRight().y() + offset + 1);
- }
- p->setPen(oldPen);
- }
- break;
- case PE_IndicatorToolBarHandle:
- p->save();
- p->translate(opt->rect.x(), opt->rect.y());
- if (opt->state & State_Horizontal) {
- int x = opt->rect.width() / 2 - 4;
- if (opt->direction == Qt::RightToLeft)
- x -= 2;
- if (opt->rect.height() > 4) {
- qDrawShadePanel(p, x, 2, 3, opt->rect.height() - 4,
- opt->palette, false, 1, nullptr);
- qDrawShadePanel(p, x + 3, 2, 3, opt->rect.height() - 4,
- opt->palette, false, 1, nullptr);
- }
- } else {
- if (opt->rect.width() > 4) {
- int y = opt->rect.height() / 2 - 4;
- qDrawShadePanel(p, 2, y, opt->rect.width() - 4, 3,
- opt->palette, false, 1, nullptr);
- qDrawShadePanel(p, 2, y + 3, opt->rect.width() - 4, 3,
- opt->palette, false, 1, nullptr);
- }
- }
- p->restore();
- break;
-
-#endif // QT_CONFIG(toolbar)
- case PE_FrameButtonTool:
- case PE_PanelButtonTool: {
- QPen oldPen = p->pen();
-#if 0 && QT_CONFIG(dockwidget)
- if (w && w->inherits("QDockWidgetTitleButton")) {
- if (const QWidget *dw = w->parentWidget())
- if (dw->isWindow()){
- qDrawWinButton(p, opt->rect.adjusted(1, 1, 0, 0), opt->palette, opt->state & (State_Sunken | State_On),
- &opt->palette.button());
-
- return;
- }
- }
-#endif // QT_CONFIG(dockwidget)
- QBrush fill;
- bool stippled;
- bool panel = (pe == PE_PanelButtonTool);
- if ((!(opt->state & State_Sunken ))
- && (!(opt->state & State_Enabled)
- || !(opt->state & State_MouseOver && opt->state & State_AutoRaise))
- && (opt->state & State_On)) {
- fill = QBrush(opt->palette.light().color(), Qt::Dense4Pattern);
- stippled = true;
- } else {
- fill = opt->palette.brush(QPalette::Button);
- stippled = false;
- }
-
- if (opt->state & (State_Raised | State_Sunken | State_On)) {
- if (opt->state & State_AutoRaise) {
- if (opt->state & (State_Enabled | State_Sunken | State_On)){
- if (panel)
- qDrawShadePanel(p, opt->rect, opt->palette,
- opt->state & (State_Sunken | State_On), 1, &fill);
- else
- qDrawShadeRect(p, opt->rect, opt->palette,
- opt->state & (State_Sunken | State_On), 1);
- }
- if (stippled) {
- p->setPen(opt->palette.button().color());
- p->drawRect(opt->rect.adjusted(1,1,-2,-2));
- }
- } else {
- qDrawWinButton(p, opt->rect, opt->palette,
- opt->state & (State_Sunken | State_On), panel ? &fill : nullptr);
- }
- } else {
- p->fillRect(opt->rect, fill);
- }
- p->setPen(oldPen);
- break; }
- case PE_PanelButtonCommand:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- QBrush fill;
- State flags = opt->state;
- QPalette pal = opt->palette;
- QRect r = opt->rect;
- if (! (flags & State_Sunken) && (flags & State_On))
- fill = QBrush(pal.light().color(), Qt::Dense4Pattern);
- else
- fill = pal.brush(QPalette::Button);
-
- if (btn->features & QStyleOptionButton::DefaultButton && flags & State_Sunken) {
- p->setPen(pal.dark().color());
- p->setBrush(fill);
- p->drawRect(r.adjusted(0, 0, -1, -1));
- } else if (flags & (State_Raised | State_On | State_Sunken)) {
- qDrawWinButton(p, r, pal, flags & (State_Sunken | State_On),
- &fill);
- } else {
- p->fillRect(r, fill);
- }
- }
- break;
- case PE_FrameDefaultButton: {
- QPen oldPen = p->pen();
- p->setPen(QPen(opt->palette.shadow().color(), 0));
- QRectF rect = opt->rect;
- const qreal dpi = QStyleHelper::dpi(opt);
- const qreal topLevelAdjustment = QStyleHelper::dpiScaled(0.5, dpi);
- const qreal bottomRightAdjustment = QStyleHelper::dpiScaled(-1.5, dpi);
- rect.adjust(topLevelAdjustment, topLevelAdjustment,
- bottomRightAdjustment, bottomRightAdjustment);
- p->drawRect(rect);
- p->setPen(oldPen);
- break;
- }
- case PE_IndicatorCheckBox: {
- QBrush fill;
- if (opt->state & State_NoChange)
- fill = QBrush(opt->palette.base().color(), Qt::Dense4Pattern);
- else if (opt->state & State_Sunken)
- fill = opt->palette.button();
- else if (opt->state & State_Enabled)
- fill = opt->palette.base();
- else
- fill = opt->palette.window();
- p->save();
- doRestore = true;
- qDrawWinPanel(p, opt->rect, opt->palette, true, &fill);
- if (opt->state & State_NoChange)
- p->setPen(opt->palette.dark().color());
- else
- p->setPen(opt->palette.text().color());
- }
- Q_FALLTHROUGH();
- case PE_IndicatorItemViewItemCheck:
- if (!doRestore) {
- p->save();
- doRestore = true;
- }
-#if 0 && QT_CONFIG(itemviews)
- if (pe == PE_IndicatorItemViewItemCheck) {
- const QStyleOptionViewItem *itemViewOpt = qstyleoption_cast<const QStyleOptionViewItem *>(opt);
- p->setPen(itemViewOpt
- && itemViewOpt->showDecorationSelected
- && opt->state & State_Selected
- ? opt->palette.highlightedText().color()
- : opt->palette.text().color());
- if (opt->state & State_NoChange)
- p->setBrush(opt->palette.brush(QPalette::Button));
- p->drawRect(opt->rect.x() + 1, opt->rect.y() + 1, opt->rect.width() - 2, opt->rect.height() - 2);
- }
-#endif // QT_CONFIG(itemviews)
- if (!(opt->state & State_Off)) {
- QPointF points[6];
- qreal scaleh = opt->rect.width() / 12.0;
- qreal scalev = opt->rect.height() / 12.0;
- points[0] = { opt->rect.x() + 3.5 * scaleh, opt->rect.y() + 5.5 * scalev };
- points[1] = { points[0].x(), points[0].y() + 2 * scalev };
- points[2] = { points[1].x() + 2 * scaleh, points[1].y() + 2 * scalev };
- points[3] = { points[2].x() + 4 * scaleh, points[2].y() - 4 * scalev };
- points[4] = { points[3].x(), points[3].y() - 2 * scalev };
- points[5] = { points[4].x() - 4 * scaleh, points[4].y() + 4 * scalev };
- p->setPen(QPen(opt->palette.text().color(), 0));
- p->setBrush(opt->palette.text().color());
- p->drawPolygon(points, 6);
- }
- if (doRestore)
- p->restore();
- break;
- case PE_FrameFocusRect:
- if (const QStyleOptionFocusRect *fropt = qstyleoption_cast<const QStyleOptionFocusRect *>(opt)) {
- //### check for d->alt_down
- if (!(fropt->state & State_KeyboardFocusChange) && !proxy()->styleHint(SH_UnderlineShortcut, opt))
- return;
- QRect r = opt->rect;
- p->save();
- p->setBackgroundMode(Qt::TransparentMode);
- QColor bg_col = fropt->backgroundColor;
- if (!bg_col.isValid())
- bg_col = p->background().color();
- // Create an "XOR" color.
- QColor patternCol((bg_col.red() ^ 0xff) & 0xff,
- (bg_col.green() ^ 0xff) & 0xff,
- (bg_col.blue() ^ 0xff) & 0xff);
- p->setBrush(QBrush(patternCol, Qt::Dense4Pattern));
- p->setBrushOrigin(r.topLeft());
- p->setPen(Qt::NoPen);
- p->drawRect(r.left(), r.top(), r.width(), 1); // Top
- p->drawRect(r.left(), r.bottom(), r.width(), 1); // Bottom
- p->drawRect(r.left(), r.top(), 1, r.height()); // Left
- p->drawRect(r.right(), r.top(), 1, r.height()); // Right
- p->restore();
- }
- break;
- case PE_IndicatorRadioButton:
- {
- QRect r = opt->rect;
- p->save();
- p->setRenderHint(QPainter::Antialiasing, true);
-
- QPointF circleCenter = r.center() + QPoint(1, 1);
- qreal radius = (r.width() + (r.width() + 1) % 2) / 2.0 - 1;
-
- QPainterPath path1;
- path1.addEllipse(circleCenter, radius, radius);
- radius *= 0.85;
- QPainterPath path2;
- path2.addEllipse(circleCenter, radius, radius);
- radius *= 0.85;
- QPainterPath path3;
- path3.addEllipse(circleCenter, radius, radius);
- radius *= 0.5;
- QPainterPath path4;
- path4.addEllipse(circleCenter, radius, radius);
-
- QPolygon topLeftPol, bottomRightPol;
- topLeftPol.setPoints(3, r.x(), r.y(), r.x(), r.y() + r.height(), r.x() + r.width(), r.y());
- bottomRightPol.setPoints(3, r.x(), r.y() + r.height(), r.x() + r.width(), r.y() + r.height(), r.x() + r.width(), r.y());
-
- p->setClipRegion(QRegion(topLeftPol));
- p->setPen(opt->palette.dark().color());
- p->setBrush(opt->palette.dark().color());
- p->drawPath(path1);
- p->setPen(opt->palette.shadow().color());
- p->setBrush(opt->palette.shadow().color());
- p->drawPath(path2);
-
- p->setClipRegion(QRegion(bottomRightPol));
- p->setPen(opt->palette.light().color());
- p->setBrush(opt->palette.light().color());
- p->drawPath(path1);
- p->setPen(opt->palette.midlight().color());
- p->setBrush(opt->palette.midlight().color());
- p->drawPath(path2);
-
- QColor fillColor = ((opt->state & State_Sunken) || !(opt->state & State_Enabled)) ?
- opt->palette.button().color() : opt->palette.base().color();
-
- p->setClipping(false);
- p->setPen(fillColor);
- p->setBrush(fillColor);
- p->drawPath(path3);
-
- if (opt->state & State_On) {
- p->setPen(opt->palette.text().color());
- p->setBrush(opt->palette.text());
- p->drawPath(path4);
- }
- p->restore();
- break;
- }
-#ifndef QT_NO_FRAME
- case PE_Frame:
- case PE_FrameMenu:
- if (const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- if (frame->lineWidth == 2 || pe == PE_Frame) {
- QPalette popupPal = frame->palette;
- if (pe == PE_FrameMenu) {
- popupPal.setColor(QPalette::Light, frame->palette.window().color());
- popupPal.setColor(QPalette::Midlight, frame->palette.light().color());
- }
- if (pe == PE_Frame && (frame->state & State_Raised))
- qDrawWinButton(p, frame->rect, popupPal, frame->state & State_Sunken);
- else if (pe == PE_Frame && (frame->state & State_Sunken))
- {
- popupPal.setColor(QPalette::Midlight, frame->palette.window().color());
- qDrawWinPanel(p, frame->rect, popupPal, frame->state & State_Sunken);
- }
- else
- qDrawWinPanel(p, frame->rect, popupPal, frame->state & State_Sunken);
- } else {
- QCommonStyle::drawPrimitive(pe, opt, p);
- }
- } else {
- QPalette popupPal = opt->palette;
- popupPal.setColor(QPalette::Light, opt->palette.window().color());
- popupPal.setColor(QPalette::Midlight, opt->palette.light().color());
- qDrawWinPanel(p, opt->rect, popupPal, opt->state & State_Sunken);
- }
- break;
-#endif // QT_NO_FRAME
- case PE_FrameButtonBevel:
- case PE_PanelButtonBevel: {
- QBrush fill;
- bool panel = pe != PE_FrameButtonBevel;
- p->setBrushOrigin(opt->rect.topLeft());
- if (!(opt->state & State_Sunken) && (opt->state & State_On))
- fill = QBrush(opt->palette.light().color(), Qt::Dense4Pattern);
- else
- fill = opt->palette.brush(QPalette::Button);
-
- if (opt->state & (State_Raised | State_On | State_Sunken)) {
- qDrawWinButton(p, opt->rect, opt->palette, opt->state & (State_Sunken | State_On),
- panel ? &fill : nullptr);
- } else {
- if (panel)
- p->fillRect(opt->rect, fill);
- else
- p->drawRect(opt->rect);
- }
- break; }
- case PE_FrameWindow: {
- QPalette popupPal = opt->palette;
- popupPal.setColor(QPalette::Light, opt->palette.window().color());
- popupPal.setColor(QPalette::Midlight, opt->palette.light().color());
- qDrawWinPanel(p, opt->rect, popupPal, opt->state & State_Sunken);
- break; }
-#if 0 && QT_CONFIG(dockwidget)
- case PE_IndicatorDockWidgetResizeHandle:
- break;
- case PE_FrameDockWidget:
- if (qstyleoption_cast<const QStyleOptionFrame *>(opt)) {
- proxy()->drawPrimitive(QStyle::PE_FrameWindow, opt, p, w);
- }
- break;
-#endif // QT_CONFIG(dockwidget)
-
- case PE_FrameStatusBarItem:
- qDrawShadePanel(p, opt->rect, opt->palette, true, 1, nullptr);
- break;
-
- case PE_IndicatorProgressChunk:
- {
- bool vertical = false, inverted = false;
- if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(opt)) {
- vertical = !(pb->state & QStyle::State_Horizontal);
- inverted = pb->invertedAppearance;
- }
-
- int space = 2;
- int chunksize = proxy()->pixelMetric(PM_ProgressBarChunkWidth, opt) - space;
- if (!vertical) {
- if (opt->rect.width() <= chunksize)
- space = 0;
-
- if (inverted)
- p->fillRect(opt->rect.x() + space, opt->rect.y(), opt->rect.width() - space, opt->rect.height(),
- opt->palette.brush(QPalette::Highlight));
- else
- p->fillRect(opt->rect.x(), opt->rect.y(), opt->rect.width() - space, opt->rect.height(),
- opt->palette.brush(QPalette::Highlight));
- } else {
- if (opt->rect.height() <= chunksize)
- space = 0;
-
- if (inverted)
- p->fillRect(opt->rect.x(), opt->rect.y(), opt->rect.width(), opt->rect.height() - space,
- opt->palette.brush(QPalette::Highlight));
- else
- p->fillRect(opt->rect.x(), opt->rect.y() + space, opt->rect.width(), opt->rect.height() - space,
- opt->palette.brush(QPalette::Highlight));
- }
- }
- break;
-
- case PE_FrameTabWidget: {
- qDrawWinButton(p, opt->rect, opt->palette, false, nullptr);
- break;
- }
- default:
- QCommonStyle::drawPrimitive(pe, opt, p);
- }
-}
-
-/*! \reimp */
-void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter *p) const
-{
- switch (ce) {
-#if 0 && QT_CONFIG(rubberband)
- case CE_RubberBand:
- if (qstyleoption_cast<const QStyleOptionRubberBand *>(opt)) {
- // ### workaround for slow general painter path
- QPixmap tiledPixmap(16, 16);
- QPainter pixmapPainter(&tiledPixmap);
- pixmapPainter.setPen(Qt::NoPen);
- pixmapPainter.setBrush(Qt::Dense4Pattern);
- pixmapPainter.setBackground(Qt::white);
- pixmapPainter.setBackgroundMode(Qt::OpaqueMode);
- pixmapPainter.drawRect(0, 0, tiledPixmap.width(), tiledPixmap.height());
- pixmapPainter.end();
- tiledPixmap = QPixmap::fromImage(tiledPixmap.toImage());
- p->save();
- QRect r = opt->rect;
- QStyleHintReturnMask mask;
- if (proxy()->styleHint(QStyle::SH_RubberBand_Mask, opt, widget, &mask))
- p->setClipRegion(mask.region);
- p->drawTiledPixmap(r.x(), r.y(), r.width(), r.height(), tiledPixmap);
- p->restore();
- return;
- }
- break;
-#endif // QT_CONFIG(rubberband)
-
-#if 0 && QT_CONFIG(menu) && QT_CONFIG(mainwindow)
- case CE_MenuBarEmptyArea:
- if (widget && qobject_cast<const QMainWindow *>(widget->parentWidget())) {
- p->fillRect(opt->rect, opt->palette.button());
- QPen oldPen = p->pen();
- p->setPen(QPen(opt->palette.dark().color()));
- p->drawLine(opt->rect.bottomLeft(), opt->rect.bottomRight());
- p->setPen(oldPen);
- }
- break;
-#endif
-#if 0 && QT_CONFIG(menu)
- case CE_MenuItem:
- if (const QStyleOptionMenuItem *menuitem = qstyleoption_cast<const QStyleOptionMenuItem *>(opt)) {
- int x, y, w, h;
- menuitem->rect.getRect(&x, &y, &w, &h);
- int tab = menuitem->tabWidth;
- bool dis = !(menuitem->state & State_Enabled);
- bool checked = menuitem->checkType != QStyleOptionMenuItem::NotCheckable
- ? menuitem->checked : false;
- bool act = menuitem->state & State_Selected;
-
- // windows always has a check column, regardless whether we have an icon or not
- int checkcol = qMax<int>(menuitem->maxIconWidth, QWindowsStylePrivate::windowsCheckMarkWidth);
-
- QBrush fill = menuitem->palette.brush(act ? QPalette::Highlight : QPalette::Button);
- p->fillRect(menuitem->rect.adjusted(0, 0, -1, 0), fill);
-
- if (menuitem->menuItemType == QStyleOptionMenuItem::Separator){
- int yoff = y-1 + h / 2;
- p->setPen(menuitem->palette.dark().color());
- p->drawLine(x + 2, yoff, x + w - 4, yoff);
- p->setPen(menuitem->palette.light().color());
- p->drawLine(x + 2, yoff + 1, x + w - 4, yoff + 1);
- return;
- }
-
- QRect vCheckRect = visualRect(opt->direction, menuitem->rect, QRect(menuitem->rect.x(), menuitem->rect.y(), checkcol, menuitem->rect.height()));
- if (!menuitem->icon.isNull() && checked) {
- if (act) {
- qDrawShadePanel(p, vCheckRect,
- menuitem->palette, true, 1,
- &menuitem->palette.brush(QPalette::Button));
- } else {
- QBrush fill(menuitem->palette.light().color(), Qt::Dense4Pattern);
- qDrawShadePanel(p, vCheckRect, menuitem->palette, true, 1, &fill);
- }
- } else if (!act) {
- p->fillRect(vCheckRect, menuitem->palette.brush(QPalette::Button));
- }
-
- // On Windows Style, if we have a checkable item and an icon we
- // draw the icon recessed to indicate an item is checked. If we
- // have no icon, we draw a checkmark instead.
- if (!menuitem->icon.isNull()) {
- QIcon::Mode mode = dis ? QIcon::Disabled : QIcon::Normal;
- if (act && !dis)
- mode = QIcon::Active;
- QPixmap pixmap;
- if (checked)
- pixmap = menuitem->icon.pixmap(proxy()->pixelMetric(PM_SmallIconSize, opt, widget), mode, QIcon::On);
- else
- pixmap = menuitem->icon.pixmap(proxy()->pixelMetric(PM_SmallIconSize, opt, widget), mode);
- const int pixw = pixmap.width() / pixmap.devicePixelRatio();
- const int pixh = pixmap.height() / pixmap.devicePixelRatio();
- QRect pmr(0, 0, pixw, pixh);
- pmr.moveCenter(vCheckRect.center());
- p->setPen(menuitem->palette.text().color());
- p->drawPixmap(pmr.topLeft(), pixmap);
- } else if (checked) {
- QStyleOptionMenuItem newMi = *menuitem;
- newMi.state = State_None;
- if (!dis)
- newMi.state |= State_Enabled;
- if (act)
- newMi.state |= State_On;
- newMi.rect = visualRect(opt->direction, menuitem->rect, QRect(menuitem->rect.x() + QWindowsStylePrivate::windowsItemFrame,
- menuitem->rect.y() + QWindowsStylePrivate::windowsItemFrame,
- checkcol - 2 * QWindowsStylePrivate::windowsItemFrame,
- menuitem->rect.height() - 2 * QWindowsStylePrivate::windowsItemFrame));
- proxy()->drawPrimitive(PE_IndicatorMenuCheckMark, &newMi, p, widget);
- }
- p->setPen(act ? menuitem->palette.highlightedText().color() : menuitem->palette.buttonText().color());
-
- QColor discol;
- if (dis) {
- discol = menuitem->palette.text().color();
- p->setPen(discol);
- }
-
- int xm = int(QWindowsStylePrivate::windowsItemFrame) + checkcol + int(QWindowsStylePrivate::windowsItemHMargin);
- int xpos = menuitem->rect.x() + xm;
- QRect textRect(xpos, y + QWindowsStylePrivate::windowsItemVMargin,
- w - xm - QWindowsStylePrivate::windowsRightBorder - tab + 1, h - 2 * QWindowsStylePrivate::windowsItemVMargin);
- QRect vTextRect = visualRect(opt->direction, menuitem->rect, textRect);
- QStringRef s(&menuitem->text);
- if (!s.isEmpty()) { // draw text
- p->save();
- int t = s.indexOf(QLatin1Char('\t'));
- int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine;
- if (!proxy()->styleHint(SH_UnderlineShortcut, menuitem, widget))
- text_flags |= Qt::TextHideMnemonic;
- text_flags |= Qt::AlignLeft;
- if (t >= 0) {
- QRect vShortcutRect = visualRect(opt->direction, menuitem->rect,
- QRect(textRect.topRight(), QPoint(menuitem->rect.right(), textRect.bottom())));
- const QString textToDraw = s.mid(t + 1).toString();
- if (dis && !act && proxy()->styleHint(SH_EtchDisabledText, opt, widget)) {
- p->setPen(menuitem->palette.light().color());
- p->drawText(vShortcutRect.adjusted(1, 1, 1, 1), text_flags, textToDraw);
- p->setPen(discol);
- }
- p->drawText(vShortcutRect, text_flags, textToDraw);
- s = s.left(t);
- }
- QFont font = menuitem->font;
- if (menuitem->menuItemType == QStyleOptionMenuItem::DefaultItem)
- font.setBold(true);
- p->setFont(font);
- const QString textToDraw = s.left(t).toString();
- if (dis && !act && proxy()->styleHint(SH_EtchDisabledText, opt, widget)) {
- p->setPen(menuitem->palette.light().color());
- p->drawText(vTextRect.adjusted(1, 1, 1, 1), text_flags, textToDraw);
- p->setPen(discol);
- }
- p->drawText(vTextRect, text_flags, textToDraw);
- p->restore();
- }
- if (menuitem->menuItemType == QStyleOptionMenuItem::SubMenu) {// draw sub menu arrow
- int dim = (h - 2 * QWindowsStylePrivate::windowsItemFrame) / 2;
- PrimitiveElement arrow;
- arrow = (opt->direction == Qt::RightToLeft) ? PE_IndicatorArrowLeft : PE_IndicatorArrowRight;
- xpos = x + w - QWindowsStylePrivate::windowsArrowHMargin - QWindowsStylePrivate::windowsItemFrame - dim;
- QRect vSubMenuRect = visualRect(opt->direction, menuitem->rect, QRect(xpos, y + h / 2 - dim / 2, dim, dim));
- QStyleOptionMenuItem newMI = *menuitem;
- newMI.rect = vSubMenuRect;
- newMI.state = dis ? State_None : State_Enabled;
- if (act)
- newMI.palette.setColor(QPalette::ButtonText,
- newMI.palette.highlightedText().color());
- proxy()->drawPrimitive(arrow, &newMI, p, widget);
- }
-
- }
- break;
-#endif // QT_CONFIG(menu)
-#if 0 && QT_CONFIG(menubar)
- case CE_MenuBarItem:
- if (const QStyleOptionMenuItem *mbi = qstyleoption_cast<const QStyleOptionMenuItem *>(opt)) {
- bool active = mbi->state & State_Selected;
- bool hasFocus = mbi->state & State_HasFocus;
- bool down = mbi->state & State_Sunken;
- QStyleOptionMenuItem newMbi = *mbi;
- p->fillRect(mbi->rect, mbi->palette.brush(QPalette::Button));
- if (active || hasFocus) {
- QBrush b = mbi->palette.brush(QPalette::Button);
- if (active && down)
- p->setBrushOrigin(p->brushOrigin() + QPoint(1, 1));
- if (active && hasFocus)
- qDrawShadeRect(p, mbi->rect.x(), mbi->rect.y(), mbi->rect.width(),
- mbi->rect.height(), mbi->palette, active && down, 1, 0, &b);
- if (active && down) {
- newMbi.rect.translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal, mbi, widget),
- proxy()->pixelMetric(PM_ButtonShiftVertical, mbi, widget));
- p->setBrushOrigin(p->brushOrigin() - QPoint(1, 1));
- }
- }
- QCommonStyle::drawControl(ce, &newMbi, p, widget);
- }
- break;
-#endif // QT_CONFIG(menubar)
-#if 0 && QT_CONFIG(tabbar)
- case CE_TabBarTabShape:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(opt)) {
- bool rtlHorTabs = (tab->direction == Qt::RightToLeft
- && (tab->shape == QTabBar::RoundedNorth
- || tab->shape == QTabBar::RoundedSouth));
- bool selected = tab->state & State_Selected;
- bool lastTab = ((!rtlHorTabs && tab->position == QStyleOptionTab::End)
- || (rtlHorTabs
- && tab->position == QStyleOptionTab::Beginning));
- bool firstTab = ((!rtlHorTabs
- && tab->position == QStyleOptionTab::Beginning)
- || (rtlHorTabs
- && tab->position == QStyleOptionTab::End));
- bool onlyOne = tab->position == QStyleOptionTab::OnlyOneTab;
- bool previousSelected =
- ((!rtlHorTabs
- && tab->selectedPosition == QStyleOptionTab::PreviousIsSelected)
- || (rtlHorTabs
- && tab->selectedPosition == QStyleOptionTab::NextIsSelected));
- bool nextSelected =
- ((!rtlHorTabs
- && tab->selectedPosition == QStyleOptionTab::NextIsSelected)
- || (rtlHorTabs
- && tab->selectedPosition
- == QStyleOptionTab::PreviousIsSelected));
- int tabBarAlignment = proxy()->styleHint(SH_TabBar_Alignment, tab, widget);
- bool leftAligned = (!rtlHorTabs && tabBarAlignment == Qt::AlignLeft)
- || (rtlHorTabs
- && tabBarAlignment == Qt::AlignRight);
-
- bool rightAligned = (!rtlHorTabs && tabBarAlignment == Qt::AlignRight)
- || (rtlHorTabs
- && tabBarAlignment == Qt::AlignLeft);
-
- QColor light = tab->palette.light().color();
- QColor dark = tab->palette.dark().color();
- QColor shadow = tab->palette.shadow().color();
- int borderThinkness = proxy()->pixelMetric(PM_TabBarBaseOverlap, tab, widget);
- if (selected)
- borderThinkness /= 2;
- QRect r2(opt->rect);
- int x1 = r2.left();
- int x2 = r2.right();
- int y1 = r2.top();
- int y2 = r2.bottom();
- switch (tab->shape) {
- default:
- QCommonStyle::drawControl(ce, tab, p, widget);
- break;
- case QTabBar::RoundedNorth: {
- if (!selected) {
- y1 += 2;
- x1 += onlyOne || firstTab ? borderThinkness : 0;
- x2 -= onlyOne || lastTab ? borderThinkness : 0;
- }
-
- p->fillRect(QRect(x1 + 1, y1 + 1, (x2 - x1) - 1, (y2 - y1) - 2), tab->palette.window());
-
- // Delete border
- if (selected) {
- p->fillRect(QRect(x1,y2-1,x2-x1,1), tab->palette.window());
- p->fillRect(QRect(x1,y2,x2-x1,1), tab->palette.window());
- }
- // Left
- if (firstTab || selected || onlyOne || !previousSelected) {
- p->setPen(light);
- p->drawLine(x1, y1 + 2, x1, y2 - ((onlyOne || firstTab) && selected && leftAligned ? 0 : borderThinkness));
- p->drawPoint(x1 + 1, y1 + 1);
- }
- // Top
- {
- int beg = x1 + (previousSelected ? 0 : 2);
- int end = x2 - (nextSelected ? 0 : 2);
- p->setPen(light);
- p->drawLine(beg, y1, end, y1);
- }
- // Right
- if (lastTab || selected || onlyOne || !nextSelected) {
- p->setPen(shadow);
- p->drawLine(x2, y1 + 2, x2, y2 - ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness));
- p->drawPoint(x2 - 1, y1 + 1);
- p->setPen(dark);
- p->drawLine(x2 - 1, y1 + 2, x2 - 1, y2 - ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness));
- }
- break; }
- case QTabBar::RoundedSouth: {
- if (!selected) {
- y2 -= 2;
- x1 += firstTab ? borderThinkness : 0;
- x2 -= lastTab ? borderThinkness : 0;
- }
-
- p->fillRect(QRect(x1 + 1, y1 + 2, (x2 - x1) - 1, (y2 - y1) - 1), tab->palette.window());
-
- // Delete border
- if (selected) {
- p->fillRect(QRect(x1, y1 + 1, (x2 - 1)-x1, 1), tab->palette.window());
- p->fillRect(QRect(x1, y1, (x2 - 1)-x1, 1), tab->palette.window());
- }
- // Left
- if (firstTab || selected || onlyOne || !previousSelected) {
- p->setPen(light);
- p->drawLine(x1, y2 - 2, x1, y1 + ((onlyOne || firstTab) && selected && leftAligned ? 0 : borderThinkness));
- p->drawPoint(x1 + 1, y2 - 1);
- }
- // Bottom
- {
- int beg = x1 + (previousSelected ? 0 : 2);
- int end = x2 - (nextSelected ? 0 : 2);
- p->setPen(shadow);
- p->drawLine(beg, y2, end, y2);
- p->setPen(dark);
- p->drawLine(beg, y2 - 1, end, y2 - 1);
- }
- // Right
- if (lastTab || selected || onlyOne || !nextSelected) {
- p->setPen(shadow);
- p->drawLine(x2, y2 - 2, x2, y1 + ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness));
- p->drawPoint(x2 - 1, y2 - 1);
- p->setPen(dark);
- p->drawLine(x2 - 1, y2 - 2, x2 - 1, y1 + ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness));
- }
- break; }
- case QTabBar::RoundedWest: {
- if (!selected) {
- x1 += 2;
- y1 += firstTab ? borderThinkness : 0;
- y2 -= lastTab ? borderThinkness : 0;
- }
-
- p->fillRect(QRect(x1 + 1, y1 + 1, (x2 - x1) - 2, (y2 - y1) - 1), tab->palette.window());
-
- // Delete border
- if (selected) {
- p->fillRect(QRect(x2 - 1, y1, 1, y2-y1), tab->palette.window());
- p->fillRect(QRect(x2, y1, 1, y2-y1), tab->palette.window());
- }
- // Top
- if (firstTab || selected || onlyOne || !previousSelected) {
- p->setPen(light);
- p->drawLine(x1 + 2, y1, x2 - ((onlyOne || firstTab) && selected && leftAligned ? 0 : borderThinkness), y1);
- p->drawPoint(x1 + 1, y1 + 1);
- }
- // Left
- {
- int beg = y1 + (previousSelected ? 0 : 2);
- int end = y2 - (nextSelected ? 0 : 2);
- p->setPen(light);
- p->drawLine(x1, beg, x1, end);
- }
- // Bottom
- if (lastTab || selected || onlyOne || !nextSelected) {
- p->setPen(shadow);
- p->drawLine(x1 + 3, y2, x2 - ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness), y2);
- p->drawPoint(x1 + 2, y2 - 1);
- p->setPen(dark);
- p->drawLine(x1 + 3, y2 - 1, x2 - ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness), y2 - 1);
- p->drawPoint(x1 + 1, y2 - 1);
- p->drawPoint(x1 + 2, y2);
- }
- break; }
- case QTabBar::RoundedEast: {
- if (!selected) {
- x2 -= 2;
- y1 += firstTab ? borderThinkness : 0;
- y2 -= lastTab ? borderThinkness : 0;
- }
-
- p->fillRect(QRect(x1 + 2, y1 + 1, (x2 - x1) - 1, (y2 - y1) - 1), tab->palette.window());
-
- // Delete border
- if (selected) {
- p->fillRect(QRect(x1 + 1, y1, 1, (y2 - 1)-y1),tab->palette.window());
- p->fillRect(QRect(x1, y1, 1, (y2-1)-y1), tab->palette.window());
- }
- // Top
- if (firstTab || selected || onlyOne || !previousSelected) {
- p->setPen(light);
- p->drawLine(x2 - 2, y1, x1 + ((onlyOne || firstTab) && selected && leftAligned ? 0 : borderThinkness), y1);
- p->drawPoint(x2 - 1, y1 + 1);
- }
- // Right
- {
- int beg = y1 + (previousSelected ? 0 : 2);
- int end = y2 - (nextSelected ? 0 : 2);
- p->setPen(shadow);
- p->drawLine(x2, beg, x2, end);
- p->setPen(dark);
- p->drawLine(x2 - 1, beg, x2 - 1, end);
- }
- // Bottom
- if (lastTab || selected || onlyOne || !nextSelected) {
- p->setPen(shadow);
- p->drawLine(x2 - 2, y2, x1 + ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness), y2);
- p->drawPoint(x2 - 1, y2 - 1);
- p->setPen(dark);
- p->drawLine(x2 - 2, y2 - 1, x1 + ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness), y2 - 1);
- }
- break; }
- }
- }
- break;
-#endif // QT_CONFIG(tabbar)
- case CE_ToolBoxTabShape:
- qDrawShadePanel(p, opt->rect, opt->palette,
- opt->state & (State_Sunken | State_On), 1,
- &opt->palette.brush(QPalette::Button));
- break;
-#if 0 && QT_CONFIG(splitter)
- case CE_Splitter:
- p->eraseRect(opt->rect);
- break;
-#endif // QT_CONFIG(splitter)
-#if 0 && QT_CONFIG(scrollbar)
- case CE_ScrollBarSubLine:
- case CE_ScrollBarAddLine: {
- if ((opt->state & State_Sunken)) {
- p->setPen(opt->palette.dark().color());
- p->setBrush(opt->palette.brush(QPalette::Button));
- p->drawRect(opt->rect.adjusted(0, 0, -1, -1));
- } else {
- QStyleOption buttonOpt = *opt;
- if (!(buttonOpt.state & State_Sunken))
- buttonOpt.state |= State_Raised;
- QPalette pal(opt->palette);
- pal.setColor(QPalette::Button, opt->palette.light().color());
- pal.setColor(QPalette::Light, opt->palette.button().color());
- qDrawWinButton(p, opt->rect, pal, opt->state & (State_Sunken | State_On),
- &opt->palette.brush(QPalette::Button));
- }
- PrimitiveElement arrow;
- if (opt->state & State_Horizontal) {
- if (ce == CE_ScrollBarAddLine)
- arrow = opt->direction == Qt::LeftToRight ? PE_IndicatorArrowRight : PE_IndicatorArrowLeft;
- else
- arrow = opt->direction == Qt::LeftToRight ? PE_IndicatorArrowLeft : PE_IndicatorArrowRight;
- } else {
- if (ce == CE_ScrollBarAddLine)
- arrow = PE_IndicatorArrowDown;
- else
- arrow = PE_IndicatorArrowUp;
- }
- QStyleOption arrowOpt = *opt;
- arrowOpt.rect = opt->rect.adjusted(4, 4, -4, -4);
- proxy()->drawPrimitive(arrow, &arrowOpt, p, widget);
- break; }
- case CE_ScrollBarAddPage:
- case CE_ScrollBarSubPage: {
- QBrush br;
- QBrush bg = p->background();
- Qt::BGMode bg_mode = p->backgroundMode();
- p->setPen(Qt::NoPen);
- p->setBackgroundMode(Qt::OpaqueMode);
-
- if (opt->state & State_Sunken) {
- br = QBrush(opt->palette.shadow().color(), Qt::Dense4Pattern);
- p->setBackground(opt->palette.dark().color());
- p->setBrush(br);
- } else {
- const QBrush paletteBrush = opt->palette.brush(QPalette::Light);
- if (paletteBrush.style() == Qt::TexturePattern) {
- if (qHasPixmapTexture(paletteBrush))
- br = QBrush(paletteBrush.texture());
- else
- br = QBrush(paletteBrush.textureImage());
- } else
- br = QBrush(opt->palette.light().color(), Qt::Dense4Pattern);
- p->setBackground(opt->palette.window().color());
- p->setBrush(br);
- }
- p->drawRect(opt->rect);
- p->setBackground(bg);
- p->setBackgroundMode(bg_mode);
- break; }
- case CE_ScrollBarSlider:
- if (!(opt->state & State_Enabled)) {
- QBrush br;
- const QBrush paletteBrush = opt->palette.brush(QPalette::Light);
- if (paletteBrush.style() == Qt::TexturePattern) {
- if (qHasPixmapTexture(paletteBrush))
- br = QBrush(paletteBrush.texture());
- else
- br = QBrush(paletteBrush.textureImage());
- } else
- br = QBrush(opt->palette.light().color(), Qt::Dense4Pattern);
- p->setPen(Qt::NoPen);
- p->setBrush(br);
- p->setBackgroundMode(Qt::OpaqueMode);
- p->drawRect(opt->rect);
- } else {
- QStyleOptionButton buttonOpt;
- buttonOpt.QStyleOption::operator=(*opt);
- buttonOpt.state = State_Enabled | State_Raised;
-
- QPalette pal(opt->palette);
- pal.setColor(QPalette::Button, opt->palette.light().color());
- pal.setColor(QPalette::Light, opt->palette.button().color());
- qDrawWinButton(p, opt->rect, pal, false, &opt->palette.brush(QPalette::Button));
- }
- break;
-#endif // QT_CONFIG(scrollbar)
- case CE_HeaderSection: {
- QBrush fill;
- if (opt->state & State_On)
- fill = QBrush(opt->palette.light().color(), Qt::Dense4Pattern);
- else
- fill = opt->palette.brush(QPalette::Button);
-
- if (opt->state & (State_Raised | State_Sunken)) {
- qDrawWinButton(p, opt->rect, opt->palette, opt->state & State_Sunken, &fill);
- } else {
- p->fillRect(opt->rect, fill);
- }
- break; }
-#if 0 && QT_CONFIG(toolbar)
- case CE_ToolBar:
- if (const QStyleOptionToolBar *toolbar = qstyleoption_cast<const QStyleOptionToolBar *>(opt)) {
- // Reserve the beveled appearance only for mainwindow toolbars
- if (!(widget && qobject_cast<const QMainWindow*> (widget->parentWidget())))
- break;
-
- QRect rect = opt->rect;
- bool paintLeftBorder = true;
- bool paintRightBorder = true;
- bool paintBottomBorder = true;
-
- switch (toolbar->toolBarArea){
- case Qt::BottomToolBarArea :
- switch (toolbar->positionOfLine){
- case QStyleOptionToolBar::Beginning:
- case QStyleOptionToolBar::OnlyOne:
- paintBottomBorder = false;
- break;
- default:
- break;
- }
- Q_FALLTHROUGH(); // It continues in the end of the next case
- case Qt::TopToolBarArea :
- switch (toolbar->positionWithinLine){
- case QStyleOptionToolBar::Beginning:
- paintLeftBorder = false;
- break;
- case QStyleOptionToolBar::End:
- paintRightBorder = false;
- break;
- case QStyleOptionToolBar::OnlyOne:
- paintRightBorder = false;
- paintLeftBorder = false;
- break;
- default:
- break;
- }
- if (opt->direction == Qt::RightToLeft){ //reverse layout changes the order of Beginning/end
- bool tmp = paintLeftBorder;
- paintRightBorder=paintLeftBorder;
- paintLeftBorder=tmp;
- }
- break;
- case Qt::RightToolBarArea :
- switch (toolbar->positionOfLine){
- case QStyleOptionToolBar::Beginning:
- case QStyleOptionToolBar::OnlyOne:
- paintRightBorder = false;
- break;
- default:
- break;
- }
- break;
- case Qt::LeftToolBarArea :
- switch (toolbar->positionOfLine){
- case QStyleOptionToolBar::Beginning:
- case QStyleOptionToolBar::OnlyOne:
- paintLeftBorder = false;
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
-
-
- //draw top border
- p->setPen(QPen(opt->palette.light().color()));
- p->drawLine(rect.topLeft().x(),
- rect.topLeft().y(),
- rect.topRight().x(),
- rect.topRight().y());
-
- if (paintLeftBorder){
- p->setPen(QPen(opt->palette.light().color()));
- p->drawLine(rect.topLeft().x(),
- rect.topLeft().y(),
- rect.bottomLeft().x(),
- rect.bottomLeft().y());
- }
-
- if (paintRightBorder){
- p->setPen(QPen(opt->palette.dark().color()));
- p->drawLine(rect.topRight().x(),
- rect.topRight().y(),
- rect.bottomRight().x(),
- rect.bottomRight().y());
- }
-
- if (paintBottomBorder){
- p->setPen(QPen(opt->palette.dark().color()));
- p->drawLine(rect.bottomLeft().x(),
- rect.bottomLeft().y(),
- rect.bottomRight().x(),
- rect.bottomRight().y());
- }
- }
- break;
-
-
-#endif // QT_CONFIG(toolbar)
-
- case CE_ProgressBarContents:
- if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(opt)) {
- QRect rect = pb->rect;
- if (!rect.isValid())
- return;
-
- const bool vertical = !(pb->state & QStyle::State_Horizontal);
- const bool inverted = pb->invertedAppearance;
-
- QTransform m;
- if (vertical) {
- rect = QRect(rect.y(), rect.x(), rect.height(), rect.width()); // flip width and height
- m.rotate(90);
- m.translate(0, -(rect.height() + rect.y()*2));
- }
- QPalette pal2 = pb->palette;
- // Correct the highlight color if it is the same as the background
- if (pal2.highlight() == pal2.window())
- pal2.setColor(QPalette::Highlight, pb->palette.color(QPalette::Active,
- QPalette::Highlight));
- bool reverse = ((!vertical && (pb->direction == Qt::RightToLeft)) || vertical);
- if (inverted)
- reverse = !reverse;
- int w = rect.width();
- Q_D(const QWindowsStyle);
- if (pb->minimum == 0 && pb->maximum == 0) {
- const int unit_width = proxy()->pixelMetric(PM_ProgressBarChunkWidth, pb);
- QStyleOptionProgressBar pbBits = *pb;
- Q_ASSERT(unit_width >0);
-
- pbBits.rect = rect;
- pbBits.palette = pal2;
-
- int step = 0;
- int chunkCount = w / unit_width + 1;
-#if 0 && QT_CONFIG(animation)
- if (QProgressStyleAnimation *animation = qobject_cast<QProgressStyleAnimation*>(d->animation(opt->styleObject)))
- step = (animation->animationStep() / 3) % chunkCount;
- else
- d->startAnimation(new QProgressStyleAnimation(d->animationFps, opt->styleObject));
-#else
- Q_UNUSED(d);
-#endif
- int chunksInRow = 5;
- int myY = pbBits.rect.y();
- int myHeight = pbBits.rect.height();
- int chunksToDraw = chunksInRow;
-
- if (step > chunkCount - 5)chunksToDraw = (chunkCount - step);
- p->save();
- p->setClipRect(m.mapRect(QRectF(rect)).toRect());
-
- int x0 = reverse ? rect.left() + rect.width() - unit_width*(step) - unit_width : rect.left() + unit_width * step;
- int x = 0;
-
- for (int i = 0; i < chunksToDraw ; ++i) {
- pbBits.rect.setRect(x0 + x, myY, unit_width, myHeight);
- pbBits.rect = m.mapRect(QRectF(pbBits.rect)).toRect();
- proxy()->drawPrimitive(PE_IndicatorProgressChunk, &pbBits, p);
- x += reverse ? -unit_width : unit_width;
- }
- //Draw wrap-around chunks
- if ( step > chunkCount-5){
- x0 = reverse ? rect.left() + rect.width() - unit_width : rect.left() ;
- x = 0;
- int chunksToDraw = step - (chunkCount - chunksInRow);
- for (int i = 0; i < chunksToDraw ; ++i) {
- pbBits.rect.setRect(x0 + x, myY, unit_width, myHeight);
- pbBits.rect = m.mapRect(QRectF(pbBits.rect)).toRect();
- proxy()->drawPrimitive(PE_IndicatorProgressChunk, &pbBits, p);
- x += reverse ? -unit_width : unit_width;
- }
- }
- p->restore(); //restore state
- }
- else {
-#if 0 && QT_CONFIG(animation)
- d->stopAnimation(opt->styleObject);
-#endif
- QCommonStyle::drawControl(ce, opt, p);
- }
- }
- break;
-
-#if 0 && QT_CONFIG(dockwidget)
- case CE_DockWidgetTitle:
-
- if (const QStyleOptionDockWidget *dwOpt = qstyleoption_cast<const QStyleOptionDockWidget *>(opt)) {
- Q_D(const QWindowsStyle);
-
- const bool verticalTitleBar = dwOpt->verticalTitleBar;
-
- QRect rect = dwOpt->rect;
- QRect r = rect;
-
- if (verticalTitleBar) {
- r = r.transposed();
-
- p->save();
- p->translate(r.left(), r.top() + r.width());
- p->rotate(-90);
- p->translate(-r.left(), -r.top());
- }
-
- bool floating = false;
- bool active = dwOpt->state & State_Active;
- QColor inactiveCaptionTextColor = d->inactiveCaptionText;
- if (dwOpt->movable) {
- QColor left, right;
-
- //Titlebar gradient
- if (opt->state & QStyle::State_Window) {
- floating = true;
- if (active) {
- left = d->activeCaptionColor;
- right = d->activeGradientCaptionColor;
- } else {
- left = d->inactiveCaptionColor;
- right = d->inactiveGradientCaptionColor;
- }
- QBrush fillBrush(left);
- if (left != right) {
- QPoint p1(r.x(), r.top() + r.height()/2);
- QPoint p2(rect.right(), r.top() + r.height()/2);
- QLinearGradient lg(p1, p2);
- lg.setColorAt(0, left);
- lg.setColorAt(1, right);
- fillBrush = lg;
- }
- p->fillRect(r.adjusted(0, 0, 0, -3), fillBrush);
- }
- }
- if (!dwOpt->title.isEmpty()) {
- QFont oldFont = p->font();
- if (floating) {
- QFont font = oldFont;
- font.setBold(true);
- p->setFont(font);
- }
- QPalette palette = dwOpt->palette;
- palette.setColor(QPalette::Window, inactiveCaptionTextColor);
- QRect titleRect = subElementRect(SE_DockWidgetTitleBarText, opt, widget);
- if (verticalTitleBar) {
- titleRect = QRect(r.left() + rect.bottom()
- - titleRect.bottom(),
- r.top() + titleRect.left() - rect.left(),
- titleRect.height(), titleRect.width());
- }
- proxy()->drawItemText(p, titleRect,
- Qt::AlignLeft | Qt::AlignVCenter, palette,
- dwOpt->state & State_Enabled, dwOpt->title,
- floating ? (active ? QPalette::BrightText : QPalette::Window) : QPalette::WindowText);
- p->setFont(oldFont);
- }
- if (verticalTitleBar)
- p->restore();
- }
- return;
-#endif // QT_CONFIG(dockwidget)
-#if 0 && QT_CONFIG(combobox)
- case CE_ComboBoxLabel:
- if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- if (cb->state & State_HasFocus) {
- p->setPen(cb->palette.highlightedText().color());
- p->setBackground(cb->palette.highlight());
- } else {
- p->setPen(cb->palette.text().color());
- p->setBackground(cb->palette.window());
- }
- }
- QCommonStyle::drawControl(ce, opt, p, widget);
- break;
-#endif // QT_CONFIG(combobox)
- default:
- QCommonStyle::drawControl(ce, opt, p);
- }
-}
-
-/*! \reimp */
-QRect QWindowsStyle::subElementRect(SubElement sr, const QStyleOption *opt) const
-{
- QRect r;
- switch (sr) {
- case SE_SliderFocusRect:
- case SE_ToolBoxTabContents:
- r = visualRect(opt->direction, opt->rect, opt->rect);
- break;
- case SE_DockWidgetTitleBarText: {
- r = QCommonStyle::subElementRect(sr, opt);
- const QStyleOptionDockWidget *dwOpt
- = qstyleoption_cast<const QStyleOptionDockWidget*>(opt);
- const bool verticalTitleBar = dwOpt && dwOpt->verticalTitleBar;
- int m = proxy()->pixelMetric(PM_DockWidgetTitleMargin, opt);
- if (verticalTitleBar) {
- r.adjust(0, 0, 0, -m);
- } else {
- if (opt->direction == Qt::LeftToRight)
- r.adjust(m, 0, 0, 0);
- else
- r.adjust(0, 0, -m, 0);
- }
- break;
- }
- case SE_ProgressBarContents:
- r = QCommonStyle::subElementRect(SE_ProgressBarGroove, opt);
- r.adjust(3, 3, -3, -3);
- break;
- default:
- r = QCommonStyle::subElementRect(sr, opt);
- }
- return r;
-}
-
-
-/*! \reimp */
-void QWindowsStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt,
- QPainter *p) const
-{
-#if 0
- switch (cc) {
-#if QT_CONFIG(slider)
- case CC_Slider:
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- int thickness = proxy()->pixelMetric(PM_SliderControlThickness, slider);
- int len = proxy()->pixelMetric(PM_SliderLength, slider);
- int ticks = slider->tickPosition;
- QRect groove = proxy()->subControlRect(CC_Slider, slider, SC_SliderGroove);
- QRect handle = proxy()->subControlRect(CC_Slider, slider, SC_SliderHandle);
-
- if ((slider->subControls & SC_SliderGroove) && groove.isValid()) {
- int mid = thickness / 2;
-
- if (ticks & QStyleOptionSlider::TicksAbove)
- mid += len / 8;
- if (ticks & QStyleOptionSlider::TicksBelow)
- mid -= len / 8;
-
- p->setPen(slider->palette.shadow().color());
- if (slider->orientation == Qt::Horizontal) {
- qDrawWinPanel(p, groove.x(), groove.y() + mid - 2,
- groove.width(), 4, slider->palette, true);
- p->drawLine(groove.x() + 1, groove.y() + mid - 1,
- groove.x() + groove.width() - 3, groove.y() + mid - 1);
- } else {
- qDrawWinPanel(p, groove.x() + mid - 2, groove.y(),
- 4, groove.height(), slider->palette, true);
- p->drawLine(groove.x() + mid - 1, groove.y() + 1,
- groove.x() + mid - 1, groove.y() + groove.height() - 3);
- }
- }
-
- if (slider->subControls & SC_SliderTickmarks) {
- QStyleOptionSlider tmpSlider = *slider;
- tmpSlider.subControls = SC_SliderTickmarks;
- QCommonStyle::drawComplexControl(cc, &tmpSlider, p);
- }
-
- if (slider->subControls & SC_SliderHandle) {
- // 4444440
- // 4333310
- // 4322210
- // 4322210
- // 4322210
- // 4322210
- // *43210*
- // **410**
- // ***0***
- const QColor c0 = slider->palette.shadow().color();
- const QColor c1 = slider->palette.dark().color();
- // const QColor c2 = g.button();
- const QColor c3 = slider->palette.midlight().color();
- const QColor c4 = slider->palette.light().color();
- QBrush handleBrush;
-
- if (slider->state & State_Enabled) {
- handleBrush = slider->palette.color(QPalette::Button);
- } else {
- handleBrush = QBrush(slider->palette.color(QPalette::Button),
- Qt::Dense4Pattern);
- }
-
-
- int x = handle.x(), y = handle.y(),
- wi = handle.width(), he = handle.height();
-
- int x1 = x;
- int x2 = x+wi-1;
- int y1 = y;
- int y2 = y+he-1;
-
- Qt::Orientation orient = slider->orientation;
- bool tickAbove = slider->tickPosition == QStyleOptionSlider::TicksAbove;
- bool tickBelow = slider->tickPosition == QStyleOptionSlider::TicksBelow;
-
- if (slider->state & State_HasFocus) {
- QStyleOptionFocusRect fropt;
- fropt.QStyleOption::operator=(*slider);
- fropt.rect = subElementRect(SE_SliderFocusRect, slider);
- proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, p);
- }
-
- if ((tickAbove && tickBelow) || (!tickAbove && !tickBelow)) {
- Qt::BGMode oldMode = p->backgroundMode();
- p->setBackgroundMode(Qt::OpaqueMode);
- qDrawWinButton(p, QRect(x, y, wi, he), slider->palette, false,
- &handleBrush);
- p->setBackgroundMode(oldMode);
- return;
- }
-
- QSliderDirection dir;
-
- if (orient == Qt::Horizontal)
- if (tickAbove)
- dir = SlUp;
- else
- dir = SlDown;
- else
- if (tickAbove)
- dir = SlLeft;
- else
- dir = SlRight;
-
- QPolygon a;
-
- int d = 0;
- switch (dir) {
- case SlUp:
- y1 = y1 + wi/2;
- d = (wi + 1) / 2 - 1;
- a.setPoints(5, x1,y1, x1,y2, x2,y2, x2,y1, x1+d,y1-d);
- break;
- case SlDown:
- y2 = y2 - wi/2;
- d = (wi + 1) / 2 - 1;
- a.setPoints(5, x1,y1, x1,y2, x1+d,y2+d, x2,y2, x2,y1);
- break;
- case SlLeft:
- d = (he + 1) / 2 - 1;
- x1 = x1 + he/2;
- a.setPoints(5, x1,y1, x1-d,y1+d, x1,y2, x2,y2, x2,y1);
- break;
- case SlRight:
- d = (he + 1) / 2 - 1;
- x2 = x2 - he/2;
- a.setPoints(5, x1,y1, x1,y2, x2,y2, x2+d,y1+d, x2,y1);
- break;
- }
-
- QBrush oldBrush = p->brush();
- p->setPen(Qt::NoPen);
- p->setBrush(handleBrush);
- Qt::BGMode oldMode = p->backgroundMode();
- p->setBackgroundMode(Qt::OpaqueMode);
- p->drawRect(x1, y1, x2-x1+1, y2-y1+1);
- p->drawPolygon(a);
- p->setBrush(oldBrush);
- p->setBackgroundMode(oldMode);
-
- if (dir != SlUp) {
- p->setPen(c4);
- p->drawLine(x1, y1, x2, y1);
- p->setPen(c3);
- p->drawLine(x1, y1+1, x2, y1+1);
- }
- if (dir != SlLeft) {
- p->setPen(c3);
- p->drawLine(x1+1, y1+1, x1+1, y2);
- p->setPen(c4);
- p->drawLine(x1, y1, x1, y2);
- }
- if (dir != SlRight) {
- p->setPen(c0);
- p->drawLine(x2, y1, x2, y2);
- p->setPen(c1);
- p->drawLine(x2-1, y1+1, x2-1, y2-1);
- }
- if (dir != SlDown) {
- p->setPen(c0);
- p->drawLine(x1, y2, x2, y2);
- p->setPen(c1);
- p->drawLine(x1+1, y2-1, x2-1, y2-1);
- }
-
- switch (dir) {
- case SlUp:
- p->setPen(c4);
- p->drawLine(x1, y1, x1+d, y1-d);
- p->setPen(c0);
- d = wi - d - 1;
- p->drawLine(x2, y1, x2-d, y1-d);
- d--;
- p->setPen(c3);
- p->drawLine(x1+1, y1, x1+1+d, y1-d);
- p->setPen(c1);
- p->drawLine(x2-1, y1, x2-1-d, y1-d);
- break;
- case SlDown:
- p->setPen(c4);
- p->drawLine(x1, y2, x1+d, y2+d);
- p->setPen(c0);
- d = wi - d - 1;
- p->drawLine(x2, y2, x2-d, y2+d);
- d--;
- p->setPen(c3);
- p->drawLine(x1+1, y2, x1+1+d, y2+d);
- p->setPen(c1);
- p->drawLine(x2-1, y2, x2-1-d, y2+d);
- break;
- case SlLeft:
- p->setPen(c4);
- p->drawLine(x1, y1, x1-d, y1+d);
- p->setPen(c0);
- d = he - d - 1;
- p->drawLine(x1, y2, x1-d, y2-d);
- d--;
- p->setPen(c3);
- p->drawLine(x1, y1+1, x1-d, y1+1+d);
- p->setPen(c1);
- p->drawLine(x1, y2-1, x1-d, y2-1-d);
- break;
- case SlRight:
- p->setPen(c4);
- p->drawLine(x2, y1, x2+d, y1+d);
- p->setPen(c0);
- d = he - d - 1;
- p->drawLine(x2, y2, x2+d, y2-d);
- d--;
- p->setPen(c3);
- p->drawLine(x2, y1+1, x2+d, y1+1+d);
- p->setPen(c1);
- p->drawLine(x2, y2-1, x2+d, y2-1-d);
- break;
- }
- }
- }
- break;
-#endif // QT_CONFIG(slider)
-#if QT_CONFIG(scrollbar)
- case CC_ScrollBar:
- if (const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- QStyleOptionSlider newScrollbar = *scrollbar;
- if (scrollbar->minimum == scrollbar->maximum)
- newScrollbar.state &= ~State_Enabled; //do not draw the slider.
- QCommonStyle::drawComplexControl(cc, &newScrollbar, p, widget);
- }
- break;
-#endif // QT_CONFIG(scrollbar)
-#if QT_CONFIG(combobox)
- case CC_ComboBox:
- if (const QStyleOptionComboBox *cmb = qstyleoption_cast<const QStyleOptionComboBox *>(opt)) {
- QBrush editBrush = cmb->palette.brush(QPalette::Button);
- if ((cmb->subControls & SC_ComboBoxFrame)) {
- if (cmb->frame) {
- QPalette shadePal = opt->palette;
- shadePal.setColor(QPalette::Midlight, shadePal.button().color());
- qDrawWinPanel(p, opt->rect, shadePal, true, &editBrush);
- }
- else {
- p->fillRect(opt->rect, editBrush);
- }
- }
- if (cmb->subControls & SC_ComboBoxArrow) {
- State flags = State_None;
-
- QRect ar = proxy()->subControlRect(CC_ComboBox, cmb, SC_ComboBoxArrow, widget);
- bool sunkenArrow = cmb->activeSubControls == SC_ComboBoxArrow
- && cmb->state & State_Sunken;
- if (sunkenArrow) {
- p->setPen(cmb->palette.dark().color());
- p->setBrush(cmb->palette.brush(QPalette::Button));
- p->drawRect(ar.adjusted(0,0,-1,-1));
- } else {
- // Make qDrawWinButton use the right colors for drawing the shade of the button
- QPalette pal(cmb->palette);
- pal.setColor(QPalette::Button, cmb->palette.light().color());
- pal.setColor(QPalette::Light, cmb->palette.button().color());
- qDrawWinButton(p, ar, pal, false,
- &cmb->palette.brush(QPalette::Button));
- }
-
- ar.adjust(2, 2, -2, -2);
- if (opt->state & State_Enabled)
- flags |= State_Enabled;
- if (opt->state & State_HasFocus)
- flags |= State_HasFocus;
-
- if (sunkenArrow)
- flags |= State_Sunken;
- QStyleOption arrowOpt = *cmb;
- arrowOpt.rect = ar.adjusted(1, 1, -1, -1);
- arrowOpt.state = flags;
- proxy()->drawPrimitive(PE_IndicatorArrowDown, &arrowOpt, p, widget);
- }
-
- if (cmb->subControls & SC_ComboBoxEditField) {
- QRect re = proxy()->subControlRect(CC_ComboBox, cmb, SC_ComboBoxEditField, widget);
- if (cmb->state & State_HasFocus && !cmb->editable)
- p->fillRect(re.x(), re.y(), re.width(), re.height(),
- cmb->palette.brush(QPalette::Highlight));
-
- if (cmb->state & State_HasFocus) {
- p->setPen(cmb->palette.highlightedText().color());
- p->setBackground(cmb->palette.highlight());
-
- } else {
- p->setPen(cmb->palette.text().color());
- p->setBackground(cmb->palette.window());
- }
-
- if (cmb->state & State_HasFocus && !cmb->editable) {
- QStyleOptionFocusRect focus;
- focus.QStyleOption::operator=(*cmb);
- focus.rect = subElementRect(SE_ComboBoxFocusRect, cmb, widget);
- focus.state |= State_FocusAtBorder;
- focus.backgroundColor = cmb->palette.highlight().color();
- proxy()->drawPrimitive(PE_FrameFocusRect, &focus, p, widget);
- }
- }
- }
- break;
-#endif // QT_CONFIG(combobox)
-#if QT_CONFIG(spinbox)
- case CC_SpinBox:
- if (const QStyleOptionSpinBox *sb = qstyleoption_cast<const QStyleOptionSpinBox *>(opt)) {
- QStyleOptionSpinBox copy = *sb;
- PrimitiveElement pe;
- bool enabled = opt->state & State_Enabled;
- if (sb->frame && (sb->subControls & SC_SpinBoxFrame)) {
- QBrush editBrush = sb->palette.brush(QPalette::Base);
- QRect r = proxy()->subControlRect(CC_SpinBox, sb, SC_SpinBoxFrame, widget);
- QPalette shadePal = sb->palette;
- shadePal.setColor(QPalette::Midlight, shadePal.button().color());
- qDrawWinPanel(p, r, shadePal, true, &editBrush);
- }
-
- QPalette shadePal(opt->palette);
- shadePal.setColor(QPalette::Button, opt->palette.light().color());
- shadePal.setColor(QPalette::Light, opt->palette.button().color());
-
- if (sb->subControls & SC_SpinBoxUp) {
- copy.subControls = SC_SpinBoxUp;
- QPalette pal2 = sb->palette;
- if (!(sb->stepEnabled & QAbstractSpinBox::StepUpEnabled)) {
- pal2.setCurrentColorGroup(QPalette::Disabled);
- copy.state &= ~State_Enabled;
- }
-
- copy.palette = pal2;
-
- if (sb->activeSubControls == SC_SpinBoxUp && (sb->state & State_Sunken)) {
- copy.state |= State_On;
- copy.state |= State_Sunken;
- } else {
- copy.state |= State_Raised;
- copy.state &= ~State_Sunken;
- }
- pe = (sb->buttonSymbols == QAbstractSpinBox::PlusMinus ? PE_IndicatorSpinPlus
- : PE_IndicatorSpinUp);
-
- copy.rect = proxy()->subControlRect(CC_SpinBox, sb, SC_SpinBoxUp, widget);
- qDrawWinButton(p, copy.rect, shadePal, copy.state & (State_Sunken | State_On),
- &copy.palette.brush(QPalette::Button));
- copy.rect.adjust(4, 1, -5, -1);
- if ((!enabled || !(sb->stepEnabled & QAbstractSpinBox::StepUpEnabled))
- && proxy()->styleHint(SH_EtchDisabledText, opt, widget) )
- {
- QStyleOptionSpinBox lightCopy = copy;
- lightCopy.rect.adjust(1, 1, 1, 1);
- lightCopy.palette.setBrush(QPalette::ButtonText, copy.palette.light());
- proxy()->drawPrimitive(pe, &lightCopy, p, widget);
- }
- proxy()->drawPrimitive(pe, &copy, p, widget);
- }
-
- if (sb->subControls & SC_SpinBoxDown) {
- copy.subControls = SC_SpinBoxDown;
- copy.state = sb->state;
- QPalette pal2 = sb->palette;
- if (!(sb->stepEnabled & QAbstractSpinBox::StepDownEnabled)) {
- pal2.setCurrentColorGroup(QPalette::Disabled);
- copy.state &= ~State_Enabled;
- }
- copy.palette = pal2;
-
- if (sb->activeSubControls == SC_SpinBoxDown && (sb->state & State_Sunken)) {
- copy.state |= State_On;
- copy.state |= State_Sunken;
- } else {
- copy.state |= State_Raised;
- copy.state &= ~State_Sunken;
- }
- pe = (sb->buttonSymbols == QAbstractSpinBox::PlusMinus ? PE_IndicatorSpinMinus
- : PE_IndicatorSpinDown);
-
- copy.rect = proxy()->subControlRect(CC_SpinBox, sb, SC_SpinBoxDown, widget);
- qDrawWinButton(p, copy.rect, shadePal, copy.state & (State_Sunken | State_On),
- &copy.palette.brush(QPalette::Button));
- copy.rect.adjust(4, 0, -5, -1);
- if ((!enabled || !(sb->stepEnabled & QAbstractSpinBox::StepDownEnabled))
- && proxy()->styleHint(SH_EtchDisabledText, opt, widget) )
- {
- QStyleOptionSpinBox lightCopy = copy;
- lightCopy.rect.adjust(1, 1, 1, 1);
- lightCopy.palette.setBrush(QPalette::ButtonText, copy.palette.light());
- proxy()->drawPrimitive(pe, &lightCopy, p, widget);
- }
- proxy()->drawPrimitive(pe, &copy, p, widget);
- }
- }
- break;
-#endif // QT_CONFIG(spinbox)
- default:
- QCommonStyle::drawComplexControl(cc, opt, p);
- }
-#else // 0
- QCommonStyle::drawComplexControl(cc, opt, p);
-#endif
-}
-
-/*! \reimp */
-QSize QWindowsStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &csz) const
-{
- QSize sz(csz);
- switch (ct) {
- case CT_PushButton:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(opt)) {
- sz = QCommonStyle::sizeFromContents(ct, opt, csz);
- int w = sz.width(),
- h = sz.height();
- int defwidth = 0;
- if (btn->features & QStyleOptionButton::AutoDefaultButton)
- defwidth = 2 * proxy()->pixelMetric(PM_ButtonDefaultIndicator, btn);
- const qreal dpi = QStyleHelper::dpi(opt);
- int minwidth = int(QStyleHelper::dpiScaled(75, dpi));
- int minheight = int(QStyleHelper::dpiScaled(23, dpi));
-
-#ifndef QT_QWS_SMALL_PUSHBUTTON
- if (w < minwidth + defwidth && !btn->text.isEmpty())
- w = minwidth + defwidth;
- if (h < minheight + defwidth)
- h = minheight + defwidth;
-#endif
- sz = QSize(w, h);
- }
- break;
-#if 0 && QT_CONFIG(menu)
- case CT_MenuItem:
- if (const QStyleOptionMenuItem *mi = qstyleoption_cast<const QStyleOptionMenuItem *>(opt)) {
- int w = sz.width();
- sz = QCommonStyle::sizeFromContents(ct, opt, csz, widget);
-
- if (mi->menuItemType == QStyleOptionMenuItem::Separator) {
- sz = QSize(10, QWindowsStylePrivate::windowsSepHeight);
- }
- else if (mi->icon.isNull()) {
- sz.setHeight(sz.height() - 2);
- w -= 6;
- }
-
- if (mi->menuItemType != QStyleOptionMenuItem::Separator && !mi->icon.isNull()) {
- int iconExtent = proxy()->pixelMetric(PM_SmallIconSize, opt, widget);
- sz.setHeight(qMax(sz.height(),
- mi->icon.actualSize(QSize(iconExtent, iconExtent)).height()
- + 2 * QWindowsStylePrivate::windowsItemFrame));
- }
- int maxpmw = mi->maxIconWidth;
- int tabSpacing = 20;
- if (mi->text.contains(QLatin1Char('\t')))
- w += tabSpacing;
- else if (mi->menuItemType == QStyleOptionMenuItem::SubMenu)
- w += 2 * QWindowsStylePrivate::windowsArrowHMargin;
- else if (mi->menuItemType == QStyleOptionMenuItem::DefaultItem) {
- // adjust the font and add the difference in size.
- // it would be better if the font could be adjusted in the initStyleOption qmenu func!!
- QFontMetrics fm(mi->font);
- QFont fontBold = mi->font;
- fontBold.setBold(true);
- QFontMetrics fmBold(fontBold);
- w += fmBold.horizontalAdvance(mi->text) - fm.horizontalAdvance(mi->text);
- }
-
- int checkcol = qMax<int>(maxpmw, QWindowsStylePrivate::windowsCheckMarkWidth); // Windows always shows a check column
- w += checkcol;
- w += int(QWindowsStylePrivate::windowsRightBorder) + 10;
- sz.setWidth(w);
- }
- break;
-#endif // QT_CONFIG(menu)
-#if 0 && QT_CONFIG(menubar)
- case CT_MenuBarItem:
- if (!sz.isEmpty())
- sz += QSize(QWindowsStylePrivate::windowsItemHMargin * 4, QWindowsStylePrivate::windowsItemVMargin * 2);
- break;
-#endif
- case CT_ToolButton:
- if (qstyleoption_cast<const QStyleOptionToolButton *>(opt))
- return sz += QSize(7, 6);
- Q_FALLTHROUGH();
-
- default:
- sz = QCommonStyle::sizeFromContents(ct, opt, csz);
- }
- return sz;
-}
-
-/*!
- \reimp
-*/
-QIcon QWindowsStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption *option) const
-{
- return QCommonStyle::standardIcon(standardIcon, option);
-}
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#include "moc_qquickwindowsstyle_p.cpp"
diff --git a/src/quicknativestyle/qstyle/windows/qquickwindowsstyle_p.h b/src/quicknativestyle/qstyle/windows/qquickwindowsstyle_p.h
deleted file mode 100644
index 92926b71..00000000
--- a/src/quicknativestyle/qstyle/windows/qquickwindowsstyle_p.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWidgets module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKWINDOWSSTYLE_P_H
-#define QQUICKWINDOWSSTYLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickcommonstyle.h"
-
-QT_BEGIN_NAMESPACE
-
-class QPalette;
-
-namespace QQC2 {
-
-class QStyleOptionButton;
-class QWindowsStylePrivate;
-
-class QWindowsStylePrivate;
-
-class QWindowsStyle : public QCommonStyle
-{
- Q_OBJECT
-public:
- QWindowsStyle();
- ~QWindowsStyle() override;
-/*
- void polish(QApplication*) override;
- void unpolish(QApplication*) override;
-
- void polish(QWidget*) override;
- void unpolish(QWidget*) override;
-
- void polish(QPalette &) override;
-*/
- void drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPainter *p) const override;
- void drawControl(ControlElement element, const QStyleOption *opt, QPainter *p) const override;
- void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, QPainter *p) const override;
-
- QRect subElementRect(SubElement r, const QStyleOption *opt) const override;
- QSize sizeFromContents(ContentsType ct, const QStyleOption *opt, const QSize &contentsSize) const override;
-
- int pixelMetric(PixelMetric pm, const QStyleOption *option = nullptr) const override;
-
- int styleHint(StyleHint hint, const QStyleOption *opt = nullptr,
- QStyleHintReturn *returnData = nullptr) const override;
-
- QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt) const override;
-
- QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = nullptr) const override;
-
-protected:
-// bool eventFilter(QObject *o, QEvent *e) override;
- QWindowsStyle(QWindowsStylePrivate &dd);
-
-private:
- Q_DISABLE_COPY_MOVE(QWindowsStyle)
- Q_DECLARE_PRIVATE(QWindowsStyle)
-};
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif // QQUICKWINDOWSSTYLE_P_H
diff --git a/src/quicknativestyle/qstyle/windows/qquickwindowsstyle_p_p.h b/src/quicknativestyle/qstyle/windows/qquickwindowsstyle_p_p.h
deleted file mode 100644
index 64b95a40..00000000
--- a/src/quicknativestyle/qstyle/windows/qquickwindowsstyle_p_p.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWidgets module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKWINDOWSSTYLE_P_P_H
-#define QQUICKWINDOWSSTYLE_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of XX. This header
-// file may change from version to version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickwindowsstyle_p.h"
-#include "qquickcommonstyle_p.h"
-#include "qquickstylehelper_p.h"
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2 {
-
-class QStyleOptionButton;
-class QWindowsStylePrivate;
-
-#include <qlist.h>
-
-class QTime;
-
-class QWindowsStylePrivate : public QCommonStylePrivate
-{
- Q_DECLARE_PUBLIC(QWindowsStyle)
-public:
- enum { InvalidMetric = -23576 };
-
- QWindowsStylePrivate();
- static int pixelMetricFromSystemDp(QStyle::PixelMetric pm, const QStyleOption *option = nullptr);
- static int fixedPixelMetric(QStyle::PixelMetric pm);
- static qreal devicePixelRatio(const QStyleOption *option = nullptr)
- {
- return devicePixelRatio(option ? option->window : nullptr);
- }
-
- static qreal devicePixelRatio(const QWindow *win)
- { return win ? win->devicePixelRatio() : QWindowsStylePrivate::appDevicePixelRatio(); }
- static qreal nativeMetricScaleFactor(const QStyleOption *option = nullptr);
- static qreal nativeMetricScaleFactor(const QWindow *win);
- static bool isDarkMode();
-
-#if 0
- bool hasSeenAlt(const QWidget *widget) const;
- bool altDown() const { return alt_down; }
- bool alt_down = false;
-#endif
- QList<const QWidget *> seenAlt;
- int menuBarTimer = 0;
-
- QColor inactiveCaptionText;
- QColor activeCaptionColor;
- QColor activeGradientCaptionColor;
- QColor inactiveCaptionColor;
- QColor inactiveGradientCaptionColor;
-
- enum {
- windowsItemFrame = 2, // menu item frame width
- windowsSepHeight = 9, // separator item height
- windowsItemHMargin = 3, // menu item hor text margin
- windowsItemVMargin = 2, // menu item ver text margin
- windowsArrowHMargin = 6, // arrow horizontal margin
- windowsRightBorder = 15, // right border on windows
- windowsCheckMarkWidth = 12 // checkmarks width on windows
- };
-
-private:
- static qreal appDevicePixelRatio();
-};
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif //QQUICKWINDOWSSTYLE_P_P_H
-
diff --git a/src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle.cpp b/src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle.cpp
deleted file mode 100644
index 512f8291..00000000
--- a/src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle.cpp
+++ /dev/null
@@ -1,2509 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWidgets module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickwindowsvistastyle_p.h"
-#include "qquickwindowsvistastyle_p_p.h"
-#include <qoperatingsystemversion.h>
-#include <qscreen.h>
-#include <qwindow.h>
-#include <private/qstyleanimation_p.h>
-#include <private/qstylehelper_p.h>
-#include <qpa/qplatformnativeinterface.h>
-
-QT_BEGIN_NAMESPACE
-
-static const int windowsItemFrame = 2; // menu item frame width
-static const int windowsItemHMargin = 3; // menu item hor text margin
-static const int windowsItemVMargin = 4; // menu item ver text margin
-static const int windowsArrowHMargin = 6; // arrow horizontal margin
-static const int windowsRightBorder = 15; // right border on windows
-
-#ifndef TMT_CONTENTMARGINS
-# define TMT_CONTENTMARGINS 3602
-#endif
-#ifndef TMT_SIZINGMARGINS
-# define TMT_SIZINGMARGINS 3601
-#endif
-#ifndef LISS_NORMAL
-# define LISS_NORMAL 1
-# define LISS_HOT 2
-# define LISS_SELECTED 3
-# define LISS_DISABLED 4
-# define LISS_SELECTEDNOTFOCUS 5
-# define LISS_HOTSELECTED 6
-#endif
-#ifndef BP_COMMANDLINK
-# define BP_COMMANDLINK 6
-# define BP_COMMANDLINKGLYPH 7
-# define CMDLGS_NORMAL 1
-# define CMDLGS_HOT 2
-# define CMDLGS_PRESSED 3
-# define CMDLGS_DISABLED 4
-#endif
-
-/* \internal
- Checks if we should use Vista style , or if we should
- fall back to Windows style.
-*/
-bool QWindowsVistaStylePrivate::useVista()
-{
- return QWindowsVistaStylePrivate::useXP();
-}
-
-/* \internal
- Checks and returns the style object
-*/
-inline QObject *styleObject(const QStyleOption *option) {
- return option ? option->styleObject : nullptr;
-}
-
-/* \internal
- Checks if we can animate on a style option
-*/
-bool canAnimate(const QStyleOption *option) {
- return option
- && option->styleObject
- && !option->styleObject->property("_q_no_animation").toBool();
-}
-
-static inline QImage createAnimationBuffer(const QStyleOption *option, const QWidget *widget)
-{
- const int devicePixelRatio = widget ? widget->devicePixelRatio() : 1;
- QImage result(option->rect.size() * devicePixelRatio, QImage::Format_ARGB32_Premultiplied);
- result.setDevicePixelRatio(devicePixelRatio);
- result.fill(0);
- return result;
-}
-
-/* \internal
- Used by animations to clone a styleoption and shift its offset
-*/
-QStyleOption *clonedAnimationStyleOption(const QStyleOption*option) {
- QStyleOption *styleOption = nullptr;
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider*>(option))
- styleOption = new QStyleOptionSlider(*slider);
- else if (const QStyleOptionSpinBox *spinbox = qstyleoption_cast<const QStyleOptionSpinBox*>(option))
- styleOption = new QStyleOptionSpinBox(*spinbox);
- else if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast<const QStyleOptionGroupBox*>(option))
- styleOption = new QStyleOptionGroupBox(*groupBox);
- else if (const QStyleOptionComboBox *combo = qstyleoption_cast<const QStyleOptionComboBox*>(option))
- styleOption = new QStyleOptionComboBox(*combo);
- else if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton*>(option))
- styleOption = new QStyleOptionButton(*button);
- else
- styleOption = new QStyleOption(*option);
- styleOption->rect = QRect(QPoint(0,0), option->rect.size());
- return styleOption;
-}
-
-/* \internal
- Used by animations to delete cloned styleoption
-*/
-void deleteClonedAnimationStyleOption(const QStyleOption *option)
-{
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider*>(option))
- delete slider;
- else if (const QStyleOptionSpinBox *spinbox = qstyleoption_cast<const QStyleOptionSpinBox*>(option))
- delete spinbox;
- else if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast<const QStyleOptionGroupBox*>(option))
- delete groupBox;
- else if (const QStyleOptionComboBox *combo = qstyleoption_cast<const QStyleOptionComboBox*>(option))
- delete combo;
- else if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton*>(option))
- delete button;
- else
- delete option;
-}
-
-/*!
- \class QWindowsVistaStyle
- \brief The QWindowsVistaStyle class provides a look and feel suitable for applications on Microsoft Windows Vista.
- \since 4.3
- \ingroup appearance
- \inmodule QtWidgets
- \internal
-
- \warning This style is only available on the Windows Vista platform
- because it makes use of Windows Vista's style engine.
-
- \sa QMacStyle, QWindowsXPStyle, QFusionStyle
-*/
-
-/*!
- Constructs a QWindowsVistaStyle object.
-*/
-QWindowsVistaStyle::QWindowsVistaStyle()
- : QWindowsXPStyle(*new QWindowsVistaStylePrivate)
-{
-}
-
-/*!
- Destructor.
-*/
-QWindowsVistaStyle::~QWindowsVistaStyle() = default;
-
-//convert Qt state flags to uxtheme button states
-static int buttonStateId(int flags, int partId)
-{
- int stateId = 0;
- if (partId == BP_RADIOBUTTON || partId == BP_CHECKBOX) {
- if (!(flags & QStyle::State_Enabled))
- stateId = RBS_UNCHECKEDDISABLED;
- else if (flags & QStyle::State_Sunken)
- stateId = RBS_UNCHECKEDPRESSED;
- else if (flags & QStyle::State_MouseOver)
- stateId = RBS_UNCHECKEDHOT;
- else
- stateId = RBS_UNCHECKEDNORMAL;
-
- if (flags & QStyle::State_On)
- stateId += RBS_CHECKEDNORMAL-1;
-
- } else if (partId == BP_PUSHBUTTON) {
- if (!(flags & QStyle::State_Enabled))
- stateId = PBS_DISABLED;
- else if (flags & (QStyle::State_Sunken | QStyle::State_On))
- stateId = PBS_PRESSED;
- else if (flags & QStyle::State_MouseOver)
- stateId = PBS_HOT;
- else
- stateId = PBS_NORMAL;
- } else {
- Q_ASSERT(1);
- }
- return stateId;
-}
-
-bool QWindowsVistaAnimation::isUpdateNeeded() const
-{
- return QWindowsVistaStylePrivate::useVista();
-}
-
-void QWindowsVistaAnimation::paint(QPainter *painter, const QStyleOption *option)
-{
- painter->drawImage(option->rect, currentImage());
-}
-
-static inline bool supportsStateTransition(QStyle::PrimitiveElement element,
- const QStyleOption *option,
- const QWidget *widget)
-{
- bool result = false;
- switch (element) {
- case QStyle::PE_IndicatorRadioButton:
- case QStyle::PE_IndicatorCheckBox:
- result = true;
- break;
- // QTBUG-40634, do not animate when color is set in palette for PE_PanelLineEdit.
- case QStyle::PE_FrameLineEdit:
- result = !QWindowsXPStylePrivate::isLineEditBaseColorSet(option, widget);
- break;
- default:
- break;
- }
- return result;
-}
-
-/*!
- \internal
-
- Animations are used for some state transitions on specific widgets.
-
- Only one running animation can exist for a widget at any specific
- time. Animations can be added through
- QWindowsVistaStylePrivate::startAnimation(Animation *) and any
- existing animation on a widget can be retrieved with
- QWindowsVistaStylePrivate::widgetAnimation(Widget *).
-
- Once an animation has been started,
- QWindowsVistaStylePrivate::timerEvent(QTimerEvent *) will
- continuously call update() on the widget until it is stopped,
- meaning that drawPrimitive will be called many times until the
- transition has completed. During this time, the result will be
- retrieved by the Animation::paint(...) function and not by the style
- itself.
-
- To determine if a transition should occur, the style needs to know
- the previous state of the widget as well as the current one. This is
- solved by updating dynamic properties on the widget every time the
- function is called.
-
- Transitions interrupting existing transitions should always be
- smooth, so whenever a hover-transition is started on a pulsating
- button, it uses the current frame of the pulse-animation as the
- starting image for the hover transition.
-
- */
-
-void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option,
- QPainter *painter, const QWidget *widget) const
-{
- QWindowsVistaStylePrivate *d = const_cast<QWindowsVistaStylePrivate*>(d_func());
-
- int state = option->state;
- if (!QWindowsVistaStylePrivate::useVista()) {
- QWindowsStyle::drawPrimitive(element, option, painter, widget);
- return;
- }
-
- if ((option->state & State_Enabled) && d->transitionsEnabled() && canAnimate(option)) {
- {
- QRect oldRect;
- QRect newRect;
-
- if (supportsStateTransition(element, option, widget)) {
- // Retrieve and update the dynamic properties tracking
- // the previous state of the widget:
- QObject *styleObject = option->styleObject;
- styleObject->setProperty("_q_no_animation", true);
-
- int oldState = styleObject->property("_q_stylestate").toInt();
- oldRect = styleObject->property("_q_stylerect").toRect();
- newRect = option->rect;
- styleObject->setProperty("_q_stylestate", int(option->state));
- styleObject->setProperty("_q_stylerect", option->rect);
-
- bool doTransition = oldState &&
- ((state & State_Sunken) != (oldState & State_Sunken) ||
- (state & State_On) != (oldState & State_On) ||
- (state & State_MouseOver) != (oldState & State_MouseOver));
-
- if (oldRect != newRect ||
- (state & State_Enabled) != (oldState & State_Enabled) ||
- (state & State_Active) != (oldState & State_Active))
- d->stopAnimation(styleObject);
-
- if (option->state & State_ReadOnly && element == PE_FrameLineEdit) // Do not animate read only line edits
- doTransition = false;
-
- if (doTransition) {
- QStyleOption *styleOption = clonedAnimationStyleOption(option);
- styleOption->state = QStyle::State(oldState);
-
- QWindowsVistaAnimation *anim = qobject_cast<QWindowsVistaAnimation *>(d->animation(styleObject));
- QWindowsVistaTransition *t = new QWindowsVistaTransition(styleObject);
-
- // We create separate images for the initial and final transition states and store them in the
- // Transition object.
- QImage startImage = createAnimationBuffer(option, widget);
- QPainter startPainter(&startImage);
-
- QImage endImage = createAnimationBuffer(option, widget);
- QPainter endPainter(&endImage);
-
- // If we have a running animation on the widget already, we will use that to paint the initial
- // state of the new transition, this ensures a smooth transition from a current animation such as a
- // pulsating default button into the intended target state.
- if (!anim)
- proxy()->drawPrimitive(element, styleOption, &startPainter, widget);
- else
- anim->paint(&startPainter, styleOption);
-
- t->setStartImage(startImage);
-
- // The end state of the transition is simply the result we would have painted
- // if the style was not animated.
- styleOption->styleObject = nullptr;
- styleOption->state = option->state;
- proxy()->drawPrimitive(element, styleOption, &endPainter, widget);
-
-
- t->setEndImage(endImage);
-
- HTHEME theme;
- int partId;
- DWORD duration;
- int fromState = 0;
- int toState = 0;
-
- //translate state flags to UXTHEME states :
- if (element == PE_FrameLineEdit) {
- theme = OpenThemeData(nullptr, L"Edit");
- partId = EP_EDITBORDER_NOSCROLL;
-
- if (oldState & State_MouseOver)
- fromState = ETS_HOT;
- else if (oldState & State_HasFocus)
- fromState = ETS_FOCUSED;
- else
- fromState = ETS_NORMAL;
-
- if (state & State_MouseOver)
- toState = ETS_HOT;
- else if (state & State_HasFocus)
- toState = ETS_FOCUSED;
- else
- toState = ETS_NORMAL;
-
- } else {
- theme = OpenThemeData(nullptr, L"Button");
- if (element == PE_IndicatorRadioButton)
- partId = BP_RADIOBUTTON;
- else if (element == PE_IndicatorCheckBox)
- partId = BP_CHECKBOX;
- else
- partId = BP_PUSHBUTTON;
-
- fromState = buttonStateId(oldState, partId);
- toState = buttonStateId(option->state, partId);
- }
-
- // Retrieve the transition time between the states from the system.
- if (theme
- && SUCCEEDED(GetThemeTransitionDuration(theme, partId, fromState, toState,
- TMT_TRANSITIONDURATIONS, &duration))) {
- t->setDuration(int(duration));
- }
- t->setStartTime(QTime::currentTime());
-
- deleteClonedAnimationStyleOption(styleOption);
- d->startAnimation(t);
- }
- styleObject->setProperty("_q_no_animation", false);
- }
-
- } // End of animation part
- }
-
- QRect rect = option->rect;
-
- switch (element) {
- case PE_IndicatorHeaderArrow:
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(option)) {
- int stateId = HSAS_SORTEDDOWN;
- if (header->sortIndicator & QStyleOptionHeader::SortDown)
- stateId = HSAS_SORTEDUP; //note that the uxtheme sort down indicator is the inverse of ours
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::HeaderTheme,
- HP_HEADERSORTARROW, stateId, option->rect);
- d->drawBackground(theme);
- }
- break;
-
- case PE_IndicatorBranch:
- {
- XPThemeData theme(widget, painter, QWindowsXPStylePrivate::VistaTreeViewTheme);
- static int decoration_size = 0;
- if (!decoration_size && theme.isValid()) {
- XPThemeData themeSize = theme;
- themeSize.partId = TVP_HOTGLYPH;
- themeSize.stateId = GLPS_OPENED;
- const QSizeF size = themeSize.size() * QWindowsStylePrivate::nativeMetricScaleFactor(widget);
- decoration_size = qRound(qMax(size.width(), size.height()));
- }
- int mid_h = option->rect.x() + option->rect.width() / 2;
- int mid_v = option->rect.y() + option->rect.height() / 2;
- int bef_h = mid_h;
- int bef_v = mid_v;
- int aft_h = mid_h;
- int aft_v = mid_v;
- if (option->state & State_Children) {
- int delta = decoration_size / 2;
- theme.rect = QRect(bef_h - delta, bef_v - delta, decoration_size, decoration_size);
- theme.partId = option->state & State_MouseOver ? TVP_HOTGLYPH : TVP_GLYPH;
- theme.stateId = option->state & QStyle::State_Open ? GLPS_OPENED : GLPS_CLOSED;
- if (option->direction == Qt::RightToLeft)
- theme.mirrorHorizontally = true;
- d->drawBackground(theme);
- bef_h -= delta + 2;
- bef_v -= delta + 2;
- aft_h += delta - 2;
- aft_v += delta - 2;
- }
-#if 0
- QBrush brush(option->palette.dark().color(), Qt::Dense4Pattern);
- if (option->state & State_Item) {
- if (option->direction == Qt::RightToLeft)
- painter->fillRect(option->rect.left(), mid_v, bef_h - option->rect.left(), 1, brush);
- else
- painter->fillRect(aft_h, mid_v, option->rect.right() - aft_h + 1, 1, brush);
- }
- if (option->state & State_Sibling && option->rect.bottom() > aft_v)
- painter->fillRect(mid_h, aft_v, 1, option->rect.bottom() - aft_v + 1, brush);
- if (option->state & (State_Open | State_Children | State_Item | State_Sibling) && (bef_v > option->rect.y()))
- painter->fillRect(mid_h, option->rect.y(), 1, bef_v - option->rect.y(), brush);
-#endif
- }
- break;
-
- case PE_PanelButtonBevel:
- case PE_IndicatorCheckBox:
- case PE_IndicatorRadioButton:
- {
- if (QWindowsVistaAnimation *a =
- qobject_cast<QWindowsVistaAnimation *>(d->animation(styleObject(option)))){
- a->paint(painter, option);
- } else {
- QWindowsXPStyle::drawPrimitive(element, option, painter, widget);
- }
- }
- break;
-
- case PE_FrameMenu:
- {
- int stateId = option->state & State_Active ? MB_ACTIVE : MB_INACTIVE;
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::MenuTheme,
- MENU_POPUPBORDERS, stateId, option->rect);
- d->drawBackground(theme);
- }
- break;
- case PE_Frame: {
-#ifndef QT_NO_ACCESSIBILITY
- if (QStyleHelper::isInstanceOf(option->styleObject, QAccessible::EditableText)
- || QStyleHelper::isInstanceOf(option->styleObject, QAccessible::StaticText) ||
-#else
- if (
-#endif
- (widget && widget->inherits("QTextEdit"))) {
- painter->save();
- int stateId = ETS_NORMAL;
- if (!(state & State_Enabled))
- stateId = ETS_DISABLED;
- else if (state & State_ReadOnly)
- stateId = ETS_READONLY;
- else if (state & State_HasFocus)
- stateId = ETS_SELECTED;
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::EditTheme,
- EP_EDITBORDER_HVSCROLL, stateId, option->rect);
- // Since EP_EDITBORDER_HVSCROLL does not us borderfill, theme.noContent cannot be used for clipping
- int borderSize = 1;
- GetThemeInt(theme.handle(), theme.partId, theme.stateId, TMT_BORDERSIZE, &borderSize);
- QRegion clipRegion = option->rect;
- QRegion content = option->rect.adjusted(borderSize, borderSize, -borderSize, -borderSize);
- clipRegion ^= content;
- painter->setClipRegion(clipRegion);
- d->drawBackground(theme);
- painter->restore();
- } else {
- QWindowsXPStyle::drawPrimitive(element, option, painter, widget);
- }
- }
- break;
-
- case PE_PanelLineEdit:
- if (const QStyleOptionFrame *panel = qstyleoption_cast<const QStyleOptionFrame *>(option)) {
- bool isEnabled = option->state & State_Enabled;
- if (QWindowsXPStylePrivate::isLineEditBaseColorSet(option, widget)) {
- painter->fillRect(panel->rect, panel->palette.brush(QPalette::Base));
- } else {
- int partId = EP_BACKGROUND;
- int stateId = EBS_NORMAL;
- if (!isEnabled)
- stateId = EBS_DISABLED;
- else if (state & State_ReadOnly)
- stateId = EBS_READONLY;
- else if (state & State_MouseOver)
- stateId = EBS_HOT;
-
- XPThemeData theme(nullptr, painter, QWindowsXPStylePrivate::EditTheme,
- partId, stateId, rect);
- if (!theme.isValid()) {
- QWindowsStyle::drawPrimitive(element, option, painter, widget);
- return;
- }
- int bgType;
- GetThemeEnumValue(theme.handle(), partId, stateId, TMT_BGTYPE, &bgType);
- if ( bgType == BT_IMAGEFILE ) {
- d->drawBackground(theme);
- } else {
- QBrush fillColor = option->palette.brush(QPalette::Base);
- if (!isEnabled) {
- PROPERTYORIGIN origin = PO_NOTFOUND;
- GetThemePropertyOrigin(theme.handle(), theme.partId, theme.stateId, TMT_FILLCOLOR, &origin);
- // Use only if the fill property comes from our part
- if ((origin == PO_PART || origin == PO_STATE)) {
- COLORREF bgRef;
- GetThemeColor(theme.handle(), partId, stateId, TMT_FILLCOLOR, &bgRef);
- fillColor = QBrush(qRgb(GetRValue(bgRef), GetGValue(bgRef), GetBValue(bgRef)));
- }
- }
- painter->fillRect(option->rect, fillColor);
- }
- }
- if (panel->lineWidth > 0)
- proxy()->drawPrimitive(PE_FrameLineEdit, panel, painter, widget);
- return;
- }
- break;
-
- case PE_FrameLineEdit:
- if (QWindowsVistaAnimation *anim = qobject_cast<QWindowsVistaAnimation *>(d->animation(styleObject(option)))) {
- anim->paint(painter, option);
- } else {
- QPainter *p = painter;
- if (QWindowsXPStylePrivate::isItemViewDelegateLineEdit(widget)) {
- // we try to check if this lineedit is a delegate on a QAbstractItemView-derived class.
- QPen oldPen = p->pen();
- // Inner white border
- p->setPen(QPen(option->palette.base().color(), 1));
- p->drawRect(option->rect.adjusted(1, 1, -2, -2));
- // Outer dark border
- p->setPen(QPen(option->palette.shadow().color(), 1));
- p->drawRect(option->rect.adjusted(0, 0, -1, -1));
- p->setPen(oldPen);
- return;
- }
- int stateId = ETS_NORMAL;
- if (!(state & State_Enabled))
- stateId = ETS_DISABLED;
- else if (state & State_ReadOnly)
- stateId = ETS_READONLY;
- else if (state & State_MouseOver)
- stateId = ETS_HOT;
- else if (state & State_HasFocus)
- stateId = ETS_SELECTED;
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::EditTheme,
- EP_EDITBORDER_NOSCROLL, stateId, option->rect);
- theme.noContent = true;
- painter->save();
- QRegion clipRegion = option->rect;
- clipRegion -= option->rect.adjusted(2, 2, -2, -2);
- painter->setClipRegion(clipRegion);
- d->drawBackground(theme);
- painter->restore();
- }
- break;
-
- case PE_IndicatorToolBarHandle:
- {
- XPThemeData theme;
- QRect rect;
- if (option->state & State_Horizontal) {
- theme = XPThemeData(widget, painter,
- QWindowsXPStylePrivate::RebarTheme,
- RP_GRIPPER, ETS_NORMAL, option->rect.adjusted(0, 1, -2, -2));
- rect = option->rect.adjusted(0, 1, 0, -2);
- rect.setWidth(4);
- } else {
- theme = XPThemeData(widget, painter, QWindowsXPStylePrivate::RebarTheme,
- RP_GRIPPERVERT, ETS_NORMAL, option->rect.adjusted(0, 1, -2, -2));
- rect = option->rect.adjusted(1, 0, -1, 0);
- rect.setHeight(4);
- }
- theme.rect = rect;
- d->drawBackground(theme);
- }
- break;
-
- case PE_IndicatorToolBarSeparator:
- {
- QPen pen = painter->pen();
- int margin = 3;
- painter->setPen(option->palette.window().color().darker(114));
- if (option->state & State_Horizontal) {
- int x1 = option->rect.center().x();
- painter->drawLine(QPoint(x1, option->rect.top() + margin), QPoint(x1, option->rect.bottom() - margin));
- } else {
- int y1 = option->rect.center().y();
- painter->drawLine(QPoint(option->rect.left() + margin, y1), QPoint(option->rect.right() - margin, y1));
- }
- painter->setPen(pen);
- }
- break;
-
- case PE_PanelTipLabel: {
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::ToolTipTheme,
- TTP_STANDARD, TTSS_NORMAL, option->rect);
- d->drawBackground(theme);
- break;
- }
-
- case PE_PanelItemViewItem:
- {
- const QStyleOptionViewItem *vopt;
- bool newStyle = true;
- QAbstractItemView::SelectionBehavior selectionBehavior = QAbstractItemView::SelectRows;
- QAbstractItemView::SelectionMode selectionMode = QAbstractItemView::NoSelection;
- if (const QAbstractItemView *view = qobject_cast<const QAbstractItemView *>(widget)) {
- newStyle = !qobject_cast<const QTableView*>(view);
- selectionBehavior = view->selectionBehavior();
- selectionMode = view->selectionMode();
-#ifndef QT_NO_ACCESSIBILITY
- } else if (!widget) {
- newStyle = !QStyleHelper::hasAncestor(option->styleObject, QAccessible::MenuItem) ;
-#endif
- }
-
- if (newStyle && (vopt = qstyleoption_cast<const QStyleOptionViewItem *>(option))) {
- bool selected = vopt->state & QStyle::State_Selected;
- const bool hover = selectionMode != QAbstractItemView::NoSelection && (vopt->state & QStyle::State_MouseOver);
- bool active = vopt->state & QStyle::State_Active;
-
- if (vopt->features & QStyleOptionViewItem::Alternate)
- painter->fillRect(vopt->rect, vopt->palette.alternateBase());
-
- QPalette::ColorGroup cg = vopt->state & QStyle::State_Enabled
- ? QPalette::Normal : QPalette::Disabled;
- if (cg == QPalette::Normal && !(vopt->state & QStyle::State_Active))
- cg = QPalette::Inactive;
-
- QRect itemRect = subElementRect(QStyle::SE_ItemViewItemFocusRect, option, widget).adjusted(-1, 0, 1, 0);
- itemRect.setTop(vopt->rect.top());
- itemRect.setBottom(vopt->rect.bottom());
-
- QSize sectionSize = itemRect.size();
- if (vopt->showDecorationSelected)
- sectionSize = vopt->rect.size();
-
- if (selectionBehavior == QAbstractItemView::SelectRows)
- sectionSize.setWidth(vopt->rect.width());
- QPixmap pixmap;
-
- if (vopt->backgroundBrush.style() != Qt::NoBrush) {
- const QPointF oldBrushOrigin = painter->brushOrigin();
- painter->setBrushOrigin(vopt->rect.topLeft());
- painter->fillRect(vopt->rect, vopt->backgroundBrush);
- painter->setBrushOrigin(oldBrushOrigin);
- }
-
- if (hover || selected) {
- if (sectionSize.width() > 0 && sectionSize.height() > 0) {
- QString key = QString::fromLatin1("qvdelegate-%1-%2-%3-%4-%5").arg(sectionSize.width())
- .arg(sectionSize.height()).arg(selected).arg(active).arg(hover);
- if (!QPixmapCache::find(key, &pixmap)) {
- pixmap = QPixmap(sectionSize);
- pixmap.fill(Qt::transparent);
-
- int state;
- if (selected && hover)
- state = LISS_HOTSELECTED;
- else if (selected && !active)
- state = LISS_SELECTEDNOTFOCUS;
- else if (selected)
- state = LISS_SELECTED;
- else
- state = LISS_HOT;
-
- QPainter pixmapPainter(&pixmap);
- XPThemeData theme(widget, &pixmapPainter,
- QWindowsXPStylePrivate::VistaTreeViewTheme,
- LVP_LISTITEM, state, QRect(0, 0, sectionSize.width(), sectionSize.height()));
- if (theme.isValid()) {
- d->drawBackground(theme);
- } else {
- QWindowsXPStyle::drawPrimitive(PE_PanelItemViewItem, option, painter, widget);
- break;
- }
- QPixmapCache::insert(key, pixmap);
- }
- }
-
- if (vopt->showDecorationSelected) {
- const int frame = 2; //Assumes a 2 pixel pixmap border
- QRect srcRect = QRect(0, 0, sectionSize.width(), sectionSize.height());
- QRect pixmapRect = vopt->rect;
- bool reverse = vopt->direction == Qt::RightToLeft;
- bool leftSection = vopt->viewItemPosition == QStyleOptionViewItem::Beginning;
- bool rightSection = vopt->viewItemPosition == QStyleOptionViewItem::End;
- if (vopt->viewItemPosition == QStyleOptionViewItem::OnlyOne
- || vopt->viewItemPosition == QStyleOptionViewItem::Invalid)
- painter->drawPixmap(pixmapRect.topLeft(), pixmap);
- else if (reverse ? rightSection : leftSection){
- painter->drawPixmap(QRect(pixmapRect.topLeft(),
- QSize(frame, pixmapRect.height())), pixmap,
- QRect(QPoint(0, 0), QSize(frame, pixmapRect.height())));
- painter->drawPixmap(pixmapRect.adjusted(frame, 0, 0, 0),
- pixmap, srcRect.adjusted(frame, 0, -frame, 0));
- } else if (reverse ? leftSection : rightSection) {
- painter->drawPixmap(QRect(pixmapRect.topRight() - QPoint(frame - 1, 0),
- QSize(frame, pixmapRect.height())), pixmap,
- QRect(QPoint(pixmapRect.width() - frame, 0),
- QSize(frame, pixmapRect.height())));
- painter->drawPixmap(pixmapRect.adjusted(0, 0, -frame, 0),
- pixmap, srcRect.adjusted(frame, 0, -frame, 0));
- } else if (vopt->viewItemPosition == QStyleOptionViewItem::Middle)
- painter->drawPixmap(pixmapRect, pixmap,
- srcRect.adjusted(frame, 0, -frame, 0));
- } else {
- if (vopt->text.isEmpty() && vopt->icon.isNull())
- break;
- painter->drawPixmap(itemRect.topLeft(), pixmap);
- }
- }
- } else {
- QWindowsXPStyle::drawPrimitive(element, option, painter, widget);
- }
- break;
- }
- case PE_Widget:
- {
-#if QT_CONFIG(dialogbuttonbox)
- const QDialogButtonBox *buttonBox = nullptr;
-
- if (qobject_cast<const QMessageBox *> (widget))
- buttonBox = widget->findChild<const QDialogButtonBox *>(QLatin1String("qt_msgbox_buttonbox"));
-#if QT_CONFIG(inputdialog)
- else if (qobject_cast<const QInputDialog *> (widget))
- buttonBox = widget->findChild<const QDialogButtonBox *>(QLatin1String("qt_inputdlg_buttonbox"));
-#endif // QT_CONFIG(inputdialog)
-
- if (buttonBox) {
- //draw white panel part
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::TaskDialogTheme,
- TDLG_PRIMARYPANEL, 0, option->rect);
- QRect toprect = option->rect;
- toprect.setBottom(buttonBox->geometry().top());
- theme.rect = toprect;
- d->drawBackground(theme);
-
- //draw bottom panel part
- QRect buttonRect = option->rect;
- buttonRect.setTop(buttonBox->geometry().top());
- theme.rect = buttonRect;
- theme.partId = TDLG_SECONDARYPANEL;
- d->drawBackground(theme);
- }
-#endif
- }
- break;
- default:
- QWindowsXPStyle::drawPrimitive(element, option, painter, widget);
- break;
- }
-}
-
-
-/*!
- \internal
-
- see drawPrimitive for comments on the animation support
- */
-void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption *option,
- QPainter *painter, const QWidget *widget) const
-{
- QWindowsVistaStylePrivate *d = const_cast<QWindowsVistaStylePrivate*>(d_func());
-
- if (!QWindowsVistaStylePrivate::useVista()) {
- QWindowsStyle::drawControl(element, option, painter, widget);
- return;
- }
-
- bool selected = option->state & State_Selected;
- bool pressed = option->state & State_Sunken;
- bool disabled = !(option->state & State_Enabled);
-
- int state = option->state;
- int themeNumber = -1;
-
- QRect rect(option->rect);
- State flags = option->state;
- int partId = 0;
- int stateId = 0;
-
- if (d->transitionsEnabled() && canAnimate(option))
- {
- if (element == CE_PushButtonBevel) {
- QRect oldRect;
- QRect newRect;
-
- QObject *styleObject = option->styleObject;
-
- int oldState = styleObject->property("_q_stylestate").toInt();
- oldRect = styleObject->property("_q_stylerect").toRect();
- newRect = option->rect;
- styleObject->setProperty("_q_stylestate", int(option->state));
- styleObject->setProperty("_q_stylerect", option->rect);
-
- bool wasDefault = false;
- bool isDefault = false;
- if (const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton *>(option)) {
- wasDefault = styleObject->property("_q_isdefault").toBool();
- isDefault = button->features & QStyleOptionButton::DefaultButton;
- styleObject->setProperty("_q_isdefault", isDefault);
- }
-
- bool doTransition = ((state & State_Sunken) != (oldState & State_Sunken) ||
- (state & State_On) != (oldState & State_On) ||
- (state & State_MouseOver) != (oldState & State_MouseOver));
-
- if (oldRect != newRect || (wasDefault && !isDefault)) {
- doTransition = false;
- d->stopAnimation(styleObject);
- }
-
- if (doTransition) {
- styleObject->setProperty("_q_no_animation", true);
-
- QWindowsVistaTransition *t = new QWindowsVistaTransition(styleObject);
- QWindowsVistaAnimation *anim = qobject_cast<QWindowsVistaAnimation *>(d->animation(styleObject));
- QStyleOption *styleOption = clonedAnimationStyleOption(option);
- styleOption->state = QStyle::State(oldState);
-
- QImage startImage = createAnimationBuffer(option, widget);
- QPainter startPainter(&startImage);
-
- // Use current state of existing animation if already one is running
- if (!anim) {
- proxy()->drawControl(element, styleOption, &startPainter, widget);
- } else {
- anim->paint(&startPainter, styleOption);
- d->stopAnimation(styleObject);
- }
-
- t->setStartImage(startImage);
- QImage endImage = createAnimationBuffer(option, widget);
- QPainter endPainter(&endImage);
- styleOption->state = option->state;
- proxy()->drawControl(element, styleOption, &endPainter, widget);
- t->setEndImage(endImage);
-
-
- DWORD duration = 0;
- const HTHEME theme = OpenThemeData(nullptr, L"Button");
-
- int fromState = buttonStateId(oldState, BP_PUSHBUTTON);
- int toState = buttonStateId(option->state, BP_PUSHBUTTON);
- if (GetThemeTransitionDuration(theme, BP_PUSHBUTTON, fromState, toState, TMT_TRANSITIONDURATIONS, &duration) == S_OK)
- t->setDuration(int(duration));
- else
- t->setDuration(0);
- t->setStartTime(QTime::currentTime());
- styleObject->setProperty("_q_no_animation", false);
-
- deleteClonedAnimationStyleOption(styleOption);
- d->startAnimation(t);
- }
-
- QWindowsVistaAnimation *anim = qobject_cast<QWindowsVistaAnimation *>(d->animation(styleObject));
- if (anim) {
- anim->paint(painter, option);
- return;
- }
-
- }
- }
- switch (element) {
- case CE_PushButtonBevel:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(option))
- {
- themeNumber = QWindowsXPStylePrivate::ButtonTheme;
- partId = BP_PUSHBUTTON;
- if (btn->features & QStyleOptionButton::CommandLinkButton)
- partId = BP_COMMANDLINK;
- bool justFlat = (btn->features & QStyleOptionButton::Flat) && !(flags & (State_On|State_Sunken));
- if (!(flags & State_Enabled) && !(btn->features & QStyleOptionButton::Flat))
- stateId = PBS_DISABLED;
- else if (justFlat)
- ;
- else if (flags & (State_Sunken | State_On))
- stateId = PBS_PRESSED;
- else if (flags & State_MouseOver)
- stateId = PBS_HOT;
- else if (btn->features & QStyleOptionButton::DefaultButton && (state & State_Active))
- stateId = PBS_DEFAULTED;
- else
- stateId = PBS_NORMAL;
-
- if (!justFlat) {
-
- if (d->transitionsEnabled() && (btn->features & QStyleOptionButton::DefaultButton) &&
- !(state & (State_Sunken | State_On)) && !(state & State_MouseOver) &&
- (state & State_Enabled) && (state & State_Active))
- {
- QWindowsVistaAnimation *anim = qobject_cast<QWindowsVistaAnimation *>(d->animation(styleObject(option)));
-
- if (!anim) {
- QImage startImage = createAnimationBuffer(option, widget);
- QImage alternateImage = createAnimationBuffer(option, widget);
-
- QWindowsVistaPulse *pulse = new QWindowsVistaPulse(styleObject(option));
-
- QPainter startPainter(&startImage);
- stateId = PBS_DEFAULTED;
- XPThemeData theme(widget, &startPainter, themeNumber, partId, stateId, rect);
- d->drawBackground(theme);
-
- QPainter alternatePainter(&alternateImage);
- theme.stateId = PBS_DEFAULTED_ANIMATING;
- theme.painter = &alternatePainter;
- d->drawBackground(theme);
- pulse->setStartImage(startImage);
- pulse->setEndImage(alternateImage);
- pulse->setStartTime(QTime::currentTime());
- pulse->setDuration(2000);
- d->startAnimation(pulse);
- anim = pulse;
- }
-
- if (anim)
- anim->paint(painter, option);
- else {
- XPThemeData theme(widget, painter, themeNumber, partId, stateId, rect);
- d->drawBackground(theme);
- }
- }
- else {
- XPThemeData theme(widget, painter, themeNumber, partId, stateId, rect);
- d->drawBackground(theme);
- }
- }
-
- if (btn->features & QStyleOptionButton::HasMenu) {
- int mbiw = 0, mbih = 0;
- XPThemeData theme(widget, nullptr, QWindowsXPStylePrivate::ToolBarTheme,
- TP_DROPDOWNBUTTON);
- if (theme.isValid()) {
- const QSizeF size = theme.size() * QStyleHelper::dpiScaled(1, option);
- if (!size.isEmpty()) {
- mbiw = qRound(size.width());
- mbih = qRound(size.height());
- }
- }
- QRect ir = subElementRect(SE_PushButtonContents, option, nullptr);
- QStyleOptionButton newBtn = *btn;
- newBtn.rect = QStyle::visualRect(option->direction, option->rect,
- QRect(ir.right() - mbiw - 2,
- option->rect.top() + (option->rect.height()/2) - (mbih/2),
- mbiw + 1, mbih + 1));
- proxy()->drawPrimitive(PE_IndicatorArrowDown, &newBtn, painter, widget);
- }
- return;
- }
- break;
-
- case CE_ProgressBarContents:
- if (const QStyleOptionProgressBar *bar
- = qstyleoption_cast<const QStyleOptionProgressBar *>(option)) {
- bool isIndeterminate = (bar->minimum == 0 && bar->maximum == 0);
- const bool vertical = bar->orientation == Qt::Vertical;
- const bool inverted = bar->invertedAppearance;
-
- if (isIndeterminate || (bar->progress > 0 && (bar->progress < bar->maximum) && d->transitionsEnabled())) {
- if (!d->animation(styleObject(option)))
- d->startAnimation(new QProgressStyleAnimation(d->animationFps, styleObject(option)));
- } else {
- d->stopAnimation(styleObject(option));
- }
-
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::ProgressTheme,
- vertical ? PP_FILLVERT : PP_FILL);
- theme.rect = option->rect;
- bool reverse = (bar->direction == Qt::LeftToRight && inverted) || (bar->direction == Qt::RightToLeft && !inverted);
- QTime current = QTime::currentTime();
-
- if (isIndeterminate) {
- if (QProgressStyleAnimation *a = qobject_cast<QProgressStyleAnimation *>(d->animation(styleObject(option)))) {
- int glowSize = 120;
- int animationWidth = glowSize * 2 + (vertical ? theme.rect.height() : theme.rect.width());
- int animOffset = a->startTime().msecsTo(current) / 4;
- if (animOffset > animationWidth)
- a->setStartTime(QTime::currentTime());
- painter->save();
- painter->setClipRect(theme.rect);
- QRect animRect;
- QSize pixmapSize(14, 14);
- if (vertical) {
- animRect = QRect(theme.rect.left(),
- inverted ? rect.top() - glowSize + animOffset :
- rect.bottom() + glowSize - animOffset,
- rect.width(), glowSize);
- pixmapSize.setHeight(animRect.height());
- } else {
- animRect = QRect(rect.left() - glowSize + animOffset,
- rect.top(), glowSize, rect.height());
- animRect = QStyle::visualRect(reverse ? Qt::RightToLeft : Qt::LeftToRight,
- option->rect, animRect);
- pixmapSize.setWidth(animRect.width());
- }
- QString name = QString::fromLatin1("qiprogress-%1-%2").arg(pixmapSize.width()).arg(pixmapSize.height());
- QPixmap pixmap;
- if (!QPixmapCache::find(name, &pixmap)) {
- QImage image(pixmapSize, QImage::Format_ARGB32);
- image.fill(Qt::transparent);
- QPainter imagePainter(&image);
- theme.painter = &imagePainter;
- theme.partId = vertical ? PP_FILLVERT : PP_FILL;
- theme.rect = QRect(QPoint(0,0), animRect.size());
- QLinearGradient alphaGradient(0, 0, vertical ? 0 : image.width(),
- vertical ? image.height() : 0);
- alphaGradient.setColorAt(0, QColor(0, 0, 0, 0));
- alphaGradient.setColorAt(0.5, QColor(0, 0, 0, 220));
- alphaGradient.setColorAt(1, QColor(0, 0, 0, 0));
- imagePainter.fillRect(image.rect(), alphaGradient);
- imagePainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
- d->drawBackground(theme);
- imagePainter.end();
- pixmap = QPixmap::fromImage(image);
- QPixmapCache::insert(name, pixmap);
- }
- painter->drawPixmap(animRect, pixmap);
- painter->restore();
- }
- }
- else {
- qint64 progress = qMax<qint64>(bar->progress, bar->minimum); // workaround for bug in QProgressBar
-
- if (vertical) {
- int maxHeight = option->rect.height();
- int minHeight = 0;
- double vc6_workaround = ((progress - qint64(bar->minimum)) / qMax(double(1.0), double(qint64(bar->maximum) - qint64(bar->minimum))) * maxHeight);
- int height = isIndeterminate ? maxHeight: qMax(int(vc6_workaround), minHeight);
- theme.rect.setHeight(height);
- if (!inverted)
- theme.rect.moveTop(rect.height() - theme.rect.height());
- } else {
- int maxWidth = option->rect.width();
- int minWidth = 0;
- double vc6_workaround = ((progress - qint64(bar->minimum)) / qMax(double(1.0), double(qint64(bar->maximum) - qint64(bar->minimum))) * maxWidth);
- int width = isIndeterminate ? maxWidth : qMax(int(vc6_workaround), minWidth);
- theme.rect.setWidth(width);
- theme.rect = QStyle::visualRect(reverse ? Qt::RightToLeft : Qt::LeftToRight,
- option->rect, theme.rect);
- }
- d->drawBackground(theme);
-
- if (QProgressStyleAnimation *a = qobject_cast<QProgressStyleAnimation *>(d->animation(styleObject(option)))) {
- int glowSize = 140;
- int animationWidth = glowSize * 2 + (vertical ? theme.rect.height() : theme.rect.width());
- int animOffset = a->startTime().msecsTo(current) / 4;
- theme.partId = vertical ? PP_MOVEOVERLAYVERT : PP_MOVEOVERLAY;
- if (animOffset > animationWidth) {
- if (bar->progress < bar->maximum)
- a->setStartTime(QTime::currentTime());
- else
- d->stopAnimation(styleObject(option)); //we stop the glow motion only after it has
- //moved out of view
- }
- painter->save();
- painter->setClipRect(theme.rect);
- if (vertical) {
- theme.rect = QRect(theme.rect.left(),
- inverted ? rect.top() - glowSize + animOffset :
- rect.bottom() + glowSize - animOffset,
- rect.width(), glowSize);
- } else {
- theme.rect = QRect(rect.left() - glowSize + animOffset,rect.top(), glowSize, rect.height());
- theme.rect = QStyle::visualRect(reverse ? Qt::RightToLeft : Qt::LeftToRight, option->rect, theme.rect);
- }
- d->drawBackground(theme);
- painter->restore();
- }
- }
- }
- break;
-
- case CE_MenuBarItem:
- {
-
- if (const QStyleOptionMenuItem *mbi = qstyleoption_cast<const QStyleOptionMenuItem *>(option))
- {
- if (mbi->menuItemType == QStyleOptionMenuItem::DefaultItem)
- break;
-
- QPalette::ColorRole textRole = disabled ? QPalette::Text : QPalette::ButtonText;
- QPixmap pix = mbi->icon.pixmap(proxy()->pixelMetric(PM_SmallIconSize, option, widget), QIcon::Normal);
-
- int alignment = Qt::AlignCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine;
- if (!proxy()->styleHint(SH_UnderlineShortcut, mbi, widget))
- alignment |= Qt::TextHideMnemonic;
-
- if (widget && mbi->palette.color(QPalette::Window) != Qt::transparent) { // Not needed for QtQuick Controls
- //The rect adjustment is a workaround for the menu not really filling its background.
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::MenuTheme,
- MENU_BARBACKGROUND, 0, option->rect.adjusted(-1, 0, 2, 1));
- d->drawBackground(theme);
- }
-
- int stateId = MBI_NORMAL;
- if (disabled)
- stateId = MBI_DISABLED;
- else if (pressed)
- stateId = MBI_PUSHED;
- else if (selected)
- stateId = MBI_HOT;
-
- XPThemeData theme2(widget, painter,
- QWindowsXPStylePrivate::MenuTheme,
- MENU_BARITEM, stateId, option->rect);
- d->drawBackground(theme2);
-
- if (!pix.isNull())
- drawItemPixmap(painter, mbi->rect, alignment, pix);
- else
- drawItemText(painter, mbi->rect, alignment, mbi->palette, mbi->state & State_Enabled, mbi->text, textRole);
- }
- }
- break;
-#if QT_CONFIG(menu)
- case CE_MenuItem:
- if (const QStyleOptionMenuItem *menuitem = qstyleoption_cast<const QStyleOptionMenuItem *>(option)) {
- // windows always has a check column, regardless whether we have an icon or not
- const qreal factor = QWindowsXPStylePrivate::nativeMetricScaleFactor(widget);
- int checkcol = qRound(qreal(25) * factor);
- const int gutterWidth = qRound(qreal(3) * factor);
- {
- XPThemeData theme(widget, nullptr, QWindowsXPStylePrivate::MenuTheme,
- MENU_POPUPCHECKBACKGROUND, MBI_HOT);
- XPThemeData themeSize = theme;
- themeSize.partId = MENU_POPUPCHECK;
- themeSize.stateId = 0;
- const QSizeF size = themeSize.size() * QWindowsStylePrivate::nativeMetricScaleFactor(widget);
- const QMarginsF margins = themeSize.margins() * QWindowsStylePrivate::nativeMetricScaleFactor(widget);
- checkcol = qMax(menuitem->maxIconWidth, qRound(gutterWidth + size.width() + margins.left() + margins.right()));
- }
- QRect rect = option->rect;
-
- //draw vertical menu line
- if (option->direction == Qt::LeftToRight)
- checkcol += rect.x();
- QPoint p1 = QStyle::visualPos(option->direction, menuitem->rect, QPoint(checkcol, rect.top()));
- QPoint p2 = QStyle::visualPos(option->direction, menuitem->rect, QPoint(checkcol, rect.bottom()));
- QRect gutterRect(p1.x(), p1.y(), gutterWidth, p2.y() - p1.y() + 1);
- XPThemeData theme2(widget, painter, QWindowsXPStylePrivate::MenuTheme,
- MENU_POPUPGUTTER, stateId, gutterRect);
- d->drawBackground(theme2);
-
- int x, y, w, h;
- menuitem->rect.getRect(&x, &y, &w, &h);
- int tab = menuitem->tabWidth;
- bool dis = !(menuitem->state & State_Enabled);
- bool checked = menuitem->checkType != QStyleOptionMenuItem::NotCheckable
- ? menuitem->checked : false;
- bool act = menuitem->state & State_Selected;
-
- if (menuitem->menuItemType == QStyleOptionMenuItem::Separator) {
- int yoff = y-2 + h / 2;
- const int separatorSize = qRound(qreal(6) * QWindowsStylePrivate::nativeMetricScaleFactor(widget));
- QPoint p1 = QPoint(x + checkcol, yoff);
- QPoint p2 = QPoint(x + w + separatorSize, yoff);
- stateId = MBI_HOT;
- QRect subRect(p1.x() + (gutterWidth - menuitem->rect.x()), p1.y(),
- p2.x() - p1.x(), separatorSize);
- subRect = QStyle::visualRect(option->direction, option->rect, subRect );
- XPThemeData theme2(widget, painter,
- QWindowsXPStylePrivate::MenuTheme,
- MENU_POPUPSEPARATOR, stateId, subRect);
- d->drawBackground(theme2);
- return;
- }
-
- QRect vCheckRect = visualRect(option->direction, menuitem->rect, QRect(menuitem->rect.x(),
- menuitem->rect.y(), checkcol - (gutterWidth + menuitem->rect.x()), menuitem->rect.height()));
-
- if (act) {
- stateId = dis ? MBI_DISABLED : MBI_HOT;
- XPThemeData theme2(widget, painter,
- QWindowsXPStylePrivate::MenuTheme,
- MENU_POPUPITEM, stateId, option->rect);
- d->drawBackground(theme2);
- }
-
- if (checked) {
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::MenuTheme,
- MENU_POPUPCHECKBACKGROUND,
- menuitem->icon.isNull() ? MBI_HOT : MBI_PUSHED, vCheckRect);
- XPThemeData themeSize = theme;
- themeSize.partId = MENU_POPUPCHECK;
- themeSize.stateId = 0;
- const QSizeF size = themeSize.size() * QWindowsStylePrivate::nativeMetricScaleFactor(widget);
- const QMarginsF margins = themeSize.margins() * QWindowsStylePrivate::nativeMetricScaleFactor(widget);
- QRect checkRect(0, 0, qRound(size.width() + margins.left() + margins.right()),
- qRound(size.height() + margins.bottom() + margins.top()));
- checkRect.moveCenter(vCheckRect.center());
- theme.rect = checkRect;
-
- d->drawBackground(theme);
-
- if (menuitem->icon.isNull()) {
- checkRect = QRect(QPoint(0, 0), size.toSize());
- checkRect.moveCenter(theme.rect.center());
- theme.rect = checkRect;
-
- theme.partId = MENU_POPUPCHECK;
- bool bullet = menuitem->checkType & QStyleOptionMenuItem::Exclusive;
- if (dis)
- theme.stateId = bullet ? MC_BULLETDISABLED: MC_CHECKMARKDISABLED;
- else
- theme.stateId = bullet ? MC_BULLETNORMAL: MC_CHECKMARKNORMAL;
- d->drawBackground(theme);
- }
- }
-
- if (!menuitem->icon.isNull()) {
- QIcon::Mode mode = dis ? QIcon::Disabled : QIcon::Normal;
- if (act && !dis)
- mode = QIcon::Active;
- QPixmap pixmap;
- if (checked)
- pixmap = menuitem->icon.pixmap(proxy()->pixelMetric(PM_SmallIconSize, option, widget), mode, QIcon::On);
- else
- pixmap = menuitem->icon.pixmap(proxy()->pixelMetric(PM_SmallIconSize, option, widget), mode);
- const int pixw = pixmap.width() / pixmap.devicePixelRatio();
- const int pixh = pixmap.height() / pixmap.devicePixelRatio();
- QRect pmr(0, 0, pixw, pixh);
- pmr.moveCenter(vCheckRect.center());
- painter->setPen(menuitem->palette.text().color());
- painter->drawPixmap(pmr.topLeft(), pixmap);
- }
-
- painter->setPen(menuitem->palette.buttonText().color());
-
- const QColor textColor = menuitem->palette.text().color();
- if (dis)
- painter->setPen(textColor);
-
- int xm = windowsItemFrame + checkcol + windowsItemHMargin + (gutterWidth - menuitem->rect.x()) - 1;
- int xpos = menuitem->rect.x() + xm;
- QRect textRect(xpos, y + windowsItemVMargin, w - xm - windowsRightBorder - tab + 1, h - 2 * windowsItemVMargin);
- QRect vTextRect = visualRect(option->direction, menuitem->rect, textRect);
- QString s = menuitem->text;
- if (!s.isEmpty()) { // draw text
- painter->save();
- int t = s.indexOf(QLatin1Char('\t'));
- int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine;
- if (!proxy()->styleHint(SH_UnderlineShortcut, menuitem, widget))
- text_flags |= Qt::TextHideMnemonic;
- text_flags |= Qt::AlignLeft;
- if (t >= 0) {
- QRect vShortcutRect = visualRect(option->direction, menuitem->rect,
- QRect(textRect.topRight(), QPoint(menuitem->rect.right(), textRect.bottom())));
- painter->drawText(vShortcutRect, text_flags, s.mid(t + 1));
- s = s.left(t);
- }
- QFont font = menuitem->font;
- if (menuitem->menuItemType == QStyleOptionMenuItem::DefaultItem)
- font.setBold(true);
- painter->setFont(font);
- painter->setPen(textColor);
- painter->drawText(vTextRect, text_flags, s.left(t));
- painter->restore();
- }
- if (menuitem->menuItemType == QStyleOptionMenuItem::SubMenu) {// draw sub menu arrow
- int dim = (h - 2 * windowsItemFrame) / 2;
- PrimitiveElement arrow;
- arrow = (option->direction == Qt::RightToLeft) ? PE_IndicatorArrowLeft : PE_IndicatorArrowRight;
- xpos = x + w - windowsArrowHMargin - windowsItemFrame - dim;
- QRect vSubMenuRect = visualRect(option->direction, menuitem->rect, QRect(xpos, y + h / 2 - dim / 2, dim, dim));
- QStyleOptionMenuItem newMI = *menuitem;
- newMI.rect = vSubMenuRect;
- newMI.state = dis ? State_None : State_Enabled;
- proxy()->drawPrimitive(arrow, &newMI, painter, widget);
- }
- }
- break;
-#endif // QT_CONFIG(menu)
- case CE_HeaderSection:
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(option)) {
- partId = HP_HEADERITEM;
- if (flags & State_Sunken)
- stateId = HIS_PRESSED;
- else if (flags & State_MouseOver)
- stateId = HIS_HOT;
- else
- stateId = HIS_NORMAL;
-
- if (header->sortIndicator != QStyleOptionHeader::None)
- stateId += 3;
-
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::HeaderTheme,
- partId, stateId, option->rect);
- d->drawBackground(theme);
- }
- break;
- case CE_MenuBarEmptyArea:
- {
- stateId = MBI_NORMAL;
- if (!(state & State_Enabled))
- stateId = MBI_DISABLED;
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::MenuTheme,
- MENU_BARBACKGROUND, stateId, option->rect);
- d->drawBackground(theme);
- }
- break;
- case CE_ToolBar:
- if (const QStyleOptionToolBar *toolbar = qstyleoption_cast<const QStyleOptionToolBar *>(option)) {
- QPalette pal = option->palette;
- pal.setColor(QPalette::Dark, option->palette.window().color().darker(130));
- QStyleOptionToolBar copyOpt = *toolbar;
- copyOpt.palette = pal;
- QWindowsStyle::drawControl(element, &copyOpt, painter, widget);
- }
- break;
-#if QT_CONFIG(dockwidget)
- case CE_DockWidgetTitle:
- if (const QStyleOptionDockWidget *dwOpt = qstyleoption_cast<const QStyleOptionDockWidget *>(option)) {
- const QDockWidget *dockWidget = qobject_cast<const QDockWidget *>(widget);
- QRect rect = option->rect;
- if (dockWidget && dockWidget->isFloating()) {
- QWindowsXPStyle::drawControl(element, option, painter, widget);
- break; //otherwise fall through
- }
-
- const bool verticalTitleBar = dwOpt->verticalTitleBar;
-
- if (verticalTitleBar) {
- rect = rect.transposed();
-
- painter->translate(rect.left() - 1, rect.top() + rect.width());
- painter->rotate(-90);
- painter->translate(-rect.left() + 1, -rect.top());
- }
-
- painter->setBrush(option->palette.window().color().darker(110));
- painter->setPen(option->palette.window().color().darker(130));
- painter->drawRect(rect.adjusted(0, 1, -1, -3));
-
- int buttonMargin = 4;
- int mw = proxy()->pixelMetric(QStyle::PM_DockWidgetTitleMargin, dwOpt, widget);
- int fw = proxy()->pixelMetric(PM_DockWidgetFrameWidth, dwOpt, widget);
- const QDockWidget *dw = qobject_cast<const QDockWidget *>(widget);
- bool isFloating = dw && dw->isFloating();
-
- QRect r = option->rect.adjusted(0, 2, -1, -3);
- QRect titleRect = r;
-
- if (dwOpt->closable) {
- QSize sz = proxy()->standardIcon(QStyle::SP_TitleBarCloseButton, dwOpt, widget).actualSize(QSize(10, 10));
- titleRect.adjust(0, 0, -sz.width() - mw - buttonMargin, 0);
- }
-
- if (dwOpt->floatable) {
- QSize sz = proxy()->standardIcon(QStyle::SP_TitleBarMaxButton, dwOpt, widget).actualSize(QSize(10, 10));
- titleRect.adjust(0, 0, -sz.width() - mw - buttonMargin, 0);
- }
-
- if (isFloating) {
- titleRect.adjust(0, -fw, 0, 0);
- if (widget && widget->windowIcon().cacheKey() != QApplication::windowIcon().cacheKey())
- titleRect.adjust(titleRect.height() + mw, 0, 0, 0);
- } else {
- titleRect.adjust(mw, 0, 0, 0);
- if (!dwOpt->floatable && !dwOpt->closable)
- titleRect.adjust(0, 0, -mw, 0);
- }
- if (!verticalTitleBar)
- titleRect = visualRect(dwOpt->direction, r, titleRect);
-
- if (!dwOpt->title.isEmpty()) {
- QString titleText = painter->fontMetrics().elidedText(dwOpt->title, Qt::ElideRight,
- verticalTitleBar ? titleRect.height() : titleRect.width());
- const int indent = 4;
- drawItemText(painter, rect.adjusted(indent + 1, 1, -indent - 1, -1),
- Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic,
- dwOpt->palette,
- dwOpt->state & State_Enabled, titleText,
- QPalette::WindowText);
- }
- }
- break;
-#endif // QT_CONFIG(dockwidget)
-#if QT_CONFIG(itemviews)
- case CE_ItemViewItem:
- {
- const QStyleOptionViewItem *vopt;
-
- const QAbstractItemView *view = qobject_cast<const QAbstractItemView *>(widget);
- bool newStyle = true;
-
- if (qobject_cast<const QTableView*>(widget))
- newStyle = false;
-
- if (newStyle && view && (vopt = qstyleoption_cast<const QStyleOptionViewItem *>(option))) {
- /*
- // We cannot currently get the correct selection color for "explorer style" views
- COLORREF cref = 0;
- XPThemeData theme(d->treeViewHelper(), 0, QLatin1String("LISTVIEW"), 0, 0);
- unsigned int res = GetThemeColor(theme.handle(), LVP_LISTITEM, LISS_SELECTED, TMT_TEXTCOLOR, &cref);
- QColor textColor(GetRValue(cref), GetGValue(cref), GetBValue(cref));
- */
- QPalette palette = vopt->palette;
- palette.setColor(QPalette::All, QPalette::HighlightedText, palette.color(QPalette::Active, QPalette::Text));
- // Note that setting a saturated color here results in ugly XOR colors in the focus rect
- palette.setColor(QPalette::All, QPalette::Highlight, palette.base().color().darker(108));
- QStyleOptionViewItem adjustedOption = *vopt;
- adjustedOption.palette = palette;
- // We hide the focusrect in singleselection as it is not required
- if ((view->selectionMode() == QAbstractItemView::SingleSelection)
- && !(vopt->state & State_KeyboardFocusChange))
- adjustedOption.state &= ~State_HasFocus;
- QWindowsXPStyle::drawControl(element, &adjustedOption, painter, widget);
- } else {
- QWindowsXPStyle::drawControl(element, option, painter, widget);
- }
- break;
- }
-#endif // QT_CONFIG(itemviews)
-#if QT_CONFIG(combobox)
- case CE_ComboBoxLabel:
- QCommonStyle::drawControl(element, option, painter, widget);
- break;
-#endif // QT_CONFIG(combobox)
- default:
- QWindowsXPStyle::drawControl(element, option, painter, widget);
- break;
- }
-}
-
-/*!
- \internal
-
- see drawPrimitive for comments on the animation support
-
- */
-void QWindowsVistaStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option,
- QPainter *painter, const QWidget *widget) const
-{
- QWindowsVistaStylePrivate *d = const_cast<QWindowsVistaStylePrivate*>(d_func());
- if (!QWindowsVistaStylePrivate::useVista()) {
- QWindowsStyle::drawComplexControl(control, option, painter, widget);
- return;
- }
-
- State state = option->state;
- SubControls sub = option->subControls;
- QRect r = option->rect;
-
- int partId = 0;
- int stateId = 0;
-
- State flags = option->state;
- if (widget && widget->testAttribute(Qt::WA_UnderMouse) && widget->isActiveWindow())
- flags |= State_MouseOver;
-
- if (d->transitionsEnabled() && canAnimate(option))
- {
-
- if (control == CC_ScrollBar || control == CC_SpinBox || control == CC_ComboBox) {
-
- QObject *styleObject = option->styleObject; // Can be widget or qquickitem
-
- int oldState = styleObject->property("_q_stylestate").toInt();
- int oldActiveControls = styleObject->property("_q_stylecontrols").toInt();
-
- QRect oldRect = styleObject->property("_q_stylerect").toRect();
- styleObject->setProperty("_q_stylestate", int(option->state));
- styleObject->setProperty("_q_stylecontrols", int(option->activeSubControls));
- styleObject->setProperty("_q_stylerect", option->rect);
-
- bool doTransition = ((state & State_Sunken) != (oldState & State_Sunken) ||
- (state & State_On) != (oldState & State_On) ||
- (state & State_MouseOver) != (oldState & State_MouseOver) ||
- oldActiveControls != int(option->activeSubControls));
-
- if (qstyleoption_cast<const QStyleOptionSlider *>(option)) {
- QRect oldSliderPos = styleObject->property("_q_stylesliderpos").toRect();
- QRect currentPos = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarSlider, widget);
- styleObject->setProperty("_q_stylesliderpos", currentPos);
- if (oldSliderPos != currentPos) {
- doTransition = false;
- d->stopAnimation(styleObject);
- }
- } else if (control == CC_SpinBox) {
- //spinboxes have a transition when focus changes
- if (!doTransition)
- doTransition = (state & State_HasFocus) != (oldState & State_HasFocus);
- }
-
- if (oldRect != option->rect) {
- doTransition = false;
- d->stopAnimation(styleObject);
- }
-
- if (doTransition) {
- QImage startImage = createAnimationBuffer(option, widget);
- QPainter startPainter(&startImage);
-
- QImage endImage = createAnimationBuffer(option, widget);
- QPainter endPainter(&endImage);
-
- QWindowsVistaAnimation *anim = qobject_cast<QWindowsVistaAnimation *>(d->animation(styleObject));
- QWindowsVistaTransition *t = new QWindowsVistaTransition(styleObject);
-
- // Draw the image that ends the animation by using the current styleoption
- QStyleOptionComplex *styleOption = qstyleoption_cast<QStyleOptionComplex*>(clonedAnimationStyleOption(option));
-
- styleObject->setProperty("_q_no_animation", true);
-
- // Draw transition source
- if (!anim) {
- styleOption->state = QStyle::State(oldState);
- styleOption->activeSubControls = QStyle::SubControl(oldActiveControls);
- proxy()->drawComplexControl(control, styleOption, &startPainter, widget);
- } else {
- anim->paint(&startPainter, option);
- }
- t->setStartImage(startImage);
-
- // Draw transition target
- styleOption->state = option->state;
- styleOption->activeSubControls = option->activeSubControls;
- proxy()->drawComplexControl(control, styleOption, &endPainter, widget);
-
- styleObject->setProperty("_q_no_animation", false);
-
- t->setEndImage(endImage);
- t->setStartTime(QTime::currentTime());
-
- if (option->state & State_MouseOver || option->state & State_Sunken)
- t->setDuration(150);
- else
- t->setDuration(500);
-
- deleteClonedAnimationStyleOption(styleOption);
- d->startAnimation(t);
- }
- if (QWindowsVistaAnimation *anim = qobject_cast<QWindowsVistaAnimation *>(d->animation(styleObject))) {
- anim->paint(painter, option);
- return;
- }
- }
- }
-
- switch (control) {
- case CC_ComboBox:
- if (const QStyleOptionComboBox *cmb = qstyleoption_cast<const QStyleOptionComboBox *>(option))
- {
- if (cmb->editable) {
- if (sub & SC_ComboBoxEditField) {
- partId = EP_EDITBORDER_NOSCROLL;
- if (!(flags & State_Enabled))
- stateId = ETS_DISABLED;
- else if (flags & State_MouseOver)
- stateId = ETS_HOT;
- else if (flags & State_HasFocus)
- stateId = ETS_FOCUSED;
- else
- stateId = ETS_NORMAL;
-
- XPThemeData theme(widget, painter,
- QWindowsXPStylePrivate::EditTheme,
- partId, stateId, r);
-
- d->drawBackground(theme);
- }
- if (sub & SC_ComboBoxArrow) {
- QRect subRect = proxy()->subControlRect(CC_ComboBox, option, SC_ComboBoxArrow, widget);
- XPThemeData theme(widget, painter, QWindowsXPStylePrivate::ComboboxTheme);
- theme.rect = subRect;
- partId = option->direction == Qt::RightToLeft ? CP_DROPDOWNBUTTONLEFT : CP_DROPDOWNBUTTONRIGHT;
-
- if (!(cmb->state & State_Enabled))
- stateId = CBXS_DISABLED;
- else if (cmb->state & State_Sunken || cmb->state & State_On)
- stateId = CBXS_PRESSED;
- else if (cmb->state & State_MouseOver && option->activeSubControls & SC_ComboBoxArrow)
- stateId = CBXS_HOT;
- else
- stateId = CBXS_NORMAL;
-
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
-
- } else {
- if (sub & SC_ComboBoxFrame) {
- XPThemeData theme(widget, painter, QWindowsXPStylePrivate::ComboboxTheme);
- theme.rect = option->rect;
- theme.partId = CP_READONLY;
- if (!(cmb->state & State_Enabled))
- theme.stateId = CBXS_DISABLED;
- else if (cmb->state & State_Sunken || cmb->state & State_On)
- theme.stateId = CBXS_PRESSED;
- else if (cmb->state & State_MouseOver)
- theme.stateId = CBXS_HOT;
- else
- theme.stateId = CBXS_NORMAL;
- d->drawBackground(theme);
- }
- if (sub & SC_ComboBoxArrow) {
- XPThemeData theme(widget, painter, QWindowsXPStylePrivate::ComboboxTheme);
- theme.rect = proxy()->subControlRect(CC_ComboBox, option, SC_ComboBoxArrow, widget);
- theme.partId = option->direction == Qt::RightToLeft ? CP_DROPDOWNBUTTONLEFT : CP_DROPDOWNBUTTONRIGHT;
- if (!(cmb->state & State_Enabled))
- theme.stateId = CBXS_DISABLED;
- else
- theme.stateId = CBXS_NORMAL;
- d->drawBackground(theme);
- }
- if ((sub & SC_ComboBoxEditField) && (flags & State_HasFocus)) {
- QStyleOptionFocusRect fropt;
- fropt.QStyleOption::operator=(*cmb);
- fropt.rect = proxy()->subControlRect(CC_ComboBox, option, SC_ComboBoxEditField, widget);
- proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, painter, widget);
- }
- }
- }
- break;
- case CC_ScrollBar:
- if (const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(option))
- {
- XPThemeData theme(widget, painter, QWindowsXPStylePrivate::ScrollBarTheme);
- bool maxedOut = (scrollbar->maximum == scrollbar->minimum);
- if (maxedOut)
- flags &= ~State_Enabled;
-
- bool isHorz = flags & State_Horizontal;
- bool isRTL = option->direction == Qt::RightToLeft;
- if (sub & SC_ScrollBarAddLine) {
- theme.rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarAddLine, widget);
- partId = SBP_ARROWBTN;
- if (!(flags & State_Enabled))
- stateId = (isHorz ? (isRTL ? ABS_LEFTDISABLED : ABS_RIGHTDISABLED) : ABS_DOWNDISABLED);
- else if (scrollbar->activeSubControls & SC_ScrollBarAddLine && (scrollbar->state & State_Sunken))
- stateId = (isHorz ? (isRTL ? ABS_LEFTPRESSED : ABS_RIGHTPRESSED) : ABS_DOWNPRESSED);
- else if (scrollbar->activeSubControls & SC_ScrollBarAddLine && (scrollbar->state & State_MouseOver))
- stateId = (isHorz ? (isRTL ? ABS_LEFTHOT : ABS_RIGHTHOT) : ABS_DOWNHOT);
- else if (scrollbar->state & State_MouseOver)
- stateId = (isHorz ? (isRTL ? ABS_LEFTHOVER : ABS_RIGHTHOVER) : ABS_DOWNHOVER);
- else
- stateId = (isHorz ? (isRTL ? ABS_LEFTNORMAL : ABS_RIGHTNORMAL) : ABS_DOWNNORMAL);
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- if (sub & SC_ScrollBarSubLine) {
- theme.rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarSubLine, widget);
- partId = SBP_ARROWBTN;
- if (!(flags & State_Enabled))
- stateId = (isHorz ? (isRTL ? ABS_RIGHTDISABLED : ABS_LEFTDISABLED) : ABS_UPDISABLED);
- else if (scrollbar->activeSubControls & SC_ScrollBarSubLine && (scrollbar->state & State_Sunken))
- stateId = (isHorz ? (isRTL ? ABS_RIGHTPRESSED : ABS_LEFTPRESSED) : ABS_UPPRESSED);
- else if (scrollbar->activeSubControls & SC_ScrollBarSubLine && (scrollbar->state & State_MouseOver))
- stateId = (isHorz ? (isRTL ? ABS_RIGHTHOT : ABS_LEFTHOT) : ABS_UPHOT);
- else if (scrollbar->state & State_MouseOver)
- stateId = (isHorz ? (isRTL ? ABS_RIGHTHOVER : ABS_LEFTHOVER) : ABS_UPHOVER);
- else
- stateId = (isHorz ? (isRTL ? ABS_RIGHTNORMAL : ABS_LEFTNORMAL) : ABS_UPNORMAL);
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- if (maxedOut) {
- theme.rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarSlider, widget);
- theme.rect = theme.rect.united(proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarSubPage, widget));
- theme.rect = theme.rect.united(proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarAddPage, widget));
- partId = flags & State_Horizontal ? SBP_LOWERTRACKHORZ : SBP_LOWERTRACKVERT;
- stateId = SCRBS_DISABLED;
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- } else {
- if (sub & SC_ScrollBarSubPage) {
- theme.rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarSubPage, widget);
- partId = flags & State_Horizontal ? SBP_UPPERTRACKHORZ : SBP_UPPERTRACKVERT;
- if (!(flags & State_Enabled))
- stateId = SCRBS_DISABLED;
- else if (scrollbar->activeSubControls & SC_ScrollBarSubPage && (scrollbar->state & State_Sunken))
- stateId = SCRBS_PRESSED;
- else if (scrollbar->activeSubControls & SC_ScrollBarSubPage && (scrollbar->state & State_MouseOver))
- stateId = SCRBS_HOT;
- else
- stateId = SCRBS_NORMAL;
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- if (sub & SC_ScrollBarAddPage) {
- theme.rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarAddPage, widget);
- partId = flags & State_Horizontal ? SBP_LOWERTRACKHORZ : SBP_LOWERTRACKVERT;
- if (!(flags & State_Enabled))
- stateId = SCRBS_DISABLED;
- else if (scrollbar->activeSubControls & SC_ScrollBarAddPage && (scrollbar->state & State_Sunken))
- stateId = SCRBS_PRESSED;
- else if (scrollbar->activeSubControls & SC_ScrollBarAddPage && (scrollbar->state & State_MouseOver))
- stateId = SCRBS_HOT;
- else
- stateId = SCRBS_NORMAL;
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- if (sub & SC_ScrollBarSlider) {
- theme.rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarSlider, widget);
- if (!(flags & State_Enabled))
- stateId = SCRBS_DISABLED;
- else if (scrollbar->activeSubControls & SC_ScrollBarSlider && (scrollbar->state & State_Sunken))
- stateId = SCRBS_PRESSED;
- else if (scrollbar->activeSubControls & SC_ScrollBarSlider && (scrollbar->state & State_MouseOver))
- stateId = SCRBS_HOT;
- else if (option->state & State_MouseOver)
- stateId = SCRBS_HOVER;
- else
- stateId = SCRBS_NORMAL;
-
- // Draw handle
- theme.partId = flags & State_Horizontal ? SBP_THUMBBTNHORZ : SBP_THUMBBTNVERT;
- theme.stateId = stateId;
- d->drawBackground(theme);
-
- if (QOperatingSystemVersion::current() < QOperatingSystemVersion::Windows8) {
- const QRect gripperBounds = QWindowsXPStylePrivate::scrollBarGripperBounds(flags, widget, &theme);
- // Draw gripper if there is enough space
- if (!gripperBounds.isEmpty() && flags & State_Enabled) {
- painter->save();
- XPThemeData grippBackground = theme;
- grippBackground.partId = flags & State_Horizontal ? SBP_LOWERTRACKHORZ : SBP_LOWERTRACKVERT;
- theme.rect = gripperBounds;
- painter->setClipRegion(d->region(theme));// Only change inside the region of the gripper
- d->drawBackground(grippBackground);// The gutter is the grippers background
- d->drawBackground(theme); // Transparent gripper ontop of background
- painter->restore();
- }
- }
- }
- }
- }
- break;
-#if QT_CONFIG(spinbox)
- case CC_SpinBox:
- if (const QStyleOptionSpinBox *sb = qstyleoption_cast<const QStyleOptionSpinBox *>(option))
- {
- XPThemeData theme(widget, painter, QWindowsXPStylePrivate::SpinTheme);
- if (sb->frame && (sub & SC_SpinBoxFrame)) {
- partId = EP_EDITBORDER_NOSCROLL;
- if (!(flags & State_Enabled))
- stateId = ETS_DISABLED;
- else if (flags & State_MouseOver)
- stateId = ETS_HOT;
- else if (flags & State_HasFocus)
- stateId = ETS_SELECTED;
- else
- stateId = ETS_NORMAL;
-
- XPThemeData ftheme(widget, painter,
- QWindowsXPStylePrivate::EditTheme,
- partId, stateId, r);
- // The spinbox in Windows QStyle is drawn with frameless QLineEdit inside it
- // That however breaks with QtQuickControls where this results in transparent
- // spinbox background, so if there's no "widget" passed (QtQuickControls case),
- // let ftheme.noContent be false, which fixes the spinbox rendering in QQC
- ftheme.noContent = (widget != nullptr);
- d->drawBackground(ftheme);
- }
- if (sub & SC_SpinBoxUp) {
- theme.rect = proxy()->subControlRect(CC_SpinBox, option, SC_SpinBoxUp, widget).adjusted(0, 0, 0, 1);
- partId = SPNP_UP;
- if (!(sb->stepEnabled & QAbstractSpinBox::StepUpEnabled) || !(flags & State_Enabled))
- stateId = UPS_DISABLED;
- else if (sb->activeSubControls == SC_SpinBoxUp && (sb->state & State_Sunken))
- stateId = UPS_PRESSED;
- else if (sb->activeSubControls == SC_SpinBoxUp && (sb->state & State_MouseOver))
- stateId = UPS_HOT;
- else
- stateId = UPS_NORMAL;
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- if (sub & SC_SpinBoxDown) {
- theme.rect = proxy()->subControlRect(CC_SpinBox, option, SC_SpinBoxDown, widget);
- partId = SPNP_DOWN;
- if (!(sb->stepEnabled & QAbstractSpinBox::StepDownEnabled) || !(flags & State_Enabled))
- stateId = DNS_DISABLED;
- else if (sb->activeSubControls == SC_SpinBoxDown && (sb->state & State_Sunken))
- stateId = DNS_PRESSED;
- else if (sb->activeSubControls == SC_SpinBoxDown && (sb->state & State_MouseOver))
- stateId = DNS_HOT;
- else
- stateId = DNS_NORMAL;
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- }
- break;
-#endif // QT_CONFIG(spinbox)
- default:
- QWindowsXPStyle::drawComplexControl(control, option, painter, widget);
- break;
- }
-}
-
-/*!
- \internal
- */
-QSize QWindowsVistaStyle::sizeFromContents(ContentsType type, const QStyleOption *option,
- const QSize &size, const QWidget *widget) const
-{
- if (!QWindowsVistaStylePrivate::useVista())
- return QWindowsStyle::sizeFromContents(type, option, size, widget);
-
- QSize sz(size);
- switch (type) {
- case CT_MenuItem:
- sz = QWindowsXPStyle::sizeFromContents(type, option, size, widget);
- int minimumHeight;
- {
- XPThemeData theme(widget, nullptr,
- QWindowsXPStylePrivate::MenuTheme,
- MENU_POPUPCHECKBACKGROUND, MBI_HOT);
- XPThemeData themeSize = theme;
- themeSize.partId = MENU_POPUPCHECK;
- themeSize.stateId = 0;
- const QSizeF size = themeSize.size() * QWindowsStylePrivate::nativeMetricScaleFactor(widget);
- const QMarginsF margins = themeSize.margins() * QWindowsStylePrivate::nativeMetricScaleFactor(widget);
- minimumHeight = qMax(qRound(size.height() + margins.bottom() + margins.top()), sz.height());
- sz.rwidth() += qRound(size.width() + margins.left() + margins.right());
- }
-
- if (const QStyleOptionMenuItem *menuitem = qstyleoption_cast<const QStyleOptionMenuItem *>(option)) {
- if (menuitem->menuItemType != QStyleOptionMenuItem::Separator)
- sz.setHeight(minimumHeight);
- }
- return sz;
-#if QT_CONFIG(menubar)
- case CT_MenuBarItem:
- if (!sz.isEmpty())
- sz += QSize(windowsItemHMargin * 5 + 1, 5);
- return sz;
-#endif
- case CT_ItemViewItem:
- sz = QWindowsXPStyle::sizeFromContents(type, option, size, widget);
- sz.rheight() += 2;
- return sz;
- case CT_SpinBox:
- {
- //Spinbox adds frame twice
- sz = QWindowsStyle::sizeFromContents(type, option, size, widget);
- int border = proxy()->pixelMetric(PM_SpinBoxFrameWidth, option, widget);
- sz -= QSize(2*border, 2*border);
- }
- return sz;
- case CT_HeaderSection:
- {
- // When there is a sort indicator it adds to the width but it is shown
- // above the text natively and not on the side
- if (QStyleOptionHeader *hdr = qstyleoption_cast<QStyleOptionHeader *>(const_cast<QStyleOption *>(option))) {
- QStyleOptionHeader::SortIndicator sortInd = hdr->sortIndicator;
- hdr->sortIndicator = QStyleOptionHeader::None;
- sz = QWindowsXPStyle::sizeFromContents(type, hdr, size, widget);
- hdr->sortIndicator = sortInd;
- return sz;
- }
- break;
- }
- default:
- break;
- }
- return QWindowsXPStyle::sizeFromContents(type, option, size, widget);
-}
-
-/*!
- \internal
- */
-QRect QWindowsVistaStyle::subElementRect(SubElement element, const QStyleOption *option, const QWidget *widget) const
-{
- if (!QWindowsVistaStylePrivate::useVista())
- return QWindowsStyle::subElementRect(element, option, widget);
-
- QRect rect = QWindowsXPStyle::subElementRect(element, option, widget);
- switch (element) {
-
- case SE_PushButtonContents:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(option)) {
- MARGINS borderSize;
- const HTHEME theme = OpenThemeData(widget ? QWindowsVistaStylePrivate::winId(widget) : nullptr, L"Button");
- if (theme) {
- int stateId = PBS_NORMAL;
- if (!(option->state & State_Enabled))
- stateId = PBS_DISABLED;
- else if (option->state & State_Sunken)
- stateId = PBS_PRESSED;
- else if (option->state & State_MouseOver)
- stateId = PBS_HOT;
- else if (btn->features & QStyleOptionButton::DefaultButton)
- stateId = PBS_DEFAULTED;
-
- int border = proxy()->pixelMetric(PM_DefaultFrameWidth, btn, widget);
- rect = option->rect.adjusted(border, border, -border, -border);
-
- if (SUCCEEDED(GetThemeMargins(theme, nullptr, BP_PUSHBUTTON, stateId, TMT_CONTENTMARGINS, nullptr, &borderSize))) {
- rect.adjust(borderSize.cxLeftWidth, borderSize.cyTopHeight,
- -borderSize.cxRightWidth, -borderSize.cyBottomHeight);
- rect = visualRect(option->direction, option->rect, rect);
- }
- }
- }
- break;
-
- case SE_HeaderArrow:
- {
- QRect r = rect;
- int h = option->rect.height();
- int w = option->rect.width();
- int x = option->rect.x();
- int y = option->rect.y();
- int margin = proxy()->pixelMetric(QStyle::PM_HeaderMargin, option, widget);
-
- XPThemeData theme(widget, nullptr,
- QWindowsXPStylePrivate::HeaderTheme,
- HP_HEADERSORTARROW, HSAS_SORTEDDOWN, option->rect);
-
- int arrowWidth = 13;
- int arrowHeight = 5;
- if (theme.isValid()) {
- const QSizeF size = theme.size() * QWindowsStylePrivate::nativeMetricScaleFactor(widget);
- if (!size.isEmpty()) {
- arrowWidth = qRound(size.width());
- arrowHeight = qRound(size.height());
- }
- }
- if (option->state & State_Horizontal) {
- r.setRect(x + w/2 - arrowWidth/2, y , arrowWidth, arrowHeight);
- } else {
- int vert_size = w / 2;
- r.setRect(x + 5, y + h - margin * 2 - vert_size,
- w - margin * 2 - 5, vert_size);
- }
- rect = visualRect(option->direction, option->rect, r);
- }
- break;
-
- case SE_HeaderLabel:
- {
- int margin = proxy()->pixelMetric(QStyle::PM_HeaderMargin, option, widget);
- QRect r = option->rect;
- r.setRect(option->rect.x() + margin, option->rect.y() + margin,
- option->rect.width() - margin * 2, option->rect.height() - margin * 2);
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(option)) {
- // Subtract width needed for arrow, if there is one
- if (header->sortIndicator != QStyleOptionHeader::None) {
- if (!(option->state & State_Horizontal)) //horizontal arrows are positioned on top
- r.setHeight(r.height() - (option->rect.width() / 2) - (margin * 2));
- }
- }
- rect = visualRect(option->direction, option->rect, r);
- }
- break;
- case SE_ProgressBarContents:
- rect = QCommonStyle::subElementRect(SE_ProgressBarGroove, option, widget);
- break;
- case SE_ItemViewItemDecoration:
- if (qstyleoption_cast<const QStyleOptionViewItem *>(option))
- rect.adjust(-2, 0, 2, 0);
- break;
- case SE_ItemViewItemFocusRect:
- if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(option)) {
- QRect textRect = subElementRect(QStyle::SE_ItemViewItemText, option, widget);
- QRect displayRect = subElementRect(QStyle::SE_ItemViewItemDecoration, option, widget);
- if (!vopt->icon.isNull())
- rect = textRect.united(displayRect);
- else
- rect = textRect;
- rect = rect.adjusted(1, 0, -1, 0);
- }
- break;
- default:
- break;
- }
- return rect;
-}
-
-
-/*
- This function is used by subControlRect to check if a button
- should be drawn for the given subControl given a set of window flags.
-*/
-static bool buttonVisible(const QStyle::SubControl sc, const QStyleOptionTitleBar *tb){
-
- bool isMinimized = tb->titleBarState & Qt::WindowMinimized;
- bool isMaximized = tb->titleBarState & Qt::WindowMaximized;
- const auto flags = tb->titleBarFlags;
- bool retVal = false;
- switch (sc) {
- case QStyle::SC_TitleBarContextHelpButton:
- if (flags & Qt::WindowContextHelpButtonHint)
- retVal = true;
- break;
- case QStyle::SC_TitleBarMinButton:
- if (!isMinimized && (flags & Qt::WindowMinimizeButtonHint))
- retVal = true;
- break;
- case QStyle::SC_TitleBarNormalButton:
- if (isMinimized && (flags & Qt::WindowMinimizeButtonHint))
- retVal = true;
- else if (isMaximized && (flags & Qt::WindowMaximizeButtonHint))
- retVal = true;
- break;
- case QStyle::SC_TitleBarMaxButton:
- if (!isMaximized && (flags & Qt::WindowMaximizeButtonHint))
- retVal = true;
- break;
- case QStyle::SC_TitleBarShadeButton:
- if (!isMinimized && flags & Qt::WindowShadeButtonHint)
- retVal = true;
- break;
- case QStyle::SC_TitleBarUnshadeButton:
- if (isMinimized && flags & Qt::WindowShadeButtonHint)
- retVal = true;
- break;
- case QStyle::SC_TitleBarCloseButton:
- if (flags & Qt::WindowSystemMenuHint)
- retVal = true;
- break;
- case QStyle::SC_TitleBarSysMenu:
- if (flags & Qt::WindowSystemMenuHint)
- retVal = true;
- break;
- default :
- retVal = true;
- }
- return retVal;
-}
-
-
-/*! \internal */
-int QWindowsVistaStyle::styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget,
- QStyleHintReturn *returnData) const
-{
- QWindowsVistaStylePrivate *d = const_cast<QWindowsVistaStylePrivate*>(d_func());
- int ret = 0;
- switch (hint) {
- case SH_MessageBox_CenterButtons:
- ret = false;
- break;
- case SH_ToolTip_Mask:
- if (option) {
- if (QStyleHintReturnMask *mask = qstyleoption_cast<QStyleHintReturnMask*>(returnData)) {
- ret = true;
- XPThemeData themeData(widget, nullptr,
- QWindowsXPStylePrivate::ToolTipTheme,
- TTP_STANDARD, TTSS_NORMAL, option->rect);
- mask->region = d->region(themeData);
- }
- }
- break;
- case SH_Table_GridLineColor:
- if (option)
- ret = int(option->palette.color(QPalette::Base).darker(118).rgba());
- else
- ret = -1;
- break;
- case SH_Header_ArrowAlignment:
- ret = Qt::AlignTop | Qt::AlignHCenter;
- break;
- default:
- ret = QWindowsXPStyle::styleHint(hint, option, widget, returnData);
- break;
- }
- return ret;
-}
-
-
-/*!
- \internal
- */
-QRect QWindowsVistaStyle::subControlRect(ComplexControl control, const QStyleOptionComplex *option,
- SubControl subControl, const QWidget *widget) const
-{
- if (!QWindowsVistaStylePrivate::useVista())
- return QWindowsStyle::subControlRect(control, option, subControl, widget);
-
- QRect rect = QWindowsXPStyle::subControlRect(control, option, subControl, widget);
- switch (control) {
-#if QT_CONFIG(combobox)
- case CC_ComboBox:
- if (const QStyleOptionComboBox *cb = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
- const int x = cb->rect.x(), y = cb->rect.y(), wi = cb->rect.width(), he = cb->rect.height();
- const int margin = cb->frame ? 3 : 0;
- const int bmarg = cb->frame ? 2 : 0;
- const int arrowWidth = qRound(QStyleHelper::dpiScaled(16, option));
- const int arrowButtonWidth = bmarg + arrowWidth;
- const int xpos = x + wi - arrowButtonWidth;
-
- switch (subControl) {
- case SC_ComboBoxFrame:
- rect = cb->rect;
- break;
- case SC_ComboBoxArrow:
- rect.setRect(xpos, y , arrowButtonWidth, he);
- break;
- case SC_ComboBoxEditField:
- rect.setRect(x + margin, y + margin, wi - 2 * margin - arrowWidth, he - 2 * margin);
- break;
- case SC_ComboBoxListBoxPopup:
- rect = cb->rect;
- break;
- default:
- break;
- }
- rect = visualRect(cb->direction, cb->rect, rect);
- return rect;
- }
- break;
-#endif // QT_CONFIG(combobox)
- case CC_TitleBar:
- if (const QStyleOptionTitleBar *tb = qstyleoption_cast<const QStyleOptionTitleBar *>(option)) {
- if (!buttonVisible(subControl, tb))
- return rect;
- const qreal factor = QWindowsStylePrivate::nativeMetricScaleFactor(widget);
- const bool isToolTitle = false;
- const int height = tb->rect.height();
- const int width = tb->rect.width();
- const int buttonWidth =
- qRound(qreal(GetSystemMetrics(SM_CXSIZE)) * factor - QStyleHelper::dpiScaled(4, option));
-
- const int frameWidth = proxy()->pixelMetric(PM_MdiSubWindowFrameWidth, option, widget);
- const bool sysmenuHint = (tb->titleBarFlags & Qt::WindowSystemMenuHint) != 0;
- const bool minimizeHint = (tb->titleBarFlags & Qt::WindowMinimizeButtonHint) != 0;
- const bool maximizeHint = (tb->titleBarFlags & Qt::WindowMaximizeButtonHint) != 0;
- const bool contextHint = (tb->titleBarFlags & Qt::WindowContextHelpButtonHint) != 0;
- const bool shadeHint = (tb->titleBarFlags & Qt::WindowShadeButtonHint) != 0;
-
- switch (subControl) {
- case SC_TitleBarLabel:
- rect = QRect(frameWidth, 0, width - (buttonWidth + frameWidth + 10), height);
- if (isToolTitle) {
- if (sysmenuHint) {
- rect.adjust(0, 0, int(-buttonWidth - 3 * factor), 0);
- }
- if (minimizeHint || maximizeHint)
- rect.adjust(0, 0, int(-buttonWidth - 2 * factor), 0);
- } else {
- if (sysmenuHint) {
- const int leftOffset = int(height - 8 * factor);
- rect.adjust(leftOffset, 0, 0, int(4 * factor));
- }
- if (minimizeHint)
- rect.adjust(0, 0, int(-buttonWidth - 2 * factor), 0);
- if (maximizeHint)
- rect.adjust(0, 0, int(-buttonWidth - 2 * factor), 0);
- if (contextHint)
- rect.adjust(0, 0, int(-buttonWidth - 2 * factor), 0);
- if (shadeHint)
- rect.adjust(0, 0, int(-buttonWidth - 2 * factor), 0);
- }
- rect.translate(0, int(2 * factor));
- rect = visualRect(option->direction, option->rect, rect);
- break;
- case SC_TitleBarSysMenu:
- {
- const int controlTop = int(6 * factor);
- const int controlHeight = int(height - controlTop - 3 * factor);
- int iconExtent = proxy()->pixelMetric(PM_SmallIconSize, option);
- QSize iconSize = tb->icon.actualSize(QSize(iconExtent, iconExtent));
- if (tb->icon.isNull())
- iconSize = QSize(controlHeight, controlHeight);
- int hPad = (controlHeight - iconSize.height())/2;
- int vPad = (controlHeight - iconSize.width())/2;
- rect = QRect(frameWidth + hPad, controlTop + vPad, iconSize.width(), iconSize.height());
- rect.translate(0, int(3 * factor));
- rect = visualRect(option->direction, option->rect, rect);
- }
- break;
- default:
- break;
- }
- }
- break;
- default:
- break;
- }
- return rect;
-}
-
-/*!
- \internal
- */
-QStyle::SubControl QWindowsVistaStyle::hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option,
- const QPoint &pos, const QWidget *widget) const
-{
- if (!QWindowsVistaStylePrivate::useVista()) {
- return QWindowsStyle::hitTestComplexControl(control, option, pos, widget);
- }
- return QWindowsXPStyle::hitTestComplexControl(control, option, pos, widget);
-}
-
-int QWindowsVistaStylePrivate::fixedPixelMetric(QStyle::PixelMetric pm)
-{
- switch (pm) {
- case QStyle::PM_DockWidgetTitleBarButtonMargin:
- return 5;
- case QStyle::PM_ScrollBarSliderMin:
- return 18;
- case QStyle::PM_MenuHMargin:
- case QStyle::PM_MenuVMargin:
- return 0;
- case QStyle::PM_MenuPanelWidth:
- return 3;
- default:
- break;
- }
- return QWindowsVistaStylePrivate::InvalidMetric;
-}
-
-/*!
- \internal
- */
-int QWindowsVistaStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const
-{
- if (!QWindowsVistaStylePrivate::useVista())
- return QWindowsStyle::pixelMetric(metric, option, widget);
-
- int ret = QWindowsVistaStylePrivate::fixedPixelMetric(metric);
- if (ret != QWindowsStylePrivate::InvalidMetric)
- return int(QStyleHelper::dpiScaled(ret, option));
-
- return QWindowsXPStyle::pixelMetric(metric, option, widget);
-}
-
-/*!
- \internal
- */
-QPalette QWindowsVistaStyle::standardPalette() const
-{
- return QWindowsXPStyle::standardPalette();
-}
-
-/*!
- \internal
- */
-void QWindowsVistaStyle::polish(QApplication *app)
-{
- QWindowsXPStyle::polish(app);
-}
-
-/*!
- \internal
- */
-void QWindowsVistaStyle::polish(QWidget *widget)
-{
- QWindowsXPStyle::polish(widget);
-#if QT_CONFIG(lineedit)
- if (qobject_cast<QLineEdit*>(widget))
- widget->setAttribute(Qt::WA_Hover);
- else
-#endif // QT_CONFIG(lineedit)
- if (qobject_cast<QGroupBox*>(widget))
- widget->setAttribute(Qt::WA_Hover);
-#if QT_CONFIG(commandlinkbutton)
- else if (qobject_cast<QCommandLinkButton*>(widget)) {
- QFont buttonFont = widget->font();
- buttonFont.setFamilies(QStringList{QLatin1String("Segoe UI")});
- widget->setFont(buttonFont);
- }
-#endif // QT_CONFIG(commandlinkbutton)
- else if (widget->inherits("QTipLabel")){
- //note that since tooltips are not reused
- //we do not have to care about unpolishing
- widget->setContentsMargins(3, 0, 4, 0);
- COLORREF bgRef;
- HTHEME theme = OpenThemeData(widget ? QWindowsVistaStylePrivate::winId(widget) : nullptr, L"TOOLTIP");
- if (theme && SUCCEEDED(GetThemeColor(theme, TTP_STANDARD, TTSS_NORMAL, TMT_TEXTCOLOR, &bgRef))) {
- QColor textColor = QColor::fromRgb(bgRef);
- QPalette pal;
- pal.setColor(QPalette::All, QPalette::ToolTipText, textColor);
- widget->setPalette(pal);
- }
- } else if (qobject_cast<QMessageBox *> (widget)) {
- widget->setAttribute(Qt::WA_StyledBackground);
-#if QT_CONFIG(dialogbuttonbox)
- QDialogButtonBox *buttonBox = widget->findChild<QDialogButtonBox *>(QLatin1String("qt_msgbox_buttonbox"));
- if (buttonBox)
- buttonBox->setContentsMargins(0, 9, 0, 0);
-#endif
- }
-#if QT_CONFIG(inputdialog)
- else if (qobject_cast<QInputDialog *> (widget)) {
- widget->setAttribute(Qt::WA_StyledBackground);
-#if QT_CONFIG(dialogbuttonbox)
- QDialogButtonBox *buttonBox = widget->findChild<QDialogButtonBox *>(QLatin1String("qt_inputdlg_buttonbox"));
- if (buttonBox)
- buttonBox->setContentsMargins(0, 9, 0, 0);
-#endif
- }
-#endif // QT_CONFIG(inputdialog)
- else if (QTreeView *tree = qobject_cast<QTreeView *> (widget)) {
- tree->viewport()->setAttribute(Qt::WA_Hover);
- }
- else if (QListView *list = qobject_cast<QListView *> (widget)) {
- list->viewport()->setAttribute(Qt::WA_Hover);
- }
-}
-
-/*!
- \internal
- */
-void QWindowsVistaStyle::unpolish(QWidget *widget)
-{
- QWindowsXPStyle::unpolish(widget);
-
- QWindowsVistaStylePrivate *d = d_func();
-
- d->stopAnimation(widget);
-
-#if QT_CONFIG(lineedit)
- if (qobject_cast<QLineEdit*>(widget))
- widget->setAttribute(Qt::WA_Hover, false);
- else
-#endif // QT_CONFIG(lineedit)
- if (qobject_cast<QGroupBox*>(widget))
- widget->setAttribute(Qt::WA_Hover, false);
- else if (qobject_cast<QMessageBox *> (widget)) {
- widget->setAttribute(Qt::WA_StyledBackground, false);
-#if QT_CONFIG(dialogbuttonbox)
- QDialogButtonBox *buttonBox = widget->findChild<QDialogButtonBox *>(QLatin1String("qt_msgbox_buttonbox"));
- if (buttonBox)
- buttonBox->setContentsMargins(0, 0, 0, 0);
-#endif
- }
-#if QT_CONFIG(inputdialog)
- else if (qobject_cast<QInputDialog *> (widget)) {
- widget->setAttribute(Qt::WA_StyledBackground, false);
-#if QT_CONFIG(dialogbuttonbox)
- QDialogButtonBox *buttonBox = widget->findChild<QDialogButtonBox *>(QLatin1String("qt_inputdlg_buttonbox"));
- if (buttonBox)
- buttonBox->setContentsMargins(0, 0, 0, 0);
-#endif
- }
-#endif // QT_CONFIG(inputdialog)
- else if (QTreeView *tree = qobject_cast<QTreeView *> (widget)) {
- tree->viewport()->setAttribute(Qt::WA_Hover, false);
- }
-#if QT_CONFIG(commandlinkbutton)
- else if (qobject_cast<QCommandLinkButton*>(widget)) {
- QFont font = QApplication::font("QCommandLinkButton");
- QFont widgetFont = widget->font();
- widgetFont.setFamilies(font.families()); //Only family set by polish
- widget->setFont(widgetFont);
- }
-#endif // QT_CONFIG(commandlinkbutton)
-}
-
-
-/*!
- \internal
- */
-void QWindowsVistaStyle::unpolish(QApplication *app)
-{
- QWindowsXPStyle::unpolish(app);
-}
-
-/*!
- \internal
- */
-void QWindowsVistaStyle::polish(QPalette &pal)
-{
- QWindowsStyle::polish(pal);
- pal.setBrush(QPalette::AlternateBase, pal.base().color().darker(104));
-}
-
-/*!
- \internal
- */
-QPixmap QWindowsVistaStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *option,
- const QWidget *widget) const
-{
- if (!QWindowsVistaStylePrivate::useVista()) {
- return QWindowsStyle::standardPixmap(standardPixmap, option, widget);
- }
- return QWindowsXPStyle::standardPixmap(standardPixmap, option, widget);
-}
-
-QWindowsVistaStylePrivate::QWindowsVistaStylePrivate() :
- QWindowsXPStylePrivate()
-{
-}
-
-bool QWindowsVistaStylePrivate::transitionsEnabled() const
-{
- BOOL animEnabled = false;
- if (SystemParametersInfo(SPI_GETCLIENTAREAANIMATION, 0, &animEnabled, 0))
- {
- if (animEnabled)
- return true;
- }
- return false;
-}
-
-/*!
-\reimp
-*/
-QIcon QWindowsVistaStyle::standardIcon(StandardPixmap standardIcon,
- const QStyleOption *option,
- const QWidget *widget) const
-{
- if (!QWindowsVistaStylePrivate::useVista()) {
- return QWindowsStyle::standardIcon(standardIcon, option, widget);
- }
-
- QWindowsVistaStylePrivate *d = const_cast<QWindowsVistaStylePrivate *>(d_func());
- switch (standardIcon) {
- case SP_CommandLink:
- {
- XPThemeData theme(nullptr, nullptr,
- QWindowsXPStylePrivate::ButtonTheme,
- BP_COMMANDLINKGLYPH, CMDLGS_NORMAL);
- if (theme.isValid()) {
- const QSize size = (theme.size() * QWindowsStylePrivate::nativeMetricScaleFactor(widget)).toSize();
- QIcon linkGlyph;
- QPixmap pm(size);
- pm.fill(Qt::transparent);
- QPainter p(&pm);
- theme.painter = &p;
- theme.rect = QRect(QPoint(0, 0), size);
- d->drawBackground(theme);
- linkGlyph.addPixmap(pm, QIcon::Normal, QIcon::Off); // Normal
- pm.fill(Qt::transparent);
-
- theme.stateId = CMDLGS_PRESSED;
- d->drawBackground(theme);
- linkGlyph.addPixmap(pm, QIcon::Normal, QIcon::On); // Pressed
- pm.fill(Qt::transparent);
-
- theme.stateId = CMDLGS_HOT;
- d->drawBackground(theme);
- linkGlyph.addPixmap(pm, QIcon::Active, QIcon::Off); // Hover
- pm.fill(Qt::transparent);
-
- theme.stateId = CMDLGS_DISABLED;
- d->drawBackground(theme);
- linkGlyph.addPixmap(pm, QIcon::Disabled, QIcon::Off); // Disabled
- return linkGlyph;
- }
- }
- break;
- default:
- break;
- }
- return QWindowsXPStyle::standardIcon(standardIcon, option, widget);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle_p.h b/src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle_p.h
deleted file mode 100644
index 07cd2b8a..00000000
--- a/src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle_p.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWidgets module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QWINDOWSVISTASTYLE_P_H
-#define QWINDOWSVISTASTYLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtWidgets/private/qtwidgetsglobal_p.h>
-#include "qquickwindowsxpstyle_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QWindowsVistaStylePrivate;
-class QWindowsVistaStyle : public QWindowsXPStyle
-{
- Q_OBJECT
-public:
- QWindowsVistaStyle();
- ~QWindowsVistaStyle() override;
-
- void drawPrimitive(PrimitiveElement element, const QStyleOption *option,
- QPainter *painter,
- const QWidget *widget = nullptr) const override;
- void drawControl(ControlElement element, const QStyleOption *option,
- QPainter *painter, const QWidget *widget) const override;
- void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option,
- QPainter *painter, const QWidget *widget) const override;
- QSize sizeFromContents(ContentsType type, const QStyleOption *option,
- const QSize &size, const QWidget *widget) const override;
-
- QRect subElementRect(SubElement element, const QStyleOption *option,
- const QWidget *widget) const override;
- QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt,
- SubControl sc, const QWidget *widget) const override;
-
- SubControl hitTestComplexControl(ComplexControl control, const QStyleOptionComplex *option,
- const QPoint &pos, const QWidget *widget = nullptr) const override;
-
- QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = nullptr,
- const QWidget *widget = nullptr) const override;
- QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt,
- const QWidget *widget = nullptr) const override;
- int pixelMetric(PixelMetric metric, const QStyleOption *option = nullptr,
- const QWidget *widget = nullptr) const override;
- int styleHint(StyleHint hint, const QStyleOption *opt = nullptr,
- const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override;
-
- void polish(QWidget *widget) override;
- void unpolish(QWidget *widget) override;
- void polish(QPalette &pal) override;
- void polish(QApplication *app) override;
- void unpolish(QApplication *app) override;
- QPalette standardPalette() const override;
-
-private:
- Q_DISABLE_COPY_MOVE(QWindowsVistaStyle)
- Q_DECLARE_PRIVATE(QWindowsVistaStyle)
- friend class QStyleFactory;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWINDOWSVISTASTYLE_P_H
diff --git a/src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle_p_p.h b/src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle_p_p.h
deleted file mode 100644
index a5383175..00000000
--- a/src/quicknativestyle/qstyle/windows/qquickwindowsvistastyle_p_p.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWidgets module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QWINDOWSVISTASTYLE_P_P_H
-#define QWINDOWSVISTASTYLE_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists for the convenience
-// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header
-// file may change from version to version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtWidgets/private/qtwidgetsglobal_p.h>
-#include "qquickwindowsvistastyle_p.h"
-#include "qquickwindowsxpstyle_p_p.h"
-#include <private/qstyleanimation_p.h>
-#include <private/qpaintengine_raster_p.h>
-#include <qpaintengine.h>
-#include <qwidget.h>
-#include <qapplication.h>
-#include <qpixmapcache.h>
-#include <qstyleoption.h>
-#if QT_CONFIG(pushbutton)
-#include <qpushbutton.h>
-#endif
-#include <qradiobutton.h>
-#if QT_CONFIG(lineedit)
-#include <qlineedit.h>
-#endif
-#include <qgroupbox.h>
-#if QT_CONFIG(toolbutton)
-#include <qtoolbutton.h>
-#endif
-#if QT_CONFIG(spinbox)
-#include <qspinbox.h>
-#endif
-#if QT_CONFIG(toolbar)
-#include <qtoolbar.h>
-#endif
-#if QT_CONFIG(combobox)
-#include <qcombobox.h>
-#endif
-#if QT_CONFIG(scrollbar)
-#include <qscrollbar.h>
-#endif
-#if QT_CONFIG(progressbar)
-#include <qprogressbar.h>
-#endif
-#if QT_CONFIG(dockwidget)
-#include <qdockwidget.h>
-#endif
-#if QT_CONFIG(listview)
-#include <qlistview.h>
-#endif
-#if QT_CONFIG(treeview)
-#include <qtreeview.h>
-#endif
-#include <qtextedit.h>
-#include <qmessagebox.h>
-#if QT_CONFIG(dialogbuttonbox)
-#include <qdialogbuttonbox.h>
-#endif
-#include <qinputdialog.h>
-#if QT_CONFIG(tableview)
-#include <qtableview.h>
-#endif
-#include <qdatetime.h>
-#if QT_CONFIG(commandlinkbutton)
-#include <qcommandlinkbutton.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-#if !defined(SCHEMA_VERIFY_VSSYM32)
-#define TMT_ANIMATIONDURATION 5006
-#define TMT_TRANSITIONDURATIONS 6000
-#define EP_EDITBORDER_NOSCROLL 6
-#define EP_EDITBORDER_HVSCROLL 9
-#define EP_BACKGROUND 3
-#define EBS_NORMAL 1
-#define EBS_HOT 2
-#define EBS_DISABLED 3
-#define EBS_READONLY 5
-#define PBS_DEFAULTED_ANIMATING 6
-#define MBI_NORMAL 1
-#define MBI_HOT 2
-#define MBI_PUSHED 3
-#define MBI_DISABLED 4
-#define MB_ACTIVE 1
-#define MB_INACTIVE 2
-#define PP_FILL 5
-#define PP_FILLVERT 6
-#define PP_MOVEOVERLAY 8
-#define PP_MOVEOVERLAYVERT 10
-#define MENU_BARBACKGROUND 7
-#define MENU_BARITEM 8
-#define MENU_POPUPCHECK 11
-#define MENU_POPUPCHECKBACKGROUND 12
-#define MENU_POPUPGUTTER 13
-#define MENU_POPUPITEM 14
-#define MENU_POPUPBORDERS 10
-#define MENU_POPUPSEPARATOR 15
-#define MC_CHECKMARKNORMAL 1
-#define MC_CHECKMARKDISABLED 2
-#define MC_BULLETNORMAL 3
-#define MC_BULLETDISABLED 4
-#define ABS_UPHOVER 17
-#define ABS_DOWNHOVER 18
-#define ABS_LEFTHOVER 19
-#define ABS_RIGHTHOVER 20
-#define CP_DROPDOWNBUTTONRIGHT 6
-#define CP_DROPDOWNBUTTONLEFT 7
-#define SCRBS_HOVER 5
-#define TVP_HOTGLYPH 4
-#define SPI_GETCLIENTAREAANIMATION 0x1042
-#define TDLG_PRIMARYPANEL 1
-#define TDLG_SECONDARYPANEL 8
-#endif
-
-class QWindowsVistaAnimation : public QBlendStyleAnimation
-{
- Q_OBJECT
-public:
- QWindowsVistaAnimation(Type type, QObject *target) : QBlendStyleAnimation(type, target) { }
-
- bool isUpdateNeeded() const override;
- void paint(QPainter *painter, const QStyleOption *option);
-};
-
-
-// Handles state transition animations
-class QWindowsVistaTransition : public QWindowsVistaAnimation
-{
- Q_OBJECT
-public:
- QWindowsVistaTransition(QObject *target) : QWindowsVistaAnimation(Transition, target) {}
-};
-
-
-// Handles pulse animations (default buttons)
-class QWindowsVistaPulse: public QWindowsVistaAnimation
-{
- Q_OBJECT
-public:
- QWindowsVistaPulse(QObject *target) : QWindowsVistaAnimation(Pulse, target) {}
-};
-
-
-class QWindowsVistaStylePrivate : public QWindowsXPStylePrivate
-{
- Q_DECLARE_PUBLIC(QWindowsVistaStyle)
-
-public:
- QWindowsVistaStylePrivate();
-
- static int fixedPixelMetric(QStyle::PixelMetric pm);
- static inline bool useVista();
- bool transitionsEnabled() const;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWINDOWSVISTASTYLE_P_P_H
diff --git a/src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle.cpp b/src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle.cpp
deleted file mode 100644
index a3e8ef20..00000000
--- a/src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle.cpp
+++ /dev/null
@@ -1,4149 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWidgets module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "qquickstylehelper_p.h"
-#include "qquickwindowsxpstyle_p.h"
-#include "qquickwindowsxpstyle_p_p.h"
-
-#include <private/qobject_p.h>
-#include <private/qpaintengine_raster_p.h>
-#include <qpa/qplatformnativeinterface.h>
-#include <qpainter.h>
-#include <qpaintengine.h>
-#include <qbackingstore.h>
-#include <qpixmapcache.h>
-#include <qpa/qplatformnativeinterface.h>
-#include <qvarlengtharray.h>
-#include <qdebug.h>
-
-#include <algorithm>
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2 {
-
-// General const values
-static const int windowsItemFrame = 2; // menu item frame width
-static const int windowsItemHMargin = 3; // menu item hor text margin
-static const int windowsItemVMargin = 0; // menu item ver text margin
-static const int windowsArrowHMargin = 6; // arrow horizontal margin
-static const int windowsRightBorder = 12; // right border on windows
-
-// Theme names matching the QWindowsXPStylePrivate::Theme enumeration.
-static const wchar_t *themeNames[QWindowsXPStylePrivate::NThemes] =
-{
- L"BUTTON", L"COMBOBOX", L"EDIT", L"HEADER", L"LISTVIEW",
- L"MENU", L"PROGRESS", L"REBAR", L"SCROLLBAR", L"SPIN",
- L"TAB", L"TASKDIALOG", L"TOOLBAR", L"TOOLTIP", L"TRACKBAR",
- L"TREEVIEW", L"WINDOW", L"STATUS", L"TREEVIEW"
-};
-
-// Theme data helper ------------------------------------------------------------------------------
-/* \internal
- Returns \c true if the themedata is valid for use.
-*/
-bool XPThemeData::isValid()
-{
- return QWindowsXPStylePrivate::useXP() && theme >= 0 && handle();
-}
-
-
-/* \internal
- Returns the theme engine handle to the specific class.
- If the handle hasn't been opened before, it opens the data, and
- adds it to a static map, for caching.
-*/
-HTHEME XPThemeData::handle()
-{
- if (!QWindowsXPStylePrivate::useXP())
- return nullptr;
-
- if (!htheme)
- htheme = QWindowsXPStylePrivate::createTheme(theme, QWindowsXPStylePrivate::winId(window));
- return htheme;
-}
-
-/* \internal
- Converts a QRect to the native RECT structure.
-*/
-RECT XPThemeData::toRECT(const QRect &qr)
-{
- RECT r;
- r.left = qr.x();
- r.right = qr.x() + qr.width();
- r.top = qr.y();
- r.bottom = qr.y() + qr.height();
- return r;
-}
-
-/* \internal
- Returns the native region of a part, if the part is considered
- transparent. The region is scaled to the parts size (rect).
-*/
-
-// QWindowsXPStylePrivate -------------------------------------------------------------------------
-// Static initializations
-HWND QWindowsXPStylePrivate::m_vistaTreeViewHelper = nullptr;
-HTHEME QWindowsXPStylePrivate::m_themes[NThemes];
-bool QWindowsXPStylePrivate::use_xp = false;
-QBasicAtomicInt QWindowsXPStylePrivate::ref = Q_BASIC_ATOMIC_INITIALIZER(-1); // -1 based refcounting
-
-static void qt_add_rect(HRGN &winRegion, QRect r)
-{
- HRGN rgn = CreateRectRgn(r.left(), r.top(), r.x() + r.width(), r.y() + r.height());
- if (rgn) {
- HRGN dest = CreateRectRgn(0,0,0,0);
- int result = CombineRgn(dest, winRegion, rgn, RGN_OR);
- if (result) {
- DeleteObject(winRegion);
- winRegion = dest;
- }
- DeleteObject(rgn);
- }
-}
-
-static HRGN qt_hrgn_from_qregion(const QRegion &region)
-{
- HRGN hRegion = CreateRectRgn(0,0,0,0);
- if (region.rectCount() == 1) {
- qt_add_rect(hRegion, region.boundingRect());
- return hRegion;
- }
- for (const QRect &rect : region)
- qt_add_rect(hRegion, rect);
- return hRegion;
-}
-
-/* \internal
- Checks if the theme engine can/should be used, or if we should
- fall back to Windows style.
-*/
-bool QWindowsXPStylePrivate::useXP(bool update)
-{
- if (update) {
- use_xp = IsThemeActive() && (IsAppThemed() || !QCoreApplication::instance())
- && !QWindowsStylePrivate::isDarkMode();
- }
- return use_xp;
-}
-
-/* \internal
- Handles refcounting, and queries the theme engine for usage.
-*/
-void QWindowsXPStylePrivate::init(bool force)
-{
- if (ref.ref() && !force)
- return;
- if (!force) // -1 based atomic refcounting
- ref.ref();
-
- useXP(true);
- std::fill(m_themes, m_themes + NThemes, nullptr);
-}
-
-/* \internal
- Cleans up all static data.
-*/
-void QWindowsXPStylePrivate::cleanup(bool force)
-{
- if (bufferBitmap) {
- if (bufferDC && nullBitmap)
- SelectObject(bufferDC, nullBitmap);
- DeleteObject(bufferBitmap);
- bufferBitmap = nullptr;
- }
-
- if (bufferDC)
- DeleteDC(bufferDC);
- bufferDC = nullptr;
-
- if (ref.deref() && !force)
- return;
- if (!force) // -1 based atomic refcounting
- ref.deref();
-
- use_xp = false;
- cleanupHandleMap();
-}
-
-/* In order to obtain the correct VistaTreeViewTheme (arrows for PE_IndicatorBranch),
- * we need to set the windows "explorer" theme explicitly on a native
- * window and open the "TREEVIEW" theme handle passing its window handle
- * in order to get Vista-style item view themes (particulary drawBackground()
- * for selected items needs this).
- * We invoke a service of the native Windows interface to create
- * a non-visible window handle, open the theme on it and insert it into
- * the cache so that it is found by XPThemeData::handle() first.
- */
-
-static inline HWND createTreeViewHelperWindow()
-{
- if (QPlatformNativeInterface *ni = QGuiApplication::platformNativeInterface()) {
- void *hwnd = nullptr;
- void *wndProc = reinterpret_cast<void *>(DefWindowProc);
- if (QMetaObject::invokeMethod(ni, "createMessageWindow", Qt::DirectConnection,
- Q_RETURN_ARG(void*, hwnd),
- Q_ARG(QString, QStringLiteral("QTreeViewThemeHelperWindowClass")),
- Q_ARG(QString, QStringLiteral("QTreeViewThemeHelperWindow")),
- Q_ARG(void*, wndProc)) && hwnd) {
- return reinterpret_cast<HWND>(hwnd);
- }
- }
- return nullptr;
-}
-
-bool QWindowsXPStylePrivate::initVistaTreeViewTheming()
-{
- if (m_vistaTreeViewHelper)
- return true;
-
- m_vistaTreeViewHelper = createTreeViewHelperWindow();
- if (!m_vistaTreeViewHelper) {
- qWarning("Unable to create the treeview helper window.");
- return false;
- }
- if (FAILED(SetWindowTheme(m_vistaTreeViewHelper, L"explorer", nullptr))) {
- qErrnoWarning("SetWindowTheme() failed.");
- cleanupVistaTreeViewTheming();
- return false;
- }
- return true;
-}
-
-void QWindowsXPStylePrivate::cleanupVistaTreeViewTheming()
-{
- if (m_vistaTreeViewHelper) {
- DestroyWindow(m_vistaTreeViewHelper);
- m_vistaTreeViewHelper = nullptr;
- }
-}
-
-/* \internal
- Closes all open theme data handles to ensure that we don't leak
- resources, and that we don't refere to old handles when for
- example the user changes the theme style.
-*/
-void QWindowsXPStylePrivate::cleanupHandleMap()
-{
- for (auto &theme : m_themes) {
- if (theme) {
- CloseThemeData(theme);
- theme = nullptr;
- }
- }
- QWindowsXPStylePrivate::cleanupVistaTreeViewTheming();
-}
-
-HTHEME QWindowsXPStylePrivate::createTheme(int theme, HWND hwnd)
-{
- if (Q_UNLIKELY(theme < 0 || theme >= NThemes || !hwnd)) {
- qWarning("Invalid parameters #%d, %p", theme, hwnd);
- return nullptr;
- }
- if (!m_themes[theme]) {
- const wchar_t *name = themeNames[theme];
- if (theme == VistaTreeViewTheme && QWindowsXPStylePrivate::initVistaTreeViewTheming())
- hwnd = QWindowsXPStylePrivate::m_vistaTreeViewHelper;
- m_themes[theme] = OpenThemeData(hwnd, name);
- if (Q_UNLIKELY(!m_themes[theme]))
- qErrnoWarning("OpenThemeData() failed for theme %d (%s).",
- theme, qPrintable(themeName(theme)));
- }
- return m_themes[theme];
-}
-
-QString QWindowsXPStylePrivate::themeName(int theme)
-{
- return theme >= 0 && theme < NThemes ?
- QString::fromWCharArray(themeNames[theme]) :
- QString();
-}
-
-/*
-bool QWindowsXPStylePrivate::isItemViewDelegateLineEdit(const QWidget *widget)
-{
- if (!widget)
- return false;
- const QWidget *parent1 = widget->parentWidget();
- // Exlude dialogs or other toplevels parented on item views.
- if (!parent1 || parent1->isWindow())
- return false;
- const QWidget *parent2 = parent1->parentWidget();
- return parent2 && widget->inherits("QLineEdit")
- && parent2->inherits("QAbstractItemView");
-}
-*/
-
-/*
-// Returns whether base color is set for this widget
-bool QWindowsXPStylePrivate::isLineEditBaseColorSet(const QStyleOption *option, const QWidget *widget)
-{
- uint resolveMask = option->palette.resolve();
- if (widget) {
- // Since spin box includes a line edit we need to resolve the palette mask also from
- // the parent, as while the color is always correct on the palette supplied by panel,
- // the mask can still be empty. If either mask specifies custom base color, use that.
-#if QT_CONFIG(spinbox)
- if (const QAbstractSpinBox *spinbox = qobject_cast<QAbstractSpinBox*>(widget->parentWidget()))
- resolveMask |= spinbox->palette().resolve();
-#endif // QT_CONFIG(spinbox)
- }
- return (resolveMask & (1 << QPalette::Base)) != 0;
-}
-*/
-
-/*! \internal
- This function will always return a valid window handle, and might
- create a limbo widget to do so.
- We often need a window handle to for example open theme data, so
- this function ensures that we get one.
-*/
-HWND QWindowsXPStylePrivate::winId(const QWindow *window)
-{
- if (window)
- if (const HWND hwnd = reinterpret_cast<HWND>(window->winId()))
- return hwnd;
-
- // Find top level with native window (there might be dialogs that do not have one).
- const auto allWindows = QGuiApplication::allWindows();
- for (const QWindow *window : allWindows) {
- if (window->isTopLevel() && window->type() != Qt::Desktop && window->handle() != nullptr)
- return reinterpret_cast<HWND>(window->winId());
- }
-
- return GetDesktopWindow();
-}
-
-/*! \internal
- Returns a native buffer (DIB section) of at least the size of
- ( \a x , \a y ). The buffer has a 32 bit depth, to not lose
- the alpha values on proper alpha-pixmaps.
-*/
-HBITMAP QWindowsXPStylePrivate::buffer(int w, int h)
-{
- // If we already have a HBITMAP which is of adequate size, just return that
- if (bufferBitmap) {
- if (bufferW >= w && bufferH >= h)
- return bufferBitmap;
- // Not big enough, discard the old one
- if (bufferDC && nullBitmap)
- SelectObject(bufferDC, nullBitmap);
- DeleteObject(bufferBitmap);
- bufferBitmap = nullptr;
- }
-
- w = qMax(bufferW, w);
- h = qMax(bufferH, h);
-
- if (!bufferDC) {
- HDC displayDC = GetDC(nullptr);
- bufferDC = CreateCompatibleDC(displayDC);
- ReleaseDC(nullptr, displayDC);
- }
-
- // Define the header
- BITMAPINFO bmi;
- memset(&bmi, 0, sizeof(bmi));
- bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
- bmi.bmiHeader.biWidth = w;
- bmi.bmiHeader.biHeight = -h;
- bmi.bmiHeader.biPlanes = 1;
- bmi.bmiHeader.biBitCount = 32;
- bmi.bmiHeader.biCompression = BI_RGB;
-
- // Create the pixmap
- bufferPixels = nullptr;
- bufferBitmap = CreateDIBSection(bufferDC, &bmi, DIB_RGB_COLORS, reinterpret_cast<void **>(&bufferPixels), nullptr, 0);
- GdiFlush();
- nullBitmap = static_cast<HBITMAP>(SelectObject(bufferDC, bufferBitmap));
-
- if (Q_UNLIKELY(!bufferBitmap)) {
- qErrnoWarning("QWindowsXPStylePrivate::buffer(%dx%d), CreateDIBSection() failed.", w, h);
- bufferW = 0;
- bufferH = 0;
- return nullptr;
- }
- if (Q_UNLIKELY(!bufferPixels)) {
- qErrnoWarning("QWindowsXPStylePrivate::buffer(%dx%d), CreateDIBSection() did not allocate pixel data.", w, h);
- bufferW = 0;
- bufferH = 0;
- return nullptr;
- }
- bufferW = w;
- bufferH = h;
-#ifdef DEBUG_XP_STYLE
- qDebug("Creating new dib section (%d, %d)", w, h);
-#endif
- return bufferBitmap;
-}
-
-/*! \internal
- Returns \c true if the part contains any transparency at all. This does
- not indicate what kind of transparency we're dealing with. It can be
- - Alpha transparency
- - Masked transparency
-*/
-bool QWindowsXPStylePrivate::isTransparent(XPThemeData &themeData)
-{
- return IsThemeBackgroundPartiallyTransparent(themeData.handle(), themeData.partId,
- themeData.stateId);
-}
-
-
-/*! \internal
- Returns a QRegion of the region of the part
-*/
-QRegion QWindowsXPStylePrivate::region(XPThemeData &themeData)
-{
- HRGN hRgn = nullptr;
- const qreal factor = QWindowsStylePrivate::nativeMetricScaleFactor(themeData.window);
- RECT rect = themeData.toRECT(QRect(themeData.rect.topLeft() / factor, themeData.rect.size() / factor));
- if (!SUCCEEDED(GetThemeBackgroundRegion(themeData.handle(), bufferHDC(), themeData.partId,
- themeData.stateId, &rect, &hRgn))) {
- return QRegion();
- }
-
- HRGN dest = CreateRectRgn(0, 0, 0, 0);
- const bool success = CombineRgn(dest, hRgn, nullptr, RGN_COPY) != ERROR;
-
- QRegion region;
-
- if (success) {
- const auto numBytes = GetRegionData(dest, 0, nullptr);
- if (numBytes == 0)
- return QRegion();
-
- char *buf = new (std::nothrow) char[numBytes];
- if (!buf)
- return QRegion();
-
- RGNDATA *rd = reinterpret_cast<RGNDATA*>(buf);
- if (GetRegionData(dest, numBytes, rd) == 0) {
- delete [] buf;
- return QRegion();
- }
-
- RECT *r = reinterpret_cast<RECT*>(rd->Buffer);
- for (uint i = 0; i < rd->rdh.nCount; ++i) {
- QRect rect;
- rect.setCoords(int(r->left * factor), int(r->top * factor), int((r->right - 1) * factor), int((r->bottom - 1) * factor));
- ++r;
- region |= rect;
- }
-
- delete [] buf;
- }
-
- DeleteObject(hRgn);
- DeleteObject(dest);
-
- return region;
-}
-
-/*! \internal
- Returns \c true if the native doublebuffer contains pixels with
- varying alpha value.
-*/
-bool QWindowsXPStylePrivate::hasAlphaChannel(const QRect &rect)
-{
- const int startX = rect.left();
- const int startY = rect.top();
- const int w = rect.width();
- const int h = rect.height();
-
- int firstAlpha = -1;
- for (int y = startY; y < h/2; ++y) {
- auto buffer = reinterpret_cast<const DWORD *>(bufferPixels) + (y * bufferW);
- for (int x = startX; x < w; ++x, ++buffer) {
- int alpha = (*buffer) >> 24;
- if (firstAlpha == -1)
- firstAlpha = alpha;
- else if (alpha != firstAlpha)
- return true;
- }
- }
- return false;
-}
-
-/*! \internal
- When the theme engine paints both a true alpha pixmap and a glyph
- into our buffer, the glyph might not contain a proper alpha value.
- The rule of thumb for premultiplied pixmaps is that the color
- values of a pixel can never be higher than the alpha values, so
- we use this to our advantage here, and fix all instances where
- this occures.
-*/
-bool QWindowsXPStylePrivate::fixAlphaChannel(const QRect &rect)
-{
- const int startX = rect.left();
- const int startY = rect.top();
- const int w = rect.width();
- const int h = rect.height();
- bool hasFixedAlphaValue = false;
-
- for (int y = startY; y < h; ++y) {
- auto buffer = reinterpret_cast<DWORD *>(bufferPixels) + (y * bufferW);
- for (int x = startX; x < w; ++x, ++buffer) {
- uint pixel = *buffer;
- int alpha = qAlpha(pixel);
- if (qRed(pixel) > alpha || qGreen(pixel) > alpha || qBlue(pixel) > alpha) {
- *buffer |= 0xff000000;
- hasFixedAlphaValue = true;
- }
- }
- }
- return hasFixedAlphaValue;
-}
-
-/*! \internal
- Swaps the alpha values on certain pixels:
- 0xFF?????? -> 0x00??????
- 0x00?????? -> 0xFF??????
- Used to determin the mask of a non-alpha transparent pixmap in
- the native doublebuffer, and swap the alphas so we may paint
- the image as a Premultiplied QImage with drawImage(), and obtain
- the mask transparency.
-*/
-bool QWindowsXPStylePrivate::swapAlphaChannel(const QRect &rect, bool allPixels)
-{
- const int startX = rect.left();
- const int startY = rect.top();
- const int w = rect.width();
- const int h = rect.height();
- bool valueChange = false;
-
- // Flip the alphas, so that 255-alpha pixels are 0, and 0-alpha are 255.
- for (int y = startY; y < h; ++y) {
- auto buffer = reinterpret_cast<DWORD *>(bufferPixels) + (y * bufferW);
- for (int x = startX; x < w; ++x, ++buffer) {
- if (allPixels) {
- *buffer |= 0xFF000000;
- continue;
- }
- unsigned int alphaValue = (*buffer) & 0xFF000000;
- if (alphaValue == 0xFF000000) {
- *buffer = 0;
- valueChange = true;
- } else if (alphaValue == 0) {
- *buffer |= 0xFF000000;
- valueChange = true;
- }
- }
- }
- return valueChange;
-}
-
-enum TransformType { SimpleTransform, HighDpiScalingTransform, ComplexTransform };
-
-static inline TransformType transformType(const QTransform &transform, qreal devicePixelRatio)
-{
- if (transform.type() <= QTransform::TxTranslate)
- return SimpleTransform;
- if (transform.type() > QTransform::TxScale)
- return ComplexTransform;
- return qFuzzyCompare(transform.m11(), devicePixelRatio)
- && qFuzzyCompare(transform.m22(), devicePixelRatio)
- ? HighDpiScalingTransform : ComplexTransform;
-}
-
-// QTBUG-60571: Exclude known fully opaque theme parts which produce values
-// invalid in ARGB32_Premultiplied (for example, 0x00ffffff).
-static inline bool isFullyOpaque(const XPThemeData &themeData)
-{
- return themeData.theme == QWindowsXPStylePrivate::TaskDialogTheme && themeData.partId == TDLG_PRIMARYPANEL;
-}
-
-/*! \internal
- Main theme drawing function.
- Determines the correct lowlevel drawing method depending on several
- factors.
- Use drawBackgroundThruNativeBuffer() if:
- - Painter does not have an HDC
- - Theme part is flipped (mirrored horizontally)
- else use drawBackgroundDirectly().
- \note drawBackgroundThruNativeBuffer() can return false for large
- sizes due to buffer()/CreateDIBSection() failing.
-*/
-bool QWindowsXPStylePrivate::drawBackground(XPThemeData &themeData, qreal correctionFactor)
-{
- if (themeData.rect.isEmpty())
- return true;
-
- QPainter *painter = themeData.painter;
- Q_ASSERT_X(painter != nullptr, "QWindowsXPStylePrivate::drawBackground()", "Trying to draw a theme part without a painter");
- if (!painter || !painter->isActive())
- return false;
-
- painter->save();
-
- // Access paintDevice via engine since the painter may
- // return the clip device which can still be a widget device in case of grabWidget().
-
- //bool translucentToplevel = false;
- //const QPaintDevice *paintDevice = painter->device();
- const qreal additionalDevicePixelRatio = themeData.window ? themeData.window->devicePixelRatio() : qreal(1);
- Q_ASSERT(painter->device()->devType() != QInternal::Widget);
-/*
- if (paintDevice->devType() == QInternal::Widget) {
- const QWidget *window = static_cast<const QWidget *>(paintDevice)->window();
- translucentToplevel = window->testAttribute(Qt::WA_TranslucentBackground);
- }
-
- const TransformType tt = transformType(painter->deviceTransform(), aditionalDevicePixelRatio);
-
- bool canDrawDirectly = false;
- if (themeData.widget && painter->opacity() == 1.0 && !themeData.rotate
- && !isFullyOpaque(themeData)
- && tt != ComplexTransform && !themeData.mirrorVertically
- && !translucentToplevel) {
- // Draw on backing store DC only for real widgets or backing store images.
- const QPaintDevice *enginePaintDevice = painter->paintEngine()->paintDevice();
- switch (enginePaintDevice->devType()) {
- case QInternal::Widget:
- canDrawDirectly = true;
- break;
- case QInternal::Image:
- // Ensure the backing store has received as resize and is initialized.
- if (QBackingStore *bs = backingStoreForWidget(themeData.widget))
- if (bs->size().isValid() && bs->paintDevice() == enginePaintDevice)
- canDrawDirectly = true;
- }
- }
-
- const HDC dc = canDrawDirectly ? hdcForWidgetBackingStore(themeData.widget) : nullptr;
- const bool result = dc && qFuzzyCompare(correctionFactor, qreal(1))
- ? drawBackgroundDirectly(dc, themeData, aditionalDevicePixelRatio)
- : drawBackgroundThruNativeBuffer(themeData, aditionalDevicePixelRatio, correctionFactor);
- */
- const bool result = drawBackgroundThruNativeBuffer(themeData, additionalDevicePixelRatio, correctionFactor);
- painter->restore();
- return result;
-}
-
-static inline QRectF scaleRect(const QRectF &r, qreal factor)
-{
- return r.isValid() && factor > 1
- ? QRectF(r.topLeft() * factor, r.size() * factor)
- : r;
-}
-
-static QRegion scaleRegion(const QRegion &region, qreal factor)
-{
- if (region.isEmpty() || qFuzzyCompare(factor, qreal(1)))
- return region;
- QRegion result;
- for (const QRect &rect : region)
- result += QRectF(QPointF(rect.topLeft()) * factor, QSizeF(rect.size() * factor)).toRect();
- return result;
-}
-
-/*! \internal
- This function draws the theme parts directly to the paintengines HDC.
- Do not use this if you need to perform other transformations on the
- resulting data.
-*/
-bool QWindowsXPStylePrivate::drawBackgroundDirectly(HDC dc, XPThemeData &themeData, qreal additionalDevicePixelRatio)
-{
- QPainter *painter = themeData.painter;
-
- const auto &deviceTransform = painter->deviceTransform();
- const QPointF redirectionDelta(deviceTransform.dx(), deviceTransform.dy());
- const QRect area = scaleRect(QRectF(themeData.rect), additionalDevicePixelRatio).translated(redirectionDelta).toRect();
-
- QRegion sysRgn = painter->paintEngine()->systemClip();
- if (sysRgn.isEmpty())
- sysRgn = area;
- else
- sysRgn &= area;
- if (painter->hasClipping())
- sysRgn &= scaleRegion(painter->clipRegion(), additionalDevicePixelRatio).translated(redirectionDelta.toPoint());
- HRGN hrgn = qt_hrgn_from_qregion(sysRgn);
- SelectClipRgn(dc, hrgn);
-
-#ifdef DEBUG_XP_STYLE
- printf("---[ DIRECT PAINTING ]------------------> Name(%-10s) Part(%d) State(%d)\n",
- qPrintable(themeData.name), themeData.partId, themeData.stateId);
- showProperties(themeData);
-#endif
-
- RECT drawRECT = themeData.toRECT(area);
- DTBGOPTS drawOptions;
- memset(&drawOptions, 0, sizeof(drawOptions));
- drawOptions.dwSize = sizeof(drawOptions);
- drawOptions.rcClip = themeData.toRECT(sysRgn.boundingRect());
- drawOptions.dwFlags = DTBG_CLIPRECT
- | (themeData.noBorder ? DTBG_OMITBORDER : 0)
- | (themeData.noContent ? DTBG_OMITCONTENT : 0)
- | (themeData.mirrorHorizontally ? DTBG_MIRRORDC : 0);
-
- const HRESULT result = DrawThemeBackgroundEx(themeData.handle(), dc, themeData.partId, themeData.stateId, &(drawRECT), &drawOptions);
- SelectClipRgn(dc, nullptr);
- DeleteObject(hrgn);
- return SUCCEEDED(result);
-}
-
-/*! \internal
- This function uses a secondary Native doublebuffer for painting parts.
- It should only be used when the painteengine doesn't provide a proper
- HDC for direct painting (e.g. when doing a grabWidget(), painting to
- other pixmaps etc), or when special transformations are needed (e.g.
- flips (horizonal mirroring only, vertical are handled by the theme
- engine).
-
- \a correctionFactor is an additional factor used to scale up controls
- that are too small on High DPI screens, as has been observed for
- WP_MDICLOSEBUTTON, WP_MDIRESTOREBUTTON, WP_MDIMINBUTTON (QTBUG-75927).
-*/
-bool QWindowsXPStylePrivate::drawBackgroundThruNativeBuffer(XPThemeData &themeData,
- qreal additionalDevicePixelRatio,
- qreal correctionFactor)
-{
- QPainter *painter = themeData.painter;
- QRectF rectF = scaleRect(QRectF(themeData.rect), additionalDevicePixelRatio);
-
- if ((themeData.rotate + 90) % 180 == 0) { // Catch 90,270,etc.. degree flips.
- rectF = QRectF(0, 0, rectF.height(), rectF.width());
- }
- rectF.moveTo(0, 0);
-
- const bool hasCorrectionFactor = !qFuzzyCompare(correctionFactor, qreal(1));
- QRect rect = rectF.toRect();
- QRect drawRect = hasCorrectionFactor
- ? QRectF(rectF.topLeft() / correctionFactor, rectF.size() / correctionFactor).toRect() : rect;
- int partId = themeData.partId;
- int stateId = themeData.stateId;
- int w = rect.width();
- int h = rect.height();
-
- // Values initialized later, either from cached values, or from function calls
- AlphaChannelType alphaType = UnknownAlpha;
- bool stateHasData = true; // We assume so;
- bool hasAlpha = false;
- bool partIsTransparent;
- bool potentialInvalidAlpha;
-
- QString pixmapCacheKey = QStringLiteral("$qt_xp_");
- pixmapCacheKey.append(themeName(themeData.theme));
- pixmapCacheKey.append(QLatin1Char('p'));
- pixmapCacheKey.append(QString::number(partId));
- pixmapCacheKey.append(QLatin1Char('s'));
- pixmapCacheKey.append(QString::number(stateId));
- pixmapCacheKey.append(QLatin1Char('s'));
- pixmapCacheKey.append(themeData.noBorder ? QLatin1Char('0') : QLatin1Char('1'));
- pixmapCacheKey.append(QLatin1Char('b'));
- pixmapCacheKey.append(themeData.noContent ? QLatin1Char('0') : QLatin1Char('1'));
- pixmapCacheKey.append(QString::number(w));
- pixmapCacheKey.append(QLatin1Char('w'));
- pixmapCacheKey.append(QString::number(h));
- pixmapCacheKey.append(QLatin1Char('h'));
- pixmapCacheKey.append(QString::number(additionalDevicePixelRatio));
- pixmapCacheKey.append(QLatin1Char('d'));
- if (hasCorrectionFactor) {
- pixmapCacheKey.append(QLatin1Char('c'));
- pixmapCacheKey.append(QString::number(correctionFactor));
- }
-
- QPixmap cachedPixmap;
- ThemeMapKey key(themeData);
- ThemeMapData data = alphaCache.value(key);
-
- bool haveCachedPixmap = false;
- bool isCached = data.dataValid;
- if (isCached) {
- partIsTransparent = data.partIsTransparent;
- hasAlpha = data.hasAlphaChannel;
- alphaType = data.alphaType;
- potentialInvalidAlpha = data.hadInvalidAlpha;
-
- haveCachedPixmap = QPixmapCache::find(pixmapCacheKey, &cachedPixmap);
-
-#ifdef DEBUG_XP_STYLE
- char buf[25];
- ::sprintf(buf, "+ Pixmap(%3d, %3d) ]", w, h);
- printf("---[ CACHED %s--------> Name(%-10s) Part(%d) State(%d)\n",
- haveCachedPixmap ? buf : "]-------------------",
- qPrintable(themeData.name), themeData.partId, themeData.stateId);
-#endif
- } else {
- // Not cached, so get values from Theme Engine
- BOOL tmt_borderonly = false;
- COLORREF tmt_transparentcolor = 0x0;
- PROPERTYORIGIN proporigin = PO_NOTFOUND;
- GetThemeBool(themeData.handle(), themeData.partId, themeData.stateId, TMT_BORDERONLY, &tmt_borderonly);
- GetThemeColor(themeData.handle(), themeData.partId, themeData.stateId, TMT_TRANSPARENTCOLOR, &tmt_transparentcolor);
- GetThemePropertyOrigin(themeData.handle(), themeData.partId, themeData.stateId, TMT_CAPTIONMARGINS, &proporigin);
-
- partIsTransparent = isTransparent(themeData);
-
- potentialInvalidAlpha = false;
- GetThemePropertyOrigin(themeData.handle(), themeData.partId, themeData.stateId, TMT_GLYPHTYPE, &proporigin);
- if (proporigin == PO_PART || proporigin == PO_STATE) {
- int tmt_glyphtype = GT_NONE;
- GetThemeEnumValue(themeData.handle(), themeData.partId, themeData.stateId, TMT_GLYPHTYPE, &tmt_glyphtype);
- potentialInvalidAlpha = partIsTransparent && tmt_glyphtype == GT_IMAGEGLYPH;
- }
-
-#ifdef DEBUG_XP_STYLE
- printf("---[ NOT CACHED ]-----------------------> Name(%-10s) Part(%d) State(%d)\n",
- qPrintable(themeData.name), themeData.partId, themeData.stateId);
- printf("-->partIsTransparen = %d\n", partIsTransparent);
- printf("-->potentialInvalidAlpha = %d\n", potentialInvalidAlpha);
- showProperties(themeData);
-#endif
- }
- bool wasAlphaSwapped = false;
- bool wasAlphaFixed = false;
-
- // OLD PSDK Workaround ------------------------------------------------------------------------
- // See if we need extra clipping for the older PSDK, which does
- // not have a DrawThemeBackgroundEx function for DTGB_OMITBORDER
- // and DTGB_OMITCONTENT
- bool addBorderContentClipping = false;
- QRegion extraClip;
- QRect area = drawRect;
- if (themeData.noBorder || themeData.noContent) {
- extraClip = area;
- // We are running on a system where the uxtheme.dll does not have
- // the DrawThemeBackgroundEx function, so we need to clip away
- // borders or contents manually.
-
- int borderSize = 0;
- PROPERTYORIGIN origin = PO_NOTFOUND;
- GetThemePropertyOrigin(themeData.handle(), themeData.partId, themeData.stateId, TMT_BORDERSIZE, &origin);
- GetThemeInt(themeData.handle(), themeData.partId, themeData.stateId, TMT_BORDERSIZE, &borderSize);
- borderSize *= additionalDevicePixelRatio;
-
- // Clip away border region
- if ((origin == PO_CLASS || origin == PO_PART || origin == PO_STATE) && borderSize > 0) {
- if (themeData.noBorder) {
- extraClip &= area;
- area = area.adjusted(-borderSize, -borderSize, borderSize, borderSize);
- }
-
- // Clip away content region
- if (themeData.noContent) {
- QRegion content = area.adjusted(borderSize, borderSize, -borderSize, -borderSize);
- extraClip ^= content;
- }
- }
- addBorderContentClipping = (themeData.noBorder | themeData.noContent);
- }
-
- QImage img;
- if (!haveCachedPixmap) { // If the pixmap is not cached, generate it! -------------------------
- if (!buffer(drawRect.width(), drawRect.height())) // Ensure a buffer of at least (w, h) in size
- return false;
- HDC dc = bufferHDC();
-
- // Clear the buffer
- if (alphaType != NoAlpha) {
- // Consider have separate "memset" function for small chunks for more speedup
- memset(bufferPixels, 0x00, bufferW * drawRect.height() * 4);
- }
-
- // Difference between area and rect
- int dx = area.x() - drawRect.x();
- int dy = area.y() - drawRect.y();
-
- // Adjust so painting rect starts from Origo
- rect.moveTo(0,0);
- area.moveTo(dx,dy);
- DTBGOPTS drawOptions;
- drawOptions.dwSize = sizeof(drawOptions);
- drawOptions.rcClip = themeData.toRECT(rect);
- drawOptions.dwFlags = DTBG_CLIPRECT
- | (themeData.noBorder ? DTBG_OMITBORDER : 0)
- | (themeData.noContent ? DTBG_OMITCONTENT : 0);
-
- // Drawing the part into the backing store
- RECT wRect(themeData.toRECT(area));
- DrawThemeBackgroundEx(themeData.handle(), dc, themeData.partId, themeData.stateId, &wRect, &drawOptions);
-
- // If not cached, analyze the buffer data to figure
- // out alpha type, and if it contains data
- if (!isCached) {
- // SHORTCUT: If the part's state has no data, cache it for NOOP later
- if (!stateHasData) {
- memset(static_cast<void *>(&data), 0, sizeof(data));
- data.dataValid = true;
- alphaCache.insert(key, data);
- return true;
- }
- hasAlpha = hasAlphaChannel(rect);
- if (!hasAlpha && partIsTransparent)
- potentialInvalidAlpha = true;
-#if defined(DEBUG_XP_STYLE) && 1
- dumpNativeDIB(drawRect.width(), drawRect.height());
-#endif
- }
-
- // Fix alpha values, if needed
- if (potentialInvalidAlpha)
- wasAlphaFixed = fixAlphaChannel(drawRect);
-
- QImage::Format format;
- if ((partIsTransparent && !wasAlphaSwapped) || (!partIsTransparent && hasAlpha)) {
- format = QImage::Format_ARGB32_Premultiplied;
- alphaType = RealAlpha;
- } else if (wasAlphaSwapped) {
- format = QImage::Format_ARGB32_Premultiplied;
- alphaType = MaskAlpha;
- } else {
- format = QImage::Format_RGB32;
- // The image data we got from the theme engine does not have any transparency,
- // thus the alpha channel is set to 0.
- // However, Format_RGB32 requires the alpha part to be set to 0xff, thus
- // we must flip it from 0x00 to 0xff
- swapAlphaChannel(rect, true);
- alphaType = NoAlpha;
- }
-#if defined(DEBUG_XP_STYLE) && 1
- printf("Image format is: %s\n", alphaType == RealAlpha ? "Real Alpha" : alphaType == MaskAlpha ? "Masked Alpha" : "No Alpha");
-#endif
- img = QImage(bufferPixels, bufferW, bufferH, format);
- if (hasCorrectionFactor)
- img = img.scaled(w, h, Qt::KeepAspectRatio, Qt::SmoothTransformation);
- img.setDevicePixelRatio(additionalDevicePixelRatio);
- }
-
- // Blitting backing store
- bool useRegion = partIsTransparent && !hasAlpha && !wasAlphaSwapped;
-
- QRegion newRegion;
- QRegion oldRegion;
- if (useRegion) {
- newRegion = region(themeData);
- oldRegion = painter->clipRegion();
- painter->setClipRegion(newRegion);
-#if defined(DEBUG_XP_STYLE) && 0
- printf("Using region:\n");
- for (const QRect &r : newRegion)
- printf(" (%d, %d, %d, %d)\n", r.x(), r.y(), r.right(), r.bottom());
-#endif
- }
-
- if (addBorderContentClipping)
- painter->setClipRegion(scaleRegion(extraClip, 1.0 / additionalDevicePixelRatio), Qt::IntersectClip);
-
- if (!themeData.mirrorHorizontally && !themeData.mirrorVertically && !themeData.rotate) {
- if (!haveCachedPixmap)
- painter->drawImage(themeData.rect, img, rect);
- else
- painter->drawPixmap(themeData.rect, cachedPixmap);
- } else {
- // This is _slow_!
- // Make a copy containing only the necessary data, and mirror
- // on all wanted axes. Then draw the copy.
- // If cached, the normal pixmap is cached, instead of caching
- // all possible orientations for each part and state.
- QImage imgCopy;
- if (!haveCachedPixmap)
- imgCopy = img.copy(rect);
- else
- imgCopy = cachedPixmap.toImage();
-
- if (themeData.rotate) {
- QTransform rotMatrix;
- rotMatrix.rotate(themeData.rotate);
- imgCopy = imgCopy.transformed(rotMatrix);
- }
- if (themeData.mirrorHorizontally || themeData.mirrorVertically) {
- imgCopy = imgCopy.mirrored(themeData.mirrorHorizontally, themeData.mirrorVertically);
- }
- painter->drawImage(themeData.rect,
- imgCopy);
- }
-
- if (useRegion || addBorderContentClipping) {
- if (oldRegion.isEmpty())
- painter->setClipping(false);
- else
- painter->setClipRegion(oldRegion);
- }
-
- // Cache the pixmap to avoid expensive swapAlphaChannel() calls
- if (!haveCachedPixmap && w && h) {
- QPixmap pix = QPixmap::fromImage(img).copy(rect);
- QPixmapCache::insert(pixmapCacheKey, pix);
-#ifdef DEBUG_XP_STYLE
- printf("+++Adding pixmap to cache, size(%d, %d), wasAlphaSwapped(%d), wasAlphaFixed(%d), name(%s)\n",
- w, h, wasAlphaSwapped, wasAlphaFixed, qPrintable(pixmapCacheKey));
-#endif
- }
-
- // Add to theme part cache
- if (!isCached) {
- memset(static_cast<void *>(&data), 0, sizeof(data));
- data.dataValid = true;
- data.partIsTransparent = partIsTransparent;
- data.alphaType = alphaType;
- data.hasAlphaChannel = hasAlpha;
- data.wasAlphaSwapped = wasAlphaSwapped;
- data.hadInvalidAlpha = wasAlphaFixed;
- alphaCache.insert(key, data);
- }
- return true;
-}
-
-
-// ------------------------------------------------------------------------------------------------
-
-/*!
- \class QWindowsXPStyle
- \brief The QWindowsXPStyle class provides a Microsoft Windows XP-like look and feel.
-
- \ingroup appearance
- \inmodule QtWidgets
- \internal
-
- \warning This style is only available on the Windows XP platform
- because it makes use of Windows XP's style engine.
-
- Most of the functions are documented in the base classes
- QWindowsStyle, QCommonStyle, and QStyle, but the
- QWindowsXPStyle overloads of drawComplexControl(), drawControl(),
- drawControlMask(), drawPrimitive(), proxy()->subControlRect(), and
- sizeFromContents(), are documented here.
-
- \image qwindowsxpstyle.png
- \sa QMacStyle, QWindowsStyle, QFusionStyle
-*/
-
-/*!
- Constructs a QWindowsStyle
-*/
-QWindowsXPStyle::QWindowsXPStyle()
- : QWindowsStyle(*new QWindowsXPStylePrivate)
-{
-}
-
-/*!
- Destroys the style.
-*/
-QWindowsXPStyle::~QWindowsXPStyle() = default;
-
-/*! \reimp */
-QRect QWindowsXPStyle::subElementRect(SubElement sr, const QStyleOption *option) const
-{
- if (!QWindowsXPStylePrivate::useXP()) {
- return QWindowsStyle::subElementRect(sr, option);
- }
-
- QRect rect(option->rect);
- switch (sr) {
- case SE_DockWidgetCloseButton:
- case SE_DockWidgetFloatButton:
- rect = QWindowsStyle::subElementRect(sr, option);
- return rect.translated(0, 1);
- break;
-#if 0
- case SE_TabWidgetTabContents:
- if (qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(option))
- {
- rect = QWindowsStyle::subElementRect(sr, option);
- if (sr == SE_TabWidgetTabContents) {
- if (const QTabWidget *tabWidget = qobject_cast<const QTabWidget *>(widget)) {
- if (tabWidget->documentMode())
- break;
- }
-
- rect.adjust(0, 0, -2, -2);
- }
- }
- break;
- case SE_TabWidgetTabBar: {
- rect = QWindowsStyle::subElementRect(sr, option);
- const QStyleOptionTabWidgetFrame *twfOption =
- qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(option);
- if (twfOption && twfOption->direction == Qt::RightToLeft
- && (twfOption->shape == QTabBar::RoundedNorth
- || twfOption->shape == QTabBar::RoundedSouth))
- {
- QStyleOptionTab otherOption;
- otherOption.shape = (twfOption->shape == QTabBar::RoundedNorth
- ? QTabBar::RoundedEast : QTabBar::RoundedSouth);
- int overlap = proxy()->pixelMetric(PM_TabBarBaseOverlap, &otherOption);
- int borderThickness = proxy()->pixelMetric(PM_DefaultFrameWidth, option);
- rect.adjust(-overlap + borderThickness, 0, -overlap + borderThickness, 0);
- }
- break;}
-#endif
- case SE_PushButtonContents:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(option)) {
- MARGINS borderSize;
- if (option->window) {
- XPThemeData buttontheme(option->window, nullptr, QWindowsXPStylePrivate::ButtonTheme);
- HTHEME theme = buttontheme.handle();
- if (theme) {
- int stateId;
- if (!(option->state & State_Enabled))
- stateId = PBS_DISABLED;
- else if (option->state & State_Sunken)
- stateId = PBS_PRESSED;
- else if (option->state & State_MouseOver)
- stateId = PBS_HOT;
- else if (btn->features & QStyleOptionButton::DefaultButton)
- stateId = PBS_DEFAULTED;
- else
- stateId = PBS_NORMAL;
-
- int border = proxy()->pixelMetric(PM_DefaultFrameWidth, btn);
- rect = option->rect.adjusted(border, border, -border, -border);
-
- if (SUCCEEDED(GetThemeMargins(theme, nullptr, BP_PUSHBUTTON, stateId, TMT_CONTENTMARGINS, nullptr, &borderSize))) {
- rect.adjust(borderSize.cxLeftWidth, borderSize.cyTopHeight,
- -borderSize.cxRightWidth, -borderSize.cyBottomHeight);
- rect = visualRect(option->direction, option->rect, rect);
- }
- }
- }
- }
- break;
- case SE_ProgressBarContents:
- rect = QCommonStyle::subElementRect(SE_ProgressBarGroove, option);
- if (option->state & QStyle::State_Horizontal)
- rect.adjust(4, 3, -4, -3);
- else
- rect.adjust(3, 2, -3, -2);
- break;
- default:
- rect = QWindowsStyle::subElementRect(sr, option);
- }
- return rect;
-}
-
-/*!
- \reimp
-*/
-void QWindowsXPStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *option, QPainter *p) const
-{
- QWindowsXPStylePrivate *d = const_cast<QWindowsXPStylePrivate*>(d_func());
-
- if (!QWindowsXPStylePrivate::useXP()) {
- QWindowsStyle::drawPrimitive(pe, option, p);
- return;
- }
-
- int themeNumber = -1;
- int partId = 0;
- int stateId = 0;
- QRect rect = option->rect;
- State flags = option->state;
- bool hMirrored = false;
- bool vMirrored = false;
- bool noBorder = false;
- bool noContent = false;
- int rotate = 0;
-
- switch (pe) {
-#if 0
- case PE_FrameTabBarBase:
- if (const QStyleOptionTabBarBase *tbb
- = qstyleoption_cast<const QStyleOptionTabBarBase *>(option)) {
- p->save();
- switch (tbb->shape) {
- case QTabBar::RoundedNorth:
- p->setPen(QPen(tbb->palette.dark(), 0));
- p->drawLine(tbb->rect.topLeft(), tbb->rect.topRight());
- break;
- case QTabBar::RoundedWest:
- p->setPen(QPen(tbb->palette.dark(), 0));
- p->drawLine(tbb->rect.left(), tbb->rect.top(), tbb->rect.left(), tbb->rect.bottom());
- break;
- case QTabBar::RoundedSouth:
- p->setPen(QPen(tbb->palette.dark(), 0));
- p->drawLine(tbb->rect.left(), tbb->rect.top(),
- tbb->rect.right(), tbb->rect.top());
- break;
- case QTabBar::RoundedEast:
- p->setPen(QPen(tbb->palette.dark(), 0));
- p->drawLine(tbb->rect.topLeft(), tbb->rect.bottomLeft());
- break;
- case QTabBar::TriangularNorth:
- case QTabBar::TriangularEast:
- case QTabBar::TriangularWest:
- case QTabBar::TriangularSouth:
- p->restore();
- QWindowsStyle::drawPrimitive(pe, option, p);
- return;
- }
- p->restore();
- }
- return;
-#endif
- case PE_PanelButtonBevel:
- themeNumber = QWindowsXPStylePrivate::ButtonTheme;
- partId = BP_PUSHBUTTON;
- if (!(flags & State_Enabled))
- stateId = PBS_DISABLED;
- else if ((flags & State_Sunken) || (flags & State_On))
- stateId = PBS_PRESSED;
- else if (flags & State_MouseOver)
- stateId = PBS_HOT;
- //else if (flags & State_ButtonDefault)
- // stateId = PBS_DEFAULTED;
- else
- stateId = PBS_NORMAL;
- break;
-
- case PE_PanelButtonTool:
-// if (widget && widget->inherits("QDockWidgetTitleButton")) {
-// if (const QWidget *dw = widget->parentWidget())
-// if (dw->isWindow())
-// return;
-// }
- themeNumber = QWindowsXPStylePrivate::ToolBarTheme;
- partId = TP_BUTTON;
- if (!(flags & State_Enabled))
- stateId = TS_DISABLED;
- else if (flags & State_Sunken)
- stateId = TS_PRESSED;
- else if (flags & State_MouseOver)
- stateId = flags & State_On ? TS_HOTCHECKED : TS_HOT;
- else if (flags & State_On)
- stateId = TS_CHECKED;
- else if (!(flags & State_AutoRaise))
- stateId = TS_HOT;
- else
- stateId = TS_NORMAL;
- break;
-
- case PE_IndicatorButtonDropDown:
- themeNumber = QWindowsXPStylePrivate::ToolBarTheme;
- partId = TP_SPLITBUTTONDROPDOWN;
- if (!(flags & State_Enabled))
- stateId = TS_DISABLED;
- else if (flags & State_Sunken)
- stateId = TS_PRESSED;
- else if (flags & State_MouseOver)
- stateId = flags & State_On ? TS_HOTCHECKED : TS_HOT;
- else if (flags & State_On)
- stateId = TS_CHECKED;
- else if (!(flags & State_AutoRaise))
- stateId = TS_HOT;
- else
- stateId = TS_NORMAL;
- if (option->direction == Qt::RightToLeft)
- hMirrored = true;
- break;
-
- case PE_IndicatorCheckBox:
- themeNumber = QWindowsXPStylePrivate::ButtonTheme;
- partId = BP_CHECKBOX;
- if (!(flags & State_Enabled))
- stateId = CBS_UNCHECKEDDISABLED;
- else if (flags & State_Sunken)
- stateId = CBS_UNCHECKEDPRESSED;
- else if (flags & State_MouseOver)
- stateId = CBS_UNCHECKEDHOT;
- else
- stateId = CBS_UNCHECKEDNORMAL;
-
- if (flags & State_On)
- stateId += CBS_CHECKEDNORMAL-1;
- else if (flags & State_NoChange)
- stateId += CBS_MIXEDNORMAL-1;
-
- break;
-
- case PE_IndicatorRadioButton:
- themeNumber = QWindowsXPStylePrivate::ButtonTheme;
- partId = BP_RADIOBUTTON;
- if (!(flags & State_Enabled))
- stateId = RBS_UNCHECKEDDISABLED;
- else if (flags & State_Sunken)
- stateId = RBS_UNCHECKEDPRESSED;
- else if (flags & State_MouseOver)
- stateId = RBS_UNCHECKEDHOT;
- else
- stateId = RBS_UNCHECKEDNORMAL;
-
- if (flags & State_On)
- stateId += RBS_CHECKEDNORMAL-1;
- break;
-
- case PE_IndicatorDockWidgetResizeHandle:
- return;
-
-case PE_Frame:
- {
- if (flags & State_Raised)
- return;
- themeNumber = QWindowsXPStylePrivate::ListViewTheme;
- partId = LVP_LISTGROUP;
- XPThemeData theme(option->window, nullptr, themeNumber, partId);
-
- if (!(flags & State_Enabled))
- stateId = ETS_DISABLED;
- else
- stateId = ETS_NORMAL;
- int fillType;
- if (GetThemeEnumValue(theme.handle(), partId, stateId, TMT_BGTYPE, &fillType) == S_OK) {
- if (fillType == BT_BORDERFILL) {
- COLORREF bcRef;
- GetThemeColor(theme.handle(), partId, stateId, TMT_BORDERCOLOR, &bcRef);
- QColor bordercolor(qRgb(GetRValue(bcRef), GetGValue(bcRef), GetBValue(bcRef)));
- QPen oldPen = p->pen();
- // int borderSize = 1;
- // GetThemeInt(theme.handle(), partId, stateId, TMT_BORDERCOLOR, &borderSize);
-
- // Inner white border
- p->setPen(QPen(option->palette.base().color(), 0));
- const qreal dpi = QStyleHelper::dpi(option);
- const auto topLevelAdjustment = QStyleHelper::dpiScaled(0.5, dpi);
- const auto bottomRightAdjustment = QStyleHelper::dpiScaled(-1, dpi);
- p->drawRect(QRectF(option->rect).adjusted(topLevelAdjustment, topLevelAdjustment,
- bottomRightAdjustment, bottomRightAdjustment));
- // Outer dark border
- p->setPen(QPen(bordercolor, 0));
- p->drawRect(QRectF(option->rect).adjusted(0, 0, -topLevelAdjustment, -topLevelAdjustment));
- p->setPen(oldPen);
- return;
- }
- if (fillType == BT_NONE)
- return;
- }
- break;
- }
- case PE_FrameLineEdit: {
- // we try to check if this lineedit is a delegate on a QAbstractItemView-derived class.
- /*
- if (QWindowsXPStylePrivate::isItemViewDelegateLineEdit(widget)) {
- QPen oldPen = p->pen();
- // Inner white border
- p->setPen(QPen(option->palette.base().color(), 1));
- p->drawRect(option->rect.adjusted(1, 1, -2, -2));
- // Outer dark border
- p->setPen(QPen(option->palette.shadow().color(), 1));
- p->drawRect(option->rect.adjusted(0, 0, -1, -1));
- p->setPen(oldPen);
- return;
- }
- */
- if (qstyleoption_cast<const QStyleOptionFrame *>(option)) {
- themeNumber = QWindowsXPStylePrivate::EditTheme;
- partId = EP_EDITTEXT;
- noContent = true;
- if (!(flags & State_Enabled))
- stateId = ETS_DISABLED;
- else
- stateId = ETS_NORMAL;
- }
- break;
- }
-
- case PE_PanelLineEdit:
- if (const QStyleOptionFrame *panel = qstyleoption_cast<const QStyleOptionFrame *>(option)) {
- themeNumber = QWindowsXPStylePrivate::EditTheme;
- partId = EP_EDITTEXT;
- noBorder = true;
- bool isEnabled = flags & State_Enabled;
-
- stateId = isEnabled ? ETS_NORMAL : ETS_DISABLED;
-
- /*if (QWindowsXPStylePrivate::isLineEditBaseColorSet(option, widget)) {
- p->fillRect(panel->rect, panel->palette.brush(QPalette::Base));
- } else*/ {
- XPThemeData theme(nullptr, p, themeNumber, partId, stateId, rect);
- if (!theme.isValid()) {
- QWindowsStyle::drawPrimitive(pe, option, p);
- return;
- }
- int bgType;
- GetThemeEnumValue(theme.handle(), partId, stateId, TMT_BGTYPE, &bgType);
- if ( bgType == BT_IMAGEFILE ) {
- theme.mirrorHorizontally = hMirrored;
- theme.mirrorVertically = vMirrored;
- theme.noBorder = noBorder;
- theme.noContent = noContent;
- theme.rotate = rotate;
- d->drawBackground(theme);
- } else {
- QBrush fillColor = option->palette.brush(QPalette::Base);
-
- if (!isEnabled) {
- PROPERTYORIGIN origin = PO_NOTFOUND;
- GetThemePropertyOrigin(theme.handle(), theme.partId, theme.stateId, TMT_FILLCOLOR, &origin);
- // Use only if the fill property comes from our part
- if ((origin == PO_PART || origin == PO_STATE)) {
- COLORREF bgRef;
- GetThemeColor(theme.handle(), partId, stateId, TMT_FILLCOLOR, &bgRef);
- fillColor = QBrush(qRgb(GetRValue(bgRef), GetGValue(bgRef), GetBValue(bgRef)));
- }
- }
- p->fillRect(option->rect, fillColor);
- }
- }
-
- if (panel->lineWidth > 0)
- proxy()->drawPrimitive(PE_FrameLineEdit, panel, p);
- return;
- }
- break;
-#if 0
- case PE_FrameTabWidget:
- if (const QStyleOptionTabWidgetFrame *tab = qstyleoption_cast<const QStyleOptionTabWidgetFrame *>(option))
- {
- themeNumber = QWindowsXPStylePrivate::TabTheme;
- partId = TABP_PANE;
-
- if (option->window) {
- bool useGradient = true;
- const int maxlength = 256;
- wchar_t themeFileName[maxlength];
- wchar_t themeColor[maxlength];
- // Due to a a scaling issue with the XP Silver theme, tab gradients are not used with it
- if (GetCurrentThemeName(themeFileName, maxlength, themeColor, maxlength, nullptr, 0) == S_OK) {
- wchar_t *offset = nullptr;
- if ((offset = wcsrchr(themeFileName, QChar(QLatin1Char('\\')).unicode())) != nullptr) {
- offset++;
- if (!lstrcmp(offset, L"Luna.msstyles") && !lstrcmp(offset, L"Metallic")) {
- useGradient = false;
- }
- }
- }
- // This should work, but currently there's an error in the ::drawBackgroundDirectly()
- // code, when using the HDC directly..
- if (useGradient) {
- QStyleOptionTabWidgetFrame frameOpt = *tab;
- //frameOpt.rect = widget->rect();
-
- QRect contentsRect = subElementRect(SE_TabWidgetTabContents, &frameOpt);
- QRegion reg = option->rect;
- reg -= contentsRect;
- p->setClipRegion(reg);
- XPThemeData theme(option->window, p, themeNumber, partId, stateId, rect);
- theme.mirrorHorizontally = hMirrored;
- theme.mirrorVertically = vMirrored;
- d->drawBackground(theme);
- p->setClipRect(contentsRect);
- partId = TABP_BODY;
- }
- }
- switch (tab->shape) {
- case QTabBar::RoundedNorth:
- case QTabBar::TriangularNorth:
- break;
- case QTabBar::RoundedSouth:
- case QTabBar::TriangularSouth:
- vMirrored = true;
- break;
- case QTabBar::RoundedEast:
- case QTabBar::TriangularEast:
- rotate = 90;
- break;
- case QTabBar::RoundedWest:
- case QTabBar::TriangularWest:
- rotate = 90;
- hMirrored = true;
- break;
- default:
- break;
- }
- }
- break;
-#endif
- case PE_FrameMenu:
- p->save();
- p->setPen(option->palette.dark().color());
- p->drawRect(rect.adjusted(0, 0, -1, -1));
- p->restore();
- return;
-
- case PE_PanelMenuBar:
- break;
-
- case PE_FrameDockWidget:
- if (const QStyleOptionFrame *frm = qstyleoption_cast<const QStyleOptionFrame *>(option))
- {
- themeNumber = QWindowsXPStylePrivate::WindowTheme;
- if (flags & State_Active)
- stateId = FS_ACTIVE;
- else
- stateId = FS_INACTIVE;
-
- int fwidth = proxy()->pixelMetric(PM_DockWidgetFrameWidth, frm);
-
- XPThemeData theme(option->window, p, themeNumber, 0, stateId);
- if (!theme.isValid())
- break;
- theme.rect = QRect(frm->rect.x(), frm->rect.y(), frm->rect.x()+fwidth, frm->rect.height()-fwidth); theme.partId = WP_SMALLFRAMELEFT;
- d->drawBackground(theme);
- theme.rect = QRect(frm->rect.width()-fwidth, frm->rect.y(), fwidth, frm->rect.height()-fwidth);
- theme.partId = WP_SMALLFRAMERIGHT;
- d->drawBackground(theme);
- theme.rect = QRect(frm->rect.x(), frm->rect.bottom()-fwidth+1, frm->rect.width(), fwidth);
- theme.partId = WP_SMALLFRAMEBOTTOM;
- d->drawBackground(theme);
- return;
- }
- break;
-
- case PE_IndicatorHeaderArrow:
- {
-#if 0 // XP theme engine doesn't know about this :(
- name = QWindowsXPStylePrivate::HeaderTheme;
- partId = HP_HEADERSORTARROW;
- if (flags & State_Down)
- stateId = HSAS_SORTEDDOWN;
- else
- stateId = HSAS_SORTEDUP;
-#else
- if (const QStyleOptionHeader *header = qstyleoption_cast<const QStyleOptionHeader *>(option)) {
- p->save();
- p->setPen(option->palette.dark().color());
- p->translate(0, option->rect.height()/2 - 4);
- if (header->sortIndicator & QStyleOptionHeader::SortUp) { // invert logic to follow Windows style guide
- p->drawLine(option->rect.x(), option->rect.y(), option->rect.x()+8, option->rect.y());
- p->drawLine(option->rect.x()+1, option->rect.y()+1, option->rect.x()+7, option->rect.y()+1);
- p->drawLine(option->rect.x()+2, option->rect.y()+2, option->rect.x()+6, option->rect.y()+2);
- p->drawLine(option->rect.x()+3, option->rect.y()+3, option->rect.x()+5, option->rect.y()+3);
- p->drawPoint(option->rect.x()+4, option->rect.y()+4);
- } else if (header->sortIndicator & QStyleOptionHeader::SortDown) {
- p->drawLine(option->rect.x(), option->rect.y()+4, option->rect.x()+8, option->rect.y()+4);
- p->drawLine(option->rect.x()+1, option->rect.y()+3, option->rect.x()+7, option->rect.y()+3);
- p->drawLine(option->rect.x()+2, option->rect.y()+2, option->rect.x()+6, option->rect.y()+2);
- p->drawLine(option->rect.x()+3, option->rect.y()+1, option->rect.x()+5, option->rect.y()+1);
- p->drawPoint(option->rect.x()+4, option->rect.y());
- }
- p->restore();
- return;
- }
-#endif
- }
- break;
-
- case PE_FrameStatusBarItem:
- themeNumber = QWindowsXPStylePrivate::StatusTheme;
- partId = SP_PANE;
- break;
-
- case PE_FrameGroupBox:
- themeNumber = QWindowsXPStylePrivate::ButtonTheme;
- partId = BP_GROUPBOX;
- if (!(flags & State_Enabled))
- stateId = GBS_DISABLED;
- else
- stateId = GBS_NORMAL;
- if (const QStyleOptionFrame *frame = qstyleoption_cast<const QStyleOptionFrame *>(option)) {
- if (frame->features & QStyleOptionFrame::Flat) {
- // Windows XP does not have a theme part for a flat GroupBox, paint it with the windows style
- QRect fr = frame->rect;
- QPoint p1(fr.x(), fr.y() + 1);
- QPoint p2(fr.x() + fr.width(), p1.y() + 1);
- rect = QRect(p1, p2);
- themeNumber = -1;
- }
- }
- break;
-
- case PE_IndicatorProgressChunk:
- {
- Qt::Orientation orient = Qt::Horizontal;
- bool inverted = false;
- if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(option)) {
- orient = pb->state & QStyle::State_Horizontal ? Qt::Horizontal : Qt::Vertical;
- inverted = pb->invertedAppearance;
- }
- if (orient == Qt::Horizontal) {
- partId = PP_CHUNK;
- rect = QRect(option->rect.x(), option->rect.y(), option->rect.width(), option->rect.height() );
- if (inverted && option->direction == Qt::LeftToRight)
- hMirrored = true;
- } else {
- partId = PP_CHUNKVERT;
- rect = QRect(option->rect.x(), option->rect.y(), option->rect.width(), option->rect.height());
- }
- themeNumber = QWindowsXPStylePrivate::ProgressTheme;
- stateId = 1;
- }
- break;
-
- case PE_FrameWindow:
- if (const QStyleOptionFrame *frm = qstyleoption_cast<const QStyleOptionFrame *>(option))
- {
- themeNumber = QWindowsXPStylePrivate::WindowTheme;
- if (flags & State_Active)
- stateId = FS_ACTIVE;
- else
- stateId = FS_INACTIVE;
-
- int fwidth = int((frm->lineWidth + frm->midLineWidth) / QWindowsStylePrivate::nativeMetricScaleFactor(option));
-
- XPThemeData theme(option->window, p, themeNumber, 0, stateId);
- if (!theme.isValid())
- break;
-
- // May fail due to too-large buffers for large widgets, fall back to Windows style.
- theme.rect = QRect(option->rect.x(), option->rect.y()+fwidth, option->rect.x()+fwidth, option->rect.height()-fwidth);
- theme.partId = WP_FRAMELEFT;
- if (!d->drawBackground(theme)) {
- QWindowsStyle::drawPrimitive(pe, option, p);
- return;
- }
- theme.rect = QRect(option->rect.width()-fwidth, option->rect.y()+fwidth, fwidth, option->rect.height()-fwidth);
- theme.partId = WP_FRAMERIGHT;
- if (!d->drawBackground(theme)) {
- QWindowsStyle::drawPrimitive(pe, option, p);
- return;
- }
- theme.rect = QRect(option->rect.x(), option->rect.height()-fwidth, option->rect.width(), fwidth);
- theme.partId = WP_FRAMEBOTTOM;
- if (!d->drawBackground(theme)) {
- QWindowsStyle::drawPrimitive(pe, option, p);
- return;
- }
- theme.rect = QRect(option->rect.x(), option->rect.y(), option->rect.width(), option->rect.y()+fwidth);
- theme.partId = WP_CAPTION;
- if (!d->drawBackground(theme))
- QWindowsStyle::drawPrimitive(pe, option, p);
- return;
- }
- break;
-
- case PE_IndicatorBranch:
- {
- static const int decoration_size = 9;
- int mid_h = option->rect.x() + option->rect.width() / 2;
- int mid_v = option->rect.y() + option->rect.height() / 2;
- int bef_h = mid_h;
- int bef_v = mid_v;
- int aft_h = mid_h;
- int aft_v = mid_v;
- QBrush brush(option->palette.dark().color(), Qt::Dense4Pattern);
- if (option->state & State_Item) {
- if (option->direction == Qt::RightToLeft)
- p->fillRect(option->rect.left(), mid_v, bef_h - option->rect.left(), 1, brush);
- else
- p->fillRect(aft_h, mid_v, option->rect.right() - aft_h + 1, 1, brush);
- }
- if (option->state & State_Sibling)
- p->fillRect(mid_h, aft_v, 1, option->rect.bottom() - aft_v + 1, brush);
- if (option->state & (State_Open | State_Children | State_Item | State_Sibling))
- p->fillRect(mid_h, option->rect.y(), 1, bef_v - option->rect.y(), brush);
- if (option->state & State_Children) {
- int delta = decoration_size / 2;
- bef_h -= delta;
- bef_v -= delta;
- aft_h += delta;
- aft_v += delta;
- XPThemeData theme(nullptr, p, QWindowsXPStylePrivate::XpTreeViewTheme);
- theme.rect = QRect(bef_h, bef_v, decoration_size, decoration_size);
- theme.partId = TVP_GLYPH;
- theme.stateId = flags & QStyle::State_Open ? GLPS_OPENED : GLPS_CLOSED;
- d->drawBackground(theme);
- }
- }
- return;
-
- case PE_IndicatorToolBarSeparator:
- if (option->rect.height() < 3) {
- // XP style requires a few pixels for the separator
- // to be visible.
- QWindowsStyle::drawPrimitive(pe, option, p);
- return;
- }
- themeNumber = QWindowsXPStylePrivate::ToolBarTheme;
- partId = TP_SEPARATOR;
-
- if (option->state & State_Horizontal)
- partId = TP_SEPARATOR;
- else
- partId = TP_SEPARATORVERT;
-
- break;
-
- case PE_IndicatorToolBarHandle:
-
- themeNumber = QWindowsXPStylePrivate::RebarTheme;
- partId = RP_GRIPPER;
- if (option->state & State_Horizontal) {
- partId = RP_GRIPPER;
- rect.adjust(0, 0, -2, 0);
- }
- else {
- partId = RP_GRIPPERVERT;
- rect.adjust(0, 0, 0, -2);
- }
- break;
-
- case PE_IndicatorItemViewItemCheck: {
- QStyleOptionButton button;
- button.QStyleOption::operator=(*option);
- button.state &= ~State_MouseOver;
- proxy()->drawPrimitive(PE_IndicatorCheckBox, &button, p);
- return;
- }
-
- default:
- break;
- }
-
- XPThemeData theme(option->window, p, themeNumber, partId, stateId, rect);
- if (!theme.isValid()) {
- QWindowsStyle::drawPrimitive(pe, option, p);
- return;
- }
- theme.mirrorHorizontally = hMirrored;
- theme.mirrorVertically = vMirrored;
- theme.noBorder = noBorder;
- theme.noContent = noContent;
- theme.rotate = rotate;
- d->drawBackground(theme);
-}
-
-/*!
- \reimp
-*/
-void QWindowsXPStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *p) const
-{
- QWindowsXPStylePrivate *d = const_cast<QWindowsXPStylePrivate*>(d_func());
- if (!QWindowsXPStylePrivate::useXP()) {
- QWindowsStyle::drawControl(element, option, p);
- return;
- }
-
- QRect rect(option->rect);
- State flags = option->state;
-
- int rotate = 0;
- bool hMirrored = false;
- bool vMirrored = false;
-
- int themeNumber = -1;
- int partId = 0;
- int stateId = 0;
- switch (element) {
- case CE_SizeGrip:
- {
- themeNumber = QWindowsXPStylePrivate::StatusTheme;
- partId = SP_GRIPPER;
- XPThemeData theme(nullptr, p, themeNumber, partId);
- QSize size = (theme.size() * QWindowsStylePrivate::nativeMetricScaleFactor(option)).toSize();
- size.rheight()--;
- if (const QStyleOptionSizeGrip *sg = qstyleoption_cast<const QStyleOptionSizeGrip *>(option)) {
- switch (sg->corner) {
- case Qt::BottomRightCorner:
- rect = QRect(QPoint(rect.right() - size.width(), rect.bottom() - size.height()), size);
- break;
- case Qt::BottomLeftCorner:
- rect = QRect(QPoint(rect.left() + 1, rect.bottom() - size.height()), size);
- hMirrored = true;
- break;
- case Qt::TopRightCorner:
- rect = QRect(QPoint(rect.right() - size.width(), rect.top() + 1), size);
- vMirrored = true;
- break;
- case Qt::TopLeftCorner:
- rect = QRect(rect.topLeft() + QPoint(1, 1), size);
- hMirrored = vMirrored = true;
- }
- }
- }
- break;
-
- case CE_HeaderSection:
- themeNumber = QWindowsXPStylePrivate::HeaderTheme;
- partId = HP_HEADERITEM;
- if (flags & State_Sunken)
- stateId = HIS_PRESSED;
- else if (flags & State_MouseOver)
- stateId = HIS_HOT;
- else
- stateId = HIS_NORMAL;
- break;
-
- case CE_Splitter:
- p->eraseRect(option->rect);
- return;
-
- case CE_PushButtonBevel:
- if (const QStyleOptionButton *btn = qstyleoption_cast<const QStyleOptionButton *>(option))
- {
- themeNumber = QWindowsXPStylePrivate::ButtonTheme;
- partId = BP_PUSHBUTTON;
- bool justFlat = ((btn->features & QStyleOptionButton::Flat) && !(flags & (State_On|State_Sunken)))
- || ((btn->features & QStyleOptionButton::CommandLinkButton)
- && !(flags & State_MouseOver)
- && !(btn->features & QStyleOptionButton::DefaultButton));
- if (!(flags & State_Enabled) && !(btn->features & QStyleOptionButton::Flat))
- stateId = PBS_DISABLED;
- else if (justFlat)
- ;
- else if (flags & (State_Sunken | State_On))
- stateId = PBS_PRESSED;
- else if (flags & State_MouseOver)
- stateId = PBS_HOT;
- else if (btn->features & QStyleOptionButton::DefaultButton)
- stateId = PBS_DEFAULTED;
- else
- stateId = PBS_NORMAL;
-
- if (!justFlat) {
- XPThemeData theme(option->window, p, themeNumber, partId, stateId, rect);
- d->drawBackground(theme);
- }
-
- if (btn->features & QStyleOptionButton::HasMenu) {
- int mbiw = 0, mbih = 0;
- XPThemeData theme(option->window, nullptr,
- QWindowsXPStylePrivate::ToolBarTheme,
- TP_SPLITBUTTONDROPDOWN);
- if (theme.isValid()) {
- const QSize size = (theme.size() * QWindowsStylePrivate::nativeMetricScaleFactor(option)).toSize();
- mbiw = size.width();
- mbih = size.height();
- }
-
- QRect ir = btn->rect;
- QStyleOptionButton newBtn = *btn;
- newBtn.rect = QRect(ir.right() - mbiw - 1, 1 + (ir.height()/2) - (mbih/2), mbiw, mbih);
- proxy()->drawPrimitive(PE_IndicatorArrowDown, &newBtn, p);
- }
- return;
- }
- break;
- case CE_TabBarTab:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option))
- {
- stateId = tab->state & State_Enabled ? TIS_NORMAL : TIS_DISABLED;
- }
- break;
-#if 0
- case CE_TabBarTabShape:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option))
- {
- themeNumber = QWindowsXPStylePrivate::TabTheme;
- bool isDisabled = !(tab->state & State_Enabled);
- bool hasFocus = tab->state & State_HasFocus;
- bool isHot = tab->state & State_MouseOver;
- bool selected = tab->state & State_Selected;
- bool lastTab = tab->position == QStyleOptionTab::End;
- bool firstTab = tab->position == QStyleOptionTab::Beginning;
- bool onlyOne = tab->position == QStyleOptionTab::OnlyOneTab;
- bool leftAligned = proxy()->styleHint(SH_TabBar_Alignment, tab) == Qt::AlignLeft;
- bool centerAligned = proxy()->styleHint(SH_TabBar_Alignment, tab) == Qt::AlignCenter;
- int borderThickness = proxy()->pixelMetric(PM_DefaultFrameWidth, option);
- int tabOverlap = proxy()->pixelMetric(PM_TabBarTabOverlap, option);
-
- if (isDisabled)
- stateId = TIS_DISABLED;
- else if (selected)
- stateId = TIS_SELECTED;
- else if (hasFocus)
- stateId = TIS_FOCUSED;
- else if (isHot)
- stateId = TIS_HOT;
- else
- stateId = TIS_NORMAL;
-
- // Selecting proper part depending on position
- if (firstTab || onlyOne) {
- if (leftAligned) {
- partId = TABP_TABITEMLEFTEDGE;
- } else if (centerAligned) {
- partId = TABP_TABITEM;
- } else { // rightAligned
- partId = TABP_TABITEMRIGHTEDGE;
- }
- } else {
- partId = TABP_TABITEM;
- }
-
- if (tab->direction == Qt::RightToLeft
- && (tab->shape == QTabBar::RoundedNorth
- || tab->shape == QTabBar::RoundedSouth)) {
- bool temp = firstTab;
- firstTab = lastTab;
- lastTab = temp;
- }
- bool begin = firstTab || onlyOne;
- bool end = lastTab || onlyOne;
- switch (tab->shape) {
- case QTabBar::RoundedNorth:
- if (selected)
- rect.adjust(begin ? 0 : -tabOverlap, 0, end ? 0 : tabOverlap, borderThickness);
- else
- rect.adjust(begin? tabOverlap : 0, tabOverlap, end ? -tabOverlap : 0, 0);
- break;
- case QTabBar::RoundedSouth:
- //vMirrored = true;
- rotate = 180; // Not 100% correct, but works
- if (selected)
- rect.adjust(begin ? 0 : -tabOverlap , -borderThickness, end ? 0 : tabOverlap, 0);
- else
- rect.adjust(begin ? tabOverlap : 0, 0, end ? -tabOverlap : 0 , -tabOverlap);
- break;
- case QTabBar::RoundedEast:
- rotate = 90;
- if (selected) {
- rect.adjust(-borderThickness, begin ? 0 : -tabOverlap, 0, end ? 0 : tabOverlap);
- }else{
- rect.adjust(0, begin ? tabOverlap : 0, -tabOverlap, end ? -tabOverlap : 0);
- }
- break;
- case QTabBar::RoundedWest:
- hMirrored = true;
- rotate = 90;
- if (selected) {
- rect.adjust(0, begin ? 0 : -tabOverlap, borderThickness, end ? 0 : tabOverlap);
- }else{
- rect.adjust(tabOverlap, begin ? tabOverlap : 0, 0, end ? -tabOverlap : 0);
- }
- break;
- default:
- themeNumber = -1; // Do our own painting for triangular
- break;
- }
-
- if (!selected) {
- switch (tab->shape) {
- case QTabBar::RoundedNorth:
- rect.adjust(0,0, 0,-1);
- break;
- case QTabBar::RoundedSouth:
- rect.adjust(0,1, 0,0);
- break;
- case QTabBar::RoundedEast:
- rect.adjust( 1,0, 0,0);
- break;
- case QTabBar::RoundedWest:
- rect.adjust(0,0, -1,0);
- break;
- default:
- break;
- }
- }
- }
- break;
-#endif
- case CE_ProgressBarGroove:
- {
- Qt::Orientation orient = Qt::Horizontal;
- if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(option))
- orient = pb->state & QStyle::State_Horizontal ? Qt::Horizontal : Qt::Vertical;
- partId = (orient == Qt::Horizontal) ? PP_BAR : PP_BARVERT;
- themeNumber = QWindowsXPStylePrivate::ProgressTheme;
- stateId = 1;
- }
- break;
-
- case CE_MenuEmptyArea:
- case CE_MenuItem:
- if (const QStyleOptionMenuItem *menuitem = qstyleoption_cast<const QStyleOptionMenuItem *>(option))
- {
- int tab = menuitem->tabWidth;
- bool dis = !(menuitem->state & State_Enabled);
- bool act = menuitem->state & State_Selected;
- bool checkable = menuitem->menuHasCheckableItems;
- bool checked = checkable ? menuitem->checked : false;
-
- // windows always has a check column, regardless whether we have an icon or not
- int checkcol = qMax(menuitem->maxIconWidth, 12);
-
- int x, y, w, h;
- rect.getRect(&x, &y, &w, &h);
-
- QBrush fill = menuitem->palette.brush(act ? QPalette::Highlight : QPalette::Button);
- p->fillRect(rect, fill);
-
- if (element == CE_MenuEmptyArea)
- break;
-
- // draw separator -------------------------------------------------
- if (menuitem->menuItemType == QStyleOptionMenuItem::Separator) {
- int yoff = y-1 + h / 2;
- p->setPen(menuitem->palette.dark().color());
- p->drawLine(x, yoff, x+w, yoff);
- ++yoff;
- p->setPen(menuitem->palette.light().color());
- p->drawLine(x, yoff, x+w, yoff);
- return;
- }
-
- int xpos = x;
-
- // draw icon ------------------------------------------------------
- if (!menuitem->icon.isNull()) {
- QIcon::Mode mode = dis ? QIcon::Disabled : QIcon::Normal;
- if (act && !dis)
- mode = QIcon::Active;
- QPixmap pixmap = checked ?
- menuitem->icon.pixmap(proxy()->pixelMetric(PM_SmallIconSize, option), mode, QIcon::On) :
- menuitem->icon.pixmap(proxy()->pixelMetric(PM_SmallIconSize, option), mode);
- const int pixw = pixmap.width() / pixmap.devicePixelRatio();
- const int pixh = pixmap.height() / pixmap.devicePixelRatio();
- QRect iconRect(0, 0, pixw, pixh);
- iconRect.moveCenter(QRect(xpos, y, checkcol, h).center());
- QRect vIconRect = visualRect(option->direction, option->rect, iconRect);
- p->setPen(menuitem->palette.text().color());
- p->setBrush(Qt::NoBrush);
- if (checked)
- p->drawRect(vIconRect.adjusted(-1, -1, 0, 0));
- p->drawPixmap(vIconRect.topLeft(), pixmap);
-
- // draw checkmark -------------------------------------------------
- } else if (checked) {
- QStyleOptionMenuItem newMi = *menuitem;
- newMi.state = State_None;
- if (!dis)
- newMi.state |= State_Enabled;
- if (act)
- newMi.state |= State_On;
-
- QRect checkMarkRect = QRect(menuitem->rect.x() + windowsItemFrame,
- menuitem->rect.y() + windowsItemFrame,
- checkcol - 2 * windowsItemFrame,
- menuitem->rect.height() - 2*windowsItemFrame);
- newMi.rect = visualRect(option->direction, option->rect, checkMarkRect);
- proxy()->drawPrimitive(PE_IndicatorMenuCheckMark, &newMi, p);
- }
-
- QColor textColor = dis ? menuitem->palette.text().color() :
- act ? menuitem->palette.highlightedText().color() : menuitem->palette.buttonText().color();
- p->setPen(textColor);
-
- // draw text ------------------------------------------------------
- int xm = windowsItemFrame + checkcol + windowsItemHMargin;
- xpos = menuitem->rect.x() + xm;
- QRect textRect(xpos, y + windowsItemVMargin, w - xm - windowsRightBorder - tab + 1, h - 2 * windowsItemVMargin);
- QRect vTextRect = visualRect(option->direction, option->rect, textRect);
- QString s = menuitem->text;
- if (!s.isEmpty()) {
- p->save();
- int t = s.indexOf(QLatin1Char('\t'));
- int text_flags = Qt::AlignVCenter|Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine | Qt::AlignLeft;
- if (!proxy()->styleHint(SH_UnderlineShortcut, menuitem))
- text_flags |= Qt::TextHideMnemonic;
- // draw tab text ----------------
- if (t >= 0) {
- QRect vShortcutRect = visualRect(option->direction, option->rect, QRect(textRect.topRight(), menuitem->rect.bottomRight()));
- if (dis && !act && proxy()->styleHint(SH_EtchDisabledText, option)) {
- p->setPen(menuitem->palette.light().color());
- p->drawText(vShortcutRect.adjusted(1,1,1,1), text_flags, s.mid(t + 1));
- p->setPen(textColor);
- }
- p->drawText(vShortcutRect, text_flags, s.mid(t + 1));
- s = s.left(t);
- }
- QFont font = menuitem->font;
- if (menuitem->menuItemType == QStyleOptionMenuItem::DefaultItem)
- font.setBold(true);
- p->setFont(font);
- if (dis && !act && proxy()->styleHint(SH_EtchDisabledText, option)) {
- p->setPen(menuitem->palette.light().color());
- p->drawText(vTextRect.adjusted(1,1,1,1), text_flags, s.left(t));
- p->setPen(textColor);
- }
- p->drawText(vTextRect, text_flags, s);
- p->restore();
- }
-
- // draw sub menu arrow --------------------------------------------
- if (menuitem->menuItemType == QStyleOptionMenuItem::SubMenu) {
- int dim = (h - 2) / 2;
- PrimitiveElement arrow;
- arrow = (option->direction == Qt::RightToLeft) ? PE_IndicatorArrowLeft : PE_IndicatorArrowRight;
- xpos = x + w - windowsArrowHMargin - windowsItemFrame - dim;
- QRect vSubMenuRect = visualRect(option->direction, option->rect, QRect(xpos, y + h / 2 - dim / 2, dim, dim));
- QStyleOptionMenuItem newMI = *menuitem;
- newMI.rect = vSubMenuRect;
- newMI.state = dis ? State_None : State_Enabled;
- if (act)
- newMI.palette.setColor(QPalette::ButtonText, newMI.palette.highlightedText().color());
- proxy()->drawPrimitive(arrow, &newMI, p);
- }
- }
- return;
-
- case CE_MenuBarItem:
- if (const QStyleOptionMenuItem *mbi = qstyleoption_cast<const QStyleOptionMenuItem *>(option))
- {
- if (mbi->menuItemType == QStyleOptionMenuItem::DefaultItem)
- break;
-
- bool act = mbi->state & State_Selected;
- bool dis = !(mbi->state & State_Enabled);
-
- QBrush fill = mbi->palette.brush(act ? QPalette::Highlight : QPalette::Button);
- QPalette::ColorRole textRole = dis ? QPalette::Text:
- act ? QPalette::HighlightedText : QPalette::ButtonText;
- QPixmap pix = mbi->icon.pixmap(proxy()->pixelMetric(PM_SmallIconSize, option), QIcon::Normal);
-
- uint alignment = Qt::AlignCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine;
- if (!proxy()->styleHint(SH_UnderlineShortcut, mbi))
- alignment |= Qt::TextHideMnemonic;
-
- p->fillRect(rect, fill);
- if (!pix.isNull())
- drawItemPixmap(p, mbi->rect, alignment, pix);
- else
- drawItemText(p, mbi->rect, alignment, mbi->palette, mbi->state & State_Enabled, mbi->text, textRole);
- }
- return;
-#if 0 && QT_CONFIG(dockwidget)
- case CE_DockWidgetTitle:
- if (const QStyleOptionDockWidget *dwOpt = qstyleoption_cast<const QStyleOptionDockWidget *>(option))
- {
- int buttonMargin = 4;
- int mw = proxy()->pixelMetric(QStyle::PM_DockWidgetTitleMargin, dwOpt);
- int fw = proxy()->pixelMetric(PM_DockWidgetFrameWidth, dwOpt);
- bool isFloating = false; // widget && widget->isWindow();
- bool isActive = dwOpt->state & State_Active;
-
- const bool verticalTitleBar = dwOpt->verticalTitleBar;
-
- if (verticalTitleBar) {
- rect = rect.transposed();
-
- p->translate(rect.left() - 1, rect.top() + rect.width());
- p->rotate(-90);
- p->translate(-rect.left() + 1, -rect.top());
- }
- QRect r = rect.adjusted(0, 2, -1, -3);
- QRect titleRect = r;
-
- if (dwOpt->closable) {
- QSize sz = proxy()->standardIcon(QStyle::SP_TitleBarCloseButton, dwOpt).actualSize(QSize(10, 10));
- titleRect.adjust(0, 0, -sz.width() - mw - buttonMargin, 0);
- }
-
- if (dwOpt->floatable) {
- QSize sz = proxy()->standardIcon(QStyle::SP_TitleBarMaxButton, dwOpt).actualSize(QSize(10, 10));
- titleRect.adjust(0, 0, -sz.width() - mw - buttonMargin, 0);
- }
-
- if (isFloating) {
- titleRect.adjust(0, -fw, 0, 0);
- if (option->window && option->window->icon().cacheKey() != QApplication::windowIcon().cacheKey())
- titleRect.adjust(titleRect.height() + mw, 0, 0, 0);
- } else {
- titleRect.adjust(mw, 0, 0, 0);
- if (!dwOpt->floatable && !dwOpt->closable)
- titleRect.adjust(0, 0, -mw, 0);
- }
-
- if (!verticalTitleBar)
- titleRect = visualRect(dwOpt->direction, r, titleRect);
-
- if (!isFloating) {
- QPen oldPen = p->pen();
- QString titleText = p->fontMetrics().elidedText(dwOpt->title, Qt::ElideRight, titleRect.width());
- p->setPen(dwOpt->palette.color(QPalette::Dark));
- p->drawRect(r);
-
- if (!titleText.isEmpty()) {
- drawItemText(p, titleRect,
- Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic, dwOpt->palette,
- dwOpt->state & State_Enabled, titleText,
- QPalette::WindowText);
- }
-
- p->setPen(oldPen);
- } else {
- themeNumber = QWindowsXPStylePrivate::WindowTheme;
- if (isActive)
- stateId = CS_ACTIVE;
- else
- stateId = CS_INACTIVE;
-
- int titleHeight = rect.height() - 2;
- rect = rect.adjusted(-fw, -fw, fw, 0);
-
- XPThemeData theme(option->window, p, themeNumber, 0, stateId);
- if (!theme.isValid())
- break;
-
- // Draw small type title bar
- theme.rect = rect;
- theme.partId = WP_SMALLCAPTION;
- d->drawBackground(theme);
-
- // Figure out maximal button space on title bar
-
- QIcon ico = option->window->icon();
- bool hasIcon = (ico.cacheKey() != QApplication::windowIcon().cacheKey());
- if (hasIcon) {
- QPixmap pxIco = ico.pixmap(titleHeight);
- if (!verticalTitleBar && dwOpt->direction == Qt::RightToLeft)
- p->drawPixmap(rect.width() - titleHeight - pxIco.width(), rect.bottom() - titleHeight - 2, pxIco);
- else
- p->drawPixmap(fw, rect.bottom() - titleHeight - 2, pxIco);
- }
- if (!dwOpt->title.isEmpty()) {
- QPen oldPen = p->pen();
- QFont oldFont = p->font();
- QFont titleFont = oldFont;
- titleFont.setBold(true);
- p->setFont(titleFont);
- QString titleText
- = p->fontMetrics().elidedText(dwOpt->title, Qt::ElideRight, titleRect.width());
-
- int result = TST_NONE;
- GetThemeEnumValue(theme.handle(), WP_SMALLCAPTION, isActive ? CS_ACTIVE : CS_INACTIVE, TMT_TEXTSHADOWTYPE, &result);
- if (result != TST_NONE) {
- COLORREF textShadowRef;
- GetThemeColor(theme.handle(), WP_SMALLCAPTION, isActive ? CS_ACTIVE : CS_INACTIVE, TMT_TEXTSHADOWCOLOR, &textShadowRef);
- QColor textShadow = qRgb(GetRValue(textShadowRef), GetGValue(textShadowRef), GetBValue(textShadowRef));
- p->setPen(textShadow);
- drawItemText(p, titleRect.adjusted(1, 1, 1, 1),
- Qt::AlignLeft | Qt::AlignBottom, dwOpt->palette,
- dwOpt->state & State_Enabled, titleText);
- }
-
- COLORREF captionText = GetSysColor(isActive ? COLOR_CAPTIONTEXT : COLOR_INACTIVECAPTIONTEXT);
- QColor textColor = qRgb(GetRValue(captionText), GetGValue(captionText), GetBValue(captionText));
- p->setPen(textColor);
- drawItemText(p, titleRect,
- Qt::AlignLeft | Qt::AlignBottom, dwOpt->palette,
- dwOpt->state & State_Enabled, titleText);
- p->setFont(oldFont);
- p->setPen(oldPen);
- }
-
- }
-
- return;
- }
- break;
-#endif // QT_CONFIG(dockwidget)
-#if 0 && QT_CONFIG(rubberband)
- case CE_RubberBand:
- if (qstyleoption_cast<const QStyleOptionRubberBand *>(option)) {
- QColor highlight = option->palette.color(QPalette::Active, QPalette::Highlight);
- p->save();
- p->setPen(highlight.darker(120));
- QColor dimHighlight(qMin(highlight.red()/2 + 110, 255),
- qMin(highlight.green()/2 + 110, 255),
- qMin(highlight.blue()/2 + 110, 255),
- 127);
- //(widget && widget->isTopLevel())? 255 : 127);
- p->setBrush(dimHighlight);
- p->drawRect(option->rect.adjusted(0, 0, -1, -1));
- p->restore();
- return;
- }
- break;
-#endif // QT_CONFIG(rubberband)
- case CE_HeaderEmptyArea:
- if (option->state & State_Horizontal)
- {
- themeNumber = QWindowsXPStylePrivate::HeaderTheme;
- stateId = HIS_NORMAL;
- }
- else {
- QWindowsStyle::drawControl(CE_HeaderEmptyArea, option, p);
- return;
- }
- break;
- default:
- break;
- }
-
- XPThemeData theme(option->window, p, themeNumber, partId, stateId, rect);
- if (!theme.isValid()) {
- QWindowsStyle::drawControl(element, option, p);
- return;
- }
-
- theme.rotate = rotate;
- theme.mirrorHorizontally = hMirrored;
- theme.mirrorVertically = vMirrored;
- d->drawBackground(theme);
-}
-
-QRect QWindowsXPStylePrivate::scrollBarGripperBounds(QStyle::State flags, XPThemeData *theme)
-{
- const bool horizontal = flags & QStyle::State_Horizontal;
- const qreal factor = QWindowsStylePrivate::nativeMetricScaleFactor(theme->window);
- const QMargins contentsMargin =
- (theme->margins(theme->rect, TMT_SIZINGMARGINS) * factor).toMargins();
- theme->partId = horizontal ? SBP_GRIPPERHORZ : SBP_GRIPPERVERT;
- const QSize size = (theme->size() * factor).toSize();
-
- const int hSpace = theme->rect.width() - size.width();
- const int vSpace = theme->rect.height() - size.height();
- const bool sufficientSpace = (horizontal && hSpace > (contentsMargin.left() + contentsMargin.right()))
- || vSpace > contentsMargin.top() + contentsMargin.bottom();
- return sufficientSpace ? QRect(theme->rect.topLeft() + QPoint(hSpace, vSpace) / 2, size) : QRect();
-}
-
-#if 0 && QT_CONFIG(mdiarea)
-// Helper for drawing MDI buttons into the corner widget of QMenuBar in case a
-// QMdiSubWindow is maximized.
-static void populateMdiButtonTheme(const QStyle *proxy,
- const QStyleOptionComplex *option,
- QStyle::SubControl subControl, int part,
- XPThemeData *theme)
-{
- theme->partId = part;
- theme->rect = proxy->subControlRect(QStyle::CC_MdiControls, option, subControl);
- if (!option->state.testFlag(QStyle::State_Enabled))
- theme->stateId = CBS_INACTIVE;
- else if (option->state.testFlag(QStyle::State_Sunken) && option->activeSubControls.testFlag(subControl))
- theme->stateId = CBS_PUSHED;
- else if (option->state.testFlag(QStyle::State_MouseOver) && option->activeSubControls.testFlag(subControl))
- theme->stateId = CBS_HOT;
- else
- theme->stateId = CBS_NORMAL;
-}
-
-// Calculate an small (max 2), empirical correction factor for scaling up
-// WP_MDICLOSEBUTTON, WP_MDIRESTOREBUTTON, WP_MDIMINBUTTON, which are too
-// small on High DPI screens (QTBUG-75927).
-qreal mdiButtonCorrectionFactor(XPThemeData &theme, const QPaintDevice *pd = nullptr)
-{
- const auto dpr = pd ? pd->devicePixelRatioF() : qApp->devicePixelRatio();
- const QSizeF nativeSize = QSizeF(theme.size()) / dpr;
- const QSizeF requestedSize(theme.rect.size());
- const auto rawFactor = qMin(requestedSize.width() / nativeSize.width(),
- requestedSize.height() / nativeSize.height());
- const auto factor = rawFactor >= qreal(2) ? qreal(2) : qreal(1);
- return factor;
-}
-#endif // QT_CONFIG(mdiarea)
-
-static void populateTitleBarButtonTheme(const QStyle *proxy,
- const QStyleOptionComplex *option,
- QStyle::SubControl subControl,
- bool isTitleBarActive, int part,
- XPThemeData *theme)
-{
- theme->rect = proxy->subControlRect(QStyle::CC_TitleBar, option, subControl);
- theme->partId = part;
- if (!(option->state & QStyle::State_Enabled))
- theme->stateId = RBS_DISABLED;
- else if (option->activeSubControls == subControl && option->state.testFlag(QStyle::State_Sunken))
- theme->stateId = RBS_PUSHED;
- else if (option->activeSubControls == subControl && option->state.testFlag(QStyle::State_MouseOver))
- theme->stateId = RBS_HOT;
- else if (!isTitleBarActive)
- theme->stateId = RBS_INACTIVE;
- else
- theme->stateId = RBS_NORMAL;
-}
-
-/*!
- \reimp
-*/
-void QWindowsXPStyle::drawComplexControl(ComplexControl cc, const QStyleOptionComplex *option,
- QPainter *p) const
-{
- QWindowsXPStylePrivate *d = const_cast<QWindowsXPStylePrivate*>(d_func());
-
- if (!QWindowsXPStylePrivate::useXP()) {
- QWindowsStyle::drawComplexControl(cc, option, p);
- return;
- }
-
- State flags = option->state;
- SubControls sub = option->subControls;
- QRect r = option->rect;
-
- int partId = 0;
- int stateId = 0;
- if (option->window && option->window->isActive())
- flags |= State_MouseOver;
-
- switch (cc) {
-//#if QT_CONFIG(spinbox)
- case CC_SpinBox:
- if (const QStyleOptionSpinBox *sb = qstyleoption_cast<const QStyleOptionSpinBox *>(option))
- {
- XPThemeData theme(option->window, p, QWindowsXPStylePrivate::SpinTheme);
-
- if (sb->frame && (sub & SC_SpinBoxFrame)) {
- partId = EP_EDITTEXT;
- if (!(flags & State_Enabled))
- stateId = ETS_DISABLED;
- else if (flags & State_HasFocus)
- stateId = ETS_FOCUSED;
- else
- stateId = ETS_NORMAL;
-
- XPThemeData ftheme(option->window, p, QWindowsXPStylePrivate::EditTheme,
- partId, stateId, r);
- ftheme.noContent = true;
- d->drawBackground(ftheme);
- }
- if (sub & SC_SpinBoxUp) {
- theme.rect = proxy()->subControlRect(CC_SpinBox, option, SC_SpinBoxUp);
- partId = SPNP_UP;
- if (!(sb->stepEnabled & QStyleOptionSpinBox::StepUpEnabled) || !(flags & State_Enabled))
- stateId = UPS_DISABLED;
- else if (sb->activeSubControls == SC_SpinBoxUp && (sb->state & State_Sunken))
- stateId = UPS_PRESSED;
- else if (sb->activeSubControls == SC_SpinBoxUp && (sb->state & State_MouseOver))
- stateId = UPS_HOT;
- else
- stateId = UPS_NORMAL;
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- if (sub & SC_SpinBoxDown) {
- theme.rect = proxy()->subControlRect(CC_SpinBox, option, SC_SpinBoxDown);
- partId = SPNP_DOWN;
- if (!(sb->stepEnabled & QStyleOptionSpinBox::StepDownEnabled) || !(flags & State_Enabled))
- stateId = DNS_DISABLED;
- else if (sb->activeSubControls == SC_SpinBoxDown && (sb->state & State_Sunken))
- stateId = DNS_PRESSED;
- else if (sb->activeSubControls == SC_SpinBoxDown && (sb->state & State_MouseOver))
- stateId = DNS_HOT;
- else
- stateId = DNS_NORMAL;
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- }
- break;
-//#endif // QT_CONFIG(spinbox)
-//#if QT_CONFIG(combobox)
- case CC_ComboBox:
- if (const QStyleOptionComboBox *cmb = qstyleoption_cast<const QStyleOptionComboBox *>(option))
- {
- if (cmb->editable) {
- if (sub & SC_ComboBoxEditField) {
- partId = EP_EDITBORDER_NOSCROLL;
- if (!(flags & State_Enabled))
- stateId = ETS_DISABLED;
- else if (flags & State_MouseOver)
- stateId = ETS_HOT;
- else if (flags & State_HasFocus)
- stateId = ETS_FOCUSED;
- else
- stateId = ETS_NORMAL;
-
- XPThemeData theme(option->window, p,
- QWindowsXPStylePrivate::EditTheme,
- partId, stateId, r);
-
- d->drawBackground(theme);
- }
- if (sub & SC_ComboBoxArrow) {
- QRect subRect = proxy()->subControlRect(CC_ComboBox, option, SC_ComboBoxArrow);
- XPThemeData theme(option->window, p, QWindowsXPStylePrivate::ComboboxTheme);
- theme.rect = subRect;
- partId = option->direction == Qt::RightToLeft ? CP_DROPDOWNBUTTONLEFT : CP_DROPDOWNBUTTONRIGHT;
-
- if (!(cmb->state & State_Enabled))
- stateId = CBXS_DISABLED;
- else if (cmb->state & State_Sunken || cmb->state & State_On)
- stateId = CBXS_PRESSED;
- else if (cmb->state & State_MouseOver && option->activeSubControls & SC_ComboBoxArrow)
- stateId = CBXS_HOT;
- else
- stateId = CBXS_NORMAL;
-
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
-
- } else {
- if (sub & SC_ComboBoxFrame) {
- XPThemeData theme(option->window, p, QWindowsXPStylePrivate::ComboboxTheme);
- theme.rect = option->rect;
- theme.partId = CP_READONLY;
- if (!(cmb->state & State_Enabled))
- theme.stateId = CBXS_DISABLED;
- else if (cmb->state & State_Sunken || cmb->state & State_On)
- theme.stateId = CBXS_PRESSED;
- else if (cmb->state & State_MouseOver)
- theme.stateId = CBXS_HOT;
- else
- theme.stateId = CBXS_NORMAL;
- d->drawBackground(theme);
- }
- if (sub & SC_ComboBoxArrow) {
- XPThemeData theme(option->window, p, QWindowsXPStylePrivate::ComboboxTheme);
- theme.rect = proxy()->subControlRect(CC_ComboBox, option, SC_ComboBoxArrow);
- theme.partId = option->direction == Qt::RightToLeft ? CP_DROPDOWNBUTTONLEFT : CP_DROPDOWNBUTTONRIGHT;
- if (!(cmb->state & State_Enabled))
- theme.stateId = CBXS_DISABLED;
- else
- theme.stateId = CBXS_NORMAL;
- d->drawBackground(theme);
- }
- if ((sub & SC_ComboBoxEditField) && (flags & State_HasFocus)) {
- QStyleOptionFocusRect fropt;
- fropt.QStyleOption::operator=(*cmb);
- fropt.rect = proxy()->subControlRect(CC_ComboBox, option, SC_ComboBoxEditField);
- proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, p);
- }
- }
- }
- break;
-//#endif // QT_CONFIG(combobox)
- case CC_ScrollBar:
- if (const QStyleOptionSlider *scrollbar = qstyleoption_cast<const QStyleOptionSlider *>(option))
- {
- XPThemeData theme(option->window, p, QWindowsXPStylePrivate::ScrollBarTheme);
- bool maxedOut = (scrollbar->maximum == scrollbar->minimum);
- if (maxedOut)
- flags &= ~State_Enabled;
-
- bool isHorz = flags & State_Horizontal;
- bool isRTL = option->direction == Qt::RightToLeft;
- if (sub & SC_ScrollBarAddLine) {
- theme.rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarAddLine);
- partId = SBP_ARROWBTN;
- if (!(flags & State_Enabled))
- stateId = (isHorz ? (isRTL ? ABS_LEFTDISABLED : ABS_RIGHTDISABLED) : ABS_DOWNDISABLED);
- else if (scrollbar->activeSubControls & SC_ScrollBarAddLine && (scrollbar->state & State_Sunken))
- stateId = (isHorz ? (isRTL ? ABS_LEFTPRESSED : ABS_RIGHTPRESSED) : ABS_DOWNPRESSED);
- else if (scrollbar->activeSubControls & SC_ScrollBarAddLine && (scrollbar->state & State_MouseOver))
- stateId = (isHorz ? (isRTL ? ABS_LEFTHOT : ABS_RIGHTHOT) : ABS_DOWNHOT);
- else
- stateId = (isHorz ? (isRTL ? ABS_LEFTNORMAL : ABS_RIGHTNORMAL) : ABS_DOWNNORMAL);
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- if (sub & SC_ScrollBarSubLine) {
- theme.rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarSubLine);
- partId = SBP_ARROWBTN;
- if (!(flags & State_Enabled))
- stateId = (isHorz ? (isRTL ? ABS_RIGHTDISABLED : ABS_LEFTDISABLED) : ABS_UPDISABLED);
- else if (scrollbar->activeSubControls & SC_ScrollBarSubLine && (scrollbar->state & State_Sunken))
- stateId = (isHorz ? (isRTL ? ABS_RIGHTPRESSED : ABS_LEFTPRESSED) : ABS_UPPRESSED);
- else if (scrollbar->activeSubControls & SC_ScrollBarSubLine && (scrollbar->state & State_MouseOver))
- stateId = (isHorz ? (isRTL ? ABS_RIGHTHOT : ABS_LEFTHOT) : ABS_UPHOT);
- else
- stateId = (isHorz ? (isRTL ? ABS_RIGHTNORMAL : ABS_LEFTNORMAL) : ABS_UPNORMAL);
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- if (maxedOut) {
- if (sub & SC_ScrollBarSlider) {
- theme.rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarSlider);
- theme.rect = theme.rect.united(proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarSubPage));
- theme.rect = theme.rect.united(proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarAddPage));
- partId = scrollbar->orientation == Qt::Horizontal ? SBP_LOWERTRACKHORZ : SBP_LOWERTRACKVERT;
- stateId = SCRBS_DISABLED;
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- } else {
- if (sub & SC_ScrollBarSubPage) {
- theme.rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarSubPage);
- partId = flags & State_Horizontal ? SBP_UPPERTRACKHORZ : SBP_UPPERTRACKVERT;
- if (!(flags & State_Enabled))
- stateId = SCRBS_DISABLED;
- else if (scrollbar->activeSubControls & SC_ScrollBarSubPage && (scrollbar->state & State_Sunken))
- stateId = SCRBS_PRESSED;
- else if (scrollbar->activeSubControls & SC_ScrollBarSubPage && (scrollbar->state & State_MouseOver))
- stateId = SCRBS_HOT;
- else
- stateId = SCRBS_NORMAL;
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- if (sub & SC_ScrollBarAddPage) {
- theme.rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarAddPage);
- partId = flags & State_Horizontal ? SBP_LOWERTRACKHORZ : SBP_LOWERTRACKVERT;
- if (!(flags & State_Enabled))
- stateId = SCRBS_DISABLED;
- else if (scrollbar->activeSubControls & SC_ScrollBarAddPage && (scrollbar->state & State_Sunken))
- stateId = SCRBS_PRESSED;
- else if (scrollbar->activeSubControls & SC_ScrollBarAddPage && (scrollbar->state & State_MouseOver))
- stateId = SCRBS_HOT;
- else
- stateId = SCRBS_NORMAL;
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- if (sub & SC_ScrollBarSlider) {
- QRect rect = proxy()->subControlRect(CC_ScrollBar, option, SC_ScrollBarSlider);
- // The style paint the slider handle so that it is surrounded by transparent areas
- // on each side. These areas have the same size as the Left/Right (or Top/Left) buttons.
- // This is probaly done in order for the handle to travel all along the geometry
- // of the slider, while the handle still not occluding the buttons.
- // We do not want those transparent areas, so we clip them off here.
- const QSize handleSize = proxy()->subControlRect(QStyle::CC_ScrollBar, scrollbar, QStyle::SC_ScrollBarAddLine).size();
-
- if (scrollbar->orientation == Qt::Vertical) {
- const int handleHeight = handleSize.height();
- rect.setBottom(rect.bottom() + 2 * handleHeight);
- p->setClipRect(r.adjusted(0, 0, 0, handleHeight));
- p->translate(0, -handleHeight);
- } else {
- const int handleWidth = handleSize.width();
- rect.setRight(rect.right() + 2 * handleWidth);
- p->setClipRect(r.adjusted(0, 0, handleWidth, 0));
- p->translate(-handleWidth, 0);
- }
-
- theme.rect = rect;
- if (!(flags & State_Enabled))
- stateId = SCRBS_DISABLED;
- else if (scrollbar->activeSubControls & SC_ScrollBarSlider && (scrollbar->state & State_Sunken))
- stateId = SCRBS_PRESSED;
- else if (scrollbar->activeSubControls & SC_ScrollBarSlider && (scrollbar->state & State_MouseOver))
- stateId = SCRBS_HOT;
- else
- stateId = SCRBS_NORMAL;
-
- // Draw handle
- theme.partId = flags & State_Horizontal ? SBP_THUMBBTNHORZ : SBP_THUMBBTNVERT;
- theme.stateId = stateId;
- d->drawBackground(theme);
-
- const QRect gripperBounds = QWindowsXPStylePrivate::scrollBarGripperBounds(flags, &theme);
- // Draw gripper if there is enough space
- if (!gripperBounds.isEmpty()) {
- p->save();
- theme.rect = gripperBounds;
- p->setClipRegion(d->region(theme));// Only change inside the region of the gripper
- d->drawBackground(theme); // Transparent gripper ontop of background
- p->restore();
- }
- }
- }
- }
- break;
-
-//#if QT_CONFIG(slider)
- case CC_Slider:
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(option))
- {
- XPThemeData theme(option->window, p, QWindowsXPStylePrivate::TrackBarTheme);
- QRect slrect = slider->rect;
- QRegion tickreg = slrect;
- if (sub & SC_SliderGroove) {
- theme.rect = proxy()->subControlRect(CC_Slider, option, SC_SliderGroove);
- if (slider->orientation == Qt::Horizontal) {
- partId = TKP_TRACK;
- stateId = TRS_NORMAL;
- theme.rect = QRect(slrect.left(), theme.rect.center().y() - 2, slrect.width(), 4);
- } else {
- partId = TKP_TRACKVERT;
- stateId = TRVS_NORMAL;
- theme.rect = QRect(theme.rect.center().x() - 2, slrect.top(), 4, slrect.height());
- }
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- tickreg -= theme.rect;
- }
- if (sub & SC_SliderTickmarks) {
- int tickOffset = proxy()->pixelMetric(PM_SliderTickmarkOffset, slider);
- int ticks = slider->tickPosition;
- int thickness = proxy()->pixelMetric(PM_SliderControlThickness, slider);
- int len = proxy()->pixelMetric(PM_SliderLength, slider);
- int available = proxy()->pixelMetric(PM_SliderSpaceAvailable, slider);
- int interval = slider->tickInterval;
- if (interval <= 0) {
- interval = slider->singleStep;
- if (QStyle::sliderPositionFromValue(slider->minimum, slider->maximum, interval,
- available)
- - QStyle::sliderPositionFromValue(slider->minimum, slider->maximum,
- 0, available) < 3)
- interval = slider->pageStep;
- }
- if (!interval)
- interval = 1;
- int fudge = len / 2;
- int pos;
- int bothOffset = (ticks & QStyleOptionSlider::TicksAbove && ticks & QStyleOptionSlider::TicksBelow) ? 1 : 0;
- p->setPen(d->sliderTickColor);
- QVarLengthArray<QLine, 32> lines;
- int v = slider->minimum;
- while (v <= slider->maximum + 1) {
- if (v == slider->maximum + 1 && interval == 1)
- break;
- const int v_ = qMin(v, slider->maximum);
- int tickLength = (v_ == slider->minimum || v_ >= slider->maximum) ? 4 : 3;
- pos = QStyle::sliderPositionFromValue(slider->minimum, slider->maximum,
- v_, available) + fudge;
- if (slider->orientation == Qt::Horizontal) {
- if (ticks & QStyleOptionSlider::TicksAbove)
- lines.append(QLine(pos, tickOffset - 1 - bothOffset,
- pos, tickOffset - 1 - bothOffset - tickLength));
-
- if (ticks & QStyleOptionSlider::TicksBelow)
- lines.append(QLine(pos, tickOffset + thickness + bothOffset,
- pos, tickOffset + thickness + bothOffset + tickLength));
- } else {
- if (ticks & QStyleOptionSlider::TicksAbove)
- lines.append(QLine(tickOffset - 1 - bothOffset, pos,
- tickOffset - 1 - bothOffset - tickLength, pos));
-
- if (ticks & QStyleOptionSlider::TicksBelow)
- lines.append(QLine(tickOffset + thickness + bothOffset, pos,
- tickOffset + thickness + bothOffset + tickLength, pos));
- }
- // in the case where maximum is max int
- int nextInterval = v + interval;
- if (nextInterval < v)
- break;
- v = nextInterval;
- }
- if (!lines.isEmpty()) {
- p->save();
- p->translate(slrect.topLeft());
- p->drawLines(lines.constData(), lines.size());
- p->restore();
- }
- }
- if (sub & SC_SliderHandle) {
- theme.rect = proxy()->subControlRect(CC_Slider, option, SC_SliderHandle);
- if (slider->orientation == Qt::Horizontal) {
- if (slider->tickPosition == QStyleOptionSlider::TicksAbove)
- partId = TKP_THUMBTOP;
- else if (slider->tickPosition == QStyleOptionSlider::TicksBelow)
- partId = TKP_THUMBBOTTOM;
- else
- partId = TKP_THUMB;
-
- if (!(slider->state & State_Enabled))
- stateId = TUS_DISABLED;
- else if (slider->activeSubControls & SC_SliderHandle && (slider->state & State_Sunken))
- stateId = TUS_PRESSED;
- else if (slider->activeSubControls & SC_SliderHandle && (slider->state & State_MouseOver))
- stateId = TUS_HOT;
- else if (flags & State_HasFocus)
- stateId = TUS_FOCUSED;
- else
- stateId = TUS_NORMAL;
- } else {
- if (slider->tickPosition == QStyleOptionSlider::TicksLeft)
- partId = TKP_THUMBLEFT;
- else if (slider->tickPosition == QStyleOptionSlider::TicksRight)
- partId = TKP_THUMBRIGHT;
- else
- partId = TKP_THUMBVERT;
-
- if (!(slider->state & State_Enabled))
- stateId = TUVS_DISABLED;
- else if (slider->activeSubControls & SC_SliderHandle && (slider->state & State_Sunken))
- stateId = TUVS_PRESSED;
- else if (slider->activeSubControls & SC_SliderHandle && (slider->state & State_MouseOver))
- stateId = TUVS_HOT;
- else if (flags & State_HasFocus)
- stateId = TUVS_FOCUSED;
- else
- stateId = TUVS_NORMAL;
- }
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
- }
- if (sub & SC_SliderGroove && slider->state & State_HasFocus) {
- QStyleOptionFocusRect fropt;
- fropt.QStyleOption::operator=(*slider);
- fropt.rect = subElementRect(SE_SliderFocusRect, slider);
- proxy()->drawPrimitive(PE_FrameFocusRect, &fropt, p);
- }
- }
- break;
-//#endif
-#if 0 && QT_CONFIG(toolbutton)
- case CC_ToolButton:
- if (const QStyleOptionToolButton *toolbutton
- = qstyleoption_cast<const QStyleOptionToolButton *>(option)) {
- QRect button, menuarea;
- button = proxy()->subControlRect(cc, toolbutton, SC_ToolButton);
- menuarea = proxy()->subControlRect(cc, toolbutton, SC_ToolButtonMenu);
-
- State bflags = toolbutton->state & ~State_Sunken;
- State mflags = bflags;
- bool autoRaise = flags & State_AutoRaise;
- if (autoRaise) {
- if (!(bflags & State_MouseOver) || !(bflags & State_Enabled)) {
- bflags &= ~State_Raised;
- }
- }
-
- if (toolbutton->state & State_Sunken) {
- if (toolbutton->activeSubControls & SC_ToolButton) {
- bflags |= State_Sunken;
- mflags |= State_MouseOver | State_Sunken;
- } else if (toolbutton->activeSubControls & SC_ToolButtonMenu) {
- mflags |= State_Sunken;
- bflags |= State_MouseOver;
- }
- }
-
- QStyleOption tool = *toolbutton;
- if (toolbutton->subControls & SC_ToolButton) {
- if (flags & (State_Sunken | State_On | State_Raised) || !autoRaise) {
- if (toolbutton->features & QStyleOptionToolButton::MenuButtonPopup && autoRaise) {
- XPThemeData theme(option->window, p, QWindowsXPStylePrivate::ToolBarTheme);
- theme.partId = TP_SPLITBUTTON;
- theme.rect = button;
- if (!(bflags & State_Enabled))
- stateId = TS_DISABLED;
- else if (bflags & State_Sunken)
- stateId = TS_PRESSED;
- else if (bflags & State_MouseOver || !(flags & State_AutoRaise))
- stateId = flags & State_On ? TS_HOTCHECKED : TS_HOT;
- else if (bflags & State_On)
- stateId = TS_CHECKED;
- else
- stateId = TS_NORMAL;
- if (option->direction == Qt::RightToLeft)
- theme.mirrorHorizontally = true;
- theme.stateId = stateId;
- d->drawBackground(theme);
- } else {
- tool.rect = option->rect;
- tool.state = bflags;
- if (autoRaise) // for tool bars
- proxy()->drawPrimitive(PE_PanelButtonTool, &tool, p);
- else
- proxy()->drawPrimitive(PE_PanelButtonBevel, &tool, p);
- }
- }
- }
-
- if (toolbutton->state & State_HasFocus) {
- QStyleOptionFocusRect fr;
- fr.QStyleOption::operator=(*toolbutton);
- fr.rect.adjust(3, 3, -3, -3);
- if (toolbutton->features & QStyleOptionToolButton::MenuButtonPopup)
- fr.rect.adjust(0, 0, -proxy()->pixelMetric(QStyle::PM_MenuButtonIndicator,
- toolbutton), 0);
- proxy()->drawPrimitive(PE_FrameFocusRect, &fr, p);
- }
- QStyleOptionToolButton label = *toolbutton;
- label.state = bflags;
- int fw = 2;
- if (!autoRaise)
- label.state &= ~State_Sunken;
- label.rect = button.adjusted(fw, fw, -fw, -fw);
- proxy()->drawControl(CE_ToolButtonLabel, &label, p);
-
- if (toolbutton->subControls & SC_ToolButtonMenu) {
- tool.rect = menuarea;
- tool.state = mflags;
- if (autoRaise) {
- proxy()->drawPrimitive(PE_IndicatorButtonDropDown, &tool, p);
- } else {
- tool.state = mflags;
- menuarea.adjust(-2, 0, 0, 0);
- // Draw menu button
- if ((bflags & State_Sunken) != (mflags & State_Sunken)){
- p->save();
- p->setClipRect(menuarea);
- tool.rect = option->rect;
- proxy()->drawPrimitive(PE_PanelButtonBevel, &tool, p);
- p->restore();
- }
- // Draw arrow
- p->save();
- p->setPen(option->palette.dark().color());
- p->drawLine(menuarea.left(), menuarea.top() + 3,
- menuarea.left(), menuarea.bottom() - 3);
- p->setPen(option->palette.light().color());
- p->drawLine(menuarea.left() - 1, menuarea.top() + 3,
- menuarea.left() - 1, menuarea.bottom() - 3);
-
- tool.rect = menuarea.adjusted(2, 3, -2, -1);
- proxy()->drawPrimitive(PE_IndicatorArrowDown, &tool, p);
- p->restore();
- }
- } else if (toolbutton->features & QStyleOptionToolButton::HasMenu) {
- int mbi = proxy()->pixelMetric(PM_MenuButtonIndicator, toolbutton);
- QRect ir = toolbutton->rect;
- QStyleOptionToolButton newBtn = *toolbutton;
- newBtn.rect = QRect(ir.right() + 4 - mbi, ir.height() - mbi + 4, mbi - 5, mbi - 5);
- proxy()->drawPrimitive(PE_IndicatorArrowDown, &newBtn, p);
- }
- }
- break;
-#endif // QT_CONFIG(toolbutton)
-
- case CC_TitleBar:
- {
- if (const QStyleOptionTitleBar *tb = qstyleoption_cast<const QStyleOptionTitleBar *>(option))
- {
- const qreal factor = QWindowsStylePrivate::nativeMetricScaleFactor(option);
- bool isActive = tb->titleBarState & QStyle::State_Active;
- XPThemeData theme(option->window, p, QWindowsXPStylePrivate::WindowTheme);
- if (sub & SC_TitleBarLabel) {
-
- partId = (tb->titleBarState & Qt::WindowMinimized) ? WP_MINCAPTION : WP_CAPTION;
- theme.rect = option->rect;
- if (!(option->state & QStyle::State_Enabled))
- stateId = CS_DISABLED;
- else if (isActive)
- stateId = CS_ACTIVE;
- else
- stateId = CS_INACTIVE;
-
- theme.partId = partId;
- theme.stateId = stateId;
- d->drawBackground(theme);
-
- QRect ir = proxy()->subControlRect(CC_TitleBar, tb, SC_TitleBarLabel);
-
- int result = TST_NONE;
- GetThemeEnumValue(theme.handle(), WP_CAPTION, isActive ? CS_ACTIVE : CS_INACTIVE, TMT_TEXTSHADOWTYPE, &result);
- if (result != TST_NONE) {
- COLORREF textShadowRef;
- GetThemeColor(theme.handle(), WP_CAPTION, isActive ? CS_ACTIVE : CS_INACTIVE, TMT_TEXTSHADOWCOLOR, &textShadowRef);
- QColor textShadow = qRgb(GetRValue(textShadowRef), GetGValue(textShadowRef), GetBValue(textShadowRef));
- p->setPen(textShadow);
- p->drawText(int(ir.x() + 3 * factor), int(ir.y() + 2 * factor),
- int(ir.width() - 1 * factor), ir.height(),
- Qt::AlignLeft | Qt::AlignVCenter | Qt::TextSingleLine, tb->text);
- }
- COLORREF captionText = GetSysColor(isActive ? COLOR_CAPTIONTEXT : COLOR_INACTIVECAPTIONTEXT);
- QColor textColor = qRgb(GetRValue(captionText), GetGValue(captionText), GetBValue(captionText));
- p->setPen(textColor);
- p->drawText(int(ir.x() + 2 * factor), int(ir.y() + 1 * factor),
- int(ir.width() - 2 * factor), ir.height(),
- Qt::AlignLeft | Qt::AlignVCenter | Qt::TextSingleLine, tb->text);
- }
- if (sub & SC_TitleBarSysMenu && tb->titleBarFlags & Qt::WindowSystemMenuHint) {
- theme.rect = proxy()->subControlRect(CC_TitleBar, option, SC_TitleBarSysMenu);
- partId = WP_SYSBUTTON;
- if (!(option->state & QStyle::State_Enabled) || !isActive)
- stateId = SBS_DISABLED;
- else if (option->activeSubControls == SC_TitleBarSysMenu && (option->state & State_Sunken))
- stateId = SBS_PUSHED;
- else if (option->activeSubControls == SC_TitleBarSysMenu && (option->state & State_MouseOver))
- stateId = SBS_HOT;
- else
- stateId = SBS_NORMAL;
- if (!tb->icon.isNull()) {
- tb->icon.paint(p, theme.rect);
- } else {
- theme.partId = partId;
- theme.stateId = stateId;
- if (theme.size().isEmpty()) {
- int iconSize = proxy()->pixelMetric(PM_SmallIconSize, tb);
- QPixmap pm = proxy()->standardIcon(SP_TitleBarMenuButton, tb).pixmap(iconSize, iconSize);
- p->save();
- drawItemPixmap(p, theme.rect, Qt::AlignCenter, pm);
- p->restore();
- } else {
- d->drawBackground(theme);
- }
- }
- }
-
- if (sub & SC_TitleBarMinButton && tb->titleBarFlags & Qt::WindowMinimizeButtonHint
- && !(tb->titleBarState & Qt::WindowMinimized)) {
- populateTitleBarButtonTheme(proxy(), option, SC_TitleBarMinButton, isActive, WP_MINBUTTON, &theme);
- d->drawBackground(theme);
- }
- if (sub & SC_TitleBarMaxButton && tb->titleBarFlags & Qt::WindowMaximizeButtonHint
- && !(tb->titleBarState & Qt::WindowMaximized)) {
- populateTitleBarButtonTheme(proxy(), option, SC_TitleBarMaxButton, isActive, WP_MAXBUTTON, &theme);
- d->drawBackground(theme);
- }
- if (sub & SC_TitleBarContextHelpButton
- && tb->titleBarFlags & Qt::WindowContextHelpButtonHint) {
- populateTitleBarButtonTheme(proxy(), option, SC_TitleBarContextHelpButton, isActive, WP_HELPBUTTON, &theme);
- d->drawBackground(theme);
- }
- bool drawNormalButton = (sub & SC_TitleBarNormalButton)
- && (((tb->titleBarFlags & Qt::WindowMinimizeButtonHint)
- && (tb->titleBarState & Qt::WindowMinimized))
- || ((tb->titleBarFlags & Qt::WindowMaximizeButtonHint)
- && (tb->titleBarState & Qt::WindowMaximized)));
- if (drawNormalButton) {
- populateTitleBarButtonTheme(proxy(), option, SC_TitleBarNormalButton, isActive, WP_RESTOREBUTTON, &theme);
- d->drawBackground(theme);
- }
- if (sub & SC_TitleBarShadeButton && tb->titleBarFlags & Qt::WindowShadeButtonHint
- && !(tb->titleBarState & Qt::WindowMinimized)) {
- populateTitleBarButtonTheme(proxy(), option, SC_TitleBarShadeButton, isActive, WP_MINBUTTON, &theme);
- d->drawBackground(theme);
- }
- if (sub & SC_TitleBarUnshadeButton && tb->titleBarFlags & Qt::WindowShadeButtonHint
- && tb->titleBarState & Qt::WindowMinimized) {
- populateTitleBarButtonTheme(proxy(), option, SC_TitleBarUnshadeButton, isActive, WP_RESTOREBUTTON, &theme);
- d->drawBackground(theme);
- }
- if (sub & SC_TitleBarCloseButton && tb->titleBarFlags & Qt::WindowSystemMenuHint) {
- populateTitleBarButtonTheme(proxy(), option, SC_TitleBarCloseButton, isActive, WP_CLOSEBUTTON, &theme);
- d->drawBackground(theme);
- }
- }
- }
- break;
-
-#if 0 && QT_CONFIG(mdiarea)
- case CC_MdiControls:
- {
- XPThemeData theme(option->window, p, QWindowsXPStylePrivate::WindowTheme, WP_MDICLOSEBUTTON, CBS_NORMAL);
- if (Q_UNLIKELY(!theme.isValid()))
- return;
-
- if (option->subControls.testFlag(SC_MdiCloseButton)) {
- populateMdiButtonTheme(proxy(), option, SC_MdiCloseButton, WP_MDICLOSEBUTTON, &theme);
- d->drawBackground(theme, mdiButtonCorrectionFactor(theme));
- }
- if (option->subControls.testFlag(SC_MdiNormalButton)) {
- populateMdiButtonTheme(proxy(), option, SC_MdiNormalButton, WP_MDIRESTOREBUTTON, &theme);
- d->drawBackground(theme, mdiButtonCorrectionFactor(theme));
- }
- if (option->subControls.testFlag(QStyle::SC_MdiMinButton)) {
- populateMdiButtonTheme(proxy(), option, SC_MdiMinButton, WP_MDIMINBUTTON, &theme);
- d->drawBackground(theme, mdiButtonCorrectionFactor(theme));
- }
- }
- break;
-#endif // QT_CONFIG(mdiarea)
-#if 0 && QT_CONFIG(dial)
- case CC_Dial:
- if (const QStyleOptionSlider *dial = qstyleoption_cast<const QStyleOptionSlider *>(option))
- QStyleHelper::drawDial(dial, p);
- break;
-#endif // QT_CONFIG(dial)
- default:
- QWindowsStyle::drawComplexControl(cc, option, p);
- break;
- }
-}
-
-static inline Qt::Orientation progressBarOrientation(const QStyleOption *option = nullptr)
-{
- if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(option))
- return pb->state & QStyle::State_Horizontal ? Qt::Horizontal : Qt::Vertical;
- return Qt::Horizontal;
-}
-
-int QWindowsXPStylePrivate::pixelMetricFromSystemDp(QStyle::PixelMetric pm, const QStyleOption *option)
-{
- switch (pm) {
- case QStyle::PM_IndicatorWidth:
- return XPThemeData::themeSize(option->window, nullptr, QWindowsXPStylePrivate::ButtonTheme, BP_CHECKBOX, CBS_UNCHECKEDNORMAL).width();
- case QStyle::PM_IndicatorHeight:
- return XPThemeData::themeSize(option->window, nullptr, QWindowsXPStylePrivate::ButtonTheme, BP_CHECKBOX, CBS_UNCHECKEDNORMAL).height();
- case QStyle::PM_ExclusiveIndicatorWidth:
- return XPThemeData::themeSize(option->window, nullptr, QWindowsXPStylePrivate::ButtonTheme, BP_RADIOBUTTON, RBS_UNCHECKEDNORMAL).width();
- case QStyle::PM_ExclusiveIndicatorHeight:
- return XPThemeData::themeSize(option->window, nullptr, QWindowsXPStylePrivate::ButtonTheme, BP_RADIOBUTTON, RBS_UNCHECKEDNORMAL).height();
- case QStyle::PM_ProgressBarChunkWidth:
- return progressBarOrientation(option) == Qt::Horizontal
- ? XPThemeData::themeSize(option->window, nullptr, QWindowsXPStylePrivate::ProgressTheme, PP_CHUNK).width()
- : XPThemeData::themeSize(option->window, nullptr, QWindowsXPStylePrivate::ProgressTheme, PP_CHUNKVERT).height();
- case QStyle::PM_SliderThickness:
- return XPThemeData::themeSize(option->window, nullptr, QWindowsXPStylePrivate::TrackBarTheme, TKP_THUMB).height();
- case QStyle::PM_TitleBarHeight:
- return option->window && (option->window->type() == Qt::Tool)
- ? GetSystemMetrics(SM_CYSMCAPTION) + GetSystemMetrics(SM_CXSIZEFRAME)
- : GetSystemMetrics(SM_CYCAPTION) + GetSystemMetrics(SM_CXSIZEFRAME);
- case QStyle::PM_MdiSubWindowFrameWidth:
- return XPThemeData::themeSize(option->window, nullptr, QWindowsXPStylePrivate::WindowTheme, WP_FRAMELEFT, FS_ACTIVE).width();
- case QStyle::PM_DockWidgetFrameWidth:
- return XPThemeData::themeSize(option->window, nullptr, QWindowsXPStylePrivate::WindowTheme, WP_SMALLFRAMERIGHT, FS_ACTIVE).width();
- default:
- break;
- }
- return QWindowsXPStylePrivate::InvalidMetric;
-}
-
-/*! \reimp */
-int QWindowsXPStyle::pixelMetric(PixelMetric pm, const QStyleOption *option) const
-{
- if (!QWindowsXPStylePrivate::useXP())
- return QWindowsStyle::pixelMetric(pm, option);
-
- int res = QWindowsXPStylePrivate::pixelMetricFromSystemDp(pm, option);
- if (res != QWindowsStylePrivate::InvalidMetric)
- return qRound(qreal(res) * QWindowsStylePrivate::nativeMetricScaleFactor(option));
-
- res = 0;
- switch (pm) {
- case PM_MenuBarPanelWidth:
- case PM_ButtonDefaultIndicator:
- res = 0;
- break;
-
- case PM_DefaultFrameWidth:
- res = 1;
- //res = qobject_cast<const QListView*>(widget) ? 2 : 1;
- break;
- case PM_MenuPanelWidth:
- case PM_SpinBoxFrameWidth:
- res = 1;
- break;
-
- case PM_TabBarTabOverlap:
- case PM_MenuHMargin:
- case PM_MenuVMargin:
- res = 2;
- break;
-#if 0
- case PM_TabBarBaseOverlap:
- if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option)) {
- switch (tab->shape) {
- case QTabBar::RoundedNorth:
- case QTabBar::TriangularNorth:
- case QTabBar::RoundedWest:
- case QTabBar::TriangularWest:
- res = 1;
- break;
- case QTabBar::RoundedSouth:
- case QTabBar::TriangularSouth:
- res = 2;
- break;
- case QTabBar::RoundedEast:
- case QTabBar::TriangularEast:
- res = 3;
- break;
- }
- }
- break;
-#endif
- case PM_SplitterWidth:
- res = QStyleHelper::dpiScaled(5., option);
- break;
-
- case PM_MdiSubWindowMinimizedWidth:
- res = 160;
- break;
-
-#if 0 && QT_CONFIG(toolbar)
- case PM_ToolBarHandleExtent:
- res = int(QStyleHelper::dpiScaled(8., option));
- break;
-
-#endif // QT_CONFIG(toolbar)
- case PM_DockWidgetSeparatorExtent:
- case PM_DockWidgetTitleMargin:
- res = int(QStyleHelper::dpiScaled(4., option));
- break;
-
- case PM_ButtonShiftHorizontal:
- case PM_ButtonShiftVertical:
- res = qstyleoption_cast<const QStyleOptionToolButton *>(option) ? 1 : 0;
- break;
-
- default:
- res = QWindowsStyle::pixelMetric(pm, option);
- }
-
- return res;
-}
-
-/*
- This function is used by subControlRect to check if a button
- should be drawn for the given subControl given a set of window flags.
-*/
-static bool buttonVisible(const QStyle::SubControl sc, const QStyleOptionTitleBar *tb){
-
- bool isMinimized = tb->titleBarState & Qt::WindowMinimized;
- bool isMaximized = tb->titleBarState & Qt::WindowMaximized;
- const uint flags = tb->titleBarFlags;
- bool retVal = false;
- switch (sc) {
- case QStyle::SC_TitleBarContextHelpButton:
- if (flags & Qt::WindowContextHelpButtonHint)
- retVal = true;
- break;
- case QStyle::SC_TitleBarMinButton:
- if (!isMinimized && (flags & Qt::WindowMinimizeButtonHint))
- retVal = true;
- break;
- case QStyle::SC_TitleBarNormalButton:
- if (isMinimized && (flags & Qt::WindowMinimizeButtonHint))
- retVal = true;
- else if (isMaximized && (flags & Qt::WindowMaximizeButtonHint))
- retVal = true;
- break;
- case QStyle::SC_TitleBarMaxButton:
- if (!isMaximized && (flags & Qt::WindowMaximizeButtonHint))
- retVal = true;
- break;
- case QStyle::SC_TitleBarShadeButton:
- if (!isMinimized && flags & Qt::WindowShadeButtonHint)
- retVal = true;
- break;
- case QStyle::SC_TitleBarUnshadeButton:
- if (isMinimized && flags & Qt::WindowShadeButtonHint)
- retVal = true;
- break;
- case QStyle::SC_TitleBarCloseButton:
- if (flags & Qt::WindowSystemMenuHint)
- retVal = true;
- break;
- case QStyle::SC_TitleBarSysMenu:
- if (flags & Qt::WindowSystemMenuHint)
- retVal = true;
- break;
- default :
- retVal = true;
- }
- return retVal;
-}
-
-/*!
- \reimp
-*/
-QRect QWindowsXPStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex *option,
- SubControl subControl) const
-{
- if (!QWindowsXPStylePrivate::useXP())
- return QWindowsStyle::subControlRect(cc, option, subControl);
-
- QRect rect;
-
- switch (cc) {
- case CC_GroupBox:
- rect = visualRect(option->direction, option->rect,
- QWindowsStyle::subControlRect(cc, option, subControl));
- if (subControl == QStyle::SC_GroupBoxContents) {
- // This will add the margins that was added by QLayouts in QtWidgets
- // (default to 9 for layouts inside a QGroupBox)
- rect.adjust(9, 9, -9, -9);
- }
- break;
- case CC_TitleBar:
- if (const QStyleOptionTitleBar *tb = qstyleoption_cast<const QStyleOptionTitleBar *>(option)) {
- if (!buttonVisible(subControl, tb))
- return rect;
- const bool isToolTitle = false;
- const int height = tb->rect.height();
- const int width = tb->rect.width();
- const int buttonMargin = int(QStyleHelper::dpiScaled(4, option));
- const qreal factor = QWindowsStylePrivate::nativeMetricScaleFactor(option);
- int buttonHeight = qRound(qreal(GetSystemMetrics(SM_CYSIZE)) * factor)
- - buttonMargin;
- int buttonWidth = qRound(qreal(GetSystemMetrics(SM_CXSIZE)) * factor)
- - buttonMargin;
- const int delta = buttonWidth + 2;
- int controlTop = option->rect.bottom() - buttonHeight - 2;
- const int frameWidth = proxy()->pixelMetric(PM_MdiSubWindowFrameWidth, option);
- const bool sysmenuHint = (tb->titleBarFlags & Qt::WindowSystemMenuHint) != 0;
- const bool minimizeHint = (tb->titleBarFlags & Qt::WindowMinimizeButtonHint) != 0;
- const bool maximizeHint = (tb->titleBarFlags & Qt::WindowMaximizeButtonHint) != 0;
- const bool contextHint = (tb->titleBarFlags & Qt::WindowContextHelpButtonHint) != 0;
- const bool shadeHint = (tb->titleBarFlags & Qt::WindowShadeButtonHint) != 0;
- bool isMinimized = tb->titleBarState & Qt::WindowMinimized;
- bool isMaximized = tb->titleBarState & Qt::WindowMaximized;
- int offset = 0;
-
- switch (subControl) {
- case SC_TitleBarLabel:
- rect = QRect(frameWidth, 0, width - (buttonWidth + frameWidth + 10), height);
- if (isToolTitle) {
- if (sysmenuHint) {
- rect.adjust(0, 0, -buttonWidth - 3, 0);
- }
- if (minimizeHint || maximizeHint)
- rect.adjust(0, 0, -buttonWidth - 2, 0);
- } else {
- if (sysmenuHint) {
- const int leftOffset = height - 8;
- rect.adjust(leftOffset, 0, 0, 0);
- }
- if (minimizeHint)
- rect.adjust(0, 0, -buttonWidth - 2, 0);
- if (maximizeHint)
- rect.adjust(0, 0, -buttonWidth - 2, 0);
- if (contextHint)
- rect.adjust(0, 0, -buttonWidth - 2, 0);
- if (shadeHint)
- rect.adjust(0, 0, -buttonWidth - 2, 0);
- }
- break;
-
- case SC_TitleBarContextHelpButton:
- if (tb->titleBarFlags & Qt::WindowContextHelpButtonHint)
- offset += delta;
- Q_FALLTHROUGH();
- case SC_TitleBarMinButton:
- if (!isMinimized && (tb->titleBarFlags & Qt::WindowMinimizeButtonHint))
- offset += delta;
- else if (subControl == SC_TitleBarMinButton)
- break;
- Q_FALLTHROUGH();
- case SC_TitleBarNormalButton:
- if (isMinimized && (tb->titleBarFlags & Qt::WindowMinimizeButtonHint))
- offset += delta;
- else if (isMaximized && (tb->titleBarFlags & Qt::WindowMaximizeButtonHint))
- offset += delta;
- else if (subControl == SC_TitleBarNormalButton)
- break;
- Q_FALLTHROUGH();
- case SC_TitleBarMaxButton:
- if (!isMaximized && (tb->titleBarFlags & Qt::WindowMaximizeButtonHint))
- offset += delta;
- else if (subControl == SC_TitleBarMaxButton)
- break;
- Q_FALLTHROUGH();
- case SC_TitleBarShadeButton:
- if (!isMinimized && (tb->titleBarFlags & Qt::WindowShadeButtonHint))
- offset += delta;
- else if (subControl == SC_TitleBarShadeButton)
- break;
- Q_FALLTHROUGH();
- case SC_TitleBarUnshadeButton:
- if (isMinimized && (tb->titleBarFlags & Qt::WindowShadeButtonHint))
- offset += delta;
- else if (subControl == SC_TitleBarUnshadeButton)
- break;
- Q_FALLTHROUGH();
- case SC_TitleBarCloseButton:
- if (tb->titleBarFlags & Qt::WindowSystemMenuHint)
- offset += delta;
- else if (subControl == SC_TitleBarCloseButton)
- break;
-
- rect.setRect(width - offset - controlTop + 1, controlTop,
- buttonWidth, buttonHeight);
- break;
-
- case SC_TitleBarSysMenu:
- {
- const int controlTop = 6;
- const int controlHeight = height - controlTop - 3;
- const int iconExtent = proxy()->pixelMetric(PM_SmallIconSize, option);
- QSize iconSize = tb->icon.actualSize(QSize(iconExtent, iconExtent));
- if (tb->icon.isNull())
- iconSize = QSize(controlHeight, controlHeight);
- int hPad = (controlHeight - iconSize.height())/2;
- int vPad = (controlHeight - iconSize.width())/2;
- rect = QRect(frameWidth + hPad, controlTop + vPad, iconSize.width(), iconSize.height());
- }
- break;
- default:
- break;
- }
- }
- break;
-
- case CC_ComboBox:
- if (const QStyleOptionComboBox *cmb = qstyleoption_cast<const QStyleOptionComboBox *>(option)) {
- const int x = cmb->rect.x(), y = cmb->rect.y(), wi = cmb->rect.width(), he = cmb->rect.height();
- const int xpos = x + wi - qRound(QStyleHelper::dpiScaled(1 + 16, option));
-
- switch (subControl) {
- case SC_ComboBoxFrame:
- rect = cmb->rect;
- break;
-
- case SC_ComboBoxArrow: {
- const qreal dpi = QStyleHelper::dpi(option);
- rect = QRect(xpos, y + qRound(QStyleHelper::dpiScaled(1, dpi)),
- qRound(QStyleHelper::dpiScaled(16, dpi)),
- he - qRound(QStyleHelper::dpiScaled(2, dpi)));
- }
- break;
-
- case SC_ComboBoxEditField: {
- const qreal dpi = QStyleHelper::dpi(option);
- const int frame = qRound(QStyleHelper::dpiScaled(2, dpi));
- rect = QRect(x + frame, y + frame,
- wi - qRound(QStyleHelper::dpiScaled(3 + 16, dpi)),
- he - qRound(QStyleHelper::dpiScaled(4, dpi)));
- }
- break;
-
- case SC_ComboBoxListBoxPopup:
- rect = cmb->rect;
- break;
-
- default:
- break;
- }
- }
- break;
-#if 0 && QT_CONFIG(mdiarea)
- case CC_MdiControls:
- {
- int numSubControls = 0;
- if (option->subControls & SC_MdiCloseButton)
- ++numSubControls;
- if (option->subControls & SC_MdiMinButton)
- ++numSubControls;
- if (option->subControls & SC_MdiNormalButton)
- ++numSubControls;
- if (numSubControls == 0)
- break;
-
- int buttonWidth = option->rect.width() / numSubControls;
- int offset = 0;
- switch (subControl) {
- case SC_MdiCloseButton:
- // Only one sub control, no offset needed.
- if (numSubControls == 1)
- break;
- offset += buttonWidth;
- Q_FALLTHROUGH();
- case SC_MdiNormalButton:
- // No offset needed if
- // 1) There's only one sub control
- // 2) We have a close button and a normal button (offset already added in SC_MdiClose)
- if (numSubControls == 1 || (numSubControls == 2 && !(option->subControls & SC_MdiMinButton)))
- break;
- if (option->subControls & SC_MdiNormalButton)
- offset += buttonWidth;
- break;
- default:
- break;
- }
- rect = QRect(offset, 0, buttonWidth, option->rect.height());
- break;
- }
-#endif // QT_CONFIG(mdiarea)
-
- default:
- rect = visualRect(option->direction, option->rect,
- QWindowsStyle::subControlRect(cc, option, subControl));
- break;
- }
- return visualRect(option->direction, option->rect, rect);
-}
-
-/*!
- \reimp
-*/
-QSize QWindowsXPStyle::sizeFromContents(ContentsType ct, const QStyleOption *option,
- const QSize &contentsSize) const
-{
- if (!QWindowsXPStylePrivate::useXP())
- return QWindowsStyle::sizeFromContents(ct, option, contentsSize);
-
- QSize sz(contentsSize);
- switch (ct) {
- case CT_LineEdit:
- case CT_ComboBox:
- {
- if (contentsSize.isEmpty()) {
- // Minimum size
- return QSize(20, 20);
- }
- XPThemeData buttontheme(option->window, nullptr, QWindowsXPStylePrivate::ButtonTheme, BP_PUSHBUTTON, PBS_NORMAL);
- if (buttontheme.isValid()) {
- const QMarginsF borderSize = buttontheme.margins();
- if (!borderSize.isNull()) {
- const qreal margin = qreal(2);
- sz.rwidth() += qRound(borderSize.left() + borderSize.right() - margin);
- sz.rheight() += int(borderSize.bottom() + borderSize.top() - margin);
- }
- const int textMargins = 2*(proxy()->pixelMetric(PM_FocusFrameHMargin, option) + 1);
- sz += QSize(qMax(pixelMetric(QStyle::PM_ScrollBarExtent, option)
- + textMargins, 23), 0); //arrow button
- }
- }
- break;
- case CT_TabWidget:
- sz += QSize(6, 6);
- break;
- case CT_Menu:
- sz += QSize(1, 0);
- break;
-#if 0 && QT_CONFIG(menubar)
- case CT_MenuBarItem:
- if (!sz.isEmpty())
- sz += QSize(windowsItemHMargin * 5 + 1, 6);
- break;
-#endif
- case CT_MenuItem:
- if (const QStyleOptionMenuItem *menuitem = qstyleoption_cast<const QStyleOptionMenuItem *>(option))
- {
- if (menuitem->menuItemType != QStyleOptionMenuItem::Separator) {
- sz = QWindowsStyle::sizeFromContents(ct, option, sz);
- sz.setHeight(sz.height() - 2);
- return sz;
- }
- }
- sz = QWindowsStyle::sizeFromContents(ct, option, sz);
- break;
-
- case CT_MdiControls: {
- sz.setHeight(int(QStyleHelper::dpiScaled(19, option)));
- int width = 54;
- if (const QStyleOptionComplex *styleOpt = qstyleoption_cast<const QStyleOptionComplex *>(option)) {
- width = 0;
- if (styleOpt->subControls & SC_MdiMinButton)
- width += 17 + 1;
- if (styleOpt->subControls & SC_MdiNormalButton)
- width += 17 + 1;
- if (styleOpt->subControls & SC_MdiCloseButton)
- width += 17 + 1;
- }
- sz.setWidth(int(QStyleHelper::dpiScaled(width, option)));
- }
- break;
-
- case CT_Slider:
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
- QStyle::SubControls sub = slider->subControls;
- const int TickSpace = 5;
- int thick = proxy()->pixelMetric(QStyle::PM_SliderThickness, slider);
-
- if (slider->tickPosition & QStyleOptionSlider::TicksAbove)
- thick += TickSpace;
- if (slider->tickPosition & QStyleOptionSlider::TicksBelow)
- thick += TickSpace;
- sz.setWidth(thick);
-
- if (sub & SC_SliderGroove) {
- const int SliderLength = 84;
- sz.setHeight(SliderLength);
- }
- if (slider->orientation == Qt::Horizontal)
- sz.transpose();
- if (sub & SC_SliderHandle) {
- const QSize s = proxy()->subControlRect(CC_Slider, slider, SC_SliderHandle).size();
- sz = sz.expandedTo(s);
- }
- }
- break;
- case CT_ScrollBar :
- // Make sure that the scroll bar is large enough to display the thumb indicator.
- if (const QStyleOptionSlider *slider = qstyleoption_cast<const QStyleOptionSlider *>(option)) {
- const int scrollBarHeight = proxy()->pixelMetric(QStyle::PM_ScrollBarExtent, slider);
- const int scrollBarSliderMin = proxy()->pixelMetric(QStyle::PM_ScrollBarSliderMin, slider);
- int &szw = slider->orientation == Qt::Horizontal ? sz.rwidth() : sz.rheight();
- int &szh = slider->orientation == Qt::Horizontal ? sz.rheight() : sz.rwidth();
- if (slider->subControls & (SC_ScrollBarSlider | SC_ScrollBarGroove)) {
- szw = qMax(szw, scrollBarSliderMin + 2 * scrollBarHeight);
- szh = scrollBarHeight;
- } else if (slider->subControls & (SC_ScrollBarAddLine| SC_ScrollBarSubLine)) {
- // Assume that the AddLine and SubLine buttons have the same size, and just query
- // for the size of AddLine
- const QSize s = proxy()->subControlRect(CC_ScrollBar, slider, SC_ScrollBarAddLine).size();
- szw = qMax(szw, s.width());
- szh = scrollBarHeight;
- }
- }
- break;
- default:
- sz = QWindowsStyle::sizeFromContents(ct, option, sz);
- break;
- }
-
- return sz;
-}
-
-
-/*! \reimp */
-int QWindowsXPStyle::styleHint(StyleHint hint, const QStyleOption *option,
- QStyleHintReturn *returnData) const
-{
- QWindowsXPStylePrivate *d = const_cast<QWindowsXPStylePrivate*>(d_func());
- if (!QWindowsXPStylePrivate::useXP())
- return QWindowsStyle::styleHint(hint, option, returnData);
-
- int res = 0;
- switch (hint) {
-
- case SH_EtchDisabledText:
- //res = (qobject_cast<const QLabel*>(widget) != 0);
- res = 0;
- break;
-
- case SH_SpinControls_DisableOnBounds:
- res = 0;
- break;
-
- case SH_TitleBar_AutoRaise:
- case SH_TitleBar_NoBorder:
- res = 1;
- break;
-
- case SH_GroupBox_TextLabelColor:
- if (option->state & QStyle::State_Enabled)
- res = d->groupBoxTextColor;
- else
- res = d->groupBoxTextColorDisabled;
- break;
-
- case SH_Table_GridLineColor:
- res = 0xC0C0C0;
- break;
-
- case SH_WindowFrame_Mask:
- {
- res = 1;
- QStyleHintReturnMask *mask = qstyleoption_cast<QStyleHintReturnMask *>(returnData);
- const QStyleOptionTitleBar *titlebar = qstyleoption_cast<const QStyleOptionTitleBar *>(option);
- if (mask && titlebar) {
- // Note certain themes will not return the whole window frame but only the titlebar part when
- // queried This function needs to return the entire window mask, hence we will only fetch the mask for the
- // titlebar itself and add the remaining part of the window rect at the bottom.
- int tbHeight = proxy()->pixelMetric(PM_TitleBarHeight, option);
- QRect titleBarRect = option->rect;
- titleBarRect.setHeight(tbHeight);
- XPThemeData themeData;
- if (titlebar->titleBarState & Qt::WindowMinimized) {
- themeData = XPThemeData(option->window, nullptr,
- QWindowsXPStylePrivate::WindowTheme,
- WP_MINCAPTION, CS_ACTIVE, titleBarRect);
- } else {
- themeData = XPThemeData(option->window, nullptr,
- QWindowsXPStylePrivate::WindowTheme,
- WP_CAPTION, CS_ACTIVE, titleBarRect);
- }
- mask->region = d->region(themeData) +
- QRect(0, tbHeight, option->rect.width(), option->rect.height() - tbHeight);
- }
- }
- break;
-#if 0 && QT_CONFIG(rubberband)
- case SH_RubberBand_Mask:
- if (qstyleoption_cast<const QStyleOptionRubberBand *>(option))
- res = 0;
- break;
-#endif // QT_CONFIG(rubberband)
-
- case SH_ItemView_DrawDelegateFrame:
- res = 1;
- break;
-
- default:
- res =QWindowsStyle::styleHint(hint, option, returnData);
- }
-
- return res;
-}
-
-QMargins QWindowsXPStyle::ninePatchMargins(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, const QSize &imageSize) const
-{
- QMargins margins;
-
- switch (cc) {
- case CC_ScrollBar: {
- margins = QWindowsStyle::ninePatchMargins(cc, opt, imageSize);
- if (const auto option = qstyleoption_cast<const QStyleOptionSlider *>(opt)) {
- if (option->orientation == Qt::Horizontal) {
- margins.setTop(-1);
- margins.setBottom(-1);
- } else {
- margins.setLeft(-1);
- margins.setRight(-1);
- }
- }
- break; }
- default:
- margins = QWindowsStyle::ninePatchMargins(cc, opt, imageSize);
- break;
- }
-
- return margins;
-}
-
-
-/*! \reimp */
-QPalette QWindowsXPStyle::standardPalette() const
-{
- return QWindowsXPStylePrivate::useXP() ? QPalette() : QWindowsStyle::standardPalette();
-}
-
-/*!
- \reimp
-*/
-QPixmap QWindowsXPStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *option) const
-{
- if (!QWindowsXPStylePrivate::useXP())
- return QWindowsStyle::standardPixmap(standardPixmap, option);
-
-#if 0
- switch (standardPixmap) {
- case SP_TitleBarMaxButton:
- case SP_TitleBarCloseButton:
- if (qstyleoption_cast<const QStyleOptionDockWidget *>(option))
- {
- if (widget && widget->isWindow()) {
- XPThemeData theme(widget, nullptr, QWindowsXPStylePrivate::WindowTheme, WP_SMALLCLOSEBUTTON, CBS_NORMAL);
- if (theme.isValid()) {
- const QSize size = (theme.size() * QWindowsStylePrivate::nativeMetricScaleFactor(option)).toSize();
- return QIcon(QWindowsStyle::standardPixmap(standardPixmap, option, widget)).pixmap(size);
- }
- }
- }
- break;
- default:
- break;
- }
-#endif
- return QWindowsStyle::standardPixmap(standardPixmap, option);
-}
-
-/*!
- \reimp
-*/
-QIcon QWindowsXPStyle::standardIcon(StandardPixmap standardIcon,
- const QStyleOption *option) const
-{
- if (!QWindowsXPStylePrivate::useXP()) {
- return QWindowsStyle::standardIcon(standardIcon, option);
- }
-#if 0
- QWindowsXPStylePrivate *d = const_cast<QWindowsXPStylePrivate*>(d_func());
- switch (standardIcon) {
- case SP_TitleBarMaxButton:
- if (qstyleoption_cast<const QStyleOptionDockWidget *>(option))
- {
- if (d->dockFloat.isNull()) {
- XPThemeData themeSize(nullptr, nullptr, QWindowsXPStylePrivate::WindowTheme,
- WP_SMALLCLOSEBUTTON, CBS_NORMAL);
- XPThemeData theme(nullptr, nullptr, QWindowsXPStylePrivate::WindowTheme,
- WP_MAXBUTTON, MAXBS_NORMAL);
- if (theme.isValid()) {
- const QSize size = (themeSize.size() * QWindowsStylePrivate::nativeMetricScaleFactor(option)).toSize();
- QPixmap pm(size);
- pm.fill(Qt::transparent);
- QPainter p(&pm);
- theme.painter = &p;
- theme.rect = QRect(QPoint(0, 0), size);
- d->drawBackground(theme);
- d->dockFloat.addPixmap(pm, QIcon::Normal, QIcon::Off); // Normal
- pm.fill(Qt::transparent);
- theme.stateId = MAXBS_PUSHED;
- d->drawBackground(theme);
- d->dockFloat.addPixmap(pm, QIcon::Normal, QIcon::On); // Pressed
- pm.fill(Qt::transparent);
- theme.stateId = MAXBS_HOT;
- d->drawBackground(theme);
- d->dockFloat.addPixmap(pm, QIcon::Active, QIcon::Off); // Hover
- pm.fill(Qt::transparent);
- theme.stateId = MAXBS_INACTIVE;
- d->drawBackground(theme);
- d->dockFloat.addPixmap(pm, QIcon::Disabled, QIcon::Off); // Disabled
- }
- }
- if (widget && widget->isWindow())
- return d->dockFloat;
-
- }
- break;
- case SP_TitleBarCloseButton:
- if (qstyleoption_cast<const QStyleOptionDockWidget *>(option))
- {
- if (d->dockClose.isNull()) {
- XPThemeData theme(nullptr, nullptr, QWindowsXPStylePrivate::WindowTheme,
- WP_SMALLCLOSEBUTTON, CBS_NORMAL);
- if (theme.isValid()) {
- const QSize size = (theme.size() * QWindowsStylePrivate::nativeMetricScaleFactor(option)).toSize();
- QPixmap pm(size);
- pm.fill(Qt::transparent);
- QPainter p(&pm);
- theme.painter = &p;
- theme.partId = WP_CLOSEBUTTON; // ####
- theme.rect = QRect(QPoint(0, 0), size);
- d->drawBackground(theme);
- d->dockClose.addPixmap(pm, QIcon::Normal, QIcon::Off); // Normal
- pm.fill(Qt::transparent);
- theme.stateId = CBS_PUSHED;
- d->drawBackground(theme);
- d->dockClose.addPixmap(pm, QIcon::Normal, QIcon::On); // Pressed
- pm.fill(Qt::transparent);
- theme.stateId = CBS_HOT;
- d->drawBackground(theme);
- d->dockClose.addPixmap(pm, QIcon::Active, QIcon::Off); // Hover
- pm.fill(Qt::transparent);
- theme.stateId = CBS_INACTIVE;
- d->drawBackground(theme);
- d->dockClose.addPixmap(pm, QIcon::Disabled, QIcon::Off); // Disabled
- }
- }
- if (widget && widget->isWindow())
- return d->dockClose;
- }
- break;
- case SP_TitleBarNormalButton:
- if (qstyleoption_cast<const QStyleOptionDockWidget *>(option))
- {
- if (d->dockFloat.isNull()) {
- XPThemeData themeSize(nullptr, nullptr, QWindowsXPStylePrivate::WindowTheme,
- WP_SMALLCLOSEBUTTON, CBS_NORMAL);
- XPThemeData theme(nullptr, nullptr, QWindowsXPStylePrivate::WindowTheme,
- WP_RESTOREBUTTON, RBS_NORMAL);
- if (theme.isValid()) {
- const QSize size = (themeSize.size() * QWindowsStylePrivate::nativeMetricScaleFactor(option)).toSize();
- QPixmap pm(size);
- pm.fill(Qt::transparent);
- QPainter p(&pm);
- theme.painter = &p;
- theme.rect = QRect(QPoint(0, 0), size);
- d->drawBackground(theme);
- d->dockFloat.addPixmap(pm, QIcon::Normal, QIcon::Off); // Normal
- pm.fill(Qt::transparent);
- theme.stateId = RBS_PUSHED;
- d->drawBackground(theme);
- d->dockFloat.addPixmap(pm, QIcon::Normal, QIcon::On); // Pressed
- pm.fill(Qt::transparent);
- theme.stateId = RBS_HOT;
- d->drawBackground(theme);
- d->dockFloat.addPixmap(pm, QIcon::Active, QIcon::Off); // Hover
- pm.fill(Qt::transparent);
- theme.stateId = RBS_INACTIVE;
- d->drawBackground(theme);
- d->dockFloat.addPixmap(pm, QIcon::Disabled, QIcon::Off); // Disabled
- }
- }
- if (widget && widget->isWindow())
- return d->dockFloat;
-
- }
- break;
- default:
- break;
- }
-#endif
- return QWindowsStyle::standardIcon(standardIcon, option);
-}
-
-/*!
- \internal
-
- Constructs a QWindowsXPStyle object.
-*/
-QWindowsXPStyle::QWindowsXPStyle(QWindowsXPStylePrivate &dd) : QWindowsStyle(dd)
-{
-}
-
-#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug d, const XPThemeData &t)
-{
- QDebugStateSaver saver(d);
- d.nospace();
- d << "XPThemeData(" << t.window << ", theme=#" << t.theme << ", " << t.htheme
- << ", partId=" << t.partId << ", stateId=" << t.stateId << ", rect=" << t.rect
- << ", mirrorHorizontally=" << t.mirrorHorizontally << ", mirrorVertically="
- << t.mirrorVertically << ", noBorder=" << t.noBorder << ", noContent=" << t.noContent
- << ", rotate=" << t.rotate << ')';
- return d;
-}
-
-QDebug operator<<(QDebug d, const ThemeMapKey &k)
-{
- QDebugStateSaver saver(d);
- d.nospace();
- d << "ThemeMapKey(theme=#" << k.theme
- << ", partId=" << k.partId << ", stateId=" << k.stateId
- << ", noBorder=" << k.noBorder << ", noContent=" << k.noContent << ')';
- return d;
-}
-
-QDebug operator<<(QDebug d, const ThemeMapData &td)
-{
- QDebugStateSaver saver(d);
- d.nospace();
- d << "ThemeMapData(alphaType=" << td.alphaType
- << ", dataValid=" << td.dataValid << ", partIsTransparent=" << td.partIsTransparent
- << ", hasAlphaChannel=" << td.hasAlphaChannel << ", wasAlphaSwapped=" << td.wasAlphaSwapped
- << ", hadInvalidAlpha=" << td.hadInvalidAlpha << ')';
- return d;
-}
-#endif // QT_NO_DEBUG_STREAM
-
-// Debugging code ---------------------------------------------------------------------[ START ]---
-// The code for this point on is not compiled by default, but only used as assisting
-// debugging code when you uncomment the DEBUG_XP_STYLE define at the top of the file.
-
-#ifdef DEBUG_XP_STYLE
-// The schema file expects these to be defined by the user.
-#define TMT_ENUMDEF 8
-#define TMT_ENUMVAL TEXT('A')
-#define TMT_ENUM TEXT('B')
-#define SCHEMA_STRINGS // For 2nd pass on schema file
-QT_BEGIN_INCLUDE_NAMESPACE
-#include <tmschema.h>
-QT_END_INCLUDE_NAMESPACE
-
-// A property's value, type and name combo
-struct PropPair {
- int propValue;
- int propType;
- LPCWSTR propName;
-};
-
-// Operator for sorting of PropPairs
-bool operator<(PropPair a, PropPair b) {
- return wcscmp(a.propName, b.propName) < 0;
-}
-
-// Our list of all possible properties
-static QList<PropPair> all_props;
-
-
-/*! \internal
- Dumps a portion of the full native DIB section double buffer.
- The DIB section double buffer is only used when doing special
- transformations to the theme part, or when the real double
- buffer in the paintengine does not have an HDC we may use
- directly.
- Since we cannot rely on the pixel data we get from Microsoft
- when drawing into the DIB section, we use this function to
- see the actual data we got, and can determin the appropriate
- action.
-*/
-void QWindowsXPStylePrivate::dumpNativeDIB(int w, int h)
-{
- if (w && h) {
- static int pCount = 0;
- DWORD *bufPix = (DWORD*)bufferPixels;
-
- char *bufferDump = new char[bufferH * bufferW * 16];
- char *bufferPos = bufferDump;
-
- memset(bufferDump, 0, sizeof(bufferDump));
- bufferPos += sprintf(bufferPos, "const int pixelBufferW%d = %d;\n", pCount, w);
- bufferPos += sprintf(bufferPos, "const int pixelBufferH%d = %d;\n", pCount, h);
- bufferPos += sprintf(bufferPos, "const unsigned DWORD pixelBuffer%d[] = {", pCount);
- for (int iy = 0; iy < h; ++iy) {
- bufferPos += sprintf(bufferPos, "\n ");
- bufPix = (DWORD*)(bufferPixels + (iy * bufferW * 4));
- for (int ix = 0; ix < w; ++ix) {
- bufferPos += sprintf(bufferPos, "0x%08x, ", *bufPix);
- ++bufPix;
- }
- }
- bufferPos += sprintf(bufferPos, "\n};\n\n");
- printf(bufferDump);
-
- delete[] bufferDump;
- ++pCount;
- }
-}
-
-/*! \internal
- Shows the value of a given property for a part.
-*/
-static void showProperty(XPThemeData &themeData, const PropPair &prop)
-{
- PROPERTYORIGIN origin = PO_NOTFOUND;
- GetThemePropertyOrigin(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, &origin);
- const char *originStr;
- switch (origin) {
- case PO_STATE:
- originStr = "State ";
- break;
- case PO_PART:
- originStr = "Part ";
- break;
- case PO_CLASS:
- originStr = "Class ";
- break;
- case PO_GLOBAL:
- originStr = "Globl ";
- break;
- case PO_NOTFOUND:
- default:
- originStr = "Unkwn ";
- break;
- }
-
- switch (prop.propType) {
- case TMT_STRING:
- {
- wchar_t buffer[512];
- GetThemeString(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, buffer, 512);
- printf(" (%sString) %-20S: %S\n", originStr, prop.propName, buffer);
- }
- break;
- case TMT_ENUM:
- {
- int result = -1;
- GetThemeEnumValue(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, &result);
- printf(" (%sEnum) %-20S: %d\n", originStr, prop.propName, result);
- }
- break;
- case TMT_INT:
- {
- int result = -1;
- GetThemeInt(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, &result);
- printf(" (%sint) %-20S: %d\n", originStr, prop.propName, result);
- }
- break;
- case TMT_BOOL:
- {
- BOOL result = false;
- GetThemeBool(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, &result);
- printf(" (%sbool) %-20S: %d\n", originStr, prop.propName, result);
- }
- break;
- case TMT_COLOR:
- {
- COLORREF result = 0;
- GetThemeColor(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, &result);
- printf(" (%scolor) %-20S: 0x%08X\n", originStr, prop.propName, result);
- }
- break;
- case TMT_MARGINS:
- {
- MARGINS result;
- memset(&result, 0, sizeof(result));
- GetThemeMargins(themeData.handle(), 0, themeData.partId, themeData.stateId, prop.propValue, 0, &result);
- printf(" (%smargins) %-20S: (%d, %d, %d, %d)\n", originStr,
- prop.propName, result.cxLeftWidth, result.cyTopHeight, result.cxRightWidth, result.cyBottomHeight);
- }
- break;
- case TMT_FILENAME:
- {
- wchar_t buffer[512];
- GetThemeFilename(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, buffer, 512);
- printf(" (%sfilename)%-20S: %S\n", originStr, prop.propName, buffer);
- }
- break;
- case TMT_SIZE:
- {
- SIZE result1;
- SIZE result2;
- SIZE result3;
- memset(&result1, 0, sizeof(result1));
- memset(&result2, 0, sizeof(result2));
- memset(&result3, 0, sizeof(result3));
- GetThemePartSize(themeData.handle(), 0, themeData.partId, themeData.stateId, 0, TS_MIN, &result1);
- GetThemePartSize(themeData.handle(), 0, themeData.partId, themeData.stateId, 0, TS_TRUE, &result2);
- GetThemePartSize(themeData.handle(), 0, themeData.partId, themeData.stateId, 0, TS_DRAW, &result3);
- printf(" (%ssize) %-20S: Min (%d, %d), True(%d, %d), Draw(%d, %d)\n", originStr, prop.propName,
- result1.cx, result1.cy, result2.cx, result2.cy, result3.cx, result3.cy);
- }
- break;
- case TMT_POSITION:
- {
- POINT result;
- memset(&result, 0, sizeof(result));
- GetThemePosition(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, &result);
- printf(" (%sPosition)%-20S: (%d, %d)\n", originStr, prop.propName, result.x, result.y);
- }
- break;
- case TMT_RECT:
- {
- RECT result;
- memset(&result, 0, sizeof(result));
- GetThemeRect(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, &result);
- printf(" (%sRect) %-20S: (%d, %d, %d, %d)\n", originStr, prop.propName, result.left, result.top, result.right, result.bottom);
- }
- break;
- case TMT_FONT:
- {
- LOGFONT result;
- memset(&result, 0, sizeof(result));
- GetThemeFont(themeData.handle(), 0, themeData.partId, themeData.stateId, prop.propValue, &result);
- printf(" (%sFont) %-20S: %S height(%d) width(%d) weight(%d)\n", originStr, prop.propName,
- result.lfFaceName, result.lfHeight, result.lfWidth, result.lfWeight);
- }
- break;
- case TMT_INTLIST:
- {
- INTLIST result;
- memset(&result, 0, sizeof(result));
- GetThemeIntList(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, &result);
- printf(" (%sInt list)%-20S: { ", originStr, prop.propName);
- for (int i = 0; i < result.iValueCount; ++i)
- printf("%d ", result.iValues[i]);
- printf("}\n");
- }
- break;
- default:
- printf(" %s%S : Unknown property type (%d)!\n", originStr, prop.propName, prop.propType);
- }
-}
-
-/*! \internal
- Dump all valid properties for a part.
- If it's the first time this function is called, then the name,
- enum value and documentation of all properties are shown, as
- well as all global properties.
-*/
-void QWindowsXPStylePrivate::showProperties(XPThemeData &themeData)
-{
- if (!all_props.count()) {
- const TMSCHEMAINFO *infoTable = GetSchemaInfo();
- for (int i = 0; i < infoTable->iPropCount; ++i) {
- int propType = infoTable->pPropTable[i].bPrimVal;
- int propValue = infoTable->pPropTable[i].sEnumVal;
- LPCWSTR propName = infoTable->pPropTable[i].pszName;
-
- switch (propType) {
- case TMT_ENUMDEF:
- case TMT_ENUMVAL:
- continue;
- default:
- if (propType != propValue) {
- PropPair prop;
- prop.propValue = propValue;
- prop.propName = propName;
- prop.propType = propType;
- all_props.append(prop);
- }
- }
- }
- std::sort(all_props.begin(), all_props.end());
-
- {// List all properties
- printf("part properties count = %d:\n", all_props.count());
- printf(" Enum Property Name Description\n");
- printf("-----------------------------------------------------------\n");
- wchar_t themeName[256];
- pGetCurrentThemeName(themeName, 256, 0, 0, 0, 0);
- for (int j = 0; j < all_props.count(); ++j) {
- PropPair prop = all_props.at(j);
- wchar_t buf[500];
- GetThemeDocumentationProperty(themeName, prop.propName, buf, 500);
- printf("%3d: (%4d) %-20S %S\n", j, prop.propValue, prop.propName, buf);
- }
- }
-
- {// Show Global values
- printf("Global Properties:\n");
- for (int j = 0; j < all_props.count(); ++j) {
- PropPair prop = all_props.at(j);
- PROPERTYORIGIN origin = PO_NOTFOUND;
- GetThemePropertyOrigin(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, &origin);
- if (origin == PO_GLOBAL) {
- showProperty(themeData, prop);
- }
- }
- }
- }
-
- for (int j = 0; j < all_props.count(); ++j) {
- PropPair prop = all_props.at(j);
- PROPERTYORIGIN origin = PO_NOTFOUND;
- GetThemePropertyOrigin(themeData.handle(), themeData.partId, themeData.stateId, prop.propValue, &origin);
- if (origin != PO_NOTFOUND)
- {
- showProperty(themeData, prop);
- }
- }
-}
-#endif
-// Debugging code -----------------------------------------------------------------------[ END ]---
-
-} //namespace QQC2
-
-QT_END_NAMESPACE
diff --git a/src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle_p.h b/src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle_p.h
deleted file mode 100644
index 5d8d5e20..00000000
--- a/src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle_p.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWidgets module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKWINDOWSXPSTYLE_P_H
-#define QQUICKWINDOWSXPSTYLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickwindowsstyle_p.h"
-
-QT_BEGIN_NAMESPACE
-
-namespace QQC2 {
-
-class QWindowsXPStylePrivate;
-class QWindowsXPStyle : public QWindowsStyle
-{
- Q_OBJECT
-public:
- QWindowsXPStyle();
- QWindowsXPStyle(QWindowsXPStylePrivate &dd);
- ~QWindowsXPStyle() override;
-
-/*
- void polish(QApplication*) override;
- void unpolish(QApplication*) override;
- void polish(QWidget*) override;
- void unpolish(QWidget*) override;
- void polish(QPalette&) override;
-*/
- void drawPrimitive(PrimitiveElement pe, const QStyleOption *option, QPainter *p) const override;
- void drawControl(ControlElement element, const QStyleOption *option, QPainter *p) const override;
- QRect subElementRect(SubElement r, const QStyleOption *option) const override;
- QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *option, SubControl sc) const override;
- void drawComplexControl(ComplexControl cc, const QStyleOptionComplex *option, QPainter *p) const override;
- QSize sizeFromContents(ContentsType ct, const QStyleOption *option, const QSize &contentsSize) const override;
- int pixelMetric(PixelMetric pm, const QStyleOption *option = nullptr) const override;
- int styleHint(StyleHint hint, const QStyleOption *option = nullptr,
- QStyleHintReturn *returnData = nullptr) const override;
-
- QPalette standardPalette() const override;
- QPixmap standardPixmap(StandardPixmap standardIcon, const QStyleOption *option) const override;
- QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = nullptr) const override;
-
- QMargins ninePatchMargins(QStyle::ComplexControl cc, const QStyleOptionComplex *opt, const QSize &imageSize) const;
-
-private:
- Q_DISABLE_COPY_MOVE(QWindowsXPStyle)
- Q_DECLARE_PRIVATE(QWindowsXPStyle)
- friend class QStyleFactory;
-};
-
-} // namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif // QQUICKWINDOWSXPSTYLE_P_H
diff --git a/src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle_p_p.h b/src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle_p_p.h
deleted file mode 100644
index a449ecdd..00000000
--- a/src/quicknativestyle/qstyle/windows/qquickwindowsxpstyle_p_p.h
+++ /dev/null
@@ -1,348 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWidgets module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKWINDOWSXPSTYLE_P_P_H
-#define QQUICKWINDOWSXPSTYLE_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-//#include <QtWidgets/private/qtwidgetsglobal_p.h>
-#include "qquickwindowsxpstyle_p.h"
-#include "qquickwindowsstyle_p_p.h"
-#include <QtCore/qmap.h>
-#include <qt_windows.h>
-
-#include <uxtheme.h>
-#include <vssym32.h>
-
-#include <limits.h>
-
-QT_BEGIN_NAMESPACE
-
-class QDebug;
-
-namespace QQC2 {
-
-// TMT_TEXTSHADOWCOLOR is wrongly defined in mingw
-#if TMT_TEXTSHADOWCOLOR != 3818
-#undef TMT_TEXTSHADOWCOLOR
-#define TMT_TEXTSHADOWCOLOR 3818
-#endif
-#ifndef TST_NONE
-# define TST_NONE 0
-#endif
-
-// These defines are missing from the tmschema, but still exist as
-// states for their parts
-#ifndef MINBS_INACTIVE
-#define MINBS_INACTIVE 5
-#endif
-#ifndef MAXBS_INACTIVE
-#define MAXBS_INACTIVE 5
-#endif
-#ifndef RBS_INACTIVE
-#define RBS_INACTIVE 5
-#endif
-#ifndef HBS_INACTIVE
-#define HBS_INACTIVE 5
-#endif
-#ifndef CBS_INACTIVE
-#define CBS_INACTIVE 5
-#endif
-
-// Uncomment define below to build debug assisting code, and output
-// #define DEBUG_XP_STYLE
-
-// Declarations -----------------------------------------------------------------------------------
-class XPThemeData
-{
-public:
- explicit XPThemeData(const QWindow *w = nullptr, QPainter *p = nullptr, int themeIn = -1,
- int part = 0, int state = 0, const QRect &r = QRect())
- : window(w), painter(p), theme(themeIn), partId(part), stateId(state),
- mirrorHorizontally(false), mirrorVertically(false), noBorder(false),
- noContent(false), rect(r)
- {}
-
- HTHEME handle();
-
- static RECT toRECT(const QRect &qr);
- bool isValid();
-
- QSizeF size();
- QMarginsF margins(const QRect &rect, int propId = TMT_CONTENTMARGINS);
- QMarginsF margins(int propId = TMT_CONTENTMARGINS);
-
- static QSizeF themeSize(const QWindow *w = nullptr, QPainter *p = nullptr, int themeIn = -1, int part = 0, int state = 0);
- static QMarginsF themeMargins(const QRect &rect, const QWindow *w = nullptr, QPainter *p = nullptr, int themeIn = -1,
- int part = 0, int state = 0, int propId = TMT_CONTENTMARGINS);
- static QMarginsF themeMargins(const QWindow *w = nullptr, QPainter *p = nullptr, int themeIn = -1,
- int part = 0, int state = 0, int propId = TMT_CONTENTMARGINS);
-
- const QWindow *window;
- QPainter *painter;
-
- int theme;
- HTHEME htheme = nullptr;
- int partId;
- int stateId;
-
- uint mirrorHorizontally : 1;
- uint mirrorVertically : 1;
- uint noBorder : 1;
- uint noContent : 1;
- uint rotate = 0;
- QRect rect;
-};
-
-struct ThemeMapKey {
- int theme = 0;
- int partId = -1;
- int stateId = -1;
- bool noBorder = false;
- bool noContent = false;
-
- ThemeMapKey() = default;
- ThemeMapKey(const XPThemeData &data)
- : theme(data.theme), partId(data.partId), stateId(data.stateId),
- noBorder(data.noBorder), noContent(data.noContent) {}
-
-};
-
-inline size_t qHash(const ThemeMapKey &key)
-{ return key.theme ^ key.partId ^ key.stateId; }
-
-inline bool operator==(const ThemeMapKey &k1, const ThemeMapKey &k2)
-{
- return k1.theme == k2.theme
- && k1.partId == k2.partId
- && k1.stateId == k2.stateId;
-}
-
-enum AlphaChannelType {
- UnknownAlpha = -1, // Alpha of part & state not yet known
- NoAlpha, // Totally opaque, no need to touch alpha (RGB)
- MaskAlpha, // Alpha channel must be fixed (ARGB)
- RealAlpha // Proper alpha values from Windows (ARGB_Premultiplied)
-};
-
-struct ThemeMapData {
- AlphaChannelType alphaType = UnknownAlpha; // Which type of alpha on part & state
-
- bool dataValid : 1; // Only used to detect if hash value is ok
- bool partIsTransparent : 1;
- bool hasAlphaChannel : 1; // True = part & state has real Alpha
- bool wasAlphaSwapped : 1; // True = alpha channel needs to be swapped
- bool hadInvalidAlpha : 1; // True = alpha channel contained invalid alpha values
-
- ThemeMapData() : dataValid(false), partIsTransparent(false),
- hasAlphaChannel(false), wasAlphaSwapped(false), hadInvalidAlpha(false) {}
-};
-
-#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug d, const XPThemeData &t);
-QDebug operator<<(QDebug d, const ThemeMapKey &k);
-QDebug operator<<(QDebug d, const ThemeMapData &td);
-#endif
-
-class QWindowsXPStylePrivate : public QWindowsStylePrivate
-{
- Q_DECLARE_PUBLIC(QWindowsXPStyle)
-public:
- enum Theme {
- ButtonTheme,
- ComboboxTheme,
- EditTheme,
- HeaderTheme,
- ListViewTheme,
- MenuTheme,
- ProgressTheme,
- RebarTheme,
- ScrollBarTheme,
- SpinTheme,
- TabTheme,
- TaskDialogTheme,
- ToolBarTheme,
- ToolTipTheme,
- TrackBarTheme,
- XpTreeViewTheme, // '+'/'-' shape treeview indicators (XP)
- WindowTheme,
- StatusTheme,
- VistaTreeViewTheme, // arrow shape treeview indicators (Vista) obtained from "explorer" theme.
- NThemes
- };
-
- QWindowsXPStylePrivate()
- { init(); }
-
- ~QWindowsXPStylePrivate()
- { cleanup(); }
-
- static int pixelMetricFromSystemDp(QStyle::PixelMetric pm, const QStyleOption *option = nullptr);
- static int fixedPixelMetric(QStyle::PixelMetric pm, const QStyleOption *option = nullptr, const QWidget *widget = nullptr);
-
- static HWND winId(const QWindow *window);
-
- void init(bool force = false);
- void cleanup(bool force = false);
- void cleanupHandleMap();
-
- HBITMAP buffer(int w = 0, int h = 0);
- HDC bufferHDC()
- { return bufferDC;}
-
- static bool useXP(bool update = false);
- static QRect scrollBarGripperBounds(QStyle::State flags, XPThemeData *theme);
-
- bool isTransparent(XPThemeData &themeData);
- QRegion region(XPThemeData &themeData);
-
- bool drawBackground(XPThemeData &themeData, qreal correctionFactor = 1);
- bool drawBackgroundThruNativeBuffer(XPThemeData &themeData, qreal aditionalDevicePixelRatio, qreal correctionFactor);
- bool drawBackgroundDirectly(HDC dc, XPThemeData &themeData, qreal aditionalDevicePixelRatio);
-
- bool hasAlphaChannel(const QRect &rect);
- bool fixAlphaChannel(const QRect &rect);
- bool swapAlphaChannel(const QRect &rect, bool allPixels = false);
-
- QRgb groupBoxTextColor = 0;
- QRgb groupBoxTextColorDisabled = 0;
- QRgb sliderTickColor = 0;
- bool hasInitColors = false;
-
- static HTHEME createTheme(int theme, HWND hwnd);
- static QString themeName(int theme);
- static inline bool hasTheme(int theme) { return theme >= 0 && theme < NThemes && m_themes[theme]; }
- static bool isItemViewDelegateLineEdit(const QWidget *widget);
- static bool isLineEditBaseColorSet(const QStyleOption *option, const QWidget *widget);
-
- QIcon dockFloat, dockClose;
-
-private:
-#ifdef DEBUG_XP_STYLE
- void dumpNativeDIB(int w, int h);
- void showProperties(XPThemeData &themeData);
-#endif
-
- static bool initVistaTreeViewTheming();
- static void cleanupVistaTreeViewTheming();
-
- static QBasicAtomicInt ref;
- static bool use_xp;
-
- QHash<ThemeMapKey, ThemeMapData> alphaCache;
- HDC bufferDC = nullptr;
- HBITMAP bufferBitmap = nullptr;
- HBITMAP nullBitmap = nullptr;
- uchar *bufferPixels = nullptr;
- int bufferW = 0;
- int bufferH = 0;
-
- static HWND m_vistaTreeViewHelper;
- static HTHEME m_themes[NThemes];
-};
-
-inline QSizeF XPThemeData::size()
-{
- QSizeF result(0, 0);
- if (isValid()) {
- SIZE size;
- if (SUCCEEDED(GetThemePartSize(handle(), nullptr, partId, stateId, nullptr, TS_TRUE, &size)))
- result = QSize(size.cx, size.cy);
- }
- return result;
-}
-
-inline QMarginsF XPThemeData::margins(const QRect &qRect, int propId)
-{
- QMarginsF result(0, 0, 0 ,0);
- if (isValid()) {
- MARGINS margins;
- RECT rect = XPThemeData::toRECT(qRect);
- if (SUCCEEDED(GetThemeMargins(handle(), nullptr, partId, stateId, propId, &rect, &margins)))
- result = QMargins(margins.cxLeftWidth, margins.cyTopHeight, margins.cxRightWidth, margins.cyBottomHeight);
- }
- return result;
-}
-
-inline QMarginsF XPThemeData::margins(int propId)
-{
- QMarginsF result(0, 0, 0 ,0);
- if (isValid()) {
- MARGINS margins;
- if (SUCCEEDED(GetThemeMargins(handle(), nullptr, partId, stateId, propId, nullptr, &margins)))
- result = QMargins(margins.cxLeftWidth, margins.cyTopHeight, margins.cxRightWidth, margins.cyBottomHeight);
- }
- return result;
-}
-
-inline QSizeF XPThemeData::themeSize(const QWindow *w, QPainter *p, int themeIn, int part, int state)
-{
- XPThemeData theme(w, p, themeIn, part, state);
- return theme.size();
-}
-
-inline QMarginsF XPThemeData::themeMargins(const QRect &rect, const QWindow *w, QPainter *p, int themeIn,
- int part, int state, int propId)
-{
- XPThemeData theme(w, p, themeIn, part, state);
- return theme.margins(rect, propId);
-}
-
-inline QMarginsF XPThemeData::themeMargins(const QWindow *w, QPainter *p, int themeIn,
- int part, int state, int propId)
-{
- XPThemeData theme(w, p, themeIn, part, state);
- return theme.margins(propId);
-}
-
-} //namespace QQC2
-
-QT_END_NAMESPACE
-
-#endif //QQUICKWINDOWSXPSTYLE_P_P_H
diff --git a/src/quicknativestyle/qstyle/windows/windows.pri b/src/quicknativestyle/qstyle/windows/windows.pri
deleted file mode 100644
index beb50a5b..00000000
--- a/src/quicknativestyle/qstyle/windows/windows.pri
+++ /dev/null
@@ -1,18 +0,0 @@
-
-INCLUDEPATH += $$PWD
-
-HEADERS += \
- $$PWD/qquickwindowsstyle_p.h \
- $$PWD/qquickwindowsstyle_p_p.h \
-# $$PWD/qquickwindowsvistastyle_p.h \
-# $$PWD/qquickwindowsvistastyle_p_p.h \
- $$PWD/qquickwindowsxpstyle_p.h \
- $$PWD/qquickwindowsxpstyle_p_p.h
-
-SOURCES += \
- $$PWD/qquickwindowsstyle.cpp \
-# $$PWD/qquickwindowsvistastyle.cpp \
- $$PWD/qquickwindowsxpstyle.cpp
-
-QMAKE_USE_PRIVATE += user32 gdi32
-LIBS_PRIVATE *= -luxtheme
diff --git a/src/quicknativestyle/qtquickcontrols2nativestyleplugin.cpp b/src/quicknativestyle/qtquickcontrols2nativestyleplugin.cpp
deleted file mode 100644
index e09d327a..00000000
--- a/src/quicknativestyle/qtquickcontrols2nativestyleplugin.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtQml/qqml.h>
-#include <QtQuickControls2/private/qquickstyleplugin_p.h>
-#include <QtGui/qguiapplication.h>
-
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-#include "qquicknativestyle.h"
-#include "qquickcommonstyle.h"
-
-#if defined(Q_OS_MACOS)
-#include "qquickmacstyle_mac_p.h"
-#include "qquickmacfocusframe.h"
-#elif defined(Q_OS_WINDOWS)
-# include "qquickwindowsxpstyle_p.h"
-#endif
-
-extern void qml_register_types_QtQuick_NativeStyle();
-
-QT_BEGIN_NAMESPACE
-
-using namespace QQC2;
-
-class QtQuickControls2NativeStylePlugin : public QQuickStylePlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
-
-public:
- QtQuickControls2NativeStylePlugin(QObject *parent = nullptr);
- ~QtQuickControls2NativeStylePlugin() override;
-
- void initializeEngine(QQmlEngine *engine, const char *uri) override;
- void initializeTheme(QQuickTheme *theme) override;
- QString name() const override;
-
-#if defined(Q_OS_MACOS)
- QScopedPointer<QQuickMacFocusFrame> m_focusFrame;
-#endif
-};
-
-static void deleteQStyle()
-{
- // 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.
- QQuickNativeStyle::setStyle(nullptr);
-}
-
-QtQuickControls2NativeStylePlugin::QtQuickControls2NativeStylePlugin(QObject *parent):
- QQuickStylePlugin(parent)
-{
- volatile auto registration = &qml_register_types_QtQuick_NativeStyle;
- Q_UNUSED(registration);
-}
-
-QtQuickControls2NativeStylePlugin::~QtQuickControls2NativeStylePlugin()
-{
- if (!qGuiApp)
- return;
-
- // QGuiApplication is still running, so we need to remove the post
- // routine to not be called after we have been unloaded.
- qRemovePostRoutine(deleteQStyle);
- QQuickNativeStyle::setStyle(nullptr);
-}
-
-QString QtQuickControls2NativeStylePlugin::name() const
-{
- return QStringLiteral("NativeStyle");
-}
-
-void QtQuickControls2NativeStylePlugin::initializeEngine(QQmlEngine *engine, const char *uri)
-{
- Q_UNUSED(engine);
- Q_UNUSED(uri);
- // Enable commonstyle as a reference style while
- // the native styles are under development.
- QStyle *style = nullptr;
- if (qEnvironmentVariable("QQC2_COMMONSTYLE") == QStringLiteral("true")) {
- style = new QCommonStyle;
- } else {
- const QString envStyle = qEnvironmentVariable("QQC2_STYLE");
- if (!envStyle.isNull()) {
- if (envStyle == QLatin1String("common"))
- style = new QCommonStyle;
-#if defined(Q_OS_MACOS)
- else if (envStyle == QLatin1String("mac"))
- style = new QMacStyle;
-#endif
-#if defined(Q_OS_WINDOWS)
- else if (envStyle == QLatin1String("windows"))
- style = new QWindowsStyle;
- else if (envStyle == QLatin1String("windowsxp"))
- style = new QWindowsXPStyle;
-#endif
- }
- if (!style) {
-#if defined(Q_OS_MACOS)
- style = new QMacStyle;
-#elif defined(Q_OS_WINDOWS)
- style = new QWindowsXPStyle;
-#else
- style = new QCommonStyle;
-#endif
- }
- }
-
-#if defined(Q_OS_MACOS)
- m_focusFrame.reset(new QQuickMacFocusFrame());
-#endif
-
- qAddPostRoutine(deleteQStyle);
- QQuickNativeStyle::setStyle(style);
-}
-
-void QtQuickControls2NativeStylePlugin::initializeTheme(QQuickTheme * /*theme*/)
-{
-}
-
-QT_END_NAMESPACE
-
-#include "qtquickcontrols2nativestyleplugin.moc"
diff --git a/src/quicknativestyle/util/FocusFrame.qml b/src/quicknativestyle/util/FocusFrame.qml
deleted file mode 100644
index b3f3a80e..00000000
--- a/src/quicknativestyle/util/FocusFrame.qml
+++ /dev/null
@@ -1,118 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Layouts
-
-Item {
- id: root
-
- // It's important that this item has a zero size. Otherwise, if the parent of the
- // targetItem is e.g a layout, we will change the layout if we parent this item inside it.
- width: 0
- height: 0
- // Stack on top of all siblings of the targetItem
- z: 100
-
- function moveToItem(item, margins, radius) {
- parent = item.parent
- targetItem = item
- leftOffset = margins.left
- rightOffset = margins.right
- topOffset = margins.top
- bottomOffset = margins.bottom
- frameRadius = radius
- animation.restart()
- }
-
- property Item targetItem
- property real leftOffset: 0
- property real rightOffset: 0
- property real topOffset: 0
- property real bottomOffset: 0
- property real frameOpacity: 0
- property real frameSize: 0
- property real frameRadius: 0
-
- property point targetItemPos: {
- if (!targetItem)
- return Qt.point(0, 0)
- // Force a reevaluation if
- // the target item moves
- targetItem.x
- targetItem.y
- mapFromItem(targetItem, Qt.point(0, 0))
- }
-
- // systemFrameColor is set to NSColor.keyboardFocusIndicatorColor from cpp
- property color systemFrameColor
-
- Rectangle {
- id: focusFrame
- z: 10
- x: targetItemPos.x + leftOffset - frameSize
- y: targetItemPos.y + topOffset - frameSize
- width: targetItem ? targetItem.width - leftOffset - rightOffset + (frameSize * 2) : 0
- height: targetItem ? targetItem.height - topOffset - bottomOffset + (frameSize * 2) : 0
- radius: frameRadius
- visible: targetItem && targetItem.visible
- color: "transparent"
-
- border.color: systemFrameColor
- border.width: frameSize
- }
-
- ParallelAnimation {
- id: animation
- NumberAnimation {
- target: root
- property: "frameSize"
- duration: 300
- from: 15
- to: 2.5
- easing.type: Easing.OutCubic
- }
- NumberAnimation {
- target: focusFrame
- property: "opacity"
- duration: 300
- from: 0
- to: 0.55
- easing.type: Easing.OutCubic
- }
- }
-}
diff --git a/src/quicknativestyle/util/qquickmacfocusframe.h b/src/quicknativestyle/util/qquickmacfocusframe.h
deleted file mode 100644
index 425b2a68..00000000
--- a/src/quicknativestyle/util/qquickmacfocusframe.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMACFOCUSFRAME_H
-#define QQUICKMACFOCUSFRAME_H
-
-#include <QtQuick/qquickitem.h>
-#include <QtQuick/private/qquicktextedit_p.h>
-#include "qquickstyleitem.h"
-
-QT_BEGIN_NAMESPACE
-
-Q_DECLARE_LOGGING_CATEGORY(lcFocusFrame)
-
-struct QQuickFocusFrameDescription {
- QQuickItem *target;
- QQuickStyleMargins margins;
- const qreal radius = 3;
- bool isValid() const { return target != nullptr; }
- static QQuickFocusFrameDescription Invalid;
-};
-
-class QQuickMacFocusFrame : public QObject
-{
- Q_OBJECT
-
-public:
- QQuickMacFocusFrame();
-
-private:
- static QScopedPointer<QQuickItem> m_focusFrame;
-
- void createFocusFrame(QQmlContext *context);
- void moveToItem(QQuickItem *item);
- QQuickFocusFrameDescription getDescriptionForItem(QQuickItem *focusItem) const;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKMACFOCUSFRAME_H
diff --git a/src/quicknativestyle/util/qquickmacfocusframe.mm b/src/quicknativestyle/util/qquickmacfocusframe.mm
deleted file mode 100644
index 75ef911b..00000000
--- a/src/quicknativestyle/util/qquickmacfocusframe.mm
+++ /dev/null
@@ -1,181 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmacfocusframe.h"
-
-#include <AppKit/AppKit.h>
-
-#include <QtCore/qmetaobject.h>
-
-#include <QtGui/qguiapplication.h>
-#include <QtGui/private/qcoregraphics_p.h>
-
-#include <QtQml/qqmlengine.h>
-#include <QtQml/qqmlcontext.h>
-#include <QtQml/qqmlcomponent.h>
-
-#include <QtQuick/qquickitem.h>
-#include <QtQuick/private/qquicktextinput_p.h>
-#include <QtQuick/private/qquicktextedit_p.h>
-#include <QtQuick/private/qquickflickable_p.h>
-
-#include <QtQuickTemplates2/private/qquickframe_p.h>
-#include <QtQuickTemplates2/private/qquickbutton_p.h>
-#include <QtQuickTemplates2/private/qquickscrollview_p.h>
-#include <QtQuickTemplates2/private/qquickslider_p.h>
-#include <QtQuickTemplates2/private/qquickcombobox_p.h>
-#include <QtQuickTemplates2/private/qquickcheckbox_p.h>
-#include <QtQuickTemplates2/private/qquickradiobutton_p.h>
-#include <QtQuickTemplates2/private/qquickspinbox_p.h>
-#include <QtQuickTemplates2/private/qquicktextfield_p.h>
-#include <QtQuickTemplates2/private/qquicktextarea_p.h>
-
-#include "items/qquickstyleitem.h"
-#include "qquicknativestyle.h"
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcFocusFrame, "qt.quick.controls.focusframe")
-
-QQuickFocusFrameDescription QQuickFocusFrameDescription::Invalid = { nullptr, QQuickStyleMargins(), 0 };
-QScopedPointer<QQuickItem> QQuickMacFocusFrame::m_focusFrame;
-
-QQuickMacFocusFrame::QQuickMacFocusFrame()
-{
- connect(qGuiApp, &QGuiApplication::focusObjectChanged, [=]{
- if (auto item = qobject_cast<QQuickItem *>(qGuiApp->focusObject()))
- moveToItem(item);
- });
-}
-
-void QQuickMacFocusFrame::moveToItem(QQuickItem *item)
-{
- if (!m_focusFrame) {
- const auto context = QQmlEngine::contextForObject(item);
- if (!context)
- return;
- createFocusFrame(context);
- }
-
- const QQuickFocusFrameDescription &config = getDescriptionForItem(item);
- if (!config.isValid()) {
- m_focusFrame->setParentItem(nullptr);
- m_focusFrame->setVisible(false);
- return;
- }
-
- m_focusFrame->setVisible(true);
- QMetaObject::invokeMethod(m_focusFrame.data(), "moveToItem",
- Q_ARG(QVariant, QVariant::fromValue(config.target)),
- Q_ARG(QVariant, QVariant::fromValue(config.margins)),
- Q_ARG(QVariant, QVariant::fromValue(config.radius)));
-}
-
-void QQuickMacFocusFrame::createFocusFrame(QQmlContext *context)
-{
- QQmlComponent component(
- context->engine(),
- QUrl(QStringLiteral(
- "qrc:/qt-project.org/imports/QtQuick/NativeStyle/util/FocusFrame.qml")));
- m_focusFrame.reset(qobject_cast<QQuickItem *>(component.create()));
-
- auto indicatorColor = qt_mac_toQColor(NSColor.keyboardFocusIndicatorColor.CGColor);
- indicatorColor.setAlpha(255);
- m_focusFrame->setProperty("systemFrameColor", indicatorColor);
-}
-
-QQuickFocusFrameDescription QQuickMacFocusFrame::getDescriptionForItem(QQuickItem *focusItem) const
-{
- qCDebug(lcFocusFrame) << "new focusobject:" << focusItem;
- const auto parentItem = focusItem->parentItem();
- if (!parentItem)
- return QQuickFocusFrameDescription::Invalid;
-
- // The item that gets active focus can be a child of the control (e.g
- // editable ComboBox). In that case, resolve the actual control first.
- const auto proxy = focusItem->property("__focusFrameControl").value<QQuickItem *>();
- const auto control = proxy ? proxy : focusItem;
- auto target = control->property("__focusFrameTarget").value<QQuickItem *>();
- qCDebug(lcFocusFrame) << "target:" << target;
- qCDebug(lcFocusFrame) << "control:" << control;
-
- if (!target) {
- // __focusFrameTarget points to the item in the control that should
- // get the focus frame. This is usually the control itself, but can
- // sometimes be a child (CheckBox). We anyway require
- // this property to be set if we are to show the focus frame around
- // the control in the first place. So for controls that don't want
- // a frame (ProgressBar), we simply skip setting it.
- // Also, we should never show a focus frame around custom controls.
- // None of the built-in styles do that, so to be consistent, we
- // shouldn't either. Besides, drawing a focus frame around an unknown
- // item without any way to turn it off can easily be unwanted. A better
- // way for custom controls to get a native focus frame is for us to offer
- // a FocusFrame control (QTBUG-86818).
- return QQuickFocusFrameDescription::Invalid;
- }
-
- // If the control gives us a QQuickStyleItem, we use that to configure the focus frame.
- // By default we assume that the background delegate is a QQuickStyleItem, but the
- // control can override this by setting __focusFrameStyleItem.
- const auto styleItemProperty = control->property("__focusFrameStyleItem");
- auto item = styleItemProperty.value<QQuickItem *>();
- if (!item) {
- const auto styleItemProperty = control->property("background");
- item = styleItemProperty.value<QQuickItem *>();
- }
- qCDebug(lcFocusFrame) << "styleItem:" << item;
- if (!item)
- return QQuickFocusFrameDescription::Invalid;
- if (QQuickStyleItem *styleItem = qobject_cast<QQuickStyleItem *>(item))
- return { target, QQuickStyleMargins(styleItem->layoutMargins()), styleItem->focusFrameRadius() };
-
- // Some controls don't have a QQuickStyleItem. But if the __focusFrameStyleItem
- // has a "__isDefaultDelegate" property set, we show a default focus frame instead.
- if (item->property("__isDefaultDelegate").toBool() == true) {
- qCDebug(lcFocusFrame) << "'__isDefaultDelegate' property found, showing a default focus frame";
- const QStyleOption opt;
- const qreal radius = QQuickNativeStyle::style()->pixelMetric(QStyle::PM_TextFieldFocusFrameRadius, &opt);
- return { target, QQuickStyleMargins(), radius };
- }
-
- // The application has set a custom delegate on the control. In that
- // case, it's the delegates responsibility to draw a focus frame.
- qCDebug(lcFocusFrame) << "custom delegates in use, skip showing focus frame";
- return QQuickFocusFrameDescription::Invalid;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicknativestyle/util/util.pri b/src/quicknativestyle/util/util.pri
deleted file mode 100644
index 96786eac..00000000
--- a/src/quicknativestyle/util/util.pri
+++ /dev/null
@@ -1,11 +0,0 @@
-INCLUDEPATH += $$PWD
-
-macos {
- HEADERS += \
- $$PWD/qquickmacfocusframe.h \
-
- SOURCES += \
- $$PWD/qquickmacfocusframe.mm \
-
- RESOURCES += $$PWD/FocusFrame.qml
-}
diff --git a/src/quicktemplates2/CMakeLists.txt b/src/quicktemplates2/CMakeLists.txt
deleted file mode 100644
index cf3d4410..00000000
--- a/src/quicktemplates2/CMakeLists.txt
+++ /dev/null
@@ -1,163 +0,0 @@
-#####################################################################
-## QuickTemplates2 Module:
-#####################################################################
-
-qt_internal_add_qml_module(QuickTemplates2
- URI "QtQuick.Templates"
- VERSION "${PROJECT_VERSION}"
- CLASSNAME QtQuickTemplates2Plugin
- DEPENDENCIES
- QtQuick/auto
- PLUGIN_TARGET qtquicktemplates2plugin
- NO_PLUGIN_OPTIONAL
- NO_GENERATE_PLUGIN_SOURCE
- SOURCES
- accessible/qaccessiblequickpage.cpp accessible/qaccessiblequickpage_p.h
- qquickabstractbutton.cpp qquickabstractbutton_p.h
- qquickabstractbutton_p_p.h
- qquickaction.cpp qquickaction_p.h
- qquickactiongroup.cpp qquickactiongroup_p.h
- qquickapplicationwindow.cpp qquickapplicationwindow_p.h
- qquickbusyindicator.cpp qquickbusyindicator_p.h
- qquickbutton.cpp qquickbutton_p.h
- qquickbutton_p_p.h
- qquickbuttongroup.cpp qquickbuttongroup_p.h
- qquickcheckbox.cpp qquickcheckbox_p.h
- qquickcheckdelegate.cpp qquickcheckdelegate_p.h
- qquickcombobox.cpp qquickcombobox_p.h
- qquickcontainer.cpp qquickcontainer_p.h
- qquickcontainer_p_p.h
- qquickcontentitem.cpp qquickcontentitem_p.h
- qquickcontrol.cpp qquickcontrol_p.h
- qquickcontrol_p_p.h
- qquickdeferredexecute.cpp
- qquickdeferredexecute_p_p.h
- qquickdeferredpointer_p_p.h
- qquickdelaybutton.cpp qquickdelaybutton_p.h
- qquickdial.cpp qquickdial_p.h
- qquickdialog.cpp qquickdialog_p.h
- qquickdialog_p_p.h
- qquickdialogbuttonbox.cpp qquickdialogbuttonbox_p.h
- qquickdialogbuttonbox_p_p.h
- qquickdrawer.cpp qquickdrawer_p.h
- qquickdrawer_p_p.h
- qquickframe.cpp qquickframe_p.h
- qquickframe_p_p.h
- qquickgroupbox.cpp qquickgroupbox_p.h
- qquickicon.cpp qquickicon_p.h
- qquickindicatorbutton_p.cpp qquickindicatorbutton_p.h
- qquickitemdelegate.cpp qquickitemdelegate_p.h
- qquickitemdelegate_p_p.h
- qquicklabel.cpp qquicklabel_p.h
- qquicklabel_p_p.h
- qquickmenu.cpp qquickmenu_p.h
- qquickmenu_p_p.h
- qquickmenubar.cpp qquickmenubar_p.h
- qquickmenubar_p_p.h
- qquickmenubaritem.cpp qquickmenubaritem_p.h
- qquickmenubaritem_p_p.h
- qquickmenuitem.cpp qquickmenuitem_p.h
- qquickmenuitem_p_p.h
- qquickmenuseparator.cpp qquickmenuseparator_p.h
- qquickoverlay.cpp qquickoverlay_p.h
- qquickoverlay_p_p.h
- qquickpage.cpp qquickpage_p.h
- qquickpage_p_p.h
- qquickpageindicator.cpp qquickpageindicator_p.h
- qquickpane.cpp qquickpane_p.h
- qquickpane_p_p.h
- qquickpopup.cpp qquickpopup_p.h
- qquickpopup_p_p.h
- qquickpopupanchors.cpp qquickpopupanchors_p.h
- qquickpopupanchors_p_p.h
- qquickpopupitem.cpp
- qquickpopupitem_p.h
- qquickpopupitem_p_p.h
- qquickpopuppositioner.cpp
- qquickpopuppositioner_p_p.h
- qquickpresshandler.cpp
- qquickpresshandler_p_p.h
- qquickprogressbar.cpp qquickprogressbar_p.h
- qquickradiobutton.cpp qquickradiobutton_p.h
- qquickradiodelegate.cpp qquickradiodelegate_p.h
- qquickrangeslider.cpp qquickrangeslider_p.h
- qquickroundbutton.cpp qquickroundbutton_p.h
- qquickscrollbar.cpp qquickscrollbar_p.h
- qquickscrollbar_p_p.h
- qquickscrollindicator.cpp qquickscrollindicator_p.h
- qquickscrollview.cpp qquickscrollview_p.h
- qquickselectionrectangle.cpp qquickselectionrectangle_p.h
- qquickselectionrectangle_p_p.h
- qquickshortcutcontext.cpp
- qquickshortcutcontext_p_p.h
- qquickslider.cpp qquickslider_p.h
- qquickspinbox.cpp qquickspinbox_p.h
- qquicksplitview.cpp qquicksplitview_p.h
- qquickstackelement.cpp
- qquickstackelement_p_p.h
- qquickstacktransition.cpp
- qquickstacktransition_p_p.h
- qquickstackview.cpp qquickstackview_p.cpp qquickstackview_p.h
- qquickstackview_p_p.h
- qquickswipe_p.h
- qquickswipedelegate.cpp qquickswipedelegate_p.h
- qquickswipedelegate_p_p.h
- qquickswipeview.cpp qquickswipeview_p.h
- qquickswitch.cpp qquickswitch_p.h
- qquickswitchdelegate.cpp qquickswitchdelegate_p.h
- qquicktabbar.cpp qquicktabbar_p.h
- qquicktabbutton.cpp qquicktabbutton_p.h
- qquicktextarea.cpp qquicktextarea_p.h
- qquicktextarea_p_p.h
- qquicktextfield.cpp qquicktextfield_p.h
- qquicktextfield_p_p.h
- qquicktheme.cpp qquicktheme_p.h
- qquicktheme_p_p.h
- qquicktoolbar.cpp qquicktoolbar_p.h
- qquicktoolbutton.cpp qquicktoolbutton_p.h
- qquicktoolseparator.cpp qquicktoolseparator_p.h
- qquicktooltip.cpp qquicktooltip_p.h
- qquicktooltippopupitem.cpp qquicktooltippopupitem_p_p.h
- qquickvelocitycalculator.cpp
- qquickvelocitycalculator_p_p.h
- qtquicktemplates2global.cpp qtquicktemplates2global_p.h
- DEFINES
- QT_NO_CAST_FROM_ASCII
- QT_NO_CAST_TO_ASCII
- INCLUDE_DIRECTORIES
- ${CMAKE_CURRENT_SOURCE_DIR}
- LIBRARIES
- Qt::CorePrivate
- Qt::GuiPrivate
- Qt::QmlPrivate
- Qt::QuickPrivate
-)
-
-qt_internal_extend_target(QuickTemplates2 CONDITION TARGET Qt::QmlModels
- LIBRARIES
- Qt::QmlModelsPrivate
- PUBLIC_LIBRARIES
- Qt::QmlModels
- PRIVATE_MODULE_INTERFACE
- Qt::QmlModelsPrivate
-)
-
-qt_internal_extend_target(QuickTemplates2 CONDITION QT_FEATURE_quick_tableview
- SOURCES
- qquickheaderview.cpp qquickheaderview_p.h
- qquickheaderview_p_p.h
-)
-
-qt_internal_extend_target(QuickTemplates2 CONDITION QT_FEATURE_quick_listview AND QT_FEATURE_quick_pathview
- SOURCES
- qquicktumbler.cpp qquicktumbler_p.h
- qquicktumbler_p_p.h
-)
-
-qt_internal_extend_Target(qtquicktemplates2plugin
- SOURCES
- qtquicktemplates2plugin.cpp
- LIBRARIES
- Qt::Quick
- Qt::QuickTemplates2Private
-)
diff --git a/src/quicktemplates2/accessible/accessible.pri b/src/quicktemplates2/accessible/accessible.pri
deleted file mode 100644
index 0c855d34..00000000
--- a/src/quicktemplates2/accessible/accessible.pri
+++ /dev/null
@@ -1,4 +0,0 @@
-HEADERS += \
- $$PWD/qaccessiblequickpage_p.h \
-SOURCES += \
- $$PWD/qaccessiblequickpage.cpp \
diff --git a/src/quicktemplates2/accessible/qaccessiblequickpage.cpp b/src/quicktemplates2/accessible/qaccessiblequickpage.cpp
deleted file mode 100644
index 90ac49f9..00000000
--- a/src/quicktemplates2/accessible/qaccessiblequickpage.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qaccessiblequickpage_p.h"
-#include "qquickpage_p.h"
-
-QT_BEGIN_NAMESPACE
-
-QAccessibleQuickPage::QAccessibleQuickPage(QQuickPage *page)
- : QAccessibleQuickItem(page)
-{
-}
-
-QAccessibleInterface *QAccessibleQuickPage::child(int index) const
-{
- const QList<QQuickItem*> kids = orderedChildItems();
- if (QQuickItem *item = kids.value(index))
- return QAccessible::queryAccessibleInterface(item);
- return nullptr;
-}
-
-int QAccessibleQuickPage::indexOfChild(const QAccessibleInterface *iface) const
-{
- const QList<QQuickItem*> kids = orderedChildItems();
- return (int)kids.indexOf(static_cast<QQuickItem*>(iface->object()));
-}
-
-QList<QQuickItem *> QAccessibleQuickPage::orderedChildItems() const
-{
- // Just ensures that the header is first, and footer is last. Other existing order is kept.
- const QQuickPage *p = page();
- QList<QQuickItem*> kids = childItems();
- const qsizetype hidx = kids.indexOf(p->header());
- if (hidx != -1)
- kids.move(hidx, 0);
- const qsizetype fidx = kids.indexOf(p->footer());
- if (fidx != -1)
- kids.move(fidx, kids.count() - 1);
- return kids;
-}
-
-QQuickPage *QAccessibleQuickPage::page() const
-{
- return static_cast<QQuickPage*>(object());
-}
-
-QT_END_NAMESPACE
-
diff --git a/src/quicktemplates2/accessible/qaccessiblequickpage_p.h b/src/quicktemplates2/accessible/qaccessiblequickpage_p.h
deleted file mode 100644
index 9b208c14..00000000
--- a/src/quicktemplates2/accessible/qaccessiblequickpage_p.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QACCESSIBLEQUICKPAGE_H
-#define QACCESSIBLEQUICKPAGE_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qaccessiblequickitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPage;
-
-class QAccessibleQuickPage : public QAccessibleQuickItem
-{
-public:
- QAccessibleQuickPage(QQuickPage *page);
- QAccessibleInterface *child(int index) const override;
- int indexOfChild(const QAccessibleInterface *iface) const override;
-private:
- QQuickPage *page() const;
- QList<QQuickItem *> orderedChildItems() const;
-};
-
-QT_END_NAMESPACE
-
-#endif // QACCESSIBLEQUICKPAGE_H
diff --git a/src/quicktemplates2/configure.cmake b/src/quicktemplates2/configure.cmake
deleted file mode 100644
index 4e097569..00000000
--- a/src/quicktemplates2/configure.cmake
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-#### Inputs
-
-
-
-#### Libraries
-
-
-
-#### Tests
-
-
-
-#### Features
-
-qt_feature("quicktemplates2-hover" PRIVATE
- SECTION "Quick Templates 2"
- LABEL "Hover support"
- PURPOSE "Provides support for hover effects."
-)
-qt_feature("quicktemplates2-multitouch" PRIVATE
- SECTION "Quick Templates 2"
- LABEL "Multi-touch support"
- PURPOSE "Provides support for multi-touch."
-)
-qt_configure_add_summary_section(NAME "Qt Quick Templates 2")
-qt_configure_add_summary_entry(ARGS "quicktemplates2-hover")
-qt_configure_add_summary_entry(ARGS "quicktemplates2-multitouch")
-qt_configure_end_summary_section() # end of "Qt Quick Templates 2" section
diff --git a/src/quicktemplates2/doc/src/qtquicktemplates2-index.qdoc b/src/quicktemplates2/doc/src/qtquicktemplates2-index.qdoc
deleted file mode 100644
index c7e25548..00000000
--- a/src/quicktemplates2/doc/src/qtquicktemplates2-index.qdoc
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page qtquicktemplates2-index.html
- \title Qt Quick Templates 2
- \brief A set of templates to create user interface controls in Qt Quick
-
- Qt Quick Templates are the foundations of \l {Qt Quick Controls}. Templates
- are non-visual implementations of controls' logic and behavior. They offer
- an interface to visualize the controls in QML using \l {Qt Quick}.
-
- Even though the templates aim to be as style-agnostic as possible, in some
- cases they have to make certain assumptions about the visual structure of
- a control. For example, a spinbox has buttons that increment and decrement
- the value of the spinbox. In order to implement the behavior of a spinbox,
- the spinbox template needs to know if the user is interacting with the up
- or down button. A visual implementation of the spinbox template merely needs
- to position the up and down buttons and visualize them in normal, pressed,
- and disabled states. Any input event handling and state processing is taken
- care of by the underlying template.
-
- \section1 Module Evolution
- \l{Changes to Qt Quick Controls} lists important changes in the
- module API and functionality that were done for the Qt 6 series of Qt.
-
- \section1 Related Information
-
- \list
- \li \l{Qt Quick}
- \li \l{Qt Quick Controls}
- \li \l{Qt Quick Templates 2 QML Types}
- \endlist
-*/
diff --git a/src/quicktemplates2/doc/src/qtquicktemplates2-qmltypes.qdoc b/src/quicktemplates2/doc/src/qtquicktemplates2-qmltypes.qdoc
deleted file mode 100644
index 396dbdc5..00000000
--- a/src/quicktemplates2/doc/src/qtquicktemplates2-qmltypes.qdoc
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \qmlmodule QtQuick.Templates 2.\QtMinorVersion
- \title Qt Quick Templates 2 QML Types
- \ingroup qmlmodules
- \brief Provides QML types for templates (Qt Quick Templates).
-
- The \l {Qt Quick Templates 2} module provides a set of non-visual templates
- that can be used to build user interface controls in QML using \l {Qt Quick}.
-
- The QML types can be imported using the following import statement in your
- \c .qml file:
-
- \qml
- import QtQuick.Templates as T
- \endqml
-
- For the sake of clarity, there is a one-to-one mapping between the types
- provided by the \c QtQuick.Templates and \c QtQuick.Controls imports. For
- every type available in the \c QtQuick.Controls import, a non-visual template
- type by the same name exists in the \c QtQuick.Templates import.
-
- \note It is recommended to use a namespace for the templates import to avoid
- overlap with the types provided by the \c QtQuick.Controls import.
-
- \section1 QML Types
-
- \generatelist {qmltypesbymodule QtQuick.Controls}
-
- \section1 Related Information
-
- \list
- \li \l {Qt Quick Controls QML Types}
- \li \l {Using Qt Quick Controls types in property declarations}
- \endlist
-
- \noautolist
-*/
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp
deleted file mode 100644
index 61b358e0..00000000
--- a/src/quicktemplates2/qquickabstractbutton.cpp
+++ /dev/null
@@ -1,1216 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickabstractbutton_p.h"
-#include "qquickabstractbutton_p_p.h"
-#include "qquickbuttongroup_p.h"
-#include "qquickaction_p.h"
-#include "qquickaction_p_p.h"
-#include "qquickshortcutcontext_p_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtGui/qstylehints.h>
-#include <QtGui/qguiapplication.h>
-#if QT_CONFIG(shortcut)
-# include <QtGui/private/qshortcutmap_p.h>
-#endif
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtQuick/private/qquickevents_p_p.h>
-#include <QtQml/qqmllist.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype AbstractButton
- \inherits Control
-//! \instantiates QQuickAbstractButton
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-buttons
- \brief Abstract base type providing functionality common to buttons.
-
- AbstractButton provides the interface for controls with button-like
- behavior; for example, push buttons and checkable controls like
- radio buttons and check boxes. As an abstract control, it has no delegate
- implementations, leaving them to the types that derive from it.
-
- \sa ButtonGroup, {Button Controls}
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::AbstractButton::pressed()
-
- This signal is emitted when the button is interactively pressed by the user via touch, mouse, or keyboard.
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::AbstractButton::released()
-
- This signal is emitted when the button is interactively released by the user via touch, mouse, or keyboard.
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::AbstractButton::canceled()
-
- This signal is emitted when the button loses mouse grab
- while being pressed, or when it would emit the \l released
- signal but the mouse cursor is not inside the button.
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::AbstractButton::clicked()
-
- This signal is emitted when the button is interactively clicked by the user via touch, mouse, or keyboard.
-*/
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlsignal QtQuick.Controls::AbstractButton::toggled()
-
- This signal is emitted when a checkable button is interactively toggled by the user via touch, mouse, or keyboard.
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::AbstractButton::pressAndHold()
-
- This signal is emitted when the button is interactively pressed and held down by the user via touch or mouse.
- It is not emitted when \l autoRepeat is enabled.
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::AbstractButton::doubleClicked()
-
- This signal is emitted when the button is interactively double clicked by the user via touch or mouse.
-*/
-
-void QQuickAbstractButtonPrivate::setPressPoint(const QPointF &point)
-{
- pressPoint = point;
- setMovePoint(point);
-}
-
-void QQuickAbstractButtonPrivate::setMovePoint(const QPointF &point)
-{
- Q_Q(QQuickAbstractButton);
- bool xChange = !qFuzzyCompare(point.x(), movePoint.x());
- bool yChange = !qFuzzyCompare(point.y(), movePoint.y());
- movePoint = point;
- if (xChange)
- emit q->pressXChanged();
- if (yChange)
- emit q->pressYChanged();
-}
-
-void QQuickAbstractButtonPrivate::handlePress(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickAbstractButton);
- QQuickControlPrivate::handlePress(point, timestamp);
- setPressPoint(point);
- q->setPressed(true);
-
- emit q->pressed();
-
- if (autoRepeat)
- startRepeatDelay();
- else if (touchId != -1 || Qt::LeftButton == (pressButtons & Qt::LeftButton))
- startPressAndHold();
- else
- stopPressAndHold();
-}
-
-void QQuickAbstractButtonPrivate::handleMove(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickAbstractButton);
- QQuickControlPrivate::handleMove(point, timestamp);
- setMovePoint(point);
- q->setPressed(keepPressed || q->contains(point));
-
- if (!pressed && autoRepeat)
- stopPressRepeat();
- else if (holdTimer > 0 && (!pressed || QLineF(pressPoint, point).length() > QGuiApplication::styleHints()->startDragDistance()))
- stopPressAndHold();
-}
-
-void QQuickAbstractButtonPrivate::handleRelease(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickAbstractButton);
- // Store this here since the base class' handleRelease clears it.
- const int pressTouchId = touchId;
-
- QQuickControlPrivate::handleRelease(point, timestamp);
- bool wasPressed = pressed;
- setPressPoint(point);
- q->setPressed(false);
- pressButtons = Qt::NoButton;
-
- const bool touchDoubleClick = pressTouchId != -1 && lastTouchReleaseTimestamp != 0
- && timestamp - lastTouchReleaseTimestamp < qApp->styleHints()->mouseDoubleClickInterval();
-
- if (!wasHeld && (keepPressed || q->contains(point)))
- q->nextCheckState();
-
- if (wasPressed) {
- emit q->released();
- if (!wasHeld && !wasDoubleClick)
- trigger(touchDoubleClick);
- } else {
- emit q->canceled();
- }
-
- if (autoRepeat)
- stopPressRepeat();
- else
- stopPressAndHold();
-
- if (!touchDoubleClick) {
- // This is not a double click yet, but it is potentially the
- // first release before a double click.
- if (pressTouchId != -1) {
- // The corresponding press for this release was a touch press.
- // Keep track of the timestamp of the release so that we can
- // emit doubleClicked() if another one comes afterwards.
- lastTouchReleaseTimestamp = timestamp;
- }
- } else {
- // We just did a double click, so clear the release timestamp
- // to prepare for any possible future double clicks.
- lastTouchReleaseTimestamp = 0;
- }
-
- wasDoubleClick = false;
-}
-
-void QQuickAbstractButtonPrivate::handleUngrab()
-{
- Q_Q(QQuickAbstractButton);
- QQuickControlPrivate::handleUngrab();
- pressButtons = Qt::NoButton;
- if (!pressed)
- return;
-
- q->setPressed(false);
- stopPressRepeat();
- stopPressAndHold();
- wasDoubleClick = false;
- lastTouchReleaseTimestamp = 0;
- emit q->canceled();
-}
-
-bool QQuickAbstractButtonPrivate::acceptKeyClick(Qt::Key key) const
-{
- return key == Qt::Key_Space;
-}
-
-bool QQuickAbstractButtonPrivate::isPressAndHoldConnected()
-{
- Q_Q(QQuickAbstractButton);
- const auto signal = &QQuickAbstractButton::pressAndHold;
- const QMetaMethod method = QMetaMethod::fromSignal(signal);
- return q->isSignalConnected(method);
-}
-
-void QQuickAbstractButtonPrivate::startPressAndHold()
-{
- Q_Q(QQuickAbstractButton);
- wasHeld = false;
- stopPressAndHold();
- if (isPressAndHoldConnected())
- holdTimer = q->startTimer(QGuiApplication::styleHints()->mousePressAndHoldInterval());
-}
-
-void QQuickAbstractButtonPrivate::stopPressAndHold()
-{
- Q_Q(QQuickAbstractButton);
- if (holdTimer > 0) {
- q->killTimer(holdTimer);
- holdTimer = 0;
- }
-}
-
-void QQuickAbstractButtonPrivate::startRepeatDelay()
-{
- Q_Q(QQuickAbstractButton);
- stopPressRepeat();
- delayTimer = q->startTimer(repeatDelay);
-}
-
-void QQuickAbstractButtonPrivate::startPressRepeat()
-{
- Q_Q(QQuickAbstractButton);
- stopPressRepeat();
- repeatTimer = q->startTimer(repeatInterval);
-}
-
-void QQuickAbstractButtonPrivate::stopPressRepeat()
-{
- Q_Q(QQuickAbstractButton);
- if (delayTimer > 0) {
- q->killTimer(delayTimer);
- delayTimer = 0;
- }
- if (repeatTimer > 0) {
- q->killTimer(repeatTimer);
- repeatTimer = 0;
- }
-}
-
-#if QT_CONFIG(shortcut)
-void QQuickAbstractButtonPrivate::grabShortcut()
-{
- Q_Q(QQuickAbstractButton);
- if (shortcut.isEmpty())
- return;
-
- shortcutId = QGuiApplicationPrivate::instance()->shortcutMap.addShortcut(q, shortcut, Qt::WindowShortcut, QQuickShortcutContext::matcher);
-
- if (!q->isEnabled())
- QGuiApplicationPrivate::instance()->shortcutMap.setShortcutEnabled(false, shortcutId, q);
-}
-
-void QQuickAbstractButtonPrivate::ungrabShortcut()
-{
- Q_Q(QQuickAbstractButton);
- if (!shortcutId)
- return;
-
- QGuiApplicationPrivate::instance()->shortcutMap.removeShortcut(shortcutId, q);
- shortcutId = 0;
-}
-#endif
-
-void QQuickAbstractButtonPrivate::actionTextChange()
-{
- Q_Q(QQuickAbstractButton);
- if (explicitText)
- return;
-
- q->buttonChange(QQuickAbstractButton::ButtonTextChange);
-}
-
-void QQuickAbstractButtonPrivate::setText(const QString &newText, bool isExplicit)
-{
- Q_Q(QQuickAbstractButton);
- const QString oldText = q->text();
- explicitText = isExplicit;
- text = newText;
- if (oldText == q->text())
- return;
-
- q->buttonChange(QQuickAbstractButton::ButtonTextChange);
-}
-
-void QQuickAbstractButtonPrivate::updateEffectiveIcon()
-{
- Q_Q(QQuickAbstractButton);
- // We store effectiveIcon because we need to be able to tell if the icon has actually changed.
- // If we only stored our icon and the action's icon, and resolved in the getter, we'd have
- // no way of knowing what the old value was here. As an added benefit, we only resolve when
- // something has changed, as opposed to doing it unconditionally in the icon() getter.
- const QQuickIcon newEffectiveIcon = action ? icon.resolve(action->icon()) : icon;
- if (newEffectiveIcon == effectiveIcon)
- return;
-
- effectiveIcon = newEffectiveIcon;
- emit q->iconChanged();
-}
-
-void QQuickAbstractButtonPrivate::click()
-{
- Q_Q(QQuickAbstractButton);
- if (effectiveEnable)
- emit q->clicked();
-}
-
-void QQuickAbstractButtonPrivate::trigger(bool doubleClick)
-{
- Q_Q(QQuickAbstractButton);
- const bool wasEnabled = effectiveEnable;
- if (action && action->isEnabled())
- QQuickActionPrivate::get(action)->trigger(q, false);
- if (wasEnabled && (!action || !action->isEnabled())) {
- if (!doubleClick)
- emit q->clicked();
- else
- emit q->doubleClicked();
- }
-}
-
-void QQuickAbstractButtonPrivate::toggle(bool value)
-{
- Q_Q(QQuickAbstractButton);
- const bool wasChecked = checked;
- q->setChecked(value);
- if (wasChecked != checked)
- emit q->toggled();
-}
-
-static inline QString indicatorName() { return QStringLiteral("indicator"); }
-
-void QQuickAbstractButtonPrivate::cancelIndicator()
-{
- Q_Q(QQuickAbstractButton);
- quickCancelDeferred(q, indicatorName());
-}
-
-void QQuickAbstractButtonPrivate::executeIndicator(bool complete)
-{
- Q_Q(QQuickAbstractButton);
- if (indicator.wasExecuted())
- return;
-
- if (!indicator || complete)
- quickBeginDeferred(q, indicatorName(), indicator);
- if (complete)
- quickCompleteDeferred(q, indicatorName(), indicator);
-}
-
-void QQuickAbstractButtonPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_Q(QQuickAbstractButton);
- QQuickControlPrivate::itemImplicitWidthChanged(item);
- if (item == indicator)
- emit q->implicitIndicatorWidthChanged();
-}
-
-void QQuickAbstractButtonPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_Q(QQuickAbstractButton);
- QQuickControlPrivate::itemImplicitHeightChanged(item);
- if (item == indicator)
- emit q->implicitIndicatorHeightChanged();
-}
-
-QQuickAbstractButton *QQuickAbstractButtonPrivate::findCheckedButton() const
-{
- Q_Q(const QQuickAbstractButton);
- if (group)
- return qobject_cast<QQuickAbstractButton *>(group->checkedButton());
-
- const QList<QQuickAbstractButton *> buttons = findExclusiveButtons();
- // TODO: A singular QRadioButton can be unchecked, which seems logical,
- // because there's nothing to be exclusive with. However, a RadioButton
- // from QtQuick.Controls 1.x can never be unchecked, which is the behavior
- // that QQuickRadioButton adopted. Uncommenting the following count check
- // gives the QRadioButton behavior. Notice that tst_radiobutton.qml needs
- // to be updated.
- if (!autoExclusive /*|| buttons.count() == 1*/)
- return nullptr;
-
- for (QQuickAbstractButton *button : buttons) {
- if (button->isChecked() && button != q)
- return button;
- }
- return checked ? const_cast<QQuickAbstractButton *>(q) : nullptr;
-}
-
-QList<QQuickAbstractButton *> QQuickAbstractButtonPrivate::findExclusiveButtons() const
-{
- QList<QQuickAbstractButton *> buttons;
- if (group) {
- QQmlListProperty<QQuickAbstractButton> groupButtons = group->buttons();
- int count = groupButtons.count(&groupButtons);
- for (int i = 0; i < count; ++i) {
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(groupButtons.at(&groupButtons, i));
- if (button)
- buttons += button;
- }
- } else if (parentItem) {
- const auto childItems = parentItem->childItems();
- for (QQuickItem *child : childItems) {
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(child);
- if (button && button->autoExclusive() && !QQuickAbstractButtonPrivate::get(button)->group)
- buttons += button;
- }
- }
- return buttons;
-}
-
-QQuickAbstractButton::QQuickAbstractButton(QQuickItem *parent)
- : QQuickControl(*(new QQuickAbstractButtonPrivate), parent)
-{
- setActiveFocusOnTab(true);
-#ifdef Q_OS_MACOS
- setFocusPolicy(Qt::TabFocus);
-#else
- setFocusPolicy(Qt::StrongFocus);
-#endif
- setAcceptedMouseButtons(Qt::LeftButton);
- setAcceptTouchEvents(true);
-#if QT_CONFIG(cursor)
- setCursor(Qt::ArrowCursor);
-#endif
-}
-
-QQuickAbstractButton::QQuickAbstractButton(QQuickAbstractButtonPrivate &dd, QQuickItem *parent)
- : QQuickControl(dd, parent)
-{
- setActiveFocusOnTab(true);
-#ifdef Q_OS_MACOS
- setFocusPolicy(Qt::TabFocus);
-#else
- setFocusPolicy(Qt::StrongFocus);
-#endif
- setAcceptedMouseButtons(Qt::LeftButton);
- setAcceptTouchEvents(true);
-#if QT_CONFIG(cursor)
- setCursor(Qt::ArrowCursor);
-#endif
-}
-
-QQuickAbstractButton::~QQuickAbstractButton()
-{
- Q_D(QQuickAbstractButton);
- d->removeImplicitSizeListener(d->indicator);
- if (d->group)
- d->group->removeButton(this);
-#if QT_CONFIG(shortcut)
- d->ungrabShortcut();
-#endif
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::AbstractButton::text
-
- This property holds a textual description of the button.
-
- \note The text is used for accessibility purposes, so it makes sense to
- set a textual description even if the content item is an image.
-
- \sa icon, display, {Control::contentItem}{contentItem}
-*/
-QString QQuickAbstractButton::text() const
-{
- Q_D(const QQuickAbstractButton);
- return d->explicitText || !d->action ? d->text : d->action->text();
-}
-
-void QQuickAbstractButton::setText(const QString &text)
-{
- Q_D(QQuickAbstractButton);
- d->setText(text, true);
-}
-
-void QQuickAbstractButton::resetText()
-{
- Q_D(QQuickAbstractButton);
- d->setText(QString(), false);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::AbstractButton::down
-
- This property holds whether the button is visually down.
-
- Unless explicitly set, this property follows the value of \l pressed. To
- return to the default value, set this property to \c undefined.
-
- \sa pressed
-*/
-bool QQuickAbstractButton::isDown() const
-{
- Q_D(const QQuickAbstractButton);
- return d->down;
-}
-
-void QQuickAbstractButton::setDown(bool down)
-{
- Q_D(QQuickAbstractButton);
- d->explicitDown = true;
-
- if (d->down == down)
- return;
-
- d->down = down;
- emit downChanged();
-}
-
-void QQuickAbstractButton::resetDown()
-{
- Q_D(QQuickAbstractButton);
- if (!d->explicitDown)
- return;
-
- setDown(d->pressed);
- d->explicitDown = false;
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::AbstractButton::pressed
- \readonly
-
- This property holds whether the button is physically pressed. A button can
- be pressed by either touch or key events.
-
- \sa down
-*/
-bool QQuickAbstractButton::isPressed() const
-{
- Q_D(const QQuickAbstractButton);
- return d->pressed;
-}
-
-void QQuickAbstractButton::setPressed(bool isPressed)
-{
- Q_D(QQuickAbstractButton);
- if (d->pressed == isPressed)
- return;
-
- d->pressed = isPressed;
- setAccessibleProperty("pressed", isPressed);
- emit pressedChanged();
- buttonChange(ButtonPressedChanged);
-
- if (!d->explicitDown) {
- setDown(d->pressed);
- d->explicitDown = false;
- }
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::AbstractButton::checked
-
- This property holds whether the button is checked.
-
- Since Qt 6.2, setting this property no longer affects the
- \l {AbstractButton::}{checkable} property. Explicitly set the
- \c checkable property if needed.
-
- \sa checkable
-*/
-bool QQuickAbstractButton::isChecked() const
-{
- Q_D(const QQuickAbstractButton);
- return d->checked;
-}
-
-void QQuickAbstractButton::setChecked(bool checked)
-{
- Q_D(QQuickAbstractButton);
- if (d->checked == checked)
- return;
-
- d->checked = checked;
- if (d->action)
- d->action->setChecked(checked);
- setAccessibleProperty("checked", checked);
- buttonChange(ButtonCheckedChange);
- emit checkedChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::AbstractButton::checkable
-
- This property holds whether the button is checkable.
-
- A checkable button toggles between checked (on) and unchecked (off) when
- the user clicks on it or presses the space bar while the button has active
- focus.
-
- The default value is \c false.
-
- \sa checked
-*/
-bool QQuickAbstractButton::isCheckable() const
-{
- Q_D(const QQuickAbstractButton);
- return d->checkable;
-}
-
-void QQuickAbstractButton::setCheckable(bool checkable)
-{
- Q_D(QQuickAbstractButton);
- if (d->checkable == checkable)
- return;
-
- d->checkable = checkable;
- if (d->action)
- d->action->setCheckable(checkable);
- setAccessibleProperty("checkable", checkable);
- buttonChange(ButtonCheckableChange);
- emit checkableChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::AbstractButton::autoExclusive
-
- This property holds whether auto-exclusivity is enabled.
-
- If auto-exclusivity is enabled, checkable buttons that belong to the same
- parent item behave as if they were part of the same ButtonGroup. Only
- one button can be checked at any time; checking another button automatically
- unchecks the previously checked one.
-
- \note The property has no effect on buttons that belong to a ButtonGroup.
-
- RadioButton and TabButton are auto-exclusive by default.
-*/
-bool QQuickAbstractButton::autoExclusive() const
-{
- Q_D(const QQuickAbstractButton);
- return d->autoExclusive;
-}
-
-void QQuickAbstractButton::setAutoExclusive(bool exclusive)
-{
- Q_D(QQuickAbstractButton);
- if (d->autoExclusive == exclusive)
- return;
-
- d->autoExclusive = exclusive;
- emit autoExclusiveChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::AbstractButton::autoRepeat
-
- This property holds whether the button repeats \l pressed(), \l released()
- and \l clicked() signals while the button is pressed and held down.
-
- If this property is set to \c true, the \l pressAndHold() signal will not
- be emitted.
-
- The default value is \c false.
-
- The initial delay and the repetition interval are defined in milliseconds
- by \l autoRepeatDelay and \l autoRepeatInterval.
-*/
-bool QQuickAbstractButton::autoRepeat() const
-{
- Q_D(const QQuickAbstractButton);
- return d->autoRepeat;
-}
-
-void QQuickAbstractButton::setAutoRepeat(bool repeat)
-{
- Q_D(QQuickAbstractButton);
- if (d->autoRepeat == repeat)
- return;
-
- d->stopPressRepeat();
- d->autoRepeat = repeat;
- emit autoRepeatChanged();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::AbstractButton::indicator
-
- This property holds the indicator item.
-*/
-QQuickItem *QQuickAbstractButton::indicator() const
-{
- QQuickAbstractButtonPrivate *d = const_cast<QQuickAbstractButtonPrivate *>(d_func());
- if (!d->indicator)
- d->executeIndicator();
- return d->indicator;
-}
-
-void QQuickAbstractButton::setIndicator(QQuickItem *indicator)
-{
- Q_D(QQuickAbstractButton);
- if (d->indicator == indicator)
- return;
-
- if (!d->indicator.isExecuting())
- d->cancelIndicator();
-
- const qreal oldImplicitIndicatorWidth = implicitIndicatorWidth();
- const qreal oldImplicitIndicatorHeight = implicitIndicatorHeight();
-
- d->removeImplicitSizeListener(d->indicator);
- QQuickControlPrivate::hideOldItem(d->indicator);
- d->indicator = indicator;
-
- if (indicator) {
- if (!indicator->parentItem())
- indicator->setParentItem(this);
- indicator->setAcceptedMouseButtons(Qt::LeftButton);
- d->addImplicitSizeListener(indicator);
- }
-
- if (!qFuzzyCompare(oldImplicitIndicatorWidth, implicitIndicatorWidth()))
- emit implicitIndicatorWidthChanged();
- if (!qFuzzyCompare(oldImplicitIndicatorHeight, implicitIndicatorHeight()))
- emit implicitIndicatorHeightChanged();
- if (!d->indicator.isExecuting())
- emit indicatorChanged();
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::AbstractButton::icon.name
- \qmlproperty url QtQuick.Controls::AbstractButton::icon.source
- \qmlproperty int QtQuick.Controls::AbstractButton::icon.width
- \qmlproperty int QtQuick.Controls::AbstractButton::icon.height
- \qmlproperty color QtQuick.Controls::AbstractButton::icon.color
- \qmlproperty bool QtQuick.Controls::AbstractButton::icon.cache
-
- This property group was added in QtQuick.Controls 2.3.
-
- \include qquickicon.qdocinc grouped-properties
-
- \sa text, display, {Icons in Qt Quick Controls}
-*/
-
-QQuickIcon QQuickAbstractButton::icon() const
-{
- Q_D(const QQuickAbstractButton);
- return d->effectiveIcon;
-}
-
-void QQuickAbstractButton::setIcon(const QQuickIcon &icon)
-{
- Q_D(QQuickAbstractButton);
- d->icon = icon;
- d->updateEffectiveIcon();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty enumeration QtQuick.Controls::AbstractButton::display
-
- This property determines how the \l icon and \l text are displayed within
- the button.
-
- \table
- \header \li Display \li Result
- \row \li \c AbstractButton.IconOnly \li \image qtquickcontrols2-button-icononly.png
- \row \li \c AbstractButton.TextOnly \li \image qtquickcontrols2-button-textonly.png
- \row \li \c AbstractButton.TextBesideIcon \li \image qtquickcontrols2-button-textbesideicon.png
- \row \li \c AbstractButton.TextUnderIcon \li \image qtquickcontrols2-button-textundericon.png
- \endtable
-
- \sa {Control::}{spacing}, {Control::}{padding}
-*/
-QQuickAbstractButton::Display QQuickAbstractButton::display() const
-{
- Q_D(const QQuickAbstractButton);
- return d->display;
-}
-
-void QQuickAbstractButton::setDisplay(Display display)
-{
- Q_D(QQuickAbstractButton);
- if (display == d->display)
- return;
-
- d->display = display;
- emit displayChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty Action QtQuick.Controls::AbstractButton::action
-
- This property holds the button action.
-
- \sa Action
-*/
-QQuickAction *QQuickAbstractButton::action() const
-{
- Q_D(const QQuickAbstractButton);
- return d->action;
-}
-
-void QQuickAbstractButton::setAction(QQuickAction *action)
-{
- Q_D(QQuickAbstractButton);
- if (d->action == action)
- return;
-
- const QString oldText = text();
-
- if (QQuickAction *oldAction = d->action.data()) {
- QQuickActionPrivate::get(oldAction)->unregisterItem(this);
- QObjectPrivate::disconnect(oldAction, &QQuickAction::triggered, d, &QQuickAbstractButtonPrivate::click);
- QObjectPrivate::disconnect(oldAction, &QQuickAction::textChanged, d, &QQuickAbstractButtonPrivate::actionTextChange);
-
- QObjectPrivate::disconnect(oldAction, &QQuickAction::iconChanged, d, &QQuickAbstractButtonPrivate::updateEffectiveIcon);
- disconnect(oldAction, &QQuickAction::checkedChanged, this, &QQuickAbstractButton::setChecked);
- disconnect(oldAction, &QQuickAction::checkableChanged, this, &QQuickAbstractButton::setCheckable);
- disconnect(oldAction, &QQuickAction::enabledChanged, this, &QQuickItem::setEnabled);
- }
-
- if (action) {
- QQuickActionPrivate::get(action)->registerItem(this);
- QObjectPrivate::connect(action, &QQuickAction::triggered, d, &QQuickAbstractButtonPrivate::click);
- QObjectPrivate::connect(action, &QQuickAction::textChanged, d, &QQuickAbstractButtonPrivate::actionTextChange);
-
- QObjectPrivate::connect(action, &QQuickAction::iconChanged, d, &QQuickAbstractButtonPrivate::updateEffectiveIcon);
- connect(action, &QQuickAction::checkedChanged, this, &QQuickAbstractButton::setChecked);
- connect(action, &QQuickAction::checkableChanged, this, &QQuickAbstractButton::setCheckable);
- connect(action, &QQuickAction::enabledChanged, this, &QQuickItem::setEnabled);
-
- setChecked(action->isChecked());
- setCheckable(action->isCheckable());
- setEnabled(action->isEnabled());
- }
-
- d->action = action;
-
- if (oldText != text())
- buttonChange(ButtonTextChange);
-
- d->updateEffectiveIcon();
-
- emit actionChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty int QtQuick.Controls::AbstractButton::autoRepeatDelay
-
- This property holds the initial delay of auto-repetition in milliseconds.
- The default value is \c 300 ms.
-
- \sa autoRepeat, autoRepeatInterval
-*/
-int QQuickAbstractButton::autoRepeatDelay() const
-{
- Q_D(const QQuickAbstractButton);
- return d->repeatDelay;
-}
-
-void QQuickAbstractButton::setAutoRepeatDelay(int delay)
-{
- Q_D(QQuickAbstractButton);
- if (d->repeatDelay == delay)
- return;
-
- d->repeatDelay = delay;
- emit autoRepeatDelayChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty int QtQuick.Controls::AbstractButton::autoRepeatInterval
-
- This property holds the interval of auto-repetition in milliseconds.
- The default value is \c 100 ms.
-
- \sa autoRepeat, autoRepeatDelay
-*/
-int QQuickAbstractButton::autoRepeatInterval() const
-{
- Q_D(const QQuickAbstractButton);
- return d->repeatInterval;
-}
-
-void QQuickAbstractButton::setAutoRepeatInterval(int interval)
-{
- Q_D(QQuickAbstractButton);
- if (d->repeatInterval == interval)
- return;
-
- d->repeatInterval = interval;
- emit autoRepeatIntervalChanged();
-}
-
-#if QT_CONFIG(shortcut)
-QKeySequence QQuickAbstractButton::shortcut() const
-{
- Q_D(const QQuickAbstractButton);
- return d->shortcut;
-}
-
-void QQuickAbstractButton::setShortcut(const QKeySequence &shortcut)
-{
- Q_D(QQuickAbstractButton);
- if (d->shortcut == shortcut)
- return;
-
- d->ungrabShortcut();
- d->shortcut = shortcut;
- if (isVisible())
- d->grabShortcut();
-}
-#endif
-
-/*!
- \readonly
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty real QtQuick.Controls::AbstractButton::pressX
-
- This property holds the x-coordinate of the last press.
-
- \note The value is updated on touch moves, but left intact after touch release.
-
- \sa pressY
-*/
-qreal QQuickAbstractButton::pressX() const
-{
- Q_D(const QQuickAbstractButton);
- return d->movePoint.x();
-}
-
-/*!
- \readonly
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty real QtQuick.Controls::AbstractButton::pressY
-
- This property holds the y-coordinate of the last press.
-
- \note The value is updated on touch moves, but left intact after touch release.
-
- \sa pressX
-*/
-qreal QQuickAbstractButton::pressY() const
-{
- Q_D(const QQuickAbstractButton);
- return d->movePoint.y();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::AbstractButton::implicitIndicatorWidth
- \readonly
-
- This property holds the implicit indicator width.
-
- The value is equal to \c {indicator ? indicator.implicitWidth : 0}.
-
- This is typically used, together with \l {Control::}{implicitContentWidth} and
- \l {Control::}{implicitBackgroundWidth}, to calculate the \l {Item::}{implicitWidth}.
-
- \sa implicitIndicatorHeight
-*/
-qreal QQuickAbstractButton::implicitIndicatorWidth() const
-{
- Q_D(const QQuickAbstractButton);
- if (!d->indicator)
- return 0;
- return d->indicator->implicitWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::AbstractButton::implicitIndicatorHeight
- \readonly
-
- This property holds the implicit indicator height.
-
- The value is equal to \c {indicator ? indicator.implicitHeight : 0}.
-
- This is typically used, together with \l {Control::}{implicitContentHeight} and
- \l {Control::}{implicitBackgroundHeight}, to calculate the \l {Item::}{implicitHeight}.
-
- \sa implicitIndicatorWidth
-*/
-qreal QQuickAbstractButton::implicitIndicatorHeight() const
-{
- Q_D(const QQuickAbstractButton);
- if (!d->indicator)
- return 0;
- return d->indicator->implicitHeight();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::AbstractButton::toggle()
-
- Toggles the checked state of the button.
-*/
-void QQuickAbstractButton::toggle()
-{
- Q_D(QQuickAbstractButton);
- setChecked(!d->checked);
-}
-
-void QQuickAbstractButton::componentComplete()
-{
- Q_D(QQuickAbstractButton);
- d->executeIndicator(true);
- QQuickControl::componentComplete();
-}
-
-bool QQuickAbstractButton::event(QEvent *event)
-{
-#if QT_CONFIG(shortcut)
- Q_D(QQuickAbstractButton);
- if (event->type() == QEvent::Shortcut) {
- QShortcutEvent *se = static_cast<QShortcutEvent *>(event);
- if (se->shortcutId() == d->shortcutId) {
- d->trigger();
- return true;
- }
- }
-#endif
- return QQuickControl::event(event);
-}
-
-void QQuickAbstractButton::focusOutEvent(QFocusEvent *event)
-{
- Q_D(QQuickAbstractButton);
- QQuickControl::focusOutEvent(event);
- if (d->touchId == -1) // don't ungrab on multi-touch if another control gets focused
- d->handleUngrab();
-}
-
-void QQuickAbstractButton::keyPressEvent(QKeyEvent *event)
-{
- Q_D(QQuickAbstractButton);
- QQuickControl::keyPressEvent(event);
- if (d->acceptKeyClick(static_cast<Qt::Key>(event->key()))) {
- d->setPressPoint(QPoint(qRound(width() / 2), qRound(height() / 2)));
- setPressed(true);
-
- if (d->autoRepeat)
- d->startRepeatDelay();
-
- emit pressed();
- event->accept();
- }
-}
-
-void QQuickAbstractButton::keyReleaseEvent(QKeyEvent *event)
-{
- Q_D(QQuickAbstractButton);
- QQuickControl::keyReleaseEvent(event);
- if (d->pressed && d->acceptKeyClick(static_cast<Qt::Key>(event->key()))) {
- setPressed(false);
-
- nextCheckState();
- emit released();
- d->trigger();
-
- if (d->autoRepeat)
- d->stopPressRepeat();
- event->accept();
- }
-}
-
-void QQuickAbstractButton::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickAbstractButton);
- d->pressButtons = event->buttons();
- QQuickControl::mousePressEvent(event);
-}
-
-void QQuickAbstractButton::mouseDoubleClickEvent(QMouseEvent *event)
-{
- Q_D(QQuickAbstractButton);
- QQuickControl::mouseDoubleClickEvent(event);
- emit doubleClicked();
- d->wasDoubleClick = true;
-}
-
-void QQuickAbstractButton::timerEvent(QTimerEvent *event)
-{
- Q_D(QQuickAbstractButton);
- QQuickControl::timerEvent(event);
- if (event->timerId() == d->holdTimer) {
- d->stopPressAndHold();
- d->wasHeld = true;
- emit pressAndHold();
- } else if (event->timerId() == d->delayTimer) {
- d->startPressRepeat();
- } else if (event->timerId() == d->repeatTimer) {
- emit released();
- d->trigger();
- emit pressed();
- }
-}
-
-void QQuickAbstractButton::itemChange(ItemChange change, const ItemChangeData &value)
-{
- QQuickControl::itemChange(change, value);
-#if QT_CONFIG(shortcut)
- Q_D(QQuickAbstractButton);
- if (change == ItemVisibleHasChanged) {
- if (value.boolValue)
- d->grabShortcut();
- else
- d->ungrabShortcut();
- }
-#endif
-}
-
-void QQuickAbstractButton::buttonChange(ButtonChange change)
-{
- Q_D(QQuickAbstractButton);
- switch (change) {
- case ButtonCheckedChange:
- if (d->checked) {
- QQuickAbstractButton *button = d->findCheckedButton();
- if (button && button != this)
- button->setChecked(false);
- }
- break;
- case ButtonTextChange: {
- const QString txt = text();
- maybeSetAccessibleName(txt);
-#if QT_CONFIG(shortcut)
- setShortcut(QKeySequence::mnemonic(txt));
-#endif
- emit textChanged();
- break;
- }
- default:
- break;
- }
-}
-
-void QQuickAbstractButton::nextCheckState()
-{
- Q_D(QQuickAbstractButton);
- if (d->checkable && (!d->checked || d->findCheckedButton() != this))
- d->toggle(!d->checked);
-}
-
-#if QT_CONFIG(accessibility)
-void QQuickAbstractButton::accessibilityActiveChanged(bool active)
-{
- QQuickControl::accessibilityActiveChanged(active);
-
- Q_D(QQuickAbstractButton);
- if (active) {
- maybeSetAccessibleName(text());
- setAccessibleProperty("pressed", d->pressed);
- setAccessibleProperty("checked", d->checked);
- setAccessibleProperty("checkable", d->checkable);
- }
-}
-
-QAccessible::Role QQuickAbstractButton::accessibleRole() const
-{
- Q_D(const QQuickAbstractButton);
- if (d->checkable) {
- return QAccessible::CheckBox;
- }
- return QAccessible::Button;
-}
-#endif
-
-QT_END_NAMESPACE
-
-#include "moc_qquickabstractbutton_p.cpp"
diff --git a/src/quicktemplates2/qquickabstractbutton_p.h b/src/quicktemplates2/qquickabstractbutton_p.h
deleted file mode 100644
index a5dbd733..00000000
--- a/src/quicktemplates2/qquickabstractbutton_p.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKABSTRACTBUTTON_P_H
-#define QQUICKABSTRACTBUTTON_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQuickTemplates2/private/qquickicon_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickAction;
-class QQuickAbstractButtonPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickAbstractButton : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(QString text READ text WRITE setText RESET resetText NOTIFY textChanged FINAL)
- Q_PROPERTY(bool down READ isDown WRITE setDown NOTIFY downChanged RESET resetDown FINAL)
- Q_PROPERTY(bool pressed READ isPressed NOTIFY pressedChanged FINAL)
- Q_PROPERTY(bool checked READ isChecked WRITE setChecked NOTIFY checkedChanged FINAL)
- Q_PROPERTY(bool checkable READ isCheckable WRITE setCheckable NOTIFY checkableChanged FINAL)
- Q_PROPERTY(bool autoExclusive READ autoExclusive WRITE setAutoExclusive NOTIFY autoExclusiveChanged FINAL)
- Q_PROPERTY(bool autoRepeat READ autoRepeat WRITE setAutoRepeat NOTIFY autoRepeatChanged FINAL)
- Q_PROPERTY(QQuickItem *indicator READ indicator WRITE setIndicator NOTIFY indicatorChanged FINAL)
- // 2.3 (Qt 5.10)
- Q_PROPERTY(QQuickIcon icon READ icon WRITE setIcon NOTIFY iconChanged FINAL REVISION(2, 3))
- Q_PROPERTY(Display display READ display WRITE setDisplay NOTIFY displayChanged FINAL REVISION(2, 3))
- Q_PROPERTY(QQuickAction *action READ action WRITE setAction NOTIFY actionChanged FINAL REVISION(2, 3))
- // 2.4 (Qt 5.11)
- Q_PROPERTY(int autoRepeatDelay READ autoRepeatDelay WRITE setAutoRepeatDelay NOTIFY autoRepeatDelayChanged FINAL REVISION(2, 4))
- Q_PROPERTY(int autoRepeatInterval READ autoRepeatInterval WRITE setAutoRepeatInterval NOTIFY autoRepeatIntervalChanged FINAL REVISION(2, 4))
- Q_PROPERTY(qreal pressX READ pressX NOTIFY pressXChanged FINAL REVISION(2, 4))
- Q_PROPERTY(qreal pressY READ pressY NOTIFY pressYChanged FINAL REVISION(2, 4))
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal implicitIndicatorWidth READ implicitIndicatorWidth NOTIFY implicitIndicatorWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitIndicatorHeight READ implicitIndicatorHeight NOTIFY implicitIndicatorHeightChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "background,contentItem,indicator")
- QML_NAMED_ELEMENT(AbstractButton)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickAbstractButton(QQuickItem *parent = nullptr);
- ~QQuickAbstractButton();
-
- QString text() const;
- void setText(const QString &text);
- void resetText();
-
- bool isDown() const;
- void setDown(bool down);
- void resetDown();
-
- bool isPressed() const;
- void setPressed(bool pressed);
-
- bool isChecked() const;
- void setChecked(bool checked);
-
- bool isCheckable() const;
- void setCheckable(bool checkable);
-
- bool autoExclusive() const;
- void setAutoExclusive(bool exclusive);
-
- bool autoRepeat() const;
- void setAutoRepeat(bool repeat);
-
- QQuickItem *indicator() const;
- void setIndicator(QQuickItem *indicator);
-
- // 2.3 (Qt 5.10)
- QQuickIcon icon() const;
- void setIcon(const QQuickIcon &icon);
-
- enum Display {
- IconOnly,
- TextOnly,
- TextBesideIcon,
- TextUnderIcon
- };
- Q_ENUM(Display)
-
- Display display() const;
- void setDisplay(Display display);
-
- QQuickAction *action() const;
- void setAction(QQuickAction *action);
-
-#if QT_CONFIG(shortcut)
- QKeySequence shortcut() const;
- void setShortcut(const QKeySequence &shortcut);
-#endif
-
- // 2.4 (Qt 5.11)
- int autoRepeatDelay() const;
- void setAutoRepeatDelay(int delay);
-
- int autoRepeatInterval() const;
- void setAutoRepeatInterval(int interval);
-
- qreal pressX() const;
- qreal pressY() const;
-
- // 2.5 (Qt 5.12)
- qreal implicitIndicatorWidth() const;
- qreal implicitIndicatorHeight() const;
-
-public Q_SLOTS:
- void toggle();
-
-Q_SIGNALS:
- void pressed();
- void released();
- void canceled();
- void clicked();
- void pressAndHold();
- void doubleClicked();
- void textChanged();
- void downChanged();
- void pressedChanged();
- void checkedChanged();
- void checkableChanged();
- void autoExclusiveChanged();
- void autoRepeatChanged();
- void indicatorChanged();
- // 2.2 (Qt 5.9)
- Q_REVISION(2, 2) void toggled();
- // 2.3 (Qt 5.10)
- Q_REVISION(2, 3) void iconChanged();
- Q_REVISION(2, 3) void displayChanged();
- Q_REVISION(2, 3) void actionChanged();
- // 2.4 (Qt 5.11)
- Q_REVISION(2, 4) void autoRepeatDelayChanged();
- Q_REVISION(2, 4) void autoRepeatIntervalChanged();
- Q_REVISION(2, 4) void pressXChanged();
- Q_REVISION(2, 4) void pressYChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void implicitIndicatorWidthChanged();
- Q_REVISION(2, 5) void implicitIndicatorHeightChanged();
-
-protected:
- QQuickAbstractButton(QQuickAbstractButtonPrivate &dd, QQuickItem *parent);
-
- void componentComplete() override;
-
- bool event(QEvent *event) override;
- void focusOutEvent(QFocusEvent *event) override;
- void keyPressEvent(QKeyEvent *event) override;
- void keyReleaseEvent(QKeyEvent *event) override;
- void mousePressEvent(QMouseEvent *event) override;
- void mouseDoubleClickEvent(QMouseEvent *event) override;
- void timerEvent(QTimerEvent *event) override;
-
- void itemChange(ItemChange change, const ItemChangeData &value) override;
-
- enum ButtonChange {
- ButtonCheckedChange,
- ButtonCheckableChange,
- ButtonPressedChanged,
- ButtonTextChange
- };
- virtual void buttonChange(ButtonChange change);
-
- virtual void nextCheckState();
-
-#if QT_CONFIG(accessibility)
- void accessibilityActiveChanged(bool active) override;
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickAbstractButton)
- Q_DECLARE_PRIVATE(QQuickAbstractButton)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickAbstractButton)
-
-#endif // QQUICKABSTRACTBUTTON_P_H
diff --git a/src/quicktemplates2/qquickabstractbutton_p_p.h b/src/quicktemplates2/qquickabstractbutton_p_p.h
deleted file mode 100644
index 744d9e66..00000000
--- a/src/quicktemplates2/qquickabstractbutton_p_p.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKABSTRACTBUTTON_P_P_H
-#define QQUICKABSTRACTBUTTON_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
-#if QT_CONFIG(shortcut)
-# include <QtGui/qkeysequence.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-class QQuickAction;
-class QQuickButtonGroup;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickAbstractButtonPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickAbstractButton)
-
-public:
- static QQuickAbstractButtonPrivate *get(QQuickAbstractButton *button)
- {
- return button->d_func();
- }
-
- void setPressPoint(const QPointF &point);
- void setMovePoint(const QPointF &point);
-
- void handlePress(const QPointF &point, ulong timestamp) override;
- void handleMove(const QPointF &point, ulong timestamp) override;
- void handleRelease(const QPointF &point, ulong timestamp) override;
- void handleUngrab() override;
-
- virtual bool acceptKeyClick(Qt::Key key) const;
-
- bool isPressAndHoldConnected();
- void startPressAndHold();
- void stopPressAndHold();
-
- void startRepeatDelay();
- void startPressRepeat();
- void stopPressRepeat();
-
-#if QT_CONFIG(shortcut)
- void grabShortcut();
- void ungrabShortcut();
-#endif
-
- QQuickAbstractButton *findCheckedButton() const;
- QList<QQuickAbstractButton *> findExclusiveButtons() const;
-
- void actionTextChange();
- void setText(const QString &text, bool isExplicit);
-
- void updateEffectiveIcon();
-
- void click();
- void trigger(bool doubleClick = false);
- void toggle(bool value);
-
- void cancelIndicator();
- void executeIndicator(bool complete = false);
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- // copied from qabstractbutton.cpp
- static const int AUTO_REPEAT_DELAY = 300;
- static const int AUTO_REPEAT_INTERVAL = 100;
-
- bool explicitText = false;
- bool down = false;
- bool explicitDown = false;
- bool pressed = false;
- bool keepPressed = false;
- bool checked = false;
- bool checkable = false;
- bool autoExclusive = false;
- bool autoRepeat = false;
- bool wasHeld = false;
- bool wasDoubleClick = false;
- int holdTimer = 0;
- int delayTimer = 0;
- int repeatTimer = 0;
- int repeatDelay = AUTO_REPEAT_DELAY;
- int repeatInterval = AUTO_REPEAT_INTERVAL;
-#if QT_CONFIG(shortcut)
- int shortcutId = 0;
- QKeySequence shortcut;
-#endif
- qreal lastTouchReleaseTimestamp = 0;
- QString text;
- QQuickIcon icon;
- QQuickIcon effectiveIcon;
- QPointF pressPoint;
- QPointF movePoint;
- Qt::MouseButtons pressButtons = Qt::NoButton;
- QQuickAbstractButton::Display display = QQuickAbstractButton::TextBesideIcon;
- QQuickDeferredPointer<QQuickItem> indicator;
- QQuickButtonGroup *group = nullptr;
- QPointer<QQuickAction> action;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKABSTRACTBUTTON_P_P_H
diff --git a/src/quicktemplates2/qquickaction.cpp b/src/quicktemplates2/qquickaction.cpp
deleted file mode 100644
index e3eb9370..00000000
--- a/src/quicktemplates2/qquickaction.cpp
+++ /dev/null
@@ -1,586 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickaction_p.h"
-#include "qquickaction_p_p.h"
-#include "qquickactiongroup_p.h"
-#include "qquickshortcutcontext_p_p.h"
-
-#include <QtGui/qevent.h>
-#if QT_CONFIG(shortcut)
-# include <QtGui/private/qshortcutmap_p.h>
-#endif
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtQuick/private/qquickitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Action
- \inherits QtObject
-//! \instantiates QQuickAction
- \inqmlmodule QtQuick.Controls
- \since 5.10
- \ingroup utilities
- \brief Abstract user interface action.
-
- Action represents an abstract user interface action that can have shortcuts
- and can be assigned to menu items and toolbar buttons.
-
- Actions may contain \l text, an \l icon, and a \l shortcut. Actions are normally
- \l triggered by the user via menu items, toolbar buttons, or keyboard shortcuts.
- A \l checkable Action toggles its \l checked state when triggered.
-
- \snippet qtquickcontrols2-action.qml action
-
- Action is commonly used to implement application commands that can be invoked
- via menu items, toolbar buttons, and keyboard shortcuts. Since the user expects
- the commands to be performed in the same way, regardless of the user interface
- used, it is useful to represent the commands as shareable actions.
-
- Action can be also used to separate the logic and the visual presentation. For
- example, when declaring buttons and menu items in \c .ui.qml files, actions can
- be declared elsewhere and assigned from the outside.
-
- \snippet qtquickcontrols2-action.qml toolbutton
-
- When an action is paired with buttons and menu items, the \c enabled, \c checkable,
- and \c checked states are synced automatically. For example, in a word processor,
- if the user clicks a "Bold" toolbar button, the "Bold" menu item will automatically
- be checked. Buttons and menu items get their \c text and \c icon from the action by
- default. An action-specific \c text or \c icon can be overridden for a specific
- control by specifying \c text or \c icon directly on the control.
-
- \snippet qtquickcontrols2-action.qml menuitem
-
- Since Action presents a user interface action, it is intended to be assigned to
- a \l MenuItem, \l ToolButton, or any other control that inherits \l AbstractButton.
- For keyboard shortcuts, the simpler \l Shortcut type is more appropriate.
-
- \sa MenuItem, ToolButton, Shortcut
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::Action::toggled(QtObject source)
-
- This signal is emitted when the action is toggled. The \a source argument
- identifies the object that toggled the action.
-
- For example, if the action is assigned to a menu item and a toolbar button, the
- action is toggled when the control is toggled, the shortcut is activated, or
- when \l toggle() is called directly.
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::Action::triggered(QtObject source)
-
- This signal is emitted when the action is triggered. The \a source argument
- identifies the object that triggered the action.
-
- For example, if the action is assigned to a menu item and a toolbar button, the
- action is triggered when the control is clicked, the shortcut is activated, or
- when \l trigger() is called directly.
-*/
-
-#if QT_CONFIG(shortcut)
-static QKeySequence variantToKeySequence(const QVariant &var)
-{
- if (var.metaType().id() == QMetaType::Int)
- return QKeySequence(static_cast<QKeySequence::StandardKey>(var.toInt()));
- return QKeySequence::fromString(var.toString());
-}
-
-QQuickActionPrivate::ShortcutEntry::ShortcutEntry(QObject *target)
- : m_target(target)
-{
-}
-
-QQuickActionPrivate::ShortcutEntry::~ShortcutEntry()
-{
- ungrab();
-}
-
-QObject *QQuickActionPrivate::ShortcutEntry::target() const
-{
- return m_target;
-}
-
-int QQuickActionPrivate::ShortcutEntry::shortcutId() const
-{
- return m_shortcutId;
-}
-
-void QQuickActionPrivate::ShortcutEntry::grab(const QKeySequence &shortcut, bool enabled)
-{
- if (shortcut.isEmpty())
- return;
-
- Qt::ShortcutContext context = Qt::WindowShortcut; // TODO
- m_shortcutId = QGuiApplicationPrivate::instance()->shortcutMap.addShortcut(m_target, shortcut, context, QQuickShortcutContext::matcher);
-
- if (!enabled)
- QGuiApplicationPrivate::instance()->shortcutMap.setShortcutEnabled(false, m_shortcutId, m_target);
-}
-
-void QQuickActionPrivate::ShortcutEntry::ungrab()
-{
- if (!m_shortcutId)
- return;
-
- QGuiApplicationPrivate::instance()->shortcutMap.removeShortcut(m_shortcutId, m_target);
- m_shortcutId = 0;
-}
-
-void QQuickActionPrivate::ShortcutEntry::setEnabled(bool enabled)
-{
- if (!m_shortcutId)
- return;
-
- QGuiApplicationPrivate::instance()->shortcutMap.setShortcutEnabled(enabled, m_shortcutId, m_target);
-}
-
-QVariant QQuickActionPrivate::shortcut() const
-{
- return vshortcut;
-}
-
-void QQuickActionPrivate::setShortcut(const QVariant &var)
-{
- Q_Q(QQuickAction);
- if (vshortcut == var)
- return;
-
- defaultShortcutEntry->ungrab();
- for (QQuickActionPrivate::ShortcutEntry *entry : qAsConst(shortcutEntries))
- entry->ungrab();
-
- vshortcut = var;
- keySequence = variantToKeySequence(var);
-
- defaultShortcutEntry->grab(keySequence, enabled);
- for (QQuickActionPrivate::ShortcutEntry *entry : qAsConst(shortcutEntries))
- entry->grab(keySequence, enabled);
-
- emit q->shortcutChanged(keySequence);
-}
-#endif // QT_CONFIG(shortcut)
-
-void QQuickActionPrivate::setEnabled(bool enable)
-{
- Q_Q(QQuickAction);
- if (enabled == enable)
- return;
-
- enabled = enable;
-
-#if QT_CONFIG(shortcut)
- defaultShortcutEntry->setEnabled(enable);
- for (QQuickActionPrivate::ShortcutEntry *entry : qAsConst(shortcutEntries))
- entry->setEnabled(enable);
-#endif
-
- emit q->enabledChanged(enable);
-}
-
-bool QQuickActionPrivate::watchItem(QQuickItem *item)
-{
- Q_Q(QQuickAction);
- if (!item)
- return false;
-
- item->installEventFilter(q);
- QQuickItemPrivate::get(item)->addItemChangeListener(this, QQuickItemPrivate::Visibility | QQuickItemPrivate::Destroyed);
- return true;
-}
-
-bool QQuickActionPrivate::unwatchItem(QQuickItem *item)
-{
- Q_Q(QQuickAction);
- if (!item)
- return false;
-
- item->removeEventFilter(q);
- QQuickItemPrivate::get(item)->removeItemChangeListener(this, QQuickItemPrivate::Visibility | QQuickItemPrivate::Destroyed);
- return true;
-}
-
-void QQuickActionPrivate::registerItem(QQuickItem *item)
-{
- if (!watchItem(item))
- return;
-
-#if QT_CONFIG(shortcut)
- QQuickActionPrivate::ShortcutEntry *entry = new QQuickActionPrivate::ShortcutEntry(item);
- if (item->isVisible())
- entry->grab(keySequence, enabled);
- shortcutEntries += entry;
-
- updateDefaultShortcutEntry();
-#endif
-}
-
-void QQuickActionPrivate::unregisterItem(QQuickItem *item)
-{
-#if QT_CONFIG(shortcut)
- QQuickActionPrivate::ShortcutEntry *entry = findShortcutEntry(item);
- if (!entry || !unwatchItem(item))
- return;
-
- shortcutEntries.removeOne(entry);
- delete entry;
-
- updateDefaultShortcutEntry();
-#else
- Q_UNUSED(item);
-#endif
-}
-
-void QQuickActionPrivate::itemVisibilityChanged(QQuickItem *item)
-{
-#if QT_CONFIG(shortcut)
- QQuickActionPrivate::ShortcutEntry *entry = findShortcutEntry(item);
- if (!entry)
- return;
-
- if (item->isVisible())
- entry->grab(keySequence, enabled);
- else
- entry->ungrab();
-
- updateDefaultShortcutEntry();
-#else
- Q_UNUSED(item);
-#endif
-}
-
-void QQuickActionPrivate::itemDestroyed(QQuickItem *item)
-{
- unregisterItem(item);
-}
-
-#if QT_CONFIG(shortcut)
-bool QQuickActionPrivate::handleShortcutEvent(QObject *object, QShortcutEvent *event)
-{
- Q_Q(QQuickAction);
- if (event->key() != keySequence)
- return false;
-
- QQuickActionPrivate::ShortcutEntry *entry = findShortcutEntry(object);
- if (!entry || event->shortcutId() != entry->shortcutId())
- return false;
-
- q->trigger(entry->target());
- return true;
-}
-
-QQuickActionPrivate::ShortcutEntry *QQuickActionPrivate::findShortcutEntry(QObject *target) const
-{
- Q_Q(const QQuickAction);
- if (target == q)
- return defaultShortcutEntry;
- for (QQuickActionPrivate::ShortcutEntry *entry : shortcutEntries) {
- if (entry->target() == target)
- return entry;
- }
- return nullptr;
-}
-
-void QQuickActionPrivate::updateDefaultShortcutEntry()
-{
- bool hasActiveShortcutEntries = false;
- for (QQuickActionPrivate::ShortcutEntry *entry : qAsConst(shortcutEntries)) {
- if (entry->shortcutId()) {
- hasActiveShortcutEntries = true;
- break;
- }
- }
-
- if (hasActiveShortcutEntries)
- defaultShortcutEntry->ungrab();
- else if (!defaultShortcutEntry->shortcutId())
- defaultShortcutEntry->grab(keySequence, enabled);
-}
-#endif // QT_CONFIG(shortcut)
-
-QQuickAction::QQuickAction(QObject *parent)
- : QObject(*(new QQuickActionPrivate), parent)
-{
-#if QT_CONFIG(shortcut)
- Q_D(QQuickAction);
- d->defaultShortcutEntry = new QQuickActionPrivate::ShortcutEntry(this);
-#endif
-}
-
-QQuickAction::~QQuickAction()
-{
- Q_D(QQuickAction);
- if (d->group)
- d->group->removeAction(this);
-
-#if QT_CONFIG(shortcut)
- for (QQuickActionPrivate::ShortcutEntry *entry : qAsConst(d->shortcutEntries))
- d->unwatchItem(qobject_cast<QQuickItem *>(entry->target()));
-
- qDeleteAll(d->shortcutEntries);
- delete d->defaultShortcutEntry;
-#endif
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::Action::text
-
- This property holds a textual description of the action.
-*/
-QString QQuickAction::text() const
-{
- Q_D(const QQuickAction);
- return d->text;
-}
-
-void QQuickAction::setText(const QString &text)
-{
- Q_D(QQuickAction);
- if (d->text == text)
- return;
-
- d->text = text;
- emit textChanged(text);
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::Action::icon.name
- \qmlproperty url QtQuick.Controls::Action::icon.source
- \qmlproperty int QtQuick.Controls::Action::icon.width
- \qmlproperty int QtQuick.Controls::Action::icon.height
- \qmlproperty color QtQuick.Controls::Action::icon.color
- \qmlproperty bool QtQuick.Controls::Action::icon.cache
-
- \include qquickicon.qdocinc grouped-properties
-*/
-QQuickIcon QQuickAction::icon() const
-{
- Q_D(const QQuickAction);
- return d->icon;
-}
-
-void QQuickAction::setIcon(const QQuickIcon &icon)
-{
- Q_D(QQuickAction);
- if (d->icon == icon)
- return;
-
- d->icon = icon;
- emit iconChanged(icon);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Action::enabled
-
- This property holds whether the action is enabled. The default value is \c true.
-*/
-bool QQuickAction::isEnabled() const
-{
- Q_D(const QQuickAction);
- return d->enabled && (!d->group || d->group->isEnabled());
-}
-
-void QQuickAction::setEnabled(bool enabled)
-{
- Q_D(QQuickAction);
- d->explicitEnabled = true;
- d->setEnabled(enabled);
-}
-
-void QQuickAction::resetEnabled()
-{
- Q_D(QQuickAction);
- if (!d->explicitEnabled)
- return;
-
- d->explicitEnabled = false;
- d->setEnabled(true);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Action::checked
-
- This property holds whether the action is checked.
-
- \sa checkable
-*/
-bool QQuickAction::isChecked() const
-{
- Q_D(const QQuickAction);
- return d->checked;
-}
-
-void QQuickAction::setChecked(bool checked)
-{
- Q_D(QQuickAction);
- if (d->checked == checked)
- return;
-
- d->checked = checked;
- emit checkedChanged(checked);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Action::checkable
-
- This property holds whether the action is checkable. The default value is \c false.
-
- A checkable action toggles between checked (on) and unchecked (off) when triggered.
-
- \sa checked
-*/
-bool QQuickAction::isCheckable() const
-{
- Q_D(const QQuickAction);
- return d->checkable;
-}
-
-void QQuickAction::setCheckable(bool checkable)
-{
- Q_D(QQuickAction);
- if (d->checkable == checkable)
- return;
-
- d->checkable = checkable;
- emit checkableChanged(checkable);
-}
-
-#if QT_CONFIG(shortcut)
-/*!
- \qmlproperty keysequence QtQuick.Controls::Action::shortcut
-
- This property holds the action's shortcut. The key sequence can be set
- to one of the \l{QKeySequence::StandardKey}{standard keyboard shortcuts},
- or it can be described with a string containing a sequence of up to four
- key presses that are needed to trigger the shortcut.
-
- \code
- Action {
- shortcut: "Ctrl+E,Ctrl+W"
- onTriggered: edit.wrapMode = TextEdit.Wrap
- }
- \endcode
-*/
-QKeySequence QQuickAction::shortcut() const
-{
- Q_D(const QQuickAction);
- return d->keySequence;
-}
-
-void QQuickAction::setShortcut(const QKeySequence &shortcut)
-{
- Q_D(QQuickAction);
- d->setShortcut(shortcut.toString());
-}
-#endif // QT_CONFIG(shortcut)
-
-/*!
- \qmlmethod void QtQuick.Controls::Action::toggle(QtObject source)
-
- Toggles the action and emits \l toggled() if enabled, with an optional \a source object defined.
-*/
-void QQuickAction::toggle(QObject *source)
-{
- Q_D(QQuickAction);
- if (!d->enabled)
- return;
-
- if (d->checkable)
- setChecked(!d->checked);
-
- emit toggled(source);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Action::trigger(QtObject source)
-
- Triggers the action and emits \l triggered() if enabled, with an optional \a source object defined.
-*/
-void QQuickAction::trigger(QObject *source)
-{
- Q_D(QQuickAction);
- d->trigger(source, true);
-}
-
-void QQuickActionPrivate::trigger(QObject* source, bool doToggle)
-{
- Q_Q(QQuickAction);
- if (!enabled)
- return;
-
- QPointer<QObject> guard = q;
- // the checked action of an exclusive group cannot be unchecked
- if (checkable && (!checked || !group || !group->isExclusive() || group->checkedAction() != q)) {
- if (doToggle)
- q->toggle(source);
- else
- emit q->toggled(source);
- }
-
- if (!guard.isNull())
- emit q->triggered(source);
-}
-
-bool QQuickAction::event(QEvent *event)
-{
-#if QT_CONFIG(shortcut)
- Q_D(QQuickAction);
- if (event->type() == QEvent::Shortcut)
- return d->handleShortcutEvent(this, static_cast<QShortcutEvent *>(event));
-#endif
- return QObject::event(event);
-}
-
-bool QQuickAction::eventFilter(QObject *object, QEvent *event)
-{
-#if QT_CONFIG(shortcut)
- Q_D(QQuickAction);
- if (event->type() == QEvent::Shortcut)
- return d->handleShortcutEvent(object, static_cast<QShortcutEvent *>(event));
-#else
- Q_UNUSED(object);
- Q_UNUSED(event);
-#endif
- return false;
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickaction_p.cpp"
diff --git a/src/quicktemplates2/qquickaction_p.h b/src/quicktemplates2/qquickaction_p.h
deleted file mode 100644
index f600d89e..00000000
--- a/src/quicktemplates2/qquickaction_p.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKACTION_P_H
-#define QQUICKACTION_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-#include <QtQuickTemplates2/private/qquickicon_p.h>
-#include <QtCore/qobject.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickIcon;
-class QQuickActionPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickAction : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged FINAL)
- Q_PROPERTY(QQuickIcon icon READ icon WRITE setIcon NOTIFY iconChanged FINAL)
- Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged RESET resetEnabled FINAL)
- Q_PROPERTY(bool checked READ isChecked WRITE setChecked NOTIFY checkedChanged FINAL)
- Q_PROPERTY(bool checkable READ isCheckable WRITE setCheckable NOTIFY checkableChanged FINAL)
-#if QT_CONFIG(shortcut)
- Q_PRIVATE_PROPERTY(QQuickAction::d_func(), QVariant shortcut READ shortcut WRITE setShortcut NOTIFY shortcutChanged FINAL)
-#endif
- QML_NAMED_ELEMENT(Action)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickAction(QObject *parent = nullptr);
- ~QQuickAction();
-
- QString text() const;
- void setText(const QString &text);
-
- QQuickIcon icon() const;
- void setIcon(const QQuickIcon &icon);
-
- bool isEnabled() const;
- void setEnabled(bool enabled);
- void resetEnabled();
-
- bool isChecked() const;
- void setChecked(bool checked);
-
- bool isCheckable() const;
- void setCheckable(bool checkable);
-
-#if QT_CONFIG(shortcut)
- QKeySequence shortcut() const;
- void setShortcut(const QKeySequence &shortcut);
-#endif
-
-public Q_SLOTS:
- void toggle(QObject *source = nullptr);
- void trigger(QObject *source = nullptr);
-
-Q_SIGNALS:
- void textChanged(const QString &text);
- void iconChanged(const QQuickIcon &icon);
- void enabledChanged(bool enabled);
- void checkedChanged(bool checked);
- void checkableChanged(bool checkable);
-#if QT_CONFIG(shortcut)
- void shortcutChanged(const QKeySequence &shortcut);
-#endif
-
- void toggled(QObject *source = nullptr);
- void triggered(QObject *source = nullptr);
-
-protected:
- bool event(QEvent *event) override;
- bool eventFilter(QObject *object, QEvent *event) override;
-
-private:
- Q_DISABLE_COPY(QQuickAction)
- Q_DECLARE_PRIVATE(QQuickAction)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickAction)
-
-#endif // QQUICKACTION_P_H
diff --git a/src/quicktemplates2/qquickaction_p_p.h b/src/quicktemplates2/qquickaction_p_p.h
deleted file mode 100644
index d9b83548..00000000
--- a/src/quicktemplates2/qquickaction_p_p.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKACTION_P_P_H
-#define QQUICKACTION_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/private/qobject_p.h>
-#include <QtCore/qvariant.h>
-#include <QtCore/qstring.h>
-#if QT_CONFIG(shortcut)
-# include <QtGui/qkeysequence.h>
-#endif
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QShortcutEvent;
-class QQuickActionGroup;
-
-class QQuickActionPrivate : public QObjectPrivate, public QQuickItemChangeListener
-{
- Q_DECLARE_PUBLIC(QQuickAction)
-
-public:
- static QQuickActionPrivate *get(QQuickAction *action)
- {
- return action->d_func();
- }
-
-#if QT_CONFIG(shortcut)
- QVariant shortcut() const;
- void setShortcut(const QVariant &shortcut);
-#endif
-
- void setEnabled(bool enable);
-
- bool watchItem(QQuickItem *item);
- bool unwatchItem(QQuickItem *item);
-
- void registerItem(QQuickItem *item);
- void unregisterItem(QQuickItem *item);
-
- void itemVisibilityChanged(QQuickItem *item) override;
- void itemDestroyed(QQuickItem *item) override;
-
- bool handleShortcutEvent(QObject *object, QShortcutEvent *event);
-
- void trigger(QObject*, bool doToggle);
-
-#if QT_CONFIG(shortcut)
- class ShortcutEntry
- {
- public:
- explicit ShortcutEntry(QObject *target);
- ~ShortcutEntry();
-
- QObject *target() const;
- int shortcutId() const;
-
- void grab(const QKeySequence &vshortcut, bool enabled);
- void ungrab();
-
- void setEnabled(bool enabled);
-
- private:
- int m_shortcutId = 0;
- QObject *m_target = nullptr;
- };
-
- ShortcutEntry *findShortcutEntry(QObject *target) const;
- void updateDefaultShortcutEntry();
-#endif // QT_CONFIG(shortcut)
-
- bool explicitEnabled = false;
- bool enabled = true;
- bool checked = false;
- bool checkable = false;
- QString text;
- QQuickIcon icon;
-#if QT_CONFIG(shortcut)
- QKeySequence keySequence;
- QVariant vshortcut;
- ShortcutEntry *defaultShortcutEntry = nullptr;
- QList<ShortcutEntry *> shortcutEntries;
-#endif
- QQuickActionGroup *group = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKACTION_P_P_H
diff --git a/src/quicktemplates2/qquickactiongroup.cpp b/src/quicktemplates2/qquickactiongroup.cpp
deleted file mode 100644
index 1656ecf5..00000000
--- a/src/quicktemplates2/qquickactiongroup.cpp
+++ /dev/null
@@ -1,471 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickactiongroup_p.h"
-
-#include <QtCore/private/qobject_p.h>
-#include <QtCore/qmetaobject.h>
-#include <QtCore/qvariant.h>
-#include <QtQml/qqmlinfo.h>
-
-#include "qquickaction_p.h"
-#include "qquickaction_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ActionGroup
- \inherits QtObject
-//! \instantiates QQuickActionGroup
- \inqmlmodule QtQuick.Controls
- \since 5.10
- \ingroup utilities
- \brief Groups actions together.
-
- ActionGroup is a non-visual group of actions. A mutually \l exclusive
- action group is used with actions where only one of the options can be
- selected at a time.
-
- The most straight-forward way to use ActionGroup is to declare actions
- as children of the group.
-
- \code
- ActionGroup {
- id: alignmentGroup
-
- Action {
- checked: true
- checkable: true
- text: qsTr("Left")
- }
-
- Action {
- checkable: true
- text: qsTr("Center")
- }
-
- Action {
- checkable: true
- text: qsTr("Right")
- }
- }
- \endcode
-
- Alternatively, the \l group attached property allows declaring the actions
- elsewhere and assigning them to a specific group.
-
- \code
- ActionGroup { id: alignmentGroup }
-
- Action {
- checked: true
- checkable: true
- text: qsTr("Left")
- ActionGroup.group: alignmentGroup
- }
-
- Action {
- checkable: true
- text: qsTr("Center")
- ActionGroup.group: alignmentGroup
- }
-
- Action {
- checkable: true
- text: qsTr("Right")
- ActionGroup.group: alignmentGroup
- }
- \endcode
-
- More advanced use cases can be handled using the \c addAction() and
- \c removeAction() methods.
-
- \sa Action, ButtonGroup
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::ActionGroup::triggered(Action action)
-
- This signal is emitted when an \a action in the group has been triggered.
-
- This signal is convenient for implementing a common signal handler for
- all actions in the same group.
-
- \code
- ActionGroup {
- onTriggered: console.log("triggered:", action.text)
-
- Action { text: "First" }
- Action { text: "Second" }
- Action { text: "Third" }
- }
- \endcode
-
- \sa Action::triggered()
-*/
-
-class QQuickActionGroupPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickActionGroup)
-
-public:
- void clear();
- void actionTriggered();
- void _q_updateCurrent();
-
- static bool changeEnabled(QQuickAction *action, bool enabled);
-
- static void actions_append(QQmlListProperty<QQuickAction> *prop, QQuickAction *obj);
- static qsizetype actions_count(QQmlListProperty<QQuickAction> *prop);
- static QQuickAction *actions_at(QQmlListProperty<QQuickAction> *prop, qsizetype index);
- static void actions_clear(QQmlListProperty<QQuickAction> *prop);
-
- bool enabled = true;
- bool exclusive = true;
- QPointer<QQuickAction> checkedAction;
- QList<QQuickAction*> actions;
-};
-
-void QQuickActionGroupPrivate::clear()
-{
- for (QQuickAction *action : qAsConst(actions)) {
- QQuickActionPrivate::get(action)->group = nullptr;
- QObjectPrivate::disconnect(action, &QQuickAction::triggered, this, &QQuickActionGroupPrivate::actionTriggered);
- QObjectPrivate::disconnect(action, &QQuickAction::checkedChanged, this, &QQuickActionGroupPrivate::_q_updateCurrent);
- }
- actions.clear();
-}
-
-void QQuickActionGroupPrivate::actionTriggered()
-{
- Q_Q(QQuickActionGroup);
- QQuickAction *action = qobject_cast<QQuickAction*>(q->sender());
- if (action)
- emit q->triggered(action);
-}
-
-void QQuickActionGroupPrivate::_q_updateCurrent()
-{
- Q_Q(QQuickActionGroup);
- if (!exclusive)
- return;
- QQuickAction *action = qobject_cast<QQuickAction*>(q->sender());
- if (action && action->isChecked())
- q->setCheckedAction(action);
- else if (!actions.contains(checkedAction))
- q->setCheckedAction(nullptr);
-}
-
-bool QQuickActionGroupPrivate::changeEnabled(QQuickAction *action, bool enabled)
-{
- return action->isEnabled() != enabled && (!enabled || !QQuickActionPrivate::get(action)->explicitEnabled);
-}
-
-void QQuickActionGroupPrivate::actions_append(QQmlListProperty<QQuickAction> *prop, QQuickAction *obj)
-{
- QQuickActionGroup *q = static_cast<QQuickActionGroup *>(prop->object);
- q->addAction(obj);
-}
-
-qsizetype QQuickActionGroupPrivate::actions_count(QQmlListProperty<QQuickAction> *prop)
-{
- QQuickActionGroupPrivate *p = static_cast<QQuickActionGroupPrivate *>(prop->data);
- return p->actions.count();
-}
-
-QQuickAction *QQuickActionGroupPrivate::actions_at(QQmlListProperty<QQuickAction> *prop, qsizetype index)
-{
- QQuickActionGroupPrivate *p = static_cast<QQuickActionGroupPrivate *>(prop->data);
- return p->actions.value(index);
-}
-
-void QQuickActionGroupPrivate::actions_clear(QQmlListProperty<QQuickAction> *prop)
-{
- QQuickActionGroupPrivate *p = static_cast<QQuickActionGroupPrivate *>(prop->data);
- if (!p->actions.isEmpty()) {
- p->clear();
- QQuickActionGroup *q = static_cast<QQuickActionGroup *>(prop->object);
- // QTBUG-52358: don't clear the checked action immediately
- QMetaObject::invokeMethod(q, "_q_updateCurrent", Qt::QueuedConnection);
- emit q->actionsChanged();
- }
-}
-
-QQuickActionGroup::QQuickActionGroup(QObject *parent)
- : QObject(*(new QQuickActionGroupPrivate), parent)
-{
-}
-
-QQuickActionGroup::~QQuickActionGroup()
-{
- Q_D(QQuickActionGroup);
- d->clear();
-}
-
-QQuickActionGroupAttached *QQuickActionGroup::qmlAttachedProperties(QObject *object)
-{
- return new QQuickActionGroupAttached(object);
-}
-
-/*!
- \qmlproperty Action QtQuick.Controls::ActionGroup::checkedAction
-
- This property holds the currently selected action in an exclusive group,
- or \c null if there is none or the group is non-exclusive.
-
- By default, it is the first checked action added to an exclusive action group.
-
- \sa exclusive
-*/
-QQuickAction *QQuickActionGroup::checkedAction() const
-{
- Q_D(const QQuickActionGroup);
- return d->checkedAction;
-}
-
-void QQuickActionGroup::setCheckedAction(QQuickAction *checkedAction)
-{
- Q_D(QQuickActionGroup);
- if (d->checkedAction == checkedAction)
- return;
-
- if (d->checkedAction)
- d->checkedAction->setChecked(false);
- d->checkedAction = checkedAction;
- if (checkedAction)
- checkedAction->setChecked(true);
- emit checkedActionChanged();
-}
-
-/*!
- \qmlproperty list<Action> QtQuick.Controls::ActionGroup::actions
- \qmldefault
-
- This property holds the list of actions in the group.
-
- \sa group
-*/
-QQmlListProperty<QQuickAction> QQuickActionGroup::actions()
-{
- Q_D(QQuickActionGroup);
- return QQmlListProperty<QQuickAction>(this, d,
- QQuickActionGroupPrivate::actions_append,
- QQuickActionGroupPrivate::actions_count,
- QQuickActionGroupPrivate::actions_at,
- QQuickActionGroupPrivate::actions_clear);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::ActionGroup::exclusive
-
- This property holds whether the action group is exclusive. The default value is \c true.
-
- If this property is \c true, then only one action in the group can be checked at any given time.
- The user can trigger any action to check it, and that action will replace the existing one as
- the checked action in the group.
-
- In an exclusive group, the user cannot uncheck the currently checked action by triggering it;
- instead, another action in the group must be triggered to set the new checked action for that
- group.
-
- In a non-exclusive group, checking and unchecking actions does not affect the other actions in
- the group. Furthermore, the value of the \l checkedAction property is \c null.
-*/
-bool QQuickActionGroup::isExclusive() const
-{
- Q_D(const QQuickActionGroup);
- return d->exclusive;
-}
-
-void QQuickActionGroup::setExclusive(bool exclusive)
-{
- Q_D(QQuickActionGroup);
- if (d->exclusive == exclusive)
- return;
-
- d->exclusive = exclusive;
- emit exclusiveChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::ActionGroup::enabled
-
- This property holds whether the action group is enabled. The default value is \c true.
-
- If this property is \c false, then all actions in the group are disabled. If this property
- is \c true, all actions in the group are enabled, unless explicitly disabled.
-*/
-bool QQuickActionGroup::isEnabled() const
-{
- Q_D(const QQuickActionGroup);
- return d->enabled;
-}
-
-void QQuickActionGroup::setEnabled(bool enabled)
-{
- Q_D(QQuickActionGroup);
- if (d->enabled == enabled)
- return;
-
- for (QQuickAction *action : qAsConst(d->actions)) {
- if (d->changeEnabled(action, enabled))
- emit action->enabledChanged(enabled);
- }
-
- d->enabled = enabled;
- emit enabledChanged();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::ActionGroup::addAction(Action action)
-
- Adds an \a action to the action group.
-
- \note Manually adding objects to a action group is typically unnecessary.
- The \l actions property and the \l group attached property provide a
- convenient and declarative syntax.
-
- \sa actions, group
-*/
-void QQuickActionGroup::addAction(QQuickAction *action)
-{
- Q_D(QQuickActionGroup);
- if (!action || d->actions.contains(action))
- return;
-
- const bool enabledChange = d->changeEnabled(action, d->enabled);
-
- QQuickActionPrivate::get(action)->group = this;
- QObjectPrivate::connect(action, &QQuickAction::triggered, d, &QQuickActionGroupPrivate::actionTriggered);
- QObjectPrivate::connect(action, &QQuickAction::checkedChanged, d, &QQuickActionGroupPrivate::_q_updateCurrent);
-
- if (d->exclusive && action->isChecked())
- setCheckedAction(action);
- if (enabledChange)
- emit action->enabledChanged(action->isEnabled());
-
- d->actions.append(action);
- emit actionsChanged();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::ActionGroup::removeAction(Action action)
-
- Removes an \a action from the action group.
-
- \note Manually removing objects from a action group is typically unnecessary.
- The \l actions property and the \l group attached property provide a
- convenient and declarative syntax.
-
- \sa actions, group
-*/
-void QQuickActionGroup::removeAction(QQuickAction *action)
-{
- Q_D(QQuickActionGroup);
- if (!action || !d->actions.contains(action))
- return;
-
- const bool enabledChange = d->changeEnabled(action, d->enabled);
-
- QQuickActionPrivate::get(action)->group = nullptr;
- QObjectPrivate::disconnect(action, &QQuickAction::triggered, d, &QQuickActionGroupPrivate::actionTriggered);
- QObjectPrivate::disconnect(action, &QQuickAction::checkedChanged, d, &QQuickActionGroupPrivate::_q_updateCurrent);
-
- if (d->checkedAction == action)
- setCheckedAction(nullptr);
- if (enabledChange)
- emit action->enabledChanged(action->isEnabled());
-
- d->actions.removeOne(action);
- emit actionsChanged();
-}
-
-class QQuickActionGroupAttachedPrivate : public QObjectPrivate
-{
-public:
- QQuickActionGroup *group = nullptr;
-};
-
-QQuickActionGroupAttached::QQuickActionGroupAttached(QObject *parent)
- : QObject(*(new QQuickActionGroupAttachedPrivate), parent)
-{
-}
-
-/*!
- \qmlattachedproperty ActionGroup QtQuick.Controls::ActionGroup::group
-
- This property attaches an action to an action group.
-
- \code
- ActionGroup { id: group }
-
- Action {
- checked: true
- text: qsTr("Option A")
- ActionGroup.group: group
- }
-
- Action {
- text: qsTr("Option B")
- ActionGroup.group: group
- }
- \endcode
-
- \sa actions
-*/
-QQuickActionGroup *QQuickActionGroupAttached::group() const
-{
- Q_D(const QQuickActionGroupAttached);
- return d->group;
-}
-
-void QQuickActionGroupAttached::setGroup(QQuickActionGroup *group)
-{
- Q_D(QQuickActionGroupAttached);
- if (d->group == group)
- return;
-
- if (d->group)
- d->group->removeAction(qobject_cast<QQuickAction*>(parent()));
- d->group = group;
- if (group)
- group->addAction(qobject_cast<QQuickAction*>(parent()));
- emit groupChanged();
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickactiongroup_p.cpp"
diff --git a/src/quicktemplates2/qquickactiongroup_p.h b/src/quicktemplates2/qquickactiongroup_p.h
deleted file mode 100644
index d905f595..00000000
--- a/src/quicktemplates2/qquickactiongroup_p.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKACTIONGROUP_P_H
-#define QQUICKACTIONGROUP_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickAction;
-class QQuickActionGroupPrivate;
-class QQuickActionGroupAttached;
-class QQuickActionGroupAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickActionGroup : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickAction *checkedAction READ checkedAction WRITE setCheckedAction NOTIFY checkedActionChanged FINAL)
- Q_PROPERTY(QQmlListProperty<QQuickAction> actions READ actions NOTIFY actionsChanged FINAL)
- Q_PROPERTY(bool exclusive READ isExclusive WRITE setExclusive NOTIFY exclusiveChanged FINAL)
- Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged FINAL)
- Q_CLASSINFO("DefaultProperty", "actions")
- QML_NAMED_ELEMENT(ActionGroup)
- QML_ATTACHED(QQuickActionGroupAttached)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickActionGroup(QObject *parent = nullptr);
- ~QQuickActionGroup();
-
- static QQuickActionGroupAttached *qmlAttachedProperties(QObject *object);
-
- QQuickAction *checkedAction() const;
- void setCheckedAction(QQuickAction *checkedAction);
-
- QQmlListProperty<QQuickAction> actions();
-
- bool isExclusive() const;
- void setExclusive(bool exclusive);
-
- bool isEnabled() const;
- void setEnabled(bool enabled);
-
-public Q_SLOTS:
- void addAction(QQuickAction *action);
- void removeAction(QQuickAction *action);
-
-Q_SIGNALS:
- void checkedActionChanged();
- void actionsChanged();
- void exclusiveChanged();
- void enabledChanged();
- void triggered(QQuickAction *action);
-
-private:
- Q_DISABLE_COPY(QQuickActionGroup)
- Q_DECLARE_PRIVATE(QQuickActionGroup)
-
- Q_PRIVATE_SLOT(d_func(), void _q_updateCurrent())
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickActionGroupAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickActionGroup *group READ group WRITE setGroup NOTIFY groupChanged FINAL)
-
-public:
- explicit QQuickActionGroupAttached(QObject *parent = nullptr);
-
- QQuickActionGroup *group() const;
- void setGroup(QQuickActionGroup *group);
-
-Q_SIGNALS:
- void groupChanged();
-
-private:
- Q_DISABLE_COPY(QQuickActionGroupAttached)
- Q_DECLARE_PRIVATE(QQuickActionGroupAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickActionGroup)
-QML_DECLARE_TYPEINFO(QQuickActionGroup, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKACTIONGROUP_P_H
diff --git a/src/quicktemplates2/qquickapplicationwindow.cpp b/src/quicktemplates2/qquickapplicationwindow.cpp
deleted file mode 100644
index eb1d12c9..00000000
--- a/src/quicktemplates2/qquickapplicationwindow.cpp
+++ /dev/null
@@ -1,955 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickapplicationwindow_p.h"
-#include "qquickcontentitem_p.h"
-#include "qquickpopup_p_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquicktextarea_p.h"
-#include "qquicktextfield_p.h"
-#include "qquicktoolbar_p.h"
-#include "qquicktabbar_p.h"
-#include "qquickdialogbuttonbox_p.h"
-#include "qquickdeferredexecute_p_p.h"
-#include "qquickdeferredpointer_p_p.h"
-
-#include <QtCore/private/qobject_p.h>
-#include <QtCore/qscopedvaluerollback.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-#include <QtQuick/private/qquickwindowmodule_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ApplicationWindow
- \inherits Window
-//! \instantiates QQuickApplicationWindow
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-containers
- \ingroup qtquickcontrols2-focusscopes
- \brief Styled top-level window with support for a header and footer.
-
- ApplicationWindow is a \l Window which makes it convenient to add
- a \l {menuBar}{menu bar}, \l header and \l footer item to the window.
-
- You can declare ApplicationWindow as the root item of your application,
- and run it by using \l QQmlApplicationEngine. In this way you can control
- the window's properties, appearance and layout from QML.
-
- \image qtquickcontrols2-applicationwindow-wireframe.png
-
- \qml
- import QtQuick.Controls 2.12
-
- ApplicationWindow {
- visible: true
-
- menuBar: MenuBar {
- // ...
- }
-
- header: ToolBar {
- // ...
- }
-
- footer: TabBar {
- // ...
- }
-
- StackView {
- anchors.fill: parent
- }
- }
- \endqml
-
- \note By default, an ApplicationWindow is not visible.
-
- \section2 Attached ApplicationWindow Properties
-
- Due to how \l {Scope and Naming Resolution} works in QML, it is possible
- to reference the \c id of the application root element anywhere in its
- child QML objects. Even though this approach is fine for many applications
- and use cases, for a generic QML component it may not be acceptable as it
- creates a dependency to the surrounding environment.
-
- ApplicationWindow provides a set of attached properties that can be used
- to access the window and its building blocks from places where no direct
- access to the window is available, without creating a dependency to a
- certain window \c id. A QML component that uses the ApplicationWindow
- attached properties works in any window regardless of its \c id.
-
- \sa {Customizing ApplicationWindow}, Overlay, Page, {Container Controls},
- {Focus Management in Qt Quick Controls}
-*/
-
-static const QQuickItemPrivate::ChangeTypes ItemChanges = QQuickItemPrivate::Visibility
- | QQuickItemPrivate::Geometry | QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickApplicationWindowPrivate
- : public QQuickWindowQmlImplPrivate
- , public QQuickItemChangeListener
-{
- Q_DECLARE_PUBLIC(QQuickApplicationWindow)
-
-public:
- QQuickApplicationWindowPrivate()
- {
- complete = true;
- }
-
- static QQuickApplicationWindowPrivate *get(QQuickApplicationWindow *window)
- {
- return window->d_func();
- }
-
- QQmlListProperty<QObject> contentData();
-
- void relayout();
-
- void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override;
- void itemVisibilityChanged(QQuickItem *item) override;
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- void updateFont(const QFont &f);
- inline void setFont_helper(const QFont &f) {
- if (font.resolveMask() == f.resolveMask() && font == f)
- return;
- updateFont(f);
- }
- void resolveFont();
-
- void _q_updateActiveFocus();
- void setActiveFocusControl(QQuickItem *item);
-
- static void contentData_append(QQmlListProperty<QObject> *prop, QObject *obj);
-
- void cancelBackground();
- void executeBackground(bool complete = false);
-
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::System); }
- void updateChildrenPalettes(const QPalette &parentPalette) override
- {
- // Update regular children
- QQuickWindowPrivate::updateChildrenPalettes(parentPalette);
-
- // And cover one special case
- for (auto &&popup : q_func()->findChildren<QQuickPopup *>())
- QQuickPopupPrivate::get(popup)->inheritPalette(parentPalette);
- }
-
- QQuickDeferredPointer<QQuickItem> background;
- QQuickItem *appWindowContentItem = nullptr;
- QQuickItem *menuBar = nullptr;
- QQuickItem *header = nullptr;
- QQuickItem *footer = nullptr;
- QFont font;
- QLocale locale;
- QQuickItem *activeFocusControl = nullptr;
- bool insideRelayout = false;
-};
-
-static void layoutItem(QQuickItem *item, qreal y, qreal width)
-{
- if (!item)
- return;
-
- item->setY(y);
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- if (!p->widthValid()) {
- item->setWidth(width);
- p->widthValidFlag = false;
- }
-}
-
-void QQuickApplicationWindowPrivate::relayout()
-{
- Q_Q(QQuickApplicationWindow);
- if (!complete || insideRelayout)
- return;
-
- QScopedValueRollback<bool> guard(insideRelayout, true);
- QQuickItem *content = q->contentItem();
- qreal hh = header && header->isVisible() ? header->height() : 0;
- qreal fh = footer && footer->isVisible() ? footer->height() : 0;
- qreal mbh = menuBar && menuBar->isVisible() ? menuBar->height() : 0;
-
- content->setY(mbh + hh);
- content->setWidth(q->width());
- content->setHeight(q->height() - mbh - hh - fh);
-
- layoutItem(menuBar, -mbh - hh, q->width());
- layoutItem(header, -hh, q->width());
- layoutItem(footer, content->height(), q->width());
-
- if (background) {
- QQuickItemPrivate *p = QQuickItemPrivate::get(background);
- if (!p->widthValid() && qFuzzyIsNull(background->x())) {
- background->setWidth(q->width());
- p->widthValidFlag = false;
- }
- if (!p->heightValid() && qFuzzyIsNull(background->y())) {
- background->setHeight(q->height());
- p->heightValidFlag = false;
- }
- }
-}
-
-void QQuickApplicationWindowPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff)
-{
- Q_UNUSED(item);
- Q_UNUSED(change);
- Q_UNUSED(diff);
- relayout();
-}
-
-void QQuickApplicationWindowPrivate::itemVisibilityChanged(QQuickItem *item)
-{
- Q_UNUSED(item);
- relayout();
-}
-
-void QQuickApplicationWindowPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_UNUSED(item);
- relayout();
-}
-
-void QQuickApplicationWindowPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_UNUSED(item);
- relayout();
-}
-
-void QQuickApplicationWindowPrivate::updateFont(const QFont &f)
-{
- Q_Q(QQuickApplicationWindow);
- const bool changed = font != f;
- font = f;
-
- QQuickControlPrivate::updateFontRecur(q->QQuickWindow::contentItem(), f);
-
- const QList<QQuickPopup *> popups = q->findChildren<QQuickPopup *>();
- for (QQuickPopup *popup : popups)
- QQuickControlPrivate::get(static_cast<QQuickControl *>(popup->popupItem()))->inheritFont(f);
-
- if (changed)
- emit q->fontChanged();
-}
-
-void QQuickApplicationWindowPrivate::resolveFont()
-{
- QFont resolvedFont = font.resolve(QQuickTheme::font(QQuickTheme::System));
- setFont_helper(resolvedFont);
-}
-
-static QQuickItem *findActiveFocusControl(QQuickWindow *window)
-{
- QQuickItem *item = window->activeFocusItem();
- while (item) {
- if (qobject_cast<QQuickControl *>(item) || qobject_cast<QQuickTextField *>(item) || qobject_cast<QQuickTextArea *>(item))
- return item;
- item = item->parentItem();
- }
- return item;
-}
-
-void QQuickApplicationWindowPrivate::_q_updateActiveFocus()
-{
- Q_Q(QQuickApplicationWindow);
- setActiveFocusControl(findActiveFocusControl(q));
-}
-
-void QQuickApplicationWindowPrivate::setActiveFocusControl(QQuickItem *control)
-{
- Q_Q(QQuickApplicationWindow);
- if (activeFocusControl != control) {
- activeFocusControl = control;
- emit q->activeFocusControlChanged();
- }
-}
-
-void QQuickApplicationWindowPrivate::contentData_append(QQmlListProperty<QObject> *prop, QObject *obj)
-{
- QQuickItemPrivate::data_append(prop, obj);
-
- // associate "top-level" popups with the window as soon as they are added to the default property
- if (QQuickPopup *popup = qobject_cast<QQuickPopup *>(obj))
- QQuickPopupPrivate::get(popup)->setWindow(static_cast<QQuickApplicationWindow *>(prop->data));
-}
-
-static inline QString backgroundName() { return QStringLiteral("background"); }
-
-void QQuickApplicationWindowPrivate::cancelBackground()
-{
- Q_Q(QQuickApplicationWindow);
- quickCancelDeferred(q, backgroundName());
-}
-
-void QQuickApplicationWindowPrivate::executeBackground(bool complete)
-{
- Q_Q(QQuickApplicationWindow);
- if (background.wasExecuted())
- return;
-
- if (!background || complete)
- quickBeginDeferred(q, backgroundName(), background);
- if (complete)
- quickCompleteDeferred(q, backgroundName(), background);
-}
-
-QQuickApplicationWindow::QQuickApplicationWindow(QWindow *parent)
- : QQuickWindowQmlImpl(*(new QQuickApplicationWindowPrivate), parent)
-{
- connect(this, SIGNAL(activeFocusItemChanged()), this, SLOT(_q_updateActiveFocus()));
-}
-
-QQuickApplicationWindow::~QQuickApplicationWindow()
-{
- Q_D(QQuickApplicationWindow);
- d->setActiveFocusControl(nullptr);
- disconnect(this, SIGNAL(activeFocusItemChanged()), this, SLOT(_q_updateActiveFocus()));
- if (d->menuBar)
- QQuickItemPrivate::get(d->menuBar)->removeItemChangeListener(d, ItemChanges);
- if (d->header)
- QQuickItemPrivate::get(d->header)->removeItemChangeListener(d, ItemChanges);
- if (d->footer)
- QQuickItemPrivate::get(d->footer)->removeItemChangeListener(d, ItemChanges);
-}
-
-QQuickApplicationWindowAttached *QQuickApplicationWindow::qmlAttachedProperties(QObject *object)
-{
- return new QQuickApplicationWindowAttached(object);
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::ApplicationWindow::background
-
- This property holds the background item.
-
- The background item is stacked under the \l {contentItem}{content item},
- but above the \l {Window::color}{background color} of the window.
-
- The background item is useful for images and gradients, for example,
- but the \l {Window::}{color} property is preferable for solid colors,
- as it doesn't need to create an item.
-
- \note If the background item has no explicit size specified, it automatically
- follows the control's size. In most cases, there is no need to specify
- width or height for a background item.
-
- \sa {Customizing ApplicationWindow}, contentItem, header, footer
-*/
-QQuickItem *QQuickApplicationWindow::background() const
-{
- QQuickApplicationWindowPrivate *d = const_cast<QQuickApplicationWindowPrivate *>(d_func());
- if (!d->background)
- d->executeBackground();
- return d->background;
-}
-
-void QQuickApplicationWindow::setBackground(QQuickItem *background)
-{
- Q_D(QQuickApplicationWindow);
- if (d->background == background)
- return;
-
- if (!d->background.isExecuting())
- d->cancelBackground();
-
- QQuickControlPrivate::hideOldItem(d->background);
- d->background = background;
- if (background) {
- background->setParentItem(QQuickWindow::contentItem());
- if (qFuzzyIsNull(background->z()))
- background->setZ(-1);
- if (isComponentComplete())
- d->relayout();
- }
- if (!d->background.isExecuting())
- emit backgroundChanged();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::ApplicationWindow::header
-
- This property holds the window header item. The header item is positioned at the
- top of the window, below the menu bar, and resized to the width of the window.
- The default value is \c null.
-
- \code
- ApplicationWindow {
- header: TabBar {
- // ...
- }
- }
- \endcode
-
- \note Assigning a ToolBar, TabBar, or DialogButtonBox as a window header
- automatically sets the respective \l ToolBar::position, \l TabBar::position,
- or \l DialogButtonBox::position property to \c Header.
-
- \sa menuBar, footer, Page::header
-*/
-QQuickItem *QQuickApplicationWindow::header() const
-{
- Q_D(const QQuickApplicationWindow);
- return d->header;
-}
-
-void QQuickApplicationWindow::setHeader(QQuickItem *header)
-{
- Q_D(QQuickApplicationWindow);
- if (d->header == header)
- return;
-
- if (d->header) {
- QQuickItemPrivate::get(d->header)->removeItemChangeListener(d, ItemChanges);
- d->header->setParentItem(nullptr);
- }
- d->header = header;
- if (header) {
- header->setParentItem(contentItem());
- QQuickItemPrivate *p = QQuickItemPrivate::get(header);
- p->addItemChangeListener(d, ItemChanges);
- if (qFuzzyIsNull(header->z()))
- header->setZ(1);
- if (QQuickToolBar *toolBar = qobject_cast<QQuickToolBar *>(header))
- toolBar->setPosition(QQuickToolBar::Header);
- else if (QQuickTabBar *tabBar = qobject_cast<QQuickTabBar *>(header))
- tabBar->setPosition(QQuickTabBar::Header);
- else if (QQuickDialogButtonBox *buttonBox = qobject_cast<QQuickDialogButtonBox *>(header))
- buttonBox->setPosition(QQuickDialogButtonBox::Header);
- }
- if (isComponentComplete())
- d->relayout();
- emit headerChanged();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::ApplicationWindow::footer
-
- This property holds the window footer item. The footer item is positioned to
- the bottom, and resized to the width of the window. The default value is \c null.
-
- \code
- ApplicationWindow {
- footer: ToolBar {
- // ...
- }
- }
- \endcode
-
- \note Assigning a ToolBar, TabBar, or DialogButtonBox as a window footer
- automatically sets the respective \l ToolBar::position, \l TabBar::position,
- or \l DialogButtonBox::position property to \c Footer.
-
- \sa menuBar, header, Page::footer
-*/
-QQuickItem *QQuickApplicationWindow::footer() const
-{
- Q_D(const QQuickApplicationWindow);
- return d->footer;
-}
-
-void QQuickApplicationWindow::setFooter(QQuickItem *footer)
-{
- Q_D(QQuickApplicationWindow);
- if (d->footer == footer)
- return;
-
- if (d->footer) {
- QQuickItemPrivate::get(d->footer)->removeItemChangeListener(d, ItemChanges);
- d->footer->setParentItem(nullptr);
- }
- d->footer = footer;
- if (footer) {
- footer->setParentItem(contentItem());
- QQuickItemPrivate *p = QQuickItemPrivate::get(footer);
- p->addItemChangeListener(d, ItemChanges);
- if (qFuzzyIsNull(footer->z()))
- footer->setZ(1);
- if (QQuickToolBar *toolBar = qobject_cast<QQuickToolBar *>(footer))
- toolBar->setPosition(QQuickToolBar::Footer);
- else if (QQuickTabBar *tabBar = qobject_cast<QQuickTabBar *>(footer))
- tabBar->setPosition(QQuickTabBar::Footer);
- else if (QQuickDialogButtonBox *buttonBox = qobject_cast<QQuickDialogButtonBox *>(footer))
- buttonBox->setPosition(QQuickDialogButtonBox::Footer);
- }
- if (isComponentComplete())
- d->relayout();
- emit footerChanged();
-}
-
-/*!
- \qmlproperty list<Object> QtQuick.Controls::ApplicationWindow::contentData
- \qmldefault
-
- This default property holds the list of all objects declared as children of
- the window.
-
- The data property allows you to freely mix visual children, resources and
- other windows in an ApplicationWindow.
-
- If you assign an Item to the contentData list, it becomes a child of the
- window's contentItem, so that it appears inside the window. The item's
- parent will be the window's \l contentItem.
-
- It should not generally be necessary to refer to the contentData property,
- as it is the default property for ApplicationWindow and thus all child
- items are automatically assigned to this property.
-
- \sa contentItem
-*/
-QQmlListProperty<QObject> QQuickApplicationWindowPrivate::contentData()
-{
- Q_Q(QQuickApplicationWindow);
- return QQmlListProperty<QObject>(q->contentItem(), q,
- QQuickApplicationWindowPrivate::contentData_append,
- QQuickItemPrivate::data_count,
- QQuickItemPrivate::data_at,
- QQuickItemPrivate::data_clear);
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::ApplicationWindow::contentItem
- \readonly
-
- This property holds the window content item.
-
- The content item is stacked above the \l background item, and under the
- \l menuBar, \l header, and \l footer items.
-
- \sa background, menuBar, header, footer
-*/
-QQuickItem *QQuickApplicationWindow::contentItem() const
-{
- QQuickApplicationWindowPrivate *d = const_cast<QQuickApplicationWindowPrivate *>(d_func());
- if (!d->appWindowContentItem) {
- d->appWindowContentItem = new QQuickContentItem(this, QQuickWindow::contentItem());
- d->appWindowContentItem->setFlag(QQuickItem::ItemIsFocusScope);
- d->appWindowContentItem->setFocus(true);
- d->relayout();
- }
- return d->appWindowContentItem;
-}
-
-/*!
- \qmlproperty Control QtQuick.Controls::ApplicationWindow::activeFocusControl
- \readonly
-
- This property holds the control that currently has active focus, or \c null if there is
- no control with active focus.
-
- The difference between \l Window::activeFocusItem and ApplicationWindow::activeFocusControl
- is that the former may point to a building block of a control, whereas the latter points
- to the enclosing control. For example, when SpinBox has focus, activeFocusItem points to
- the editor and activeFocusControl to the SpinBox itself.
-
- \sa Window::activeFocusItem
-*/
-QQuickItem *QQuickApplicationWindow::activeFocusControl() const
-{
- Q_D(const QQuickApplicationWindow);
- return d->activeFocusControl;
-}
-
-/*!
- \qmlproperty font QtQuick.Controls::ApplicationWindow::font
-
- This property holds the font currently set for the window.
-
- The default font depends on the system environment. QGuiApplication maintains a system/theme
- font which serves as a default for all application windows. You can also set the default font
- for windows by passing a custom font to QGuiApplication::setFont(), before loading any QML.
- Finally, the font is matched against Qt's font database to find the best match.
-
- ApplicationWindow propagates explicit font properties to child controls. If you change a specific
- property on the window's font, that property propagates to all child controls in the window,
- overriding any system defaults for that property.
-
- \sa Control::font
-*/
-QFont QQuickApplicationWindow::font() const
-{
- Q_D(const QQuickApplicationWindow);
- return d->font;
-}
-
-void QQuickApplicationWindow::setFont(const QFont &font)
-{
- Q_D(QQuickApplicationWindow);
- if (d->font.resolveMask() == font.resolveMask() && d->font == font)
- return;
-
- QFont resolvedFont = font.resolve(QQuickTheme::font(QQuickTheme::System));
- d->setFont_helper(resolvedFont);
-}
-
-void QQuickApplicationWindow::resetFont()
-{
- setFont(QFont());
-}
-
-/*!
- \qmlproperty Locale QtQuick.Controls::ApplicationWindow::locale
-
- This property holds the locale of the window.
-
- The default locale depends on the system environment. You can set the
- default locale by calling QLocale::setDefault(), before loading any QML.
-
- ApplicationWindow propagates the locale to child controls. If you change
- the window's locale, that locale propagates to all child controls in the
- window, overriding the system default locale.
-
- \sa Control::locale
-*/
-QLocale QQuickApplicationWindow::locale() const
-{
- Q_D(const QQuickApplicationWindow);
- return d->locale;
-}
-
-void QQuickApplicationWindow::setLocale(const QLocale &locale)
-{
- Q_D(QQuickApplicationWindow);
- if (d->locale == locale)
- return;
-
- d->locale = locale;
- QQuickControlPrivate::updateLocaleRecur(QQuickWindow::contentItem(), locale);
-
- // TODO: internal QQuickPopupManager that provides reliable access to all QQuickPopup instances
- const QList<QQuickPopup *> popups = QQuickWindow::contentItem()->findChildren<QQuickPopup *>();
- for (QQuickPopup *popup : popups)
- QQuickControlPrivate::get(static_cast<QQuickControl *>(popup->popupItem()))->updateLocale(locale, false); // explicit=false
-
- emit localeChanged();
-}
-
-void QQuickApplicationWindow::resetLocale()
-{
- setLocale(QLocale());
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty Item QtQuick.Controls::ApplicationWindow::menuBar
-
- This property holds the window menu bar. The menu bar is positioned at the
- top of the window, above the header, and resized to the width of the window.
- The default value is \c null.
-
- \code
- ApplicationWindow {
- menuBar: MenuBar {
- // ...
- }
- }
- \endcode
-
- \sa header, footer, MenuBar
-*/
-QQuickItem *QQuickApplicationWindow::menuBar() const
-{
- Q_D(const QQuickApplicationWindow);
- return d->menuBar;
-}
-
-void QQuickApplicationWindow::setMenuBar(QQuickItem *menuBar)
-{
- Q_D(QQuickApplicationWindow);
- if (d->menuBar == menuBar)
- return;
-
- if (d->menuBar) {
- QQuickItemPrivate::get(d->menuBar)->removeItemChangeListener(d, ItemChanges);
- d->menuBar->setParentItem(nullptr);
- }
- d->menuBar = menuBar;
- if (menuBar) {
- menuBar->setParentItem(contentItem());
- QQuickItemPrivate *p = QQuickItemPrivate::get(menuBar);
- p->addItemChangeListener(d, ItemChanges);
- if (qFuzzyIsNull(menuBar->z()))
- menuBar->setZ(2);
- }
- if (isComponentComplete())
- d->relayout();
- emit menuBarChanged();
-}
-
-bool QQuickApplicationWindow::isComponentComplete() const
-{
- Q_D(const QQuickApplicationWindow);
- return d->complete;
-}
-
-void QQuickApplicationWindow::classBegin()
-{
- Q_D(QQuickApplicationWindow);
- d->complete = false;
- QQuickWindowQmlImpl::classBegin();
- d->resolveFont();
-}
-
-void QQuickApplicationWindow::componentComplete()
-{
- Q_D(QQuickApplicationWindow);
- d->complete = true;
- d->executeBackground(true);
- QQuickWindowQmlImpl::componentComplete();
- d->relayout();
-}
-
-void QQuickApplicationWindow::resizeEvent(QResizeEvent *event)
-{
- Q_D(QQuickApplicationWindow);
- QQuickWindowQmlImpl::resizeEvent(event);
- d->relayout();
-}
-
-class QQuickApplicationWindowAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickApplicationWindowAttached)
-
-public:
- void windowChange(QQuickWindow *wnd);
- void activeFocusChange();
-
- QQuickWindow *window = nullptr;
- QQuickItem *activeFocusControl = nullptr;
-};
-
-void QQuickApplicationWindowAttachedPrivate::windowChange(QQuickWindow *wnd)
-{
- Q_Q(QQuickApplicationWindowAttached);
- if (window == wnd)
- return;
-
- QQuickApplicationWindow *oldWindow = qobject_cast<QQuickApplicationWindow *>(window);
- if (oldWindow && !QQuickApplicationWindowPrivate::get(oldWindow))
- oldWindow = nullptr; // being deleted (QTBUG-52731)
-
- if (oldWindow) {
- disconnect(oldWindow, &QQuickApplicationWindow::activeFocusControlChanged,
- this, &QQuickApplicationWindowAttachedPrivate::activeFocusChange);
- QObject::disconnect(oldWindow, &QQuickApplicationWindow::menuBarChanged,
- q, &QQuickApplicationWindowAttached::menuBarChanged);
- QObject::disconnect(oldWindow, &QQuickApplicationWindow::headerChanged,
- q, &QQuickApplicationWindowAttached::headerChanged);
- QObject::disconnect(oldWindow, &QQuickApplicationWindow::footerChanged,
- q, &QQuickApplicationWindowAttached::footerChanged);
- } else if (window) {
- disconnect(window, &QQuickWindow::activeFocusItemChanged,
- this, &QQuickApplicationWindowAttachedPrivate::activeFocusChange);
- }
-
- QQuickApplicationWindow *newWindow = qobject_cast<QQuickApplicationWindow *>(wnd);
- if (newWindow) {
- connect(newWindow, &QQuickApplicationWindow::activeFocusControlChanged,
- this, &QQuickApplicationWindowAttachedPrivate::activeFocusChange);
- QObject::connect(newWindow, &QQuickApplicationWindow::menuBarChanged,
- q, &QQuickApplicationWindowAttached::menuBarChanged);
- QObject::connect(newWindow, &QQuickApplicationWindow::headerChanged,
- q, &QQuickApplicationWindowAttached::headerChanged);
- QObject::connect(newWindow, &QQuickApplicationWindow::footerChanged,
- q, &QQuickApplicationWindowAttached::footerChanged);
- } else if (wnd) {
- connect(wnd, &QQuickWindow::activeFocusItemChanged,
- this, &QQuickApplicationWindowAttachedPrivate::activeFocusChange);
- }
-
- window = wnd;
- emit q->windowChanged();
- emit q->contentItemChanged();
-
- activeFocusChange();
- if ((oldWindow && oldWindow->menuBar()) || (newWindow && newWindow->menuBar()))
- emit q->menuBarChanged();
- if ((oldWindow && oldWindow->header()) || (newWindow && newWindow->header()))
- emit q->headerChanged();
- if ((oldWindow && oldWindow->footer()) || (newWindow && newWindow->footer()))
- emit q->footerChanged();
-}
-
-void QQuickApplicationWindowAttachedPrivate::activeFocusChange()
-{
- Q_Q(QQuickApplicationWindowAttached);
- QQuickItem *control = nullptr;
- if (QQuickApplicationWindow *appWindow = qobject_cast<QQuickApplicationWindow *>(window))
- control = appWindow->activeFocusControl();
- else if (window)
- control = findActiveFocusControl(window);
- if (activeFocusControl == control)
- return;
-
- activeFocusControl = control;
- emit q->activeFocusControlChanged();
-}
-
-QQuickApplicationWindowAttached::QQuickApplicationWindowAttached(QObject *parent)
- : QObject(*(new QQuickApplicationWindowAttachedPrivate), parent)
-{
- Q_D(QQuickApplicationWindowAttached);
- if (QQuickItem *item = qobject_cast<QQuickItem *>(parent)) {
- d->windowChange(item->window());
- QObjectPrivate::connect(item, &QQuickItem::windowChanged, d, &QQuickApplicationWindowAttachedPrivate::windowChange);
- if (!d->window) {
- QQuickItem *p = item;
- while (p) {
- if (QQuickPopup *popup = qobject_cast<QQuickPopup *>(p->parent())) {
- d->windowChange(popup->window());
- QObjectPrivate::connect(popup, &QQuickPopup::windowChanged, d, &QQuickApplicationWindowAttachedPrivate::windowChange);
- }
- p = p->parentItem();
- }
- }
- } else if (QQuickPopup *popup = qobject_cast<QQuickPopup *>(parent)) {
- d->windowChange(popup->window());
- QObjectPrivate::connect(popup, &QQuickPopup::windowChanged, d, &QQuickApplicationWindowAttachedPrivate::windowChange);
- }
-}
-
-/*!
- \qmlattachedproperty ApplicationWindow QtQuick.Controls::ApplicationWindow::window
- \readonly
-
- This attached property holds the application window. The property can be attached
- to any item. The value is \c null if the item is not in an ApplicationWindow.
-
- \sa {Attached ApplicationWindow Properties}
-*/
-QQuickApplicationWindow *QQuickApplicationWindowAttached::window() const
-{
- Q_D(const QQuickApplicationWindowAttached);
- return qobject_cast<QQuickApplicationWindow *>(d->window);
-}
-
-/*!
- \qmlattachedproperty Item QtQuick.Controls::ApplicationWindow::contentItem
- \readonly
-
- This attached property holds the window content item. The property can be attached
- to any item. The value is \c null if the item is not in an ApplicationWindow.
-
- \sa {Attached ApplicationWindow Properties}
-*/
-QQuickItem *QQuickApplicationWindowAttached::contentItem() const
-{
- Q_D(const QQuickApplicationWindowAttached);
- if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(d->window))
- return window->contentItem();
- return nullptr;
-}
-
-/*!
- \qmlattachedproperty Control QtQuick.Controls::ApplicationWindow::activeFocusControl
- \readonly
-
- This attached property holds the control that currently has active focus, or \c null
- if there is no control with active focus. The property can be attached to any item.
- The value is \c null if the item is not in a window, or the window has no active focus.
-
- \sa Window::activeFocusItem, {Attached ApplicationWindow Properties}
-*/
-QQuickItem *QQuickApplicationWindowAttached::activeFocusControl() const
-{
- Q_D(const QQuickApplicationWindowAttached);
- return d->activeFocusControl;
-}
-
-/*!
- \qmlattachedproperty Item QtQuick.Controls::ApplicationWindow::header
- \readonly
-
- This attached property holds the window header item. The property can be attached
- to any item. The value is \c null if the item is not in an ApplicationWindow, or
- the window has no header item.
-
- \sa {Attached ApplicationWindow Properties}
-*/
-QQuickItem *QQuickApplicationWindowAttached::header() const
-{
- Q_D(const QQuickApplicationWindowAttached);
- if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(d->window))
- return window->header();
- return nullptr;
-}
-
-/*!
- \qmlattachedproperty Item QtQuick.Controls::ApplicationWindow::footer
- \readonly
-
- This attached property holds the window footer item. The property can be attached
- to any item. The value is \c null if the item is not in an ApplicationWindow, or
- the window has no footer item.
-
- \sa {Attached ApplicationWindow Properties}
-*/
-QQuickItem *QQuickApplicationWindowAttached::footer() const
-{
- Q_D(const QQuickApplicationWindowAttached);
- if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(d->window))
- return window->footer();
- return nullptr;
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlattachedproperty Item QtQuick.Controls::ApplicationWindow::menuBar
- \readonly
-
- This attached property holds the window menu bar. The property can be attached
- to any item. The value is \c null if the item is not in an ApplicationWindow, or
- the window has no menu bar.
-
- \sa {Attached ApplicationWindow Properties}
-*/
-QQuickItem *QQuickApplicationWindowAttached::menuBar() const
-{
- Q_D(const QQuickApplicationWindowAttached);
- if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(d->window))
- return window->menuBar();
- return nullptr;
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickapplicationwindow_p.cpp"
diff --git a/src/quicktemplates2/qquickapplicationwindow_p.h b/src/quicktemplates2/qquickapplicationwindow_p.h
deleted file mode 100644
index 4e4f50ef..00000000
--- a/src/quicktemplates2/qquickapplicationwindow_p.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKAPPLICATIONWINDOW_P_H
-#define QQUICKAPPLICATIONWINDOW_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquickwindowmodule_p.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-#include <QtGui/qfont.h>
-#include <QtGui/qpalette.h>
-#include <QtCore/qlocale.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickApplicationWindowPrivate;
-class QQuickApplicationWindowAttached;
-class QQuickApplicationWindowAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickApplicationWindow : public QQuickWindowQmlImpl
-{
- Q_OBJECT
- Q_PROPERTY(QQuickItem *background READ background WRITE setBackground NOTIFY backgroundChanged FINAL)
- Q_PROPERTY(QQuickItem *contentItem READ contentItem CONSTANT FINAL)
- Q_PRIVATE_PROPERTY(QQuickApplicationWindow::d_func(), QQmlListProperty<QObject> contentData READ contentData FINAL)
- Q_PROPERTY(QQuickItem *activeFocusControl READ activeFocusControl NOTIFY activeFocusControlChanged FINAL)
- Q_PROPERTY(QQuickItem *header READ header WRITE setHeader NOTIFY headerChanged FINAL)
- Q_PROPERTY(QQuickItem *footer READ footer WRITE setFooter NOTIFY footerChanged FINAL)
- Q_PROPERTY(QFont font READ font WRITE setFont RESET resetFont NOTIFY fontChanged FINAL)
- Q_PROPERTY(QLocale locale READ locale WRITE setLocale RESET resetLocale NOTIFY localeChanged FINAL)
- // 2.3 (Qt 5.10)
- Q_PROPERTY(QQuickItem *menuBar READ menuBar WRITE setMenuBar NOTIFY menuBarChanged FINAL REVISION(2, 3))
- // 2.14 (Qt 6)
- Q_PRIVATE_PROPERTY(QQuickApplicationWindow::d_func(), QQuickPalette *palette READ palette WRITE setPalette RESET resetPalette NOTIFY paletteChanged REVISION(2, 3))
- Q_CLASSINFO("DeferredPropertyNames", "background")
- Q_CLASSINFO("DefaultProperty", "contentData")
- QML_NAMED_ELEMENT(ApplicationWindow)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickApplicationWindow(QWindow *parent = nullptr);
- ~QQuickApplicationWindow();
-
- static QQuickApplicationWindowAttached *qmlAttachedProperties(QObject *object);
-
- QQuickItem *background() const;
- void setBackground(QQuickItem *background);
-
- QQuickItem *contentItem() const;
-
- QQuickItem *activeFocusControl() const;
-
- QQuickItem *header() const;
- void setHeader(QQuickItem *header);
-
- QQuickItem *footer() const;
- void setFooter(QQuickItem *footer);
-
- QFont font() const;
- void setFont(const QFont &font);
- void resetFont();
-
- QLocale locale() const;
- void setLocale(const QLocale &locale);
- void resetLocale();
-
- QQuickItem *menuBar() const;
- void setMenuBar(QQuickItem *menuBar);
-
-Q_SIGNALS:
- void backgroundChanged();
- void activeFocusControlChanged();
- void headerChanged();
- void footerChanged();
- void fontChanged();
- void localeChanged();
- Q_REVISION(2, 3) void menuBarChanged();
-
-protected:
- bool isComponentComplete() const;
- void classBegin() override;
- void componentComplete() override;
- void resizeEvent(QResizeEvent *event) override;
-
-private:
- Q_DISABLE_COPY(QQuickApplicationWindow)
- Q_DECLARE_PRIVATE(QQuickApplicationWindow)
- Q_PRIVATE_SLOT(d_func(), void _q_updateActiveFocus())
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickApplicationWindowAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickApplicationWindow *window READ window NOTIFY windowChanged FINAL)
- Q_PROPERTY(QQuickItem *contentItem READ contentItem NOTIFY contentItemChanged FINAL)
- Q_PROPERTY(QQuickItem *activeFocusControl READ activeFocusControl NOTIFY activeFocusControlChanged FINAL)
- Q_PROPERTY(QQuickItem *header READ header NOTIFY headerChanged FINAL)
- Q_PROPERTY(QQuickItem *footer READ footer NOTIFY footerChanged FINAL)
- Q_PROPERTY(QQuickItem *menuBar READ menuBar NOTIFY menuBarChanged FINAL) // REVISION(2, 3)
-
-public:
- explicit QQuickApplicationWindowAttached(QObject *parent = nullptr);
-
- QQuickApplicationWindow *window() const;
- QQuickItem *contentItem() const;
- QQuickItem *activeFocusControl() const;
- QQuickItem *header() const;
- QQuickItem *footer() const;
- QQuickItem *menuBar() const;
-
-Q_SIGNALS:
- void windowChanged();
- void contentItemChanged();
- void activeFocusControlChanged();
- void headerChanged();
- void footerChanged();
- // 2.3 (Qt 5.10)
- /*Q_REVISION(2, 3)*/ void menuBarChanged();
-
-private:
- Q_DISABLE_COPY(QQuickApplicationWindowAttached)
- Q_DECLARE_PRIVATE(QQuickApplicationWindowAttached)
-};
-
-struct QWindowForeign2
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QWindow)
- QML_ADDED_IN_VERSION(2, 0)
-};
-
-struct QQuickWindowForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickWindow)
- QML_ADDED_IN_VERSION(2, 0)
-};
-
-struct QQuickWindowQmlImplForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickWindowQmlImpl)
- QML_ADDED_IN_VERSION(2, 2)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickApplicationWindow)
-QML_DECLARE_TYPEINFO(QQuickApplicationWindow, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKAPPLICATIONWINDOW_P_H
diff --git a/src/quicktemplates2/qquickbusyindicator.cpp b/src/quicktemplates2/qquickbusyindicator.cpp
deleted file mode 100644
index cfc24b93..00000000
--- a/src/quicktemplates2/qquickbusyindicator.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickbusyindicator_p.h"
-#include "qquickcontrol_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype BusyIndicator
- \inherits Control
-//! \instantiates QQuickBusyIndicator
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-indicators
- \brief Indicates background activity, for example, while content is being loaded.
-
- \image qtquickcontrols2-busyindicator.gif
-
- The busy indicator should be used to indicate activity while content is
- being loaded or the UI is blocked waiting for a resource to become available.
-
- The following snippet shows how to use the BusyIndicator:
-
- \qml
- BusyIndicator {
- running: image.status === Image.Loading
- }
- \endqml
-
- BusyIndicator is similar to an indeterminate \l ProgressBar. Both can be
- used to indicate background activity. The main difference is visual, and
- that ProgressBar can also present a concrete amount of progress (when it
- can be determined). Due to the visual difference, busy indicators and
- indeterminate progress bars fit different places in user interfaces.
- Typical places for a busy indicator:
- \list
- \li in the corner of a \l ToolBar
- \li as an overlay on top of a \l Page
- \li on the side of an \l ItemDelegate
- \endlist
-
- \sa {Customizing BusyIndicator}, {Indicator Controls}, ProgressBar
-*/
-
-class QQuickBusyIndicatorPrivate : public QQuickControlPrivate
-{
-public:
- bool running = true;
-};
-
-QQuickBusyIndicator::QQuickBusyIndicator(QQuickItem *parent)
- : QQuickControl(*(new QQuickBusyIndicatorPrivate), parent)
-{
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::BusyIndicator::running
-
- This property holds whether the busy indicator is currently indicating
- activity.
-
- \note The indicator is only visible when this property is set to \c true.
-
- The default value is \c true.
-*/
-bool QQuickBusyIndicator::isRunning() const
-{
- Q_D(const QQuickBusyIndicator);
- return d->running;
-}
-
-void QQuickBusyIndicator::setRunning(bool running)
-{
- Q_D(QQuickBusyIndicator);
- if (d->running == running)
- return;
-
- d->running = running;
- emit runningChanged();
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickBusyIndicator::touchEvent(QTouchEvent *event)
-{
- event->ignore(); // QTBUG-61785
-}
-#endif
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickBusyIndicator::accessibleRole() const
-{
- return QAccessible::Indicator;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickbusyindicator_p.h b/src/quicktemplates2/qquickbusyindicator_p.h
deleted file mode 100644
index bdb2eb24..00000000
--- a/src/quicktemplates2/qquickbusyindicator_p.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKBUSYINDICATOR_P_H
-#define QQUICKBUSYINDICATOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickBusyIndicatorPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickBusyIndicator : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged FINAL)
- QML_NAMED_ELEMENT(BusyIndicator)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickBusyIndicator(QQuickItem *parent = nullptr);
-
- bool isRunning() const;
- void setRunning(bool running);
-
-Q_SIGNALS:
- void runningChanged();
-
-protected:
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
-#endif
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickBusyIndicator)
- Q_DECLARE_PRIVATE(QQuickBusyIndicator)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickBusyIndicator)
-
-#endif // QQUICKBUSYINDICATOR_P_H
diff --git a/src/quicktemplates2/qquickbutton.cpp b/src/quicktemplates2/qquickbutton.cpp
deleted file mode 100644
index 5e8e6221..00000000
--- a/src/quicktemplates2/qquickbutton.cpp
+++ /dev/null
@@ -1,162 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickbutton_p.h"
-#include "qquickbutton_p_p.h"
-
-#include <QtGui/qpa/qplatformtheme.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Button
- \inherits AbstractButton
-//! \instantiates QQuickButton
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-buttons
- \brief Push-button that can be clicked to perform a command or answer a question.
-
- \image qtquickcontrols2-button.gif
-
- Button presents a push-button control that can be pushed or clicked by
- the user. Buttons are normally used to perform an action, or to answer
- a question. Typical buttons are \e OK, \e Apply, \e Cancel, \e Close,
- \e Yes, \e No, and \e Help.
-
- Button inherits its API from AbstractButton. For instance, you can set
- \l {AbstractButton::text}{text}, display an \l {Icons in Qt Quick Controls}{icon},
- and react to \l {AbstractButton::clicked}{clicks} using the AbstractButton API.
-
- A button emits the signal \l {AbstractButton::}{clicked()} when it is activated by the user.
- Connect to this signal to perform the button's action. Buttons also
- provide the signals \l {AbstractButton::}{canceled()}, \l {AbstractButton::}{doubleClicked()}, \l {AbstractButton::}{pressed()},
- \l {AbstractButton::}{released()} and \l {AbstractButton::}{pressAndHold()} for long presses.
-
- See the snippet below on how to connect to the button's signals.
-
- \code
- RowLayout {
- Button {
- text: "Ok"
- onClicked: model.submit()
- }
- Button {
- text: "Cancel"
- onClicked: model.revert()
- }
- }
- \endcode
-
- \sa {Customizing Button}, {Button Controls}
-*/
-
-QQuickButton::QQuickButton(QQuickItem *parent)
- : QQuickAbstractButton(*(new QQuickButtonPrivate), parent)
-{
-}
-
-QQuickButton::QQuickButton(QQuickButtonPrivate &dd, QQuickItem *parent)
- : QQuickAbstractButton(dd, parent)
-{
-}
-
-QFont QQuickButton::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::Button);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Button::highlighted
-
- This property holds whether the button is highlighted.
-
- \image qtquickcontrols2-button-highlighted.gif
-
- A button can be highlighted in order to draw the user's attention towards
- it. It has no effect on keyboard interaction.
-
- The default value is \c false.
-*/
-bool QQuickButton::isHighlighted() const
-{
- Q_D(const QQuickButton);
- return d->highlighted;
-}
-
-void QQuickButton::setHighlighted(bool highlighted)
-{
- Q_D(QQuickButton);
- if (highlighted == d->highlighted)
- return;
-
- d->highlighted = highlighted;
- emit highlightedChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Button::flat
-
- This property holds whether the button is flat.
-
- \image qtquickcontrols2-button-flat.gif
-
- A flat button typically does not draw a background unless it is pressed or checked.
-
- The default value is \c false.
-*/
-bool QQuickButton::isFlat() const
-{
- Q_D(const QQuickButton);
- return d->flat;
-}
-
-void QQuickButton::setFlat(bool flat)
-{
- Q_D(QQuickButton);
- if (flat == d->flat)
- return;
-
- d->flat = flat;
- emit flatChanged();
-}
-
-QPalette QQuickButtonPrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::Button);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickbutton_p.h b/src/quicktemplates2/qquickbutton_p.h
deleted file mode 100644
index bfac5663..00000000
--- a/src/quicktemplates2/qquickbutton_p.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKBUTTON_P_H
-#define QQUICKBUTTON_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickButtonPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickButton : public QQuickAbstractButton
-{
- Q_OBJECT
- Q_PROPERTY(bool highlighted READ isHighlighted WRITE setHighlighted NOTIFY highlightedChanged FINAL)
- Q_PROPERTY(bool flat READ isFlat WRITE setFlat NOTIFY flatChanged FINAL)
- QML_NAMED_ELEMENT(Button)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickButton(QQuickItem *parent = nullptr);
-
- bool isHighlighted() const;
- void setHighlighted(bool highlighted);
-
- bool isFlat() const;
- void setFlat(bool flat);
-
-Q_SIGNALS:
- void highlightedChanged();
- void flatChanged();
-
-protected:
- QQuickButton(QQuickButtonPrivate &dd, QQuickItem *parent);
-
- QFont defaultFont() const override;
-
-private:
- Q_DISABLE_COPY(QQuickButton)
- Q_DECLARE_PRIVATE(QQuickButton)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickButton)
-
-#endif // QQUICKBUTTON_P_H
diff --git a/src/quicktemplates2/qquickbutton_p_p.h b/src/quicktemplates2/qquickbutton_p_p.h
deleted file mode 100644
index e83e3209..00000000
--- a/src/quicktemplates2/qquickbutton_p_p.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKBUTTON_P_P_H
-#define QQUICKBUTTON_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickButtonPrivate : public QQuickAbstractButtonPrivate
-{
- Q_DECLARE_PUBLIC(QQuickButton)
-
-public:
- QPalette defaultPalette() const override;
-
- bool flat = false;
- bool highlighted = false;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKBUTTON_P_P_H
diff --git a/src/quicktemplates2/qquickbuttongroup.cpp b/src/quicktemplates2/qquickbuttongroup.cpp
deleted file mode 100644
index f5e46cfc..00000000
--- a/src/quicktemplates2/qquickbuttongroup.cpp
+++ /dev/null
@@ -1,547 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickbuttongroup_p.h"
-
-#include <QtCore/private/qobject_p.h>
-#include <QtCore/qmetaobject.h>
-#include <QtCore/qvariant.h>
-#include <QtQml/qqmlinfo.h>
-
-#include "qquickabstractbutton_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ButtonGroup
- \inherits QtObject
-//! \instantiates QQuickButtonGroup
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup utilities
- \brief Mutually-exclusive group of checkable buttons.
-
- ButtonGroup is a non-visual, mutually exclusive group of buttons.
- It is used with controls such as RadioButton, where only one of the options
- can be selected at a time.
-
- The most straight-forward way to use ButtonGroup is to assign
- a list of buttons. For example, the list of children of a
- \l{Item Positioners}{positioner} or a \l{Qt Quick Layouts}{layout}
- that manages a group of mutually exclusive buttons.
-
- \code
- ButtonGroup {
- buttons: column.children
- }
-
- Column {
- id: column
-
- RadioButton {
- checked: true
- text: qsTr("DAB")
- }
-
- RadioButton {
- text: qsTr("FM")
- }
-
- RadioButton {
- text: qsTr("AM")
- }
- }
- \endcode
-
- Mutually exclusive buttons do not always share the same parent item,
- or the parent layout may sometimes contain items that should not be
- included in the button group. Such cases are best handled using
- the \l group attached property.
-
- \code
- ButtonGroup { id: radioGroup }
-
- Column {
- Label {
- text: qsTr("Radio:")
- }
-
- RadioButton {
- checked: true
- text: qsTr("DAB")
- ButtonGroup.group: radioGroup
- }
-
- RadioButton {
- text: qsTr("FM")
- ButtonGroup.group: radioGroup
- }
-
- RadioButton {
- text: qsTr("AM")
- ButtonGroup.group: radioGroup
- }
- }
- \endcode
-
- More advanced use cases can be handled using the \c addButton() and
- \c removeButton() methods.
-
- \sa RadioButton, {Button Controls}
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::ButtonGroup::clicked(AbstractButton button)
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This signal is emitted when a \a button in the group has been clicked.
-
- This signal is convenient for implementing a common signal handler for
- all buttons in the same group.
-
- \code
- ButtonGroup {
- buttons: column.children
- onClicked: console.log("clicked:", button.text)
- }
-
- Column {
- id: column
- Button { text: "First" }
- Button { text: "Second" }
- Button { text: "Third" }
- }
- \endcode
-
- \sa AbstractButton::clicked()
-*/
-
-class QQuickButtonGroupPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickButtonGroup)
-
-public:
- void clear();
- void buttonClicked();
- void _q_updateCurrent();
- void updateCheckState();
- void setCheckState(Qt::CheckState state);
-
- static void buttons_append(QQmlListProperty<QQuickAbstractButton> *prop, QQuickAbstractButton *obj);
- static qsizetype buttons_count(QQmlListProperty<QQuickAbstractButton> *prop);
- static QQuickAbstractButton *buttons_at(QQmlListProperty<QQuickAbstractButton> *prop, qsizetype index);
- static void buttons_clear(QQmlListProperty<QQuickAbstractButton> *prop);
-
- bool complete = true;
- bool exclusive = true;
- bool settingCheckState = false;
- Qt::CheckState checkState = Qt::Unchecked;
- QPointer<QQuickAbstractButton> checkedButton;
- QList<QQuickAbstractButton*> buttons;
-};
-
-void QQuickButtonGroupPrivate::clear()
-{
- for (QQuickAbstractButton *button : qAsConst(buttons)) {
- QQuickAbstractButtonPrivate::get(button)->group = nullptr;
- QObjectPrivate::disconnect(button, &QQuickAbstractButton::clicked, this, &QQuickButtonGroupPrivate::buttonClicked);
- QObjectPrivate::disconnect(button, &QQuickAbstractButton::checkedChanged, this, &QQuickButtonGroupPrivate::_q_updateCurrent);
- }
- buttons.clear();
-}
-
-void QQuickButtonGroupPrivate::buttonClicked()
-{
- Q_Q(QQuickButtonGroup);
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton*>(q->sender());
- if (button)
- emit q->clicked(button);
-}
-
-void QQuickButtonGroupPrivate::_q_updateCurrent()
-{
- Q_Q(QQuickButtonGroup);
- if (exclusive) {
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton*>(q->sender());
- if (button && button->isChecked())
- q->setCheckedButton(button);
- else if (!buttons.contains(checkedButton))
- q->setCheckedButton(nullptr);
- }
- updateCheckState();
-}
-
-void QQuickButtonGroupPrivate::updateCheckState()
-{
- if (!complete || settingCheckState)
- return;
-
- bool anyChecked = false;
- bool allChecked = !buttons.isEmpty();
- for (QQuickAbstractButton *button : qAsConst(buttons)) {
- const bool isChecked = button->isChecked();
- anyChecked |= isChecked;
- allChecked &= isChecked;
- }
- setCheckState(Qt::CheckState(anyChecked + allChecked));
-}
-
-void QQuickButtonGroupPrivate::setCheckState(Qt::CheckState state)
-{
- Q_Q(QQuickButtonGroup);
- if (checkState == state)
- return;
-
- checkState = state;
- emit q->checkStateChanged();
-}
-
-void QQuickButtonGroupPrivate::buttons_append(QQmlListProperty<QQuickAbstractButton> *prop, QQuickAbstractButton *obj)
-{
- QQuickButtonGroup *q = static_cast<QQuickButtonGroup *>(prop->object);
- q->addButton(obj);
-}
-
-qsizetype QQuickButtonGroupPrivate::buttons_count(QQmlListProperty<QQuickAbstractButton> *prop)
-{
- QQuickButtonGroupPrivate *p = static_cast<QQuickButtonGroupPrivate *>(prop->data);
- return p->buttons.count();
-}
-
-QQuickAbstractButton *QQuickButtonGroupPrivate::buttons_at(QQmlListProperty<QQuickAbstractButton> *prop, qsizetype index)
-{
- QQuickButtonGroupPrivate *p = static_cast<QQuickButtonGroupPrivate *>(prop->data);
- return p->buttons.value(index);
-}
-
-void QQuickButtonGroupPrivate::buttons_clear(QQmlListProperty<QQuickAbstractButton> *prop)
-{
- QQuickButtonGroupPrivate *p = static_cast<QQuickButtonGroupPrivate *>(prop->data);
- if (!p->buttons.isEmpty()) {
- p->clear();
- QQuickButtonGroup *q = static_cast<QQuickButtonGroup *>(prop->object);
- // QTBUG-52358: don't clear the checked button immediately
- QMetaObject::invokeMethod(q, "_q_updateCurrent", Qt::QueuedConnection);
- emit q->buttonsChanged();
- }
-}
-
-QQuickButtonGroup::QQuickButtonGroup(QObject *parent)
- : QObject(*(new QQuickButtonGroupPrivate), parent)
-{
-}
-
-QQuickButtonGroup::~QQuickButtonGroup()
-{
- Q_D(QQuickButtonGroup);
- d->clear();
-}
-
-QQuickButtonGroupAttached *QQuickButtonGroup::qmlAttachedProperties(QObject *object)
-{
- return new QQuickButtonGroupAttached(object);
-}
-
-/*!
- \qmlproperty AbstractButton QtQuick.Controls::ButtonGroup::checkedButton
-
- This property holds the currently selected button in an exclusive group,
- or \c null if there is none or the group is non-exclusive.
-
- By default, it is the first checked button added to an exclusive button group.
-
- \sa exclusive
-*/
-QQuickAbstractButton *QQuickButtonGroup::checkedButton() const
-{
- Q_D(const QQuickButtonGroup);
- return d->checkedButton;
-}
-
-void QQuickButtonGroup::setCheckedButton(QQuickAbstractButton *checkedButton)
-{
- Q_D(QQuickButtonGroup);
- if (d->checkedButton == checkedButton)
- return;
-
- if (d->checkedButton)
- d->checkedButton->setChecked(false);
- d->checkedButton = checkedButton;
- if (checkedButton)
- checkedButton->setChecked(true);
- emit checkedButtonChanged();
-}
-
-/*!
- \qmlproperty list<AbstractButton> QtQuick.Controls::ButtonGroup::buttons
- \qmldefault
-
- This property holds the list of buttons.
-
- \code
- ButtonGroup {
- buttons: column.children
- }
-
- Column {
- id: column
-
- RadioButton {
- checked: true
- text: qsTr("Option A")
- }
-
- RadioButton {
- text: qsTr("Option B")
- }
- }
- \endcode
-
- \sa group
-*/
-QQmlListProperty<QQuickAbstractButton> QQuickButtonGroup::buttons()
-{
- Q_D(QQuickButtonGroup);
- return QQmlListProperty<QQuickAbstractButton>(this, d,
- QQuickButtonGroupPrivate::buttons_append,
- QQuickButtonGroupPrivate::buttons_count,
- QQuickButtonGroupPrivate::buttons_at,
- QQuickButtonGroupPrivate::buttons_clear);
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::ButtonGroup::exclusive
-
- This property holds whether the button group is exclusive. The default value is \c true.
-
- If this property is \c true, then only one button in the group can be checked at any given time.
- The user can click on any button to check it, and that button will replace the existing one as
- the checked button in the group.
-
- In an exclusive group, the user cannot uncheck the currently checked button by clicking on it;
- instead, another button in the group must be clicked to set the new checked button for that group.
-
- In a non-exclusive group, checking and unchecking buttons does not affect the other buttons in
- the group. Furthermore, the value of the \l checkedButton property is \c null.
-*/
-bool QQuickButtonGroup::isExclusive() const
-{
- Q_D(const QQuickButtonGroup);
- return d->exclusive;
-}
-
-void QQuickButtonGroup::setExclusive(bool exclusive)
-{
- Q_D(QQuickButtonGroup);
- if (d->exclusive == exclusive)
- return;
-
- d->exclusive = exclusive;
- emit exclusiveChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty enumeration QtQuick.Controls::ButtonGroup::checkState
-
- This property holds the combined check state of the button group.
-
- Available states:
- \value Qt.Unchecked None of the buttons are checked.
- \value Qt.PartiallyChecked Some of the buttons are checked.
- \value Qt.Checked All of the buttons are checked.
-
- Setting the check state of a non-exclusive button group to \c Qt.Unchecked
- or \c Qt.Checked unchecks or checks all buttons in the group, respectively.
- \c Qt.PartiallyChecked is ignored.
-
- Setting the check state of an exclusive button group to \c Qt.Unchecked
- unchecks the \l checkedButton. \c Qt.Checked and \c Qt.PartiallyChecked
- are ignored.
-*/
-Qt::CheckState QQuickButtonGroup::checkState() const
-{
- Q_D(const QQuickButtonGroup);
- return d->checkState;
-}
-
-void QQuickButtonGroup::setCheckState(Qt::CheckState state)
-{
- Q_D(QQuickButtonGroup);
- if (d->checkState == state || state == Qt::PartiallyChecked)
- return;
-
- d->settingCheckState = true;
- if (d->exclusive) {
- if (d->checkedButton && state == Qt::Unchecked)
- setCheckedButton(nullptr);
- } else {
- for (QQuickAbstractButton *button : qAsConst(d->buttons))
- button->setChecked(state == Qt::Checked);
- }
- d->settingCheckState = false;
- d->setCheckState(state);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::ButtonGroup::addButton(AbstractButton button)
-
- Adds a \a button to the button group.
-
- \note Manually adding objects to a button group is typically unnecessary.
- The \l buttons property and the \l group attached property provide a
- convenient and declarative syntax.
-
- \sa buttons, group
-*/
-void QQuickButtonGroup::addButton(QQuickAbstractButton *button)
-{
- Q_D(QQuickButtonGroup);
- if (!button || d->buttons.contains(button))
- return;
-
- QQuickAbstractButtonPrivate::get(button)->group = this;
- QObjectPrivate::connect(button, &QQuickAbstractButton::clicked, d, &QQuickButtonGroupPrivate::buttonClicked);
- QObjectPrivate::connect(button, &QQuickAbstractButton::checkedChanged, d, &QQuickButtonGroupPrivate::_q_updateCurrent);
-
- if (d->exclusive && button->isChecked())
- setCheckedButton(button);
-
- d->buttons.append(button);
- d->updateCheckState();
- emit buttonsChanged();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::ButtonGroup::removeButton(AbstractButton button)
-
- Removes a \a button from the button group.
-
- \note Manually removing objects from a button group is typically unnecessary.
- The \l buttons property and the \l group attached property provide a
- convenient and declarative syntax.
-
- \sa buttons, group
-*/
-void QQuickButtonGroup::removeButton(QQuickAbstractButton *button)
-{
- Q_D(QQuickButtonGroup);
- if (!button || !d->buttons.contains(button))
- return;
-
- QQuickAbstractButtonPrivate::get(button)->group = nullptr;
- QObjectPrivate::disconnect(button, &QQuickAbstractButton::clicked, d, &QQuickButtonGroupPrivate::buttonClicked);
- QObjectPrivate::disconnect(button, &QQuickAbstractButton::checkedChanged, d, &QQuickButtonGroupPrivate::_q_updateCurrent);
-
- if (d->checkedButton == button)
- setCheckedButton(nullptr);
-
- d->buttons.removeOne(button);
- d->updateCheckState();
- emit buttonsChanged();
-}
-
-void QQuickButtonGroup::classBegin()
-{
- Q_D(QQuickButtonGroup);
- d->complete = false;
-}
-
-void QQuickButtonGroup::componentComplete()
-{
- Q_D(QQuickButtonGroup);
- d->complete = true;
- if (!d->buttons.isEmpty())
- d->updateCheckState();
-}
-
-class QQuickButtonGroupAttachedPrivate : public QObjectPrivate
-{
-public:
- QQuickButtonGroup *group = nullptr;
-};
-
-QQuickButtonGroupAttached::QQuickButtonGroupAttached(QObject *parent)
- : QObject(*(new QQuickButtonGroupAttachedPrivate), parent)
-{
-}
-
-/*!
- \qmlattachedproperty ButtonGroup QtQuick.Controls::ButtonGroup::group
-
- This property attaches a button to a button group.
-
- \code
- ButtonGroup { id: group }
-
- RadioButton {
- checked: true
- text: qsTr("Option A")
- ButtonGroup.group: group
- }
-
- RadioButton {
- text: qsTr("Option B")
- ButtonGroup.group: group
- }
- \endcode
-
- \sa buttons
-*/
-QQuickButtonGroup *QQuickButtonGroupAttached::group() const
-{
- Q_D(const QQuickButtonGroupAttached);
- return d->group;
-}
-
-void QQuickButtonGroupAttached::setGroup(QQuickButtonGroup *group)
-{
- Q_D(QQuickButtonGroupAttached);
- if (d->group == group)
- return;
-
- if (d->group)
- d->group->removeButton(qobject_cast<QQuickAbstractButton*>(parent()));
- d->group = group;
- if (group)
- group->addButton(qobject_cast<QQuickAbstractButton*>(parent()));
- emit groupChanged();
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickbuttongroup_p.cpp"
diff --git a/src/quicktemplates2/qquickbuttongroup_p.h b/src/quicktemplates2/qquickbuttongroup_p.h
deleted file mode 100644
index daff84f2..00000000
--- a/src/quicktemplates2/qquickbuttongroup_p.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKBUTTONGROUP_P_H
-#define QQUICKBUTTONGROUP_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-#include <QtQml/qqml.h>
-#include <QtQml/qqmlparserstatus.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickAbstractButton;
-class QQuickButtonGroupPrivate;
-class QQuickButtonGroupAttached;
-class QQuickButtonGroupAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickButtonGroup : public QObject, public QQmlParserStatus
-{
- Q_OBJECT
- Q_PROPERTY(QQuickAbstractButton *checkedButton READ checkedButton WRITE setCheckedButton NOTIFY checkedButtonChanged FINAL)
- Q_PROPERTY(QQmlListProperty<QQuickAbstractButton> buttons READ buttons NOTIFY buttonsChanged FINAL)
- // 2.3 (Qt 5.10)
- Q_PROPERTY(bool exclusive READ isExclusive WRITE setExclusive NOTIFY exclusiveChanged FINAL REVISION(2, 3))
- // 2.4 (Qt 5.11)
- Q_PROPERTY(Qt::CheckState checkState READ checkState WRITE setCheckState NOTIFY checkStateChanged FINAL REVISION(2, 4))
- Q_INTERFACES(QQmlParserStatus)
- QML_NAMED_ELEMENT(ButtonGroup)
- QML_ATTACHED(QQuickButtonGroupAttached)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickButtonGroup(QObject *parent = nullptr);
- ~QQuickButtonGroup();
-
- static QQuickButtonGroupAttached *qmlAttachedProperties(QObject *object);
-
- QQuickAbstractButton *checkedButton() const;
- void setCheckedButton(QQuickAbstractButton *checkedButton);
-
- QQmlListProperty<QQuickAbstractButton> buttons();
-
- bool isExclusive() const;
- void setExclusive(bool exclusive);
-
- // 2.4 (Qt 5.11)
- Qt::CheckState checkState() const;
- void setCheckState(Qt::CheckState state);
-
-public Q_SLOTS:
- void addButton(QQuickAbstractButton *button);
- void removeButton(QQuickAbstractButton *button);
-
-Q_SIGNALS:
- void checkedButtonChanged();
- void buttonsChanged();
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) void clicked(QQuickAbstractButton *button);
- // 2.3 (Qt 5.10)
- Q_REVISION(2, 3) void exclusiveChanged();
- // 2.4 (Qt 5.11)
- Q_REVISION(2, 4) void checkStateChanged();
-
-protected:
- void classBegin() override;
- void componentComplete() override;
-
-private:
- Q_DISABLE_COPY(QQuickButtonGroup)
- Q_DECLARE_PRIVATE(QQuickButtonGroup)
-
- Q_PRIVATE_SLOT(d_func(), void _q_updateCurrent())
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickButtonGroupAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickButtonGroup *group READ group WRITE setGroup NOTIFY groupChanged FINAL)
-
-public:
- explicit QQuickButtonGroupAttached(QObject *parent = nullptr);
-
- QQuickButtonGroup *group() const;
- void setGroup(QQuickButtonGroup *group);
-
-Q_SIGNALS:
- void groupChanged();
-
-private:
- Q_DISABLE_COPY(QQuickButtonGroupAttached)
- Q_DECLARE_PRIVATE(QQuickButtonGroupAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickButtonGroup)
-QML_DECLARE_TYPEINFO(QQuickButtonGroup, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKBUTTONGROUP_P_H
diff --git a/src/quicktemplates2/qquickcheckbox.cpp b/src/quicktemplates2/qquickcheckbox.cpp
deleted file mode 100644
index e3184ceb..00000000
--- a/src/quicktemplates2/qquickcheckbox.cpp
+++ /dev/null
@@ -1,245 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickcheckbox_p.h"
-#include "qquickabstractbutton_p_p.h"
-
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtQml/qjsvalue.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype CheckBox
- \inherits AbstractButton
-//! \instantiates QQuickCheckBox
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-buttons
- \brief Check button that can be toggled on or off.
-
- \image qtquickcontrols2-checkbox.gif
-
- CheckBox presents an option button that can be toggled on (checked) or
- off (unchecked). Check boxes are typically used to select one or more
- options from a set of options. For larger sets of options, such as those
- in a list, consider using \l CheckDelegate instead.
-
- CheckBox inherits its API from \l AbstractButton. For instance, the
- state of the checkbox can be set with the \l {AbstractButton::}{checked} property.
-
- In addition to the checked and unchecked states, there is a third state:
- partially checked. The partially checked state can be enabled using the
- \l tristate property. This state indicates that the regular checked/unchecked
- state can not be determined; generally because of other states that affect
- the checkbox. This state is useful when several child nodes are selected
- in a treeview, for example.
-
- \code
- ColumnLayout {
- CheckBox {
- checked: true
- text: qsTr("First")
- }
- CheckBox {
- text: qsTr("Second")
- }
- CheckBox {
- checked: true
- text: qsTr("Third")
- }
- }
- \endcode
-
- Hierarchical checkbox groups can be managed with a non-exclusive
- \l ButtonGroup.
-
- \image qtquickcontrols2-checkbox-group.png
-
- The following example illustrates how the combined check state of
- children can be bound to the check state of the parent checkbox:
-
- \snippet qtquickcontrols2-checkbox-group.qml 1
-
- \sa {Customizing CheckBox}, ButtonGroup, {Button Controls}
-*/
-
-class QQuickCheckBoxPrivate : public QQuickAbstractButtonPrivate
-{
- Q_DECLARE_PUBLIC(QQuickCheckBox)
-
-public:
- void setNextCheckState(const QJSValue &callback);
-
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::CheckBox); }
-
- bool tristate = false;
- Qt::CheckState checkState = Qt::Unchecked;
- QJSValue nextCheckState;
-};
-
-void QQuickCheckBoxPrivate::setNextCheckState(const QJSValue &callback)
-{
- Q_Q(QQuickCheckBox);
- nextCheckState = callback;
- emit q->nextCheckStateChanged();
-}
-
-QQuickCheckBox::QQuickCheckBox(QQuickItem *parent)
- : QQuickAbstractButton(*(new QQuickCheckBoxPrivate), parent)
-{
- setCheckable(true);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::CheckBox::tristate
-
- This property holds whether the checkbox is a tri-state checkbox.
-
- In the animation below, the first checkbox is tri-state:
-
- \image qtquickcontrols2-checkbox-tristate.gif
-
- The default is \c false, i.e., the checkbox has only two states.
-*/
-bool QQuickCheckBox::isTristate() const
-{
- Q_D(const QQuickCheckBox);
- return d->tristate;
-}
-
-void QQuickCheckBox::setTristate(bool tristate)
-{
- Q_D(QQuickCheckBox);
- if (d->tristate == tristate)
- return;
-
- d->tristate = tristate;
- emit tristateChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::CheckBox::checkState
-
- This property holds the check state of the checkbox.
-
- Available states:
- \value Qt.Unchecked The checkbox is unchecked.
- \value Qt.PartiallyChecked The checkbox is partially checked. This state is only used when \l tristate is enabled.
- \value Qt.Checked The checkbox is checked.
-
- \sa tristate, {AbstractButton::checked}{checked}
-*/
-Qt::CheckState QQuickCheckBox::checkState() const
-{
- Q_D(const QQuickCheckBox);
- return d->checkState;
-}
-
-void QQuickCheckBox::setCheckState(Qt::CheckState state)
-{
- Q_D(QQuickCheckBox);
- if (d->checkState == state)
- return;
-
- bool wasChecked = isChecked();
- d->checked = state == Qt::Checked;
- d->checkState = state;
- emit checkStateChanged();
- if (d->checked != wasChecked)
- emit checkedChanged();
-}
-
-QFont QQuickCheckBox::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::CheckBox);
-}
-
-void QQuickCheckBox::buttonChange(ButtonChange change)
-{
- if (change == ButtonCheckedChange)
- setCheckState(isChecked() ? Qt::Checked : Qt::Unchecked);
- else
- QQuickAbstractButton::buttonChange(change);
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty function QtQuick.Controls::CheckBox::nextCheckState
-
- This property holds a callback function that is called to determine
- the next check state whenever the checkbox is interactively toggled
- by the user via touch, mouse, or keyboard.
-
- By default, a normal checkbox cycles between \c Qt.Unchecked and
- \c Qt.Checked states, and a tri-state checkbox cycles between
- \c Qt.Unchecked, \c Qt.PartiallyChecked, and \c Qt.Checked states.
-
- The \c nextCheckState callback function can override the default behavior.
- The following example implements a tri-state checkbox that can present
- a partially checked state depending on external conditions, but never
- cycles to the partially checked state when interactively toggled by
- the user.
-
- \code
- CheckBox {
- tristate: true
- checkState: allChildrenChecked ? Qt.Checked :
- anyChildChecked ? Qt.PartiallyChecked : Qt.Unchecked
-
- nextCheckState: function() {
- if (checkState === Qt.Checked)
- return Qt.Unchecked
- else
- return Qt.Checked
- }
- }
- \endcode
-*/
-void QQuickCheckBox::nextCheckState()
-{
- Q_D(QQuickCheckBox);
- if (d->nextCheckState.isCallable())
- setCheckState(static_cast<Qt::CheckState>(d->nextCheckState.call().toInt()));
- else if (d->tristate)
- setCheckState(static_cast<Qt::CheckState>((d->checkState + 1) % 3));
- else
- QQuickAbstractButton::nextCheckState();
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickcheckbox_p.cpp"
diff --git a/src/quicktemplates2/qquickcheckbox_p.h b/src/quicktemplates2/qquickcheckbox_p.h
deleted file mode 100644
index 8e53b41d..00000000
--- a/src/quicktemplates2/qquickcheckbox_p.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCHECKBOX_P_H
-#define QQUICKCHECKBOX_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickCheckBoxPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickCheckBox : public QQuickAbstractButton
-{
- Q_OBJECT
- Q_PROPERTY(bool tristate READ isTristate WRITE setTristate NOTIFY tristateChanged FINAL)
- Q_PROPERTY(Qt::CheckState checkState READ checkState WRITE setCheckState NOTIFY checkStateChanged FINAL)
- // 2.4 (Qt 5.11)
- Q_PRIVATE_PROPERTY(QQuickCheckBox::d_func(), QJSValue nextCheckState MEMBER nextCheckState WRITE setNextCheckState NOTIFY nextCheckStateChanged FINAL REVISION(2, 4))
- QML_NAMED_ELEMENT(CheckBox)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickCheckBox(QQuickItem *parent = nullptr);
-
- bool isTristate() const;
- void setTristate(bool tristate);
-
- Qt::CheckState checkState() const;
- void setCheckState(Qt::CheckState state);
-
-Q_SIGNALS:
- void tristateChanged();
- void checkStateChanged();
- // 2.4 (Qt 5.11)
- Q_REVISION(2, 4) void nextCheckStateChanged();
-
-protected:
- QFont defaultFont() const override;
-
- void buttonChange(ButtonChange change) override;
- void nextCheckState() override;
-
-private:
- Q_DISABLE_COPY(QQuickCheckBox)
- Q_DECLARE_PRIVATE(QQuickCheckBox)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickCheckBox)
-
-#endif // QQUICKCHECKBOX_P_H
diff --git a/src/quicktemplates2/qquickcheckdelegate.cpp b/src/quicktemplates2/qquickcheckdelegate.cpp
deleted file mode 100644
index 7596e104..00000000
--- a/src/quicktemplates2/qquickcheckdelegate.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickcheckdelegate_p.h"
-#include "qquickitemdelegate_p_p.h"
-
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtQml/qjsvalue.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype CheckDelegate
- \inherits ItemDelegate
-//! \instantiates QQuickCheckDelegate
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-delegates
- \brief Item delegate with a check indicator that can be toggled on or off.
-
- \image qtquickcontrols2-checkdelegate.gif
-
- CheckDelegate presents an item delegate that can be toggled on (checked) or
- off (unchecked). Check delegates are typically used to select one or more
- options from a set of options in a list. For smaller sets of options, or
- for options that need to be uniquely identifiable, consider using
- \l CheckBox instead.
-
- CheckDelegate inherits its API from \l ItemDelegate, which is inherited
- from AbstractButton. For instance, you can set \l {AbstractButton::text}{text},
- and react to \l {AbstractButton::clicked}{clicks} using the AbstractButton
- API. The state of the check delegate can be set with the
- \l {AbstractButton::}{checked} property.
-
- In addition to the checked and unchecked states, there is a third state:
- partially checked. The partially checked state can be enabled using the
- \l tristate property. This state indicates that the regular checked/unchecked
- state can not be determined; generally because of other states that affect
- the check delegate. This state is useful when several child nodes are selected
- in a treeview, for example.
-
- \code
- ListView {
- model: ["Option 1", "Option 2", "Option 3"]
- delegate: CheckDelegate {
- text: modelData
- }
- }
- \endcode
-
- \sa {Customizing CheckDelegate}, {Delegate Controls}, CheckBox
-*/
-
-class QQuickCheckDelegatePrivate : public QQuickItemDelegatePrivate
-{
- Q_DECLARE_PUBLIC(QQuickCheckDelegate)
-
-public:
- void setNextCheckState(const QJSValue &callback);
-
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::ListView); }
-
- bool tristate = false;
- Qt::CheckState checkState = Qt::Unchecked;
- QJSValue nextCheckState;
-};
-
-void QQuickCheckDelegatePrivate::setNextCheckState(const QJSValue &callback)
-{
- Q_Q(QQuickCheckDelegate);
- nextCheckState = callback;
- emit q->nextCheckStateChanged();
-}
-
-QQuickCheckDelegate::QQuickCheckDelegate(QQuickItem *parent)
- : QQuickItemDelegate(*(new QQuickCheckDelegatePrivate), parent)
-{
- setCheckable(true);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::CheckDelegate::tristate
-
- This property determines whether the check delegate has three states.
-
- In the animation below, the first checkdelegate is tri-state:
-
- \image qtquickcontrols2-checkdelegate-tristate.gif
-
- The default is \c false, i.e., the delegate has only two states.
-*/
-bool QQuickCheckDelegate::isTristate() const
-{
- Q_D(const QQuickCheckDelegate);
- return d->tristate;
-}
-
-void QQuickCheckDelegate::setTristate(bool tristate)
-{
- Q_D(QQuickCheckDelegate);
- if (d->tristate == tristate)
- return;
-
- d->tristate = tristate;
- emit tristateChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::CheckDelegate::checkState
-
- This property determines the check state of the check delegate.
-
- Available states:
- \value Qt.Unchecked The delegate is unchecked.
- \value Qt.PartiallyChecked The delegate is partially checked. This state is only used when \l tristate is enabled.
- \value Qt.Checked The delegate is checked.
-
- \sa tristate, {AbstractButton::checked}{checked}
-*/
-Qt::CheckState QQuickCheckDelegate::checkState() const
-{
- Q_D(const QQuickCheckDelegate);
- return d->checkState;
-}
-
-void QQuickCheckDelegate::setCheckState(Qt::CheckState state)
-{
- Q_D(QQuickCheckDelegate);
- if (d->checkState == state)
- return;
-
- bool wasChecked = isChecked();
- d->checked = state == Qt::Checked;
- d->checkState = state;
- emit checkStateChanged();
- if (d->checked != wasChecked)
- emit checkedChanged();
-}
-
-QFont QQuickCheckDelegate::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::ListView);
-}
-
-void QQuickCheckDelegate::buttonChange(ButtonChange change)
-{
- if (change == ButtonCheckedChange)
- setCheckState(isChecked() ? Qt::Checked : Qt::Unchecked);
- else
- QQuickAbstractButton::buttonChange(change);
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty function QtQuick.Controls::CheckDelegate::nextCheckState
-
- This property holds a callback function that is called to determine
- the next check state whenever the check delegate is interactively toggled
- by the user via touch, mouse, or keyboard.
-
- By default, a normal check delegate cycles between \c Qt.Unchecked and
- \c Qt.Checked states, and a tri-state check delegate cycles between
- \c Qt.Unchecked, \c Qt.PartiallyChecked, and \c Qt.Checked states.
-
- The \c nextCheckState callback function can override the default behavior.
- The following example implements a tri-state check delegate that can present
- a partially checked state depending on external conditions, but never
- cycles to the partially checked state when interactively toggled by
- the user.
-
- \code
- CheckDelegate {
- tristate: true
- checkState: allChildrenChecked ? Qt.Checked :
- anyChildChecked ? Qt.PartiallyChecked : Qt.Unchecked
-
- nextCheckState: function() {
- if (checkState === Qt.Checked)
- return Qt.Unchecked
- else
- return Qt.Checked
- }
- }
- \endcode
-*/
-void QQuickCheckDelegate::nextCheckState()
-{
- Q_D(QQuickCheckDelegate);
- if (d->nextCheckState.isCallable())
- setCheckState(static_cast<Qt::CheckState>(d->nextCheckState.call().toInt()));
- else if (d->tristate)
- setCheckState(static_cast<Qt::CheckState>((d->checkState + 1) % 3));
- else
- QQuickItemDelegate::nextCheckState();
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickCheckDelegate::accessibleRole() const
-{
- return QAccessible::CheckBox;
-}
-#endif
-
-QT_END_NAMESPACE
-
-#include "moc_qquickcheckdelegate_p.cpp"
diff --git a/src/quicktemplates2/qquickcheckdelegate_p.h b/src/quicktemplates2/qquickcheckdelegate_p.h
deleted file mode 100644
index 9b69943f..00000000
--- a/src/quicktemplates2/qquickcheckdelegate_p.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCHECKDELEGATE_P_H
-#define QQUICKCHECKDELEGATE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickitemdelegate_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickCheckDelegatePrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickCheckDelegate : public QQuickItemDelegate
-{
- Q_OBJECT
- Q_PROPERTY(bool tristate READ isTristate WRITE setTristate NOTIFY tristateChanged FINAL)
- Q_PROPERTY(Qt::CheckState checkState READ checkState WRITE setCheckState NOTIFY checkStateChanged FINAL)
- // 2.4 (Qt 5.11)
- Q_PRIVATE_PROPERTY(QQuickCheckDelegate::d_func(), QJSValue nextCheckState MEMBER nextCheckState WRITE setNextCheckState NOTIFY nextCheckStateChanged FINAL REVISION(2, 4))
- QML_NAMED_ELEMENT(CheckDelegate)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickCheckDelegate(QQuickItem *parent = nullptr);
-
- bool isTristate() const;
- void setTristate(bool tristate);
-
- Qt::CheckState checkState() const;
- void setCheckState(Qt::CheckState state);
-
-Q_SIGNALS:
- void tristateChanged();
- void checkStateChanged();
- // 2.4 (Qt 5.11)
- Q_REVISION(2, 4) void nextCheckStateChanged();
-
-protected:
- QFont defaultFont() const override;
-
- void buttonChange(ButtonChange change) override;
- void nextCheckState() override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickCheckDelegate)
- Q_DECLARE_PRIVATE(QQuickCheckDelegate)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickCheckDelegate)
-
-#endif // QQUICKCHECKDELEGATE_P_H
diff --git a/src/quicktemplates2/qquickcombobox.cpp b/src/quicktemplates2/qquickcombobox.cpp
deleted file mode 100644
index bad62b28..00000000
--- a/src/quicktemplates2/qquickcombobox.cpp
+++ /dev/null
@@ -1,2188 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickcombobox_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickabstractbutton_p.h"
-#include "qquickabstractbutton_p_p.h"
-#include "qquickpopup_p_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtCore/qregularexpression.h>
-#include <QtCore/qabstractitemmodel.h>
-#include <QtCore/qglobal.h>
-#include <QtGui/qinputmethod.h>
-#include <QtGui/qguiapplication.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtQml/qjsvalue.h>
-#include <QtQml/qqmlcontext.h>
-#include <QtQml/private/qlazilyallocated_p.h>
-#include <private/qqmldelegatemodel_p.h>
-#include <QtQuick/private/qquickaccessibleattached_p.h>
-#include <QtQuick/private/qquickevents_p_p.h>
-#include <QtQuick/private/qquicktextinput_p.h>
-#include <QtQuick/private/qquicktextinput_p_p.h>
-#include <QtQuick/private/qquickitemview_p.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcCalculateWidestTextWidth, "qt.quick.controls.combobox.calculatewidesttextwidth")
-
-/*!
- \qmltype ComboBox
- \inherits Control
-//! \instantiates QQuickComboBox
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-input
- \ingroup qtquickcontrols2-focusscopes
- \brief Combined button and popup list for selecting options.
-
- \image qtquickcontrols2-combobox.gif
-
- ComboBox is a combined button and popup list. It provides a means of
- presenting a list of options to the user in a way that takes up the
- minimum amount of screen space.
-
- ComboBox is populated with a data model. The data model is commonly
- a JavaScript array, a \l ListModel or an integer, but other types
- of \l {qml-data-models}{data models} are also supported.
-
- \code
- ComboBox {
- model: ["First", "Second", "Third"]
- }
- \endcode
-
- \section1 Editable ComboBox
-
- ComboBox can be made \l editable. An editable combo box auto-completes
- its text based on what is available in the model.
-
- The following example demonstrates appending content to an editable
- combo box by reacting to the \l accepted signal.
-
- \snippet qtquickcontrols2-combobox-accepted.qml combobox
-
- \section1 ComboBox Model Roles
-
- ComboBox is able to visualize standard \l {qml-data-models}{data models}
- that provide the \c modelData role:
- \list
- \li models that have only one role
- \li models that do not have named roles (JavaScript array, integer)
- \endlist
-
- When using models that have multiple named roles, ComboBox must be configured
- to use a specific \l {textRole}{text role} for its \l {displayText}{display text}
- and \l delegate instances. If you want to use a role of the model item
- that corresponds to the text role, set \l valueRole. The \l currentValue
- property and \l indexOfValue() method can then be used to get information
- about those values.
-
- For example:
-
- \snippet qtquickcontrols2-combobox-valuerole.qml file
-
- \note If ComboBox is assigned a data model that has multiple named roles, but
- \l textRole is not defined, ComboBox is unable to visualize it and throws a
- \c {ReferenceError: modelData is not defined}.
-
- \sa {Customizing ComboBox}, {Input Controls}, {Focus Management in Qt Quick Controls}
-*/
-
-/*!
- \qmlsignal void QtQuick.Controls::ComboBox::activated(int index)
-
- This signal is emitted when the item at \a index is activated by the user.
-
- An item is activated when it is selected while the popup is open,
- causing the popup to close (and \l currentIndex to change),
- or while the popup is closed and the combo box is navigated via
- keyboard, causing the \l currentIndex to change.
- The \l currentIndex property is set to \a index.
-
- \sa currentIndex
-*/
-
-/*!
- \qmlsignal void QtQuick.Controls::ComboBox::highlighted(int index)
-
- This signal is emitted when the item at \a index in the popup list is highlighted by the user.
-
- The highlighted signal is only emitted when the popup is open and an item
- is highlighted, but not necessarily \l activated.
-
- \sa highlightedIndex
-*/
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlsignal void QtQuick.Controls::ComboBox::accepted()
-
- This signal is emitted when the \uicontrol Return or \uicontrol Enter key is pressed
- on an \l editable combo box.
-
- You can handle this signal in order to add the newly entered
- item to the model, for example:
-
- \snippet qtquickcontrols2-combobox-accepted.qml combobox
-
- Before the signal is emitted, a check is done to see if the string
- exists in the model. If it does, \l currentIndex will be set to its index,
- and \l currentText to the string itself.
-
- After the signal has been emitted, and if the first check failed (that is,
- the item did not exist), another check will be done to see if the item was
- added by the signal handler. If it was, the \l currentIndex and
- \l currentText are updated accordingly. Otherwise, they will be set to
- \c -1 and \c "", respectively.
-
- \note If there is a \l validator set on the combo box, the signal will only be
- emitted if the input is in an acceptable state.
-*/
-
-namespace {
- enum Activation { NoActivate, Activate };
- enum Highlighting { NoHighlight, Highlight };
-}
-
-class QQuickComboBoxDelegateModel : public QQmlDelegateModel
-{
-public:
- explicit QQuickComboBoxDelegateModel(QQuickComboBox *combo);
- QVariant variantValue(int index, const QString &role) override;
-
-private:
- QQuickComboBox *combo = nullptr;
-};
-
-QQuickComboBoxDelegateModel::QQuickComboBoxDelegateModel(QQuickComboBox *combo)
- : QQmlDelegateModel(qmlContext(combo), combo),
- combo(combo)
-{
-}
-
-QVariant QQuickComboBoxDelegateModel::variantValue(int index, const QString &role)
-{
- const QVariant model = combo->model();
- if (model.userType() == QMetaType::QVariantList) {
- QVariant object = model.toList().value(index);
- if (object.userType() == QMetaType::QVariantMap) {
- const QVariantMap data = object.toMap();
- if (data.count() == 1 && role == QLatin1String("modelData"))
- return data.first();
- return data.value(role);
- } else if (object.userType() == QMetaType::QObjectStar) {
- const QObject *data = object.value<QObject *>();
- if (data && role != QLatin1String("modelData"))
- return data->property(role.toUtf8());
- }
- }
- return QQmlDelegateModel::variantValue(index, role);
-}
-
-class QQuickComboBoxPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickComboBox)
-
-public:
- bool isPopupVisible() const;
- void showPopup();
- void hidePopup(bool accept);
- void togglePopup(bool accept);
- void popupVisibleChanged();
-
- void itemClicked();
- void itemHovered();
-
- void createdItem(int index, QObject *object);
- void modelUpdated();
- void countChanged();
-
- QString effectiveTextRole() const;
- void updateEditText();
- void updateCurrentText();
- void updateCurrentValue();
- void updateCurrentTextAndValue();
- void updateAcceptableInput();
-
- bool isValidIndex(int index) const;
-
- void acceptInput();
- QString tryComplete(const QString &inputText);
-
- void incrementCurrentIndex();
- void decrementCurrentIndex();
- void setCurrentIndex(int index, Activation activate);
- void updateHighlightedIndex();
- void setHighlightedIndex(int index, Highlighting highlight);
-
- void keySearch(const QString &text);
- int match(int start, const QString &text, Qt::MatchFlags flags) const;
-
- void createDelegateModel();
-
- void handlePress(const QPointF &point, ulong timestamp) override;
- void handleMove(const QPointF &point, ulong timestamp) override;
- void handleRelease(const QPointF &point, ulong timestamp) override;
- void handleUngrab() override;
-
- void cancelIndicator();
- void executeIndicator(bool complete = false);
-
- void cancelPopup();
- void executePopup(bool complete = false);
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- void setInputMethodHints(Qt::InputMethodHints hints, bool force = false);
-
- virtual qreal getContentWidth() const override;
- qreal calculateWidestTextWidth() const;
- void maybeUpdateImplicitContentWidth();
-
- static void hideOldPopup(QQuickPopup *popup);
-
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::ComboBox); }
-
- bool flat = false;
- bool down = false;
- bool hasDown = false;
- bool pressed = false;
- bool ownModel = false;
- bool keyNavigating = false;
- bool hasDisplayText = false;
- bool hasCurrentIndex = false;
- bool hasCalculatedWidestText = false;
- int highlightedIndex = -1;
- int currentIndex = -1;
- QQuickComboBox::ImplicitContentWidthPolicy implicitContentWidthPolicy = QQuickComboBox::ContentItemImplicitWidth;
- QVariant model;
- QString textRole;
- QString currentText;
- QString displayText;
- QString valueRole;
- QVariant currentValue;
- QQuickItem *pressedItem = nullptr;
- QQmlInstanceModel *delegateModel = nullptr;
- QQmlComponent *delegate = nullptr;
- QQuickDeferredPointer<QQuickItem> indicator;
- QQuickDeferredPointer<QQuickPopup> popup;
- bool m_acceptableInput = true;
-
- struct ExtraData {
- bool editable = false;
- bool accepting = false;
- bool allowComplete = false;
- bool selectTextByMouse = false;
- Qt::InputMethodHints inputMethodHints = Qt::ImhNone;
- QString editText;
- QValidator *validator = nullptr;
- };
- QLazilyAllocated<ExtraData> extra;
-};
-
-bool QQuickComboBoxPrivate::isPopupVisible() const
-{
- return popup && popup->isVisible();
-}
-
-void QQuickComboBoxPrivate::showPopup()
-{
- if (!popup)
- executePopup(true);
-
- if (popup && !popup->isVisible())
- popup->open();
-}
-
-void QQuickComboBoxPrivate::hidePopup(bool accept)
-{
- Q_Q(QQuickComboBox);
- if (accept) {
- q->setCurrentIndex(highlightedIndex);
- emit q->activated(currentIndex);
- }
- if (popup && popup->isVisible())
- popup->close();
-}
-
-void QQuickComboBoxPrivate::togglePopup(bool accept)
-{
- if (!popup || !popup->isVisible())
- showPopup();
- else
- hidePopup(accept);
-}
-
-void QQuickComboBoxPrivate::popupVisibleChanged()
-{
- Q_Q(QQuickComboBox);
- if (isPopupVisible())
- QGuiApplication::inputMethod()->reset();
-
- QQuickItemView *itemView = popup->findChild<QQuickItemView *>();
- if (itemView)
- itemView->setHighlightRangeMode(QQuickItemView::NoHighlightRange);
-
- updateHighlightedIndex();
-
- if (itemView)
- itemView->positionViewAtIndex(highlightedIndex, QQuickItemView::Beginning);
-
- if (!hasDown) {
- q->setDown(pressed || isPopupVisible());
- hasDown = false;
- }
-}
-
-void QQuickComboBoxPrivate::itemClicked()
-{
- Q_Q(QQuickComboBox);
- int index = delegateModel->indexOf(q->sender(), nullptr);
- if (index != -1) {
- setHighlightedIndex(index, Highlight);
- hidePopup(true);
- }
-}
-
-void QQuickComboBoxPrivate::itemHovered()
-{
- Q_Q(QQuickComboBox);
- if (keyNavigating)
- return;
-
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(q->sender());
- if (!button || !button->isHovered() || !button->isEnabled() || QQuickAbstractButtonPrivate::get(button)->touchId != -1)
- return;
-
- int index = delegateModel->indexOf(button, nullptr);
- if (index != -1) {
- setHighlightedIndex(index, Highlight);
-
- if (QQuickItemView *itemView = popup->findChild<QQuickItemView *>())
- itemView->positionViewAtIndex(index, QQuickItemView::Contain);
- }
-}
-
-void QQuickComboBoxPrivate::createdItem(int index, QObject *object)
-{
- Q_Q(QQuickComboBox);
- QQuickItem *item = qobject_cast<QQuickItem *>(object);
- if (item && !item->parentItem()) {
- if (popup)
- item->setParentItem(popup->contentItem());
- else
- item->setParentItem(q);
- QQuickItemPrivate::get(item)->setCulled(true);
- }
-
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(object);
- if (button) {
- button->setFocusPolicy(Qt::NoFocus);
- connect(button, &QQuickAbstractButton::clicked, this, &QQuickComboBoxPrivate::itemClicked);
- connect(button, &QQuickAbstractButton::hoveredChanged, this, &QQuickComboBoxPrivate::itemHovered);
- }
-
- if (index == currentIndex && !q->isEditable())
- updateCurrentTextAndValue();
-}
-
-void QQuickComboBoxPrivate::modelUpdated()
-{
- if (componentComplete && (!extra.isAllocated() || !extra->accepting)) {
- updateCurrentTextAndValue();
-
- if (implicitContentWidthPolicy == QQuickComboBox::WidestText)
- updateImplicitContentSize();
- }
-}
-
-void QQuickComboBoxPrivate::countChanged()
-{
- Q_Q(QQuickComboBox);
- if (q->count() == 0)
- q->setCurrentIndex(-1);
- emit q->countChanged();
-}
-
-QString QQuickComboBoxPrivate::effectiveTextRole() const
-{
- return textRole.isEmpty() ? QStringLiteral("modelData") : textRole;
-}
-
-void QQuickComboBoxPrivate::updateEditText()
-{
- Q_Q(QQuickComboBox);
- QQuickTextInput *input = qobject_cast<QQuickTextInput *>(contentItem);
- if (!input)
- return;
-
- const QString text = input->text();
-
- if (extra.isAllocated() && extra->allowComplete && !text.isEmpty()) {
- const QString completed = tryComplete(text);
- if (completed.length() > text.length()) {
- input->setText(completed);
- input->select(completed.length(), text.length());
- return;
- }
- }
- q->setEditText(text);
-}
-
-void QQuickComboBoxPrivate::updateCurrentText()
-{
- Q_Q(QQuickComboBox);
- const QString text = q->textAt(currentIndex);
- if (currentText != text) {
- currentText = text;
- if (!hasDisplayText)
- q->maybeSetAccessibleName(text);
- emit q->currentTextChanged();
- }
- if (!hasDisplayText && displayText != text) {
- displayText = text;
- emit q->displayTextChanged();
- }
- if (!extra.isAllocated() || !extra->accepting)
- q->setEditText(currentText);
-}
-
-void QQuickComboBoxPrivate::updateCurrentValue()
-{
- Q_Q(QQuickComboBox);
- const QVariant value = q->valueAt(currentIndex);
- if (currentValue == value)
- return;
-
- currentValue = value;
- emit q->currentValueChanged();
-}
-
-void QQuickComboBoxPrivate::updateCurrentTextAndValue()
-{
- updateCurrentText();
- updateCurrentValue();
-}
-
-void QQuickComboBoxPrivate::updateAcceptableInput()
-{
- Q_Q(QQuickComboBox);
-
- if (!contentItem)
- return;
-
- const QQuickTextInput *textInputContentItem = qobject_cast<QQuickTextInput *>(contentItem);
-
- if (!textInputContentItem)
- return;
-
- const bool newValue = textInputContentItem->hasAcceptableInput();
-
- if (m_acceptableInput != newValue) {
- m_acceptableInput = newValue;
- emit q->acceptableInputChanged();
- }
-}
-
-bool QQuickComboBoxPrivate::isValidIndex(int index) const
-{
- return delegateModel && index >= 0 && index < delegateModel->count();
-}
-
-void QQuickComboBoxPrivate::acceptInput()
-{
- Q_Q(QQuickComboBox);
- int idx = q->find(extra.value().editText, Qt::MatchFixedString);
- if (idx > -1)
- q->setCurrentIndex(idx);
-
- extra.value().accepting = true;
- emit q->accepted();
-
- if (idx == -1)
- q->setCurrentIndex(q->find(extra.value().editText, Qt::MatchFixedString));
- extra.value().accepting = false;
-}
-
-QString QQuickComboBoxPrivate::tryComplete(const QString &input)
-{
- Q_Q(QQuickComboBox);
- QString match;
-
- const int itemCount = q->count();
- for (int idx = 0; idx < itemCount; ++idx) {
- const QString text = q->textAt(idx);
- if (!text.startsWith(input, Qt::CaseInsensitive))
- continue;
-
- // either the first or the shortest match
- if (match.isEmpty() || text.length() < match.length())
- match = text;
- }
-
- if (match.isEmpty())
- return input;
-
- return input + match.mid(input.length());
-}
-
-void QQuickComboBoxPrivate::setCurrentIndex(int index, Activation activate)
-{
- Q_Q(QQuickComboBox);
- if (currentIndex == index)
- return;
-
- currentIndex = index;
- emit q->currentIndexChanged();
-
- if (componentComplete)
- updateCurrentTextAndValue();
-
- if (activate)
- emit q->activated(index);
-}
-
-void QQuickComboBoxPrivate::incrementCurrentIndex()
-{
- Q_Q(QQuickComboBox);
- if (extra.isAllocated())
- extra->allowComplete = false;
- if (isPopupVisible()) {
- if (highlightedIndex < q->count() - 1)
- setHighlightedIndex(highlightedIndex + 1, Highlight);
- } else {
- if (currentIndex < q->count() - 1)
- setCurrentIndex(currentIndex + 1, Activate);
- }
- if (extra.isAllocated())
- extra->allowComplete = true;
-}
-
-void QQuickComboBoxPrivate::decrementCurrentIndex()
-{
- if (extra.isAllocated())
- extra->allowComplete = false;
- if (isPopupVisible()) {
- if (highlightedIndex > 0)
- setHighlightedIndex(highlightedIndex - 1, Highlight);
- } else {
- if (currentIndex > 0)
- setCurrentIndex(currentIndex - 1, Activate);
- }
- if (extra.isAllocated())
- extra->allowComplete = true;
-}
-
-void QQuickComboBoxPrivate::updateHighlightedIndex()
-{
- setHighlightedIndex(popup->isVisible() ? currentIndex : -1, NoHighlight);
-}
-
-void QQuickComboBoxPrivate::setHighlightedIndex(int index, Highlighting highlight)
-{
- Q_Q(QQuickComboBox);
- if (highlightedIndex == index)
- return;
-
- highlightedIndex = index;
- emit q->highlightedIndexChanged();
-
- if (highlight)
- emit q->highlighted(index);
-}
-
-void QQuickComboBoxPrivate::keySearch(const QString &text)
-{
- const int startIndex = isPopupVisible() ? highlightedIndex : currentIndex;
- const int index = match(startIndex + 1, text, Qt::MatchStartsWith | Qt::MatchWrap);
- if (index != -1) {
- if (isPopupVisible())
- setHighlightedIndex(index, Highlight);
- else
- setCurrentIndex(index, Activate);
- }
-}
-
-int QQuickComboBoxPrivate::match(int start, const QString &text, Qt::MatchFlags flags) const
-{
- Q_Q(const QQuickComboBox);
- uint matchType = flags & 0x0F;
- bool wrap = flags & Qt::MatchWrap;
- Qt::CaseSensitivity cs = flags & Qt::MatchCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive;
- QRegularExpression::PatternOptions options = flags & Qt::MatchCaseSensitive ? QRegularExpression::NoPatternOption
- : QRegularExpression::CaseInsensitiveOption;
- int from = start;
- int to = q->count();
-
- // iterates twice if wrapping
- for (int i = 0; (wrap && i < 2) || (!wrap && i < 1); ++i) {
- for (int idx = from; idx < to; ++idx) {
- QString t = q->textAt(idx);
- switch (matchType) {
- case Qt::MatchExactly:
- if (t == text)
- return idx;
- break;
- case Qt::MatchRegularExpression: {
- QRegularExpression rx(QRegularExpression::anchoredPattern(text), options);
- if (rx.match(t).hasMatch())
- return idx;
- break;
- }
- case Qt::MatchWildcard: {
- QRegularExpression rx(QRegularExpression::wildcardToRegularExpression(text),
- options);
- if (rx.match(t).hasMatch())
- return idx;
- break;
- }
- case Qt::MatchStartsWith:
- if (t.startsWith(text, cs))
- return idx;
- break;
- case Qt::MatchEndsWith:
- if (t.endsWith(text, cs))
- return idx;
- break;
- case Qt::MatchFixedString:
- if (t.compare(text, cs) == 0)
- return idx;
- break;
- case Qt::MatchContains:
- default:
- if (t.contains(text, cs))
- return idx;
- break;
- }
- }
- // prepare for the next iteration
- from = 0;
- to = start;
- }
- return -1;
-}
-
-void QQuickComboBoxPrivate::createDelegateModel()
-{
- Q_Q(QQuickComboBox);
- bool ownedOldModel = ownModel;
- QQmlInstanceModel* oldModel = delegateModel;
- if (oldModel) {
- disconnect(delegateModel, &QQmlInstanceModel::countChanged, this, &QQuickComboBoxPrivate::countChanged);
- disconnect(delegateModel, &QQmlInstanceModel::modelUpdated, this, &QQuickComboBoxPrivate::modelUpdated);
- disconnect(delegateModel, &QQmlInstanceModel::createdItem, this, &QQuickComboBoxPrivate::createdItem);
- }
-
- ownModel = false;
- delegateModel = model.value<QQmlInstanceModel *>();
-
- if (!delegateModel && model.isValid()) {
- QQmlDelegateModel *dataModel = new QQuickComboBoxDelegateModel(q);
- dataModel->setModel(model);
- dataModel->setDelegate(delegate);
- if (q->isComponentComplete())
- dataModel->componentComplete();
-
- ownModel = true;
- delegateModel = dataModel;
- }
-
- if (delegateModel) {
- connect(delegateModel, &QQmlInstanceModel::countChanged, this, &QQuickComboBoxPrivate::countChanged);
- connect(delegateModel, &QQmlInstanceModel::modelUpdated, this, &QQuickComboBoxPrivate::modelUpdated);
- connect(delegateModel, &QQmlInstanceModel::createdItem, this, &QQuickComboBoxPrivate::createdItem);
- }
-
- emit q->delegateModelChanged();
-
- if (ownedOldModel)
- delete oldModel;
-}
-
-void QQuickComboBoxPrivate::handlePress(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickComboBox);
- QQuickControlPrivate::handlePress(point, timestamp);
- q->setPressed(true);
-}
-
-void QQuickComboBoxPrivate::handleMove(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickComboBox);
- QQuickControlPrivate::handleMove(point, timestamp);
- q->setPressed(q->contains(point));
-}
-
-void QQuickComboBoxPrivate::handleRelease(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickComboBox);
- QQuickControlPrivate::handleRelease(point, timestamp);
- if (pressed) {
- q->setPressed(false);
- togglePopup(false);
- }
-}
-
-void QQuickComboBoxPrivate::handleUngrab()
-{
- Q_Q(QQuickComboBox);
- QQuickControlPrivate::handleUngrab();
- q->setPressed(false);
-}
-
-static inline QString indicatorName() { return QStringLiteral("indicator"); }
-
-void QQuickComboBoxPrivate::cancelIndicator()
-{
- Q_Q(QQuickComboBox);
- quickCancelDeferred(q, indicatorName());
-}
-
-void QQuickComboBoxPrivate::executeIndicator(bool complete)
-{
- Q_Q(QQuickComboBox);
- if (indicator.wasExecuted())
- return;
-
- if (!indicator || complete)
- quickBeginDeferred(q, indicatorName(), indicator);
- if (complete)
- quickCompleteDeferred(q, indicatorName(), indicator);
-}
-
-static inline QString popupName() { return QStringLiteral("popup"); }
-
-void QQuickComboBoxPrivate::cancelPopup()
-{
- Q_Q(QQuickComboBox);
- quickCancelDeferred(q, popupName());
-}
-
-void QQuickComboBoxPrivate::executePopup(bool complete)
-{
- Q_Q(QQuickComboBox);
- if (popup.wasExecuted())
- return;
-
- if (!popup || complete)
- quickBeginDeferred(q, popupName(), popup);
- if (complete)
- quickCompleteDeferred(q, popupName(), popup);
-}
-
-void QQuickComboBoxPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_Q(QQuickComboBox);
- QQuickControlPrivate::itemImplicitWidthChanged(item);
- if (item == indicator)
- emit q->implicitIndicatorWidthChanged();
-}
-
-void QQuickComboBoxPrivate::setInputMethodHints(Qt::InputMethodHints hints, bool force)
-{
- Q_Q(QQuickComboBox);
- if (!force && hints == q->inputMethodHints())
- return;
-
- extra.value().inputMethodHints = hints;
- emit q->inputMethodHintsChanged();
-}
-
-void QQuickComboBoxPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_Q(QQuickComboBox);
- QQuickControlPrivate::itemImplicitHeightChanged(item);
- if (item == indicator)
- emit q->implicitIndicatorHeightChanged();
-}
-
-qreal QQuickComboBoxPrivate::getContentWidth() const
-{
- if (componentComplete) {
- switch (implicitContentWidthPolicy) {
- case QQuickComboBox::WidestText:
- return calculateWidestTextWidth();
- case QQuickComboBox::WidestTextWhenCompleted:
- if (!hasCalculatedWidestText)
- return calculateWidestTextWidth();
- break;
- default:
- break;
- }
- }
-
- return QQuickControlPrivate::getContentWidth();
-}
-
-qreal QQuickComboBoxPrivate::calculateWidestTextWidth() const
-{
- Q_Q(const QQuickComboBox);
- if (!componentComplete)
- return 0;
-
- const int count = q->count();
- if (count == 0)
- return 0;
-
- auto textInput = qobject_cast<QQuickTextInput*>(contentItem);
- if (!textInput)
- return 0;
-
- qCDebug(lcCalculateWidestTextWidth) << "calculating widest text from" << count << "items...";
-
- // Avoid the index check and repeated calls to effectiveTextRole()
- // that would result from calling textAt() in a loop.
- const QString textRole = effectiveTextRole();
- auto textInputPrivate = QQuickTextInputPrivate::get(textInput);
- qreal widest = 0;
- for (int i = 0; i < count; ++i) {
- const QString text = delegateModel->stringValue(i, textRole);
- const qreal textImplicitWidth = textInputPrivate->calculateImplicitWidthForText(text);
- widest = qMax(widest, textImplicitWidth);
- }
-
- qCDebug(lcCalculateWidestTextWidth) << "... widest text is" << widest;
- return widest;
-}
-
-/*!
- \internal
-
- If the user requested it (and we haven't already done it, depending on the policy),
- update the implicit content width to the largest text in the model.
-*/
-void QQuickComboBoxPrivate::maybeUpdateImplicitContentWidth()
-{
- if (!componentComplete)
- return;
-
- if (implicitContentWidthPolicy == QQuickComboBox::ContentItemImplicitWidth
- || (implicitContentWidthPolicy == QQuickComboBox::WidestTextWhenCompleted && hasCalculatedWidestText))
- return;
-
- updateImplicitContentWidth();
- hasCalculatedWidestText = true;
-}
-
-void QQuickComboBoxPrivate::hideOldPopup(QQuickPopup *popup)
-{
- if (!popup)
- return;
-
- qCDebug(lcItemManagement) << "hiding old popup" << popup;
-
- popup->setVisible(false);
- popup->setParentItem(nullptr);
-#if QT_CONFIG(accessibility)
- // Remove the item from the accessibility tree.
- QQuickAccessibleAttached *accessible = accessibleAttached(popup);
- if (accessible)
- accessible->setIgnored(true);
-#endif
-}
-
-QQuickComboBox::QQuickComboBox(QQuickItem *parent)
- : QQuickControl(*(new QQuickComboBoxPrivate), parent)
-{
- setFocusPolicy(Qt::StrongFocus);
- setFlag(QQuickItem::ItemIsFocusScope);
- setAcceptedMouseButtons(Qt::LeftButton);
-#if QT_CONFIG(cursor)
- setCursor(Qt::ArrowCursor);
-#endif
- Q_D(QQuickComboBox);
- d->setInputMethodHints(Qt::ImhNoPredictiveText, true);
-}
-
-QQuickComboBox::~QQuickComboBox()
-{
- Q_D(QQuickComboBox);
- d->removeImplicitSizeListener(d->indicator);
- if (d->popup) {
- // Disconnect visibleChanged() to avoid a spurious highlightedIndexChanged() signal
- // emission during the destruction of the (visible) popup. (QTBUG-57650)
- QObjectPrivate::disconnect(d->popup.data(), &QQuickPopup::visibleChanged, d, &QQuickComboBoxPrivate::popupVisibleChanged);
- QQuickComboBoxPrivate::hideOldPopup(d->popup);
- d->popup = nullptr;
- }
-}
-
-/*!
- \readonly
- \qmlproperty int QtQuick.Controls::ComboBox::count
-
- This property holds the number of items in the combo box.
-*/
-int QQuickComboBox::count() const
-{
- Q_D(const QQuickComboBox);
- return d->delegateModel ? d->delegateModel->count() : 0;
-}
-
-/*!
- \qmlproperty model QtQuick.Controls::ComboBox::model
-
- This property holds the model providing data for the combo box.
-
- \code
- ComboBox {
- textRole: "key"
- model: ListModel {
- ListElement { key: "First"; value: 123 }
- ListElement { key: "Second"; value: 456 }
- ListElement { key: "Third"; value: 789 }
- }
- }
- \endcode
-
- \sa textRole, {qml-data-models}{Data Models}
-*/
-QVariant QQuickComboBox::model() const
-{
- Q_D(const QQuickComboBox);
- return d->model;
-}
-
-void QQuickComboBox::setModel(const QVariant& m)
-{
- Q_D(QQuickComboBox);
- QVariant model = m;
- if (model.userType() == qMetaTypeId<QJSValue>())
- model = model.value<QJSValue>().toVariant();
-
- if (d->model == model)
- return;
-
- if (QAbstractItemModel* aim = qvariant_cast<QAbstractItemModel *>(d->model)) {
- QObjectPrivate::disconnect(aim, &QAbstractItemModel::dataChanged,
- d, QOverload<>::of(&QQuickComboBoxPrivate::updateCurrentTextAndValue));
- }
- if (QAbstractItemModel* aim = qvariant_cast<QAbstractItemModel *>(model)) {
- QObjectPrivate::connect(aim, &QAbstractItemModel::dataChanged,
- d, QOverload<>::of(&QQuickComboBoxPrivate::updateCurrentTextAndValue));
- }
-
- d->model = model;
- d->createDelegateModel();
- emit countChanged();
- if (isComponentComplete()) {
- setCurrentIndex(count() > 0 ? 0 : -1);
- d->updateCurrentTextAndValue();
- }
- emit modelChanged();
-
- d->maybeUpdateImplicitContentWidth();
-}
-
-/*!
- \internal
- \qmlproperty model QtQuick.Controls::ComboBox::delegateModel
-
- This property holds the model providing delegate instances for the combo box.
-*/
-QQmlInstanceModel *QQuickComboBox::delegateModel() const
-{
- Q_D(const QQuickComboBox);
- return d->delegateModel;
-}
-
-
-/*!
- \readonly
- \qmlproperty bool QtQuick.Controls::ComboBox::pressed
-
- This property holds whether the combo box button is physically pressed.
- A button can be pressed by either touch or key events.
-
- \sa down
-*/
-bool QQuickComboBox::isPressed() const
-{
- Q_D(const QQuickComboBox);
- return d->pressed;
-}
-
-void QQuickComboBox::setPressed(bool pressed)
-{
- Q_D(QQuickComboBox);
- if (d->pressed == pressed)
- return;
-
- d->pressed = pressed;
- emit pressedChanged();
-
- if (!d->hasDown) {
- setDown(d->pressed || d->isPopupVisible());
- d->hasDown = false;
- }
-}
-
-/*!
- \readonly
- \qmlproperty int QtQuick.Controls::ComboBox::highlightedIndex
-
- This property holds the index of the highlighted item in the combo box popup list.
-
- When a highlighted item is activated, the popup is closed, \l currentIndex
- is set to \c highlightedIndex, and the value of this property is reset to
- \c -1, as there is no longer a highlighted item.
-
- \sa highlighted(), currentIndex
-*/
-int QQuickComboBox::highlightedIndex() const
-{
- Q_D(const QQuickComboBox);
- return d->highlightedIndex;
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::ComboBox::currentIndex
-
- This property holds the index of the current item in the combo box.
-
- The default value is \c -1 when \l count is \c 0, and \c 0 otherwise.
-
- \sa activated(), currentText, highlightedIndex
-*/
-int QQuickComboBox::currentIndex() const
-{
- Q_D(const QQuickComboBox);
- return d->currentIndex;
-}
-
-void QQuickComboBox::setCurrentIndex(int index)
-{
- Q_D(QQuickComboBox);
- d->hasCurrentIndex = true;
- d->setCurrentIndex(index, NoActivate);
-}
-
-/*!
- \readonly
- \qmlproperty string QtQuick.Controls::ComboBox::currentText
-
- This property holds the text of the current item in the combo box.
-
- \sa currentIndex, displayText, textRole, editText
-*/
-QString QQuickComboBox::currentText() const
-{
- Q_D(const QQuickComboBox);
- return d->currentText;
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::ComboBox::displayText
-
- This property holds the text that is displayed on the combo box button.
-
- By default, the display text presents the current selection. That is,
- it follows the text of the current item. However, the default display
- text can be overridden with a custom value.
-
- \code
- ComboBox {
- currentIndex: 1
- displayText: "Size: " + currentText
- model: ["S", "M", "L"]
- }
- \endcode
-
- \sa currentText, textRole
-*/
-QString QQuickComboBox::displayText() const
-{
- Q_D(const QQuickComboBox);
- return d->displayText;
-}
-
-void QQuickComboBox::setDisplayText(const QString &text)
-{
- Q_D(QQuickComboBox);
- d->hasDisplayText = true;
- if (d->displayText == text)
- return;
-
- d->displayText = text;
- maybeSetAccessibleName(text);
- emit displayTextChanged();
-}
-
-void QQuickComboBox::resetDisplayText()
-{
- Q_D(QQuickComboBox);
- if (!d->hasDisplayText)
- return;
-
- d->hasDisplayText = false;
- d->updateCurrentText();
-}
-
-
-/*!
- \qmlproperty string QtQuick.Controls::ComboBox::textRole
-
- This property holds the model role used for populating the combo box.
-
- When the model has multiple roles, \c textRole can be set to determine
- which role should be displayed.
-
- \sa model, currentText, displayText, {ComboBox Model Roles}
-*/
-QString QQuickComboBox::textRole() const
-{
- Q_D(const QQuickComboBox);
- return d->textRole;
-}
-
-void QQuickComboBox::setTextRole(const QString &role)
-{
- Q_D(QQuickComboBox);
- if (d->textRole == role)
- return;
-
- d->textRole = role;
- if (isComponentComplete())
- d->updateCurrentText();
- emit textRoleChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.14 (Qt 5.14)
- \qmlproperty string QtQuick.Controls::ComboBox::valueRole
-
- This property holds the model role used for storing the value associated
- with each item in the model.
-
- For an example of how to use this property, see \l {ComboBox Model Roles}.
-
- \sa model, currentValue
-*/
-QString QQuickComboBox::valueRole() const
-{
- Q_D(const QQuickComboBox);
- return d->valueRole;
-}
-
-void QQuickComboBox::setValueRole(const QString &role)
-{
- Q_D(QQuickComboBox);
- if (d->valueRole == role)
- return;
-
- d->valueRole = role;
- if (isComponentComplete())
- d->updateCurrentValue();
- emit valueRoleChanged();
-}
-
-/*!
- \qmlproperty Component QtQuick.Controls::ComboBox::delegate
-
- This property holds a delegate that presents an item in the combo box popup.
-
- It is recommended to use \l ItemDelegate (or any other \l AbstractButton
- derivatives) as the delegate. This ensures that the interaction works as
- expected, and the popup will automatically close when appropriate. When
- other types are used as the delegate, the popup must be closed manually.
- For example, if \l MouseArea is used:
-
- \code
- delegate: Rectangle {
- // ...
- MouseArea {
- // ...
- onClicked: comboBox.popup.close()
- }
- }
- \endcode
-
- \sa ItemDelegate, {Customizing ComboBox}
-*/
-QQmlComponent *QQuickComboBox::delegate() const
-{
- Q_D(const QQuickComboBox);
- return d->delegate;
-}
-
-void QQuickComboBox::setDelegate(QQmlComponent* delegate)
-{
- Q_D(QQuickComboBox);
- if (d->delegate == delegate)
- return;
-
- delete d->delegate;
- d->delegate = delegate;
- QQmlDelegateModel *delegateModel = qobject_cast<QQmlDelegateModel*>(d->delegateModel);
- if (delegateModel)
- delegateModel->setDelegate(d->delegate);
- emit delegateChanged();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::ComboBox::indicator
-
- This property holds the drop indicator item.
-
- \sa {Customizing ComboBox}
-*/
-QQuickItem *QQuickComboBox::indicator() const
-{
- QQuickComboBoxPrivate *d = const_cast<QQuickComboBoxPrivate *>(d_func());
- if (!d->indicator)
- d->executeIndicator();
- return d->indicator;
-}
-
-void QQuickComboBox::setIndicator(QQuickItem *indicator)
-{
- Q_D(QQuickComboBox);
- if (d->indicator == indicator)
- return;
-
- if (!d->indicator.isExecuting())
- d->cancelIndicator();
-
- const qreal oldImplicitIndicatorWidth = implicitIndicatorWidth();
- const qreal oldImplicitIndicatorHeight = implicitIndicatorHeight();
-
- d->removeImplicitSizeListener(d->indicator);
- QQuickControlPrivate::hideOldItem(d->indicator);
- d->indicator = indicator;
- if (indicator) {
- if (!indicator->parentItem())
- indicator->setParentItem(this);
- d->addImplicitSizeListener(indicator);
- }
-
- if (!qFuzzyCompare(oldImplicitIndicatorWidth, implicitIndicatorWidth()))
- emit implicitIndicatorWidthChanged();
- if (!qFuzzyCompare(oldImplicitIndicatorHeight, implicitIndicatorHeight()))
- emit implicitIndicatorHeightChanged();
- if (!d->indicator.isExecuting())
- emit indicatorChanged();
-}
-
-/*!
- \qmlproperty Popup QtQuick.Controls::ComboBox::popup
-
- This property holds the popup.
-
- The popup can be opened or closed manually, if necessary:
-
- \code
- onSpecialEvent: comboBox.popup.close()
- \endcode
-
- \sa {Customizing ComboBox}
-*/
-QQuickPopup *QQuickComboBox::popup() const
-{
- QQuickComboBoxPrivate *d = const_cast<QQuickComboBoxPrivate *>(d_func());
- if (!d->popup)
- d->executePopup(isComponentComplete());
- return d->popup;
-}
-
-void QQuickComboBox::setPopup(QQuickPopup *popup)
-{
- Q_D(QQuickComboBox);
- if (d->popup == popup)
- return;
-
- if (!d->popup.isExecuting())
- d->cancelPopup();
-
- if (d->popup) {
- QObjectPrivate::disconnect(d->popup.data(), &QQuickPopup::visibleChanged, d, &QQuickComboBoxPrivate::popupVisibleChanged);
- QQuickComboBoxPrivate::hideOldPopup(d->popup);
- }
- if (popup) {
- QQuickPopupPrivate::get(popup)->allowVerticalFlip = true;
- popup->setClosePolicy(QQuickPopup::CloseOnEscape | QQuickPopup::CloseOnPressOutsideParent);
- QObjectPrivate::connect(popup, &QQuickPopup::visibleChanged, d, &QQuickComboBoxPrivate::popupVisibleChanged);
-
- if (QQuickItemView *itemView = popup->findChild<QQuickItemView *>())
- itemView->setHighlightRangeMode(QQuickItemView::NoHighlightRange);
- }
- d->popup = popup;
- if (!d->popup.isExecuting())
- emit popupChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlproperty bool QtQuick.Controls::ComboBox::flat
-
- This property holds whether the combo box button is flat.
-
- A flat combo box button does not draw a background unless it is interacted
- with. In comparison to normal combo boxes, flat combo boxes provide looks
- that make them stand out less from the rest of the UI. For instance, when
- placing a combo box into a tool bar, it may be desirable to make the combo
- box flat so it matches better with the flat looks of tool buttons.
-
- The default value is \c false.
-*/
-bool QQuickComboBox::isFlat() const
-{
- Q_D(const QQuickComboBox);
- return d->flat;
-}
-
-void QQuickComboBox::setFlat(bool flat)
-{
- Q_D(QQuickComboBox);
- if (d->flat == flat)
- return;
-
- d->flat = flat;
- emit flatChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty bool QtQuick.Controls::ComboBox::down
-
- This property holds whether the combo box button is visually down.
-
- Unless explicitly set, this property is \c true when either \c pressed
- or \c popup.visible is \c true. To return to the default value, set this
- property to \c undefined.
-
- \sa pressed, popup
-*/
-bool QQuickComboBox::isDown() const
-{
- Q_D(const QQuickComboBox);
- return d->down;
-}
-
-void QQuickComboBox::setDown(bool down)
-{
- Q_D(QQuickComboBox);
- d->hasDown = true;
-
- if (d->down == down)
- return;
-
- d->down = down;
- emit downChanged();
-}
-
-void QQuickComboBox::resetDown()
-{
- Q_D(QQuickComboBox);
- if (!d->hasDown)
- return;
-
- setDown(d->pressed || d->isPopupVisible());
- d->hasDown = false;
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty bool QtQuick.Controls::ComboBox::editable
-
- This property holds whether the combo box is editable.
-
- The default value is \c false.
-
- \sa validator
-*/
-bool QQuickComboBox::isEditable() const
-{
- Q_D(const QQuickComboBox);
- return d->extra.isAllocated() && d->extra->editable;
-}
-
-void QQuickComboBox::setEditable(bool editable)
-{
- Q_D(QQuickComboBox);
- if (editable == isEditable())
- return;
-
- if (d->contentItem) {
- if (editable) {
- d->contentItem->installEventFilter(this);
- if (QQuickTextInput *input = qobject_cast<QQuickTextInput *>(d->contentItem)) {
- QObjectPrivate::connect(input, &QQuickTextInput::textChanged, d, &QQuickComboBoxPrivate::updateEditText);
- QObjectPrivate::connect(input, &QQuickTextInput::accepted, d, &QQuickComboBoxPrivate::acceptInput);
- }
-#if QT_CONFIG(cursor)
- d->contentItem->setCursor(Qt::IBeamCursor);
-#endif
- } else {
- d->contentItem->removeEventFilter(this);
- if (QQuickTextInput *input = qobject_cast<QQuickTextInput *>(d->contentItem)) {
- QObjectPrivate::disconnect(input, &QQuickTextInput::textChanged, d, &QQuickComboBoxPrivate::updateEditText);
- QObjectPrivate::disconnect(input, &QQuickTextInput::accepted, d, &QQuickComboBoxPrivate::acceptInput);
- }
-#if QT_CONFIG(cursor)
- d->contentItem->unsetCursor();
-#endif
- }
- }
-
- d->extra.value().editable = editable;
- setAccessibleProperty("editable", editable);
- emit editableChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty string QtQuick.Controls::ComboBox::editText
-
- This property holds the text in the text field of an editable combo box.
-
- \sa editable, currentText, displayText
-*/
-QString QQuickComboBox::editText() const
-{
- Q_D(const QQuickComboBox);
- return d->extra.isAllocated() ? d->extra->editText : QString();
-}
-
-void QQuickComboBox::setEditText(const QString &text)
-{
- Q_D(QQuickComboBox);
- if (text == editText())
- return;
-
- d->extra.value().editText = text;
- emit editTextChanged();
-}
-
-void QQuickComboBox::resetEditText()
-{
- setEditText(QString());
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty Validator QtQuick.Controls::ComboBox::validator
-
- This property holds an input text validator for an editable combo box.
-
- When a validator is set, the text field will only accept input which
- leaves the text property in an intermediate state. The \l accepted signal
- will only be emitted if the text is in an acceptable state when the
- \uicontrol Return or \uicontrol Enter key is pressed.
-
- The currently supported validators are \l[QtQuick]{IntValidator},
- \l[QtQuick]{DoubleValidator}, and \l[QtQuick]{RegularExpressionValidator}. An
- example of using validators is shown below, which allows input of
- integers between \c 0 and \c 10 into the text field:
-
- \code
- ComboBox {
- model: 10
- editable: true
- validator: IntValidator {
- top: 9
- bottom: 0
- }
- }
- \endcode
-
- \sa acceptableInput, accepted, editable
-*/
-QValidator *QQuickComboBox::validator() const
-{
- Q_D(const QQuickComboBox);
- return d->extra.isAllocated() ? d->extra->validator : nullptr;
-}
-
-void QQuickComboBox::setValidator(QValidator *validator)
-{
- Q_D(QQuickComboBox);
- if (validator == QQuickComboBox::validator())
- return;
-
- d->extra.value().validator = validator;
-#if QT_CONFIG(validator)
- if (validator)
- validator->setLocale(d->locale);
-#endif
- emit validatorChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty flags QtQuick.Controls::ComboBox::inputMethodHints
-
- Provides hints to the input method about the expected content of the combo box and how it
- should operate.
-
- The default value is \c Qt.ImhNoPredictiveText.
-
- \include inputmethodhints.qdocinc
-*/
-Qt::InputMethodHints QQuickComboBox::inputMethodHints() const
-{
- Q_D(const QQuickComboBox);
- return d->extra.isAllocated() ? d->extra->inputMethodHints : Qt::ImhNoPredictiveText;
-}
-
-void QQuickComboBox::setInputMethodHints(Qt::InputMethodHints hints)
-{
- Q_D(QQuickComboBox);
- d->setInputMethodHints(hints);
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty bool QtQuick.Controls::ComboBox::inputMethodComposing
- \readonly
-
- This property holds whether an editable combo box has partial text input from an input method.
-
- While it is composing, an input method may rely on mouse or key events from the combo box to
- edit or commit the partial text. This property can be used to determine when to disable event
- handlers that may interfere with the correct operation of an input method.
-*/
-bool QQuickComboBox::isInputMethodComposing() const
-{
- Q_D(const QQuickComboBox);
- return d->contentItem && d->contentItem->property("inputMethodComposing").toBool();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty bool QtQuick.Controls::ComboBox::acceptableInput
- \readonly
-
- This property holds whether the combo box contains acceptable text in the editable text field.
-
- If a validator has been set, the value is \c true only if the current text is acceptable
- to the validator as a final string (not as an intermediate string).
-
- \sa validator, accepted
-*/
-bool QQuickComboBox::hasAcceptableInput() const
-{
- Q_D(const QQuickComboBox);
- return d->m_acceptableInput;
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::ComboBox::implicitIndicatorWidth
- \readonly
-
- This property holds the implicit indicator width.
-
- The value is equal to \c {indicator ? indicator.implicitWidth : 0}.
-
- This is typically used, together with \l {Control::}{implicitContentWidth} and
- \l {Control::}{implicitBackgroundWidth}, to calculate the \l {Item::}{implicitWidth}.
-
- \sa implicitIndicatorHeight
-*/
-qreal QQuickComboBox::implicitIndicatorWidth() const
-{
- Q_D(const QQuickComboBox);
- if (!d->indicator)
- return 0;
- return d->indicator->implicitWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::ComboBox::implicitIndicatorHeight
- \readonly
-
- This property holds the implicit indicator height.
-
- The value is equal to \c {indicator ? indicator.implicitHeight : 0}.
-
- This is typically used, together with \l {Control::}{implicitContentHeight} and
- \l {Control::}{implicitBackgroundHeight}, to calculate the \l {Item::}{implicitHeight}.
-
- \sa implicitIndicatorWidth
-*/
-qreal QQuickComboBox::implicitIndicatorHeight() const
-{
- Q_D(const QQuickComboBox);
- if (!d->indicator)
- return 0;
- return d->indicator->implicitHeight();
-}
-
-/*!
- \readonly
- \since QtQuick.Controls 2.14 (Qt 5.14)
- \qmlproperty string QtQuick.Controls::ComboBox::currentValue
-
- This property holds the value of the current item in the combo box.
-
- For an example of how to use this property, see \l {ComboBox Model Roles}.
-
- \sa currentIndex, currentText, valueRole
-*/
-QVariant QQuickComboBox::currentValue() const
-{
- Q_D(const QQuickComboBox);
- return d->currentValue;
-}
-
-QVariant QQuickComboBox::valueAt(int index) const
-{
- Q_D(const QQuickComboBox);
- if (!d->isValidIndex(index))
- return QVariant();
-
- const QString effectiveValueRole = d->valueRole.isEmpty() ? QStringLiteral("modelData") : d->valueRole;
- return d->delegateModel->variantValue(index, effectiveValueRole);
-}
-
-/*!
- \since QtQuick.Controls 2.14 (Qt 5.14)
- \qmlmethod int QtQuick.Controls::ComboBox::indexOfValue(object value)
-
- Returns the index of the specified \a value, or \c -1 if no match is found.
-
- For an example of how to use this method, see \l {ComboBox Model Roles}.
-
- \include qquickcombobox.qdocinc functions-after-component-completion
-
- \sa find(), currentValue, currentIndex, valueRole
-*/
-int QQuickComboBox::indexOfValue(const QVariant &value) const
-{
- for (int i = 0; i < count(); ++i) {
- const QVariant ourValue = valueAt(i);
- if (value == ourValue)
- return i;
- }
- return -1;
-}
-
-/*!
- \since QtQuick.Controls 2.15 (Qt 5.15)
- \qmlproperty bool QtQuick.Controls::ComboBox::selectTextByMouse
-
- This property holds whether the text field for an editable ComboBox
- can be selected with the mouse.
-
- The default value is \c false.
-*/
-bool QQuickComboBox::selectTextByMouse() const
-{
- Q_D(const QQuickComboBox);
- return d->extra.isAllocated() ? d->extra->selectTextByMouse : false;
-}
-
-void QQuickComboBox::setSelectTextByMouse(bool canSelect)
-{
- Q_D(QQuickComboBox);
- if (canSelect == selectTextByMouse())
- return;
-
- d->extra.value().selectTextByMouse = canSelect;
- emit selectTextByMouseChanged();
-}
-
-/*!
- \since QtQuick.Controls 6.0 (Qt 6.0)
- \qmlproperty enumeration QtQuick.Controls::ComboBox::implicitContentWidthPolicy
-
- This property controls how the \l{Control::}{implicitContentWidth} of the ComboBox is
- calculated.
-
- When the width of a ComboBox is not large enough to display text, that text
- is elided. Depending on which parts of the text are elided, this can make
- selecting an item difficult for the end user. An efficient way of ensuring
- that a ComboBox is wide enough to avoid text being elided is to set a width
- that is known to be large enough:
-
- \code
- width: 300
- implicitContentWidthPolicy: ComboBox.ContentItemImplicitWidth
- \endcode
-
- However, it is often not possible to know whether or not a hard-coded value
- will be large enough, as the size of text depends on many factors, such as
- font family, font size, translations, and so on.
-
- implicitContentWidthPolicy provides an easy way to control how the
- implicitContentWidth is calculated, which in turn affects the
- \l{Item::}{implicitWidth} of the ComboBox and ensures that text will not be elided.
-
- The available values are:
-
- \value ContentItemImplicitWidth
- The implicitContentWidth will default to that of the \l{Control::}{contentItem}.
- This is the most efficient option, as no extra text layout is done.
- \value WidestText
- The implicitContentWidth will be set to the implicit width of the
- the largest text for the given \l textRole every time the model
- changes.
- This option should be used with smaller models, as it can be expensive.
- \value WidestTextWhenCompleted
- The implicitContentWidth will be set to the implicit width of the
- the largest text for the given \l textRole once after
- \l {QQmlParserStatus::componentComplete()}{component completion}.
- This option should be used with smaller models, as it can be expensive.
-
- The default value is \c ContentItemImplicitWidth.
-
- As this property only affects the \c implicitWidth of the ComboBox, setting
- an explicit \l{Item::}{width} can still result in eliding.
-
- \note This feature requires the contentItem to be a type derived from
- \l TextInput.
-
- \note This feature requires text to be laid out, and can therefore be
- expensive for large models or models whose contents are updated
- frequently.
-*/
-QQuickComboBox::ImplicitContentWidthPolicy QQuickComboBox::implicitContentWidthPolicy() const
-{
- Q_D(const QQuickComboBox);
- return d->implicitContentWidthPolicy;
-}
-
-void QQuickComboBox::setImplicitContentWidthPolicy(QQuickComboBox::ImplicitContentWidthPolicy policy)
-{
- Q_D(QQuickComboBox);
- if (policy == d->implicitContentWidthPolicy)
- return;
-
- d->implicitContentWidthPolicy = policy;
- d->maybeUpdateImplicitContentWidth();
- emit implicitContentWidthPolicyChanged();
-}
-/*!
- \qmlmethod string QtQuick.Controls::ComboBox::textAt(int index)
-
- Returns the text for the specified \a index, or an empty string
- if the index is out of bounds.
-
- \include qquickcombobox.qdocinc functions-after-component-completion
- For example:
- \snippet qtquickcontrols2-combobox-textat.qml textat
-
- \sa textRole
-*/
-QString QQuickComboBox::textAt(int index) const
-{
- Q_D(const QQuickComboBox);
- if (!d->isValidIndex(index))
- return QString();
-
- return d->delegateModel->stringValue(index, d->effectiveTextRole());
-}
-
-/*!
- \qmlmethod int QtQuick.Controls::ComboBox::find(string text, enumeration flags)
-
- Returns the index of the specified \a text, or \c -1 if no match is found.
-
- The way the search is performed is defined by the specified match \a flags. By default,
- combo box performs case sensitive exact matching (\c Qt.MatchExactly). All other match
- types are case-insensitive unless the \c Qt.MatchCaseSensitive flag is also specified.
-
- \value Qt.MatchExactly The search term matches exactly (default).
- \value Qt.MatchRegularExpression The search term matches as a regular expression.
- \value Qt.MatchWildcard The search term matches using wildcards.
- \value Qt.MatchFixedString The search term matches as a fixed string.
- \value Qt.MatchStartsWith The search term matches the start of the item.
- \value Qt.MatchEndsWidth The search term matches the end of the item.
- \value Qt.MatchContains The search term is contained in the item.
- \value Qt.MatchCaseSensitive The search is case sensitive.
-
- \include qquickcombobox.qdocinc functions-after-component-completion
- For example:
- \snippet qtquickcontrols2-combobox-find.qml find
-
- \sa textRole
-*/
-int QQuickComboBox::find(const QString &text, Qt::MatchFlags flags) const
-{
- Q_D(const QQuickComboBox);
- return d->match(0, text, flags);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::ComboBox::incrementCurrentIndex()
-
- Increments the current index of the combo box, or the highlighted
- index if the popup list is visible.
-
- \sa currentIndex, highlightedIndex
-*/
-void QQuickComboBox::incrementCurrentIndex()
-{
- Q_D(QQuickComboBox);
- d->incrementCurrentIndex();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::ComboBox::decrementCurrentIndex()
-
- Decrements the current index of the combo box, or the highlighted
- index if the popup list is visible.
-
- \sa currentIndex, highlightedIndex
-*/
-void QQuickComboBox::decrementCurrentIndex()
-{
- Q_D(QQuickComboBox);
- d->decrementCurrentIndex();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlmethod void QtQuick.Controls::ComboBox::selectAll()
-
- Selects all the text in the editable text field of the combo box.
-
- \sa editText
-*/
-void QQuickComboBox::selectAll()
-{
- Q_D(QQuickComboBox);
- QQuickTextInput *input = qobject_cast<QQuickTextInput *>(d->contentItem);
- if (!input)
- return;
- input->selectAll();
-}
-
-bool QQuickComboBox::eventFilter(QObject *object, QEvent *event)
-{
- Q_D(QQuickComboBox);
- switch (event->type()) {
- case QEvent::MouseButtonRelease:
- if (d->isPopupVisible())
- d->hidePopup(false);
- break;
- case QEvent::KeyPress: {
- QKeyEvent *ke = static_cast<QKeyEvent *>(event);
- if (d->filterKeyEvent(ke, false))
- return true;
- event->accept();
- if (d->extra.isAllocated())
- d->extra->allowComplete = ke->key() != Qt::Key_Backspace && ke->key() != Qt::Key_Delete;
- break;
- }
- case QEvent::FocusOut:
- if (qGuiApp->focusObject() != this && (!d->popup || !d->popup->hasActiveFocus())) {
- // Only close the popup if focus was transferred somewhere else
- // than to the popup or the popup button (which normally means that
- // the user clicked on the popup button to open it, not close it).
- d->hidePopup(false);
- setPressed(false);
-
- // The focus left the text field, so if the edit text matches an item in the model,
- // change our currentIndex to that. This matches widgets' behavior.
- const int indexForEditText = find(d->extra.value().editText, Qt::MatchFixedString);
- if (indexForEditText > -1)
- setCurrentIndex(indexForEditText);
- }
- break;
-#if QT_CONFIG(im)
- case QEvent::InputMethod:
- if (d->extra.isAllocated())
- d->extra->allowComplete = !static_cast<QInputMethodEvent*>(event)->commitString().isEmpty();
- break;
-#endif
- default:
- break;
- }
- return QQuickControl::eventFilter(object, event);
-}
-
-void QQuickComboBox::focusInEvent(QFocusEvent *event)
-{
- Q_D(QQuickComboBox);
- QQuickControl::focusInEvent(event);
- // Setting focus on TextField should not be done when drop down indicator was clicked
- // That is why, if focus is not set with key reason, it should not be passed to textEdit by default.
- // Focus on Edit Text should be set only intentionally by user.
- if ((event->reason() == Qt::TabFocusReason || event->reason() == Qt::BacktabFocusReason ||
- event->reason() == Qt::ShortcutFocusReason) && d->contentItem && isEditable())
- d->contentItem->forceActiveFocus(event->reason());
-}
-
-void QQuickComboBox::focusOutEvent(QFocusEvent *event)
-{
- Q_D(QQuickComboBox);
- QQuickControl::focusOutEvent(event);
-
- if (qGuiApp->focusObject() != d->contentItem && (!d->popup || !d->popup->hasActiveFocus())) {
- // Only close the popup if focus was transferred
- // somewhere else than to the popup or the inner line edit (which is
- // normally done from QQuickComboBox::focusInEvent).
- d->hidePopup(false);
- setPressed(false);
- }
-}
-
-#if QT_CONFIG(im)
-void QQuickComboBox::inputMethodEvent(QInputMethodEvent *event)
-{
- Q_D(QQuickComboBox);
- QQuickControl::inputMethodEvent(event);
- if (!isEditable() && !event->commitString().isEmpty())
- d->keySearch(event->commitString());
- else
- event->ignore();
-}
-#endif
-
-void QQuickComboBox::keyPressEvent(QKeyEvent *event)
-{
- Q_D(QQuickComboBox);
- QQuickControl::keyPressEvent(event);
-
- switch (event->key()) {
- case Qt::Key_Escape:
- case Qt::Key_Back:
- if (d->isPopupVisible())
- event->accept();
- break;
- case Qt::Key_Space:
- if (!event->isAutoRepeat())
- setPressed(true);
- event->accept();
- break;
- case Qt::Key_Enter:
- case Qt::Key_Return:
- if (d->isPopupVisible())
- setPressed(true);
- event->accept();
- break;
- case Qt::Key_Up:
- d->keyNavigating = true;
- d->decrementCurrentIndex();
- event->accept();
- break;
- case Qt::Key_Down:
- d->keyNavigating = true;
- d->incrementCurrentIndex();
- event->accept();
- break;
- case Qt::Key_Home:
- d->keyNavigating = true;
- if (d->isPopupVisible())
- d->setHighlightedIndex(0, Highlight);
- else
- d->setCurrentIndex(0, Activate);
- event->accept();
- break;
- case Qt::Key_End:
- d->keyNavigating = true;
- if (d->isPopupVisible())
- d->setHighlightedIndex(count() - 1, Highlight);
- else
- d->setCurrentIndex(count() - 1, Activate);
- event->accept();
- break;
- default:
- if (!isEditable() && !event->text().isEmpty())
- d->keySearch(event->text());
- else
- event->ignore();
- break;
- }
-}
-
-void QQuickComboBox::keyReleaseEvent(QKeyEvent *event)
-{
- Q_D(QQuickComboBox);
- QQuickControl::keyReleaseEvent(event);
- d->keyNavigating = false;
- if (event->isAutoRepeat())
- return;
-
- switch (event->key()) {
- case Qt::Key_Space:
- if (!isEditable())
- d->togglePopup(true);
- setPressed(false);
- event->accept();
- break;
- case Qt::Key_Enter:
- case Qt::Key_Return:
- if (!isEditable() || d->isPopupVisible())
- d->hidePopup(d->isPopupVisible());
- setPressed(false);
- event->accept();
- break;
- case Qt::Key_Escape:
- case Qt::Key_Back:
- if (d->isPopupVisible()) {
- d->hidePopup(false);
- setPressed(false);
- event->accept();
- }
- break;
- default:
- break;
- }
-}
-
-#if QT_CONFIG(wheelevent)
-void QQuickComboBox::wheelEvent(QWheelEvent *event)
-{
- Q_D(QQuickComboBox);
- QQuickControl::wheelEvent(event);
- if (d->wheelEnabled && !d->isPopupVisible()) {
- if (event->angleDelta().y() > 0)
- d->decrementCurrentIndex();
- else
- d->incrementCurrentIndex();
- }
-}
-#endif
-
-bool QQuickComboBox::event(QEvent *e)
-{
- Q_D(QQuickComboBox);
- if (e->type() == QEvent::LanguageChange)
- d->updateCurrentTextAndValue();
- return QQuickControl::event(e);
-}
-
-void QQuickComboBox::componentComplete()
-{
- Q_D(QQuickComboBox);
- d->executeIndicator(true);
- QQuickControl::componentComplete();
- if (d->popup)
- d->executePopup(true);
-
- if (d->delegateModel && d->ownModel)
- static_cast<QQmlDelegateModel *>(d->delegateModel)->componentComplete();
-
- if (count() > 0) {
- if (!d->hasCurrentIndex && d->currentIndex == -1)
- setCurrentIndex(0);
- else
- d->updateCurrentTextAndValue();
-
- // If the widest text was already calculated in the call to
- // QQmlDelegateModel::componentComplete() above, then we shouldn't do it here too.
- if (!d->hasCalculatedWidestText)
- d->maybeUpdateImplicitContentWidth();
- }
-}
-
-void QQuickComboBox::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value)
-{
- Q_D(QQuickComboBox);
- QQuickControl::itemChange(change, value);
- if (change == ItemVisibleHasChanged && !value.boolValue) {
- d->hidePopup(false);
- setPressed(false);
- }
-}
-
-void QQuickComboBox::fontChange(const QFont &newFont, const QFont &oldFont)
-{
- Q_D(QQuickComboBox);
- QQuickControl::fontChange(newFont, oldFont);
- d->maybeUpdateImplicitContentWidth();
-}
-
-void QQuickComboBox::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_D(QQuickComboBox);
- if (oldItem) {
- oldItem->removeEventFilter(this);
- if (QQuickTextInput *oldInput = qobject_cast<QQuickTextInput *>(oldItem)) {
- QObjectPrivate::disconnect(oldInput, &QQuickTextInput::accepted, d, &QQuickComboBoxPrivate::acceptInput);
- QObjectPrivate::disconnect(oldInput, &QQuickTextInput::textChanged, d, &QQuickComboBoxPrivate::updateEditText);
- disconnect(oldInput, &QQuickTextInput::inputMethodComposingChanged, this, &QQuickComboBox::inputMethodComposingChanged);
- QObjectPrivate::disconnect(oldInput, &QQuickTextInput::acceptableInputChanged, d, &QQuickComboBoxPrivate::updateAcceptableInput);
- }
- }
- if (newItem && isEditable()) {
- newItem->installEventFilter(this);
- if (QQuickTextInput *newInput = qobject_cast<QQuickTextInput *>(newItem)) {
- QObjectPrivate::connect(newInput, &QQuickTextInput::accepted, d, &QQuickComboBoxPrivate::acceptInput);
- QObjectPrivate::connect(newInput, &QQuickTextInput::textChanged, d, &QQuickComboBoxPrivate::updateEditText);
- connect(newInput, &QQuickTextInput::inputMethodComposingChanged, this, &QQuickComboBox::inputMethodComposingChanged);
- QObjectPrivate::connect(newInput, &QQuickTextInput::acceptableInputChanged, d, &QQuickComboBoxPrivate::updateAcceptableInput);
- }
-#if QT_CONFIG(cursor)
- newItem->setCursor(Qt::IBeamCursor);
-#endif
- }
-
- d->updateAcceptableInput();
-}
-
-void QQuickComboBox::localeChange(const QLocale &newLocale, const QLocale &oldLocale)
-{
- QQuickControl::localeChange(newLocale, oldLocale);
-#if QT_CONFIG(validator)
- if (QValidator *v = validator())
- v->setLocale(newLocale);
-#endif
-}
-
-QFont QQuickComboBox::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::ComboBox);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickComboBox::accessibleRole() const
-{
- return QAccessible::ComboBox;
-}
-
-void QQuickComboBox::accessibilityActiveChanged(bool active)
-{
- Q_D(QQuickComboBox);
- QQuickControl::accessibilityActiveChanged(active);
-
- if (active) {
- maybeSetAccessibleName(d->hasDisplayText ? d->displayText : d->currentText);
- setAccessibleProperty("editable", isEditable());
- }
-}
-#endif //
-
-QT_END_NAMESPACE
-
-#include "moc_qquickcombobox_p.cpp"
diff --git a/src/quicktemplates2/qquickcombobox_p.h b/src/quicktemplates2/qquickcombobox_p.h
deleted file mode 100644
index 71dd8366..00000000
--- a/src/quicktemplates2/qquickcombobox_p.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCOMBOBOX_P_H
-#define QQUICKCOMBOBOX_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qloggingcategory.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_DECLARE_LOGGING_CATEGORY(lcItemManagement)
-
-class QValidator;
-class QQuickPopup;
-class QQmlInstanceModel;
-class QQuickComboBoxPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickComboBox : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(int count READ count NOTIFY countChanged FINAL)
- Q_PROPERTY(QVariant model READ model WRITE setModel NOTIFY modelChanged FINAL)
- Q_PROPERTY(QQmlInstanceModel *delegateModel READ delegateModel NOTIFY delegateModelChanged FINAL)
- Q_PROPERTY(bool pressed READ isPressed NOTIFY pressedChanged FINAL)
- Q_PROPERTY(int highlightedIndex READ highlightedIndex NOTIFY highlightedIndexChanged FINAL)
- Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged FINAL)
- Q_PROPERTY(QString currentText READ currentText NOTIFY currentTextChanged FINAL)
- Q_PROPERTY(QString displayText READ displayText WRITE setDisplayText RESET resetDisplayText NOTIFY displayTextChanged FINAL)
- Q_PROPERTY(QString textRole READ textRole WRITE setTextRole NOTIFY textRoleChanged FINAL)
- Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged FINAL)
- Q_PROPERTY(QQuickItem *indicator READ indicator WRITE setIndicator NOTIFY indicatorChanged FINAL)
- Q_PROPERTY(QQuickPopup *popup READ popup WRITE setPopup NOTIFY popupChanged FINAL)
- // 2.1 (Qt 5.8)
- Q_PROPERTY(bool flat READ isFlat WRITE setFlat NOTIFY flatChanged FINAL REVISION(2, 1))
- // 2.2 (Qt 5.9)
- Q_PROPERTY(bool down READ isDown WRITE setDown RESET resetDown NOTIFY downChanged FINAL REVISION(2, 2))
- Q_PROPERTY(bool editable READ isEditable WRITE setEditable NOTIFY editableChanged FINAL REVISION(2, 2))
- Q_PROPERTY(QString editText READ editText WRITE setEditText RESET resetEditText NOTIFY editTextChanged FINAL REVISION(2, 2))
- Q_PROPERTY(QValidator *validator READ validator WRITE setValidator NOTIFY validatorChanged FINAL REVISION(2, 2))
- Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints WRITE setInputMethodHints NOTIFY inputMethodHintsChanged FINAL REVISION(2, 2))
- Q_PROPERTY(bool inputMethodComposing READ isInputMethodComposing NOTIFY inputMethodComposingChanged FINAL REVISION(2, 2))
- Q_PROPERTY(bool acceptableInput READ hasAcceptableInput NOTIFY acceptableInputChanged FINAL REVISION(2, 2))
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal implicitIndicatorWidth READ implicitIndicatorWidth NOTIFY implicitIndicatorWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitIndicatorHeight READ implicitIndicatorHeight NOTIFY implicitIndicatorHeightChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "background,contentItem,indicator,popup")
- // 2.14 (Qt 5.14)
- Q_PROPERTY(QVariant currentValue READ currentValue NOTIFY currentValueChanged FINAL REVISION(2, 14))
- Q_PROPERTY(QString valueRole READ valueRole WRITE setValueRole NOTIFY valueRoleChanged FINAL REVISION(2, 14))
- // 2.15 (Qt 5.15)
- Q_PROPERTY(bool selectTextByMouse READ selectTextByMouse WRITE setSelectTextByMouse NOTIFY selectTextByMouseChanged FINAL REVISION(2, 15))
- // 6.0 (Qt 6.0)
- Q_PROPERTY(ImplicitContentWidthPolicy implicitContentWidthPolicy READ implicitContentWidthPolicy
- WRITE setImplicitContentWidthPolicy NOTIFY implicitContentWidthPolicyChanged FINAL REVISION(6, 0))
- QML_NAMED_ELEMENT(ComboBox)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickComboBox(QQuickItem *parent = nullptr);
- ~QQuickComboBox();
-
- int count() const;
-
- QVariant model() const;
- void setModel(const QVariant &model);
- QQmlInstanceModel *delegateModel() const;
-
- bool isPressed() const;
- void setPressed(bool pressed);
-
- int highlightedIndex() const;
-
- int currentIndex() const;
- void setCurrentIndex(int index);
-
- QString currentText() const;
-
- QString displayText() const;
- void setDisplayText(const QString &text);
- void resetDisplayText();
-
- QString textRole() const;
- void setTextRole(const QString &role);
-
- QString valueRole() const;
- void setValueRole(const QString &role);
-
- QQmlComponent *delegate() const;
- void setDelegate(QQmlComponent *delegate);
-
- QQuickItem *indicator() const;
- void setIndicator(QQuickItem *indicator);
-
- QQuickPopup *popup() const;
- void setPopup(QQuickPopup *popup);
-
- Q_INVOKABLE QString textAt(int index) const;
- Q_INVOKABLE int find(const QString &text, Qt::MatchFlags flags = Qt::MatchExactly) const;
-
- // 2.1 (Qt 5.8)
- bool isFlat() const;
- void setFlat(bool flat);
-
- // 2.2 (Qt 5.9)
- bool isDown() const;
- void setDown(bool down);
- void resetDown();
-
- bool isEditable() const;
- void setEditable(bool editable);
-
- QString editText() const;
- void setEditText(const QString &text);
- void resetEditText();
-
- QValidator *validator() const;
- void setValidator(QValidator *validator);
-
- Qt::InputMethodHints inputMethodHints() const;
- void setInputMethodHints(Qt::InputMethodHints hints);
-
- bool isInputMethodComposing() const;
- bool hasAcceptableInput() const;
-
- // 2.5 (Qt 5.12)
- qreal implicitIndicatorWidth() const;
- qreal implicitIndicatorHeight() const;
-
- // 2.14 (Qt 5.14)
- QVariant currentValue() const;
- Q_REVISION(2, 14) Q_INVOKABLE QVariant valueAt(int index) const;
- Q_REVISION(2, 14) Q_INVOKABLE int indexOfValue(const QVariant &value) const;
-
- // 2.15 (Qt 5.15)
- bool selectTextByMouse() const;
- void setSelectTextByMouse(bool canSelect);
-
- // 6.0 (Qt 6.0)
- enum ImplicitContentWidthPolicy {
- ContentItemImplicitWidth,
- WidestText,
- WidestTextWhenCompleted
- };
- Q_ENUM(ImplicitContentWidthPolicy)
-
- ImplicitContentWidthPolicy implicitContentWidthPolicy() const;
- void setImplicitContentWidthPolicy(ImplicitContentWidthPolicy policy);
-
-public Q_SLOTS:
- void incrementCurrentIndex();
- void decrementCurrentIndex();
- Q_REVISION(2, 2) void selectAll();
-
-Q_SIGNALS:
- void activated(int index);
- void highlighted(int index);
- void countChanged();
- void modelChanged();
- void delegateModelChanged();
- void pressedChanged();
- void highlightedIndexChanged();
- void currentIndexChanged();
- void currentTextChanged();
- void displayTextChanged();
- void textRoleChanged();
- void delegateChanged();
- void indicatorChanged();
- void popupChanged();
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) void flatChanged();
- // 2.2 (Qt 5.9)
- Q_REVISION(2, 2) void accepted();
- Q_REVISION(2, 2) void downChanged();
- Q_REVISION(2, 2) void editableChanged();
- Q_REVISION(2, 2) void editTextChanged();
- Q_REVISION(2, 2) void validatorChanged();
- Q_REVISION(2, 2) void inputMethodHintsChanged();
- Q_REVISION(2, 2) void inputMethodComposingChanged();
- Q_REVISION(2, 2) void acceptableInputChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void implicitIndicatorWidthChanged();
- Q_REVISION(2, 5) void implicitIndicatorHeightChanged();
- // 2.14 (Qt 5.14)
- Q_REVISION(2, 14) void valueRoleChanged();
- Q_REVISION(2, 14) void currentValueChanged();
- // 2.15 (Qt 5.15)
- Q_REVISION(2, 15) void selectTextByMouseChanged();
- // 6.0 (Qt 6.0)
- Q_REVISION(6, 0) void implicitContentWidthPolicyChanged();
-
-protected:
- bool eventFilter(QObject *object, QEvent *event) override;
- void focusInEvent(QFocusEvent *event) override;
- void focusOutEvent(QFocusEvent *event) override;
-#if QT_CONFIG(im)
- void inputMethodEvent(QInputMethodEvent *event) override;
-#endif
- void keyPressEvent(QKeyEvent *event) override;
- void keyReleaseEvent(QKeyEvent *event) override;
-#if QT_CONFIG(wheelevent)
- void wheelEvent(QWheelEvent *event) override;
-#endif
- bool event(QEvent *e) override;
-
- void componentComplete() override;
- void itemChange(ItemChange change, const ItemChangeData &value) override;
- void fontChange(const QFont &newFont, const QFont &oldFont) override;
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
- void localeChange(const QLocale &newLocale, const QLocale &oldLocale) override;
-
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
- void accessibilityActiveChanged(bool active) override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickComboBox)
- Q_DECLARE_PRIVATE(QQuickComboBox)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickComboBox)
-
-#endif // QQUICKCOMBOBOX_P_H
diff --git a/src/quicktemplates2/qquickcontainer.cpp b/src/quicktemplates2/qquickcontainer.cpp
deleted file mode 100644
index c46d9660..00000000
--- a/src/quicktemplates2/qquickcontainer.cpp
+++ /dev/null
@@ -1,912 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickcontainer_p.h"
-#include "qquickcontainer_p_p.h"
-
-#include <QtQuick/private/qquickflickable_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Container
- \inherits Control
-//! \instantiates QQuickContainer
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-containers
- \brief Abstract base type providing functionality common to containers.
-
- Container is the base type of container-like user interface controls that
- allow dynamic insertion and removal of items.
-
- \section2 Using Containers
-
- Typically, items are statically declared as children of Container, but it
- is also possible to \l {addItem}{add}, \l {insertItem}{insert},
- \l {moveItem}{move} and \l {removeItem}{remove} items dynamically. The
- items in a container can be accessed using \l itemAt() or
- \l contentChildren.
-
- Most containers have the concept of a "current" item. The current item is
- specified via the \l currentIndex property, and can be accessed using the
- read-only \l currentItem property.
-
- The following example illustrates dynamic insertion of items to a \l TabBar,
- which is one of the concrete implementations of Container.
-
- \code
- Row {
- TabBar {
- id: tabBar
-
- currentIndex: 0
- width: parent.width - addButton.width
-
- TabButton { text: "TabButton" }
- }
-
- Component {
- id: tabButton
- TabButton { text: "TabButton" }
- }
-
- Button {
- id: addButton
- text: "+"
- flat: true
- onClicked: {
- tabBar.addItem(tabButton.createObject(tabBar))
- console.log("added:", tabBar.itemAt(tabBar.count - 1))
- }
- }
- }
- \endcode
-
- \section2 Managing the Current Index
-
- When using multiple containers, such as \l TabBar and \l SwipeView, together,
- their \l currentIndex properties can be bound to each other to keep them in
- sync. When the user interacts with either container, its current index changes
- automatically propagate to the other container.
-
- Notice, however, that assigning a \c currentIndex value in JavaScript removes
- the respective binding. In order to retain the bindings, use the following
- methods to alter the current index:
-
- \list
- \li \l incrementCurrentIndex()
- \li \l decrementCurrentIndex()
- \li \l setCurrentIndex()
- \endlist
-
- \code
- TabBar {
- id: tabBar
- currentIndex: swipeView.currentIndex
- }
-
- SwipeView {
- id: swipeView
- currentIndex: tabBar.currentIndex
- }
-
- Button {
- text: qsTr("Home")
- onClicked: swipeView.setCurrentIndex(0)
- enabled: swipeView.currentIndex != 0
- }
-
- Button {
- text: qsTr("Previous")
- onClicked: swipeView.decrementCurrentIndex()
- enabled: swipeView.currentIndex > 0
- }
-
- Button {
- text: qsTr("Next")
- onClicked: swipeView.incrementCurrentIndex()
- enabled: swipeView.currentIndex < swipeView.count - 1
- }
- \endcode
-
-
- \section2 Implementing Containers
-
- Container does not provide any default visualization. It is used to implement
- such containers as \l SwipeView and \l TabBar. When implementing a custom
- container, the most important part of the API is \l contentModel, which provides
- the contained items in a way that it can be used as a delegate model for item
- views and repeaters.
-
- \code
- Container {
- id: container
-
- contentItem: ListView {
- model: container.contentModel
- snapMode: ListView.SnapOneItem
- orientation: ListView.Horizontal
- }
-
- Text {
- text: "Page 1"
- width: container.width
- height: container.height
- }
-
- Text {
- text: "Page 2"
- width: container.width
- height: container.height
- }
- }
- \endcode
-
- Notice how the sizes of the page items are set by hand. This is because the
- example uses a plain Container, which does not make any assumptions on the
- visual layout. It is typically not necessary to specify sizes for items in
- concrete Container implementations, such as \l SwipeView and \l TabBar.
-
- \sa {Container Controls}
-*/
-
-static QQuickItem *effectiveContentItem(QQuickItem *item)
-{
- QQuickFlickable *flickable = qobject_cast<QQuickFlickable *>(item);
- if (flickable)
- return flickable->contentItem();
- return item;
-}
-
-void QQuickContainerPrivate::init()
-{
- Q_Q(QQuickContainer);
- contentModel = new QQmlObjectModel(q);
- QObject::connect(contentModel, &QQmlObjectModel::countChanged, q, &QQuickContainer::countChanged);
- QObject::connect(contentModel, &QQmlObjectModel::childrenChanged, q, &QQuickContainer::contentChildrenChanged);
- connect(q, &QQuickControl::implicitContentWidthChanged, this, &QQuickContainerPrivate::updateContentWidth);
- connect(q, &QQuickControl::implicitContentHeightChanged, this, &QQuickContainerPrivate::updateContentHeight);
-}
-
-void QQuickContainerPrivate::cleanup()
-{
- Q_Q(QQuickContainer);
- // ensure correct destruction order (QTBUG-46798)
- const int count = contentModel->count();
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = itemAt(i);
- if (item)
- QQuickItemPrivate::get(item)->removeItemChangeListener(this, changeTypes);
- }
-
- if (contentItem) {
- QQuickItem *focusItem = QQuickItemPrivate::get(contentItem)->subFocusItem;
- if (focusItem && window)
- QQuickWindowPrivate::get(window)->clearFocusInScope(contentItem, focusItem, Qt::OtherFocusReason);
-
- q->contentItemChange(nullptr, contentItem);
- QQuickControlPrivate::hideOldItem(contentItem);
- }
-
- QObject::disconnect(contentModel, &QQmlObjectModel::countChanged, q, &QQuickContainer::countChanged);
- QObject::disconnect(contentModel, &QQmlObjectModel::childrenChanged, q, &QQuickContainer::contentChildrenChanged);
- delete contentModel;
-}
-
-QQuickItem *QQuickContainerPrivate::itemAt(int index) const
-{
- return qobject_cast<QQuickItem *>(contentModel->get(index));
-}
-
-void QQuickContainerPrivate::insertItem(int index, QQuickItem *item)
-{
- Q_Q(QQuickContainer);
- if (!q->isContent(item))
- return;
- contentData.append(item);
-
- updatingCurrent = true;
-
- item->setParentItem(effectiveContentItem(q->contentItem()));
- QQuickItemPrivate::get(item)->addItemChangeListener(this, changeTypes);
- contentModel->insert(index, item);
-
- q->itemAdded(index, item);
-
- int count = contentModel->count();
- for (int i = index + 1; i < count; ++i)
- q->itemMoved(i, itemAt(i));
-
- if (count == 1 && currentIndex == -1)
- q->setCurrentIndex(index);
-
- updatingCurrent = false;
-}
-
-void QQuickContainerPrivate::moveItem(int from, int to, QQuickItem *item)
-{
- Q_Q(QQuickContainer);
- int oldCurrent = currentIndex;
- contentModel->move(from, to);
-
- updatingCurrent = true;
-
- q->itemMoved(to, item);
-
- if (from < to) {
- for (int i = from; i < to; ++i)
- q->itemMoved(i, itemAt(i));
- } else {
- for (int i = from; i > to; --i)
- q->itemMoved(i, itemAt(i));
- }
-
- if (from == oldCurrent)
- q->setCurrentIndex(to);
- else if (from < oldCurrent && to >= oldCurrent)
- q->setCurrentIndex(oldCurrent - 1);
- else if (from > oldCurrent && to <= oldCurrent)
- q->setCurrentIndex(oldCurrent + 1);
-
- updatingCurrent = false;
-}
-
-void QQuickContainerPrivate::removeItem(int index, QQuickItem *item)
-{
- Q_Q(QQuickContainer);
- if (!q->isContent(item))
- return;
- contentData.removeOne(item);
-
- updatingCurrent = true;
-
- int count = contentModel->count();
- bool currentChanged = false;
- if (index == currentIndex && (index != 0 || count == 1)) {
- q->setCurrentIndex(currentIndex - 1);
- } else if (index < currentIndex) {
- --currentIndex;
- currentChanged = true;
- }
-
- QQuickItemPrivate::get(item)->removeItemChangeListener(this, changeTypes);
- item->setParentItem(nullptr);
- contentModel->remove(index);
- --count;
-
- q->itemRemoved(index, item);
-
- for (int i = index; i < count; ++i)
- q->itemMoved(i, itemAt(i));
-
- if (currentChanged)
- emit q->currentIndexChanged();
-
- updatingCurrent = false;
-}
-
-void QQuickContainerPrivate::reorderItems()
-{
- Q_Q(QQuickContainer);
- if (!contentItem)
- return;
-
- QList<QQuickItem *> siblings = effectiveContentItem(contentItem)->childItems();
-
- int to = 0;
- for (int i = 0; i < siblings.count(); ++i) {
- QQuickItem* sibling = siblings.at(i);
- if (QQuickItemPrivate::get(sibling)->isTransparentForPositioner())
- continue;
- int index = contentModel->indexOf(sibling, nullptr);
- q->moveItem(index, to++);
- }
-}
-
-void QQuickContainerPrivate::_q_currentIndexChanged()
-{
- Q_Q(QQuickContainer);
- if (!updatingCurrent)
- q->setCurrentIndex(contentItem ? contentItem->property("currentIndex").toInt() : -1);
-}
-
-void QQuickContainerPrivate::itemChildAdded(QQuickItem *, QQuickItem *child)
-{
- // add dynamically reparented items (eg. by a Repeater)
- if (!QQuickItemPrivate::get(child)->isTransparentForPositioner() && !contentData.contains(child))
- insertItem(contentModel->count(), child);
-}
-
-void QQuickContainerPrivate::itemParentChanged(QQuickItem *item, QQuickItem *parent)
-{
- // remove dynamically unparented items (eg. by a Repeater)
- if (!parent)
- removeItem(contentModel->indexOf(item, nullptr), item);
-}
-
-void QQuickContainerPrivate::itemSiblingOrderChanged(QQuickItem *)
-{
- if (!componentComplete)
- return;
-
- // reorder the restacked items (eg. by a Repeater)
- reorderItems();
-}
-
-void QQuickContainerPrivate::itemDestroyed(QQuickItem *item)
-{
- int index = contentModel->indexOf(item, nullptr);
- if (index != -1)
- removeItem(index, item);
- else
- QQuickControlPrivate::itemDestroyed(item);
-}
-
-void QQuickContainerPrivate::contentData_append(QQmlListProperty<QObject> *prop, QObject *obj)
-{
- QQuickContainer *q = static_cast<QQuickContainer *>(prop->object);
- QQuickContainerPrivate *p = QQuickContainerPrivate::get(q);
- QQuickItem *item = qobject_cast<QQuickItem *>(obj);
- if (item) {
- if (QQuickItemPrivate::get(item)->isTransparentForPositioner())
- item->setParentItem(effectiveContentItem(q->contentItem()));
- else if (p->contentModel->indexOf(item, nullptr) == -1)
- q->addItem(item);
- } else {
- p->contentData.append(obj);
- }
-}
-
-qsizetype QQuickContainerPrivate::contentData_count(QQmlListProperty<QObject> *prop)
-{
- QQuickContainer *q = static_cast<QQuickContainer *>(prop->object);
- return QQuickContainerPrivate::get(q)->contentData.count();
-}
-
-QObject *QQuickContainerPrivate::contentData_at(QQmlListProperty<QObject> *prop, qsizetype index)
-{
- QQuickContainer *q = static_cast<QQuickContainer *>(prop->object);
- return QQuickContainerPrivate::get(q)->contentData.value(index);
-}
-
-void QQuickContainerPrivate::contentData_clear(QQmlListProperty<QObject> *prop)
-{
- QQuickContainer *q = static_cast<QQuickContainer *>(prop->object);
- return QQuickContainerPrivate::get(q)->contentData.clear();
-}
-
-void QQuickContainerPrivate::contentChildren_append(QQmlListProperty<QQuickItem> *prop, QQuickItem *item)
-{
- QQuickContainer *q = static_cast<QQuickContainer *>(prop->object);
- q->addItem(item);
-}
-
-qsizetype QQuickContainerPrivate::contentChildren_count(QQmlListProperty<QQuickItem> *prop)
-{
- QQuickContainer *q = static_cast<QQuickContainer *>(prop->object);
- return QQuickContainerPrivate::get(q)->contentModel->count();
-}
-
-QQuickItem *QQuickContainerPrivate::contentChildren_at(QQmlListProperty<QQuickItem> *prop, qsizetype index)
-{
- QQuickContainer *q = static_cast<QQuickContainer *>(prop->object);
- return q->itemAt(index);
-}
-
-void QQuickContainerPrivate::contentChildren_clear(QQmlListProperty<QQuickItem> *prop)
-{
- QQuickContainer *q = static_cast<QQuickContainer *>(prop->object);
- return QQuickContainerPrivate::get(q)->contentModel->clear();
-}
-
-void QQuickContainerPrivate::updateContentWidth()
-{
- Q_Q(QQuickContainer);
- if (hasContentWidth || qFuzzyCompare(contentWidth, implicitContentWidth))
- return;
-
- contentWidth = implicitContentWidth;
- emit q->contentWidthChanged();
-}
-
-void QQuickContainerPrivate::updateContentHeight()
-{
- Q_Q(QQuickContainer);
- if (hasContentHeight || qFuzzyCompare(contentHeight, implicitContentHeight))
- return;
-
- contentHeight = implicitContentHeight;
- emit q->contentHeightChanged();
-}
-
-QQuickContainer::QQuickContainer(QQuickItem *parent)
- : QQuickControl(*(new QQuickContainerPrivate), parent)
-{
- Q_D(QQuickContainer);
- d->init();
-}
-
-QQuickContainer::QQuickContainer(QQuickContainerPrivate &dd, QQuickItem *parent)
- : QQuickControl(dd, parent)
-{
- Q_D(QQuickContainer);
- d->init();
-}
-
-QQuickContainer::~QQuickContainer()
-{
- Q_D(QQuickContainer);
- d->cleanup();
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::Container::count
- \readonly
-
- This property holds the number of items.
-*/
-int QQuickContainer::count() const
-{
- Q_D(const QQuickContainer);
- return d->contentModel->count();
-}
-
-/*!
- \qmlmethod Item QtQuick.Controls::Container::itemAt(int index)
-
- Returns the item at \a index, or \c null if it does not exist.
-*/
-QQuickItem *QQuickContainer::itemAt(int index) const
-{
- Q_D(const QQuickContainer);
- return d->itemAt(index);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Container::addItem(Item item)
-
- Adds an \a item.
-*/
-void QQuickContainer::addItem(QQuickItem *item)
-{
- Q_D(QQuickContainer);
- insertItem(d->contentModel->count(), item);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Container::insertItem(int index, Item item)
-
- Inserts an \a item at \a index.
-*/
-void QQuickContainer::insertItem(int index, QQuickItem *item)
-{
- Q_D(QQuickContainer);
- if (!item)
- return;
- const int count = d->contentModel->count();
- if (index < 0 || index > count)
- index = count;
-
- int oldIndex = d->contentModel->indexOf(item, nullptr);
- if (oldIndex != -1) {
- if (oldIndex < index)
- --index;
- if (oldIndex != index)
- d->moveItem(oldIndex, index, item);
- } else {
- d->insertItem(index, item);
- }
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Container::moveItem(int from, int to)
-
- Moves an item \a from one index \a to another.
-*/
-void QQuickContainer::moveItem(int from, int to)
-{
- Q_D(QQuickContainer);
- const int count = d->contentModel->count();
- if (from < 0 || from > count - 1)
- return;
- if (to < 0 || to > count - 1)
- to = count - 1;
-
- if (from != to)
- d->moveItem(from, to, d->itemAt(from));
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Container::removeItem(Item item)
-
- Removes and destroys the specified \a item.
-*/
-void QQuickContainer::removeItem(QQuickItem *item)
-{
- Q_D(QQuickContainer);
- if (!item)
- return;
-
- const int index = d->contentModel->indexOf(item, nullptr);
- if (index == -1)
- return;
-
- d->removeItem(index, item);
- item->deleteLater();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod Item QtQuick.Controls::Container::takeItem(int index)
-
- Removes and returns the item at \a index.
-
- \note The ownership of the item is transferred to the caller.
-*/
-QQuickItem *QQuickContainer::takeItem(int index)
-{
- Q_D(QQuickContainer);
- const int count = d->contentModel->count();
- if (index < 0 || index >= count)
- return nullptr;
-
- QQuickItem *item = itemAt(index);
- if (item)
- d->removeItem(index, item);
- return item;
-}
-
-/*!
- \qmlproperty model QtQuick.Controls::Container::contentModel
- \readonly
-
- This property holds the content model of items.
-
- The content model is provided for visualization purposes. It can be assigned
- as a model to a content item that presents the contents of the container.
-
- \code
- Container {
- id: container
- contentItem: ListView {
- model: container.contentModel
- }
- }
- \endcode
-
- \sa contentData, contentChildren
-*/
-QVariant QQuickContainer::contentModel() const
-{
- Q_D(const QQuickContainer);
- return QVariant::fromValue(d->contentModel);
-}
-
-/*!
- \qmlproperty list<Object> QtQuick.Controls::Container::contentData
- \qmldefault
-
- This property holds the list of content data.
-
- The list contains all objects that have been declared in QML as children
- of the container, and also items that have been dynamically added or
- inserted using the \l addItem() and \l insertItem() methods, respectively.
-
- \note Unlike \c contentChildren, \c contentData does include non-visual QML
- objects. It is not re-ordered when items are inserted or moved.
-
- \sa Item::data, contentChildren
-*/
-QQmlListProperty<QObject> QQuickContainer::contentData()
-{
- Q_D(QQuickContainer);
- if (!d->contentItem)
- d->executeContentItem();
- return QQmlListProperty<QObject>(this, nullptr,
- QQuickContainerPrivate::contentData_append,
- QQuickContainerPrivate::contentData_count,
- QQuickContainerPrivate::contentData_at,
- QQuickContainerPrivate::contentData_clear);
-}
-
-/*!
- \qmlproperty list<Item> QtQuick.Controls::Container::contentChildren
-
- This property holds the list of content children.
-
- The list contains all items that have been declared in QML as children
- of the container, and also items that have been dynamically added or
- inserted using the \l addItem() and \l insertItem() methods, respectively.
-
- \note Unlike \c contentData, \c contentChildren does not include non-visual
- QML objects. It is re-ordered when items are inserted or moved.
-
- \sa Item::children, contentData
-*/
-QQmlListProperty<QQuickItem> QQuickContainer::contentChildren()
-{
- return QQmlListProperty<QQuickItem>(this, nullptr,
- QQuickContainerPrivate::contentChildren_append,
- QQuickContainerPrivate::contentChildren_count,
- QQuickContainerPrivate::contentChildren_at,
- QQuickContainerPrivate::contentChildren_clear);
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::Container::currentIndex
-
- This property holds the index of the current item.
-
- \sa currentItem, {Managing the Current Index}
-*/
-int QQuickContainer::currentIndex() const
-{
- Q_D(const QQuickContainer);
- return d->currentIndex;
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Container::setCurrentIndex(int index)
-
- Sets the current \a index of the container.
-
- This method can be called to set a specific current index without breaking
- existing \c currentIndex bindings.
-
- \sa currentIndex, {Managing the Current Index}
-*/
-void QQuickContainer::setCurrentIndex(int index)
-{
- Q_D(QQuickContainer);
- if (d->currentIndex == index)
- return;
-
- d->currentIndex = index;
- emit currentIndexChanged();
- emit currentItemChanged();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Container::incrementCurrentIndex()
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- Increments the current index of the container.
-
- This method can be called to alter the current index without breaking
- existing \c currentIndex bindings.
-
- \sa currentIndex, {Managing the Current Index}
-*/
-void QQuickContainer::incrementCurrentIndex()
-{
- Q_D(QQuickContainer);
- if (d->currentIndex < count() - 1)
- setCurrentIndex(d->currentIndex + 1);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Container::decrementCurrentIndex()
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- Decrements the current index of the container.
-
- This method can be called to alter the current index without breaking
- existing \c currentIndex bindings.
-
- \sa currentIndex, {Managing the Current Index}
-*/
-void QQuickContainer::decrementCurrentIndex()
-{
- Q_D(QQuickContainer);
- if (d->currentIndex > 0)
- setCurrentIndex(d->currentIndex - 1);
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Container::currentItem
- \readonly
-
- This property holds the current item.
-
- \sa currentIndex
-*/
-QQuickItem *QQuickContainer::currentItem() const
-{
- Q_D(const QQuickContainer);
- return itemAt(d->currentIndex);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Container::contentWidth
-
- This property holds the content width. It is used for calculating the total
- implicit width of the container.
-
- Unless explicitly overridden, the content width is automatically calculated
- based on the implicit width of the items in the container.
-
- \sa contentHeight
-*/
-qreal QQuickContainer::contentWidth() const
-{
- Q_D(const QQuickContainer);
- return d->contentWidth;
-}
-
-void QQuickContainer::setContentWidth(qreal width)
-{
- Q_D(QQuickContainer);
- d->hasContentWidth = true;
- if (qFuzzyCompare(d->contentWidth, width))
- return;
-
- d->contentWidth = width;
- d->resizeContent();
- emit contentWidthChanged();
-}
-
-void QQuickContainer::resetContentWidth()
-{
- Q_D(QQuickContainer);
- if (!d->hasContentWidth)
- return;
-
- d->hasContentWidth = false;
- d->updateContentWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Container::contentHeight
-
- This property holds the content height. It is used for calculating the total
- implicit height of the container.
-
- Unless explicitly overridden, the content height is automatically calculated
- based on the implicit height of the items in the container.
-
- \sa contentWidth
-*/
-qreal QQuickContainer::contentHeight() const
-{
- Q_D(const QQuickContainer);
- return d->contentHeight;
-}
-
-void QQuickContainer::setContentHeight(qreal height)
-{
- Q_D(QQuickContainer);
- d->hasContentHeight = true;
- if (qFuzzyCompare(d->contentHeight, height))
- return;
-
- d->contentHeight = height;
- d->resizeContent();
- emit contentHeightChanged();
-}
-
-void QQuickContainer::resetContentHeight()
-{
- Q_D(QQuickContainer);
- if (!d->hasContentHeight)
- return;
-
- d->hasContentHeight = false;
- d->updateContentHeight();
-}
-
-void QQuickContainer::componentComplete()
-{
- Q_D(QQuickContainer);
- QQuickControl::componentComplete();
- d->reorderItems();
-}
-
-void QQuickContainer::itemChange(ItemChange change, const ItemChangeData &data)
-{
- Q_D(QQuickContainer);
- QQuickControl::itemChange(change, data);
- if (change == QQuickItem::ItemChildAddedChange && isComponentComplete() && data.item != d->background && data.item != d->contentItem) {
- if (!QQuickItemPrivate::get(data.item)->isTransparentForPositioner() && d->contentModel->indexOf(data.item, nullptr) == -1)
- addItem(data.item);
- }
-}
-
-void QQuickContainer::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_D(QQuickContainer);
- QQuickControl::contentItemChange(newItem, oldItem);
-
- static const int slotIndex = metaObject()->indexOfSlot("_q_currentIndexChanged()");
-
- if (oldItem) {
- QQuickItemPrivate::get(oldItem)->removeItemChangeListener(d, QQuickItemPrivate::Children | QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight);
- QQuickItem *oldContentItem = effectiveContentItem(oldItem);
- if (oldContentItem != oldItem)
- QQuickItemPrivate::get(oldContentItem)->removeItemChangeListener(d, QQuickItemPrivate::Children);
-
- int signalIndex = oldItem->metaObject()->indexOfSignal("currentIndexChanged()");
- if (signalIndex != -1)
- QMetaObject::disconnect(oldItem, signalIndex, this, slotIndex);
- }
-
- if (newItem) {
- QQuickItemPrivate::get(newItem)->addItemChangeListener(d, QQuickItemPrivate::Children | QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight);
- QQuickItem *newContentItem = effectiveContentItem(newItem);
- if (newContentItem != newItem)
- QQuickItemPrivate::get(newContentItem)->addItemChangeListener(d, QQuickItemPrivate::Children);
-
- int signalIndex = newItem->metaObject()->indexOfSignal("currentIndexChanged()");
- if (signalIndex != -1)
- QMetaObject::connect(newItem, signalIndex, this, slotIndex);
- }
-}
-
-bool QQuickContainer::isContent(QQuickItem *item) const
-{
- // If the item has a QML context associated to it (it was created in QML),
- // we add it to the content model. Otherwise, it's probably the default
- // highlight item that is always created by the item views, which we need
- // to exclude.
- //
- // TODO: Find a better way to identify/exclude the highlight item...
- return qmlContext(item);
-}
-
-void QQuickContainer::itemAdded(int index, QQuickItem *item)
-{
- Q_UNUSED(index);
- Q_UNUSED(item);
-}
-
-void QQuickContainer::itemMoved(int index, QQuickItem *item)
-{
- Q_UNUSED(index);
- Q_UNUSED(item);
-}
-
-void QQuickContainer::itemRemoved(int index, QQuickItem *item)
-{
- Q_UNUSED(index);
- Q_UNUSED(item);
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickcontainer_p.cpp"
diff --git a/src/quicktemplates2/qquickcontainer_p.h b/src/quicktemplates2/qquickcontainer_p.h
deleted file mode 100644
index ccfe4c56..00000000
--- a/src/quicktemplates2/qquickcontainer_p.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCONTAINER_P_H
-#define QQUICKCONTAINER_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQml/qqmllist.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickContainerPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickContainer : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(int count READ count NOTIFY countChanged FINAL)
- Q_PROPERTY(QVariant contentModel READ contentModel CONSTANT FINAL)
- Q_PROPERTY(QQmlListProperty<QObject> contentData READ contentData)
- Q_PROPERTY(QQmlListProperty<QQuickItem> contentChildren READ contentChildren NOTIFY contentChildrenChanged FINAL)
- Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged FINAL)
- Q_PROPERTY(QQuickItem *currentItem READ currentItem NOTIFY currentItemChanged FINAL)
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal contentWidth READ contentWidth WRITE setContentWidth RESET resetContentWidth NOTIFY contentWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal contentHeight READ contentHeight WRITE setContentHeight RESET resetContentHeight NOTIFY contentHeightChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DefaultProperty", "contentData")
- QML_NAMED_ELEMENT(Container)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickContainer(QQuickItem *parent = nullptr);
- ~QQuickContainer();
-
- int count() const;
- Q_INVOKABLE QQuickItem *itemAt(int index) const;
- Q_INVOKABLE void addItem(QQuickItem *item);
- Q_INVOKABLE void insertItem(int index, QQuickItem *item);
- Q_INVOKABLE void moveItem(int from, int to);
- Q_INVOKABLE void removeItem(QQuickItem *item);
- // 2.3 (Qt 5.10)
- Q_REVISION(2, 3) Q_INVOKABLE QQuickItem *takeItem(int index);
-
- QVariant contentModel() const;
- QQmlListProperty<QObject> contentData();
- QQmlListProperty<QQuickItem> contentChildren();
-
- int currentIndex() const;
- QQuickItem *currentItem() const;
-
- // 2.5 (Qt 5.12)
- qreal contentWidth() const;
- void setContentWidth(qreal width);
- void resetContentWidth();
-
- qreal contentHeight() const;
- void setContentHeight(qreal height);
- void resetContentHeight();
-
-public Q_SLOTS:
- void setCurrentIndex(int index);
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) void incrementCurrentIndex();
- Q_REVISION(2, 1) void decrementCurrentIndex();
-
-Q_SIGNALS:
- void countChanged();
- void contentChildrenChanged();
- void currentIndexChanged();
- void currentItemChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void contentWidthChanged();
- Q_REVISION(2, 5) void contentHeightChanged();
-
-protected:
- QQuickContainer(QQuickContainerPrivate &dd, QQuickItem *parent);
-
- void componentComplete() override;
-
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
-
- virtual bool isContent(QQuickItem *item) const;
- virtual void itemAdded(int index, QQuickItem *item);
- virtual void itemMoved(int index, QQuickItem *item);
- virtual void itemRemoved(int index, QQuickItem *item);
-
-private:
- Q_DISABLE_COPY(QQuickContainer)
- Q_DECLARE_PRIVATE(QQuickContainer)
- Q_PRIVATE_SLOT(d_func(), void _q_currentIndexChanged())
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickContainer)
-
-#endif // QQUICKCONTAINER_P_H
diff --git a/src/quicktemplates2/qquickcontainer_p_p.h b/src/quicktemplates2/qquickcontainer_p_p.h
deleted file mode 100644
index b9f8eb0f..00000000
--- a/src/quicktemplates2/qquickcontainer_p_p.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCONTAINER_P_P_H
-#define QQUICKCONTAINER_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontainer_p.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
-#include <private/qqmlobjectmodel_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickContainerPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickContainer)
-
-public:
- static QQuickContainerPrivate *get(QQuickContainer *container)
- {
- return container->d_func();
- }
-
- void init();
- void cleanup();
-
- QQuickItem *itemAt(int index) const;
- void insertItem(int index, QQuickItem *item);
- void moveItem(int from, int to, QQuickItem *item);
- void removeItem(int index, QQuickItem *item);
- void reorderItems();
-
- void _q_currentIndexChanged();
-
- void itemChildAdded(QQuickItem *item, QQuickItem *child) override;
- void itemSiblingOrderChanged(QQuickItem *item) override;
- void itemParentChanged(QQuickItem *item, QQuickItem *parent) override;
- void itemDestroyed(QQuickItem *item) override;
-
- static void contentData_append(QQmlListProperty<QObject> *prop, QObject *obj);
- static qsizetype contentData_count(QQmlListProperty<QObject> *prop);
- static QObject *contentData_at(QQmlListProperty<QObject> *prop, qsizetype index);
- static void contentData_clear(QQmlListProperty<QObject> *prop);
-
- static void contentChildren_append(QQmlListProperty<QQuickItem> *prop, QQuickItem *obj);
- static qsizetype contentChildren_count(QQmlListProperty<QQuickItem> *prop);
- static QQuickItem *contentChildren_at(QQmlListProperty<QQuickItem> *prop, qsizetype index);
- static void contentChildren_clear(QQmlListProperty<QQuickItem> *prop);
-
- void updateContentWidth();
- void updateContentHeight();
-
- bool hasContentWidth = false;
- bool hasContentHeight = false;
- qreal contentWidth = 0;
- qreal contentHeight = 0;
- QObjectList contentData;
- QQmlObjectModel *contentModel = nullptr;
- qsizetype currentIndex = -1;
- bool updatingCurrent = false;
- QQuickItemPrivate::ChangeTypes changeTypes = Destroyed | Parent | SiblingOrder;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKCONTAINER_P_P_H
diff --git a/src/quicktemplates2/qquickcontentitem.cpp b/src/quicktemplates2/qquickcontentitem.cpp
deleted file mode 100644
index 95665f70..00000000
--- a/src/quicktemplates2/qquickcontentitem.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickcontentitem_p.h"
-
-#include <QtQml/private/qqmlmetatype_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \internal
-
- Helper class that aids debugging by producing more useful debugging output.
-*/
-
-QQuickContentItem::QQuickContentItem(QQuickItem *parent)
- : QQuickItem(parent)
-{
- setObjectName(QQmlMetaType::prettyTypeName(parent));
-}
-
-QQuickContentItem::QQuickContentItem(const QObject *scope, QQuickItem *parent)
- : QQuickItem(parent)
-{
- setObjectName(QQmlMetaType::prettyTypeName(scope));
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickcontentitem_p.h b/src/quicktemplates2/qquickcontentitem_p.h
deleted file mode 100644
index df0f0b24..00000000
--- a/src/quicktemplates2/qquickcontentitem_p.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCONTENTITEM_P_H
-#define QQUICKCONTENTITEM_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/qquickitem.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickContentItem : public QQuickItem
-{
- Q_OBJECT
-
-public:
- explicit QQuickContentItem(QQuickItem *parent = nullptr);
- explicit QQuickContentItem(const QObject *scope, QQuickItem *parent);
-
-private:
- Q_DISABLE_COPY(QQuickContentItem)
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKCONTENTITEM_P_H
diff --git a/src/quicktemplates2/qquickcontrol.cpp b/src/quicktemplates2/qquickcontrol.cpp
deleted file mode 100644
index 072b6f4c..00000000
--- a/src/quicktemplates2/qquickcontrol.cpp
+++ /dev/null
@@ -1,2174 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickcontrol_p.h"
-#include "qquickcontrol_p_p.h"
-
-#include <QtGui/qstylehints.h>
-#include <QtGui/qguiapplication.h>
-#include "qquicklabel_p.h"
-#include "qquicklabel_p_p.h"
-#include "qquicktextarea_p.h"
-#include "qquicktextarea_p_p.h"
-#include "qquicktextfield_p.h"
-#include "qquicktextfield_p_p.h"
-#include "qquickpopup_p.h"
-#include "qquickpopupitem_p_p.h"
-#include "qquickapplicationwindow_p.h"
-#include "qquickdeferredexecute_p_p.h"
-#include "qquickcontentitem_p.h"
-
-#if QT_CONFIG(accessibility)
-#include <QtQuick/private/qquickaccessibleattached_p.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcItemManagement, "qt.quick.controls.control.itemmanagement")
-
-/*!
- \qmltype Control
- \inherits Item
-//! \instantiates QQuickControl
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \brief Abstract base type providing functionality common to all controls.
-
- Control is the base type of user interface controls. It receives input
- events from the window system, and paints a representation of itself on
- the screen.
-
- \section1 Control Layout
-
- The following diagram illustrates the layout of a typical control:
-
- \image qtquickcontrols2-control.png
-
- The \l {Item::}{implicitWidth} and \l {Item::}{implicitHeight} of a control
- are typically based on the implicit sizes of the background and the content
- item plus any insets and paddings. These properties determine how large
- the control will be when no explicit \l {Item::}{width} or
- \l {Item::}{height} is specified.
-
- The geometry of the \l {Control::}{contentItem} is determined by the padding.
- The following example reserves 10px padding between the boundaries of the
- control and its content:
-
- \code
- Control {
- padding: 10
-
- contentItem: Text {
- text: "Content"
- }
- }
- \endcode
-
- The \l {Control::}{background} item fills the entire width and height of the
- control, unless insets or an explicit size have been given for it. Background
- insets are useful for extending the touchable/interactive area of a control
- without affecting its visual size. This is often used on touch devices to
- ensure that a control is not too small to be interacted with by the user.
- Insets affect the size of the control, and hence will affect how much space
- they take up in a layout, for example.
-
- Negative insets can be used to make the background larger than the control.
- The following example uses negative insets to place a shadow outside the
- control's boundaries:
-
- \code
- Control {
- topInset: -2
- leftInset: -2
- rightInset: -6
- bottomInset: -6
-
- background: BorderImage {
- source: ":/images/shadowed-background.png"
- }
- }
- \endcode
-
- \section1 Event Handling
-
- All controls, except non-interactive indicators, do not let clicks and
- touches through to items below them. For example, the \c console.log()
- call in the example below will never be executed when clicking on the
- Pane, because the \l MouseArea is below it in the scene:
-
- \code
- MouseArea {
- anchors.fill: parent
- onClicked: console.log("MouseArea was clicked")
-
- Pane {
- anchors.fill: parent
- }
- }
- \endcode
-
- \sa ApplicationWindow, Container, {Using Qt Quick Controls types in
- property declarations}
-*/
-
-const QQuickItemPrivate::ChangeTypes QQuickControlPrivate::ImplicitSizeChanges = QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight | QQuickItemPrivate::Destroyed;
-
-static bool isKeyFocusReason(Qt::FocusReason reason)
-{
- return reason == Qt::TabFocusReason || reason == Qt::BacktabFocusReason || reason == Qt::ShortcutFocusReason;
-}
-
-QQuickControlPrivate::QQuickControlPrivate()
-{
-#if QT_CONFIG(accessibility)
- QAccessible::installActivationObserver(this);
-#endif
-}
-
-QQuickControlPrivate::~QQuickControlPrivate()
-{
-}
-
-void QQuickControlPrivate::init()
-{
- Q_Q(QQuickControl);
- QObject::connect(q, &QQuickItem::baselineOffsetChanged, q, &QQuickControl::baselineOffsetChanged);
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-bool QQuickControlPrivate::acceptTouch(const QTouchEvent::TouchPoint &point)
-{
- if (point.id() == touchId)
- return true;
-
- if (touchId == -1 && point.state() == QEventPoint::Pressed) {
- touchId = point.id();
- return true;
- }
-
- // If the control is on a Flickable that has a pressDelay, then the press is never
- // sent as a touch event, therefore we need to check for this case.
- if (touchId == -1 && pressWasTouch && point.state() == QEventPoint::Released &&
- point.position() == previousPressPos) {
- return true;
- }
- return false;
-}
-#endif
-
-static void setActiveFocus(QQuickControl *control, Qt::FocusReason reason)
-{
- QQuickControlPrivate *d = QQuickControlPrivate::get(control);
- if (d->subFocusItem && d->window && d->flags & QQuickItem::ItemIsFocusScope)
- QQuickWindowPrivate::get(d->window)->clearFocusInScope(control, d->subFocusItem, reason);
- control->forceActiveFocus(reason);
-}
-
-void QQuickControlPrivate::handlePress(const QPointF &, ulong)
-{
- Q_Q(QQuickControl);
- if ((focusPolicy & Qt::ClickFocus) == Qt::ClickFocus && !QGuiApplication::styleHints()->setFocusOnTouchRelease())
- setActiveFocus(q, Qt::MouseFocusReason);
-}
-
-void QQuickControlPrivate::handleMove(const QPointF &point, ulong)
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_Q(QQuickControl);
- q->setHovered(hoverEnabled && q->contains(point));
-#else
- Q_UNUSED(point);
-#endif
-}
-
-void QQuickControlPrivate::handleRelease(const QPointF &, ulong)
-{
- Q_Q(QQuickControl);
- if ((focusPolicy & Qt::ClickFocus) == Qt::ClickFocus && QGuiApplication::styleHints()->setFocusOnTouchRelease())
- setActiveFocus(q, Qt::MouseFocusReason);
- touchId = -1;
- pressWasTouch = false;
- previousPressPos = QPointF();
-}
-
-void QQuickControlPrivate::handleUngrab()
-{
- touchId = -1;
-}
-
-void QQuickControlPrivate::mirrorChange()
-{
- Q_Q(QQuickControl);
- q->mirrorChange();
-}
-
-void QQuickControlPrivate::setTopPadding(qreal value, bool reset)
-{
- Q_Q(QQuickControl);
- const QMarginsF oldPadding = getPadding();
- extra.value().topPadding = value;
- extra.value().hasTopPadding = !reset;
- if ((!reset && !qFuzzyCompare(oldPadding.top(), value)) || (reset && !qFuzzyCompare(oldPadding.top(), getVerticalPadding()))) {
- emit q->topPaddingChanged();
- emit q->availableHeightChanged();
- q->paddingChange(getPadding(), oldPadding);
- }
-}
-
-void QQuickControlPrivate::setLeftPadding(qreal value, bool reset)
-{
- Q_Q(QQuickControl);
- const QMarginsF oldPadding = getPadding();
- extra.value().leftPadding = value;
- extra.value().hasLeftPadding = !reset;
- if ((!reset && !qFuzzyCompare(oldPadding.left(), value)) || (reset && !qFuzzyCompare(oldPadding.left(), getHorizontalPadding()))) {
- emit q->leftPaddingChanged();
- emit q->availableWidthChanged();
- q->paddingChange(getPadding(), oldPadding);
- }
-}
-
-void QQuickControlPrivate::setRightPadding(qreal value, bool reset)
-{
- Q_Q(QQuickControl);
- const QMarginsF oldPadding = getPadding();
- extra.value().rightPadding = value;
- extra.value().hasRightPadding = !reset;
- if ((!reset && !qFuzzyCompare(oldPadding.right(), value)) || (reset && !qFuzzyCompare(oldPadding.right(), getHorizontalPadding()))) {
- emit q->rightPaddingChanged();
- emit q->availableWidthChanged();
- q->paddingChange(getPadding(), oldPadding);
- }
-}
-
-void QQuickControlPrivate::setBottomPadding(qreal value, bool reset)
-{
- Q_Q(QQuickControl);
- const QMarginsF oldPadding = getPadding();
- extra.value().bottomPadding = value;
- extra.value().hasBottomPadding = !reset;
- if ((!reset && !qFuzzyCompare(oldPadding.bottom(), value)) || (reset && !qFuzzyCompare(oldPadding.bottom(), getVerticalPadding()))) {
- emit q->bottomPaddingChanged();
- emit q->availableHeightChanged();
- q->paddingChange(getPadding(), oldPadding);
- }
-}
-
-void QQuickControlPrivate::setHorizontalPadding(qreal value, bool reset)
-{
- Q_Q(QQuickControl);
- const QMarginsF oldPadding = getPadding();
- const qreal oldHorizontalPadding = getHorizontalPadding();
- horizontalPadding = value;
- hasHorizontalPadding = !reset;
- if ((!reset && !qFuzzyCompare(oldHorizontalPadding, value)) || (reset && !qFuzzyCompare(oldHorizontalPadding, padding))) {
- const QMarginsF newPadding = getPadding();
- if (!qFuzzyCompare(newPadding.left(), oldPadding.left()))
- emit q->leftPaddingChanged();
- if (!qFuzzyCompare(newPadding.right(), oldPadding.right()))
- emit q->rightPaddingChanged();
- emit q->horizontalPaddingChanged();
- emit q->availableWidthChanged();
- q->paddingChange(newPadding, oldPadding);
- }
-}
-
-void QQuickControlPrivate::setVerticalPadding(qreal value, bool reset)
-{
- Q_Q(QQuickControl);
- const QMarginsF oldPadding = getPadding();
- const qreal oldVerticalPadding = getVerticalPadding();
- verticalPadding = value;
- hasVerticalPadding = !reset;
- if ((!reset && !qFuzzyCompare(oldVerticalPadding, value)) || (reset && !qFuzzyCompare(oldVerticalPadding, padding))) {
- const QMarginsF newPadding = getPadding();
- if (!qFuzzyCompare(newPadding.top(), oldPadding.top()))
- emit q->topPaddingChanged();
- if (!qFuzzyCompare(newPadding.bottom(), oldPadding.bottom()))
- emit q->bottomPaddingChanged();
- emit q->verticalPaddingChanged();
- emit q->availableHeightChanged();
- q->paddingChange(newPadding, oldPadding);
- }
-}
-
-void QQuickControlPrivate::setTopInset(qreal value, bool reset)
-{
- Q_Q(QQuickControl);
- const QMarginsF oldInset = getInset();
- extra.value().topInset = value;
- extra.value().hasTopInset = !reset;
- if (!qFuzzyCompare(oldInset.top(), value)) {
- emit q->topInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickControlPrivate::setLeftInset(qreal value, bool reset)
-{
- Q_Q(QQuickControl);
- const QMarginsF oldInset = getInset();
- extra.value().leftInset = value;
- extra.value().hasLeftInset = !reset;
- if (!qFuzzyCompare(oldInset.left(), value)) {
- emit q->leftInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickControlPrivate::setRightInset(qreal value, bool reset)
-{
- Q_Q(QQuickControl);
- const QMarginsF oldInset = getInset();
- extra.value().rightInset = value;
- extra.value().hasRightInset = !reset;
- if (!qFuzzyCompare(oldInset.right(), value)) {
- emit q->rightInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickControlPrivate::setBottomInset(qreal value, bool reset)
-{
- Q_Q(QQuickControl);
- const QMarginsF oldInset = getInset();
- extra.value().bottomInset = value;
- extra.value().hasBottomInset = !reset;
- if (!qFuzzyCompare(oldInset.bottom(), value)) {
- emit q->bottomInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickControlPrivate::resizeBackground()
-{
- if (!background)
- return;
-
- resizingBackground = true;
-
- QQuickItemPrivate *p = QQuickItemPrivate::get(background);
- if (((!p->widthValid() || !extra.isAllocated() || !extra->hasBackgroundWidth) && qFuzzyIsNull(background->x()))
- || (extra.isAllocated() && (extra->hasLeftInset || extra->hasRightInset))) {
- background->setX(getLeftInset());
- background->setWidth(width - getLeftInset() - getRightInset());
- }
- if (((!p->heightValid() || !extra.isAllocated() || !extra->hasBackgroundHeight) && qFuzzyIsNull(background->y()))
- || (extra.isAllocated() && (extra->hasTopInset || extra->hasBottomInset))) {
- background->setY(getTopInset());
- background->setHeight(height - getTopInset() - getBottomInset());
- }
-
- resizingBackground = false;
-}
-
-void QQuickControlPrivate::resizeContent()
-{
- Q_Q(QQuickControl);
- if (contentItem) {
- contentItem->setPosition(QPointF(q->leftPadding(), q->topPadding()));
- contentItem->setSize(QSizeF(q->availableWidth(), q->availableHeight()));
- }
-}
-
-QQuickItem *QQuickControlPrivate::getContentItem()
-{
- if (!contentItem)
- executeContentItem();
- return contentItem;
-}
-
-void QQuickControlPrivate::setContentItem_helper(QQuickItem *item, bool notify)
-{
- Q_Q(QQuickControl);
- if (contentItem == item)
- return;
-
- if (!contentItem.isExecuting())
- cancelContentItem();
-
- QQuickItem *oldContentItem = contentItem;
- if (oldContentItem) {
- disconnect(oldContentItem, &QQuickItem::baselineOffsetChanged, this, &QQuickControlPrivate::updateBaselineOffset);
- removeImplicitSizeListener(oldContentItem);
- }
-
- contentItem = item;
- q->contentItemChange(item, oldContentItem);
- QQuickControlPrivate::hideOldItem(oldContentItem);
-
- if (item) {
- connect(contentItem.data(), &QQuickItem::baselineOffsetChanged, this, &QQuickControlPrivate::updateBaselineOffset);
- if (!item->parentItem())
- item->setParentItem(q);
- if (componentComplete)
- resizeContent();
- addImplicitSizeListener(contentItem);
- }
-
- updateImplicitContentSize();
- updateBaselineOffset();
-
- if (notify && !contentItem.isExecuting())
- emit q->contentItemChanged();
-}
-
-qreal QQuickControlPrivate::getContentWidth() const
-{
- return contentItem ? contentItem->implicitWidth() : 0;
-}
-
-qreal QQuickControlPrivate::getContentHeight() const
-{
- return contentItem ? contentItem->implicitHeight() : 0;
-}
-
-void QQuickControlPrivate::updateImplicitContentWidth()
-{
- Q_Q(QQuickControl);
- const qreal oldWidth = implicitContentWidth;
- implicitContentWidth = getContentWidth();
- if (!qFuzzyCompare(implicitContentWidth, oldWidth))
- emit q->implicitContentWidthChanged();
-}
-
-void QQuickControlPrivate::updateImplicitContentHeight()
-{
- Q_Q(QQuickControl);
- const qreal oldHeight = implicitContentHeight;
- implicitContentHeight = getContentHeight();
- if (!qFuzzyCompare(implicitContentHeight, oldHeight))
- emit q->implicitContentHeightChanged();
-}
-
-void QQuickControlPrivate::updateImplicitContentSize()
-{
- Q_Q(QQuickControl);
- const qreal oldWidth = implicitContentWidth;
- const qreal oldHeight = implicitContentHeight;
- implicitContentWidth = getContentWidth();
- implicitContentHeight = getContentHeight();
- if (!qFuzzyCompare(implicitContentWidth, oldWidth))
- emit q->implicitContentWidthChanged();
- if (!qFuzzyCompare(implicitContentHeight, oldHeight))
- emit q->implicitContentHeightChanged();
-}
-
-QPalette QQuickControlPrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::System);
-}
-
-#if QT_CONFIG(accessibility)
-void QQuickControlPrivate::accessibilityActiveChanged(bool active)
-{
- Q_Q(QQuickControl);
- return q->accessibilityActiveChanged(active);
-}
-
-QAccessible::Role QQuickControlPrivate::accessibleRole() const
-{
- Q_Q(const QQuickControl);
- return q->accessibleRole();
-}
-
-QQuickAccessibleAttached *QQuickControlPrivate::accessibleAttached(const QObject *object)
-{
- if (!QAccessible::isActive())
- return nullptr;
- return QQuickAccessibleAttached::attachedProperties(object);
-}
-#endif
-
-/*!
- \internal
-
- Returns the font that the control w inherits from its ancestors and
- QGuiApplication::font.
-*/
-QFont QQuickControlPrivate::parentFont(const QQuickItem *item)
-{
- QQuickItem *p = item->parentItem();
- while (p) {
- if (QQuickControl *control = qobject_cast<QQuickControl *>(p))
- return control->font();
- else if (QQuickLabel *label = qobject_cast<QQuickLabel *>(p))
- return label->font();
- else if (QQuickTextField *textField = qobject_cast<QQuickTextField *>(p))
- return textField->font();
- else if (QQuickTextArea *textArea = qobject_cast<QQuickTextArea *>(p))
- return textArea->font();
-
- p = p->parentItem();
- }
-
- if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(item->window()))
- return window->font();
-
- return QQuickTheme::font(QQuickTheme::System);
-}
-
-/*!
- \internal
-
- Determine which font is implicitly imposed on this control by its ancestors
- and QGuiApplication::font, resolve this against its own font (attributes from
- the implicit font are copied over). Then propagate this font to this
- control's children.
-*/
-void QQuickControlPrivate::resolveFont()
-{
- Q_Q(QQuickControl);
- inheritFont(parentFont(q));
-}
-
-void QQuickControlPrivate::inheritFont(const QFont &font)
-{
- Q_Q(QQuickControl);
- QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
- parentFont.setResolveMask(extra.isAllocated() ? extra->requestedFont.resolveMask() | font.resolveMask() : font.resolveMask());
-
- const QFont defaultFont = q->defaultFont();
- QFont resolvedFont = parentFont.resolve(defaultFont);
-
- setFont_helper(resolvedFont);
-}
-
-/*!
- \internal
-
- Assign \a font to this control, and propagate it to all children.
-*/
-void QQuickControlPrivate::updateFont(const QFont &font)
-{
- Q_Q(QQuickControl);
- QFont oldFont = resolvedFont;
- resolvedFont = font;
-
- if (oldFont != font)
- q->fontChange(font, oldFont);
-
- QQuickControlPrivate::updateFontRecur(q, font);
-
- if (oldFont != font)
- emit q->fontChanged();
-}
-
-void QQuickControlPrivate::updateFontRecur(QQuickItem *item, const QFont &font)
-{
- const auto childItems = item->childItems();
- for (QQuickItem *child : childItems) {
- if (QQuickControl *control = qobject_cast<QQuickControl *>(child))
- QQuickControlPrivate::get(control)->inheritFont(font);
- else if (QQuickLabel *label = qobject_cast<QQuickLabel *>(child))
- QQuickLabelPrivate::get(label)->inheritFont(font);
- else if (QQuickTextArea *textArea = qobject_cast<QQuickTextArea *>(child))
- QQuickTextAreaPrivate::get(textArea)->inheritFont(font);
- else if (QQuickTextField *textField = qobject_cast<QQuickTextField *>(child))
- QQuickTextFieldPrivate::get(textField)->inheritFont(font);
- else
- QQuickControlPrivate::updateFontRecur(child, font);
- }
-}
-
-QLocale QQuickControlPrivate::calcLocale(const QQuickItem *item)
-{
- const QQuickItem *p = item;
- while (p) {
- if (const QQuickControl *control = qobject_cast<const QQuickControl *>(p))
- return control->locale();
-
- QVariant v = p->property("locale");
- if (v.isValid() && v.userType() == QMetaType::QLocale)
- return v.toLocale();
-
- p = p->parentItem();
- }
-
- if (item) {
- if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(item->window()))
- return window->locale();
- }
-
- return QLocale();
-}
-
-void QQuickControlPrivate::updateLocale(const QLocale &l, bool e)
-{
- Q_Q(QQuickControl);
- if (!e && hasLocale)
- return;
-
- QLocale old = q->locale();
- hasLocale = e;
- if (old != l) {
- locale = l;
- q->localeChange(l, old);
- QQuickControlPrivate::updateLocaleRecur(q, l);
- emit q->localeChanged();
- }
-}
-
-void QQuickControlPrivate::updateLocaleRecur(QQuickItem *item, const QLocale &l)
-{
- const auto childItems = item->childItems();
- for (QQuickItem *child : childItems) {
- if (QQuickControl *control = qobject_cast<QQuickControl *>(child))
- QQuickControlPrivate::get(control)->updateLocale(l, false);
- else
- updateLocaleRecur(child, l);
- }
-}
-
-#if QT_CONFIG(quicktemplates2_hover)
-void QQuickControlPrivate::updateHoverEnabled(bool enabled, bool xplicit)
-{
- Q_Q(QQuickControl);
- if (!xplicit && explicitHoverEnabled)
- return;
-
- bool wasEnabled = q->isHoverEnabled();
- explicitHoverEnabled = xplicit;
- if (wasEnabled != enabled) {
- q->setAcceptHoverEvents(enabled);
- QQuickControlPrivate::updateHoverEnabledRecur(q, enabled);
- emit q->hoverEnabledChanged();
- }
-}
-
-void QQuickControlPrivate::updateHoverEnabledRecur(QQuickItem *item, bool enabled)
-{
- const auto childItems = item->childItems();
- for (QQuickItem *child : childItems) {
- if (QQuickControl *control = qobject_cast<QQuickControl *>(child))
- QQuickControlPrivate::get(control)->updateHoverEnabled(enabled, false);
- else
- updateHoverEnabledRecur(child, enabled);
- }
-}
-
-bool QQuickControlPrivate::calcHoverEnabled(const QQuickItem *item)
-{
- const QQuickItem *p = item;
- while (p) {
- // QQuickPopupItem accepts hover events to avoid leaking them through.
- // Don't inherit that to the children of the popup, but fallback to the
- // environment variable or style hint.
- if (qobject_cast<const QQuickPopupItem *>(p))
- break;
-
- if (const QQuickControl *control = qobject_cast<const QQuickControl *>(p))
- return control->isHoverEnabled();
-
- QVariant v = p->property("hoverEnabled");
- if (v.isValid() && v.userType() == QMetaType::Bool)
- return v.toBool();
-
- p = p->parentItem();
- }
-
- bool ok = false;
- int env = qEnvironmentVariableIntValue("QT_QUICK_CONTROLS_HOVER_ENABLED", &ok);
- if (ok)
- return env != 0;
-
- // TODO: QQuickApplicationWindow::isHoverEnabled()
-
- return QGuiApplication::styleHints()->useHoverEffects();
-}
-#endif
-
-static inline QString contentItemName() { return QStringLiteral("contentItem"); }
-
-void QQuickControlPrivate::cancelContentItem()
-{
- Q_Q(QQuickControl);
- quickCancelDeferred(q, contentItemName());
-}
-
-void QQuickControlPrivate::executeContentItem(bool complete)
-{
- Q_Q(QQuickControl);
- if (contentItem.wasExecuted())
- return;
-
- if (!contentItem || complete)
- quickBeginDeferred(q, contentItemName(), contentItem);
- if (complete)
- quickCompleteDeferred(q, contentItemName(), contentItem);
-}
-
-static inline QString backgroundName() { return QStringLiteral("background"); }
-
-void QQuickControlPrivate::cancelBackground()
-{
- Q_Q(QQuickControl);
- quickCancelDeferred(q, backgroundName());
-}
-
-void QQuickControlPrivate::executeBackground(bool complete)
-{
- Q_Q(QQuickControl);
- if (background.wasExecuted())
- return;
-
- if (!background || complete)
- quickBeginDeferred(q, backgroundName(), background);
- if (complete)
- quickCompleteDeferred(q, backgroundName(), background);
-}
-
-void QQuickControlPrivate::hideOldItem(QQuickItem *item)
-{
- if (!item)
- return;
-
- qCDebug(lcItemManagement) << "hiding old item" << item;
-
- item->setVisible(false);
- item->setParentItem(nullptr);
-
-#if QT_CONFIG(accessibility)
- // Remove the item from the accessibility tree.
- QQuickAccessibleAttached *accessible = accessibleAttached(item);
- if (accessible)
- accessible->setIgnored(true);
-#endif
-}
-
-void QQuickControlPrivate::updateBaselineOffset()
-{
- Q_Q(QQuickControl);
- if (extra.isAllocated() && extra.value().hasBaselineOffset)
- return;
-
- if (!contentItem)
- q->QQuickItem::setBaselineOffset(0);
- else
- q->QQuickItem::setBaselineOffset(getTopPadding() + contentItem->baselineOffset());
-}
-
-void QQuickControlPrivate::addImplicitSizeListener(QQuickItem *item, ChangeTypes changes)
-{
- addImplicitSizeListener(item, this, changes);
-}
-
-void QQuickControlPrivate::removeImplicitSizeListener(QQuickItem *item, ChangeTypes changes)
-{
- removeImplicitSizeListener(item, this, changes);
-}
-
-void QQuickControlPrivate::addImplicitSizeListener(QQuickItem *item, QQuickItemChangeListener *listener, ChangeTypes changes)
-{
- if (!item || !listener)
- return;
- QQuickItemPrivate::get(item)->addItemChangeListener(listener, changes);
-}
-
-void QQuickControlPrivate::removeImplicitSizeListener(QQuickItem *item, QQuickItemChangeListener *listener, ChangeTypes changes)
-{
- if (!item || !listener)
- return;
- QQuickItemPrivate::get(item)->removeItemChangeListener(listener, changes);
-}
-
-void QQuickControlPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_Q(QQuickControl);
- if (item == background)
- emit q->implicitBackgroundWidthChanged();
- else if (item == contentItem)
- updateImplicitContentWidth();
-}
-
-void QQuickControlPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_Q(QQuickControl);
- if (item == background)
- emit q->implicitBackgroundHeightChanged();
- else if (item == contentItem)
- updateImplicitContentHeight();
-}
-
-void QQuickControlPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff)
-{
- Q_UNUSED(diff);
- if (resizingBackground || item != background || !change.sizeChange())
- return;
-
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- // Only set hasBackgroundWidth/Height if it was a width/height change,
- // otherwise we're prevented from setting a width/height in the future.
- if (change.widthChange())
- extra.value().hasBackgroundWidth = p->widthValid();
- if (change.heightChange())
- extra.value().hasBackgroundHeight = p->heightValid();
- resizeBackground();
-}
-
-void QQuickControlPrivate::itemDestroyed(QQuickItem *item)
-{
- Q_Q(QQuickControl);
- if (item == background) {
- background = nullptr;
- emit q->implicitBackgroundWidthChanged();
- emit q->implicitBackgroundHeightChanged();
- } else if (item == contentItem) {
- contentItem = nullptr;
- updateImplicitContentSize();
- }
-}
-
-QQuickControl::QQuickControl(QQuickItem *parent)
- : QQuickItem(*(new QQuickControlPrivate), parent)
-{
- Q_D(QQuickControl);
- d->init();
-}
-
-QQuickControl::QQuickControl(QQuickControlPrivate &dd, QQuickItem *parent)
- : QQuickItem(dd, parent)
-{
- Q_D(QQuickControl);
- d->init();
-}
-
-QQuickControl::~QQuickControl()
-{
- Q_D(QQuickControl);
- d->removeImplicitSizeListener(d->background, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
- d->removeImplicitSizeListener(d->contentItem);
-#if QT_CONFIG(accessibility)
- QAccessible::removeActivationObserver(d);
-#endif
-}
-
-void QQuickControl::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value)
-{
- Q_D(QQuickControl);
- QQuickItem::itemChange(change, value);
- switch (change) {
- case ItemEnabledHasChanged:
- enabledChange();
- break;
- case ItemVisibleHasChanged:
-#if QT_CONFIG(quicktemplates2_hover)
- if (!value.boolValue)
- setHovered(false);
-#endif
- break;
- case ItemSceneChange:
- case ItemParentHasChanged:
- if ((change == ItemParentHasChanged && value.item) || (change == ItemSceneChange && value.window)) {
- d->resolveFont();
- if (!d->hasLocale)
- d->updateLocale(QQuickControlPrivate::calcLocale(d->parentItem), false); // explicit=false
-#if QT_CONFIG(quicktemplates2_hover)
- if (!d->explicitHoverEnabled)
- d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false
-#endif
- }
- break;
- case ItemActiveFocusHasChanged:
- if (isKeyFocusReason(d->focusReason))
- emit visualFocusChanged();
- break;
- default:
- break;
- }
-}
-
-/*!
- \qmlproperty font QtQuick.Controls::Control::font
-
- This property holds the font currently set for the control.
-
- This property describes the control's requested font. The font is used by the control's
- style when rendering standard components, and is available as a means to ensure that custom
- controls can maintain consistency with the native platform's native look and feel. It's common
- that different platforms, or different styles, define different fonts for an application.
-
- The default font depends on the system environment. ApplicationWindow maintains a system/theme
- font which serves as a default for all controls. There may also be special font defaults for
- certain types of controls. You can also set the default font for controls by either:
-
- \list
- \li passing a custom font to QGuiApplication::setFont(), before loading the QML; or
- \li specifying the fonts in the \l {Qt Quick Controls 2 Configuration File}{qtquickcontrols2.conf file}.
- \endlist
-
- Finally, the font is matched against Qt's font database to find the best match.
-
- Control propagates explicit font properties from parent to children. If you change a specific
- property on a control's font, that property propagates to all of the control's children,
- overriding any system defaults for that property.
-
- \code
- Page {
- font.family: "Courier"
-
- Column {
- Label {
- text: qsTr("This will use Courier...")
- }
-
- Switch {
- text: qsTr("... and so will this")
- }
- }
- }
- \endcode
-
- For the full list of available font properties, see the
- \l [QtQuick]{font}{font QML Basic Type} documentation.
-*/
-QFont QQuickControl::font() const
-{
- Q_D(const QQuickControl);
- return d->resolvedFont;
-}
-
-void QQuickControl::setFont(const QFont &font)
-{
- Q_D(QQuickControl);
- if (d->extra.value().requestedFont.resolveMask() == font.resolveMask() && d->extra.value().requestedFont == font)
- return;
-
- d->extra.value().requestedFont = font;
- d->resolveFont();
-}
-
-void QQuickControl::resetFont()
-{
- setFont(QFont());
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Control::availableWidth
- \readonly
-
- This property holds the width available to the \l contentItem after
- deducting horizontal padding from the \l {Item::}{width} of the control.
-
- \sa {Control Layout}, padding, leftPadding, rightPadding
-*/
-qreal QQuickControl::availableWidth() const
-{
- return qMax<qreal>(0.0, width() - leftPadding() - rightPadding());
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Control::availableHeight
- \readonly
-
- This property holds the height available to the \l contentItem after
- deducting vertical padding from the \l {Item::}{height} of the control.
-
- \sa {Control Layout}, padding, topPadding, bottomPadding
-*/
-qreal QQuickControl::availableHeight() const
-{
- return qMax<qreal>(0.0, height() - topPadding() - bottomPadding());
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Control::padding
-
- This property holds the default padding.
-
- Padding adds a space between each edge of the content item and the
- background item, effectively controlling the size of the content item. To
- specify a padding value for a specific edge of the control, set its
- relevant property:
-
- \list
- \li \l {Control::}{leftPadding}
- \li \l {Control::}{rightPadding}
- \li \l {Control::}{topPadding}
- \li \l {Control::}{bottomPadding}
- \endlist
-
- \note Different styles may specify the default padding for certain controls
- in different ways, and these ways may change over time as the design
- guidelines that the style is based on evolve. To ensure that these changes
- don't affect the padding values you have specified, it is best to use the
- most specific properties available. For example, rather than setting
- the \l padding property:
-
- \code
- padding: 0
- \endcode
-
- set each specific property instead:
-
- \code
- leftPadding: 0
- rightPadding: 0
- topPadding: 0
- bottomPadding: 0
- \endcode
-
- \sa {Control Layout}, availableWidth, availableHeight, topPadding, leftPadding, rightPadding, bottomPadding
-*/
-qreal QQuickControl::padding() const
-{
- Q_D(const QQuickControl);
- return d->padding;
-}
-
-void QQuickControl::setPadding(qreal padding)
-{
- Q_D(QQuickControl);
- if (qFuzzyCompare(d->padding, padding))
- return;
-
- const QMarginsF oldPadding = d->getPadding();
- const qreal oldVerticalPadding = d->getVerticalPadding();
- const qreal oldHorizontalPadding = d->getHorizontalPadding();
-
- d->padding = padding;
- emit paddingChanged();
-
- const QMarginsF newPadding = d->getPadding();
- const qreal newVerticalPadding = d->getVerticalPadding();
- const qreal newHorizontalPadding = d->getHorizontalPadding();
-
- if (!qFuzzyCompare(newPadding.top(), oldPadding.top()))
- emit topPaddingChanged();
- if (!qFuzzyCompare(newPadding.left(), oldPadding.left()))
- emit leftPaddingChanged();
- if (!qFuzzyCompare(newPadding.right(), oldPadding.right()))
- emit rightPaddingChanged();
- if (!qFuzzyCompare(newPadding.bottom(), oldPadding.bottom()))
- emit bottomPaddingChanged();
- if (!qFuzzyCompare(newVerticalPadding, oldVerticalPadding))
- emit verticalPaddingChanged();
- if (!qFuzzyCompare(newHorizontalPadding, oldHorizontalPadding))
- emit horizontalPaddingChanged();
- if (!qFuzzyCompare(newPadding.top(), oldPadding.top()) || !qFuzzyCompare(newPadding.bottom(), oldPadding.bottom()))
- emit availableHeightChanged();
- if (!qFuzzyCompare(newPadding.left(), oldPadding.left()) || !qFuzzyCompare(newPadding.right(), oldPadding.right()))
- emit availableWidthChanged();
-
- paddingChange(newPadding, oldPadding);
-}
-
-void QQuickControl::resetPadding()
-{
- setPadding(0);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Control::topPadding
-
- This property holds the top padding. Unless explicitly set, the value
- is equal to \c verticalPadding.
-
- \sa {Control Layout}, padding, bottomPadding, verticalPadding, availableHeight
-*/
-qreal QQuickControl::topPadding() const
-{
- Q_D(const QQuickControl);
- return d->getTopPadding();
-}
-
-void QQuickControl::setTopPadding(qreal padding)
-{
- Q_D(QQuickControl);
- d->setTopPadding(padding);
-}
-
-void QQuickControl::resetTopPadding()
-{
- Q_D(QQuickControl);
- d->setTopPadding(0, true);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Control::leftPadding
-
- This property holds the left padding. Unless explicitly set, the value
- is equal to \c horizontalPadding.
-
- \sa {Control Layout}, padding, rightPadding, horizontalPadding, availableWidth
-*/
-qreal QQuickControl::leftPadding() const
-{
- Q_D(const QQuickControl);
- return d->getLeftPadding();
-}
-
-void QQuickControl::setLeftPadding(qreal padding)
-{
- Q_D(QQuickControl);
- d->setLeftPadding(padding);
-}
-
-void QQuickControl::resetLeftPadding()
-{
- Q_D(QQuickControl);
- d->setLeftPadding(0, true);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Control::rightPadding
-
- This property holds the right padding. Unless explicitly set, the value
- is equal to \c horizontalPadding.
-
- \sa {Control Layout}, padding, leftPadding, horizontalPadding, availableWidth
-*/
-qreal QQuickControl::rightPadding() const
-{
- Q_D(const QQuickControl);
- return d->getRightPadding();
-}
-
-void QQuickControl::setRightPadding(qreal padding)
-{
- Q_D(QQuickControl);
- d->setRightPadding(padding);
-}
-
-void QQuickControl::resetRightPadding()
-{
- Q_D(QQuickControl);
- d->setRightPadding(0, true);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Control::bottomPadding
-
- This property holds the bottom padding. Unless explicitly set, the value
- is equal to \c verticalPadding.
-
- \sa {Control Layout}, padding, topPadding, verticalPadding, availableHeight
-*/
-qreal QQuickControl::bottomPadding() const
-{
- Q_D(const QQuickControl);
- return d->getBottomPadding();
-}
-
-void QQuickControl::setBottomPadding(qreal padding)
-{
- Q_D(QQuickControl);
- d->setBottomPadding(padding);
-}
-
-void QQuickControl::resetBottomPadding()
-{
- Q_D(QQuickControl);
- d->setBottomPadding(0, true);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Control::spacing
-
- This property holds the spacing.
-
- Spacing is useful for controls that have multiple or repetitive building
- blocks. For example, some styles use spacing to determine the distance
- between the text and indicator of \l CheckBox. Spacing is not enforced by
- Control, so each style may interpret it differently, and some may ignore it
- altogether.
-*/
-qreal QQuickControl::spacing() const
-{
- Q_D(const QQuickControl);
- return d->spacing;
-}
-
-void QQuickControl::setSpacing(qreal spacing)
-{
- Q_D(QQuickControl);
- if (qFuzzyCompare(d->spacing, spacing))
- return;
-
- qreal oldSpacing = d->spacing;
- d->spacing = spacing;
- emit spacingChanged();
- spacingChange(spacing, oldSpacing);
-}
-
-void QQuickControl::resetSpacing()
-{
- setSpacing(0);
-}
-
-/*!
- \qmlproperty Locale QtQuick.Controls::Control::locale
-
- This property holds the locale of the control.
-
- It contains locale specific properties for formatting data and numbers.
- Unless a special locale has been set, this is either the parent's locale
- or the default locale.
-
- Control propagates the locale from parent to children. If you change the
- control's locale, that locale propagates to all of the control's children,
- overriding the system default locale.
-
- \sa mirrored
-*/
-QLocale QQuickControl::locale() const
-{
- Q_D(const QQuickControl);
- return d->locale;
-}
-
-void QQuickControl::setLocale(const QLocale &locale)
-{
- Q_D(QQuickControl);
- if (d->hasLocale && d->locale == locale)
- return;
-
- d->updateLocale(locale, true); // explicit=true
-}
-
-void QQuickControl::resetLocale()
-{
- Q_D(QQuickControl);
- if (!d->hasLocale)
- return;
-
- d->hasLocale = false;
- d->updateLocale(QQuickControlPrivate::calcLocale(d->parentItem), false); // explicit=false
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Control::mirrored
- \readonly
-
- This property holds whether the control is mirrored.
-
- This property is provided for convenience. A control is considered mirrored
- when its visual layout direction is right-to-left; that is, when
- \l {LayoutMirroring::enabled}{LayoutMirroring.enabled} is \c true.
-
- As of Qt 6.2, the \l locale property no longer affects this property.
-
- \sa {LayoutMirroring}{LayoutMirroring}, {Right-to-left User Interfaces}
-*/
-bool QQuickControl::isMirrored() const
-{
- Q_D(const QQuickControl);
- return d->isMirrored();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::Control::focusPolicy
-
- This property determines the way the control accepts focus.
-
- \value Qt.TabFocus The control accepts focus by tabbing.
- \value Qt.ClickFocus The control accepts focus by clicking.
- \value Qt.StrongFocus The control accepts focus by both tabbing and clicking.
- \value Qt.WheelFocus The control accepts focus by tabbing, clicking, and using the mouse wheel.
- \value Qt.NoFocus The control does not accept focus.
-*/
-Qt::FocusPolicy QQuickControl::focusPolicy() const
-{
- Q_D(const QQuickControl);
- uint policy = d->focusPolicy;
- if (activeFocusOnTab())
- policy |= Qt::TabFocus;
- return static_cast<Qt::FocusPolicy>(policy);
-}
-
-void QQuickControl::setFocusPolicy(Qt::FocusPolicy policy)
-{
- Q_D(QQuickControl);
- if (d->focusPolicy == policy)
- return;
-
- d->focusPolicy = policy;
- setActiveFocusOnTab(policy & Qt::TabFocus);
- emit focusPolicyChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::Control::focusReason
- \readonly
-
- \include qquickcontrol-focusreason.qdocinc
-
- \sa visualFocus
-*/
-Qt::FocusReason QQuickControl::focusReason() const
-{
- Q_D(const QQuickControl);
- return d->focusReason;
-}
-
-void QQuickControl::setFocusReason(Qt::FocusReason reason)
-{
- Q_D(QQuickControl);
- if (d->focusReason == reason)
- return;
-
- Qt::FocusReason oldReason = d->focusReason;
- d->focusReason = reason;
- emit focusReasonChanged();
- if (isKeyFocusReason(oldReason) != isKeyFocusReason(reason))
- emit visualFocusChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Control::visualFocus
- \readonly
-
- This property holds whether the control has visual focus. This property
- is \c true when the control has active focus and the focus reason is either
- \c Qt.TabFocusReason, \c Qt.BacktabFocusReason, or \c Qt.ShortcutFocusReason.
-
- In general, for visualizing key focus, this property is preferred over
- \l Item::activeFocus. This ensures that key focus is only visualized when
- interacting with keys - not when interacting via touch or mouse.
-
- \sa focusReason, Item::activeFocus
-*/
-bool QQuickControl::hasVisualFocus() const
-{
- Q_D(const QQuickControl);
- return d->activeFocus && isKeyFocusReason(d->focusReason);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Control::hovered
- \readonly
-
- This property holds whether the control is hovered.
-
- \sa hoverEnabled
-*/
-bool QQuickControl::isHovered() const
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(const QQuickControl);
- return d->hovered;
-#else
- return false;
-#endif
-}
-
-void QQuickControl::setHovered(bool hovered)
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(QQuickControl);
- if (hovered == d->hovered)
- return;
-
- d->hovered = hovered;
- emit hoveredChanged();
- hoverChange();
-#else
- Q_UNUSED(hovered);
-#endif
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Control::hoverEnabled
-
- This property determines whether the control accepts hover events. The default value
- is \c Qt.styleHints.useHoverEffects.
-
- Setting this property propagates the value to all child controls that do not have
- \c hoverEnabled explicitly set.
-
- You can also enable or disable hover effects for all Qt Quick Controls applications
- by setting the \c QT_QUICK_CONTROLS_HOVER_ENABLED \l {Supported Environment Variables
- in Qt Quick Controls}{environment variable}.
-
- \sa hovered
-*/
-bool QQuickControl::isHoverEnabled() const
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(const QQuickControl);
- return d->hoverEnabled;
-#else
- return false;
-#endif
-}
-
-void QQuickControl::setHoverEnabled(bool enabled)
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(QQuickControl);
- if (d->explicitHoverEnabled && enabled == d->hoverEnabled)
- return;
-
- d->updateHoverEnabled(enabled, true); // explicit=true
-#else
- Q_UNUSED(enabled);
-#endif
-}
-
-void QQuickControl::resetHoverEnabled()
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(QQuickControl);
- if (!d->explicitHoverEnabled)
- return;
-
- d->explicitHoverEnabled = false;
- d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false
-#endif
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Control::wheelEnabled
-
- This property determines whether the control handles wheel events. The default value is \c false.
-
- \note Care must be taken when enabling wheel events for controls within scrollable items such
- as \l Flickable, as the control will consume the events and hence interrupt scrolling of the
- Flickable.
-*/
-bool QQuickControl::isWheelEnabled() const
-{
- Q_D(const QQuickControl);
- return d->wheelEnabled;
-}
-
-void QQuickControl::setWheelEnabled(bool enabled)
-{
- Q_D(QQuickControl);
- if (d->wheelEnabled == enabled)
- return;
-
- d->wheelEnabled = enabled;
- emit wheelEnabledChanged();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Control::background
-
- This property holds the background item.
-
- \code
- Button {
- id: control
- text: qsTr("Button")
- background: Rectangle {
- implicitWidth: 100
- implicitHeight: 40
- opacity: enabled ? 1 : 0.3
- color: control.down ? "#d0d0d0" : "#e0e0e0"
- }
- }
- \endcode
-
- \input qquickcontrol-background.qdocinc notes
-
- \sa {Control Layout}
-*/
-QQuickItem *QQuickControl::background() const
-{
- QQuickControlPrivate *d = const_cast<QQuickControlPrivate *>(d_func());
- if (!d->background)
- d->executeBackground();
- return d->background;
-}
-
-void QQuickControl::setBackground(QQuickItem *background)
-{
- Q_D(QQuickControl);
- if (d->background == background)
- return;
-
- if (!d->background.isExecuting())
- d->cancelBackground();
-
- const qreal oldImplicitBackgroundWidth = implicitBackgroundWidth();
- const qreal oldImplicitBackgroundHeight = implicitBackgroundHeight();
-
- if (d->extra.isAllocated()) {
- d->extra.value().hasBackgroundWidth = false;
- d->extra.value().hasBackgroundHeight = false;
- }
-
- d->removeImplicitSizeListener(d->background, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
- QQuickControlPrivate::hideOldItem(d->background);
- d->background = background;
-
- if (background) {
- background->setParentItem(this);
- if (qFuzzyIsNull(background->z()))
- background->setZ(-1);
- QQuickItemPrivate *p = QQuickItemPrivate::get(background);
- if (p->widthValid() || p->heightValid()) {
- d->extra.value().hasBackgroundWidth = p->widthValid();
- d->extra.value().hasBackgroundHeight = p->heightValid();
- }
- if (isComponentComplete())
- d->resizeBackground();
- d->addImplicitSizeListener(background, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
- }
-
- if (!qFuzzyCompare(oldImplicitBackgroundWidth, implicitBackgroundWidth()))
- emit implicitBackgroundWidthChanged();
- if (!qFuzzyCompare(oldImplicitBackgroundHeight, implicitBackgroundHeight()))
- emit implicitBackgroundHeightChanged();
- if (!d->background.isExecuting())
- emit backgroundChanged();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Control::contentItem
-
- This property holds the visual content item.
-
- \code
- Button {
- id: control
- text: qsTr("Button")
- contentItem: Label {
- text: control.text
- font: control.font
- verticalAlignment: Text.AlignVCenter
- }
- }
- \endcode
-
- \note The content item is automatically positioned and resized to fit
- within the \l padding of the control. Bindings to the
- \l[QtQuick]{Item::}{x}, \l[QtQuick]{Item::}{y},
- \l[QtQuick]{Item::}{width}, and \l[QtQuick]{Item::}{height}
- properties of the contentItem are not respected.
-
- \note Most controls use the implicit size of the content item to calculate
- the implicit size of the control itself. If you replace the content item
- with a custom one, you should also consider providing a sensible implicit
- size for it (unless it is an item like \l Text which has its own implicit
- size).
-
- \sa {Control Layout}, padding
-*/
-QQuickItem *QQuickControl::contentItem() const
-{
- QQuickControlPrivate *d = const_cast<QQuickControlPrivate *>(d_func());
- if (!d->contentItem)
- d->setContentItem_helper(d->getContentItem(), false);
- return d->contentItem;
-}
-
-void QQuickControl::setContentItem(QQuickItem *item)
-{
- Q_D(QQuickControl);
- d->setContentItem_helper(item, true);
-}
-
-qreal QQuickControl::baselineOffset() const
-{
- Q_D(const QQuickControl);
- return d->baselineOffset;
-}
-
-void QQuickControl::setBaselineOffset(qreal offset)
-{
- Q_D(QQuickControl);
- d->extra.value().hasBaselineOffset = true;
- QQuickItem::setBaselineOffset(offset);
-}
-
-void QQuickControl::resetBaselineOffset()
-{
- Q_D(QQuickControl);
- if (!d->extra.isAllocated() || !d->extra.value().hasBaselineOffset)
- return;
-
- if (d->extra.isAllocated())
- d->extra.value().hasBaselineOffset = false;
- d->updateBaselineOffset();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Control::horizontalPadding
-
- This property holds the horizontal padding. Unless explicitly set, the value
- is equal to \c padding.
-
- \sa {Control Layout}, padding, leftPadding, rightPadding, verticalPadding
-*/
-qreal QQuickControl::horizontalPadding() const
-{
- Q_D(const QQuickControl);
- return d->getHorizontalPadding();
-}
-
-void QQuickControl::setHorizontalPadding(qreal padding)
-{
- Q_D(QQuickControl);
- d->setHorizontalPadding(padding);
-}
-
-void QQuickControl::resetHorizontalPadding()
-{
- Q_D(QQuickControl);
- d->setHorizontalPadding(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Control::verticalPadding
-
- This property holds the vertical padding. Unless explicitly set, the value
- is equal to \c padding.
-
- \sa {Control Layout}, padding, topPadding, bottomPadding, horizontalPadding
-*/
-qreal QQuickControl::verticalPadding() const
-{
- Q_D(const QQuickControl);
- return d->getVerticalPadding();
-}
-
-void QQuickControl::setVerticalPadding(qreal padding)
-{
- Q_D(QQuickControl);
- d->setVerticalPadding(padding);
-}
-
-void QQuickControl::resetVerticalPadding()
-{
- Q_D(QQuickControl);
- d->setVerticalPadding(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Control::implicitContentWidth
- \readonly
-
- This property holds the implicit content width.
-
- For basic controls, the value is equal to \c {contentItem ? contentItem.implicitWidth : 0}.
- For types that inherit Container or Pane, the value is calculated based on the content children.
-
- This is typically used, together with \l implicitBackgroundWidth, to calculate
- the \l {Item::}{implicitWidth}:
-
- \code
- Control {
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- }
- \endcode
-
- \sa implicitContentHeight, implicitBackgroundWidth
-*/
-qreal QQuickControl::implicitContentWidth() const
-{
- Q_D(const QQuickControl);
- return d->implicitContentWidth;
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Control::implicitContentHeight
- \readonly
-
- This property holds the implicit content height.
-
- For basic controls, the value is equal to \c {contentItem ? contentItem.implicitHeight : 0}.
- For types that inherit Container or Pane, the value is calculated based on the content children.
-
- This is typically used, together with \l implicitBackgroundHeight, to calculate
- the \l {Item::}{implicitHeight}:
-
- \code
- Control {
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
- }
- \endcode
-
- \sa implicitContentWidth, implicitBackgroundHeight
-*/
-qreal QQuickControl::implicitContentHeight() const
-{
- Q_D(const QQuickControl);
- return d->implicitContentHeight;
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Control::implicitBackgroundWidth
- \readonly
-
- This property holds the implicit background width.
-
- The value is equal to \c {background ? background.implicitWidth : 0}.
-
- This is typically used, together with \l implicitContentWidth, to calculate
- the \l {Item::}{implicitWidth}:
-
- \code
- Control {
- implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
- implicitContentWidth + leftPadding + rightPadding)
- }
- \endcode
-
- \sa implicitBackgroundHeight, implicitContentWidth
-*/
-qreal QQuickControl::implicitBackgroundWidth() const
-{
- Q_D(const QQuickControl);
- if (!d->background)
- return 0;
- return d->background->implicitWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Control::implicitBackgroundHeight
- \readonly
-
- This property holds the implicit background height.
-
- The value is equal to \c {background ? background.implicitHeight : 0}.
-
- This is typically used, together with \l implicitContentHeight, to calculate
- the \l {Item::}{implicitHeight}:
-
- \code
- Control {
- implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
- implicitContentHeight + topPadding + bottomPadding)
- }
- \endcode
-
- \sa implicitBackgroundWidth, implicitContentHeight
-*/
-qreal QQuickControl::implicitBackgroundHeight() const
-{
- Q_D(const QQuickControl);
- if (!d->background)
- return 0;
- return d->background->implicitHeight();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Control::topInset
-
- This property holds the top inset for the background.
-
- \sa {Control Layout}, bottomInset
-*/
-qreal QQuickControl::topInset() const
-{
- Q_D(const QQuickControl);
- return d->getTopInset();
-}
-
-void QQuickControl::setTopInset(qreal inset)
-{
- Q_D(QQuickControl);
- d->setTopInset(inset);
-}
-
-void QQuickControl::resetTopInset()
-{
- Q_D(QQuickControl);
- d->setTopInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Control::leftInset
-
- This property holds the left inset for the background.
-
- \sa {Control Layout}, rightInset
-*/
-qreal QQuickControl::leftInset() const
-{
- Q_D(const QQuickControl);
- return d->getLeftInset();
-}
-
-void QQuickControl::setLeftInset(qreal inset)
-{
- Q_D(QQuickControl);
- d->setLeftInset(inset);
-}
-
-void QQuickControl::resetLeftInset()
-{
- Q_D(QQuickControl);
- d->setLeftInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Control::rightInset
-
- This property holds the right inset for the background.
-
- \sa {Control Layout}, leftInset
-*/
-qreal QQuickControl::rightInset() const
-{
- Q_D(const QQuickControl);
- return d->getRightInset();
-}
-
-void QQuickControl::setRightInset(qreal inset)
-{
- Q_D(QQuickControl);
- d->setRightInset(inset);
-}
-
-void QQuickControl::resetRightInset()
-{
- Q_D(QQuickControl);
- d->setRightInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Control::bottomInset
-
- This property holds the bottom inset for the background.
-
- \sa {Control Layout}, topInset
-*/
-qreal QQuickControl::bottomInset() const
-{
- Q_D(const QQuickControl);
- return d->getBottomInset();
-}
-
-void QQuickControl::setBottomInset(qreal inset)
-{
- Q_D(QQuickControl);
- d->setBottomInset(inset);
-}
-
-void QQuickControl::resetBottomInset()
-{
- Q_D(QQuickControl);
- d->setBottomInset(0, true);
-}
-
-void QQuickControl::classBegin()
-{
- Q_D(QQuickControl);
- QQuickItem::classBegin();
- d->resolveFont();
-}
-
-void QQuickControl::componentComplete()
-{
- Q_D(QQuickControl);
- d->executeBackground(true);
- d->executeContentItem(true);
- QQuickItem::componentComplete();
- d->resizeBackground();
- d->resizeContent();
- d->updateBaselineOffset();
- if (!d->hasLocale)
- d->locale = QQuickControlPrivate::calcLocale(d->parentItem);
-#if QT_CONFIG(quicktemplates2_hover)
- if (!d->explicitHoverEnabled)
- setAcceptHoverEvents(QQuickControlPrivate::calcHoverEnabled(d->parentItem));
-#endif
-#if QT_CONFIG(accessibility)
- if (QAccessible::isActive())
- accessibilityActiveChanged(true);
-#endif
-}
-
-QFont QQuickControl::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::System);
-}
-
-void QQuickControl::focusInEvent(QFocusEvent *event)
-{
- QQuickItem::focusInEvent(event);
- setFocusReason(event->reason());
-}
-
-void QQuickControl::focusOutEvent(QFocusEvent *event)
-{
- QQuickItem::focusOutEvent(event);
- setFocusReason(event->reason());
-}
-
-#if QT_CONFIG(quicktemplates2_hover)
-void QQuickControl::hoverEnterEvent(QHoverEvent *event)
-{
- Q_D(QQuickControl);
- setHovered(d->hoverEnabled);
- event->setAccepted(d->hoverEnabled);
-}
-
-void QQuickControl::hoverMoveEvent(QHoverEvent *event)
-{
- Q_D(QQuickControl);
- setHovered(d->hoverEnabled && contains(event->position()));
- event->setAccepted(d->hoverEnabled);
-}
-
-void QQuickControl::hoverLeaveEvent(QHoverEvent *event)
-{
- Q_D(QQuickControl);
- setHovered(false);
- event->setAccepted(d->hoverEnabled);
-}
-#endif
-
-void QQuickControl::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickControl);
- d->handlePress(event->position(), event->timestamp());
- if (event->source() == Qt::MouseEventSynthesizedByQt) {
- d->pressWasTouch = true;
- d->previousPressPos = event->position();
- }
- event->accept();
-}
-
-void QQuickControl::mouseMoveEvent(QMouseEvent *event)
-{
- Q_D(QQuickControl);
- d->handleMove(event->position(), event->timestamp());
- event->accept();
-}
-
-void QQuickControl::mouseReleaseEvent(QMouseEvent *event)
-{
- Q_D(QQuickControl);
- d->handleRelease(event->position(), event->timestamp());
- event->accept();
-}
-
-void QQuickControl::mouseUngrabEvent()
-{
- Q_D(QQuickControl);
- d->handleUngrab();
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickControl::touchEvent(QTouchEvent *event)
-{
- Q_D(QQuickControl);
- switch (event->type()) {
- case QEvent::TouchBegin:
- case QEvent::TouchUpdate:
- case QEvent::TouchEnd:
- for (const QTouchEvent::TouchPoint &point : event->points()) {
- if (!d->acceptTouch(point))
- continue;
-
- switch (point.state()) {
- case QEventPoint::Pressed:
- d->handlePress(point.position(), event->timestamp());
- break;
- case QEventPoint::Updated:
- d->handleMove(point.position(), event->timestamp());
- break;
- case QEventPoint::Released:
- d->handleRelease(point.position(), event->timestamp());
- break;
- default:
- break;
- }
- }
- break;
-
- case QEvent::TouchCancel:
- d->handleUngrab();
- break;
-
- default:
- QQuickItem::touchEvent(event);
- break;
- }
-}
-
-void QQuickControl::touchUngrabEvent()
-{
- Q_D(QQuickControl);
- d->handleUngrab();
-}
-#endif
-
-#if QT_CONFIG(wheelevent)
-void QQuickControl::wheelEvent(QWheelEvent *event)
-{
- Q_D(QQuickControl);
- if ((d->focusPolicy & Qt::WheelFocus) == Qt::WheelFocus)
- setActiveFocus(this, Qt::MouseFocusReason);
-
- event->setAccepted(d->wheelEnabled);
-}
-#endif
-
-void QQuickControl::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickControl);
- QQuickItem::geometryChange(newGeometry, oldGeometry);
- d->resizeBackground();
- d->resizeContent();
- if (!qFuzzyCompare(newGeometry.width(), oldGeometry.width()))
- emit availableWidthChanged();
- if (!qFuzzyCompare(newGeometry.height(), oldGeometry.height()))
- emit availableHeightChanged();
-}
-
-void QQuickControl::enabledChange()
-{
-}
-
-void QQuickControl::fontChange(const QFont &newFont, const QFont &oldFont)
-{
- Q_UNUSED(newFont);
- Q_UNUSED(oldFont);
-}
-
-#if QT_CONFIG(quicktemplates2_hover)
-void QQuickControl::hoverChange()
-{
-}
-#endif
-
-void QQuickControl::mirrorChange()
-{
- emit mirroredChanged();
-}
-
-void QQuickControl::spacingChange(qreal newSpacing, qreal oldSpacing)
-{
- Q_UNUSED(newSpacing);
- Q_UNUSED(oldSpacing);
-}
-
-void QQuickControl::paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding)
-{
- Q_D(QQuickControl);
- Q_UNUSED(newPadding);
- Q_UNUSED(oldPadding);
- d->resizeContent();
- d->updateBaselineOffset();
-}
-
-void QQuickControl::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_UNUSED(newItem);
- Q_UNUSED(oldItem);
-}
-
-void QQuickControl::localeChange(const QLocale &newLocale, const QLocale &oldLocale)
-{
- Q_UNUSED(newLocale);
- Q_UNUSED(oldLocale);
-}
-
-void QQuickControl::insetChange(const QMarginsF &newInset, const QMarginsF &oldInset)
-{
- Q_D(QQuickControl);
- Q_UNUSED(newInset);
- Q_UNUSED(oldInset);
- d->resizeBackground();
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickControl::accessibleRole() const
-{
- return QAccessible::NoRole;
-}
-
-void QQuickControl::accessibilityActiveChanged(bool active)
-{
- if (!active)
- return;
-
- QQuickAccessibleAttached *accessibleAttached = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(this, true));
- Q_ASSERT(accessibleAttached);
- accessibleAttached->setRole(accessibleRole());
-}
-#endif
-
-QString QQuickControl::accessibleName() const
-{
-#if QT_CONFIG(accessibility)
- if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this))
- return accessibleAttached->name();
-#endif
- return QString();
-}
-
-void QQuickControl::maybeSetAccessibleName(const QString &name)
-{
-#if QT_CONFIG(accessibility)
- if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this)) {
- if (!accessibleAttached->wasNameExplicitlySet())
- accessibleAttached->setNameImplicitly(name);
- }
-#else
- Q_UNUSED(name);
-#endif
-}
-
-QVariant QQuickControl::accessibleProperty(const char *propertyName)
-{
-#if QT_CONFIG(accessibility)
- if (QAccessible::isActive())
- return QQuickAccessibleAttached::property(this, propertyName);
-#endif
- Q_UNUSED(propertyName);
- return QVariant();
-}
-
-bool QQuickControl::setAccessibleProperty(const char *propertyName, const QVariant &value)
-{
-#if QT_CONFIG(accessibility)
- if (QAccessible::isActive())
- return QQuickAccessibleAttached::setProperty(this, propertyName, value);
-#endif
- Q_UNUSED(propertyName);
- Q_UNUSED(value);
- return false;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickcontrol_p.h b/src/quicktemplates2/qquickcontrol_p.h
deleted file mode 100644
index 79fb3915..00000000
--- a/src/quicktemplates2/qquickcontrol_p.h
+++ /dev/null
@@ -1,320 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCONTROL_P_H
-#define QQUICKCONTROL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qlocale.h>
-#include <QtGui/qpalette.h>
-#include <QtQuick/qquickitem.h>
-#include <QtQuick/private/qquickpalette_p.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickControlPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickControl : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(QFont font READ font WRITE setFont RESET resetFont NOTIFY fontChanged FINAL)
- Q_PROPERTY(qreal availableWidth READ availableWidth NOTIFY availableWidthChanged FINAL)
- Q_PROPERTY(qreal availableHeight READ availableHeight NOTIFY availableHeightChanged FINAL)
- Q_PROPERTY(qreal padding READ padding WRITE setPadding RESET resetPadding NOTIFY paddingChanged FINAL)
- Q_PROPERTY(qreal topPadding READ topPadding WRITE setTopPadding RESET resetTopPadding NOTIFY topPaddingChanged FINAL)
- Q_PROPERTY(qreal leftPadding READ leftPadding WRITE setLeftPadding RESET resetLeftPadding NOTIFY leftPaddingChanged FINAL)
- Q_PROPERTY(qreal rightPadding READ rightPadding WRITE setRightPadding RESET resetRightPadding NOTIFY rightPaddingChanged FINAL)
- Q_PROPERTY(qreal bottomPadding READ bottomPadding WRITE setBottomPadding RESET resetBottomPadding NOTIFY bottomPaddingChanged FINAL)
- Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing RESET resetSpacing NOTIFY spacingChanged FINAL)
- Q_PROPERTY(QLocale locale READ locale WRITE setLocale RESET resetLocale NOTIFY localeChanged FINAL)
- Q_PROPERTY(bool mirrored READ isMirrored NOTIFY mirroredChanged FINAL)
- Q_PROPERTY(Qt::FocusPolicy focusPolicy READ focusPolicy WRITE setFocusPolicy NOTIFY focusPolicyChanged FINAL)
- Q_PROPERTY(Qt::FocusReason focusReason READ focusReason WRITE setFocusReason NOTIFY focusReasonChanged FINAL)
- Q_PROPERTY(bool visualFocus READ hasVisualFocus NOTIFY visualFocusChanged FINAL)
- Q_PROPERTY(bool hovered READ isHovered NOTIFY hoveredChanged FINAL)
- Q_PROPERTY(bool hoverEnabled READ isHoverEnabled WRITE setHoverEnabled RESET resetHoverEnabled NOTIFY hoverEnabledChanged FINAL)
- Q_PROPERTY(bool wheelEnabled READ isWheelEnabled WRITE setWheelEnabled NOTIFY wheelEnabledChanged FINAL)
- Q_PROPERTY(QQuickItem *background READ background WRITE setBackground NOTIFY backgroundChanged FINAL)
- Q_PROPERTY(QQuickItem *contentItem READ contentItem WRITE setContentItem NOTIFY contentItemChanged FINAL)
- Q_PROPERTY(qreal baselineOffset READ baselineOffset WRITE setBaselineOffset RESET resetBaselineOffset NOTIFY baselineOffsetChanged FINAL)
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal horizontalPadding READ horizontalPadding WRITE setHorizontalPadding RESET resetHorizontalPadding NOTIFY horizontalPaddingChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal verticalPadding READ verticalPadding WRITE setVerticalPadding RESET resetVerticalPadding NOTIFY verticalPaddingChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitContentWidth READ implicitContentWidth NOTIFY implicitContentWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitContentHeight READ implicitContentHeight NOTIFY implicitContentHeightChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitBackgroundWidth READ implicitBackgroundWidth NOTIFY implicitBackgroundWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitBackgroundHeight READ implicitBackgroundHeight NOTIFY implicitBackgroundHeightChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal topInset READ topInset WRITE setTopInset RESET resetTopInset NOTIFY topInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal leftInset READ leftInset WRITE setLeftInset RESET resetLeftInset NOTIFY leftInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal rightInset READ rightInset WRITE setRightInset RESET resetRightInset NOTIFY rightInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal bottomInset READ bottomInset WRITE setBottomInset RESET resetBottomInset NOTIFY bottomInsetChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "background,contentItem")
- QML_NAMED_ELEMENT(Control)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickControl(QQuickItem *parent = nullptr);
- ~QQuickControl();
-
- QFont font() const;
- void setFont(const QFont &font);
- void resetFont();
-
- qreal availableWidth() const;
- qreal availableHeight() const;
-
- qreal padding() const;
- void setPadding(qreal padding);
- void resetPadding();
-
- qreal topPadding() const;
- void setTopPadding(qreal padding);
- void resetTopPadding();
-
- qreal leftPadding() const;
- void setLeftPadding(qreal padding);
- void resetLeftPadding();
-
- qreal rightPadding() const;
- void setRightPadding(qreal padding);
- void resetRightPadding();
-
- qreal bottomPadding() const;
- void setBottomPadding(qreal padding);
- void resetBottomPadding();
-
- qreal spacing() const;
- void setSpacing(qreal spacing);
- void resetSpacing();
-
- QLocale locale() const;
- void setLocale(const QLocale &locale);
- void resetLocale();
-
- bool isMirrored() const;
-
- Qt::FocusPolicy focusPolicy() const;
- void setFocusPolicy(Qt::FocusPolicy policy);
-
- Qt::FocusReason focusReason() const;
- void setFocusReason(Qt::FocusReason reason);
-
- bool hasVisualFocus() const;
-
- bool isHovered() const;
- void setHovered(bool hovered);
-
- bool isHoverEnabled() const;
- void setHoverEnabled(bool enabled);
- void resetHoverEnabled();
-
- bool isWheelEnabled() const;
- void setWheelEnabled(bool enabled);
-
- QQuickItem *background() const;
- void setBackground(QQuickItem *background);
-
- QQuickItem *contentItem() const;
- void setContentItem(QQuickItem *item);
-
- qreal baselineOffset() const;
- void setBaselineOffset(qreal offset);
- void resetBaselineOffset();
-
- // 2.5 (Qt 5.12)
- qreal horizontalPadding() const;
- void setHorizontalPadding(qreal padding);
- void resetHorizontalPadding();
-
- qreal verticalPadding() const;
- void setVerticalPadding(qreal padding);
- void resetVerticalPadding();
-
- qreal implicitContentWidth() const;
- qreal implicitContentHeight() const;
-
- qreal implicitBackgroundWidth() const;
- qreal implicitBackgroundHeight() const;
-
- qreal topInset() const;
- void setTopInset(qreal inset);
- void resetTopInset();
-
- qreal leftInset() const;
- void setLeftInset(qreal inset);
- void resetLeftInset();
-
- qreal rightInset() const;
- void setRightInset(qreal inset);
- void resetRightInset();
-
- qreal bottomInset() const;
- void setBottomInset(qreal inset);
- void resetBottomInset();
-
-Q_SIGNALS:
- void fontChanged();
- void availableWidthChanged();
- void availableHeightChanged();
- void paddingChanged();
- void topPaddingChanged();
- void leftPaddingChanged();
- void rightPaddingChanged();
- void bottomPaddingChanged();
- void spacingChanged();
- void localeChanged();
- void mirroredChanged();
- void focusPolicyChanged();
- void focusReasonChanged();
- void visualFocusChanged();
- void hoveredChanged();
- void hoverEnabledChanged();
- void wheelEnabledChanged();
- void backgroundChanged();
- void contentItemChanged();
- void baselineOffsetChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void horizontalPaddingChanged();
- Q_REVISION(2, 5) void verticalPaddingChanged();
- Q_REVISION(2, 5) void implicitContentWidthChanged();
- Q_REVISION(2, 5) void implicitContentHeightChanged();
- Q_REVISION(2, 5) void implicitBackgroundWidthChanged();
- Q_REVISION(2, 5) void implicitBackgroundHeightChanged();
- Q_REVISION(2, 5) void topInsetChanged();
- Q_REVISION(2, 5) void leftInsetChanged();
- Q_REVISION(2, 5) void rightInsetChanged();
- Q_REVISION(2, 5) void bottomInsetChanged();
-
-protected:
- virtual QFont defaultFont() const;
-
- QQuickControl(QQuickControlPrivate &dd, QQuickItem *parent);
-
- void classBegin() override;
- void componentComplete() override;
-
- void itemChange(ItemChange change, const ItemChangeData &value) override;
-
- void focusInEvent(QFocusEvent *event) override;
- void focusOutEvent(QFocusEvent *event) override;
-#if QT_CONFIG(quicktemplates2_hover)
- void hoverEnterEvent(QHoverEvent *event) override;
- void hoverMoveEvent(QHoverEvent *event) override;
- void hoverLeaveEvent(QHoverEvent *event) override;
-#endif
- void mousePressEvent(QMouseEvent *event) override;
- void mouseMoveEvent(QMouseEvent *event) override;
- void mouseReleaseEvent(QMouseEvent *event) override;
- void mouseUngrabEvent() override;
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
- void touchUngrabEvent() override;
-#endif
-#if QT_CONFIG(wheelevent)
- void wheelEvent(QWheelEvent *event) override;
-#endif
-
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
-
- virtual void fontChange(const QFont &newFont, const QFont &oldFont);
-#if QT_CONFIG(quicktemplates2_hover)
- virtual void hoverChange();
-#endif
- virtual void mirrorChange();
- virtual void spacingChange(qreal newSpacing, qreal oldSpacing);
- virtual void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding);
- virtual void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem);
- virtual void localeChange(const QLocale &newLocale, const QLocale &oldLocale);
- virtual void insetChange(const QMarginsF &newInset, const QMarginsF &oldInset);
- virtual void enabledChange();
-
-#if QT_CONFIG(accessibility)
- virtual QAccessible::Role accessibleRole() const;
- virtual void accessibilityActiveChanged(bool active);
-#endif
-
- // helper functions which avoid to check QT_CONFIG(accessibility)
- QString accessibleName() const;
- void maybeSetAccessibleName(const QString &name);
-
- QVariant accessibleProperty(const char *propertyName);
- bool setAccessibleProperty(const char *propertyName, const QVariant &value);
-
-private:
- Q_DISABLE_COPY(QQuickControl)
- Q_DECLARE_PRIVATE(QQuickControl)
-};
-
-struct QQuickItemForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickItem)
- QML_ADDED_IN_VERSION(2, 3)
-};
-
-struct QQuickColorGroupForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickColorGroup)
- QML_ADDED_IN_VERSION(6, 0)
-};
-
-struct QQuickPaletteForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickPalette)
- QML_ADDED_IN_VERSION(6, 0)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickControl)
-
-#endif // QQUICKCONTROL_P_H
diff --git a/src/quicktemplates2/qquickcontrol_p_p.h b/src/quicktemplates2/qquickcontrol_p_p.h
deleted file mode 100644
index 4b8fb3e0..00000000
--- a/src/quicktemplates2/qquickcontrol_p_p.h
+++ /dev/null
@@ -1,242 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKCONTROL_P_P_H
-#define QQUICKCONTROL_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQuickTemplates2/private/qquickdeferredpointer_p_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-#include <QtQml/private/qlazilyallocated_p.h>
-
-#if QT_CONFIG(accessibility)
-#include <QtGui/qaccessible.h>
-#endif
-
-#include <QtCore/qloggingcategory.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_DECLARE_LOGGING_CATEGORY(lcItemManagement)
-
-class QQuickAccessibleAttached;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickControlPrivate : public QQuickItemPrivate, public QQuickItemChangeListener
-#if QT_CONFIG(accessibility)
- , public QAccessible::ActivationObserver
-#endif
-{
- Q_DECLARE_PUBLIC(QQuickControl)
-
-public:
- QQuickControlPrivate();
- ~QQuickControlPrivate();
-
- static QQuickControlPrivate *get(QQuickControl *control)
- {
- return control->d_func();
- }
-
- void init();
-
-#if QT_CONFIG(quicktemplates2_multitouch)
- virtual bool acceptTouch(const QTouchEvent::TouchPoint &point);
-#endif
- virtual void handlePress(const QPointF &point, ulong timestamp);
- virtual void handleMove(const QPointF &point, ulong timestamp);
- virtual void handleRelease(const QPointF &point, ulong timestamp);
- virtual void handleUngrab();
-
- void mirrorChange() override;
-
- inline QMarginsF getPadding() const { return QMarginsF(getLeftPadding(), getTopPadding(), getRightPadding(), getBottomPadding()); }
- inline qreal getTopPadding() const { return extra.isAllocated() && extra->hasTopPadding ? extra->topPadding : getVerticalPadding(); }
- inline qreal getLeftPadding() const { return extra.isAllocated() && extra->hasLeftPadding ? extra->leftPadding : getHorizontalPadding(); }
- inline qreal getRightPadding() const { return extra.isAllocated() && extra->hasRightPadding ? extra->rightPadding : getHorizontalPadding(); }
- inline qreal getBottomPadding() const { return extra.isAllocated() && extra->hasBottomPadding ? extra->bottomPadding : getVerticalPadding(); }
- inline qreal getHorizontalPadding() const { return hasHorizontalPadding ? horizontalPadding : padding; }
- inline qreal getVerticalPadding() const { return hasVerticalPadding ? verticalPadding : padding; }
-
- void setTopPadding(qreal value, bool reset = false);
- void setLeftPadding(qreal value, bool reset = false);
- void setRightPadding(qreal value, bool reset = false);
- void setBottomPadding(qreal value, bool reset = false);
- void setHorizontalPadding(qreal value, bool reset = false);
- void setVerticalPadding(qreal value, bool reset = false);
-
- inline QMarginsF getInset() const { return QMarginsF(getLeftInset(), getTopInset(), getRightInset(), getBottomInset()); }
- inline qreal getTopInset() const { return extra.isAllocated() ? extra->topInset : 0; }
- inline qreal getLeftInset() const { return extra.isAllocated() ? extra->leftInset : 0; }
- inline qreal getRightInset() const { return extra.isAllocated() ? extra->rightInset : 0; }
- inline qreal getBottomInset() const { return extra.isAllocated() ? extra->bottomInset : 0; }
-
- void setTopInset(qreal value, bool reset = false);
- void setLeftInset(qreal value, bool reset = false);
- void setRightInset(qreal value, bool reset = false);
- void setBottomInset(qreal value, bool reset = false);
-
- virtual void resizeBackground();
- virtual void resizeContent();
-
- virtual QQuickItem *getContentItem();
- void setContentItem_helper(QQuickItem *item, bool notify = true);
-
-#if QT_CONFIG(accessibility)
- void accessibilityActiveChanged(bool active) override;
- QAccessible::Role accessibleRole() const override;
- static QQuickAccessibleAttached *accessibleAttached(const QObject *object);
-#endif
-
- virtual void resolveFont();
- void inheritFont(const QFont &font);
- void updateFont(const QFont &font);
- static void updateFontRecur(QQuickItem *item, const QFont &font);
- inline void setFont_helper(const QFont &font) {
- if (resolvedFont.resolveMask() == font.resolveMask() && resolvedFont == font)
- return;
- updateFont(font);
- }
- static QFont parentFont(const QQuickItem *item);
-
- void updateLocale(const QLocale &l, bool e);
- static void updateLocaleRecur(QQuickItem *item, const QLocale &l);
- static QLocale calcLocale(const QQuickItem *item);
-
-#if QT_CONFIG(quicktemplates2_hover)
- void updateHoverEnabled(bool enabled, bool xplicit);
- static void updateHoverEnabledRecur(QQuickItem *item, bool enabled);
- static bool calcHoverEnabled(const QQuickItem *item);
-#endif
-
- virtual void cancelContentItem();
- virtual void executeContentItem(bool complete = false);
-
- virtual void cancelBackground();
- virtual void executeBackground(bool complete = false);
-
- static void hideOldItem(QQuickItem *item);
-
- void updateBaselineOffset();
-
- static const ChangeTypes ImplicitSizeChanges;
-
- void addImplicitSizeListener(QQuickItem *item, ChangeTypes changes = ImplicitSizeChanges);
- void removeImplicitSizeListener(QQuickItem *item, ChangeTypes changes = ImplicitSizeChanges);
-
- static void addImplicitSizeListener(QQuickItem *item, QQuickItemChangeListener *listener, ChangeTypes changes = ImplicitSizeChanges);
- static void removeImplicitSizeListener(QQuickItem *item, QQuickItemChangeListener *listener, ChangeTypes changes = ImplicitSizeChanges);
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
- void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override;
- void itemDestroyed(QQuickItem *item) override;
-
- virtual qreal getContentWidth() const;
- virtual qreal getContentHeight() const;
-
- void updateImplicitContentWidth();
- void updateImplicitContentHeight();
- void updateImplicitContentSize();
-
- QPalette defaultPalette() const override;
-
- struct ExtraData {
- bool hasTopPadding = false;
- bool hasLeftPadding = false;
- bool hasRightPadding = false;
- bool hasBottomPadding = false;
- bool hasBaselineOffset = false;
- bool hasTopInset = false;
- bool hasLeftInset = false;
- bool hasRightInset = false;
- bool hasBottomInset = false;
- bool hasBackgroundWidth = false;
- bool hasBackgroundHeight = false;
- qreal topPadding = 0;
- qreal leftPadding = 0;
- qreal rightPadding = 0;
- qreal bottomPadding = 0;
- qreal topInset = 0;
- qreal leftInset = 0;
- qreal rightInset = 0;
- qreal bottomInset = 0;
- QFont requestedFont;
- };
- QLazilyAllocated<ExtraData> extra;
-
- bool hasHorizontalPadding = false;
- bool hasVerticalPadding = false;
- bool hasLocale = false;
- bool wheelEnabled = false;
-#if QT_CONFIG(quicktemplates2_hover)
- bool hovered = false;
- bool explicitHoverEnabled = false;
-#endif
- bool resizingBackground = false;
- bool pressWasTouch = false;
- int touchId = -1;
- QPointF previousPressPos;
- qreal padding = 0;
- qreal horizontalPadding = 0;
- qreal verticalPadding = 0;
- qreal implicitContentWidth = 0;
- qreal implicitContentHeight = 0;
- qreal spacing = 0;
- QLocale locale;
- QFont resolvedFont;
- Qt::FocusPolicy focusPolicy = Qt::NoFocus;
- Qt::FocusReason focusReason = Qt::OtherFocusReason;
- QQuickDeferredPointer<QQuickItem> background;
- QQuickDeferredPointer<QQuickItem> contentItem;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKCONTROL_P_P_H
diff --git a/src/quicktemplates2/qquickdeferredexecute.cpp b/src/quicktemplates2/qquickdeferredexecute.cpp
deleted file mode 100644
index 817415c4..00000000
--- a/src/quicktemplates2/qquickdeferredexecute.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtCore/qhash.h>
-#include <QtQml/qqmlengine.h>
-#include <QtQml/private/qqmldata_p.h>
-#include <QtQml/private/qqmlcomponent_p.h>
-#include <QtQml/private/qqmlobjectcreator_p.h>
-
-#include <deque>
-
-QT_BEGIN_NAMESPACE
-
-namespace QtQuickPrivate {
-
-typedef QHash<size_t, QQmlComponentPrivate::DeferredState *> DeferredStates;
-
-static inline size_t qHash(QObject *object, const QString &propertyName)
-{
- return ::qHash(object) + ::qHash(propertyName);
-}
-
-Q_GLOBAL_STATIC(DeferredStates, deferredStates)
-
-static void cancelDeferred(QQmlData *ddata, int propertyIndex)
-{
- auto dit = ddata->deferredData.rbegin();
- while (dit != ddata->deferredData.rend()) {
- (*dit)->bindings.remove(propertyIndex);
- ++dit;
- }
-}
-
-static bool beginDeferred(QQmlEnginePrivate *enginePriv, const QQmlProperty &property, QQmlComponentPrivate::DeferredState *deferredState)
-{
- QObject *object = property.object();
- QQmlData *ddata = QQmlData::get(object);
- Q_ASSERT(!ddata->deferredData.isEmpty());
-
- int propertyIndex = property.index();
- int wasInProgress = enginePriv->inProgressCreations;
-
- for (auto dit = ddata->deferredData.rbegin(); dit != ddata->deferredData.rend(); ++dit) {
- QQmlData::DeferredData *deferData = *dit;
-
- auto bindings = deferData->bindings;
- auto range = bindings.equal_range(propertyIndex);
- if (range.first == bindings.end())
- continue;
-
- QQmlComponentPrivate::ConstructionState *state = new QQmlComponentPrivate::ConstructionState;
- state->completePending = true;
-
- QQmlContextData *creationContext = nullptr;
- state->creator.reset(new QQmlObjectCreator(deferData->context->parent(), deferData->compilationUnit, creationContext));
-
- enginePriv->inProgressCreations++;
-
- std::deque<const QV4::CompiledData::Binding *> reversedBindings;
- std::copy(range.first, range.second, std::front_inserter(reversedBindings));
- state->creator->beginPopulateDeferred(deferData->context);
- for (const QV4::CompiledData::Binding *binding : reversedBindings)
- state->creator->populateDeferredBinding(property, deferData->deferredIdx, binding);
- state->creator->finalizePopulateDeferred();
- state->errors << state->creator->errors;
-
- deferredState->constructionStates += state;
-
- // Cleanup any remaining deferred bindings for this property, also in inner contexts,
- // to avoid executing them later and overriding the property that was just populated.
- cancelDeferred(ddata, propertyIndex);
- break;
- }
-
- return enginePriv->inProgressCreations > wasInProgress;
-}
-
-void beginDeferred(QObject *object, const QString &property)
-{
- QQmlData *data = QQmlData::get(object);
- if (data && !data->deferredData.isEmpty() && !data->wasDeleted(object) && data->context) {
- QQmlEnginePrivate *ep = QQmlEnginePrivate::get(data->context->engine());
-
- QQmlComponentPrivate::DeferredState *state = new QQmlComponentPrivate::DeferredState;
- if (beginDeferred(ep, QQmlProperty(object, property), state))
- deferredStates()->insert(qHash(object, property), state);
- else
- delete state;
-
- // Release deferred data for those compilation units that no longer have deferred bindings
- data->releaseDeferredData();
- }
-}
-
-void cancelDeferred(QObject *object, const QString &property)
-{
- QQmlData *data = QQmlData::get(object);
- if (data)
- cancelDeferred(data, QQmlProperty(object, property).index());
-}
-
-void completeDeferred(QObject *object, const QString &property)
-{
- QQmlData *data = QQmlData::get(object);
- QQmlComponentPrivate::DeferredState *state = deferredStates()->take(qHash(object, property));
- if (data && state && !data->wasDeleted(object)) {
- QQmlEnginePrivate *ep = QQmlEnginePrivate::get(data->context->engine());
- QQmlComponentPrivate::completeDeferred(ep, state);
- }
- delete state;
-}
-
-} // QtQuickPrivate
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickdeferredexecute_p_p.h b/src/quicktemplates2/qquickdeferredexecute_p_p.h
deleted file mode 100644
index 55750a6a..00000000
--- a/src/quicktemplates2/qquickdeferredexecute_p_p.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDEFERREDEXECUTE_P_P_H
-#define QQUICKDEFERREDEXECUTE_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-#include <QtQuickTemplates2/private/qquickdeferredpointer_p_p.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-
-#include <QtQml/private/qqmlvme_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QString;
-class QObject;
-
-namespace QtQuickPrivate {
- Q_QUICKTEMPLATES2_PRIVATE_EXPORT void beginDeferred(QObject *object, const QString &property);
- Q_QUICKTEMPLATES2_PRIVATE_EXPORT void cancelDeferred(QObject *object, const QString &property);
- Q_QUICKTEMPLATES2_PRIVATE_EXPORT void completeDeferred(QObject *object, const QString &property);
-}
-
-template<typename T>
-void quickBeginDeferred(QObject *object, const QString &property, QQuickDeferredPointer<T> &delegate)
-{
- if (!QQmlVME::componentCompleteEnabled())
- return;
-
- delegate.setExecuting(true);
- QtQuickPrivate::beginDeferred(object, property);
- delegate.setExecuting(false);
-}
-
-inline void quickCancelDeferred(QObject *object, const QString &property)
-{
- QtQuickPrivate::cancelDeferred(object, property);
-}
-
-template<typename T>
-void quickCompleteDeferred(QObject *object, const QString &property, QQuickDeferredPointer<T> &delegate)
-{
- Q_ASSERT(!delegate.wasExecuted());
- QtQuickPrivate::completeDeferred(object, property);
- delegate.setExecuted();
-}
-
-QT_END_NAMESPACE
-
-#endif // QQUICKDEFERREDEXECUTE_P_P_H
diff --git a/src/quicktemplates2/qquickdeferredpointer_p_p.h b/src/quicktemplates2/qquickdeferredpointer_p_p.h
deleted file mode 100644
index f70b5dc6..00000000
--- a/src/quicktemplates2/qquickdeferredpointer_p_p.h
+++ /dev/null
@@ -1,188 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDEFERREDPOINTER_P_P_H
-#define QQUICKDEFERREDPOINTER_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-template<typename T>
-class QQuickDeferredPointer
-{
-public:
- inline QQuickDeferredPointer();
- inline QQuickDeferredPointer(T *);
- inline QQuickDeferredPointer(const QQuickDeferredPointer<T> &o);
-
- inline bool isNull() const;
-
- inline bool wasExecuted() const;
- inline void setExecuted();
-
- inline bool isExecuting() const;
- inline void setExecuting(bool);
-
- inline operator T*() const;
- inline operator bool() const;
-
- inline T *data() const;
- inline T *operator*() const;
- inline T *operator->() const;
-
- inline QQuickDeferredPointer<T> &operator=(T *);
- inline QQuickDeferredPointer<T> &operator=(const QQuickDeferredPointer &o);
-
-private:
- quintptr ptr_value = 0;
-
- static const quintptr WasExecutedBit = 0x1;
- static const quintptr IsExecutingBit = 0x2;
- static const quintptr FlagsMask = WasExecutedBit | IsExecutingBit;
-};
-
-template<typename T>
-QQuickDeferredPointer<T>::QQuickDeferredPointer()
-{
-}
-
-template<typename T>
-QQuickDeferredPointer<T>::QQuickDeferredPointer(T *v)
-: ptr_value(quintptr(v))
-{
- Q_ASSERT((ptr_value & FlagsMask) == 0);
-}
-
-template<typename T>
-QQuickDeferredPointer<T>::QQuickDeferredPointer(const QQuickDeferredPointer<T> &o)
-: ptr_value(o.ptr_value)
-{
-}
-
-template<typename T>
-bool QQuickDeferredPointer<T>::isNull() const
-{
- return 0 == (ptr_value & (~FlagsMask));
-}
-
-template<typename T>
-bool QQuickDeferredPointer<T>::wasExecuted() const
-{
- return ptr_value & WasExecutedBit;
-}
-
-template<typename T>
-void QQuickDeferredPointer<T>::setExecuted()
-{
- ptr_value |= WasExecutedBit;
-}
-
-template<typename T>
-bool QQuickDeferredPointer<T>::isExecuting() const
-{
- return ptr_value & IsExecutingBit;
-}
-
-template<typename T>
-void QQuickDeferredPointer<T>::setExecuting(bool b)
-{
- if (b)
- ptr_value |= IsExecutingBit;
- else
- ptr_value &= ~IsExecutingBit;
-}
-
-template<typename T>
-QQuickDeferredPointer<T>::operator T*() const
-{
- return data();
-}
-
-template<typename T>
-QQuickDeferredPointer<T>::operator bool() const
-{
- return !isNull();
-}
-
-template<typename T>
-T *QQuickDeferredPointer<T>::data() const
-{
- return (T *)(ptr_value & ~FlagsMask);
-}
-
-template<typename T>
-T *QQuickDeferredPointer<T>::operator*() const
-{
- return (T *)(ptr_value & ~FlagsMask);
-}
-
-template<typename T>
-T *QQuickDeferredPointer<T>::operator->() const
-{
- return (T *)(ptr_value & ~FlagsMask);
-}
-
-template<typename T>
-QQuickDeferredPointer<T> &QQuickDeferredPointer<T>::operator=(T *o)
-{
- Q_ASSERT((quintptr(o) & FlagsMask) == 0);
-
- ptr_value = quintptr(o) | (ptr_value & FlagsMask);
- return *this;
-}
-
-template<typename T>
-QQuickDeferredPointer<T> &QQuickDeferredPointer<T>::operator=(const QQuickDeferredPointer &o)
-{
- ptr_value = o.ptr_value;
- return *this;
-}
-
-QT_END_NAMESPACE
-
-#endif // QQUICKDEFERREDPOINTER_P_P_H
diff --git a/src/quicktemplates2/qquickdelaybutton.cpp b/src/quicktemplates2/qquickdelaybutton.cpp
deleted file mode 100644
index 25e12263..00000000
--- a/src/quicktemplates2/qquickdelaybutton.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickdelaybutton_p.h"
-#include "qquickabstractbutton_p_p.h"
-
-#include <QtQuick/private/qquickanimation_p.h>
-#include <QtQuick/private/qquicktransition_p.h>
-#include <QtQuick/private/qquicktransitionmanager_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype DelayButton
- \inherits AbstractButton
-//! \instantiates QQuickDelayButton
- \inqmlmodule QtQuick.Controls
- \since 5.9
- \ingroup qtquickcontrols2-buttons
- \brief Check button that triggers when held down long enough.
-
- \image qtquickcontrols2-delaybutton.gif
-
- DelayButton is a checkable button that incorporates a delay before the
- button becomes \l {AbstractButton::}{checked} and the \l activated()
- signal is emitted. This delay prevents accidental presses.
-
- The current progress is expressed as a decimal value between \c 0.0
- and \c 1.0. The time it takes for \l activated() to be emitted is
- measured in milliseconds, and can be set with the \l delay property.
-
- The progress is indicated by a progress indicator on the button.
-
- \sa {Customizing DelayButton}, {Button Controls}
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::DelayButton::activated()
-
- This signal is emitted when \l progress reaches \c 1.0.
-*/
-
-class QQuickDelayTransitionManager;
-
-class QQuickDelayButtonPrivate : public QQuickAbstractButtonPrivate
-{
- Q_DECLARE_PUBLIC(QQuickDelayButton)
-
-public:
- void beginTransition(qreal to);
- void finishTransition();
- void cancelTransition();
-
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::Button); }
-
- int delay = 300;
- qreal progress = 0.0;
- QQuickTransition *transition = nullptr;
- QScopedPointer<QQuickDelayTransitionManager> transitionManager;
-};
-
-class QQuickDelayTransitionManager : public QQuickTransitionManager
-{
-public:
- QQuickDelayTransitionManager(QQuickDelayButton *button) : m_button(button) { }
-
- void transition(QQuickTransition *transition, qreal progress);
-
-protected:
- void finished() override;
-
-private:
- QQuickDelayButton *m_button = nullptr;
-};
-
-void QQuickDelayTransitionManager::transition(QQuickTransition *transition, qreal progress)
-{
- qmlExecuteDeferred(transition);
-
- QQmlProperty defaultTarget(m_button, QLatin1String("progress"));
- QQmlListProperty<QQuickAbstractAnimation> animations = transition->animations();
- const int count = animations.count(&animations);
- for (int i = 0; i < count; ++i) {
- QQuickAbstractAnimation *anim = animations.at(&animations, i);
- anim->setDefaultTarget(defaultTarget);
- }
-
- QList<QQuickStateAction> actions;
- actions << QQuickStateAction(m_button, QLatin1String("progress"), progress);
- QQuickTransitionManager::transition(actions, transition, m_button);
-}
-
-void QQuickDelayTransitionManager::finished()
-{
- if (qFuzzyCompare(m_button->progress(), qreal(1.0)))
- emit m_button->activated();
-}
-
-void QQuickDelayButtonPrivate::beginTransition(qreal to)
-{
- Q_Q(QQuickDelayButton);
- if (!transition) {
- q->setProgress(to);
- finishTransition();
- return;
- }
-
- if (!transitionManager)
- transitionManager.reset(new QQuickDelayTransitionManager(q));
-
- transitionManager->transition(transition, to);
-}
-
-void QQuickDelayButtonPrivate::finishTransition()
-{
- Q_Q(QQuickDelayButton);
- if (qFuzzyCompare(progress, qreal(1.0)))
- emit q->activated();
-}
-
-void QQuickDelayButtonPrivate::cancelTransition()
-{
- if (transitionManager)
- transitionManager->cancel();
-}
-
-QQuickDelayButton::QQuickDelayButton(QQuickItem *parent)
- : QQuickAbstractButton(*(new QQuickDelayButtonPrivate), parent)
-{
- setCheckable(true);
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::DelayButton::delay
-
- This property holds the time it takes (in milliseconds) for \l progress
- to reach \c 1.0 and emit \l activated().
-
- The default value is \c 3000 ms.
-*/
-int QQuickDelayButton::delay() const
-{
- Q_D(const QQuickDelayButton);
- return d->delay;
-}
-
-void QQuickDelayButton::setDelay(int delay)
-{
- Q_D(QQuickDelayButton);
- if (d->delay == delay)
- return;
-
- d->delay = delay;
- emit delayChanged();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::DelayButton::progress
- \readonly
-
- This property holds the current progress as displayed by the progress
- indicator, in the range \c 0.0 - \c 1.0.
-*/
-qreal QQuickDelayButton::progress() const
-{
- Q_D(const QQuickDelayButton);
- return d->progress;
-}
-
-void QQuickDelayButton::setProgress(qreal progress)
-{
- Q_D(QQuickDelayButton);
- if (qFuzzyCompare(d->progress, progress))
- return;
-
- d->progress = progress;
- emit progressChanged();
-}
-
-/*!
- \qmlproperty Transition QtQuick.Controls::DelayButton::transition
-
- This property holds the transition that is applied on the \l progress
- property when the button is pressed or released.
-*/
-QQuickTransition *QQuickDelayButton::transition() const
-{
- Q_D(const QQuickDelayButton);
- return d->transition;
-}
-
-void QQuickDelayButton::setTransition(QQuickTransition *transition)
-{
- Q_D(QQuickDelayButton);
- if (d->transition == transition)
- return;
-
- d->transition = transition;
- emit transitionChanged();
-}
-
-void QQuickDelayButton::buttonChange(ButtonChange change)
-{
- Q_D(QQuickDelayButton);
- switch (change) {
- case ButtonCheckedChange:
- d->cancelTransition();
- setProgress(d->checked ? 1.0 : 0.0);
- break;
- case ButtonPressedChanged:
- if (!d->checked)
- d->beginTransition(d->pressed ? 1.0 : 0.0);
- break;
- default:
- QQuickAbstractButton::buttonChange(change);
- break;
- }
-}
-
-void QQuickDelayButton::nextCheckState()
-{
- Q_D(QQuickDelayButton);
- setChecked(!d->checked && qFuzzyCompare(d->progress, qreal(1.0)));
-}
-
-QFont QQuickDelayButton::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::Button);
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickdelaybutton_p.cpp"
diff --git a/src/quicktemplates2/qquickdelaybutton_p.h b/src/quicktemplates2/qquickdelaybutton_p.h
deleted file mode 100644
index a697bca8..00000000
--- a/src/quicktemplates2/qquickdelaybutton_p.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDELAYBUTTON_P_H
-#define QQUICKDELAYBUTTON_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTransition;
-class QQuickDelayButtonPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickDelayButton : public QQuickAbstractButton
-{
- Q_OBJECT
- Q_PROPERTY(int delay READ delay WRITE setDelay NOTIFY delayChanged FINAL)
- Q_PROPERTY(qreal progress READ progress WRITE setProgress NOTIFY progressChanged FINAL)
- Q_PROPERTY(QQuickTransition *transition READ transition WRITE setTransition NOTIFY transitionChanged FINAL)
- QML_NAMED_ELEMENT(DelayButton)
- QML_ADDED_IN_VERSION(2, 2)
-
-public:
- explicit QQuickDelayButton(QQuickItem *parent = nullptr);
-
- int delay() const;
- void setDelay(int delay);
-
- qreal progress() const;
- void setProgress(qreal progress);
-
- QQuickTransition *transition() const;
- void setTransition(QQuickTransition *transition);
-
-Q_SIGNALS:
- void activated();
- void delayChanged();
- void progressChanged();
- void transitionChanged();
-
-protected:
- void buttonChange(ButtonChange change) override;
- void nextCheckState() override;
-
- QFont defaultFont() const override;
-
-private:
- Q_DISABLE_COPY(QQuickDelayButton)
- Q_DECLARE_PRIVATE(QQuickDelayButton)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickDelayButton)
-
-#endif // QQUICKDELAYBUTTON_P_H
diff --git a/src/quicktemplates2/qquickdial.cpp b/src/quicktemplates2/qquickdial.cpp
deleted file mode 100644
index 24783c9a..00000000
--- a/src/quicktemplates2/qquickdial.cpp
+++ /dev/null
@@ -1,859 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickdial_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtCore/qmath.h>
-#include <QtQuick/private/qquickflickable_p.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
-
-#include <cmath>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Dial
- \inherits Control
-//! \instantiates QQuickDial
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-input
- \brief Circular dial that is rotated to set a value.
-
- The Dial is similar to a traditional dial knob that is found on devices
- such as stereos or industrial equipment. It allows the user to specify a
- value within a range.
-
- \image qtquickcontrols2-dial-no-wrap.gif
-
- The value of the dial is set with the \l value property. The range is
- set with the \l from and \l to properties. To enable or disable wrapping,
- use the \l wrap property.
-
- The dial can be manipulated with a keyboard. It supports the following
- actions:
-
- \table
- \header \li \b {Action} \li \b {Key}
- \row \li Decrease \l value by \l stepSize \li \c Qt.Key_Left
- \row \li Decrease \l value by \l stepSize \li \c Qt.Key_Down
- \row \li Set \l value to \l from \li \c Qt.Key_Home
- \row \li Increase \l value by \l stepSize \li \c Qt.Key_Right
- \row \li Increase \l value by \l stepSize \li \c Qt.Key_Up
- \row \li Set \l value to \l to \li \c Qt.Key_End
- \endtable
-
- \include qquickdial.qdocinc inputMode
-
- \sa {Customizing Dial}, {Input Controls}
-*/
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlsignal QtQuick.Controls::Dial::moved()
-
- This signal is emitted when the dial has been interactively moved
- by the user by either touch, mouse, or keys.
-*/
-
-static const qreal startAngleRadians = (M_PI * 2.0) * (4.0 / 6.0);
-static const qreal startAngle = -140;
-static const qreal endAngleRadians = (M_PI * 2.0) * (5.0 / 6.0);
-static const qreal endAngle = 140;
-
-class QQuickDialPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickDial)
-
-public:
- qreal valueAt(qreal position) const;
- qreal snapPosition(qreal position) const;
- qreal positionAt(const QPointF &point) const;
- qreal circularPositionAt(const QPointF &point) const;
- qreal linearPositionAt(const QPointF &point) const;
- void setPosition(qreal position);
- void updatePosition();
- bool isLargeChange(const QPointF &eventPos, qreal proposedPosition) const;
- bool isHorizontalOrVertical() const;
-
- void handlePress(const QPointF &point, ulong timestamp) override;
- void handleMove(const QPointF &point, ulong timestamp) override;
- void handleRelease(const QPointF &point, ulong timestamp) override;
- void handleUngrab() override;
-
- void cancelHandle();
- void executeHandle(bool complete = false);
-
- void updateAllValuesAreInteger();
-
- qreal from = 0;
- qreal to = 1;
- qreal value = 0;
- qreal position = 0;
- qreal angle = startAngle;
- qreal stepSize = 0;
- QPointF pressPoint;
- qreal positionBeforePress = 0;
- QQuickDial::SnapMode snapMode = QQuickDial::NoSnap;
- QQuickDial::InputMode inputMode = QQuickDial::Circular;
- QQuickDeferredPointer<QQuickItem> handle;
- bool wrap = false;
- bool live = true;
- bool pressed = false;
- bool allValuesAreInteger = false;
-};
-
-qreal QQuickDialPrivate::valueAt(qreal position) const
-{
- qreal value = from + (to - from) * position;
-
- /* play nice with users expecting that integer from, to and stepSize leads to
- integer values - given that we are using floating point internally (and in
- the API of value), this does not hold, but it is easy enough to handle
- */
- if (allValuesAreInteger)
- value = qRound(value);
-
- return value;
-}
-
-qreal QQuickDialPrivate::snapPosition(qreal position) const
-{
- const qreal range = to - from;
- if (qFuzzyIsNull(range))
- return position;
-
- const qreal effectiveStep = stepSize / range;
- if (qFuzzyIsNull(effectiveStep))
- return position;
-
- return qRound(position / effectiveStep) * effectiveStep;
-}
-
-qreal QQuickDialPrivate::positionAt(const QPointF &point) const
-{
- return inputMode == QQuickDial::Circular ? circularPositionAt(point) : linearPositionAt(point);
-}
-
-qreal QQuickDialPrivate::circularPositionAt(const QPointF &point) const
-{
- qreal yy = height / 2.0 - point.y();
- qreal xx = point.x() - width / 2.0;
- qreal angle = (xx || yy) ? std::atan2(yy, xx) : 0;
-
- if (angle < M_PI / -2)
- angle = angle + M_PI * 2;
-
- qreal normalizedAngle = (startAngleRadians - angle) / endAngleRadians;
- return normalizedAngle;
-}
-
-qreal QQuickDialPrivate::linearPositionAt(const QPointF &point) const
-{
- // This value determines the range (either horizontal or vertical)
- // within which the dial can be dragged.
- // The larger this value is, the further the drag distance
- // must be to go from a position of e.g. 0.0 to 1.0.
- qreal dragArea = 0;
-
- // The linear input mode uses a "relative" input system,
- // where the distance from the press point is used to calculate
- // the change in position. Moving the mouse above the press
- // point increases the position (when inputMode is Vertical),
- // and vice versa. This prevents the dial from jumping when clicked.
- qreal dragDistance = 0;
-
- if (inputMode == QQuickDial::Horizontal) {
- dragArea = width * 2;
- dragDistance = pressPoint.x() - point.x();
- } else {
- dragArea = height * 2;
- dragDistance = point.y() - pressPoint.y();
- }
- const qreal normalisedDifference = dragDistance / dragArea;
- return qBound(qreal(0), positionBeforePress - normalisedDifference, qreal(1));
-}
-
-void QQuickDialPrivate::setPosition(qreal pos)
-{
- Q_Q(QQuickDial);
- pos = qBound<qreal>(qreal(0), pos, qreal(1));
- if (qFuzzyCompare(position, pos))
- return;
-
- position = pos;
-
- angle = startAngle + position * qAbs(endAngle - startAngle);
-
- emit q->positionChanged();
- emit q->angleChanged();
-}
-
-void QQuickDialPrivate::updatePosition()
-{
- qreal pos = 0;
- if (!qFuzzyCompare(from, to))
- pos = (value - from) / (to - from);
- setPosition(pos);
-}
-
-bool QQuickDialPrivate::isLargeChange(const QPointF &eventPos, qreal proposedPosition) const
-{
- return qAbs(proposedPosition - position) >= qreal(0.5) && eventPos.y() >= height / 2;
-}
-
-bool QQuickDialPrivate::isHorizontalOrVertical() const
-{
- return inputMode == QQuickDial::Horizontal || inputMode == QQuickDial::Vertical;
-}
-
-void QQuickDialPrivate::handlePress(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickDial);
- QQuickControlPrivate::handlePress(point, timestamp);
- pressPoint = point;
- positionBeforePress = position;
- q->setPressed(true);
-}
-
-void QQuickDialPrivate::handleMove(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickDial);
- QQuickControlPrivate::handleMove(point, timestamp);
- const qreal oldPos = position;
- qreal pos = positionAt(point);
- if (snapMode == QQuickDial::SnapAlways)
- pos = snapPosition(pos);
-
- if (wrap || (!wrap && (isHorizontalOrVertical() || !isLargeChange(point, pos)))) {
- if (live)
- q->setValue(valueAt(pos));
- else
- setPosition(pos);
- if (!qFuzzyCompare(pos, oldPos))
- emit q->moved();
- }
-}
-
-void QQuickDialPrivate::handleRelease(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickDial);
- QQuickControlPrivate::handleRelease(point, timestamp);
- if (q->keepMouseGrab() || q->keepTouchGrab()) {
- const qreal oldPos = position;
- qreal pos = positionAt(point);
- if (snapMode != QQuickDial::NoSnap)
- pos = snapPosition(pos);
-
- if (wrap || (!wrap && (isHorizontalOrVertical() || !isLargeChange(point, pos))))
- q->setValue(valueAt(pos));
- if (!qFuzzyCompare(pos, oldPos))
- emit q->moved();
-
- q->setKeepMouseGrab(false);
- q->setKeepTouchGrab(false);
- }
-
- q->setPressed(false);
- pressPoint = QPointF();
- positionBeforePress = 0;
-}
-
-void QQuickDialPrivate::handleUngrab()
-{
- Q_Q(QQuickDial);
- QQuickControlPrivate::handleUngrab();
- pressPoint = QPointF();
- positionBeforePress = 0;
- q->setPressed(false);
-}
-
-static inline QString handleName() { return QStringLiteral("handle"); }
-
-void QQuickDialPrivate::cancelHandle()
-{
- Q_Q(QQuickDial);
- quickCancelDeferred(q, handleName());
-}
-
-void QQuickDialPrivate::executeHandle(bool complete)
-{
- Q_Q(QQuickDial);
- if (handle.wasExecuted())
- return;
-
- if (!handle || complete)
- quickBeginDeferred(q, handleName(), handle);
- if (complete)
- quickCompleteDeferred(q, handleName(), handle);
-}
-
-template<typename ...Real>
-static bool areRepresentableAsInteger(Real... numbers) {
- auto check = [](qreal number) -> bool { return std::nearbyint(number) == number; };
- return (... && check(numbers));
-}
-
-void QQuickDialPrivate::updateAllValuesAreInteger()
-{
- allValuesAreInteger = areRepresentableAsInteger(to, from, stepSize) && stepSize != 0.0;
-}
-
-QQuickDial::QQuickDial(QQuickItem *parent)
- : QQuickControl(*(new QQuickDialPrivate), parent)
-{
- setActiveFocusOnTab(true);
- setAcceptedMouseButtons(Qt::LeftButton);
-#if QT_CONFIG(quicktemplates2_multitouch)
- setAcceptTouchEvents(true);
-#endif
-#if QT_CONFIG(cursor)
- setCursor(Qt::ArrowCursor);
-#endif
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Dial::from
-
- This property holds the starting value for the range. The default value is \c 0.0.
-
- \sa to, value
-*/
-qreal QQuickDial::from() const
-{
- Q_D(const QQuickDial);
- return d->from;
-}
-
-void QQuickDial::setFrom(qreal from)
-{
- Q_D(QQuickDial);
- if (qFuzzyCompare(d->from, from))
- return;
-
- d->from = from;
- emit fromChanged();
- d->updateAllValuesAreInteger();
- if (isComponentComplete()) {
- setValue(d->value);
- d->updatePosition();
- }
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Dial::to
-
- This property holds the end value for the range. The default value is
- \c 1.0.
-
- \sa from, value
-*/
-qreal QQuickDial::to() const
-{
- Q_D(const QQuickDial);
- return d->to;
-}
-
-void QQuickDial::setTo(qreal to)
-{
- Q_D(QQuickDial);
- if (qFuzzyCompare(d->to, to))
- return;
-
- d->to = to;
- d->updateAllValuesAreInteger();
- emit toChanged();
- if (isComponentComplete()) {
- setValue(d->value);
- d->updatePosition();
- }
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Dial::value
-
- This property holds the value in the range \c from - \c to. The default
- value is \c 0.0.
-
- \sa position, live
-*/
-qreal QQuickDial::value() const
-{
- Q_D(const QQuickDial);
- return d->value;
-}
-
-void QQuickDial::setValue(qreal value)
-{
- Q_D(QQuickDial);
- if (isComponentComplete())
- value = d->from > d->to ? qBound(d->to, value, d->from) : qBound(d->from, value, d->to);
-
- if (qFuzzyCompare(d->value, value))
- return;
-
- d->value = value;
- d->updatePosition();
- emit valueChanged();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Dial::position
- \readonly
-
- This property holds the logical position of the handle.
-
- The position is expressed as a fraction of the control's angle range (the
- range within which the handle can be moved) in the range \c {0.0 - 1.0}.
-
- \sa value, angle
-*/
-qreal QQuickDial::position() const
-{
- Q_D(const QQuickDial);
- return d->position;
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Dial::angle
- \readonly
-
- This property holds the angle of the handle.
-
- The range is from \c -140 degrees to \c 140 degrees.
-
- \sa position
-*/
-qreal QQuickDial::angle() const
-{
- Q_D(const QQuickDial);
- return d->angle;
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Dial::stepSize
-
- This property holds the step size.
-
- The step size determines the amount by which the dial's value
- is increased and decreased when interacted with via the keyboard.
- For example, a step size of \c 0.2, will result in the dial's
- value increasing and decreasing in increments of \c 0.2.
-
- The step size is only respected for touch and mouse interaction
- when \l snapMode is set to a value other than \c Dial.NoSnap.
-
- The default value is \c 0.0, which results in an effective step
- size of \c 0.1 for keyboard interaction.
-
- \sa snapMode, increase(), decrease()
-*/
-qreal QQuickDial::stepSize() const
-{
- Q_D(const QQuickDial);
- return d->stepSize;
-}
-
-void QQuickDial::setStepSize(qreal step)
-{
- Q_D(QQuickDial);
- if (qFuzzyCompare(d->stepSize, step))
- return;
-
- d->stepSize = step;
- d->updateAllValuesAreInteger();
- emit stepSizeChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::Dial::snapMode
-
- This property holds the snap mode.
-
- The snap mode works with the \l stepSize to allow the handle to snap to
- certain points along the dial.
-
- Possible values:
- \value Dial.NoSnap The dial does not snap (default).
- \value Dial.SnapAlways The dial snaps while the handle is dragged.
- \value Dial.SnapOnRelease The dial does not snap while being dragged, but only after the handle is released.
-
- \sa stepSize
-*/
-QQuickDial::SnapMode QQuickDial::snapMode() const
-{
- Q_D(const QQuickDial);
- return d->snapMode;
-}
-
-void QQuickDial::setSnapMode(SnapMode mode)
-{
- Q_D(QQuickDial);
- if (d->snapMode == mode)
- return;
-
- d->snapMode = mode;
- emit snapModeChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty enumeration QtQuick.Controls::Dial::inputMode
-
- This property holds the input mode.
-
- \include qquickdial.qdocinc inputMode
-
- The default value is \c Dial.Circular.
-*/
-QQuickDial::InputMode QQuickDial::inputMode() const
-{
- Q_D(const QQuickDial);
- return d->inputMode;
-}
-
-void QQuickDial::setInputMode(QQuickDial::InputMode mode)
-{
- Q_D(QQuickDial);
- if (d->inputMode == mode)
- return;
-
- d->inputMode = mode;
- emit inputModeChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Dial::wrap
-
- This property holds whether the dial wraps when dragged.
-
- For example, when this property is set to \c true, dragging the dial past
- the \l to position will result in the handle being positioned at the
- \l from position, and vice versa:
-
- \image qtquickcontrols2-dial-wrap.gif
-
- When this property is \c false, it's not possible to drag the dial across
- the from and to values.
-
- \image qtquickcontrols2-dial-no-wrap.gif
-
- The default value is \c false.
-*/
-bool QQuickDial::wrap() const
-{
- Q_D(const QQuickDial);
- return d->wrap;
-}
-
-void QQuickDial::setWrap(bool wrap)
-{
- Q_D(QQuickDial);
- if (d->wrap == wrap)
- return;
-
- d->wrap = wrap;
- emit wrapChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Dial::pressed
-
- This property holds whether the dial is pressed.
-
- The dial will be pressed when either the mouse is pressed over it, or a key
- such as \c Qt.Key_Left is held down. If you'd prefer not to have the dial
- be pressed upon key presses (due to styling reasons, for example), you can
- use the \l {Keys}{Keys attached property}:
-
- \code
- Dial {
- Keys.onLeftPressed: {}
- }
- \endcode
-
- This will result in pressed only being \c true upon mouse presses.
-*/
-bool QQuickDial::isPressed() const
-{
- Q_D(const QQuickDial);
- return d->pressed;
-}
-
-void QQuickDial::setPressed(bool pressed)
-{
- Q_D(QQuickDial);
- if (d->pressed == pressed)
- return;
-
- d->pressed = pressed;
- setAccessibleProperty("pressed", pressed);
- emit pressedChanged();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Dial::handle
-
- This property holds the handle of the dial.
-
- The handle acts as a visual indicator of the position of the dial.
-
- \sa {Customizing Dial}
-*/
-QQuickItem *QQuickDial::handle() const
-{
- QQuickDialPrivate *d = const_cast<QQuickDialPrivate *>(d_func());
- if (!d->handle)
- d->executeHandle();
- return d->handle;
-}
-
-void QQuickDial::setHandle(QQuickItem *handle)
-{
- Q_D(QQuickDial);
- if (handle == d->handle)
- return;
-
- if (!d->handle.isExecuting())
- d->cancelHandle();
-
- QQuickControlPrivate::hideOldItem(d->handle);
- d->handle = handle;
- if (d->handle && !d->handle->parentItem())
- d->handle->setParentItem(this);
- if (!d->handle.isExecuting())
- emit handleChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty bool QtQuick.Controls::Dial::live
-
- This property holds whether the dial provides live updates for the \l value
- property while the handle is dragged.
-
- The default value is \c true.
-
- \sa value
-*/
-bool QQuickDial::live() const
-{
- Q_D(const QQuickDial);
- return d->live;
-}
-
-void QQuickDial::setLive(bool live)
-{
- Q_D(QQuickDial);
- if (d->live == live)
- return;
-
- d->live = live;
- emit liveChanged();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Dial::increase()
-
- Increases the value by \l stepSize, or \c 0.1 if stepSize is not defined.
-
- \sa stepSize
-*/
-void QQuickDial::increase()
-{
- Q_D(QQuickDial);
- qreal step = qFuzzyIsNull(d->stepSize) ? 0.1 : d->stepSize;
- setValue(d->value + step);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Dial::decrease()
-
- Decreases the value by \l stepSize, or \c 0.1 if stepSize is not defined.
-
- \sa stepSize
-*/
-void QQuickDial::decrease()
-{
- Q_D(QQuickDial);
- qreal step = qFuzzyIsNull(d->stepSize) ? 0.1 : d->stepSize;
- setValue(d->value - step);
-}
-
-void QQuickDial::keyPressEvent(QKeyEvent *event)
-{
- Q_D(QQuickDial);
- const qreal oldValue = d->value;
- switch (event->key()) {
- case Qt::Key_Left:
- case Qt::Key_Down:
- setPressed(true);
- if (isMirrored())
- increase();
- else
- decrease();
- break;
-
- case Qt::Key_Right:
- case Qt::Key_Up:
- setPressed(true);
- if (isMirrored())
- decrease();
- else
- increase();
- break;
-
- case Qt::Key_Home:
- setPressed(true);
- setValue(isMirrored() ? d->to : d->from);
- break;
-
- case Qt::Key_End:
- setPressed(true);
- setValue(isMirrored() ? d->from : d->to);
- break;
-
- default:
- event->ignore();
- QQuickControl::keyPressEvent(event);
- break;
- }
- if (!qFuzzyCompare(d->value, oldValue))
- emit moved();
-}
-
-void QQuickDial::keyReleaseEvent(QKeyEvent *event)
-{
- QQuickControl::keyReleaseEvent(event);
- setPressed(false);
-}
-
-void QQuickDial::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickDial);
- QQuickControl::mousePressEvent(event);
- d->handleMove(event->position(), event->timestamp());
- setKeepMouseGrab(true);
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickDial::touchEvent(QTouchEvent *event)
-{
- Q_D(QQuickDial);
- switch (event->type()) {
- case QEvent::TouchUpdate:
- for (const QTouchEvent::TouchPoint &point : event->points()) {
- if (!d->acceptTouch(point))
- continue;
-
- switch (point.state()) {
- case QEventPoint::Updated:
- if (!keepTouchGrab()) {
- bool overXDragThreshold = QQuickWindowPrivate::dragOverThreshold(point.position().x() - d->pressPoint.x(), Qt::XAxis, &point);
- setKeepTouchGrab(overXDragThreshold);
-
- if (!overXDragThreshold) {
- bool overYDragThreshold = QQuickWindowPrivate::dragOverThreshold(point.position().y() - d->pressPoint.y(), Qt::YAxis, &point);
- setKeepTouchGrab(overYDragThreshold);
- }
- }
- if (keepTouchGrab())
- d->handleMove(point.position(), event->timestamp());
- break;
-
- default:
- QQuickControl::touchEvent(event);
- break;
- }
- }
- break;
-
- default:
- QQuickControl::touchEvent(event);
- break;
- }
-}
-#endif
-
-#if QT_CONFIG(wheelevent)
-void QQuickDial::wheelEvent(QWheelEvent *event)
-{
- Q_D(QQuickDial);
- QQuickControl::wheelEvent(event);
- if (d->wheelEnabled) {
- const qreal oldValue = d->value;
- const QPointF angle = event->angleDelta();
- const qreal delta = (qFuzzyIsNull(angle.y()) ? angle.x() : (event->inverted() ? -angle.y() : angle.y())) / QWheelEvent::DefaultDeltasPerStep;
- const qreal step = qFuzzyIsNull(d->stepSize) ? 0.1 : d->stepSize;
- setValue(oldValue + step * delta);
- event->setAccepted(!qFuzzyCompare(d->value, oldValue));
- }
-}
-#endif
-
-void QQuickDial::mirrorChange()
-{
- QQuickControl::mirrorChange();
- emit angleChanged();
-}
-
-void QQuickDial::componentComplete()
-{
- Q_D(QQuickDial);
- d->executeHandle(true);
- QQuickControl::componentComplete();
- setValue(d->value);
- d->updatePosition();
-}
-
-#if QT_CONFIG(accessibility)
-void QQuickDial::accessibilityActiveChanged(bool active)
-{
- QQuickControl::accessibilityActiveChanged(active);
-
- Q_D(QQuickDial);
- if (active)
- setAccessibleProperty("pressed", d->pressed);
-}
-
-QAccessible::Role QQuickDial::accessibleRole() const
-{
- return QAccessible::Dial;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickdial_p.h b/src/quicktemplates2/qquickdial_p.h
deleted file mode 100644
index 67bbc183..00000000
--- a/src/quicktemplates2/qquickdial_p.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDIAL_P_H
-#define QQUICKDIAL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qvariant.h>
-#include <QtQml/qqmlcomponent.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickDialAttached;
-class QQuickDialPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickDial : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged FINAL)
- Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged FINAL)
- Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY valueChanged FINAL)
- Q_PROPERTY(qreal position READ position NOTIFY positionChanged FINAL)
- Q_PROPERTY(qreal angle READ angle NOTIFY angleChanged FINAL)
- Q_PROPERTY(qreal stepSize READ stepSize WRITE setStepSize NOTIFY stepSizeChanged FINAL)
- Q_PROPERTY(SnapMode snapMode READ snapMode WRITE setSnapMode NOTIFY snapModeChanged FINAL)
- Q_PROPERTY(bool wrap READ wrap WRITE setWrap NOTIFY wrapChanged FINAL)
- Q_PROPERTY(bool pressed READ isPressed NOTIFY pressedChanged FINAL)
- Q_PROPERTY(QQuickItem *handle READ handle WRITE setHandle NOTIFY handleChanged FINAL)
- // 2.2 (Qt 5.9)
- Q_PROPERTY(bool live READ live WRITE setLive NOTIFY liveChanged FINAL REVISION(2, 2))
- // 2.5 (Qt 5.12)
- Q_PROPERTY(InputMode inputMode READ inputMode WRITE setInputMode NOTIFY inputModeChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "background,handle")
- QML_NAMED_ELEMENT(Dial)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickDial(QQuickItem *parent = nullptr);
-
- qreal from() const;
- void setFrom(qreal from);
-
- qreal to() const;
- void setTo(qreal to);
-
- qreal value() const;
- void setValue(qreal value);
-
- qreal position() const;
-
- qreal angle() const;
-
- qreal stepSize() const;
- void setStepSize(qreal step);
-
- enum SnapMode {
- NoSnap,
- SnapAlways,
- SnapOnRelease
- };
- Q_ENUM(SnapMode)
-
- SnapMode snapMode() const;
- void setSnapMode(SnapMode mode);
-
- enum InputMode {
- Circular,
- Horizontal,
- Vertical,
- };
- Q_ENUM(InputMode)
-
- bool wrap() const;
- void setWrap(bool wrap);
-
- bool isPressed() const;
- void setPressed(bool pressed);
-
- QQuickItem *handle() const;
- void setHandle(QQuickItem *handle);
-
- // 2.2 (Qt 5.9)
- bool live() const;
- void setLive(bool live);
-
- // 2.5 (Qt 5.12)
- InputMode inputMode() const;
- void setInputMode(InputMode mode);
-
-public Q_SLOTS:
- void increase();
- void decrease();
-
-Q_SIGNALS:
- void fromChanged();
- void toChanged();
- void valueChanged();
- void positionChanged();
- void angleChanged();
- void stepSizeChanged();
- void snapModeChanged();
- void wrapChanged();
- void pressedChanged();
- void handleChanged();
- // 2.2 (Qt 5.9)
- Q_REVISION(2, 2) void moved();
- Q_REVISION(2, 2) void liveChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void inputModeChanged();
-
-protected:
- void keyPressEvent(QKeyEvent *event) override;
- void keyReleaseEvent(QKeyEvent *event) override;
- void mousePressEvent(QMouseEvent *event) override;
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
-#endif
-#if QT_CONFIG(wheelevent)
- void wheelEvent(QWheelEvent *event) override;
-#endif
-
- void mirrorChange() override;
- void componentComplete() override;
-
-#if QT_CONFIG(accessibility)
- void accessibilityActiveChanged(bool active) override;
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickDial)
- Q_DECLARE_PRIVATE(QQuickDial)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickDial)
-
-#endif // QQUICKDIAL_P_H
diff --git a/src/quicktemplates2/qquickdialog.cpp b/src/quicktemplates2/qquickdialog.cpp
deleted file mode 100644
index a6cb0274..00000000
--- a/src/quicktemplates2/qquickdialog.cpp
+++ /dev/null
@@ -1,564 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickdialog_p.h"
-#include "qquickdialog_p_p.h"
-#include "qquickdialogbuttonbox_p.h"
-#include "qquickabstractbutton_p.h"
-#include "qquickpopupitem_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Dialog
- \inherits Popup
-//! \instantiates QQuickDialog
- \inqmlmodule QtQuick.Controls
- \ingroup qtquickcontrols2-dialogs
- \ingroup qtquickcontrols2-popups
- \brief Popup dialog with standard buttons and a title, used for short-term interaction with the user.
- \since 5.8
-
- A dialog is a popup mostly used for short-term tasks and brief communications
- with the user. Similarly to \l ApplicationWindow and \l Page, Dialog is organized
- into three sections: \l header, \l {Popup::}{contentItem}, and \l footer.
-
- \image qtquickcontrols2-page-wireframe.png
-
- \section1 Dialog Title and Buttons
-
- Dialog's \l title is displayed by a style-specific title bar that is assigned
- as a dialog \l header by default.
-
- Dialog's standard buttons are managed by a \l DialogButtonBox that is assigned
- as a dialog \l footer by default. The dialog's \l standardButtons property is
- forwarded to the respective property of the button box. Furthermore, the
- \l {DialogButtonBox::}{accepted()} and \l {DialogButtonBox::}{rejected()}
- signals of the button box are connected to the respective signals in Dialog.
-
- \snippet qtquickcontrols2-dialog.qml 1
-
- \section1 Modal Dialogs
-
- A \l {Popup::}{modal} dialog blocks input to other content beneath
- the dialog. When a modal dialog is opened, the user must finish
- interacting with the dialog and close it before they can access any
- other content in the same window.
-
- \snippet qtquickcontrols2-dialog-modal.qml 1
-
- \section1 Modeless Dialogs
-
- A modeless dialog is a dialog that operates independently of other
- content around the dialog. When a modeless dialog is opened, the user
- is allowed to interact with both the dialog and the other content in
- the same window.
-
- \snippet qtquickcontrols2-dialog-modeless.qml 1
-
- \sa DialogButtonBox, {Popup Controls}
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::Dialog::accepted()
-
- This signal is emitted when the dialog has been accepted either
- interactively or by calling \l accept().
-
- \note This signal is \e not emitted when closing the dialog with
- \l {Popup::}{close()} or setting \l {Popup::}{visible} to \c false.
-
- \sa rejected()
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::Dialog::rejected()
-
- This signal is emitted when the dialog has been rejected either
- interactively or by calling \l reject().
-
- \note This signal is \e not emitted when closing the dialog with
- \l {Popup::}{close()} or setting \l {Popup::}{visible} to \c false.
-
- \sa accepted()
-*/
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlsignal QtQuick.Controls::Dialog::applied()
-
- This signal is emitted when the \c Dialog.Apply standard button is clicked.
-
- \sa discarded(), reset()
-*/
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlsignal QtQuick.Controls::Dialog::reset()
-
- This signal is emitted when the \c Dialog.Reset standard button is clicked.
-
- \sa discarded(), applied()
-*/
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlsignal QtQuick.Controls::Dialog::discarded()
-
- This signal is emitted when the \c Dialog.Discard standard button is clicked.
-
- \sa reset(), applied()
-*/
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlsignal QtQuick.Controls::Dialog::helpRequested()
-
- This signal is emitted when the \c Dialog.Help standard button is clicked.
-
- \sa accepted(), rejected()
-*/
-
-QPlatformDialogHelper::ButtonRole QQuickDialogPrivate::buttonRole(QQuickAbstractButton *button)
-{
- const QQuickDialogButtonBoxAttached *attached = qobject_cast<QQuickDialogButtonBoxAttached *>(qmlAttachedPropertiesObject<QQuickDialogButtonBox>(button, false));
- return attached ? attached->buttonRole() : QPlatformDialogHelper::InvalidRole;
-}
-
-void QQuickDialogPrivate::handleAccept()
-{
- Q_Q(QQuickDialog);
- q->accept();
-}
-
-void QQuickDialogPrivate::handleReject()
-{
- Q_Q(QQuickDialog);
- q->reject();
-}
-
-void QQuickDialogPrivate::handleClick(QQuickAbstractButton *button)
-{
- Q_Q(QQuickDialog);
- switch (buttonRole(button)) {
- case QPlatformDialogHelper::ApplyRole:
- emit q->applied();
- break;
- case QPlatformDialogHelper::ResetRole:
- emit q->reset();
- break;
- case QPlatformDialogHelper::DestructiveRole:
- emit q->discarded();
- break;
- case QPlatformDialogHelper::HelpRole:
- emit q->helpRequested();
- break;
- default:
- break;
- }
-}
-
-QQuickDialog::QQuickDialog(QObject *parent)
- : QQuickDialog(*(new QQuickDialogPrivate), parent)
-{
-}
-
-QQuickDialog::QQuickDialog(QQuickDialogPrivate &dd, QObject *parent)
- : QQuickPopup(dd, parent)
-{
- Q_D(QQuickDialog);
- QObject::connect(d->popupItem, &QQuickPopupItem::titleChanged, this, &QQuickDialog::titleChanged);
- QObject::connect(d->popupItem, &QQuickPopupItem::headerChanged, this, &QQuickDialog::headerChanged);
- QObject::connect(d->popupItem, &QQuickPopupItem::footerChanged, this, &QQuickDialog::footerChanged);
- QObject::connect(d->popupItem, &QQuickPopupItem::implicitHeaderWidthChanged, this, &QQuickDialog::implicitHeaderWidthChanged);
- QObject::connect(d->popupItem, &QQuickPopupItem::implicitHeaderHeightChanged, this, &QQuickDialog::implicitHeaderHeightChanged);
- QObject::connect(d->popupItem, &QQuickPopupItem::implicitFooterWidthChanged, this, &QQuickDialog::implicitFooterWidthChanged);
- QObject::connect(d->popupItem, &QQuickPopupItem::implicitFooterHeightChanged, this, &QQuickDialog::implicitFooterHeightChanged);
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::Dialog::title
-
- This property holds the dialog title.
-
- The title is displayed in the dialog header.
-
- \code
- Dialog {
- title: qsTr("About")
-
- Label {
- text: "Lorem ipsum..."
- }
- }
- \endcode
-*/
-QString QQuickDialog::title() const
-{
- Q_D(const QQuickDialog);
- return d->popupItem->title();
-}
-
-void QQuickDialog::setTitle(const QString &title)
-{
- Q_D(QQuickDialog);
- d->popupItem->setTitle(title);
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Dialog::header
-
- This property holds the dialog header item. The header item is positioned to
- the top, and resized to the width of the dialog. The default value is \c null.
-
- \note Assigning a \l DialogButtonBox as a dialog header automatically connects
- its \l {DialogButtonBox::}{accepted()} and \l {DialogButtonBox::}{rejected()}
- signals to the respective signals in Dialog.
-
- \note Assigning a \l DialogButtonBox, \l ToolBar, or \l TabBar as a dialog
- header automatically sets the respective \l DialogButtonBox::position,
- \l ToolBar::position, or \l TabBar::position property to \c Header.
-
- \sa footer
-*/
-QQuickItem *QQuickDialog::header() const
-{
- Q_D(const QQuickDialog);
- return d->popupItem->header();
-}
-
-void QQuickDialog::setHeader(QQuickItem *header)
-{
- Q_D(QQuickDialog);
- QQuickItem *oldHeader = d->popupItem->header();
- if (oldHeader == header)
- return;
-
- if (QQuickDialogButtonBox *buttonBox = qobject_cast<QQuickDialogButtonBox *>(oldHeader)) {
- QObjectPrivate::disconnect(buttonBox, &QQuickDialogButtonBox::accepted, d, &QQuickDialogPrivate::handleAccept);
- QObjectPrivate::disconnect(buttonBox, &QQuickDialogButtonBox::rejected, d, &QQuickDialogPrivate::handleReject);
- QObjectPrivate::disconnect(buttonBox, &QQuickDialogButtonBox::clicked, d, &QQuickDialogPrivate::handleClick);
- if (d->buttonBox == buttonBox)
- d->buttonBox = nullptr;
- }
-
- if (QQuickDialogButtonBox *buttonBox = qobject_cast<QQuickDialogButtonBox *>(header)) {
- QObjectPrivate::connect(buttonBox, &QQuickDialogButtonBox::accepted, d, &QQuickDialogPrivate::handleAccept);
- QObjectPrivate::connect(buttonBox, &QQuickDialogButtonBox::rejected, d, &QQuickDialogPrivate::handleReject);
- QObjectPrivate::connect(buttonBox, &QQuickDialogButtonBox::clicked, d, &QQuickDialogPrivate::handleClick);
- d->buttonBox = buttonBox;
- buttonBox->setStandardButtons(d->standardButtons);
- }
-
- d->popupItem->setHeader(header);
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Dialog::footer
-
- This property holds the dialog footer item. The footer item is positioned to
- the bottom, and resized to the width of the dialog. The default value is \c null.
-
- \note Assigning a \l DialogButtonBox as a dialog footer automatically connects
- its \l {DialogButtonBox::}{accepted()} and \l {DialogButtonBox::}{rejected()}
- signals to the respective signals in Dialog.
-
- \note Assigning a \l DialogButtonBox, \l ToolBar, or \l TabBar as a dialog
- footer automatically sets the respective \l DialogButtonBox::position,
- \l ToolBar::position, or \l TabBar::position property to \c Footer.
-
- \sa header
-*/
-QQuickItem *QQuickDialog::footer() const
-{
- Q_D(const QQuickDialog);
- return d->popupItem->footer();
-}
-
-void QQuickDialog::setFooter(QQuickItem *footer)
-{
- Q_D(QQuickDialog);
- QQuickItem *oldFooter = d->popupItem->footer();
- if (oldFooter == footer)
- return;
-
- if (QQuickDialogButtonBox *buttonBox = qobject_cast<QQuickDialogButtonBox *>(oldFooter)) {
- QObjectPrivate::disconnect(buttonBox, &QQuickDialogButtonBox::accepted, d, &QQuickDialogPrivate::handleAccept);
- QObjectPrivate::disconnect(buttonBox, &QQuickDialogButtonBox::rejected, d, &QQuickDialogPrivate::handleReject);
- QObjectPrivate::disconnect(buttonBox, &QQuickDialogButtonBox::clicked, d, &QQuickDialogPrivate::handleClick);
- if (d->buttonBox == buttonBox)
- d->buttonBox = nullptr;
- }
- if (QQuickDialogButtonBox *buttonBox = qobject_cast<QQuickDialogButtonBox *>(footer)) {
- QObjectPrivate::connect(buttonBox, &QQuickDialogButtonBox::accepted, d, &QQuickDialogPrivate::handleAccept);
- QObjectPrivate::connect(buttonBox, &QQuickDialogButtonBox::rejected, d, &QQuickDialogPrivate::handleReject);
- QObjectPrivate::connect(buttonBox, &QQuickDialogButtonBox::clicked, d, &QQuickDialogPrivate::handleClick);
- d->buttonBox = buttonBox;
- buttonBox->setStandardButtons(d->standardButtons);
- }
-
- d->popupItem->setFooter(footer);
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::Dialog::standardButtons
-
- This property holds a combination of standard buttons that are used by the dialog.
-
- \snippet qtquickcontrols2-dialog.qml 1
-
- The buttons will be positioned in the appropriate order for the user's platform.
-
- Possible flags:
- \value Dialog.Ok An "OK" button defined with the \c AcceptRole.
- \value Dialog.Open An "Open" button defined with the \c AcceptRole.
- \value Dialog.Save A "Save" button defined with the \c AcceptRole.
- \value Dialog.Cancel A "Cancel" button defined with the \c RejectRole.
- \value Dialog.Close A "Close" button defined with the \c RejectRole.
- \value Dialog.Discard A "Discard" or "Don't Save" button, depending on the platform, defined with the \c DestructiveRole.
- \value Dialog.Apply An "Apply" button defined with the \c ApplyRole.
- \value Dialog.Reset A "Reset" button defined with the \c ResetRole.
- \value Dialog.RestoreDefaults A "Restore Defaults" button defined with the \c ResetRole.
- \value Dialog.Help A "Help" button defined with the \c HelpRole.
- \value Dialog.SaveAll A "Save All" button defined with the \c AcceptRole.
- \value Dialog.Yes A "Yes" button defined with the \c YesRole.
- \value Dialog.YesToAll A "Yes to All" button defined with the \c YesRole.
- \value Dialog.No A "No" button defined with the \c NoRole.
- \value Dialog.NoToAll A "No to All" button defined with the \c NoRole.
- \value Dialog.Abort An "Abort" button defined with the \c RejectRole.
- \value Dialog.Retry A "Retry" button defined with the \c AcceptRole.
- \value Dialog.Ignore An "Ignore" button defined with the \c AcceptRole.
- \value Dialog.NoButton An invalid button.
-
- \sa DialogButtonBox
-*/
-QPlatformDialogHelper::StandardButtons QQuickDialog::standardButtons() const
-{
- Q_D(const QQuickDialog);
- return d->standardButtons;
-}
-
-void QQuickDialog::setStandardButtons(QPlatformDialogHelper::StandardButtons buttons)
-{
- Q_D(QQuickDialog);
- if (d->standardButtons == buttons)
- return;
-
- d->standardButtons = buttons;
- if (d->buttonBox)
- d->buttonBox->setStandardButtons(buttons);
- emit standardButtonsChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod AbstractButton QtQuick.Controls::Dialog::standardButton(StandardButton button)
-
- Returns the specified standard \a button, or \c null if it does not exist.
-
- \sa standardButtons
-*/
-QQuickAbstractButton *QQuickDialog::standardButton(QPlatformDialogHelper::StandardButton button) const
-{
- Q_D(const QQuickDialog);
- if (!d->buttonBox)
- return nullptr;
- return d->buttonBox->standardButton(button);
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty int QtQuick.Controls::Dialog::result
-
- This property holds the result code.
-
- Standard result codes:
- \value Dialog.Accepted The dialog was accepted.
- \value Dialog.Rejected The dialog was rejected.
-
- \sa accept(), reject(), done()
-*/
-int QQuickDialog::result() const
-{
- Q_D(const QQuickDialog);
- return d->result;
-}
-
-void QQuickDialog::setResult(int result)
-{
- Q_D(QQuickDialog);
- if (d->result == result)
- return;
-
- d->result = result;
- emit resultChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Dialog::implicitHeaderWidth
- \readonly
-
- This property holds the implicit header width.
-
- The value is equal to \c {header && header.visible ? header.implicitWidth : 0}.
-
- \sa implicitHeaderHeight, implicitFooterWidth
-*/
-qreal QQuickDialog::implicitHeaderWidth() const
-{
- Q_D(const QQuickDialog);
- return d->popupItem->implicitHeaderWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Dialog::implicitHeaderHeight
- \readonly
-
- This property holds the implicit header height.
-
- The value is equal to \c {header && header.visible ? header.implicitHeight : 0}.
-
- \sa implicitHeaderWidth, implicitFooterHeight
-*/
-qreal QQuickDialog::implicitHeaderHeight() const
-{
- Q_D(const QQuickDialog);
- return d->popupItem->implicitHeaderHeight();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Dialog::implicitFooterWidth
- \readonly
-
- This property holds the implicit footer width.
-
- The value is equal to \c {footer && footer.visible ? footer.implicitWidth : 0}.
-
- \sa implicitFooterHeight, implicitHeaderWidth
-*/
-qreal QQuickDialog::implicitFooterWidth() const
-{
- Q_D(const QQuickDialog);
- return d->popupItem->implicitFooterWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Dialog::implicitFooterHeight
- \readonly
-
- This property holds the implicit footer height.
-
- The value is equal to \c {footer && footer.visible ? footer.implicitHeight : 0}.
-
- \sa implicitFooterWidth, implicitHeaderHeight
-*/
-qreal QQuickDialog::implicitFooterHeight() const
-{
- Q_D(const QQuickDialog);
- return d->popupItem->implicitFooterHeight();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Dialog::accept()
-
- Emits the \l accepted() signal and closes the dialog.
-
- \sa reject(), done()
-*/
-void QQuickDialog::accept()
-{
- done(Accepted);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Dialog::reject()
-
- Emits the \l rejected() signal and closes the dialog.
-
- \sa accept(), done()
-*/
-void QQuickDialog::reject()
-{
- done(Rejected);
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Dialog::done(int result)
-
- \list 1
- \li Sets the \a result.
- \li Emits \l accepted() or \l rejected() depending on
- whether the result is \c Dialog.Accepted or \c Dialog.Rejected,
- respectively.
- \li Emits \l{Popup::}{closed()}.
- \endlist
-
- \sa accept(), reject(), result
-*/
-void QQuickDialog::done(int result)
-{
- setResult(result);
-
- if (result == Accepted)
- emit accepted();
- else if (result == Rejected)
- emit rejected();
-
- close();
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickDialog::accessibleRole() const
-{
- return QAccessible::Dialog;
-}
-
-void QQuickDialog::accessibilityActiveChanged(bool active)
-{
- Q_D(QQuickDialog);
- QQuickPopup::accessibilityActiveChanged(active);
-
- if (active)
- maybeSetAccessibleName(d->popupItem->title());
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickdialog_p.h b/src/quicktemplates2/qquickdialog_p.h
deleted file mode 100644
index b09375ce..00000000
--- a/src/quicktemplates2/qquickdialog_p.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDIALOG_P_H
-#define QQUICKDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p.h>
-#include <QtGui/qpa/qplatformdialoghelper.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickDialogPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickDialog : public QQuickPopup
-{
- Q_OBJECT
- Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged FINAL)
- Q_PROPERTY(QQuickItem *header READ header WRITE setHeader NOTIFY headerChanged FINAL)
- Q_PROPERTY(QQuickItem *footer READ footer WRITE setFooter NOTIFY footerChanged FINAL)
- Q_PROPERTY(QPlatformDialogHelper::StandardButtons standardButtons READ standardButtons WRITE setStandardButtons NOTIFY standardButtonsChanged FINAL)
- // 2.3 (Qt 5.10)
- Q_PROPERTY(int result READ result WRITE setResult NOTIFY resultChanged FINAL REVISION(2, 3))
- Q_FLAGS(QPlatformDialogHelper::StandardButtons)
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal implicitHeaderWidth READ implicitHeaderWidth NOTIFY implicitHeaderWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitHeaderHeight READ implicitHeaderHeight NOTIFY implicitHeaderHeightChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitFooterWidth READ implicitFooterWidth NOTIFY implicitFooterWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitFooterHeight READ implicitFooterHeight NOTIFY implicitFooterHeightChanged FINAL REVISION(2, 5))
- QML_NAMED_ELEMENT(Dialog)
- QML_ADDED_IN_VERSION(2, 1)
-
-public:
- explicit QQuickDialog(QObject *parent = nullptr);
-
- QString title() const;
- void setTitle(const QString &title);
-
- QQuickItem *header() const;
- void setHeader(QQuickItem *header);
-
- QQuickItem *footer() const;
- void setFooter(QQuickItem *footer);
-
- QPlatformDialogHelper::StandardButtons standardButtons() const;
- void setStandardButtons(QPlatformDialogHelper::StandardButtons buttons);
- Q_REVISION(2, 3) Q_INVOKABLE QQuickAbstractButton *standardButton(QPlatformDialogHelper::StandardButton button) const;
-
- // 2.3 (Qt 5.10)
- enum StandardCode { Rejected, Accepted };
- Q_ENUM(StandardCode)
-
- int result() const;
- void setResult(int result);
-
- // 2.5 (Qt 5.12)
- qreal implicitHeaderWidth() const;
- qreal implicitHeaderHeight() const;
-
- qreal implicitFooterWidth() const;
- qreal implicitFooterHeight() const;
-
-public Q_SLOTS:
- virtual void accept();
- virtual void reject();
- virtual void done(int result);
-
-Q_SIGNALS:
- void accepted();
- void rejected();
- void titleChanged();
- void headerChanged();
- void footerChanged();
- void standardButtonsChanged();
- // 2.3 (Qt 5.10)
- Q_REVISION(2, 3) void applied();
- Q_REVISION(2, 3) void reset();
- Q_REVISION(2, 3) void discarded();
- Q_REVISION(2, 3) void helpRequested();
- Q_REVISION(2, 3) void resultChanged();
- // 2.5 (Qt 5.12)
- void implicitHeaderWidthChanged();
- void implicitHeaderHeightChanged();
- void implicitFooterWidthChanged();
- void implicitFooterHeightChanged();
-
-protected:
- QQuickDialog(QQuickDialogPrivate &dd, QObject *parent);
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
- void accessibilityActiveChanged(bool active) override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickDialog)
- Q_DECLARE_PRIVATE(QQuickDialog)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickDialog)
-
-#endif // QQUICKDIALOG_P_H
diff --git a/src/quicktemplates2/qquickdialog_p_p.h b/src/quicktemplates2/qquickdialog_p_p.h
deleted file mode 100644
index eb40c918..00000000
--- a/src/quicktemplates2/qquickdialog_p_p.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDIALOG_P_P_H
-#define QQUICKDIALOG_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickdialog_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p_p.h>
-#include <QtGui/qpa/qplatformdialoghelper.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickAbstractButton;
-class QQuickDialogButtonBox;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickDialogPrivate : public QQuickPopupPrivate
-{
- Q_DECLARE_PUBLIC(QQuickDialog)
-
-public:
- static QQuickDialogPrivate *get(QQuickDialog *dialog)
- {
- return dialog->d_func();
- }
-
- static QPlatformDialogHelper::ButtonRole buttonRole(QQuickAbstractButton *button);
-
- virtual void handleAccept();
- virtual void handleReject();
- virtual void handleClick(QQuickAbstractButton *button);
-
- int result = 0;
- QString title;
- QQuickDialogButtonBox *buttonBox = nullptr;
- QPlatformDialogHelper::StandardButtons standardButtons = QPlatformDialogHelper::NoButton;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKDIALOG_P_P_H
diff --git a/src/quicktemplates2/qquickdialogbuttonbox.cpp b/src/quicktemplates2/qquickdialogbuttonbox.cpp
deleted file mode 100644
index a4b3313b..00000000
--- a/src/quicktemplates2/qquickdialogbuttonbox.cpp
+++ /dev/null
@@ -1,853 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickdialogbuttonbox_p.h"
-#include "qquickdialogbuttonbox_p_p.h"
-#include "qquickabstractbutton_p.h"
-#include "qquickbutton_p.h"
-#include "qquickdialog_p_p.h"
-
-#include <QtCore/qpointer.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtQml/qqmlengine.h>
-#include <QtQml/qqmlcontext.h>
-#include <QtQml/qqmlcomponent.h>
-
-#include <algorithm>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype DialogButtonBox
- \inherits Container
-//! \instantiates QQuickDialogButtonBox
- \inqmlmodule QtQuick.Controls
- \ingroup qtquickcontrols2-dialogs
- \brief A button box used in dialogs.
- \since 5.8
-
- Dialogs and message boxes typically present buttons in an order that
- conforms to the interface guidelines for that platform. Invariably,
- different platforms have their dialog buttons in different orders.
- DialogButtonBox allows a developer to add buttons to it and will
- automatically use the appropriate order for the user's platform.
-
- Most buttons for a dialog follow certain roles. Such roles include:
-
- \list
- \li Accepting or rejecting the dialog.
- \li Asking for help.
- \li Performing actions on the dialog itself (such as resetting fields or
- applying changes).
- \endlist
-
- There can also be alternate ways of dismissing the dialog which may cause
- destructive results.
-
- Most dialogs have buttons that can almost be considered standard (e.g.
- \uicontrol OK and \uicontrol Cancel buttons). It is sometimes convenient
- to create these buttons in a standard way.
-
- There are a couple ways of using DialogButtonBox. One way is to specify
- the standard buttons (e.g. \uicontrol OK, \uicontrol Cancel, \uicontrol Save)
- and let the button box setup the buttons.
-
- \image qtquickcontrols2-dialogbuttonbox.png
-
- \snippet qtquickcontrols2-dialogbuttonbox.qml 1
-
- Alternatively, buttons and their roles can be specified by hand:
-
- \snippet qtquickcontrols2-dialogbuttonbox-attached.qml 1
-
- You can also mix and match normal buttons and standard buttons.
-
- When a button is clicked in the button box, the \l clicked() signal is
- emitted for the actual button that is pressed. In addition, the
- following signals are automatically emitted when a button with the
- respective role(s) is pressed:
-
- \table
- \header
- \li Role
- \li Signal
- \row
- \li \c AcceptRole, \c YesRole
- \li \l accepted()
- \row
- \li \c ApplyRole
- \li \l applied()
- \row
- \li \c DiscardRole
- \li \l discarded()
- \row
- \li \c HelpRole
- \li \l helpRequested()
- \row
- \li \c RejectRole, \c NoRole
- \li \l rejected()
- \row
- \li \c ResetRole
- \li \l reset()
- \endtable
-
- \sa Dialog
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::DialogButtonBox::accepted()
-
- This signal is emitted when a button defined with the \c AcceptRole or
- \c YesRole is clicked.
-
- \sa rejected(), clicked(), helpRequested()
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::DialogButtonBox::rejected()
-
- This signal is emitted when a button defined with the \c RejectRole or
- \c NoRole is clicked.
-
- \sa accepted(), helpRequested(), clicked()
-*/
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlsignal QtQuick.Controls::DialogButtonBox::applied()
-
- This signal is emitted when a button defined with the \c ApplyRole is
- clicked.
-
- \sa discarded(), reset()
-*/
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlsignal QtQuick.Controls::DialogButtonBox::reset()
-
- This signal is emitted when a button defined with the \c ResetRole is
- clicked.
-
- \sa discarded(), applied()
-*/
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlsignal QtQuick.Controls::DialogButtonBox::discarded()
-
- This signal is emitted when a button defined with the \c DiscardRole is
- clicked.
-
- \sa reset(), applied()
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::DialogButtonBox::helpRequested()
-
- This signal is emitted when a button defined with the \c HelpRole is clicked.
-
- \sa accepted(), rejected(), clicked()
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::DialogButtonBox::clicked(AbstractButton button)
-
- This signal is emitted when a \a button inside the button box is clicked.
-
- \sa accepted(), rejected(), helpRequested()
-*/
-
-static QPlatformDialogHelper::ButtonLayout platformButtonLayout()
-{
- return QGuiApplicationPrivate::platformTheme()->themeHint(QPlatformTheme::DialogButtonBoxLayout).value<QPlatformDialogHelper::ButtonLayout>();
-}
-
-void QQuickDialogButtonBoxPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- QQuickContainerPrivate::itemImplicitWidthChanged(item);
- if (item == contentItem)
- resizeContent();
- else
- updateImplicitContentWidth();
-}
-
-void QQuickDialogButtonBoxPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- QQuickContainerPrivate::itemImplicitHeightChanged(item);
- if (item == contentItem)
- resizeContent();
- else
- updateImplicitContentHeight();
-}
-
-// adapted from QStyle::alignedRect()
-static QRectF alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSizeF &size, const QRectF &rectangle)
-{
- alignment = QGuiApplicationPrivate::visualAlignment(direction, alignment);
- qreal x = rectangle.x();
- qreal y = rectangle.y();
- qreal w = size.width();
- qreal h = size.height();
- if ((alignment & Qt::AlignVCenter) == Qt::AlignVCenter || (alignment & Qt::AlignVertical_Mask) == 0)
- y += (rectangle.size().height() - h) / 2;
- else if ((alignment & Qt::AlignBottom) == Qt::AlignBottom)
- y += rectangle.size().height() - h;
- if ((alignment & Qt::AlignRight) == Qt::AlignRight)
- x += rectangle.size().width() - w;
- else if ((alignment & Qt::AlignHCenter) == Qt::AlignHCenter)
- x += (rectangle.size().width() - w) / 2;
- return QRectF(x, y, w, h);
-}
-
-void QQuickDialogButtonBoxPrivate::resizeContent()
-{
- Q_Q(QQuickDialogButtonBox);
- if (!contentItem)
- return;
-
- QRectF geometry = q->boundingRect().adjusted(q->leftPadding(), q->topPadding(), -q->rightPadding(), -q->bottomPadding());
- if (alignment != 0)
- geometry = alignedRect(q->isMirrored() ? Qt::RightToLeft : Qt::LeftToRight, alignment, QSizeF(contentWidth, contentHeight), geometry);
-
- contentItem->setPosition(geometry.topLeft());
- contentItem->setSize(geometry.size());
-}
-
-void QQuickDialogButtonBoxPrivate::updateLayout()
-{
- Q_Q(QQuickDialogButtonBox);
- const int count = contentModel->count();
- if (count <= 0)
- return;
-
- const int halign = alignment & Qt::AlignHorizontal_Mask;
- const int valign = alignment & Qt::AlignVertical_Mask;
-
- QList<QQuickAbstractButton *> buttons;
- const qreal cw = (alignment & Qt::AlignHorizontal_Mask) == 0 ? q->availableWidth() : contentWidth;
- const qreal itemWidth = (cw - qMax(0, count - 1) * spacing) / count;
-
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = q->itemAt(i);
- if (item) {
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- if (!p->widthValid()) {
- if (!halign)
- item->setWidth(itemWidth);
- else
- item->resetWidth();
- if (!valign)
- item->setHeight(contentHeight);
- else
- item->resetHeight();
- p->widthValidFlag = false;
- }
- }
- buttons += static_cast<QQuickAbstractButton *>(item);
- }
-
- struct ButtonLayout {
- ButtonLayout(QPlatformDialogHelper::ButtonLayout layout)
- : m_layout(QPlatformDialogHelper::buttonLayout(Qt::Horizontal, layout))
- {
- }
-
- bool operator()(QQuickAbstractButton *first, QQuickAbstractButton *second)
- {
- const QPlatformDialogHelper::ButtonRole firstRole = QQuickDialogPrivate::buttonRole(first);
- const QPlatformDialogHelper::ButtonRole secondRole = QQuickDialogPrivate::buttonRole(second);
-
- if (firstRole != secondRole && firstRole != QPlatformDialogHelper::InvalidRole && secondRole != QPlatformDialogHelper::InvalidRole) {
- const int *l = m_layout;
- while (*l != QPlatformDialogHelper::EOL) {
- // Unset the Reverse flag.
- const int role = (*l & ~QPlatformDialogHelper::Reverse);
- if (role == firstRole)
- return true;
- if (role == secondRole)
- return false;
- ++l;
- }
- }
-
- if (firstRole == secondRole)
- return false;
-
- return firstRole != QPlatformDialogHelper::InvalidRole;
- }
- const int *m_layout;
- };
-
- std::stable_sort(buttons.begin(), buttons.end(), ButtonLayout(static_cast<QPlatformDialogHelper::ButtonLayout>(buttonLayout)));
-
- for (int i = 0; i < buttons.count() - 1; ++i)
- q->insertItem(i, buttons.at(i));
-}
-
-qreal QQuickDialogButtonBoxPrivate::getContentWidth() const
-{
- Q_Q(const QQuickDialogButtonBox);
- const int count = contentModel->count();
- const qreal totalSpacing = qMax(0, count - 1) * spacing;
- qreal totalWidth = totalSpacing;
- qreal maxWidth = 0;
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = q->itemAt(i);
- if (item) {
- totalWidth += item->implicitWidth();
- maxWidth = qMax(maxWidth, item->implicitWidth());
- }
- }
- if ((alignment & Qt::AlignHorizontal_Mask) == 0)
- totalWidth = qMax(totalWidth, count * maxWidth + totalSpacing);
- return totalWidth;
-}
-
-qreal QQuickDialogButtonBoxPrivate::getContentHeight() const
-{
- Q_Q(const QQuickDialogButtonBox);
- const int count = contentModel->count();
- qreal maxHeight = 0;
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = q->itemAt(i);
- if (item)
- maxHeight = qMax(maxHeight, item->implicitHeight());
- }
- return maxHeight;
-}
-
-void QQuickDialogButtonBoxPrivate::handleClick()
-{
- Q_Q(QQuickDialogButtonBox);
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(q->sender());
- if (!button)
- return;
-
- // Can't fetch this *after* emitting clicked, as clicked may destroy the button
- // or change its role. Now changing the role is not possible yet, but arguably
- // both clicked and accepted/rejected/etc. should be emitted "atomically"
- // depending on whatever role the button had at the time of the click.
- const QPlatformDialogHelper::ButtonRole role = QQuickDialogPrivate::buttonRole(button);
- QPointer<QQuickDialogButtonBox> guard(q);
-
- emit q->clicked(button);
-
- if (!guard)
- return;
-
- switch (role) {
- case QPlatformDialogHelper::AcceptRole:
- case QPlatformDialogHelper::YesRole:
- emit q->accepted();
- break;
- case QPlatformDialogHelper::RejectRole:
- case QPlatformDialogHelper::NoRole:
- emit q->rejected();
- break;
- case QPlatformDialogHelper::ApplyRole:
- emit q->applied();
- break;
- case QPlatformDialogHelper::ResetRole:
- emit q->reset();
- break;
- case QPlatformDialogHelper::DestructiveRole:
- emit q->discarded();
- break;
- case QPlatformDialogHelper::HelpRole:
- emit q->helpRequested();
- break;
- default:
- break;
- }
-}
-
-QString QQuickDialogButtonBoxPrivate::buttonText(QPlatformDialogHelper::StandardButton standardButton)
-{
- return QPlatformTheme::removeMnemonics(QGuiApplicationPrivate::platformTheme()->standardButtonText(standardButton));
-}
-
-QQuickAbstractButton *QQuickDialogButtonBoxPrivate::createStandardButton(QPlatformDialogHelper::StandardButton standardButton)
-{
- Q_Q(QQuickDialogButtonBox);
- if (!delegate)
- return nullptr;
-
- QQmlContext *creationContext = delegate->creationContext();
- if (!creationContext)
- creationContext = qmlContext(q);
- QQmlContext *context = new QQmlContext(creationContext, q);
- context->setContextObject(q);
-
- QObject *object = delegate->beginCreate(context);
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton*>(object);
- if (button) {
- QQuickDialogButtonBoxAttached *attached = qobject_cast<QQuickDialogButtonBoxAttached *>(qmlAttachedPropertiesObject<QQuickDialogButtonBox>(button, true));
- QQuickDialogButtonBoxAttachedPrivate::get(attached)->standardButton = standardButton;
- attached->setButtonRole(QPlatformDialogHelper::buttonRole(standardButton));
- button->setText(buttonText(standardButton));
- delegate->completeCreate();
- button->setParent(q);
- return button;
- }
-
- delete object;
- return nullptr;
-}
-
-void QQuickDialogButtonBoxPrivate::removeStandardButtons()
-{
- Q_Q(QQuickDialogButtonBox);
- int i = q->count() - 1;
- while (i >= 0) {
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(q->itemAt(i));
- if (button) {
- QQuickDialogButtonBoxAttached *attached = qobject_cast<QQuickDialogButtonBoxAttached *>(
- qmlAttachedPropertiesObject<QQuickDialogButtonBox>(button, false));
- if (attached) {
- QQuickDialogButtonBoxAttachedPrivate *p = QQuickDialogButtonBoxAttachedPrivate::get(attached);
- if (p->standardButton != QPlatformDialogHelper::NoButton) {
- q->removeItem(button);
- button->deleteLater();
- }
- }
- }
- --i;
- }
-}
-
-void QQuickDialogButtonBoxPrivate::updateLanguage()
-{
- Q_Q(QQuickDialogButtonBox);
- int i = q->count() - 1;
- while (i >= 0) {
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(itemAt(i));
- if (button) {
- QQuickDialogButtonBoxAttached *attached = qobject_cast<QQuickDialogButtonBoxAttached *>(
- qmlAttachedPropertiesObject<QQuickDialogButtonBox>(button, true));
- const auto boxAttachedPrivate = QQuickDialogButtonBoxAttachedPrivate::get(attached);
- const QPlatformDialogHelper::StandardButton standardButton = boxAttachedPrivate->standardButton;
- // The button might be a custom one with explicitly specified text, so we shouldn't change it in that case.
- if (standardButton != QPlatformDialogHelper::NoButton) {
- button->setText(buttonText(standardButton));
- }
- }
- --i;
- }
-}
-
-QQuickDialogButtonBox::QQuickDialogButtonBox(QQuickItem *parent)
- : QQuickContainer(*(new QQuickDialogButtonBoxPrivate), parent)
-{
- Q_D(QQuickDialogButtonBox);
- d->changeTypes |= QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight;
- d->buttonLayout = platformButtonLayout();
-}
-
-QQuickDialogButtonBox::~QQuickDialogButtonBox()
-{
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::DialogButtonBox::position
-
- This property holds the position of the button box.
-
- \note If the button box is assigned as a header or footer of ApplicationWindow
- or Page, the appropriate position is set automatically.
-
- Possible values:
- \value DialogButtonBox.Header The button box is at the top, as a window or page header.
- \value DialogButtonBox.Footer The button box is at the bottom, as a window or page header.
-
- The default value is \c Footer.
-
- \sa Dialog::header, Dialog::footer
-*/
-QQuickDialogButtonBox::Position QQuickDialogButtonBox::position() const
-{
- Q_D(const QQuickDialogButtonBox);
- return d->position;
-}
-
-void QQuickDialogButtonBox::setPosition(Position position)
-{
- Q_D(QQuickDialogButtonBox);
- if (d->position == position)
- return;
-
- d->position = position;
- emit positionChanged();
-}
-
-/*!
- \qmlproperty flags QtQuick.Controls::DialogButtonBox::alignment
-
- This property holds the alignment of the buttons.
-
- Possible values:
- \value undefined The buttons are resized to fill the available space.
- \value Qt.AlignLeft The buttons are aligned to the left.
- \value Qt.AlignHCenter The buttons are horizontally centered.
- \value Qt.AlignRight The buttons are aligned to the right.
- \value Qt.AlignTop The buttons are aligned to the top.
- \value Qt.AlignVCenter The buttons are vertically centered.
- \value Qt.AlignBottom The buttons are aligned to the bottom.
-*/
-Qt::Alignment QQuickDialogButtonBox::alignment() const
-{
- Q_D(const QQuickDialogButtonBox);
- return d->alignment;
-}
-
-void QQuickDialogButtonBox::setAlignment(Qt::Alignment alignment)
-{
- Q_D(QQuickDialogButtonBox);
- if (d->alignment == alignment)
- return;
-
- d->alignment = alignment;
- if (isComponentComplete()) {
- d->resizeContent();
- polish();
- }
- emit alignmentChanged();
-}
-
-void QQuickDialogButtonBox::resetAlignment()
-{
- setAlignment({});
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::DialogButtonBox::standardButtons
-
- This property holds a combination of standard buttons that are used by the button box.
-
- \snippet qtquickcontrols2-dialogbuttonbox.qml 1
-
- The buttons will be positioned in the appropriate order for the user's platform.
-
- Possible flags:
- \value DialogButtonBox.Ok An "OK" button defined with the \c AcceptRole.
- \value DialogButtonBox.Open An "Open" button defined with the \c AcceptRole.
- \value DialogButtonBox.Save A "Save" button defined with the \c AcceptRole.
- \value DialogButtonBox.Cancel A "Cancel" button defined with the \c RejectRole.
- \value DialogButtonBox.Close A "Close" button defined with the \c RejectRole.
- \value DialogButtonBox.Discard A "Discard" or "Don't Save" button, depending on the platform, defined with the \c DestructiveRole.
- \value DialogButtonBox.Apply An "Apply" button defined with the \c ApplyRole.
- \value DialogButtonBox.Reset A "Reset" button defined with the \c ResetRole.
- \value DialogButtonBox.RestoreDefaults A "Restore Defaults" button defined with the \c ResetRole.
- \value DialogButtonBox.Help A "Help" button defined with the \c HelpRole.
- \value DialogButtonBox.SaveAll A "Save All" button defined with the \c AcceptRole.
- \value DialogButtonBox.Yes A "Yes" button defined with the \c YesRole.
- \value DialogButtonBox.YesToAll A "Yes to All" button defined with the \c YesRole.
- \value DialogButtonBox.No A "No" button defined with the \c NoRole.
- \value DialogButtonBox.NoToAll A "No to All" button defined with the \c NoRole.
- \value DialogButtonBox.Abort An "Abort" button defined with the \c RejectRole.
- \value DialogButtonBox.Retry A "Retry" button defined with the \c AcceptRole.
- \value DialogButtonBox.Ignore An "Ignore" button defined with the \c AcceptRole.
- \value DialogButtonBox.NoButton An invalid button.
-
- \sa standardButton()
-*/
-QPlatformDialogHelper::StandardButtons QQuickDialogButtonBox::standardButtons() const
-{
- Q_D(const QQuickDialogButtonBox);
- return d->standardButtons;
-}
-
-void QQuickDialogButtonBox::setStandardButtons(QPlatformDialogHelper::StandardButtons buttons)
-{
- Q_D(QQuickDialogButtonBox);
- if (d->standardButtons == buttons)
- return;
-
- d->removeStandardButtons();
-
- for (int i = QPlatformDialogHelper::FirstButton; i <= QPlatformDialogHelper::LastButton; i<<=1) {
- QPlatformDialogHelper::StandardButton standardButton = static_cast<QPlatformDialogHelper::StandardButton>(i);
- if (standardButton & buttons) {
- QQuickAbstractButton *button = d->createStandardButton(standardButton);
- if (button)
- addItem(button);
- }
- }
-
- if (isComponentComplete())
- polish();
-
- d->standardButtons = buttons;
- emit standardButtonsChanged();
-}
-
-/*!
- \qmlmethod AbstractButton QtQuick.Controls::DialogButtonBox::standardButton(StandardButton button)
-
- Returns the specified standard \a button, or \c null if it does not exist.
-
- \sa standardButtons
-*/
-QQuickAbstractButton *QQuickDialogButtonBox::standardButton(QPlatformDialogHelper::StandardButton button) const
-{
- Q_D(const QQuickDialogButtonBox);
- if (Q_UNLIKELY(!(d->standardButtons & button)))
- return nullptr;
- for (int i = 0, n = count(); i < n; ++i) {
- QQuickAbstractButton *btn = qobject_cast<QQuickAbstractButton *>(d->itemAt(i));
- if (Q_LIKELY(btn)) {
- QQuickDialogButtonBoxAttached *attached = qobject_cast<QQuickDialogButtonBoxAttached *>(qmlAttachedPropertiesObject<QQuickDialogButtonBox>(btn, false));
- if (attached && QQuickDialogButtonBoxAttachedPrivate::get(attached)->standardButton == button)
- return btn;
- }
- }
- return nullptr;
-}
-
-/*!
- \qmlproperty Component QtQuick.Controls::DialogButtonBox::delegate
-
- This property holds a delegate for creating standard buttons.
-
- \sa standardButtons
-*/
-QQmlComponent *QQuickDialogButtonBox::delegate() const
-{
- Q_D(const QQuickDialogButtonBox);
- return d->delegate;
-}
-
-void QQuickDialogButtonBox::setDelegate(QQmlComponent* delegate)
-{
- Q_D(QQuickDialogButtonBox);
- if (d->delegate == delegate)
- return;
-
- delete d->delegate;
- d->delegate = delegate;
- emit delegateChanged();
-}
-
-QQuickDialogButtonBoxAttached *QQuickDialogButtonBox::qmlAttachedProperties(QObject *object)
-{
- return new QQuickDialogButtonBoxAttached(object);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty enumeration QtQuick.Controls::DialogButtonBox::buttonLayout
-
- This property holds the button layout policy to be used when arranging the buttons contained in the button box.
- The default value is platform-specific.
-
- Available values:
- \value DialogButtonBox.WinLayout Use a policy appropriate for applications on Windows.
- \value DialogButtonBox.MacLayout Use a policy appropriate for applications on macOS.
- \value DialogButtonBox.KdeLayout Use a policy appropriate for applications on KDE.
- \value DialogButtonBox.GnomeLayout Use a policy appropriate for applications on GNOME.
- \value DialogButtonBox.AndroidLayout Use a policy appropriate for applications on Android.
-*/
-QPlatformDialogHelper::ButtonLayout QQuickDialogButtonBox::buttonLayout() const
-{
- Q_D(const QQuickDialogButtonBox);
- return d->buttonLayout;
-}
-
-void QQuickDialogButtonBox::setButtonLayout(QPlatformDialogHelper::ButtonLayout layout)
-{
- Q_D(QQuickDialogButtonBox);
- if (d->buttonLayout == layout)
- return;
-
- d->buttonLayout = layout;
- if (isComponentComplete())
- d->updateLayout();
- emit buttonLayoutChanged();
-}
-
-void QQuickDialogButtonBox::resetButtonLayout()
-{
- setButtonLayout(platformButtonLayout());
-}
-
-void QQuickDialogButtonBox::updatePolish()
-{
- Q_D(QQuickDialogButtonBox);
- QQuickContainer::updatePolish();
- d->updateLayout();
-}
-
-bool QQuickDialogButtonBox::event(QEvent *e)
-{
- Q_D(QQuickDialogButtonBox);
- if (e->type() == QEvent::LanguageChange)
- d->updateLanguage();
- return QQuickContainer::event(e);
-}
-
-void QQuickDialogButtonBox::componentComplete()
-{
- Q_D(QQuickDialogButtonBox);
- QQuickContainer::componentComplete();
- d->updateLayout();
-}
-
-void QQuickDialogButtonBox::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickDialogButtonBox);
- QQuickContainer::geometryChange(newGeometry, oldGeometry);
- d->updateLayout();
-}
-
-void QQuickDialogButtonBox::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_D(QQuickDialogButtonBox);
- QQuickContainer::contentItemChange(newItem, oldItem);
- if (oldItem)
- QQuickItemPrivate::get(oldItem)->removeItemChangeListener(d, QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight);
- if (newItem)
- QQuickItemPrivate::get(newItem)->addItemChangeListener(d, QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight);
-}
-
-bool QQuickDialogButtonBox::isContent(QQuickItem *item) const
-{
- return qobject_cast<QQuickAbstractButton *>(item);
-}
-
-void QQuickDialogButtonBox::itemAdded(int index, QQuickItem *item)
-{
- Q_D(QQuickDialogButtonBox);
- Q_UNUSED(index);
- if (QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(item))
- QObjectPrivate::connect(button, &QQuickAbstractButton::clicked, d, &QQuickDialogButtonBoxPrivate::handleClick);
- if (QQuickDialogButtonBoxAttached *attached = qobject_cast<QQuickDialogButtonBoxAttached *>(qmlAttachedPropertiesObject<QQuickDialogButtonBox>(item, false)))
- QQuickDialogButtonBoxAttachedPrivate::get(attached)->setButtonBox(this);
- d->updateImplicitContentSize();
- if (isComponentComplete())
- polish();
-}
-
-void QQuickDialogButtonBox::itemRemoved(int index, QQuickItem *item)
-{
- Q_D(QQuickDialogButtonBox);
- Q_UNUSED(index);
- if (QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(item))
- QObjectPrivate::disconnect(button, &QQuickAbstractButton::clicked, d, &QQuickDialogButtonBoxPrivate::handleClick);
- if (QQuickDialogButtonBoxAttached *attached = qobject_cast<QQuickDialogButtonBoxAttached *>(qmlAttachedPropertiesObject<QQuickDialogButtonBox>(item, false)))
- QQuickDialogButtonBoxAttachedPrivate::get(attached)->setButtonBox(nullptr);
- d->updateImplicitContentSize();
- if (isComponentComplete())
- polish();
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickDialogButtonBox::accessibleRole() const
-{
- return QAccessible::PageTabList;
-}
-#endif
-
-void QQuickDialogButtonBoxAttachedPrivate::setButtonBox(QQuickDialogButtonBox *box)
-{
- Q_Q(QQuickDialogButtonBoxAttached);
- if (buttonBox == box)
- return;
-
- buttonBox = box;
- emit q->buttonBoxChanged();
-}
-
-QQuickDialogButtonBoxAttached::QQuickDialogButtonBoxAttached(QObject *parent)
- : QObject(*(new QQuickDialogButtonBoxAttachedPrivate), parent)
-{
- Q_D(QQuickDialogButtonBoxAttached);
- QQuickItem *parentItem = qobject_cast<QQuickItem *>(parent);
- while (parentItem && !d->buttonBox) {
- d->buttonBox = qobject_cast<QQuickDialogButtonBox *>(parentItem);
- parentItem = parentItem->parentItem();
- }
-}
-
-/*!
- \qmlattachedproperty DialogButtonBox QtQuick.Controls::DialogButtonBox::buttonBox
- \readonly
-
- This attached property holds the button box that manages this button, or
- \c null if the button is not in a button box.
-*/
-QQuickDialogButtonBox *QQuickDialogButtonBoxAttached::buttonBox() const
-{
- Q_D(const QQuickDialogButtonBoxAttached);
- return d->buttonBox;
-}
-
-/*!
- \qmlattachedproperty enumeration QtQuick.Controls::DialogButtonBox::buttonRole
-
- This attached property holds the role of each button in a button box.
-
- \snippet qtquickcontrols2-dialogbuttonbox-attached.qml 1
-
- Available values:
- \value DialogButtonBox.InvalidRole The button is invalid.
- \value DialogButtonBox.AcceptRole Clicking the button causes the dialog to be accepted (e.g. \uicontrol OK).
- \value DialogButtonBox.RejectRole Clicking the button causes the dialog to be rejected (e.g. \uicontrol Cancel).
- \value DialogButtonBox.DestructiveRole Clicking the button causes a destructive change (e.g. for discarding changes) and closes the dialog.
- \value DialogButtonBox.ActionRole Clicking the button causes changes to the elements within the dialog.
- \value DialogButtonBox.HelpRole The button can be clicked to request help.
- \value DialogButtonBox.YesRole The button is a "Yes"-like button.
- \value DialogButtonBox.NoRole The button is a "No"-like button.
- \value DialogButtonBox.ResetRole The button resets the dialog's fields to default values.
- \value DialogButtonBox.ApplyRole The button applies current changes.
-*/
-QPlatformDialogHelper::ButtonRole QQuickDialogButtonBoxAttached::buttonRole() const
-{
- Q_D(const QQuickDialogButtonBoxAttached);
- return d->buttonRole;
-}
-
-void QQuickDialogButtonBoxAttached::setButtonRole(QPlatformDialogHelper::ButtonRole role)
-{
- Q_D(QQuickDialogButtonBoxAttached);
- if (d->buttonRole == role)
- return;
-
- d->buttonRole = role;
- emit buttonRoleChanged();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickdialogbuttonbox_p.h b/src/quicktemplates2/qquickdialogbuttonbox_p.h
deleted file mode 100644
index 48e721e5..00000000
--- a/src/quicktemplates2/qquickdialogbuttonbox_p.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDIALOGBUTTONBOX_P_H
-#define QQUICKDIALOGBUTTONBOX_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-#include <QtQuickTemplates2/private/qquickcontainer_p.h>
-#include <QtGui/qpa/qplatformdialoghelper.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQmlComponent;
-class QQuickDialogButtonBoxPrivate;
-class QQuickDialogButtonBoxAttached;
-class QQuickDialogButtonBoxAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickDialogButtonBox : public QQuickContainer
-{
- Q_OBJECT
- Q_PROPERTY(Position position READ position WRITE setPosition NOTIFY positionChanged FINAL)
- Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment RESET resetAlignment NOTIFY alignmentChanged FINAL)
- Q_PROPERTY(QPlatformDialogHelper::StandardButtons standardButtons READ standardButtons WRITE setStandardButtons NOTIFY standardButtonsChanged FINAL)
- Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged FINAL)
- // 2.5 (Qt 5.12)
- Q_PROPERTY(QPlatformDialogHelper::ButtonLayout buttonLayout READ buttonLayout WRITE setButtonLayout RESET resetButtonLayout NOTIFY buttonLayoutChanged FINAL REVISION(2, 5))
- Q_FLAGS(QPlatformDialogHelper::StandardButtons)
- QML_NAMED_ELEMENT(DialogButtonBox)
- QML_ATTACHED(QQuickDialogButtonBoxAttached)
- QML_ADDED_IN_VERSION(2, 1)
-
-public:
- explicit QQuickDialogButtonBox(QQuickItem *parent = nullptr);
- ~QQuickDialogButtonBox();
-
- enum Position {
- Header,
- Footer
- };
- Q_ENUM(Position)
-
- Position position() const;
- void setPosition(Position position);
-
- Qt::Alignment alignment() const;
- void setAlignment(Qt::Alignment alignment);
- void resetAlignment();
-
- QPlatformDialogHelper::StandardButtons standardButtons() const;
- void setStandardButtons(QPlatformDialogHelper::StandardButtons buttons);
- Q_INVOKABLE QQuickAbstractButton *standardButton(QPlatformDialogHelper::StandardButton button) const;
-
- QQmlComponent *delegate() const;
- void setDelegate(QQmlComponent *delegate);
-
- static QQuickDialogButtonBoxAttached *qmlAttachedProperties(QObject *object);
-
- // 2.5 (Qt 5.12)
- Q_ENUMS(QPlatformDialogHelper::ButtonLayout)
-
- QPlatformDialogHelper::ButtonLayout buttonLayout() const;
- void setButtonLayout(QPlatformDialogHelper::ButtonLayout layout);
- void resetButtonLayout();
-
-Q_SIGNALS:
- void accepted();
- void rejected();
- void helpRequested();
- void clicked(QQuickAbstractButton *button);
- void positionChanged();
- void alignmentChanged();
- void standardButtonsChanged();
- void delegateChanged();
- // 2.3 (Qt 5.10)
- Q_REVISION(2, 3) void applied();
- Q_REVISION(2, 3) void reset();
- Q_REVISION(2, 3) void discarded();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void buttonLayoutChanged();
-
-protected:
- void updatePolish() override;
- void componentComplete() override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
- bool isContent(QQuickItem *item) const override;
- void itemAdded(int index, QQuickItem *item) override;
- void itemRemoved(int index, QQuickItem *item) override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
- bool event(QEvent *e) override;
-
-private:
- Q_DISABLE_COPY(QQuickDialogButtonBox)
- Q_DECLARE_PRIVATE(QQuickDialogButtonBox)
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickDialogButtonBoxAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickDialogButtonBox *buttonBox READ buttonBox NOTIFY buttonBoxChanged FINAL)
- Q_PROPERTY(QPlatformDialogHelper::ButtonRole buttonRole READ buttonRole WRITE setButtonRole NOTIFY buttonRoleChanged FINAL)
- Q_ENUMS(QPlatformDialogHelper::ButtonRole)
-
-public:
- explicit QQuickDialogButtonBoxAttached(QObject *parent = nullptr);
-
- QQuickDialogButtonBox *buttonBox() const;
-
- QPlatformDialogHelper::ButtonRole buttonRole() const;
- void setButtonRole(QPlatformDialogHelper::ButtonRole role);
-
-Q_SIGNALS:
- void buttonBoxChanged();
- void buttonRoleChanged();
-
-private:
- Q_DISABLE_COPY(QQuickDialogButtonBoxAttached)
- Q_DECLARE_PRIVATE(QQuickDialogButtonBoxAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickDialogButtonBox)
-QML_DECLARE_TYPEINFO(QQuickDialogButtonBox, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKDIALOGBUTTONBOX_P_H
diff --git a/src/quicktemplates2/qquickdialogbuttonbox_p_p.h b/src/quicktemplates2/qquickdialogbuttonbox_p_p.h
deleted file mode 100644
index 5e08b2ad..00000000
--- a/src/quicktemplates2/qquickdialogbuttonbox_p_p.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDIALOGBUTTONBOX_P_P_H
-#define QQUICKDIALOGBUTTONBOX_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontainer_p_p.h>
-#include <QtQuickTemplates2/private/qquickdialogbuttonbox_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickDialogButtonBoxPrivate : public QQuickContainerPrivate
-{
- Q_DECLARE_PUBLIC(QQuickDialogButtonBox)
-
-public:
- static QQuickDialogButtonBoxPrivate *get(QQuickDialogButtonBox *box)
- {
- return box->d_func();
- }
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- void resizeContent() override;
-
- void updateLayout();
-
- qreal getContentWidth() const override;
- qreal getContentHeight() const override;
-
- void handleClick();
-
- static QString buttonText(QPlatformDialogHelper::StandardButton standardButton);
-
- QQuickAbstractButton *createStandardButton(QPlatformDialogHelper::StandardButton button);
- void removeStandardButtons();
-
- void updateLanguage();
-
- Qt::Alignment alignment;
- QQuickDialogButtonBox::Position position = QQuickDialogButtonBox::Footer;
- QPlatformDialogHelper::StandardButtons standardButtons = QPlatformDialogHelper::NoButton;
- QPlatformDialogHelper::ButtonLayout buttonLayout = QPlatformDialogHelper::UnknownLayout;
- QQmlComponent *delegate = nullptr;
-};
-
-class QQuickDialogButtonBoxAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickDialogButtonBoxAttached)
-
-public:
- static QQuickDialogButtonBoxAttachedPrivate *get(QQuickDialogButtonBoxAttached *q)
- {
- return q->d_func();
- }
-
- void setButtonBox(QQuickDialogButtonBox *box);
-
- QQuickDialogButtonBox *buttonBox = nullptr;
- QPlatformDialogHelper::ButtonRole buttonRole = QPlatformDialogHelper::InvalidRole;
- QPlatformDialogHelper::StandardButton standardButton = QPlatformDialogHelper::NoButton;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKDIALOGBUTTONBOX_P_P_H
diff --git a/src/quicktemplates2/qquickdrawer.cpp b/src/quicktemplates2/qquickdrawer.cpp
deleted file mode 100644
index 7de548e6..00000000
--- a/src/quicktemplates2/qquickdrawer.cpp
+++ /dev/null
@@ -1,813 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickdrawer_p.h"
-#include "qquickdrawer_p_p.h"
-#include "qquickpopupitem_p_p.h"
-#include "qquickpopuppositioner_p_p.h"
-
-#include <QtGui/qstylehints.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtQml/qqmlinfo.h>
-#include <QtQuick/private/qquickwindow_p.h>
-#include <QtQuick/private/qquickanimation_p.h>
-#include <QtQuick/private/qquicktransition_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Drawer
- \inherits Popup
-//! \instantiates QQuickDrawer
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-navigation
- \ingroup qtquickcontrols2-popups
- \brief Side panel that can be opened and closed using a swipe gesture.
-
- Drawer provides a swipe-based side panel, similar to those often used in
- touch interfaces to provide a central location for navigation.
-
- \image qtquickcontrols2-drawer.gif
-
- Drawer can be positioned at any of the four edges of the content item.
- The drawer above is positioned against the left edge of the window. The
- drawer is then opened by \e "dragging" it out from the left edge of the
- window.
-
- \code
- import QtQuick
- import QtQuick.Controls
-
- ApplicationWindow {
- id: window
- visible: true
-
- Drawer {
- id: drawer
- width: 0.66 * window.width
- height: window.height
-
- Label {
- text: "Content goes here!"
- anchors.centerIn: parent
- }
- }
- }
- \endcode
-
- Drawer is a special type of popup that resides at one of the window \l {edge}{edges}.
- By default, Drawer re-parents itself to the window \c overlay, and therefore operates
- on window coordinates. It is also possible to manually set the \l{Popup::}{parent} to
- something else to make the drawer operate in a specific coordinate space.
-
- Drawer can be configured to cover only part of its window edge. The following example
- illustrates how Drawer can be positioned to appear below a window header:
-
- \code
- import QtQuick
- import QtQuick.Controls
-
- ApplicationWindow {
- id: window
- visible: true
-
- header: ToolBar { }
-
- Drawer {
- y: header.height
- width: window.width * 0.6
- height: window.height - header.height
- }
- }
- \endcode
-
- The \l position property determines how much of the drawer is visible, as
- a value between \c 0.0 and \c 1.0. It is not possible to set the x-coordinate
- (or horizontal margins) of a drawer at the left or right window edge, or the
- y-coordinate (or vertical margins) of a drawer at the top or bottom window edge.
-
- In the image above, the application's contents are \e "pushed" across the
- screen. This is achieved by applying a translation to the contents:
-
- \code
- import QtQuick
- import QtQuick.Controls
-
- ApplicationWindow {
- id: window
- width: 200
- height: 228
- visible: true
-
- Drawer {
- id: drawer
- width: 0.66 * window.width
- height: window.height
- }
-
- Label {
- id: content
-
- text: "Aa"
- font.pixelSize: 96
- anchors.fill: parent
- verticalAlignment: Label.AlignVCenter
- horizontalAlignment: Label.AlignHCenter
-
- transform: Translate {
- x: drawer.position * content.width * 0.33
- }
- }
- }
- \endcode
-
- If you would like the application's contents to stay where they are when
- the drawer is opened, don't apply a translation.
-
- Drawer can be configured as a non-closable persistent side panel by
- making the Drawer \l {Popup::modal}{non-modal} and \l {interactive}
- {non-interactive}. See the \l {Qt Quick Controls 2 - Side Panel}{Side Panel}
- example for more details.
-
- \note On some platforms, certain edges may be reserved for system
- gestures and therefore cannot be used with Drawer. For example, the
- top and bottom edges may be reserved for system notifications and
- control centers on Android and iOS.
-
- \sa SwipeView, {Customizing Drawer}, {Navigation Controls}, {Popup Controls}
-*/
-
-class QQuickDrawerPositioner : public QQuickPopupPositioner
-{
-public:
- QQuickDrawerPositioner(QQuickDrawer *drawer) : QQuickPopupPositioner(drawer) { }
-
- void reposition() override;
-};
-
-qreal QQuickDrawerPrivate::offsetAt(const QPointF &point) const
-{
- qreal offset = positionAt(point) - position;
-
- // don't jump when dragged open
- if (offset > 0 && position > 0 && !contains(point))
- offset = 0;
-
- return offset;
-}
-
-qreal QQuickDrawerPrivate::positionAt(const QPointF &point) const
-{
- Q_Q(const QQuickDrawer);
- QQuickWindow *window = q->window();
- if (!window)
- return 0;
-
- switch (edge) {
- case Qt::TopEdge:
- return point.y() / q->height();
- case Qt::LeftEdge:
- return point.x() / q->width();
- case Qt::RightEdge:
- return (window->width() - point.x()) / q->width();
- case Qt::BottomEdge:
- return (window->height() - point.y()) / q->height();
- default:
- return 0;
- }
-}
-
-QQuickPopupPositioner *QQuickDrawerPrivate::getPositioner()
-{
- Q_Q(QQuickDrawer);
- if (!positioner)
- positioner = new QQuickDrawerPositioner(q);
- return positioner;
-}
-
-void QQuickDrawerPositioner::reposition()
-{
- if (m_positioning)
- return;
-
- QQuickDrawer *drawer = static_cast<QQuickDrawer*>(popup());
- QQuickWindow *window = drawer->window();
- if (!window)
- return;
-
- const qreal position = drawer->position();
- QQuickItem *popupItem = drawer->popupItem();
- switch (drawer->edge()) {
- case Qt::LeftEdge:
- popupItem->setX((position - 1.0) * popupItem->width());
- break;
- case Qt::RightEdge:
- popupItem->setX(window->width() - position * popupItem->width());
- break;
- case Qt::TopEdge:
- popupItem->setY((position - 1.0) * popupItem->height());
- break;
- case Qt::BottomEdge:
- popupItem->setY(window->height() - position * popupItem->height());
- break;
- }
-
- QQuickPopupPositioner::reposition();
-}
-
-void QQuickDrawerPrivate::showOverlay()
-{
- // managed in setPosition()
-}
-
-void QQuickDrawerPrivate::hideOverlay()
-{
- // managed in setPosition()
-}
-
-void QQuickDrawerPrivate::resizeOverlay()
-{
- if (!dimmer || !window)
- return;
-
- QRectF geometry(0, 0, window->width(), window->height());
-
- if (edge == Qt::LeftEdge || edge == Qt::RightEdge) {
- geometry.setY(popupItem->y());
- geometry.setHeight(popupItem->height());
- } else {
- geometry.setX(popupItem->x());
- geometry.setWidth(popupItem->width());
- }
-
- dimmer->setPosition(geometry.topLeft());
- dimmer->setSize(geometry.size());
-}
-
-static bool isWithinDragMargin(const QQuickDrawer *drawer, const QPointF &pos)
-{
- switch (drawer->edge()) {
- case Qt::LeftEdge:
- return pos.x() <= drawer->dragMargin();
- case Qt::RightEdge:
- return pos.x() >= drawer->window()->width() - drawer->dragMargin();
- case Qt::TopEdge:
- return pos.y() <= drawer->dragMargin();
- case Qt::BottomEdge:
- return pos.y() >= drawer->window()->height() - drawer->dragMargin();
- default:
- Q_UNREACHABLE();
- break;
- }
- return false;
-}
-
-bool QQuickDrawerPrivate::startDrag(QEvent *event)
-{
- Q_Q(QQuickDrawer);
- if (!window || !interactive || dragMargin < 0.0 || qFuzzyIsNull(dragMargin))
- return false;
-
- switch (event->type()) {
- case QEvent::MouseButtonPress:
- if (isWithinDragMargin(q, static_cast<QMouseEvent *>(event)->scenePosition())) {
- prepareEnterTransition();
- reposition();
- return handleMouseEvent(window->contentItem(), static_cast<QMouseEvent *>(event));
- }
- break;
-
-#if QT_CONFIG(quicktemplates2_multitouch)
- case QEvent::TouchBegin:
- case QEvent::TouchUpdate:
- for (const QTouchEvent::TouchPoint &point : static_cast<QTouchEvent *>(event)->points()) {
- if (point.state() == QEventPoint::Pressed && isWithinDragMargin(q, point.scenePosition())) {
- prepareEnterTransition();
- reposition();
- return handleTouchEvent(window->contentItem(), static_cast<QTouchEvent *>(event));
- }
- }
- break;
-#endif
-
- default:
- break;
- }
-
- return false;
-}
-
-static inline bool keepGrab(QQuickItem *item)
-{
- return item->keepMouseGrab() || item->keepTouchGrab();
-}
-
-bool QQuickDrawerPrivate::grabMouse(QQuickItem *item, QMouseEvent *event)
-{
- Q_Q(QQuickDrawer);
- handleMouseEvent(item, event);
-
- if (!window || !interactive || keepGrab(popupItem) || keepGrab(item))
- return false;
-
- const QPointF movePoint = event->scenePosition();
-
- // Flickable uses a hard-coded threshold of 15 for flicking, and
- // QStyleHints::startDragDistance for dragging. Drawer uses a bit
- // larger threshold to avoid being too eager to steal touch (QTBUG-50045)
- const int threshold = qMax(20, QGuiApplication::styleHints()->startDragDistance() + 5);
- bool overThreshold = false;
- if (position > 0 || dragMargin > 0) {
- const bool xOverThreshold = QQuickWindowPrivate::dragOverThreshold(movePoint.x() - pressPoint.x(), Qt::XAxis, event, threshold);
- const bool yOverThreshold = QQuickWindowPrivate::dragOverThreshold(movePoint.y() - pressPoint.y(), Qt::YAxis, event, threshold);
- if (edge == Qt::LeftEdge || edge == Qt::RightEdge)
- overThreshold = xOverThreshold && !yOverThreshold;
- else
- overThreshold = yOverThreshold && !xOverThreshold;
- }
-
- // Don't be too eager to steal presses outside the drawer (QTBUG-53929)
- if (overThreshold && qFuzzyCompare(position, qreal(1.0)) && !contains(movePoint)) {
- if (edge == Qt::LeftEdge || edge == Qt::RightEdge)
- overThreshold = qAbs(movePoint.x() - q->width()) < dragMargin;
- else
- overThreshold = qAbs(movePoint.y() - q->height()) < dragMargin;
- }
-
- if (overThreshold) {
- popupItem->grabMouse();
- popupItem->setKeepMouseGrab(true);
- offset = offsetAt(movePoint);
- }
-
- return overThreshold;
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-bool QQuickDrawerPrivate::grabTouch(QQuickItem *item, QTouchEvent *event)
-{
- Q_Q(QQuickDrawer);
- bool handled = handleTouchEvent(item, event);
-
- if (!window || !interactive || keepGrab(popupItem) || keepGrab(item) || !event->touchPointStates().testFlag(QEventPoint::Updated))
- return handled;
-
- bool overThreshold = false;
- for (const QTouchEvent::TouchPoint &point : event->points()) {
- if (!acceptTouch(point) || point.state() != QEventPoint::Updated)
- continue;
-
- const QPointF movePoint = point.scenePosition();
-
- // Flickable uses a hard-coded threshold of 15 for flicking, and
- // QStyleHints::startDragDistance for dragging. Drawer uses a bit
- // larger threshold to avoid being too eager to steal touch (QTBUG-50045)
- const int threshold = qMax(20, QGuiApplication::styleHints()->startDragDistance() + 5);
- if (position > 0 || dragMargin > 0) {
- const bool xOverThreshold = QQuickWindowPrivate::dragOverThreshold(movePoint.x() - pressPoint.x(), Qt::XAxis, &point, threshold);
- const bool yOverThreshold = QQuickWindowPrivate::dragOverThreshold(movePoint.y() - pressPoint.y(), Qt::YAxis, &point, threshold);
- if (edge == Qt::LeftEdge || edge == Qt::RightEdge)
- overThreshold = xOverThreshold && !yOverThreshold;
- else
- overThreshold = yOverThreshold && !xOverThreshold;
- }
-
- // Don't be too eager to steal presses outside the drawer (QTBUG-53929)
- if (overThreshold && qFuzzyCompare(position, qreal(1.0)) && !contains(movePoint)) {
- if (edge == Qt::LeftEdge || edge == Qt::RightEdge)
- overThreshold = qAbs(movePoint.x() - q->width()) < dragMargin;
- else
- overThreshold = qAbs(movePoint.y() - q->height()) < dragMargin;
- }
-
- if (overThreshold) {
- popupItem->grabTouchPoints(QList<int>() << touchId);
- popupItem->setKeepTouchGrab(true);
- offset = offsetAt(movePoint);
- }
- }
-
- return overThreshold;
-}
-#endif
-
-static const qreal openCloseVelocityThreshold = 300;
-
-bool QQuickDrawerPrivate::blockInput(QQuickItem *item, const QPointF &point) const
-{
- Q_Q(const QQuickDrawer);
-
- // We want all events, if mouse/touch is already grabbed.
- if (popupItem->keepMouseGrab() || popupItem->keepTouchGrab())
- return true;
-
- // Don't block input to drawer's children/content.
- if (popupItem->isAncestorOf(item))
- return false;
-
- // Don't block outside a drawer's background dimming
- if (dimmer && !dimmer->contains(dimmer->mapFromScene(point)))
- return false;
-
- // Accept all events within drag area.
- if (isWithinDragMargin(q, point))
- return true;
-
- // Accept all other events if drawer is modal.
- return modal;
-}
-
-bool QQuickDrawerPrivate::handlePress(QQuickItem *item, const QPointF &point, ulong timestamp)
-{
- offset = 0;
- velocityCalculator.startMeasuring(point, timestamp);
-
- if (!QQuickPopupPrivate::handlePress(item, point, timestamp))
- return false;
-
- return true;
-}
-
-bool QQuickDrawerPrivate::handleMove(QQuickItem *item, const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickDrawer);
- if (!QQuickPopupPrivate::handleMove(item, point, timestamp))
- return false;
-
- // limit/reset the offset to the edge of the drawer when pushed from the outside
- if (qFuzzyCompare(position, qreal(1.0)) && !contains(point))
- offset = 0;
-
- bool isGrabbed = popupItem->keepMouseGrab() || popupItem->keepTouchGrab();
- if (isGrabbed)
- q->setPosition(positionAt(point) - offset);
-
- return isGrabbed;
-}
-
-bool QQuickDrawerPrivate::handleRelease(QQuickItem *item, const QPointF &point, ulong timestamp)
-{
- if (pressPoint.isNull())
- return false;
- if (!popupItem->keepMouseGrab() && !popupItem->keepTouchGrab()) {
- velocityCalculator.reset();
- return QQuickPopupPrivate::handleRelease(item, point, timestamp);
- }
-
- velocityCalculator.stopMeasuring(point, timestamp);
-
- qreal velocity = 0;
- if (edge == Qt::LeftEdge || edge == Qt::RightEdge)
- velocity = velocityCalculator.velocity().x();
- else
- velocity = velocityCalculator.velocity().y();
-
- // the velocity is calculated so that swipes from left to right
- // and top to bottom have positive velocity, and swipes from right
- // to left and bottom to top have negative velocity.
- //
- // - top/left edge: positive velocity opens, negative velocity closes
- // - bottom/right edge: negative velocity opens, positive velocity closes
- //
- // => invert the velocity for bottom and right edges, for the threshold comparison below
- if (edge == Qt::RightEdge || edge == Qt::BottomEdge)
- velocity = -velocity;
-
- if (position > 0.7 || velocity > openCloseVelocityThreshold) {
- transitionManager.transitionEnter();
- } else if (position < 0.3 || velocity < -openCloseVelocityThreshold) {
- transitionManager.transitionExit();
- } else {
- switch (edge) {
- case Qt::LeftEdge:
- if (point.x() - pressPoint.x() > 0)
- transitionManager.transitionEnter();
- else
- transitionManager.transitionExit();
- break;
- case Qt::RightEdge:
- if (point.x() - pressPoint.x() < 0)
- transitionManager.transitionEnter();
- else
- transitionManager.transitionExit();
- break;
- case Qt::TopEdge:
- if (point.y() - pressPoint.y() > 0)
- transitionManager.transitionEnter();
- else
- transitionManager.transitionExit();
- break;
- case Qt::BottomEdge:
- if (point.y() - pressPoint.y() < 0)
- transitionManager.transitionEnter();
- else
- transitionManager.transitionExit();
- break;
- }
- }
-
- bool wasGrabbed = popupItem->keepMouseGrab() || popupItem->keepTouchGrab();
- popupItem->setKeepMouseGrab(false);
- popupItem->setKeepTouchGrab(false);
-
- pressPoint = QPointF();
- touchId = -1;
-
- return wasGrabbed;
-}
-
-void QQuickDrawerPrivate::handleUngrab()
-{
- QQuickPopupPrivate::handleUngrab();
-
- velocityCalculator.reset();
-}
-
-static QList<QQuickStateAction> prepareTransition(QQuickDrawer *drawer, QQuickTransition *transition, qreal to)
-{
- QList<QQuickStateAction> actions;
- if (!transition || !QQuickPopupPrivate::get(drawer)->window || !transition->enabled())
- return actions;
-
- qmlExecuteDeferred(transition);
-
- QQmlProperty defaultTarget(drawer, QLatin1String("position"));
- QQmlListProperty<QQuickAbstractAnimation> animations = transition->animations();
- int count = animations.count(&animations);
- for (int i = 0; i < count; ++i) {
- QQuickAbstractAnimation *anim = animations.at(&animations, i);
- anim->setDefaultTarget(defaultTarget);
- }
-
- actions << QQuickStateAction(drawer, QLatin1String("position"), to);
- return actions;
-}
-
-bool QQuickDrawerPrivate::prepareEnterTransition()
-{
- Q_Q(QQuickDrawer);
- enterActions = prepareTransition(q, enter, 1.0);
- return QQuickPopupPrivate::prepareEnterTransition();
-}
-
-bool QQuickDrawerPrivate::prepareExitTransition()
-{
- Q_Q(QQuickDrawer);
- exitActions = prepareTransition(q, exit, 0.0);
- return QQuickPopupPrivate::prepareExitTransition();
-}
-
-bool QQuickDrawerPrivate::setEdge(Qt::Edge e)
-{
- Q_Q(QQuickDrawer);
- switch (e) {
- case Qt::LeftEdge:
- case Qt::RightEdge:
- allowVerticalMove = true;
- allowVerticalResize = true;
- allowHorizontalMove = false;
- allowHorizontalResize = false;
- break;
- case Qt::TopEdge:
- case Qt::BottomEdge:
- allowVerticalMove = false;
- allowVerticalResize = false;
- allowHorizontalMove = true;
- allowHorizontalResize = true;
- break;
- default:
- qmlWarning(q) << "invalid edge value - valid values are: "
- << "Qt.TopEdge, Qt.LeftEdge, Qt.RightEdge, Qt.BottomEdge";
- return false;
- }
-
- edge = e;
- return true;
-}
-
-QQuickDrawer::QQuickDrawer(QObject *parent)
- : QQuickPopup(*(new QQuickDrawerPrivate), parent)
-{
- Q_D(QQuickDrawer);
- d->dragMargin = QGuiApplication::styleHints()->startDragDistance();
- d->setEdge(Qt::LeftEdge);
-
- setFocus(true);
- setModal(true);
- setFiltersChildMouseEvents(true);
- setClosePolicy(CloseOnEscape | CloseOnReleaseOutside);
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::Drawer::edge
-
- This property holds the edge of the window at which the drawer will
- open from. The acceptable values are:
-
- \value Qt.TopEdge The top edge of the window.
- \value Qt.LeftEdge The left edge of the window (default).
- \value Qt.RightEdge The right edge of the window.
- \value Qt.BottomEdge The bottom edge of the window.
-*/
-Qt::Edge QQuickDrawer::edge() const
-{
- Q_D(const QQuickDrawer);
- return d->edge;
-}
-
-void QQuickDrawer::setEdge(Qt::Edge edge)
-{
- Q_D(QQuickDrawer);
- if (d->edge == edge)
- return;
-
- if (!d->setEdge(edge))
- return;
-
- if (isComponentComplete())
- d->reposition();
- emit edgeChanged();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Drawer::position
-
- This property holds the position of the drawer relative to its final
- destination. That is, the position will be \c 0.0 when the drawer
- is fully closed, and \c 1.0 when fully open.
-*/
-qreal QQuickDrawer::position() const
-{
- Q_D(const QQuickDrawer);
- return d->position;
-}
-
-void QQuickDrawer::setPosition(qreal position)
-{
- Q_D(QQuickDrawer);
- position = qBound<qreal>(0.0, position, 1.0);
- if (qFuzzyCompare(d->position, position))
- return;
-
- d->position = position;
- if (isComponentComplete())
- d->reposition();
- if (d->dimmer)
- d->dimmer->setOpacity(position);
- emit positionChanged();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Drawer::dragMargin
-
- This property holds the distance from the screen edge within which
- drag actions will open the drawer. Setting the value to \c 0 or less
- prevents opening the drawer by dragging.
-
- The default value is \c Qt.styleHints.startDragDistance.
-
- \sa interactive
-*/
-qreal QQuickDrawer::dragMargin() const
-{
- Q_D(const QQuickDrawer);
- return d->dragMargin;
-}
-
-void QQuickDrawer::setDragMargin(qreal margin)
-{
- Q_D(QQuickDrawer);
- if (qFuzzyCompare(d->dragMargin, margin))
- return;
-
- d->dragMargin = margin;
- emit dragMarginChanged();
-}
-
-void QQuickDrawer::resetDragMargin()
-{
- setDragMargin(QGuiApplication::styleHints()->startDragDistance());
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty bool QtQuick.Controls::Drawer::interactive
-
- This property holds whether the drawer is interactive. A non-interactive
- drawer does not react to swipes.
-
- The default value is \c true.
-
- \sa dragMargin
-*/
-bool QQuickDrawer::isInteractive() const
-{
- Q_D(const QQuickDrawer);
- return d->interactive;
-}
-
-void QQuickDrawer::setInteractive(bool interactive)
-{
- Q_D(QQuickDrawer);
- if (d->interactive == interactive)
- return;
-
- setFiltersChildMouseEvents(interactive);
- d->interactive = interactive;
- emit interactiveChanged();
-}
-
-bool QQuickDrawer::childMouseEventFilter(QQuickItem *child, QEvent *event)
-{
- Q_D(QQuickDrawer);
- switch (event->type()) {
-#if QT_CONFIG(quicktemplates2_multitouch)
- case QEvent::TouchUpdate:
- return d->grabTouch(child, static_cast<QTouchEvent *>(event));
- case QEvent::TouchBegin:
- case QEvent::TouchEnd:
- return d->handleTouchEvent(child, static_cast<QTouchEvent *>(event));
-#endif
- case QEvent::MouseMove:
- return d->grabMouse(child, static_cast<QMouseEvent *>(event));
- case QEvent::MouseButtonPress:
- case QEvent::MouseButtonRelease:
- return d->handleMouseEvent(child, static_cast<QMouseEvent *>(event));
- default:
- break;
- }
- return false;
-}
-
-void QQuickDrawer::mouseMoveEvent(QMouseEvent *event)
-{
- Q_D(QQuickDrawer);
- d->grabMouse(d->popupItem, event);
-}
-
-bool QQuickDrawer::overlayEvent(QQuickItem *item, QEvent *event)
-{
- Q_D(QQuickDrawer);
- switch (event->type()) {
-#if QT_CONFIG(quicktemplates2_multitouch)
- case QEvent::TouchUpdate:
- return d->grabTouch(item, static_cast<QTouchEvent *>(event));
-#endif
- case QEvent::MouseMove:
- return d->grabMouse(item, static_cast<QMouseEvent *>(event));
- default:
- break;
- }
- return QQuickPopup::overlayEvent(item, event);
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickDrawer::touchEvent(QTouchEvent *event)
-{
- Q_D(QQuickDrawer);
- d->grabTouch(d->popupItem, event);
-}
-#endif
-
-void QQuickDrawer::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickDrawer);
- QQuickPopup::geometryChange(newGeometry, oldGeometry);
- d->resizeOverlay();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickdrawer_p.h b/src/quicktemplates2/qquickdrawer_p.h
deleted file mode 100644
index f16ae771..00000000
--- a/src/quicktemplates2/qquickdrawer_p.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDRAWER_P_H
-#define QQUICKDRAWER_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpopup_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickDrawerPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickDrawer : public QQuickPopup
-{
- Q_OBJECT
- Q_PROPERTY(Qt::Edge edge READ edge WRITE setEdge NOTIFY edgeChanged FINAL)
- Q_PROPERTY(qreal position READ position WRITE setPosition NOTIFY positionChanged FINAL)
- Q_PROPERTY(qreal dragMargin READ dragMargin WRITE setDragMargin RESET resetDragMargin NOTIFY dragMarginChanged FINAL)
- // 2.2 (Qt 5.9)
- Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive NOTIFY interactiveChanged FINAL REVISION(2, 2))
- QML_NAMED_ELEMENT(Drawer)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickDrawer(QObject *parent = nullptr);
-
- Qt::Edge edge() const;
- void setEdge(Qt::Edge edge);
-
- qreal position() const;
- void setPosition(qreal position);
-
- qreal dragMargin() const;
- void setDragMargin(qreal margin);
- void resetDragMargin();
-
- // 2.2 (Qt 5.9)
- bool isInteractive() const;
- void setInteractive(bool interactive);
-
-Q_SIGNALS:
- void edgeChanged();
- void positionChanged();
- void dragMarginChanged();
- // 2.2 (Qt 5.9)
- Q_REVISION(2, 2) void interactiveChanged();
-
-protected:
- bool childMouseEventFilter(QQuickItem *child, QEvent *event) override;
- void mouseMoveEvent(QMouseEvent *event) override;
- bool overlayEvent(QQuickItem *item, QEvent *event) override;
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
-#endif
-
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
-
-private:
- Q_DISABLE_COPY(QQuickDrawer)
- Q_DECLARE_PRIVATE(QQuickDrawer)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickDrawer)
-
-#endif // QQUICKDRAWER_P_H
diff --git a/src/quicktemplates2/qquickdrawer_p_p.h b/src/quicktemplates2/qquickdrawer_p_p.h
deleted file mode 100644
index 5f1086de..00000000
--- a/src/quicktemplates2/qquickdrawer_p_p.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKDRAWER_P_P_H
-#define QQUICKDRAWER_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickdrawer_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p_p.h>
-#include <QtQuickTemplates2/private/qquickvelocitycalculator_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickDrawerPrivate : public QQuickPopupPrivate
-{
- Q_DECLARE_PUBLIC(QQuickDrawer)
-
-public:
- static QQuickDrawerPrivate *get(QQuickDrawer *drawer)
- {
- return drawer->d_func();
- }
-
- qreal offsetAt(const QPointF &point) const;
- qreal positionAt(const QPointF &point) const;
-
- QQuickPopupPositioner *getPositioner() override;
- void showOverlay() override;
- void hideOverlay() override;
- void resizeOverlay() override;
-
- bool startDrag(QEvent *event);
- bool grabMouse(QQuickItem *item, QMouseEvent *event);
-#if QT_CONFIG(quicktemplates2_multitouch)
- bool grabTouch(QQuickItem *item, QTouchEvent *event);
-#endif
- bool blockInput(QQuickItem *item, const QPointF &point) const override;
-
- bool handlePress(QQuickItem* item, const QPointF &point, ulong timestamp) override;
- bool handleMove(QQuickItem* item, const QPointF &point, ulong timestamp) override;
- bool handleRelease(QQuickItem* item, const QPointF &point, ulong timestamp) override;
- void handleUngrab() override;
-
- bool prepareEnterTransition() override;
- bool prepareExitTransition() override;
-
- bool setEdge(Qt::Edge edge);
-
- Qt::Edge edge = Qt::LeftEdge;
- qreal offset = 0;
- qreal position = 0;
- qreal dragMargin = 0;
- QQuickVelocityCalculator velocityCalculator;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKDRAWER_P_P_H
diff --git a/src/quicktemplates2/qquickframe.cpp b/src/quicktemplates2/qquickframe.cpp
deleted file mode 100644
index e82258a9..00000000
--- a/src/quicktemplates2/qquickframe.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickframe_p.h"
-#include "qquickframe_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Frame
- \inherits Pane
-//! \instantiates QQuickFrame
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-containers
- \brief Visual frame for a logical group of controls.
-
- Frame is used to layout a logical group of controls together within a
- visual frame. Frame does not provide a layout of its own, but requires
- you to position its contents, for instance by creating a \l RowLayout
- or a \l ColumnLayout.
-
- Items declared as children of a Frame are automatically parented to the
- Frame's \l {Control::}{contentItem}. Items created dynamically need to be
- explicitly parented to the contentItem.
-
- If only a single item is used within a Frame, it will resize to fit the
- implicit size of its contained item. This makes it particularly suitable
- for use together with layouts.
-
- \image qtquickcontrols2-frame.png
-
- \snippet qtquickcontrols2-frame.qml 1
-
- \sa {Customizing Frame}, {Container Controls}
-*/
-
-QQuickFrame::QQuickFrame(QQuickItem *parent)
- : QQuickPane(*(new QQuickFramePrivate), parent)
-{
-}
-
-QQuickFrame::QQuickFrame(QQuickFramePrivate &dd, QQuickItem *parent)
- : QQuickPane(dd, parent)
-{
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickFrame::accessibleRole() const
-{
- return QAccessible::Border;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickframe_p.h b/src/quicktemplates2/qquickframe_p.h
deleted file mode 100644
index f65e2814..00000000
--- a/src/quicktemplates2/qquickframe_p.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFRAME_P_H
-#define QQUICKFRAME_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpane_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFramePrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickFrame : public QQuickPane
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(Frame)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickFrame(QQuickItem *parent = nullptr);
-
-protected:
- QQuickFrame(QQuickFramePrivate &dd, QQuickItem *parent);
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickFrame)
- Q_DECLARE_PRIVATE(QQuickFrame)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickFrame)
-
-#endif // QQUICKFRAME_P_H
diff --git a/src/quicktemplates2/qquickframe_p_p.h b/src/quicktemplates2/qquickframe_p_p.h
deleted file mode 100644
index ad392dc3..00000000
--- a/src/quicktemplates2/qquickframe_p_p.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKFRAME_P_P_H
-#define QQUICKFRAME_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpane_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFrame;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickFramePrivate : public QQuickPanePrivate
-{
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKFRAME_P_P_H
diff --git a/src/quicktemplates2/qquickgroupbox.cpp b/src/quicktemplates2/qquickgroupbox.cpp
deleted file mode 100644
index 4a58f163..00000000
--- a/src/quicktemplates2/qquickgroupbox.cpp
+++ /dev/null
@@ -1,287 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickgroupbox_p.h"
-#include "qquickframe_p_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtGui/qpa/qplatformtheme.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype GroupBox
- \inherits Frame
-//! \instantiates QQuickGroupBox
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-containers
- \brief Visual frame and title for a logical group of controls.
-
- GroupBox is used to layout a logical group of controls together, within
- a \l {title}{titled} visual frame. GroupBox does not provide a layout of its own, but
- requires you to position its contents, for instance by creating a \l RowLayout
- or a \l ColumnLayout.
-
- Items declared as children of a GroupBox are automatically parented to the
- GroupBox's \l {Control::}{contentItem}. Items created dynamically need to be
- explicitly parented to the contentItem.
-
- If only a single item is used within a GroupBox, it will resize to fit the
- implicit size of its contained item. This makes it particularly suitable
- for use together with layouts.
-
- \image qtquickcontrols2-groupbox.png
-
- \snippet qtquickcontrols2-groupbox.qml 1
-
- \section2 Checkable GroupBox
-
- Even though GroupBox has no built-in check box, it is straightforward
- to create a checkable GroupBox by pairing it with a CheckBox.
-
- \image qtquickcontrols2-groupbox-checkable.png
-
- It is a common pattern to enable or disable the groupbox's children when
- its checkbox is toggled on or off, but it is up to the application to decide
- on the behavior of the checkbox.
-
- \snippet qtquickcontrols2-groupbox-checkable.qml 1
-
- \sa CheckBox, {Customizing GroupBox}, {Container Controls}
-*/
-
-class QQuickGroupBoxPrivate : public QQuickFramePrivate
-{
- Q_DECLARE_PUBLIC(QQuickGroupBox)
-
-public:
- void cancelLabel();
- void executeLabel(bool complete = false);
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::GroupBox); }
-
- QString title;
- QQuickDeferredPointer<QQuickItem> label;
-};
-
-static inline QString labelName() { return QStringLiteral("label"); }
-
-void QQuickGroupBoxPrivate::cancelLabel()
-{
- Q_Q(QQuickGroupBox);
- quickCancelDeferred(q, labelName());
-}
-
-void QQuickGroupBoxPrivate::executeLabel(bool complete)
-{
- Q_Q(QQuickGroupBox);
- if (label.wasExecuted())
- return;
-
- if (!label || complete)
- quickBeginDeferred(q, labelName(), label);
- if (complete)
- quickCompleteDeferred(q, labelName(), label);
-}
-
-void QQuickGroupBoxPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_Q(QQuickGroupBox);
- QQuickFramePrivate::itemImplicitWidthChanged(item);
- if (item == label)
- emit q->implicitLabelWidthChanged();
-}
-
-void QQuickGroupBoxPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_Q(QQuickGroupBox);
- QQuickFramePrivate::itemImplicitHeightChanged(item);
- if (item == label)
- emit q->implicitLabelHeightChanged();
-}
-
-QQuickGroupBox::QQuickGroupBox(QQuickItem *parent)
- : QQuickFrame(*(new QQuickGroupBoxPrivate), parent)
-{
-}
-
-QQuickGroupBox::~QQuickGroupBox()
-{
- Q_D(QQuickGroupBox);
- d->removeImplicitSizeListener(d->label);
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::GroupBox::title
-
- This property holds the title.
-
- The title is typically displayed above the groupbox to
- summarize its contents.
-*/
-QString QQuickGroupBox::title() const
-{
- Q_D(const QQuickGroupBox);
- return d->title;
-}
-
-void QQuickGroupBox::setTitle(const QString &title)
-{
- Q_D(QQuickGroupBox);
- if (d->title == title)
- return;
-
- d->title = title;
- maybeSetAccessibleName(title);
- emit titleChanged();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::GroupBox::label
-
- This property holds the label item that visualizes \l title.
-
- \sa {Customizing GroupBox}
-*/
-QQuickItem *QQuickGroupBox::label() const
-{
- QQuickGroupBoxPrivate *d = const_cast<QQuickGroupBoxPrivate *>(d_func());
- if (!d->label)
- d->executeLabel();
- return d->label;
-}
-
-void QQuickGroupBox::setLabel(QQuickItem *label)
-{
- Q_D(QQuickGroupBox);
- if (d->label == label)
- return;
-
- if (!d->label.isExecuting())
- d->cancelLabel();
-
- const qreal oldImplicitLabelWidth = implicitLabelWidth();
- const qreal oldImplicitLabelHeight = implicitLabelHeight();
-
- d->removeImplicitSizeListener(d->label);
- QQuickControlPrivate::hideOldItem(d->label);
- d->label = label;
-
- if (label) {
- if (!label->parentItem())
- label->setParentItem(this);
- d->addImplicitSizeListener(label);
- }
-
- if (!qFuzzyCompare(oldImplicitLabelWidth, implicitLabelWidth()))
- emit implicitLabelWidthChanged();
- if (!qFuzzyCompare(oldImplicitLabelHeight, implicitLabelHeight()))
- emit implicitLabelHeightChanged();
- if (!d->label.isExecuting())
- emit labelChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::GroupBox::implicitLabelWidth
- \readonly
-
- This property holds the implicit label width.
-
- The value is equal to \c {label ? label.implicitWidth : 0}.
-
- \sa implicitLabelHeight
-*/
-qreal QQuickGroupBox::implicitLabelWidth() const
-{
- Q_D(const QQuickGroupBox);
- if (!d->label)
- return 0;
- return d->label->implicitWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::GroupBox::implicitLabelHeight
- \readonly
-
- This property holds the implicit label height.
-
- The value is equal to \c {label ? label.implicitHeight : 0}.
-
- \sa implicitLabelWidth
-*/
-qreal QQuickGroupBox::implicitLabelHeight() const
-{
- Q_D(const QQuickGroupBox);
- if (!d->label)
- return 0;
- return d->label->implicitHeight();
-}
-
-void QQuickGroupBox::componentComplete()
-{
- Q_D(QQuickGroupBox);
- d->executeLabel(true);
- QQuickFrame::componentComplete();
-}
-
-QFont QQuickGroupBox::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::GroupBox);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickGroupBox::accessibleRole() const
-{
- return QAccessible::Grouping;
-}
-
-void QQuickGroupBox::accessibilityActiveChanged(bool active)
-{
- Q_D(QQuickGroupBox);
- QQuickFrame::accessibilityActiveChanged(active);
-
- if (active)
- maybeSetAccessibleName(d->title);
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickgroupbox_p.h b/src/quicktemplates2/qquickgroupbox_p.h
deleted file mode 100644
index 39e20494..00000000
--- a/src/quicktemplates2/qquickgroupbox_p.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKGROUPBOX_P_H
-#define QQUICKGROUPBOX_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickframe_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickGroupBoxPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickGroupBox : public QQuickFrame
-{
- Q_OBJECT
- Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged FINAL)
- Q_PROPERTY(QQuickItem *label READ label WRITE setLabel NOTIFY labelChanged FINAL)
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal implicitLabelWidth READ implicitLabelWidth NOTIFY implicitLabelWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitLabelHeight READ implicitLabelHeight NOTIFY implicitLabelHeightChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "background,contentItem,label")
- QML_NAMED_ELEMENT(GroupBox)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickGroupBox(QQuickItem *parent = nullptr);
- ~QQuickGroupBox();
-
- QString title() const;
- void setTitle(const QString &title);
-
- QQuickItem *label() const;
- void setLabel(QQuickItem *label);
-
- // 2.5 (Qt 5.12)
- qreal implicitLabelWidth() const;
- qreal implicitLabelHeight() const;
-
-Q_SIGNALS:
- void titleChanged();
- void labelChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void implicitLabelWidthChanged();
- Q_REVISION(2, 5) void implicitLabelHeightChanged();
-
-protected:
- void componentComplete() override;
-
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
- void accessibilityActiveChanged(bool active) override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickGroupBox)
- Q_DECLARE_PRIVATE(QQuickGroupBox)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickGroupBox)
-
-#endif // QQUICKGROUPBOX_P_H
diff --git a/src/quicktemplates2/qquickheaderview.cpp b/src/quicktemplates2/qquickheaderview.cpp
deleted file mode 100644
index 8671ac63..00000000
--- a/src/quicktemplates2/qquickheaderview.cpp
+++ /dev/null
@@ -1,520 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtQuick module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtQuickTemplates2/private/qquickheaderview_p_p.h>
-#include <algorithm>
-
-/*!
- \qmltype HorizontalHeaderView
- \inqmlmodule QtQuick.Controls
- \ingroup qtquickcontrols2-containers
- \inherits TableView
- \brief Provides a horizontal header view to accompany a \l TableView.
-
- A HorizontalHeaderView provides labeling of the columns of a \l TableView.
- To add a horizontal header to a TableView, bind the
- \l {HorizontalHeaderView::syncView} {syncView} property to the TableView:
-
- \snippet qtquickcontrols2-headerview-simple.qml horizontal
-
- The header displays data from the {syncView}'s model by default, but can
- also have its own model. If the model is a QAbstractTableModel, then
- the header will display the model's horizontal headerData(); otherwise,
- the model's data().
-*/
-
-/*!
- \qmltype VerticalHeaderView
- \inqmlmodule QtQuick.Controls
- \ingroup qtquickcontrols2-containers
- \inherits TableView
- \brief Provides a vertical header view to accompany a \l TableView.
-
- A VerticalHeaderView provides labeling of the rows of a \l TableView.
- To add a vertical header to a TableView, bind the
- \l {VerticalHeaderView::syncView} {syncView} property to the TableView:
-
- \snippet qtquickcontrols2-headerview-simple.qml vertical
-
- The header displays data from the {syncView}'s model by default, but can
- also have its own model. If the model is a QAbstractTableModel, then
- the header will display the model's vertical headerData(); otherwise,
- the model's data().
-*/
-
-/*!
- \qmlproperty TableView QtQuick::HorizontalHeaderView::syncView
-
- This property holds the TableView to synchronize with.
-
- Once this property is bound to another TableView, both header and table
- will synchronize with regard to column widths, column spacing, and flicking
- horizontally.
-
- If the \l model is not explicitly set, then the header will use the syncView's
- model to label the columns.
-
- \sa model TableView
-*/
-
-/*!
- \qmlproperty TableView QtQuick::VerticalHeaderView::syncView
-
- This property holds the TableView to synchronize with.
-
- Once this property is bound to another TableView, both header and table
- will synchronize with regard to row heights, row spacing, and flicking
- vertically.
-
- If the \l model is not explicitly set, then the header will use the syncView's
- model to label the rows.
-
- \sa model TableView
-*/
-
-/*!
- \qmlproperty QVariant QtQuick::HorizontalHeaderView::model
-
- This property holds the model providing data for the horizontal header view.
-
- When model is not explicitly set, the header will use the syncView's
- model once syncView is set.
-
- If model is a QAbstractTableModel, its horizontal headerData() will
- be accessed.
-
- If model is a QAbstractItemModel other than QAbstractTableModel, model's data()
- will be accessed.
-
- Otherwise, the behavior is same as setting TableView::model.
-
- \sa TableView {TableView::model} {model} QAbstractTableModel
-*/
-
-/*!
- \qmlproperty QVariant QtQuick::VerticalHeaderView::model
-
- This property holds the model providing data for the vertical header view.
-
- When model is not explicitly set, it will be synchronized with syncView's model
- once syncView is set.
-
- If model is a QAbstractTableModel, its vertical headerData() will
- be accessed.
-
- If model is a QAbstractItemModel other than QAbstractTableModel, model's data()
- will be accessed.
-
- Otherwise, the behavior is same as setting TableView::model.
-
- \sa TableView {TableView::model} {model} QAbstractTableModel
-*/
-
-/*!
- \qmlproperty QString QtQuick::HorizontalHeaderView::textRole
-
- This property holds the model role used to display text in each header cell.
-
- When the model has multiple roles, textRole can be set to determine which
- role should be displayed.
-
- If model is a QAbstractItemModel then it will default to "display"; otherwise
- it is empty.
-
- \sa QAbstractItemModel::roleNames()
-*/
-
-/*!
- \qmlproperty QString QtQuick::VerticalHeaderView::textRole
-
- This property holds the model role used to display text in each header cell.
-
- When the model has multiple roles, textRole can be set to determine which
- role should be displayed.
-
- If model is a QAbstractItemModel then it will default to "display"; otherwise
- it is empty.
-
- \sa QAbstractItemModel::roleNames()
-*/
-
-QT_BEGIN_NAMESPACE
-
-QQuickHeaderViewBasePrivate::QQuickHeaderViewBasePrivate()
- : QQuickTableViewPrivate()
-{
-}
-
-QQuickHeaderViewBasePrivate::~QQuickHeaderViewBasePrivate()
-{
-}
-
-const QPointer<QQuickItem> QQuickHeaderViewBasePrivate::delegateItemAt(int row, int col) const
-{
- return loadedTableItem(QPoint(col, row))->item;
-}
-
-QVariant QQuickHeaderViewBasePrivate::modelImpl() const
-{
- if (auto model = m_headerDataProxyModel.sourceModel())
- return QVariant::fromValue(model.data());
- if (auto model = m_transposeProxyModel.sourceModel())
- return QVariant::fromValue(model);
- return QQuickTableViewPrivate::modelImpl();
-}
-
-template <typename P, typename M>
-inline bool proxyModelSetter(QQuickHeaderViewBase *const q, P &proxyModel, M *model)
-{
- if (model) {
- if (model == proxyModel.sourceModel())
- return true;
- proxyModel.setSourceModel(model);
- const auto &modelVariant = QVariant::fromValue(std::addressof(proxyModel));
- bool isProxyModelChanged = (modelVariant != QQuickTableViewPrivate::get(q)->QQuickTableViewPrivate::modelImpl());
- QQuickTableViewPrivate::get(q)->QQuickTableViewPrivate::setModelImpl(modelVariant);
- //Necessary, since TableView's assigned model not changed, but proxy's source changed
- if (!isProxyModelChanged)
- emit q->modelChanged();
- return true;
- }
- proxyModel.setSourceModel(nullptr);
- return false;
-}
-
-void QQuickHeaderViewBasePrivate::setModelImpl(const QVariant &newModel)
-{
- Q_Q(QQuickHeaderViewBase);
- m_modelExplicitlySetByUser = true;
- // Case 1: newModel is QAbstractTableModel
- if (proxyModelSetter(q, m_headerDataProxyModel, newModel.value<QAbstractTableModel *>()))
- return;
- // Case 2: newModel is QAbstractItemModel but not QAbstractTableModel
- if (orientation() == Qt::Horizontal
- && proxyModelSetter(q, m_transposeProxyModel, newModel.value<QAbstractItemModel *>()))
- return;
-
- QQuickTableViewPrivate::setModelImpl(newModel);
-}
-
-void QQuickHeaderViewBasePrivate::syncModel()
-{
- Q_Q(QQuickHeaderViewBase);
-
- if (assignedSyncView && !m_modelExplicitlySetByUser) {
- auto newModel = assignedSyncView->model();
- if (auto m = newModel.value<QAbstractItemModel *>())
- proxyModelSetter(q, m_headerDataProxyModel, m);
- }
-
- QQuickTableViewPrivate::syncModel();
-
- isTransposed = false;
- const auto aim = model->abstractItemModel();
- if (orientation() == Qt::Horizontal) {
- // For models that are just a list or a number, and especially not a
- // table, we transpose the view when the orientation is horizontal.
- // The model (list) will then be laid out horizontally rather than
- // vertically, which is the otherwise the default.
- isTransposed = !aim || aim->columnCount() == 1;
- }
- if (m_textRole.isEmpty() && aim)
- m_textRole = QLatin1String("display");
-}
-
-void QQuickHeaderViewBasePrivate::syncSyncView()
-{
- Q_Q(QQuickHeaderViewBase);
- if (assignedSyncDirection != orientation()) {
- qmlWarning(q_func()) << "Setting syncDirection other than Qt::"
- << QVariant::fromValue(orientation()).toString()
- << " is invalid.";
- assignedSyncDirection = orientation();
- }
- if (assignedSyncView) {
- QBoolBlocker fixupGuard(inUpdateContentSize, true);
- if (orientation() == Qt::Horizontal) {
- q->setLeftMargin(assignedSyncView->leftMargin());
- q->setRightMargin(assignedSyncView->rightMargin());
- } else {
- q->setTopMargin(assignedSyncView->topMargin());
- q->setBottomMargin(assignedSyncView->bottomMargin());
- }
- }
- QQuickTableViewPrivate::syncSyncView();
-}
-
-QQuickHeaderViewBase::QQuickHeaderViewBase(Qt::Orientation orient, QQuickItem *parent)
- : QQuickTableView(*(new QQuickHeaderViewBasePrivate), parent)
-{
- d_func()->setOrientation(orient);
- setSyncDirection(orient);
-}
-
-QQuickHeaderViewBase::QQuickHeaderViewBase(QQuickHeaderViewBasePrivate &dd, QQuickItem *parent)
- : QQuickTableView(dd, parent)
-{
-}
-
-QQuickHeaderViewBase::~QQuickHeaderViewBase()
-{
-}
-
-QString QQuickHeaderViewBase::textRole() const
-{
- Q_D(const QQuickHeaderViewBase);
- return d->m_textRole;
-}
-
-void QQuickHeaderViewBase::setTextRole(const QString &role)
-{
- Q_D(QQuickHeaderViewBase);
- if (d->m_textRole == role)
- return;
-
- d->m_textRole = role;
- emit textRoleChanged();
-}
-
-Qt::Orientation QQuickHeaderViewBasePrivate::orientation() const
-{
- return m_headerDataProxyModel.orientation();
-}
-
-void QQuickHeaderViewBasePrivate::setOrientation(Qt::Orientation orientation)
-{
- if (QQuickHeaderViewBasePrivate::orientation() == orientation)
- return;
- m_headerDataProxyModel.setOrientation(orientation);
-}
-
-QQuickVerticalHeaderView::QQuickVerticalHeaderView(QQuickVerticalHeaderViewPrivate &dd, QQuickItem *parent)
- : QQuickHeaderViewBase(dd, parent)
-{
-}
-
-/*! \internal
- \class QHeaderDataProxyModel
- \brief
- QHeaderDataProxyModel is a proxy AbstractItemModel type that maps
- source model's headerData() to correspondent data()
- */
-QHeaderDataProxyModel::QHeaderDataProxyModel(QObject *parent)
- : QAbstractItemModel(parent)
-{
-}
-
-QHeaderDataProxyModel::~QHeaderDataProxyModel() = default;
-
-void QHeaderDataProxyModel::setSourceModel(QAbstractItemModel *newSourceModel)
-{
- if (m_model == newSourceModel)
- return;
- beginResetModel();
- disconnectFromModel();
- m_model = newSourceModel;
- connectToModel();
- endResetModel();
-}
-
-QModelIndex QHeaderDataProxyModel::index(int row, int column, const QModelIndex &parent) const
-{
- return hasIndex(row, column, parent) ? createIndex(row, column) : QModelIndex();
-}
-
-QModelIndex QHeaderDataProxyModel::parent(const QModelIndex &child) const
-{
- Q_UNUSED(child);
- return QModelIndex();
-}
-
-QModelIndex QHeaderDataProxyModel::sibling(int row, int column, const QModelIndex &) const
-{
- return index(row, column);
-}
-
-int QHeaderDataProxyModel::rowCount(const QModelIndex &parent) const
-{
- if (parent.isValid())
- return 0;
- return m_model.isNull() ? -1 : (m_orientation == Qt::Horizontal ? 1 : m_model->rowCount(parent));
-}
-
-int QHeaderDataProxyModel::columnCount(const QModelIndex &parent) const
-{
- if (parent.isValid())
- return 0;
- return m_model.isNull() ? -1 : (m_orientation == Qt::Vertical ? 1 : m_model->columnCount(parent));
-}
-
-QVariant QHeaderDataProxyModel::data(const QModelIndex &index, int role) const
-{
- if (m_model.isNull())
- return QVariant();
- if (!hasIndex(index.row(), index.column()))
- return QModelIndex();
- auto section = m_orientation == Qt::Vertical ? index.row() : index.column();
- return m_model->headerData(section, m_orientation, role);
-}
-
-bool QHeaderDataProxyModel::setData(const QModelIndex &index, const QVariant &value, int role)
-{
- if (!hasIndex(index.row(), index.column()))
- return false;
- auto section = m_orientation == Qt::Vertical ? index.row() : index.column();
- auto ret = m_model->setHeaderData(section, m_orientation, value, role);
- emit dataChanged(index, index, { role });
- return ret;
-}
-
-bool QHeaderDataProxyModel::hasChildren(const QModelIndex &parent) const
-{
- if (!parent.isValid())
- return rowCount(parent) > 0 && columnCount(parent) > 0;
- return false;
-}
-
-QVariant QHeaderDataProxyModel::variantValue() const
-{
- return QVariant::fromValue(static_cast<QObject *>(const_cast<QHeaderDataProxyModel *>(this)));
-}
-
-void QHeaderDataProxyModel::setOrientation(Qt::Orientation o)
-{
- if (o == m_orientation)
- return;
- beginResetModel();
- m_orientation = o;
- endResetModel();
-}
-
-Qt::Orientation QHeaderDataProxyModel::orientation() const
-{
- return m_orientation;
-}
-
-QPointer<QAbstractItemModel> QHeaderDataProxyModel::sourceModel() const
-{
- return m_model;
-}
-
-void QHeaderDataProxyModel::connectToModel()
-{
- if (m_model.isNull())
- return;
- connect(m_model, &QAbstractItemModel::headerDataChanged,
- [this](Qt::Orientation orient, int first, int last) {
- if (orient != orientation())
- return;
- if (orient == Qt::Horizontal) {
- emit dataChanged(createIndex(0, first), createIndex(0, last));
- } else {
- emit dataChanged(createIndex(first, 0), createIndex(last, 0));
- }
- });
- connect(m_model, &QAbstractItemModel::modelAboutToBeReset,
- this, &QHeaderDataProxyModel::modelAboutToBeReset, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::modelReset,
- this, &QHeaderDataProxyModel::modelReset, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::rowsAboutToBeMoved,
- this, &QHeaderDataProxyModel::rowsAboutToBeMoved, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::rowsMoved,
- this, &QHeaderDataProxyModel::rowsMoved, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::rowsAboutToBeInserted,
- this, &QHeaderDataProxyModel::rowsAboutToBeInserted, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::rowsInserted,
- this, &QHeaderDataProxyModel::rowsInserted, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::rowsAboutToBeRemoved,
- this, &QHeaderDataProxyModel::rowsAboutToBeRemoved, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::rowsRemoved,
- this, &QHeaderDataProxyModel::rowsRemoved, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::columnsAboutToBeMoved,
- this, &QHeaderDataProxyModel::columnsAboutToBeMoved, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::columnsMoved,
- this, &QHeaderDataProxyModel::columnsMoved, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::columnsAboutToBeInserted,
- this, &QHeaderDataProxyModel::columnsAboutToBeInserted, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::columnsInserted,
- this, &QHeaderDataProxyModel::columnsInserted, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::columnsAboutToBeRemoved,
- this, &QHeaderDataProxyModel::columnsAboutToBeRemoved, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::columnsRemoved,
- this, &QHeaderDataProxyModel::columnsRemoved, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::layoutAboutToBeChanged,
- this, &QHeaderDataProxyModel::layoutAboutToBeChanged, Qt::UniqueConnection);
- connect(m_model, &QAbstractItemModel::layoutChanged,
- this, &QHeaderDataProxyModel::layoutChanged, Qt::UniqueConnection);
-}
-
-void QHeaderDataProxyModel::disconnectFromModel()
-{
- if (m_model.isNull())
- return;
- m_model->disconnect(this);
-}
-
-QQuickHorizontalHeaderView::QQuickHorizontalHeaderView(QQuickItem *parent)
- : QQuickHeaderViewBase(Qt::Horizontal, parent)
-{
- setFlickableDirection(FlickableDirection::HorizontalFlick);
-}
-
-QQuickHorizontalHeaderView::~QQuickHorizontalHeaderView()
-{
-}
-
-QQuickVerticalHeaderView::QQuickVerticalHeaderView(QQuickItem *parent)
- : QQuickHeaderViewBase(Qt::Vertical, parent)
-{
- setFlickableDirection(FlickableDirection::VerticalFlick);
-}
-
-QQuickVerticalHeaderView::~QQuickVerticalHeaderView()
-{
-}
-
-QQuickHorizontalHeaderViewPrivate::QQuickHorizontalHeaderViewPrivate() = default;
-
-QQuickHorizontalHeaderViewPrivate::~QQuickHorizontalHeaderViewPrivate() = default;
-
-QQuickVerticalHeaderViewPrivate::QQuickVerticalHeaderViewPrivate() = default;
-
-QQuickVerticalHeaderViewPrivate::~QQuickVerticalHeaderViewPrivate() = default;
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickheaderview_p.h b/src/quicktemplates2/qquickheaderview_p.h
deleted file mode 100644
index b8e8b77a..00000000
--- a/src/quicktemplates2/qquickheaderview_p.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtQuick module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKHEADERVIEW_P_H
-#define QQUICKHEADERVIEW_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <private/qquicktableview_p.h>
-#include <private/qtquicktemplates2global_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickHeaderViewBase;
-class QQuickHeaderViewBasePrivate;
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickHeaderViewBase : public QQuickTableView
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QQuickHeaderViewBase)
- Q_PROPERTY(QString textRole READ textRole WRITE setTextRole NOTIFY textRoleChanged FINAL)
-
-public:
- explicit QQuickHeaderViewBase(Qt::Orientation orient, QQuickItem *parent = nullptr);
- ~QQuickHeaderViewBase();
-
- QString textRole() const;
- void setTextRole(const QString &role);
-
-protected:
- QQuickHeaderViewBase(QQuickHeaderViewBasePrivate &dd, QQuickItem *parent);
-
-Q_SIGNALS:
- void textRoleChanged();
-
-private:
- Q_DISABLE_COPY(QQuickHeaderViewBase)
- friend class QQuickHorizontalHeaderView;
- friend class QQuickVerticalHeaderView;
-};
-
-class QQuickHorizontalHeaderViewPrivate;
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickHorizontalHeaderView : public QQuickHeaderViewBase
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QQuickHorizontalHeaderView)
- QML_NAMED_ELEMENT(HorizontalHeaderView)
- QML_ADDED_IN_VERSION(2, 15)
-
-public:
- QQuickHorizontalHeaderView(QQuickItem *parent = nullptr);
- ~QQuickHorizontalHeaderView() override;
-
-protected:
- QQuickHorizontalHeaderView(QQuickHorizontalHeaderViewPrivate &dd, QQuickItem *parent);
-
-private:
- Q_DISABLE_COPY(QQuickHorizontalHeaderView)
-};
-
-class QQuickVerticalHeaderViewPrivate;
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickVerticalHeaderView : public QQuickHeaderViewBase
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QQuickVerticalHeaderView)
- QML_NAMED_ELEMENT(VerticalHeaderView)
- QML_ADDED_IN_VERSION(2, 15)
-
-public:
- QQuickVerticalHeaderView(QQuickItem *parent = nullptr);
- ~QQuickVerticalHeaderView() override;
-
-protected:
- QQuickVerticalHeaderView(QQuickVerticalHeaderViewPrivate &dd, QQuickItem *parent);
-
-private:
- Q_DISABLE_COPY(QQuickVerticalHeaderView)
-};
-
-struct QQuickTableViewForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickTableView)
- QML_ADDED_IN_VERSION(2, 14)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickHorizontalHeaderView)
-QML_DECLARE_TYPE(QQuickVerticalHeaderView)
-
-#endif // QQUICKHEADERVIEW_P_H
diff --git a/src/quicktemplates2/qquickheaderview_p_p.h b/src/quicktemplates2/qquickheaderview_p_p.h
deleted file mode 100644
index 655c2a58..00000000
--- a/src/quicktemplates2/qquickheaderview_p_p.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKHEADERVIEW_P_P_H
-#define QQUICKHEADERVIEW_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/QAbstractItemModel>
-#include <QtCore/QPointer>
-#include <QtCore/QTransposeProxyModel>
-#include <QtQuick/private/qquicktableview_p_p.h>
-#include <private/qquickheaderview_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QHeaderDataProxyModel : public QAbstractItemModel
-{
- Q_OBJECT
- Q_DISABLE_COPY(QHeaderDataProxyModel)
- Q_PROPERTY(QAbstractItemModel *sourceModel READ sourceModel)
-public:
- explicit QHeaderDataProxyModel(QObject *parent = nullptr);
- ~QHeaderDataProxyModel();
-
- void setSourceModel(QAbstractItemModel *newSourceModel);
- QPointer<QAbstractItemModel> sourceModel() const;
- QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override;
- QModelIndex parent(const QModelIndex &child) const override;
- QModelIndex sibling(int row, int column, const QModelIndex &idx) const override;
- int rowCount(const QModelIndex &parent = QModelIndex()) const override;
- int columnCount(const QModelIndex &parent = QModelIndex()) const override;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
- bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
- bool hasChildren(const QModelIndex &parent = QModelIndex()) const override;
-
- inline QVariant variantValue() const;
- inline Qt::Orientation orientation() const;
- inline void setOrientation(Qt::Orientation o);
-
-private:
- inline void connectToModel();
- inline void disconnectFromModel();
- QPointer<QAbstractItemModel> m_model = nullptr;
- Qt::Orientation m_orientation = Qt::Horizontal;
-};
-
-class QQuickHeaderViewBasePrivate : public QQuickTableViewPrivate
-{
- Q_DECLARE_PUBLIC(QQuickHeaderViewBase)
-public:
- QQuickHeaderViewBasePrivate();
- ~QQuickHeaderViewBasePrivate();
-
- Qt::Orientation orientation() const;
- void setOrientation(Qt::Orientation orientation);
- const QPointer<QQuickItem> delegateItemAt(int row, int col) const;
- QVariant modelImpl() const override;
- void setModelImpl(const QVariant &newModel) override;
- void syncModel() override;
- void syncSyncView() override;
-
-protected:
- QHeaderDataProxyModel m_headerDataProxyModel;
- QTransposeProxyModel m_transposeProxyModel;
- struct SectionSize
- {
- int section;
- qreal previousSize;
- };
- QStack<SectionSize> m_hiddenSectionSizes;
- bool m_modelExplicitlySetByUser = false;
- QString m_textRole;
-};
-
-class QQuickHorizontalHeaderViewPrivate : public QQuickHeaderViewBasePrivate
-{
- Q_DECLARE_PUBLIC(QQuickHorizontalHeaderView)
-public:
- QQuickHorizontalHeaderViewPrivate();
- ~QQuickHorizontalHeaderViewPrivate();
-};
-
-class QQuickVerticalHeaderViewPrivate : public QQuickHeaderViewBasePrivate
-{
- Q_DECLARE_PUBLIC(QQuickVerticalHeaderView)
-public:
- QQuickVerticalHeaderViewPrivate();
- ~QQuickVerticalHeaderViewPrivate();
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKHEADERVIEW_P_P_H
diff --git a/src/quicktemplates2/qquickicon.cpp b/src/quicktemplates2/qquickicon.cpp
deleted file mode 100644
index bf0a4658..00000000
--- a/src/quicktemplates2/qquickicon.cpp
+++ /dev/null
@@ -1,263 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickicon_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickIconPrivate : public QSharedData
-{
-public:
- QString name;
- QUrl source;
- int width = 0;
- int height = 0;
- QColor color = Qt::transparent;
- bool cache = true;
-
- enum ResolveProperties {
- NameResolved = 0x0001,
- SourceResolved = 0x0002,
- WidthResolved = 0x0004,
- HeightResolved = 0x0008,
- ColorResolved = 0x0010,
- CacheResolved = 0x0020,
- AllPropertiesResolved = 0x1ffff
- };
-
- // This is based on QFont's resolve_mask.
- int resolveMask = 0;
-};
-
-QQuickIcon::QQuickIcon()
- : d(new QQuickIconPrivate)
-{
-}
-
-QQuickIcon::QQuickIcon(const QQuickIcon &other)
- : d(other.d)
-{
-}
-
-QQuickIcon::~QQuickIcon()
-{
-}
-
-QQuickIcon &QQuickIcon::operator=(const QQuickIcon &other)
-{
- d = other.d;
- return *this;
-}
-
-bool QQuickIcon::operator==(const QQuickIcon &other) const
-{
- return d == other.d || (d->name == other.d->name
- && d->source == other.d->source
- && d->width == other.d->width
- && d->height == other.d->height
- && d->color == other.d->color
- && d->cache == other.d->cache);
-}
-
-bool QQuickIcon::operator!=(const QQuickIcon &other) const
-{
- return !(*this == other);
-}
-
-bool QQuickIcon::isEmpty() const
-{
- return d->name.isEmpty() && d->source.isEmpty();
-}
-
-QString QQuickIcon::name() const
-{
- return d->name;
-}
-
-void QQuickIcon::setName(const QString &name)
-{
- if ((d->resolveMask & QQuickIconPrivate::NameResolved) && d->name == name)
- return;
-
- d.detach();
- d->name = name;
- d->resolveMask |= QQuickIconPrivate::NameResolved;
-}
-
-void QQuickIcon::resetName()
-{
- d.detach();
- d->name = QString();
- d->resolveMask &= ~QQuickIconPrivate::NameResolved;
-}
-
-QUrl QQuickIcon::source() const
-{
- return d->source;
-}
-
-void QQuickIcon::setSource(const QUrl &source)
-{
- if ((d->resolveMask & QQuickIconPrivate::SourceResolved) && d->source == source)
- return;
-
- d.detach();
- d->source = source;
- d->resolveMask |= QQuickIconPrivate::SourceResolved;
-}
-
-void QQuickIcon::resetSource()
-{
- d.detach();
- d->source = QString();
- d->resolveMask &= ~QQuickIconPrivate::SourceResolved;
-}
-
-int QQuickIcon::width() const
-{
- return d->width;
-}
-
-void QQuickIcon::setWidth(int width)
-{
- if ((d->resolveMask & QQuickIconPrivate::WidthResolved) && d->width == width)
- return;
-
- d.detach();
- d->width = width;
- d->resolveMask |= QQuickIconPrivate::WidthResolved;
-}
-
-void QQuickIcon::resetWidth()
-{
- d.detach();
- d->width = 0;
- d->resolveMask &= ~QQuickIconPrivate::WidthResolved;
-}
-
-int QQuickIcon::height() const
-{
- return d->height;
-}
-
-void QQuickIcon::setHeight(int height)
-{
- if ((d->resolveMask & QQuickIconPrivate::HeightResolved) && d->height == height)
- return;
-
- d.detach();
- d->height = height;
- d->resolveMask |= QQuickIconPrivate::HeightResolved;
-}
-
-void QQuickIcon::resetHeight()
-{
- d.detach();
- d->height = 0;
- d->resolveMask &= ~QQuickIconPrivate::HeightResolved;
-}
-
-QColor QQuickIcon::color() const
-{
- return d->color;
-}
-
-void QQuickIcon::setColor(const QColor &color)
-{
- if ((d->resolveMask & QQuickIconPrivate::ColorResolved) && d->color == color)
- return;
-
- d.detach();
- d->color = color;
- d->resolveMask |= QQuickIconPrivate::ColorResolved;
-}
-
-void QQuickIcon::resetColor()
-{
- d.detach();
- d->color = Qt::transparent;
- d->resolveMask &= ~QQuickIconPrivate::ColorResolved;
-}
-
-bool QQuickIcon::cache() const
-{
- return d->cache;
-}
-
-void QQuickIcon::setCache(bool cache)
-{
- if ((d->resolveMask & QQuickIconPrivate::CacheResolved) && d->cache == cache)
- return;
-
- d.detach();
- d->cache = cache;
- d->resolveMask |= QQuickIconPrivate::CacheResolved;
-}
-
-void QQuickIcon::resetCache()
-{
- d.detach();
- d->cache = true;
- d->resolveMask &= ~QQuickIconPrivate::CacheResolved;
-}
-
-QQuickIcon QQuickIcon::resolve(const QQuickIcon &other) const
-{
- QQuickIcon resolved = *this;
- resolved.d.detach();
-
- if (!(d->resolveMask & QQuickIconPrivate::NameResolved))
- resolved.d->name = other.d->name;
-
- if (!(d->resolveMask & QQuickIconPrivate::SourceResolved))
- resolved.d->source = other.d->source;
-
- if (!(d->resolveMask & QQuickIconPrivate::WidthResolved))
- resolved.d->width = other.d->width;
-
- if (!(d->resolveMask & QQuickIconPrivate::HeightResolved))
- resolved.d->height = other.d->height;
-
- if (!(d->resolveMask & QQuickIconPrivate::ColorResolved))
- resolved.d->color = other.d->color;
-
- if (!(d->resolveMask & QQuickIconPrivate::CacheResolved))
- resolved.d->cache = other.d->cache;
-
- return resolved;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickicon_p.h b/src/quicktemplates2/qquickicon_p.h
deleted file mode 100644
index 0c0fe101..00000000
--- a/src/quicktemplates2/qquickicon_p.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKICON_P_H
-#define QQUICKICON_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qurl.h>
-#include <QtCore/qstring.h>
-#include <QtCore/qobjectdefs.h>
-#include <QtCore/qshareddata.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-#include <QtGui/qcolor.h>
-#include <QtQml/qqml.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickIconPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickIcon
-{
- Q_GADGET
- Q_PROPERTY(QString name READ name WRITE setName RESET resetName FINAL)
- Q_PROPERTY(QUrl source READ source WRITE setSource RESET resetSource FINAL)
- Q_PROPERTY(int width READ width WRITE setWidth RESET resetWidth FINAL)
- Q_PROPERTY(int height READ height WRITE setHeight RESET resetHeight FINAL)
- Q_PROPERTY(QColor color READ color WRITE setColor RESET resetColor FINAL)
- Q_PROPERTY(bool cache READ cache WRITE setCache RESET resetCache FINAL)
- QML_ANONYMOUS
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- QQuickIcon();
- QQuickIcon(const QQuickIcon &other);
- ~QQuickIcon();
-
- QQuickIcon& operator=(const QQuickIcon &other);
- bool operator==(const QQuickIcon &other) const;
- bool operator!=(const QQuickIcon &other) const;
-
- bool isEmpty() const;
-
- QString name() const;
- void setName(const QString &name);
- void resetName();
-
- QUrl source() const;
- void setSource(const QUrl &source);
- void resetSource();
-
- int width() const;
- void setWidth(int width);
- void resetWidth();
-
- int height() const;
- void setHeight(int height);
- void resetHeight();
-
- QColor color() const;
- void setColor(const QColor &color);
- void resetColor();
-
- bool cache() const;
- void setCache(bool cache);
- void resetCache();
-
- QQuickIcon resolve(const QQuickIcon &other) const;
-
-private:
- QExplicitlySharedDataPointer<QQuickIconPrivate> d;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKICON_P_H
diff --git a/src/quicktemplates2/qquickindicatorbutton_p.cpp b/src/quicktemplates2/qquickindicatorbutton_p.cpp
deleted file mode 100644
index c4130da0..00000000
--- a/src/quicktemplates2/qquickindicatorbutton_p.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "qquickindicatorbutton_p.h"
-#include "qquickdeferredexecute_p_p.h"
-#include "qquickcontrol_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickIndicatorButton;
-
-static inline QString indicatorName() { return QStringLiteral("indicator"); }
-
-void QQuickIndicatorButtonPrivate::cancelIndicator()
-{
- Q_Q(QQuickIndicatorButton);
- quickCancelDeferred(q, indicatorName());
-}
-
-void QQuickIndicatorButtonPrivate::executeIndicator(bool complete)
-{
- Q_Q(QQuickIndicatorButton);
- if (indicator.wasExecuted())
- return;
-
- if (!indicator || complete)
- quickBeginDeferred(q, indicatorName(), indicator);
- if (complete)
- quickCompleteDeferred(q, indicatorName(), indicator);
-}
-
-QQuickIndicatorButton::QQuickIndicatorButton(QObject *parent)
- : QObject(*(new QQuickIndicatorButtonPrivate), parent)
-{
-}
-
-bool QQuickIndicatorButton::isPressed() const
-{
- Q_D(const QQuickIndicatorButton);
- return d->pressed;
-}
-
-void QQuickIndicatorButton::setPressed(bool pressed)
-{
- Q_D(QQuickIndicatorButton);
- if (d->pressed == pressed)
- return;
-
- d->pressed = pressed;
- emit pressedChanged();
-}
-
-QQuickItem *QQuickIndicatorButton::indicator() const
-{
- QQuickIndicatorButtonPrivate *d = const_cast<QQuickIndicatorButtonPrivate *>(d_func());
- if (!d->indicator)
- d->executeIndicator();
- return d->indicator;
-}
-
-void QQuickIndicatorButton::setIndicator(QQuickItem *indicator)
-{
- Q_D(QQuickIndicatorButton);
- if (d->indicator == indicator)
- return;
-
- if (!d->indicator.isExecuting())
- d->cancelIndicator();
-
- const qreal oldImplicitIndicatorWidth = implicitIndicatorWidth();
- const qreal oldImplicitIndicatorHeight = implicitIndicatorHeight();
-
- QQuickControl *par = static_cast<QQuickControl *>(parent());
-
- QQuickControlPrivate::get(par)->removeImplicitSizeListener(d->indicator);
- QQuickControlPrivate::hideOldItem(d->indicator);
- d->indicator = indicator;
-
- if (indicator) {
- if (!indicator->parentItem())
- indicator->setParentItem(par);
- QQuickControlPrivate::get(par)->addImplicitSizeListener(indicator);
- }
-
- if (!qFuzzyCompare(oldImplicitIndicatorWidth, implicitIndicatorWidth()))
- emit implicitIndicatorWidthChanged();
- if (!qFuzzyCompare(oldImplicitIndicatorHeight, implicitIndicatorHeight()))
- emit implicitIndicatorHeightChanged();
- if (!d->indicator.isExecuting())
- emit indicatorChanged();
-}
-
-bool QQuickIndicatorButton::isHovered() const
-{
- Q_D(const QQuickIndicatorButton);
- return d->hovered;
-}
-
-void QQuickIndicatorButton::setHovered(bool hovered)
-{
- Q_D(QQuickIndicatorButton);
- if (d->hovered == hovered)
- return;
-
- d->hovered = hovered;
- emit hoveredChanged();
-}
-
-qreal QQuickIndicatorButton::implicitIndicatorWidth() const
-{
- Q_D(const QQuickIndicatorButton);
- if (!d->indicator)
- return 0;
- return d->indicator->implicitWidth();
-}
-
-qreal QQuickIndicatorButton::implicitIndicatorHeight() const
-{
- Q_D(const QQuickIndicatorButton);
- if (!d->indicator)
- return 0;
- return d->indicator->implicitHeight();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickindicatorbutton_p.h b/src/quicktemplates2/qquickindicatorbutton_p.h
deleted file mode 100644
index 44c5b0cf..00000000
--- a/src/quicktemplates2/qquickindicatorbutton_p.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef QQUICKINDICATORBUTTON_H
-#define QQUICKINDICATORBUTTON_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQml/qjsvalue.h>
-#include "qquickdeferredpointer_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickIndicatorButtonPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickIndicatorButton : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(bool pressed READ isPressed WRITE setPressed NOTIFY pressedChanged FINAL)
- Q_PROPERTY(QQuickItem *indicator READ indicator WRITE setIndicator NOTIFY indicatorChanged FINAL)
- // 2.1 (Qt 5.8)
- Q_PROPERTY(bool hovered READ isHovered WRITE setHovered NOTIFY hoveredChanged FINAL REVISION(2, 1))
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal implicitIndicatorWidth READ implicitIndicatorWidth NOTIFY implicitIndicatorWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitIndicatorHeight READ implicitIndicatorHeight NOTIFY implicitIndicatorHeightChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "indicator")
- QML_ANONYMOUS
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickIndicatorButton(QObject *parent);
-
- bool isPressed() const;
- void setPressed(bool pressed);
-
- QQuickItem *indicator() const;
- void setIndicator(QQuickItem *indicator);
-
- bool isHovered() const;
- void setHovered(bool hovered);
-
- qreal implicitIndicatorWidth() const;
- qreal implicitIndicatorHeight() const;
-
-Q_SIGNALS:
- void pressedChanged();
- void indicatorChanged();
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) void hoveredChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void implicitIndicatorWidthChanged();
- Q_REVISION(2, 5) void implicitIndicatorHeightChanged();
-
-private:
- Q_DISABLE_COPY(QQuickIndicatorButton)
- Q_DECLARE_PRIVATE(QQuickIndicatorButton)
-};
-
-class QQuickIndicatorButtonPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickIndicatorButton)
-
-public:
- static QQuickIndicatorButtonPrivate *get(QQuickIndicatorButton *button)
- {
- return button->d_func();
- }
-
- void cancelIndicator();
- void executeIndicator(bool complete = false);
-
- bool pressed = false;
- bool hovered = false;
- QQuickDeferredPointer<QQuickItem> indicator;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKINDICATORBUTTON_H
diff --git a/src/quicktemplates2/qquickitemdelegate.cpp b/src/quicktemplates2/qquickitemdelegate.cpp
deleted file mode 100644
index 4ab8b3f2..00000000
--- a/src/quicktemplates2/qquickitemdelegate.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickitemdelegate_p.h"
-#include "qquickitemdelegate_p_p.h"
-#include "qquickcontrol_p_p.h"
-
-#include <QtGui/qpa/qplatformtheme.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ItemDelegate
- \inherits AbstractButton
-//! \instantiates QQuickItemDelegate
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \brief Basic item delegate that can be used in various views and controls.
-
- \image qtquickcontrols2-itemdelegate.gif
-
- ItemDelegate presents a standard view item. It can be used as a delegate
- in various views and controls, such as \l ListView and \l ComboBox.
-
- ItemDelegate inherits its API from AbstractButton. For instance, you can set
- \l {AbstractButton::text}{text}, display an \l {Icons in Qt Quick Controls}{icon},
- and react to \l {AbstractButton::clicked}{clicks} using the AbstractButton API.
-
- \snippet qtquickcontrols2-itemdelegate.qml 1
-
- \sa {Customizing ItemDelegate}, {Delegate Controls}
-*/
-
-QQuickItemDelegate::QQuickItemDelegate(QQuickItem *parent)
- : QQuickAbstractButton(*(new QQuickItemDelegatePrivate), parent)
-{
- setFocusPolicy(Qt::NoFocus);
-}
-
-QQuickItemDelegate::QQuickItemDelegate(QQuickItemDelegatePrivate &dd, QQuickItem *parent)
- : QQuickAbstractButton(dd, parent)
-{
- setFocusPolicy(Qt::NoFocus);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::ItemDelegate::highlighted
-
- This property holds whether the delegate is highlighted.
-
- A delegate can be highlighted in order to draw the user's attention towards
- it. It has no effect on keyboard interaction. For example, you can
- highlight the current item in a ListView using the following code:
-
- \code
- ListView {
- id: listView
- model: 10
- delegate: ItemDelegate {
- text: modelData
- highlighted: ListView.isCurrentItem
- onClicked: listView.currentIndex = index
- }
- }
- \endcode
-
- The default value is \c false.
-*/
-bool QQuickItemDelegate::isHighlighted() const
-{
- Q_D(const QQuickItemDelegate);
- return d->highlighted;
-}
-
-void QQuickItemDelegate::setHighlighted(bool highlighted)
-{
- Q_D(QQuickItemDelegate);
- if (highlighted == d->highlighted)
- return;
-
- d->highlighted = highlighted;
- emit highlightedChanged();
-}
-
-QFont QQuickItemDelegate::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::ItemView);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickItemDelegate::accessibleRole() const
-{
- return QAccessible::ListItem;
-}
-#endif
-
-QPalette QQuickItemDelegatePrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::ItemView);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickitemdelegate_p.h b/src/quicktemplates2/qquickitemdelegate_p.h
deleted file mode 100644
index 2568a0bf..00000000
--- a/src/quicktemplates2/qquickitemdelegate_p.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKITEMDELEGATE_P_H
-#define QQUICKITEMDELEGATE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickItemDelegatePrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickItemDelegate : public QQuickAbstractButton
-{
- Q_OBJECT
- Q_PROPERTY(bool highlighted READ isHighlighted WRITE setHighlighted NOTIFY highlightedChanged FINAL)
- QML_NAMED_ELEMENT(ItemDelegate)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickItemDelegate(QQuickItem *parent = nullptr);
-
- bool isHighlighted() const;
- void setHighlighted(bool highlighted);
-
-Q_SIGNALS:
- void highlightedChanged();
-
-protected:
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-protected:
- QQuickItemDelegate(QQuickItemDelegatePrivate &dd, QQuickItem *parent);
-
-private:
- Q_DISABLE_COPY(QQuickItemDelegate)
- Q_DECLARE_PRIVATE(QQuickItemDelegate)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickItemDelegate)
-
-#endif // QQUICKITEMDELEGATE_P_H
diff --git a/src/quicktemplates2/qquickitemdelegate_p_p.h b/src/quicktemplates2/qquickitemdelegate_p_p.h
deleted file mode 100644
index d7604fbe..00000000
--- a/src/quicktemplates2/qquickitemdelegate_p_p.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKITEMDELEGATE_P_P_H
-#define QQUICKITEMDELEGATE_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickItemDelegatePrivate : public QQuickAbstractButtonPrivate
-{
- Q_DECLARE_PUBLIC(QQuickItemDelegate)
-
-public:
- QPalette defaultPalette() const override;
-
- bool highlighted = false;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKITEMDELEGATE_P_P_H
diff --git a/src/quicktemplates2/qquicklabel.cpp b/src/quicktemplates2/qquicklabel.cpp
deleted file mode 100644
index d5d9146a..00000000
--- a/src/quicktemplates2/qquicklabel.cpp
+++ /dev/null
@@ -1,592 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicklabel_p.h"
-#include "qquicklabel_p_p.h"
-#include "qquickcontrol_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qquicktext_p.h>
-
-#if QT_CONFIG(accessibility)
-#include <QtQuick/private/qquickaccessibleattached_p.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Label
- \inherits Text
-//! \instantiates QQuickLabel
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup text
- \brief Styled text label with inherited font.
-
- Label extends \l Text with styling and \l {Control::font}{font}
- inheritance. The default colors and font are style specific. Label
- can also have a visual \l background item.
-
- \image qtquickcontrols2-label.png
-
- \snippet qtquickcontrols2-label.qml 1
-
- You can use the properties of \l Text to change the appearance of the text as desired:
-
- \qml
- Label {
- text: "Hello world"
- font.pixelSize: 22
- font.italic: true
- }
- \endqml
-
- \sa {Customizing Label}
-*/
-
-QQuickLabelPrivate::QQuickLabelPrivate()
-{
-#if QT_CONFIG(accessibility)
- QAccessible::installActivationObserver(this);
-#endif
-}
-
-QQuickLabelPrivate::~QQuickLabelPrivate()
-{
-#if QT_CONFIG(accessibility)
- QAccessible::removeActivationObserver(this);
-#endif
-}
-
-void QQuickLabelPrivate::setTopInset(qreal value, bool reset)
-{
- Q_Q(QQuickLabel);
- const QMarginsF oldInset = getInset();
- extra.value().topInset = value;
- extra.value().hasTopInset = !reset;
- if (!qFuzzyCompare(oldInset.top(), value)) {
- emit q->topInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickLabelPrivate::setLeftInset(qreal value, bool reset)
-{
- Q_Q(QQuickLabel);
- const QMarginsF oldInset = getInset();
- extra.value().leftInset = value;
- extra.value().hasLeftInset = !reset;
- if (!qFuzzyCompare(oldInset.left(), value)) {
- emit q->leftInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickLabelPrivate::setRightInset(qreal value, bool reset)
-{
- Q_Q(QQuickLabel);
- const QMarginsF oldInset = getInset();
- extra.value().rightInset = value;
- extra.value().hasRightInset = !reset;
- if (!qFuzzyCompare(oldInset.right(), value)) {
- emit q->rightInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickLabelPrivate::setBottomInset(qreal value, bool reset)
-{
- Q_Q(QQuickLabel);
- const QMarginsF oldInset = getInset();
- extra.value().bottomInset = value;
- extra.value().hasBottomInset = !reset;
- if (!qFuzzyCompare(oldInset.bottom(), value)) {
- emit q->bottomInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickLabelPrivate::resizeBackground()
-{
- if (!background)
- return;
-
- resizingBackground = true;
-
- QQuickItemPrivate *p = QQuickItemPrivate::get(background);
- if (((!p->widthValid() || !extra.isAllocated() || !extra->hasBackgroundWidth) && qFuzzyIsNull(background->x()))
- || (extra.isAllocated() && (extra->hasLeftInset || extra->hasRightInset))) {
- background->setX(getLeftInset());
- background->setWidth(width - getLeftInset() - getRightInset());
- }
- if (((!p->heightValid() || !extra.isAllocated() || !extra->hasBackgroundHeight) && qFuzzyIsNull(background->y()))
- || (extra.isAllocated() && (extra->hasTopInset || extra->hasBottomInset))) {
- background->setY(getTopInset());
- background->setHeight(height - getTopInset() - getBottomInset());
- }
-
- resizingBackground = false;
-}
-
-/*!
- \internal
-
- Determine which font is implicitly imposed on this control by its ancestors
- and QGuiApplication::font, resolve this against its own font (attributes from
- the implicit font are copied over). Then propagate this font to this
- control's children.
-*/
-void QQuickLabelPrivate::resolveFont()
-{
- Q_Q(QQuickLabel);
- inheritFont(QQuickControlPrivate::parentFont(q));
-}
-
-void QQuickLabelPrivate::inheritFont(const QFont &font)
-{
- QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
- parentFont.setResolveMask(extra.isAllocated() ? extra->requestedFont.resolveMask() | font.resolveMask() : font.resolveMask());
-
- const QFont defaultFont = QQuickTheme::font(QQuickTheme::Label);
- QFont resolvedFont = parentFont.resolve(defaultFont);
-
- setFont_helper(resolvedFont);
-}
-
-/*!
- \internal
-
- Assign \a font to this control, and propagate it to all children.
-*/
-void QQuickLabelPrivate::updateFont(const QFont &font)
-{
- Q_Q(QQuickLabel);
- QFont oldFont = sourceFont;
- q->QQuickText::setFont(font);
-
- QQuickControlPrivate::updateFontRecur(q, font);
-
- if (oldFont != font)
- emit q->fontChanged();
-}
-
-void QQuickLabelPrivate::textChanged(const QString &text)
-{
-#if QT_CONFIG(accessibility)
- maybeSetAccessibleName(text);
-#else
- Q_UNUSED(text);
-#endif
-}
-
-#if QT_CONFIG(accessibility)
-void QQuickLabelPrivate::accessibilityActiveChanged(bool active)
-{
- if (!active)
- return;
-
- Q_Q(QQuickLabel);
- QQuickAccessibleAttached *accessibleAttached = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(q, true));
- Q_ASSERT(accessibleAttached);
- accessibleAttached->setRole(accessibleRole());
- maybeSetAccessibleName(text);
-}
-
-QAccessible::Role QQuickLabelPrivate::accessibleRole() const
-{
- return QAccessible::StaticText;
-}
-
-void QQuickLabelPrivate::maybeSetAccessibleName(const QString &name)
-{
- Q_Q(QQuickLabel);
- auto accessibleAttached = qobject_cast<QQuickAccessibleAttached *>(
- qmlAttachedPropertiesObject<QQuickAccessibleAttached>(q, true));
- if (accessibleAttached) {
- if (!accessibleAttached->wasNameExplicitlySet())
- accessibleAttached->setNameImplicitly(name);
- }
-}
-#endif
-
-static inline QString backgroundName() { return QStringLiteral("background"); }
-
-void QQuickLabelPrivate::cancelBackground()
-{
- Q_Q(QQuickLabel);
- quickCancelDeferred(q, backgroundName());
-}
-
-void QQuickLabelPrivate::executeBackground(bool complete)
-{
- Q_Q(QQuickLabel);
- if (background.wasExecuted())
- return;
-
- if (!background || complete)
- quickBeginDeferred(q, backgroundName(), background);
- if (complete)
- quickCompleteDeferred(q, backgroundName(), background);
-}
-
-void QQuickLabelPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff)
-{
- Q_UNUSED(diff);
- if (resizingBackground || item != background || !change.sizeChange())
- return;
-
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- extra.value().hasBackgroundWidth = p->widthValid();
- extra.value().hasBackgroundHeight = p->heightValid();
- resizeBackground();
-}
-
-void QQuickLabelPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_Q(QQuickLabel);
- if (item == background)
- emit q->implicitBackgroundWidthChanged();
-}
-
-void QQuickLabelPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_Q(QQuickLabel);
- if (item == background)
- emit q->implicitBackgroundHeightChanged();
-}
-
-void QQuickLabelPrivate::itemDestroyed(QQuickItem *item)
-{
- Q_Q(QQuickLabel);
- if (item == background) {
- background = nullptr;
- emit q->implicitBackgroundWidthChanged();
- emit q->implicitBackgroundHeightChanged();
- }
-}
-
-QPalette QQuickLabelPrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::Label);
-}
-
-QQuickLabel::QQuickLabel(QQuickItem *parent)
- : QQuickText(*(new QQuickLabelPrivate), parent)
-{
- Q_D(QQuickLabel);
- QObjectPrivate::connect(this, &QQuickText::textChanged, d, &QQuickLabelPrivate::textChanged);
-}
-
-QQuickLabel::~QQuickLabel()
-{
- Q_D(QQuickLabel);
- QQuickControlPrivate::removeImplicitSizeListener(d->background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
-}
-
-QFont QQuickLabel::font() const
-{
- return QQuickText::font();
-}
-
-void QQuickLabel::setFont(const QFont &font)
-{
- Q_D(QQuickLabel);
- if (d->extra.value().requestedFont.resolveMask() == font.resolveMask() && d->extra.value().requestedFont == font)
- return;
-
- d->extra.value().requestedFont = font;
- d->resolveFont();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Label::background
-
- This property holds the background item.
-
- \note If the background item has no explicit size specified, it automatically
- follows the control's size. In most cases, there is no need to specify
- width or height for a background item.
-
- \sa {Customizing Label}
-*/
-QQuickItem *QQuickLabel::background() const
-{
- QQuickLabelPrivate *d = const_cast<QQuickLabelPrivate *>(d_func());
- if (!d->background)
- d->executeBackground();
- return d->background;
-}
-
-void QQuickLabel::setBackground(QQuickItem *background)
-{
- Q_D(QQuickLabel);
- if (d->background == background)
- return;
-
- if (!d->background.isExecuting())
- d->cancelBackground();
-
- const qreal oldImplicitBackgroundWidth = implicitBackgroundWidth();
- const qreal oldImplicitBackgroundHeight = implicitBackgroundHeight();
-
- if (d->extra.isAllocated()) {
- d->extra.value().hasBackgroundWidth = false;
- d->extra.value().hasBackgroundHeight = false;
- }
-
- QQuickControlPrivate::removeImplicitSizeListener(d->background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
- QQuickControlPrivate::hideOldItem(d->background);
- d->background = background;
-
- if (background) {
- background->setParentItem(this);
- if (qFuzzyIsNull(background->z()))
- background->setZ(-1);
- QQuickItemPrivate *p = QQuickItemPrivate::get(background);
- if (p->widthValid() || p->heightValid()) {
- d->extra.value().hasBackgroundWidth = p->widthValid();
- d->extra.value().hasBackgroundHeight = p->heightValid();
- }
- if (isComponentComplete())
- d->resizeBackground();
- QQuickControlPrivate::addImplicitSizeListener(background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
- }
-
- if (!qFuzzyCompare(oldImplicitBackgroundWidth, implicitBackgroundWidth()))
- emit implicitBackgroundWidthChanged();
- if (!qFuzzyCompare(oldImplicitBackgroundHeight, implicitBackgroundHeight()))
- emit implicitBackgroundHeightChanged();
- if (!d->background.isExecuting())
- emit backgroundChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Label::implicitBackgroundWidth
- \readonly
-
- This property holds the implicit background width.
-
- The value is equal to \c {background ? background.implicitWidth : 0}.
-
- \sa implicitBackgroundHeight
-*/
-qreal QQuickLabel::implicitBackgroundWidth() const
-{
- Q_D(const QQuickLabel);
- if (!d->background)
- return 0;
- return d->background->implicitWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Label::implicitBackgroundHeight
- \readonly
-
- This property holds the implicit background height.
-
- The value is equal to \c {background ? background.implicitHeight : 0}.
-
- \sa implicitBackgroundWidth
-*/
-qreal QQuickLabel::implicitBackgroundHeight() const
-{
- Q_D(const QQuickLabel);
- if (!d->background)
- return 0;
- return d->background->implicitHeight();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Label::topInset
-
- This property holds the top inset for the background.
-
- \sa {Control Layout}, bottomInset
-*/
-qreal QQuickLabel::topInset() const
-{
- Q_D(const QQuickLabel);
- return d->getTopInset();
-}
-
-void QQuickLabel::setTopInset(qreal inset)
-{
- Q_D(QQuickLabel);
- d->setTopInset(inset);
-}
-
-void QQuickLabel::resetTopInset()
-{
- Q_D(QQuickLabel);
- d->setTopInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Label::leftInset
-
- This property holds the left inset for the background.
-
- \sa {Control Layout}, rightInset
-*/
-qreal QQuickLabel::leftInset() const
-{
- Q_D(const QQuickLabel);
- return d->getLeftInset();
-}
-
-void QQuickLabel::setLeftInset(qreal inset)
-{
- Q_D(QQuickLabel);
- d->setLeftInset(inset);
-}
-
-void QQuickLabel::resetLeftInset()
-{
- Q_D(QQuickLabel);
- d->setLeftInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Label::rightInset
-
- This property holds the right inset for the background.
-
- \sa {Control Layout}, leftInset
-*/
-qreal QQuickLabel::rightInset() const
-{
- Q_D(const QQuickLabel);
- return d->getRightInset();
-}
-
-void QQuickLabel::setRightInset(qreal inset)
-{
- Q_D(QQuickLabel);
- d->setRightInset(inset);
-}
-
-void QQuickLabel::resetRightInset()
-{
- Q_D(QQuickLabel);
- d->setRightInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Label::bottomInset
-
- This property holds the bottom inset for the background.
-
- \sa {Control Layout}, topInset
-*/
-qreal QQuickLabel::bottomInset() const
-{
- Q_D(const QQuickLabel);
- return d->getBottomInset();
-}
-
-void QQuickLabel::setBottomInset(qreal inset)
-{
- Q_D(QQuickLabel);
- d->setBottomInset(inset);
-}
-
-void QQuickLabel::resetBottomInset()
-{
- Q_D(QQuickLabel);
- d->setBottomInset(0, true);
-}
-
-void QQuickLabel::classBegin()
-{
- Q_D(QQuickLabel);
- QQuickText::classBegin();
- d->resolveFont();
-}
-
-void QQuickLabel::componentComplete()
-{
- Q_D(QQuickLabel);
- d->executeBackground(true);
- QQuickText::componentComplete();
- d->resizeBackground();
-#if QT_CONFIG(accessibility)
- if (QAccessible::isActive())
- d->accessibilityActiveChanged(true);
-#endif
-}
-
-void QQuickLabel::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value)
-{
- Q_D(QQuickLabel);
- QQuickText::itemChange(change, value);
- switch (change) {
- case ItemEnabledHasChanged:
- break;
- case ItemSceneChange:
- case ItemParentHasChanged:
- if ((change == ItemParentHasChanged && value.item) || (change == ItemSceneChange && value.window)) {
- d->resolveFont();
- }
- break;
- default:
- break;
- }
-}
-
-void QQuickLabel::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickLabel);
- QQuickText::geometryChange(newGeometry, oldGeometry);
- d->resizeBackground();
-}
-
-void QQuickLabel::insetChange(const QMarginsF &newInset, const QMarginsF &oldInset)
-{
- Q_D(QQuickLabel);
- Q_UNUSED(newInset);
- Q_UNUSED(oldInset);
- d->resizeBackground();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicklabel_p.h b/src/quicktemplates2/qquicklabel_p.h
deleted file mode 100644
index 6ef60be9..00000000
--- a/src/quicktemplates2/qquicklabel_p.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKLABEL_P_H
-#define QQUICKLABEL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpalette.h>
-#include <QtQuick/private/qquicktext_p.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickLabelPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickLabel : public QQuickText
-{
- Q_OBJECT
- Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged) // override
- Q_PROPERTY(QQuickItem *background READ background WRITE setBackground NOTIFY backgroundChanged FINAL)
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal implicitBackgroundWidth READ implicitBackgroundWidth NOTIFY implicitBackgroundWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitBackgroundHeight READ implicitBackgroundHeight NOTIFY implicitBackgroundHeightChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal topInset READ topInset WRITE setTopInset RESET resetTopInset NOTIFY topInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal leftInset READ leftInset WRITE setLeftInset RESET resetLeftInset NOTIFY leftInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal rightInset READ rightInset WRITE setRightInset RESET resetRightInset NOTIFY rightInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal bottomInset READ bottomInset WRITE setBottomInset RESET resetBottomInset NOTIFY bottomInsetChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "background")
- QML_NAMED_ELEMENT(Label)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickLabel(QQuickItem *parent = nullptr);
- ~QQuickLabel();
-
- QFont font() const;
- void setFont(const QFont &font);
-
- QQuickItem *background() const;
- void setBackground(QQuickItem *background);
-
- // 2.5 (Qt 5.12)
- qreal implicitBackgroundWidth() const;
- qreal implicitBackgroundHeight() const;
-
- qreal topInset() const;
- void setTopInset(qreal inset);
- void resetTopInset();
-
- qreal leftInset() const;
- void setLeftInset(qreal inset);
- void resetLeftInset();
-
- qreal rightInset() const;
- void setRightInset(qreal inset);
- void resetRightInset();
-
- qreal bottomInset() const;
- void setBottomInset(qreal inset);
- void resetBottomInset();
-
-Q_SIGNALS:
- void fontChanged();
- void backgroundChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void implicitBackgroundWidthChanged();
- Q_REVISION(2, 5) void implicitBackgroundHeightChanged();
- Q_REVISION(2, 5) void topInsetChanged();
- Q_REVISION(2, 5) void leftInsetChanged();
- Q_REVISION(2, 5) void rightInsetChanged();
- Q_REVISION(2, 5) void bottomInsetChanged();
-
-protected:
- void classBegin() override;
- void componentComplete() override;
-
- void itemChange(ItemChange change, const ItemChangeData &value) override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- virtual void insetChange(const QMarginsF &newInset, const QMarginsF &oldInset);
-
-private:
- Q_DISABLE_COPY(QQuickLabel)
- Q_DECLARE_PRIVATE(QQuickLabel)
-};
-
-struct QQuickTemplatesTextForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickText)
- QML_ADDED_IN_VERSION(2, 3)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickLabel)
-
-#endif // QQUICKLABEL_P_H
diff --git a/src/quicktemplates2/qquicklabel_p_p.h b/src/quicktemplates2/qquicklabel_p_p.h
deleted file mode 100644
index a9bda671..00000000
--- a/src/quicktemplates2/qquicklabel_p_p.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKLABEL_P_P_H
-#define QQUICKLABEL_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQml/private/qlazilyallocated_p.h>
-#include <QtQuick/private/qquicktext_p_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-#include <QtQuickTemplates2/private/qquickdeferredpointer_p_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-#if QT_CONFIG(accessibility)
-#include <QtGui/qaccessible.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-class QQuickLabelPrivate : public QQuickTextPrivate, public QQuickItemChangeListener
-#if QT_CONFIG(accessibility)
- , public QAccessible::ActivationObserver
-#endif
-{
- Q_DECLARE_PUBLIC(QQuickLabel)
-
-public:
- QQuickLabelPrivate();
- ~QQuickLabelPrivate();
-
- static QQuickLabelPrivate *get(QQuickLabel *item)
- {
- return static_cast<QQuickLabelPrivate *>(QObjectPrivate::get(item));
- }
-
- inline QMarginsF getInset() const { return QMarginsF(getLeftInset(), getTopInset(), getRightInset(), getBottomInset()); }
- inline qreal getTopInset() const { return extra.isAllocated() ? extra->topInset : 0; }
- inline qreal getLeftInset() const { return extra.isAllocated() ? extra->leftInset : 0; }
- inline qreal getRightInset() const { return extra.isAllocated() ? extra->rightInset : 0; }
- inline qreal getBottomInset() const { return extra.isAllocated() ? extra->bottomInset : 0; }
-
- void setTopInset(qreal value, bool reset = false);
- void setLeftInset(qreal value, bool reset = false);
- void setRightInset(qreal value, bool reset = false);
- void setBottomInset(qreal value, bool reset = false);
-
- void resizeBackground();
-
- void resolveFont();
- void inheritFont(const QFont &font);
- void updateFont(const QFont &font);
- inline void setFont_helper(const QFont &font) {
- if (sourceFont.resolveMask() == font.resolveMask() && sourceFont == font)
- return;
- updateFont(font);
- }
-
- void textChanged(const QString &text);
-
-#if QT_CONFIG(accessibility)
- void accessibilityActiveChanged(bool active) override;
- QAccessible::Role accessibleRole() const override;
- void maybeSetAccessibleName(const QString &name);
-#endif
-
- void cancelBackground();
- void executeBackground(bool complete = false);
-
- void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override;
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
- void itemDestroyed(QQuickItem *item) override;
-
- QPalette defaultPalette() const override;
-
- struct ExtraData {
- bool hasTopInset = false;
- bool hasLeftInset = false;
- bool hasRightInset = false;
- bool hasBottomInset = false;
- bool hasBackgroundWidth = false;
- bool hasBackgroundHeight = false;
- qreal topInset = 0;
- qreal leftInset = 0;
- qreal rightInset = 0;
- qreal bottomInset = 0;
- QFont requestedFont;
- };
- QLazilyAllocated<ExtraData> extra;
-
- bool resizingBackground = false;
- QPalette resolvedPalette;
- QQuickDeferredPointer<QQuickItem> background;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKLABEL_P_P_H
diff --git a/src/quicktemplates2/qquickmenu.cpp b/src/quicktemplates2/qquickmenu.cpp
deleted file mode 100644
index 887f802c..00000000
--- a/src/quicktemplates2/qquickmenu.cpp
+++ /dev/null
@@ -1,1534 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmenu_p.h"
-#include "qquickmenu_p_p.h"
-#include "qquickmenuitem_p_p.h"
-#include "qquickmenubaritem_p.h"
-#include "qquickmenubar_p.h"
-#include "qquickpopupitem_p_p.h"
-#include "qquickpopuppositioner_p_p.h"
-#include "qquickaction_p.h"
-
-#include <QtGui/qevent.h>
-#include <QtGui/qcursor.h>
-#if QT_CONFIG(shortcut)
-#include <QtGui/qkeysequence.h>
-#endif
-#include <QtGui/qpa/qplatformintegration.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtQml/qqmlcontext.h>
-#include <QtQml/qqmlcomponent.h>
-#include <QtQml/private/qqmlengine_p.h>
-#include <QtQml/private/qv4scopedvalue_p.h>
-#include <QtQml/private/qv4variantobject_p.h>
-#include <QtQml/private/qv4qobjectwrapper_p.h>
-#include <private/qqmlobjectmodel_p.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-#include <QtQuick/private/qquickitemview_p.h>
-#include <QtQuick/private/qquickevents_p_p.h>
-#include <QtQuick/private/qquickwindow_p.h>
-
-QT_BEGIN_NAMESPACE
-
-// copied from qfusionstyle.cpp
-static const int SUBMENU_DELAY = 225;
-
-/*!
- \qmltype Menu
- \inherits Popup
-//! \instantiates QQuickMenu
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-menus
- \ingroup qtquickcontrols2-popups
- \brief Menu popup that can be used as a context menu or popup menu.
-
- \image qtquickcontrols2-menu.png
-
- Menu has two main use cases:
- \list
- \li Context menus; for example, a menu that is shown after right clicking
- \li Popup menus; for example, a menu that is shown after clicking a button
- \endlist
-
- When used as a context menu, the recommended way of opening the menu is to call
- \l popup(). Unless a position is explicitly specified, the menu is positioned at
- the mouse cursor on desktop platforms that have a mouse cursor available, and
- otherwise centered over its parent item.
-
- \code
- MouseArea {
- anchors.fill: parent
- acceptedButtons: Qt.LeftButton | Qt.RightButton
- onClicked: {
- if (mouse.button === Qt.RightButton)
- contextMenu.popup()
- }
- onPressAndHold: {
- if (mouse.source === Qt.MouseEventNotSynthesized)
- contextMenu.popup()
- }
-
- Menu {
- id: contextMenu
- MenuItem { text: "Cut" }
- MenuItem { text: "Copy" }
- MenuItem { text: "Paste" }
- }
- }
- \endcode
-
- When used as a popup menu, it is easiest to specify the position by specifying
- the desired \l {Popup::}{x} and \l {Popup::}{y} coordinates using the respective
- properties, and call \l {Popup::}{open()} to open the menu.
-
- \code
- Button {
- id: fileButton
- text: "File"
- onClicked: menu.open()
-
- Menu {
- id: menu
- y: fileButton.height
-
- MenuItem {
- text: "New..."
- }
- MenuItem {
- text: "Open..."
- }
- MenuItem {
- text: "Save"
- }
- }
- }
- \endcode
-
- Since QtQuick.Controls 2.3 (Qt 5.10), it is also possible to create sub-menus
- and declare Action objects inside Menu:
-
- \code
- Menu {
- Action { text: "Cut" }
- Action { text: "Copy" }
- Action { text: "Paste" }
-
- MenuSeparator { }
-
- Menu {
- title: "Find/Replace"
- Action { text: "Find Next" }
- Action { text: "Find Previous" }
- Action { text: "Replace" }
- }
- }
- \endcode
-
- Sub-menus are \l {cascade}{cascading} by default on desktop platforms
- that have a mouse cursor available. Non-cascading menus are shown one
- menu at a time, and centered over the parent menu.
-
- Typically, menu items are statically declared as children of the menu, but
- Menu also provides API to \l {addItem}{add}, \l {insertItem}{insert},
- \l {moveItem}{move} and \l {removeItem}{remove} items dynamically. The
- items in a menu can be accessed using \l itemAt() or
- \l {Popup::}{contentChildren}.
-
- Although \l {MenuItem}{MenuItems} are most commonly used with Menu, it can
- contain any type of item.
-
- \section1 Margins
-
- As it is inherited from Popup, Menu supports \l {Popup::}{margins}. By
- default, all of the built-in styles specify \c 0 for Menu's margins to
- ensure that the menu is kept within the bounds of the window. To allow a
- menu to go outside of the window (to animate it moving into view, for
- example), set the margins property to \c -1.
-
- \sa {Customizing Menu}, MenuItem, {Menu Controls}, {Popup Controls}
-*/
-
-/*!
- \qmlproperty bool QtQuick.Controls::Menu::focus
-
- This property holds whether the popup wants focus.
-
- When the popup actually receives focus, \l{Popup::}{activeFocus}
- will be \c true. For more information, see
- \l {Keyboard Focus in Qt Quick}.
-
- The default value is \c false.
-
- \sa {Popup::}{activeFocus}
-*/
-
-static const QQuickPopup::ClosePolicy cascadingSubMenuClosePolicy = QQuickPopup::CloseOnEscape | QQuickPopup::CloseOnPressOutsideParent;
-
-static bool shouldCascade()
-{
-#if QT_CONFIG(cursor)
- return QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::MultipleWindows);
-#else
- return false;
-#endif
-}
-
-class QQuickMenuPositioner : public QQuickPopupPositioner
-{
-public:
- QQuickMenuPositioner(QQuickMenu *menu) : QQuickPopupPositioner(menu) { }
-
- void reposition() override;
-};
-
-QQuickMenuPrivate::QQuickMenuPrivate()
-{
- cascade = shouldCascade();
-}
-
-void QQuickMenuPrivate::init()
-{
- Q_Q(QQuickMenu);
- QQuickPopupPrivate::init();
- contentModel = new QQmlObjectModel(q);
-}
-
-QQuickItem *QQuickMenuPrivate::itemAt(int index) const
-{
- return qobject_cast<QQuickItem *>(contentModel->get(index));
-}
-
-void QQuickMenuPrivate::insertItem(int index, QQuickItem *item)
-{
- contentData.append(item);
- item->setParentItem(contentItem);
- if (qobject_cast<QQuickItemView *>(contentItem))
- QQuickItemPrivate::get(item)->setCulled(true); // QTBUG-53262
- if (complete)
- resizeItem(item);
- QQuickItemPrivate::get(item)->addItemChangeListener(this, QQuickItemPrivate::Destroyed | QQuickItemPrivate::Parent);
- QQuickItemPrivate::get(item)->updateOrAddGeometryChangeListener(this, QQuickGeometryChange::Width);
- contentModel->insert(index, item);
-
- QQuickMenuItem *menuItem = qobject_cast<QQuickMenuItem *>(item);
- if (menuItem) {
- Q_Q(QQuickMenu);
- QQuickMenuItemPrivate::get(menuItem)->setMenu(q);
- if (QQuickMenu *subMenu = menuItem->subMenu())
- QQuickMenuPrivate::get(subMenu)->setParentMenu(q);
- QObjectPrivate::connect(menuItem, &QQuickMenuItem::triggered, this, &QQuickMenuPrivate::onItemTriggered);
- QObjectPrivate::connect(menuItem, &QQuickItem::activeFocusChanged, this, &QQuickMenuPrivate::onItemActiveFocusChanged);
- QObjectPrivate::connect(menuItem, &QQuickControl::hoveredChanged, this, &QQuickMenuPrivate::onItemHovered);
- }
-}
-
-void QQuickMenuPrivate::moveItem(int from, int to)
-{
- contentModel->move(from, to);
-}
-
-void QQuickMenuPrivate::removeItem(int index, QQuickItem *item)
-{
- contentData.removeOne(item);
-
- QQuickItemPrivate::get(item)->removeItemChangeListener(this, QQuickItemPrivate::Destroyed | QQuickItemPrivate::Parent);
- QQuickItemPrivate::get(item)->removeItemChangeListener(this, QQuickItemPrivate::Geometry);
- item->setParentItem(nullptr);
- contentModel->remove(index);
-
- QQuickMenuItem *menuItem = qobject_cast<QQuickMenuItem *>(item);
- if (menuItem) {
- QQuickMenuItemPrivate::get(menuItem)->setMenu(nullptr);
- if (QQuickMenu *subMenu = menuItem->subMenu())
- QQuickMenuPrivate::get(subMenu)->setParentMenu(nullptr);
- QObjectPrivate::disconnect(menuItem, &QQuickMenuItem::triggered, this, &QQuickMenuPrivate::onItemTriggered);
- QObjectPrivate::disconnect(menuItem, &QQuickItem::activeFocusChanged, this, &QQuickMenuPrivate::onItemActiveFocusChanged);
- QObjectPrivate::disconnect(menuItem, &QQuickControl::hoveredChanged, this, &QQuickMenuPrivate::onItemHovered);
- }
-}
-
-QQuickItem *QQuickMenuPrivate::beginCreateItem()
-{
- Q_Q(QQuickMenu);
- if (!delegate)
- return nullptr;
-
- QQmlContext *creationContext = delegate->creationContext();
- if (!creationContext)
- creationContext = qmlContext(q);
- QQmlContext *context = new QQmlContext(creationContext, q);
- context->setContextObject(q);
-
- QObject *object = delegate->beginCreate(context);
- QQuickItem *item = qobject_cast<QQuickItem *>(object);
- if (!item)
- delete object;
- else
- QQml_setParent_noEvent(item, q);
-
- return item;
-}
-
-void QQuickMenuPrivate::completeCreateItem()
-{
- if (!delegate)
- return;
-
- delegate->completeCreate();
-}
-
-QQuickItem *QQuickMenuPrivate::createItem(QQuickMenu *menu)
-{
- QQuickItem *item = beginCreateItem();
- if (QQuickMenuItem *menuItem = qobject_cast<QQuickMenuItem *>(item))
- QQuickMenuItemPrivate::get(menuItem)->setSubMenu(menu);
- completeCreateItem();
- return item;
-}
-
-QQuickItem *QQuickMenuPrivate::createItem(QQuickAction *action)
-{
- QQuickItem *item = beginCreateItem();
- if (QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(item))
- button->setAction(action);
- completeCreateItem();
- return item;
-}
-
-void QQuickMenuPrivate::resizeItem(QQuickItem *item)
-{
- if (!item || !contentItem)
- return;
-
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- if (!p->widthValid()) {
- item->setWidth(contentItem->width());
- p->widthValidFlag = false;
- }
-}
-
-void QQuickMenuPrivate::resizeItems()
-{
- if (!contentModel)
- return;
-
- for (int i = 0; i < contentModel->count(); ++i)
- resizeItem(itemAt(i));
-}
-
-void QQuickMenuPrivate::itemChildAdded(QQuickItem *, QQuickItem *child)
-{
- // add dynamically reparented items (eg. by a Repeater)
- if (!QQuickItemPrivate::get(child)->isTransparentForPositioner() && !contentData.contains(child))
- insertItem(contentModel->count(), child);
-}
-
-void QQuickMenuPrivate::itemParentChanged(QQuickItem *item, QQuickItem *parent)
-{
- // remove dynamically unparented items (eg. by a Repeater)
- if (!parent)
- removeItem(contentModel->indexOf(item, nullptr), item);
-}
-
-void QQuickMenuPrivate::itemSiblingOrderChanged(QQuickItem *)
-{
- // reorder the restacked items (eg. by a Repeater)
- Q_Q(QQuickMenu);
- QList<QQuickItem *> siblings = contentItem->childItems();
-
- int to = 0;
- for (int i = 0; i < siblings.count(); ++i) {
- QQuickItem* sibling = siblings.at(i);
- if (QQuickItemPrivate::get(sibling)->isTransparentForPositioner())
- continue;
- int index = contentModel->indexOf(sibling, nullptr);
- q->moveItem(index, to++);
- }
-}
-
-void QQuickMenuPrivate::itemDestroyed(QQuickItem *item)
-{
- QQuickPopupPrivate::itemDestroyed(item);
- int index = contentModel->indexOf(item, nullptr);
- if (index != -1)
- removeItem(index, item);
-}
-
-void QQuickMenuPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange, const QRectF &)
-{
- if (!complete)
- return;
-
- if (item == contentItem) {
- // The contentItem's geometry changed, so resize any items
- // that don't have explicit widths set so that they fill the width of the menu.
- resizeItems();
- } else {
- // The geometry of an item in the menu changed. If the item
- // doesn't have an explicit width set, make it fill the width of the menu.
- resizeItem(item);
- }
-}
-
-QQuickPopupPositioner *QQuickMenuPrivate::getPositioner()
-{
- Q_Q(QQuickMenu);
- if (!positioner)
- positioner = new QQuickMenuPositioner(q);
- return positioner;
-}
-
-void QQuickMenuPositioner::reposition()
-{
- QQuickMenu *menu = static_cast<QQuickMenu *>(popup());
- QQuickMenuPrivate *p = QQuickMenuPrivate::get(menu);
- if (p->parentMenu) {
- if (p->cascade) {
- if (p->popupItem->isMirrored())
- menu->setPosition(QPointF(-menu->width() - p->parentMenu->leftPadding() + menu->overlap(), -menu->topPadding()));
- else if (p->parentItem)
- menu->setPosition(QPointF(p->parentItem->width() + p->parentMenu->rightPadding() - menu->overlap(), -menu->topPadding()));
- } else {
- menu->setPosition(QPointF(p->parentMenu->x() + (p->parentMenu->width() - menu->width()) / 2,
- p->parentMenu->y() + (p->parentMenu->height() - menu->height()) / 2));
- }
- }
- QQuickPopupPositioner::reposition();
-}
-
-bool QQuickMenuPrivate::prepareEnterTransition()
-{
- Q_Q(QQuickMenu);
- if (parentMenu && !cascade)
- parentMenu->close();
-
- // If a cascading sub-menu doesn't have enough space to open on
- // the right, it flips on the other side of the parent menu.
- allowHorizontalFlip = cascade && parentMenu;
-
- if (!QQuickPopupPrivate::prepareEnterTransition())
- return false;
-
- if (!hasClosePolicy) {
- if (cascade && parentMenu)
- closePolicy = cascadingSubMenuClosePolicy;
- else
- q->resetClosePolicy();
- }
- return true;
-}
-
-bool QQuickMenuPrivate::prepareExitTransition()
-{
- if (!QQuickPopupPrivate::prepareExitTransition())
- return false;
-
- stopHoverTimer();
-
- QQuickMenu *subMenu = currentSubMenu();
- while (subMenu) {
- QPointer<QQuickMenuItem> currentSubMenuItem = QQuickMenuPrivate::get(subMenu)->currentItem;
- subMenu->close();
- subMenu = currentSubMenuItem ? currentSubMenuItem->subMenu() : nullptr;
- }
- return true;
-}
-
-bool QQuickMenuPrivate::blockInput(QQuickItem *item, const QPointF &point) const
-{
- // keep the parent menu open when a cascading sub-menu (this menu) is interacted with
- return (cascade && parentMenu && contains(point)) || QQuickPopupPrivate::blockInput(item, point);
-}
-
-void QQuickMenuPrivate::onItemHovered()
-{
- Q_Q(QQuickMenu);
- QQuickAbstractButton *button = qobject_cast<QQuickAbstractButton *>(q->sender());
- if (!button || !button->isHovered() || !button->isEnabled() || QQuickAbstractButtonPrivate::get(button)->touchId != -1)
- return;
-
- QQuickMenuItem *oldCurrentItem = currentItem;
-
- int index = contentModel->indexOf(button, nullptr);
- if (index != -1) {
- setCurrentIndex(index, Qt::OtherFocusReason);
- if (oldCurrentItem != currentItem) {
- if (oldCurrentItem) {
- QQuickMenu *subMenu = oldCurrentItem->subMenu();
- if (subMenu)
- subMenu->close();
- }
- if (currentItem) {
- QQuickMenu *subMenu = currentItem->menu();
- if (subMenu && subMenu->cascade())
- startHoverTimer();
- }
- }
- }
-}
-
-void QQuickMenuPrivate::onItemTriggered()
-{
- Q_Q(QQuickMenu);
- QQuickMenuItem *item = qobject_cast<QQuickMenuItem *>(q->sender());
- if (!item)
- return;
-
- if (QQuickMenu *subMenu = item->subMenu()) {
- auto subMenuPrivate = QQuickMenuPrivate::get(subMenu);
- subMenu->popup(subMenuPrivate->firstEnabledMenuItem());
- } else {
- q->dismiss();
- }
-}
-
-void QQuickMenuPrivate::onItemActiveFocusChanged()
-{
- Q_Q(QQuickMenu);
- QQuickItem *item = qobject_cast<QQuickItem*>(q->sender());
- if (!item->hasActiveFocus())
- return;
-
- int indexOfItem = contentModel->indexOf(item, nullptr);
- QQuickControl *control = qobject_cast<QQuickControl *>(item);
- setCurrentIndex(indexOfItem, control ? control->focusReason() : Qt::OtherFocusReason);
-}
-
-QQuickMenu *QQuickMenuPrivate::currentSubMenu() const
-{
- if (!currentItem)
- return nullptr;
-
- return currentItem->subMenu();
-}
-
-void QQuickMenuPrivate::setParentMenu(QQuickMenu *parent)
-{
- Q_Q(QQuickMenu);
- if (parentMenu == parent)
- return;
-
- if (parentMenu) {
- QObject::disconnect(parentMenu.data(), &QQuickMenu::cascadeChanged, q, &QQuickMenu::setCascade);
- disconnect(parentMenu.data(), &QQuickMenu::parentChanged, this, &QQuickMenuPrivate::resolveParentItem);
- }
- if (parent) {
- QObject::connect(parent, &QQuickMenu::cascadeChanged, q, &QQuickMenu::setCascade);
- connect(parent, &QQuickMenu::parentChanged, this, &QQuickMenuPrivate::resolveParentItem);
- }
-
- parentMenu = parent;
- q->resetCascade();
- resolveParentItem();
-}
-
-static QQuickItem *findParentMenuItem(QQuickMenu *subMenu)
-{
- QQuickMenu *menu = QQuickMenuPrivate::get(subMenu)->parentMenu;
- for (int i = 0; i < QQuickMenuPrivate::get(menu)->contentModel->count(); ++i) {
- QQuickMenuItem *item = qobject_cast<QQuickMenuItem *>(menu->itemAt(i));
- if (item && item->subMenu() == subMenu)
- return item;
- }
- return nullptr;
-}
-
-void QQuickMenuPrivate::resolveParentItem()
-{
- Q_Q(QQuickMenu);
- if (!parentMenu)
- q->resetParentItem();
- else if (!cascade)
- q->setParentItem(parentMenu->parentItem());
- else
- q->setParentItem(findParentMenuItem(q));
-}
-
-void QQuickMenuPrivate::propagateKeyEvent(QKeyEvent *event)
-{
- if (QQuickMenuItem *menuItem = qobject_cast<QQuickMenuItem *>(parentItem)) {
- if (QQuickMenu *menu = menuItem->menu())
- QQuickMenuPrivate::get(menu)->propagateKeyEvent(event);
- } else if (QQuickMenuBarItem *menuBarItem = qobject_cast<QQuickMenuBarItem *>(parentItem)) {
- if (QQuickMenuBar *menuBar = menuBarItem->menuBar()) {
- event->accept();
- QCoreApplication::sendEvent(menuBar, event);
- }
- }
-}
-
-void QQuickMenuPrivate::startHoverTimer()
-{
- Q_Q(QQuickMenu);
- stopHoverTimer();
- hoverTimer = q->startTimer(SUBMENU_DELAY);
-}
-
-void QQuickMenuPrivate::stopHoverTimer()
-{
- Q_Q(QQuickMenu);
- if (!hoverTimer)
- return;
-
- q->killTimer(hoverTimer);
- hoverTimer = 0;
-}
-
-void QQuickMenuPrivate::setCurrentIndex(int index, Qt::FocusReason reason)
-{
- Q_Q(QQuickMenu);
- if (currentIndex == index)
- return;
-
- QQuickMenuItem *newCurrentItem = qobject_cast<QQuickMenuItem *>(itemAt(index));
- if (currentItem != newCurrentItem) {
- stopHoverTimer();
- if (currentItem) {
- currentItem->setHighlighted(false);
- if (!newCurrentItem && window) {
- QQuickItem *focusItem = QQuickItemPrivate::get(contentItem)->subFocusItem;
- if (focusItem)
- QQuickWindowPrivate::get(window)->clearFocusInScope(contentItem, focusItem, Qt::OtherFocusReason);
- }
- }
- if (newCurrentItem) {
- newCurrentItem->setHighlighted(true);
- newCurrentItem->forceActiveFocus(reason);
- }
- currentItem = newCurrentItem;
- }
-
- currentIndex = index;
- emit q->currentIndexChanged();
-}
-
-bool QQuickMenuPrivate::activateNextItem()
-{
- int index = currentIndex;
- int count = contentModel->count();
- while (++index < count) {
- QQuickItem *item = itemAt(index);
- if (!item || !item->activeFocusOnTab() || !item->isEnabled())
- continue;
- setCurrentIndex(index, Qt::TabFocusReason);
- return true;
- }
- return false;
-}
-
-bool QQuickMenuPrivate::activatePreviousItem()
-{
- int index = currentIndex;
- while (--index >= 0) {
- QQuickItem *item = itemAt(index);
- if (!item || !item->activeFocusOnTab() || !item->isEnabled())
- continue;
- setCurrentIndex(index, Qt::BacktabFocusReason);
- return true;
- }
- return false;
-}
-
-QQuickMenuItem *QQuickMenuPrivate::firstEnabledMenuItem() const
-{
- for (int i = 0; i < contentModel->count(); ++i) {
- QQuickItem *item = itemAt(i);
- if (!item || !item->isEnabled())
- continue;
-
- QQuickMenuItem *menuItem = qobject_cast<QQuickMenuItem *>(item);
- if (!menuItem)
- continue;
-
- return menuItem;
- }
- return nullptr;
-}
-
-void QQuickMenuPrivate::contentData_append(QQmlListProperty<QObject> *prop, QObject *obj)
-{
- QQuickMenu *q = qobject_cast<QQuickMenu *>(prop->object);
- QQuickMenuPrivate *p = QQuickMenuPrivate::get(q);
-
- QQuickItem *item = qobject_cast<QQuickItem *>(obj);
- if (!item) {
- if (QQuickAction *action = qobject_cast<QQuickAction *>(obj))
- item = p->createItem(action);
- else if (QQuickMenu *menu = qobject_cast<QQuickMenu *>(obj))
- item = p->createItem(menu);
- }
-
- if (item) {
- if (QQuickItemPrivate::get(item)->isTransparentForPositioner()) {
- QQuickItemPrivate::get(item)->addItemChangeListener(p, QQuickItemPrivate::SiblingOrder);
- item->setParentItem(p->contentItem);
- } else if (p->contentModel->indexOf(item, nullptr) == -1) {
- q->addItem(item);
- }
- } else {
- p->contentData.append(obj);
- }
-}
-
-qsizetype QQuickMenuPrivate::contentData_count(QQmlListProperty<QObject> *prop)
-{
- QQuickMenu *q = static_cast<QQuickMenu *>(prop->object);
- return QQuickMenuPrivate::get(q)->contentData.count();
-}
-
-QObject *QQuickMenuPrivate::contentData_at(QQmlListProperty<QObject> *prop, qsizetype index)
-{
- QQuickMenu *q = static_cast<QQuickMenu *>(prop->object);
- return QQuickMenuPrivate::get(q)->contentData.value(index);
-}
-
-QPalette QQuickMenuPrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::Menu);
-}
-
-void QQuickMenuPrivate::contentData_clear(QQmlListProperty<QObject> *prop)
-{
- QQuickMenu *q = static_cast<QQuickMenu *>(prop->object);
- QQuickMenuPrivate::get(q)->contentData.clear();
-}
-
-QQuickMenu::QQuickMenu(QObject *parent)
- : QQuickPopup(*(new QQuickMenuPrivate), parent)
-{
- Q_D(QQuickMenu);
- setFocus(true);
- d->init();
- connect(d->contentModel, &QQmlObjectModel::countChanged, this, &QQuickMenu::countChanged);
-}
-
-QQuickMenu::~QQuickMenu()
-{
- Q_D(QQuickMenu);
- // We have to do this to ensure that the change listeners are removed.
- // It's too late to do this in ~QQuickMenuPrivate, as contentModel has already
- // been destroyed before that is called.
- while (d->contentModel->count() > 0)
- d->removeItem(0, d->itemAt(0));
-}
-
-/*!
- \qmlmethod Item QtQuick.Controls::Menu::itemAt(int index)
-
- Returns the item at \a index, or \c null if it does not exist.
-*/
-QQuickItem *QQuickMenu::itemAt(int index) const
-{
- Q_D(const QQuickMenu);
- return d->itemAt(index);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Menu::addItem(Item item)
-
- Adds \a item to the end of the list of items.
-*/
-void QQuickMenu::addItem(QQuickItem *item)
-{
- Q_D(QQuickMenu);
- insertItem(d->contentModel->count(), item);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Menu::insertItem(int index, Item item)
-
- Inserts \a item at \a index.
-*/
-void QQuickMenu::insertItem(int index, QQuickItem *item)
-{
- Q_D(QQuickMenu);
- if (!item)
- return;
- const int count = d->contentModel->count();
- if (index < 0 || index > count)
- index = count;
-
- int oldIndex = d->contentModel->indexOf(item, nullptr);
- if (oldIndex != -1) {
- if (oldIndex < index)
- --index;
- if (oldIndex != index)
- d->moveItem(oldIndex, index);
- } else {
- d->insertItem(index, item);
- }
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Menu::moveItem(int from, int to)
-
- Moves an item \a from one index \a to another.
-*/
-void QQuickMenu::moveItem(int from, int to)
-{
- Q_D(QQuickMenu);
- const int count = d->contentModel->count();
- if (from < 0 || from > count - 1)
- return;
- if (to < 0 || to > count - 1)
- to = count - 1;
-
- if (from != to)
- d->moveItem(from, to);
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Menu::removeItem(Item item)
-
- Removes and destroys the specified \a item.
-*/
-void QQuickMenu::removeItem(QQuickItem *item)
-{
- Q_D(QQuickMenu);
- if (!item)
- return;
-
- const int index = d->contentModel->indexOf(item, nullptr);
- if (index == -1)
- return;
-
- d->removeItem(index, item);
- item->deleteLater();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod MenuItem QtQuick.Controls::Menu::takeItem(int index)
-
- Removes and returns the item at \a index.
-
- \note The ownership of the item is transferred to the caller.
-*/
-QQuickItem *QQuickMenu::takeItem(int index)
-{
- Q_D(QQuickMenu);
- const int count = d->contentModel->count();
- if (index < 0 || index >= count)
- return nullptr;
-
- QQuickItem *item = itemAt(index);
- if (item)
- d->removeItem(index, item);
- return item;
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod Menu QtQuick.Controls::Menu::menuAt(int index)
-
- Returns the sub-menu at \a index, or \c null if the index is not valid or
- there is no sub-menu at the specified index.
-*/
-QQuickMenu *QQuickMenu::menuAt(int index) const
-{
- Q_D(const QQuickMenu);
- QQuickMenuItem *item = qobject_cast<QQuickMenuItem *>(d->itemAt(index));
- if (!item)
- return nullptr;
-
- return item->subMenu();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Menu::addMenu(Menu menu)
-
- Adds \a menu as a sub-menu to the end of this menu.
-*/
-void QQuickMenu::addMenu(QQuickMenu *menu)
-{
- Q_D(QQuickMenu);
- insertMenu(d->contentModel->count(), menu);
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Menu::insertMenu(int index, Menu menu)
-
- Inserts \a menu as a sub-menu at \a index. The index is within all items in the menu.
-*/
-void QQuickMenu::insertMenu(int index, QQuickMenu *menu)
-{
- Q_D(QQuickMenu);
- if (!menu)
- return;
-
- insertItem(index, d->createItem(menu));
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Menu::removeMenu(Menu menu)
-
- Removes and destroys the specified \a menu.
-*/
-void QQuickMenu::removeMenu(QQuickMenu *menu)
-{
- Q_D(QQuickMenu);
- if (!menu)
- return;
-
- const int count = d->contentModel->count();
- for (int i = 0; i < count; ++i) {
- QQuickMenuItem *item = qobject_cast<QQuickMenuItem *>(d->itemAt(i));
- if (!item || item->subMenu() != menu)
- continue;
-
- removeItem(item);
- break;
- }
-
- menu->deleteLater();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod Menu QtQuick.Controls::Menu::takeMenu(int index)
-
- Removes and returns the menu at \a index. The index is within all items in the menu.
-
- \note The ownership of the menu is transferred to the caller.
-*/
-QQuickMenu *QQuickMenu::takeMenu(int index)
-{
- Q_D(QQuickMenu);
- QQuickMenuItem *item = qobject_cast<QQuickMenuItem *>(d->itemAt(index));
- if (!item)
- return nullptr;
-
- QQuickMenu *subMenu = item->subMenu();
- if (!subMenu)
- return nullptr;
-
- d->removeItem(index, item);
- item->deleteLater();
- return subMenu;
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod Action QtQuick.Controls::Menu::actionAt(int index)
-
- Returns the action at \a index, or \c null if the index is not valid or
- there is no action at the specified index.
-*/
-QQuickAction *QQuickMenu::actionAt(int index) const
-{
- Q_D(const QQuickMenu);
- QQuickAbstractButton *item = qobject_cast<QQuickAbstractButton *>(d->itemAt(index));
- if (!item)
- return nullptr;
-
- return item->action();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Menu::addAction(Action action)
-
- Adds \a action to the end of this menu.
-*/
-void QQuickMenu::addAction(QQuickAction *action)
-{
- Q_D(QQuickMenu);
- insertAction(d->contentModel->count(), action);
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Menu::insertAction(int index, Action action)
-
- Inserts \a action at \a index. The index is within all items in the menu.
-*/
-void QQuickMenu::insertAction(int index, QQuickAction *action)
-{
- Q_D(QQuickMenu);
- if (!action)
- return;
-
- insertItem(index, d->createItem(action));
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Menu::removeAction(Action action)
-
- Removes and destroys the specified \a action.
-*/
-void QQuickMenu::removeAction(QQuickAction *action)
-{
- Q_D(QQuickMenu);
- if (!action)
- return;
-
- const int count = d->contentModel->count();
- for (int i = 0; i < count; ++i) {
- QQuickMenuItem *item = qobject_cast<QQuickMenuItem *>(d->itemAt(i));
- if (!item || item->action() != action)
- continue;
-
- removeItem(item);
- break;
- }
-
- action->deleteLater();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod Action QtQuick.Controls::Menu::takeAction(int index)
-
- Removes and returns the action at \a index. The index is within all items in the menu.
-
- \note The ownership of the action is transferred to the caller.
-*/
-QQuickAction *QQuickMenu::takeAction(int index)
-{
- Q_D(QQuickMenu);
- QQuickMenuItem *item = qobject_cast<QQuickMenuItem *>(d->itemAt(index));
- if (!item)
- return nullptr;
-
- QQuickAction *action = item->action();
- if (!action)
- return nullptr;
-
- d->removeItem(index, item);
- item->deleteLater();
- return action;
-}
-
-/*!
- \qmlproperty model QtQuick.Controls::Menu::contentModel
- \readonly
-
- This property holds the model used to display menu items.
-
- The content model is provided for visualization purposes. It can be assigned
- as a model to a content item that presents the contents of the menu.
-
- \code
- Menu {
- id: menu
- contentItem: ListView {
- model: menu.contentModel
- }
- }
- \endcode
-
- The model allows menu items to be statically declared as children of the
- menu.
-*/
-QVariant QQuickMenu::contentModel() const
-{
- Q_D(const QQuickMenu);
- return QVariant::fromValue(d->contentModel);
-}
-
-/*!
- \qmlproperty list<Object> QtQuick.Controls::Menu::contentData
- \qmldefault
-
- This property holds the list of content data.
-
- The list contains all objects that have been declared in QML as children
- of the menu, and also items that have been dynamically added or
- inserted using the \l addItem() and \l insertItem() methods, respectively.
-
- \note Unlike \c contentChildren, \c contentData does include non-visual QML
- objects. It is not re-ordered when items are inserted or moved.
-
- \sa Item::data, {Popup::}{contentChildren}
-*/
-QQmlListProperty<QObject> QQuickMenu::contentData()
-{
- Q_D(QQuickMenu);
- if (!d->contentItem)
- QQuickControlPrivate::get(d->popupItem)->executeContentItem();
- return QQmlListProperty<QObject>(this, nullptr,
- QQuickMenuPrivate::contentData_append,
- QQuickMenuPrivate::contentData_count,
- QQuickMenuPrivate::contentData_at,
- QQuickMenuPrivate::contentData_clear);
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::Menu::title
-
- This property holds the title for the menu.
-
- The title of a menu is often displayed in the text of a menu item when the
- menu is a submenu, and in the text of a tool button when it is in a
- menubar.
-*/
-QString QQuickMenu::title() const
-{
- Q_D(const QQuickMenu);
- return d->title;
-}
-
-void QQuickMenu::setTitle(QString &title)
-{
- Q_D(QQuickMenu);
- if (title == d->title)
- return;
- d->title = title;
- emit titleChanged(title);
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::Menu::cascade
-
- This property holds whether the menu cascades its sub-menus.
-
- The default value is platform-specific. Menus are cascading by default on
- desktop platforms that have a mouse cursor available. Non-cascading menus
- are shown one menu at a time, and centered over the parent menu.
-
- \note Changing the value of the property has no effect while the menu is open.
-
- \sa overlap
-*/
-bool QQuickMenu::cascade() const
-{
- Q_D(const QQuickMenu);
- return d->cascade;
-}
-
-void QQuickMenu::setCascade(bool cascade)
-{
- Q_D(QQuickMenu);
- if (d->cascade == cascade)
- return;
- d->cascade = cascade;
- if (d->parentMenu)
- d->resolveParentItem();
- emit cascadeChanged(cascade);
-}
-
-void QQuickMenu::resetCascade()
-{
- Q_D(QQuickMenu);
- if (d->parentMenu)
- setCascade(d->parentMenu->cascade());
- else
- setCascade(shouldCascade());
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty real QtQuick.Controls::Menu::overlap
-
- This property holds the amount of pixels by which the menu horizontally overlaps its parent menu.
-
- The property only has effect when the menu is used as a cascading sub-menu.
-
- The default value is style-specific.
-
- \note Changing the value of the property has no effect while the menu is open.
-
- \sa cascade
-*/
-qreal QQuickMenu::overlap() const
-{
- Q_D(const QQuickMenu);
- return d->overlap;
-}
-
-void QQuickMenu::setOverlap(qreal overlap)
-{
- Q_D(QQuickMenu);
- if (d->overlap == overlap)
- return;
- d->overlap = overlap;
- emit overlapChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty Component QtQuick.Controls::Menu::delegate
-
- This property holds the component that is used to create items
- to present actions.
-
- \code
- Menu {
- Action { text: "Cut" }
- Action { text: "Copy" }
- Action { text: "Paste" }
- }
- \endcode
-
- \sa Action
-*/
-QQmlComponent *QQuickMenu::delegate() const
-{
- Q_D(const QQuickMenu);
- return d->delegate;
-}
-
-void QQuickMenu::setDelegate(QQmlComponent *delegate)
-{
- Q_D(QQuickMenu);
- if (d->delegate == delegate)
- return;
-
- d->delegate = delegate;
- emit delegateChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty int QtQuick.Controls::Menu::currentIndex
-
- This property holds the index of the currently highlighted item.
-
- Menu items can be highlighted by mouse hover or keyboard navigation.
-
- \sa MenuItem::highlighted
-*/
-int QQuickMenu::currentIndex() const
-{
- Q_D(const QQuickMenu);
- return d->currentIndex;
-}
-
-void QQuickMenu::setCurrentIndex(int index)
-{
- Q_D(QQuickMenu);
- d->setCurrentIndex(index, Qt::OtherFocusReason);
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty int QtQuick.Controls::Menu::count
- \readonly
-
- This property holds the number of items.
-*/
-int QQuickMenu::count() const
-{
- Q_D(const QQuickMenu);
- return d->contentModel->count();
-}
-
-void QQuickMenu::popup(QQuickItem *menuItem)
-{
- Q_D(QQuickMenu);
- // No position has been explicitly specified, so position the menu at the mouse cursor
- // on desktop platforms that have a mouse cursor available and support multiple windows.
- QQmlNullableValue<QPointF> pos;
-#if QT_CONFIG(cursor)
- if (d->parentItem && QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::MultipleWindows))
- pos = d->parentItem->mapFromGlobal(QCursor::pos());
-#endif
-
- // As a fallback, center the menu over its parent item.
- if (pos.isNull && d->parentItem)
- pos = QPointF((d->parentItem->width() - width()) / 2, (d->parentItem->height() - height()) / 2);
-
- popup(pos.isNull ? QPointF() : pos.value, menuItem);
-}
-
-void QQuickMenu::popup(const QPointF &pos, QQuickItem *menuItem)
-{
- Q_D(QQuickMenu);
- qreal offset = 0;
-#if QT_CONFIG(cursor)
- if (menuItem)
- offset = d->popupItem->mapFromItem(menuItem, QPointF(0, 0)).y();
-#endif
- setPosition(pos - QPointF(0, offset));
-
- if (menuItem)
- d->setCurrentIndex(d->contentModel->indexOf(menuItem, nullptr), Qt::PopupFocusReason);
- open();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Menu::popup(MenuItem item = null)
- \qmlmethod void QtQuick.Controls::Menu::popup(Item parent, MenuItem item = null)
-
- Opens the menu at the mouse cursor on desktop platforms that have a mouse cursor
- available, and otherwise centers the menu over its \a parent item.
-
- The menu can be optionally aligned to a specific menu \a item.
-
- \sa Popup::open()
-*/
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Menu::popup(point pos, MenuItem item = null)
- \qmlmethod void QtQuick.Controls::Menu::popup(Item parent, point pos, MenuItem item = null)
-
- Opens the menu at the specified position \a pos in the popups coordinate system,
- that is, a coordinate relative to its \a parent item.
-
- The menu can be optionally aligned to a specific menu \a item.
-
- \sa Popup::open()
-*/
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Menu::popup(real x, real y, MenuItem item = null)
- \qmlmethod void QtQuick.Controls::Menu::popup(Item parent, real x, real y, MenuItem item = null)
-
- Opens the menu at the specified position \a x, \a y in the popups coordinate system,
- that is, a coordinate relative to its \a parent item.
-
- The menu can be optionally aligned to a specific menu \a item.
-
- \sa dismiss(), Popup::open()
-*/
-void QQuickMenu::popup(QQmlV4Function *args)
-{
- Q_D(QQuickMenu);
- const int len = args->length();
- if (len > 4) {
- args->v4engine()->throwTypeError();
- return;
- }
-
- QV4::ExecutionEngine *v4 = args->v4engine();
- QV4::Scope scope(v4);
-
- QQmlNullableValue<QPointF> pos;
- QQuickItem *menuItem = nullptr;
- QQuickItem *parentItem = nullptr;
-
- if (len > 0) {
- // Item parent
- QV4::ScopedValue firstArg(scope, (*args)[0]);
- if (const QV4::QObjectWrapper *obj = firstArg->as<QV4::QObjectWrapper>()) {
- QQuickItem *item = qobject_cast<QQuickItem *>(obj->object());
- if (item && !d->popupItem->isAncestorOf(item))
- parentItem = item;
- } else if (firstArg->isUndefined()) {
- resetParentItem();
- parentItem = d->parentItem;
- }
-
- // MenuItem item
- QV4::ScopedValue lastArg(scope, (*args)[len - 1]);
- if (const QV4::QObjectWrapper *obj = lastArg->as<QV4::QObjectWrapper>()) {
- QQuickItem *item = qobject_cast<QQuickItem *>(obj->object());
- if (item && d->popupItem->isAncestorOf(item))
- menuItem = item;
- }
- }
-
- if (len >= 3 || (!parentItem && len >= 2)) {
- // real x, real y
- QV4::ScopedValue xArg(scope, (*args)[parentItem ? 1 : 0]);
- QV4::ScopedValue yArg(scope, (*args)[parentItem ? 2 : 1]);
- if (xArg->isNumber() && yArg->isNumber())
- pos = QPointF(xArg->asDouble(), yArg->asDouble());
- }
-
- if (pos.isNull && (len >= 2 || (!parentItem && len >= 1))) {
- // point pos
- QV4::ScopedValue posArg(scope, (*args)[parentItem ? 1 : 0]);
- const QVariant var = v4->toVariant(posArg, QMetaType {});
- if (var.userType() == QMetaType::QPointF)
- pos = var.toPointF();
- }
-
- if (parentItem)
- setParentItem(parentItem);
-
- if (pos.isNull)
- popup(menuItem);
- else
- popup(pos, menuItem);
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlmethod void QtQuick.Controls::Menu::dismiss()
-
- Closes all menus in the hierarchy that this menu belongs to.
-
- \note Unlike \l {Popup::}{close()} that only closes a menu and its sub-menus,
- \c dismiss() closes the whole hierarchy of menus, including the parent menus.
- In practice, \c close() is suitable e.g. for implementing navigation in a
- hierarchy of menus, and \c dismiss() is the appropriate method for closing
- the whole hierarchy of menus.
-
- \sa popup(), Popup::close()
-*/
-void QQuickMenu::dismiss()
-{
- QQuickMenu *menu = this;
- while (menu) {
- menu->close();
- menu = QQuickMenuPrivate::get(menu)->parentMenu;
- }
-}
-
-void QQuickMenu::componentComplete()
-{
- Q_D(QQuickMenu);
- QQuickPopup::componentComplete();
- d->resizeItems();
-}
-
-void QQuickMenu::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_D(QQuickMenu);
- QQuickPopup::contentItemChange(newItem, oldItem);
-
- if (oldItem) {
- QQuickItemPrivate::get(oldItem)->removeItemChangeListener(d, QQuickItemPrivate::Children);
- QQuickItemPrivate::get(oldItem)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
- }
- if (newItem) {
- QQuickItemPrivate::get(newItem)->addItemChangeListener(d, QQuickItemPrivate::Children);
- QQuickItemPrivate::get(newItem)->updateOrAddGeometryChangeListener(d, QQuickGeometryChange::Width);
- }
-
- d->contentItem = newItem;
-}
-
-void QQuickMenu::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- Q_D(QQuickMenu);
- QQuickPopup::itemChange(change, data);
-
- if (change == QQuickItem::ItemVisibleHasChanged) {
- if (!data.boolValue && d->cascade) {
- // Ensure that when the menu isn't visible, there's no current item
- // the next time it's opened.
- d->setCurrentIndex(-1, Qt::OtherFocusReason);
- }
- }
-}
-
-void QQuickMenu::keyPressEvent(QKeyEvent *event)
-{
- Q_D(QQuickMenu);
- QQuickPopup::keyPressEvent(event);
-
- // QTBUG-17051
- // Work around the fact that ListView has no way of distinguishing between
- // mouse and keyboard interaction, thanks to the "interactive" bool in Flickable.
- // What we actually want is to have a way to always allow keyboard interaction but
- // only allow flicking with the mouse when there are too many menu items to be
- // shown at once.
- switch (event->key()) {
- case Qt::Key_Up:
- if (!d->activatePreviousItem())
- d->propagateKeyEvent(event);
- break;
-
- case Qt::Key_Down:
- d->activateNextItem();
- break;
-
- case Qt::Key_Left:
- case Qt::Key_Right:
- event->ignore();
- if (d->popupItem->isMirrored() == (event->key() == Qt::Key_Right)) {
- if (d->parentMenu && d->currentItem) {
- if (!d->cascade)
- d->parentMenu->open();
- close();
- event->accept();
- }
- } else {
- if (QQuickMenu *subMenu = d->currentSubMenu()) {
- auto subMenuPrivate = QQuickMenuPrivate::get(subMenu);
- subMenu->popup(subMenuPrivate->firstEnabledMenuItem());
- event->accept();
- }
- }
- if (!event->isAccepted())
- d->propagateKeyEvent(event);
- break;
-
-#if QT_CONFIG(shortcut)
- case Qt::Key_Alt:
- // If &mnemonic shortcut is enabled, go back to (possibly) the parent
- // menu bar so the shortcut key will be processed by the menu bar.
- if (!QKeySequence::mnemonic(QStringLiteral("&A")).isEmpty())
- close();
- break;
-#endif
-
- default:
- break;
- }
-}
-
-void QQuickMenu::timerEvent(QTimerEvent *event)
-{
- Q_D(QQuickMenu);
- if (event->timerId() == d->hoverTimer) {
- if (QQuickMenu *subMenu = d->currentSubMenu())
- subMenu->open();
- d->stopHoverTimer();
- return;
- }
- QQuickPopup::timerEvent(event);
-}
-
-QFont QQuickMenu::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::Menu);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickMenu::accessibleRole() const
-{
- return QAccessible::PopupMenu;
-}
-#endif
-
-QT_END_NAMESPACE
-
-#include "moc_qquickmenu_p.cpp"
diff --git a/src/quicktemplates2/qquickmenu_p.h b/src/quicktemplates2/qquickmenu_p.h
deleted file mode 100644
index 4a690f9c..00000000
--- a/src/quicktemplates2/qquickmenu_p.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMENU_P_H
-#define QQUICKMENU_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQml/qqmllist.h>
-#include <QtQml/qqml.h>
-
-#include "qquickpopup_p.h"
-
-QT_BEGIN_NAMESPACE
-
-class QQuickAction;
-class QQmlComponent;
-class QQuickMenuItem;
-class QQuickMenuPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickMenu : public QQuickPopup
-{
- Q_OBJECT
- Q_PROPERTY(QVariant contentModel READ contentModel CONSTANT FINAL)
- Q_PROPERTY(QQmlListProperty<QObject> contentData READ contentData FINAL)
- Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged FINAL)
- // 2.3 (Qt 5.10)
- Q_PROPERTY(int count READ count NOTIFY countChanged FINAL REVISION(2, 3))
- Q_PROPERTY(bool cascade READ cascade WRITE setCascade RESET resetCascade NOTIFY cascadeChanged FINAL REVISION(2, 3))
- Q_PROPERTY(qreal overlap READ overlap WRITE setOverlap NOTIFY overlapChanged FINAL REVISION(2, 3))
- Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged FINAL REVISION(2, 3))
- Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged FINAL REVISION(2, 3))
- Q_CLASSINFO("DefaultProperty", "contentData")
- QML_NAMED_ELEMENT(Menu)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickMenu(QObject *parent = nullptr);
- ~QQuickMenu();
-
- Q_INVOKABLE QQuickItem *itemAt(int index) const;
- Q_INVOKABLE void addItem(QQuickItem *item);
- Q_INVOKABLE void insertItem(int index, QQuickItem *item);
- Q_INVOKABLE void moveItem(int from, int to);
- Q_INVOKABLE void removeItem(QQuickItem *item);
-
- QVariant contentModel() const;
- QQmlListProperty<QObject> contentData();
-
- QString title() const;
- void setTitle(QString &title);
-
- bool cascade() const;
- void setCascade(bool cascade);
- void resetCascade();
-
- qreal overlap() const;
- void setOverlap(qreal overlap);
-
- QQmlComponent *delegate() const;
- void setDelegate(QQmlComponent *delegate);
-
- int currentIndex() const;
- void setCurrentIndex(int index);
-
- // 2.3 (Qt 5.10)
- int count() const;
- Q_REVISION(2, 3) Q_INVOKABLE QQuickItem *takeItem(int index);
-
- Q_REVISION(2, 3) Q_INVOKABLE QQuickMenu *menuAt(int index) const;
- Q_REVISION(2, 3) Q_INVOKABLE void addMenu(QQuickMenu *menu);
- Q_REVISION(2, 3) Q_INVOKABLE void insertMenu(int index, QQuickMenu *menu);
- Q_REVISION(2, 3) Q_INVOKABLE void removeMenu(QQuickMenu *menu);
- Q_REVISION(2, 3) Q_INVOKABLE QQuickMenu *takeMenu(int index);
-
- Q_REVISION(2, 3) Q_INVOKABLE QQuickAction *actionAt(int index) const;
- Q_REVISION(2, 3) Q_INVOKABLE void addAction(QQuickAction *action);
- Q_REVISION(2, 3) Q_INVOKABLE void insertAction(int index, QQuickAction *action);
- Q_REVISION(2, 3) Q_INVOKABLE void removeAction(QQuickAction *action);
- Q_REVISION(2, 3) Q_INVOKABLE QQuickAction *takeAction(int index);
-
- void popup(QQuickItem *menuItem = nullptr);
- void popup(const QPointF &pos, QQuickItem *menuItem = nullptr);
-
- Q_REVISION(2, 3) Q_INVOKABLE void popup(QQmlV4Function *args);
- Q_REVISION(2, 3) Q_INVOKABLE void dismiss();
-
-protected:
- void componentComplete() override;
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
- void itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data) override;
- void keyPressEvent(QKeyEvent *event) override;
-
-Q_SIGNALS:
- void titleChanged(const QString &title);
- // 2.3 (Qt 5.10)
- Q_REVISION(2, 3) void countChanged();
- Q_REVISION(2, 3) void cascadeChanged(bool cascade);
- Q_REVISION(2, 3) void overlapChanged();
- Q_REVISION(2, 3) void delegateChanged();
- Q_REVISION(2, 3) void currentIndexChanged();
-
-protected:
- void timerEvent(QTimerEvent *event) override;
-
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickMenu)
- Q_DECLARE_PRIVATE(QQuickMenu)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickMenu)
-
-#endif // QQUICKMENU_P_H
diff --git a/src/quicktemplates2/qquickmenu_p_p.h b/src/quicktemplates2/qquickmenu_p_p.h
deleted file mode 100644
index df51f1f3..00000000
--- a/src/quicktemplates2/qquickmenu_p_p.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMENU_P_P_H
-#define QQUICKMENU_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qlist.h>
-#include <QtCore/qpointer.h>
-
-#include <QtQuickTemplates2/private/qquickmenu_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickAction;
-class QQmlComponent;
-class QQmlObjectModel;
-class QQuickMenuItem;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickMenuPrivate : public QQuickPopupPrivate
-{
- Q_DECLARE_PUBLIC(QQuickMenu)
-
-public:
- QQuickMenuPrivate();
-
- static QQuickMenuPrivate *get(QQuickMenu *menu)
- {
- return menu->d_func();
- }
-
- void init() override;
-
- QQuickItem *itemAt(int index) const;
- void insertItem(int index, QQuickItem *item);
- void moveItem(int from, int to);
- void removeItem(int index, QQuickItem *item);
-
- QQuickItem *beginCreateItem();
- void completeCreateItem();
-
- QQuickItem *createItem(QQuickMenu *menu);
- QQuickItem *createItem(QQuickAction *action);
-
- void resizeItem(QQuickItem *item);
- void resizeItems();
-
- void itemChildAdded(QQuickItem *item, QQuickItem *child) override;
- void itemSiblingOrderChanged(QQuickItem *item) override;
- void itemParentChanged(QQuickItem *item, QQuickItem *parent) override;
- void itemDestroyed(QQuickItem *item) override;
- void itemGeometryChanged(QQuickItem *, QQuickGeometryChange change, const QRectF &diff) override;
-
- QQuickPopupPositioner *getPositioner() override;
- bool prepareEnterTransition() override;
- bool prepareExitTransition() override;
- bool blockInput(QQuickItem *item, const QPointF &point) const override;
-
- void onItemHovered();
- void onItemTriggered();
- void onItemActiveFocusChanged();
-
- QQuickMenu *currentSubMenu() const;
- void setParentMenu(QQuickMenu *parent);
- void resolveParentItem();
-
- void propagateKeyEvent(QKeyEvent *event);
-
- void startHoverTimer();
- void stopHoverTimer();
-
- void setCurrentIndex(int index, Qt::FocusReason reason);
- bool activateNextItem();
- bool activatePreviousItem();
-
- QQuickMenuItem *firstEnabledMenuItem() const;
-
- static void contentData_append(QQmlListProperty<QObject> *prop, QObject *obj);
- static qsizetype contentData_count(QQmlListProperty<QObject> *prop);
- static QObject *contentData_at(QQmlListProperty<QObject> *prop, qsizetype index);
- static void contentData_clear(QQmlListProperty<QObject> *prop);
-
- QPalette defaultPalette() const override;
-
- bool cascade = false;
- int hoverTimer = 0;
- int currentIndex = -1;
- qreal overlap = 0;
- QPointer<QQuickMenu> parentMenu;
- QPointer<QQuickMenuItem> currentItem;
- QQuickItem *contentItem = nullptr; // TODO: cleanup
- QList<QObject *> contentData;
- QQmlObjectModel *contentModel;
- QQmlComponent *delegate = nullptr;
- QString title;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKMENU_P_P_H
diff --git a/src/quicktemplates2/qquickmenubar.cpp b/src/quicktemplates2/qquickmenubar.cpp
deleted file mode 100644
index a732d889..00000000
--- a/src/quicktemplates2/qquickmenubar.cpp
+++ /dev/null
@@ -1,581 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmenubar_p.h"
-#include "qquickmenubar_p_p.h"
-#include "qquickmenubaritem_p_p.h"
-#include "qquickmenu_p.h"
-#include "qquickmenu_p_p.h"
-
-#include <QtQml/qqmlcontext.h>
-#include <QtQml/qqmlcomponent.h>
-#include <QtQml/qqmlengine.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype MenuBar
- \inherits Container
-//! \instantiates QQuickMenuBar
- \inqmlmodule QtQuick.Controls
- \since 5.10
- \ingroup qtquickcontrols2-menus
- \ingroup qtquickcontrols2-focusscopes
- \brief Provides a window menu bar.
-
- \image qtquickcontrols2-menubar.png
-
- MenuBar consists of drop-down menus, and is normally located at the top
- edge of the window.
-
- \quotefromfile qtquickcontrols2-menubar.qml
- \skipuntil begin
- \printto skipfrom
- \skipuntil skipto
- \printto end
-
- Typically, menus are statically declared as children of the menu bar, but
- MenuBar also provides API to \l {addMenu}{add}, \l {insertMenu}{insert},
- \l {removeMenu}{remove}, and \l {takeMenu}{take} menus dynamically. The
- menus in a menu bar can be accessed using \l menuAt().
-
- \sa {Customizing MenuBar}, Menu, MenuBarItem, {Menu Controls},
- {Focus Management in Qt Quick Controls}
-*/
-
-QQuickItem *QQuickMenuBarPrivate::beginCreateItem(QQuickMenu *menu)
-{
- Q_Q(QQuickMenuBar);
- if (!delegate)
- return nullptr;
-
- QQmlContext *creationContext = delegate->creationContext();
- if (!creationContext)
- creationContext = qmlContext(q);
- QQmlContext *context = new QQmlContext(creationContext, q);
- context->setContextObject(q);
-
- QObject *object = delegate->beginCreate(context);
- QQuickItem *item = qobject_cast<QQuickItem *>(object);
- if (!item) {
- delete object;
- delete context;
- return nullptr;
- }
-
- if (QQuickMenuBarItem *menuBarItem = qobject_cast<QQuickMenuBarItem *>(item))
- menuBarItem->setMenu(menu);
- item->setParentItem(q);
- QQml_setParent_noEvent(item, q);
-
- return item;
-}
-
-void QQuickMenuBarPrivate::completeCreateItem()
-{
- if (!delegate)
- return;
-
- delegate->completeCreate();
-}
-
-QQuickItem *QQuickMenuBarPrivate::createItem(QQuickMenu *menu)
-{
- QQuickItem *item = beginCreateItem(menu);
- completeCreateItem();
- return item;
-}
-
-void QQuickMenuBarPrivate::toggleCurrentMenu(bool visible, bool activate)
-{
- if (!currentItem || visible == popupMode)
- return;
-
- QQuickMenu *menu = currentItem->menu();
-
- triggering = true;
- popupMode = visible;
- if (menu)
- menu->setVisible(visible);
- if (!visible)
- currentItem->forceActiveFocus();
- else if (menu && activate)
- menu->setCurrentIndex(0);
- triggering = false;
-}
-
-void QQuickMenuBarPrivate::activateItem(QQuickMenuBarItem *item)
-{
- if (currentItem == item)
- return;
-
- if (currentItem) {
- currentItem->setHighlighted(false);
- if (popupMode) {
- if (QQuickMenu *menu = currentItem->menu())
- menu->dismiss();
- }
- }
-
- if (item) {
- item->setHighlighted(true);
- if (popupMode) {
- if (QQuickMenu *menu = item->menu())
- menu->open();
- }
- }
-
- currentItem = item;
-}
-
-void QQuickMenuBarPrivate::activateNextItem()
-{
- int index = currentItem ? contentModel->indexOf(currentItem, nullptr) : -1;
- if (index >= contentModel->count() - 1)
- index = -1;
- activateItem(qobject_cast<QQuickMenuBarItem *>(itemAt(++index)));
-}
-
-void QQuickMenuBarPrivate::activatePreviousItem()
-{
- int index = currentItem ? contentModel->indexOf(currentItem, nullptr) : contentModel->count();
- if (index <= 0)
- index = contentModel->count();
- activateItem(qobject_cast<QQuickMenuBarItem *>(itemAt(--index)));
-}
-
-void QQuickMenuBarPrivate::onItemHovered()
-{
- Q_Q(QQuickMenuBar);
- QQuickMenuBarItem *item = qobject_cast<QQuickMenuBarItem *>(q->sender());
- if (!item || item == currentItem || !item->isHovered() || !item->isEnabled() || QQuickMenuBarItemPrivate::get(item)->touchId != -1)
- return;
-
- activateItem(item);
-}
-
-void QQuickMenuBarPrivate::onItemTriggered()
-{
- Q_Q(QQuickMenuBar);
- QQuickMenuBarItem *item = qobject_cast<QQuickMenuBarItem *>(q->sender());
- if (!item)
- return;
-
- if (item == currentItem) {
- toggleCurrentMenu(!popupMode, false);
- } else {
- popupMode = true;
- activateItem(item);
- }
-}
-
-void QQuickMenuBarPrivate::onMenuAboutToHide()
-{
- if (triggering || !currentItem || (currentItem->isHovered() && currentItem->isEnabled()) || !currentItem->isHighlighted())
- return;
-
- popupMode = false;
- activateItem(nullptr);
-}
-
-qreal QQuickMenuBarPrivate::getContentWidth() const
-{
- Q_Q(const QQuickMenuBar);
- const int count = contentModel->count();
- qreal totalWidth = qMax(0, count - 1) * spacing;
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = q->itemAt(i);
- if (item)
- totalWidth += item->implicitWidth();
- }
- return totalWidth;
-}
-
-qreal QQuickMenuBarPrivate::getContentHeight() const
-{
- Q_Q(const QQuickMenuBar);
- const int count = contentModel->count();
- qreal maxHeight = 0;
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = q->itemAt(i);
- if (item)
- maxHeight = qMax(maxHeight, item->implicitHeight());
- }
- return maxHeight;
-}
-
-void QQuickMenuBarPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- QQuickContainerPrivate::itemImplicitWidthChanged(item);
- if (item != contentItem)
- updateImplicitContentWidth();
-}
-
-void QQuickMenuBarPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- QQuickContainerPrivate::itemImplicitHeightChanged(item);
- if (item != contentItem)
- updateImplicitContentHeight();
-}
-
-void QQuickMenuBarPrivate::contentData_append(QQmlListProperty<QObject> *prop, QObject *obj)
-{
- QQuickMenuBar *menuBar = static_cast<QQuickMenuBar *>(prop->object);
- if (QQuickMenu *menu = qobject_cast<QQuickMenu *>(obj))
- obj = QQuickMenuBarPrivate::get(menuBar)->createItem(menu);
- QQuickContainerPrivate::contentData_append(prop, obj);
-}
-
-void QQuickMenuBarPrivate::menus_append(QQmlListProperty<QQuickMenu> *prop, QQuickMenu *obj)
-{
- QQuickMenuBar *menuBar = static_cast<QQuickMenuBar *>(prop->object);
- menuBar->addMenu(obj);
-}
-
-qsizetype QQuickMenuBarPrivate::menus_count(QQmlListProperty<QQuickMenu> *prop)
-{
- QQuickMenuBar *menuBar = static_cast<QQuickMenuBar *>(prop->object);
- return menuBar->count();
-}
-
-QQuickMenu *QQuickMenuBarPrivate::menus_at(QQmlListProperty<QQuickMenu> *prop, qsizetype index)
-{
- QQuickMenuBar *menuBar = static_cast<QQuickMenuBar *>(prop->object);
- return menuBar->menuAt(index);
-}
-
-void QQuickMenuBarPrivate::menus_clear(QQmlListProperty<QQuickMenu> *prop)
-{
- QQuickMenuBar *menuBar = static_cast<QQuickMenuBar *>(prop->object);
- QQuickMenuBarPrivate::get(menuBar)->contentModel->clear();
-}
-
-QPalette QQuickMenuBarPrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::MenuBar);
-}
-
-QQuickMenuBar::QQuickMenuBar(QQuickItem *parent)
- : QQuickContainer(*(new QQuickMenuBarPrivate), parent)
-{
- Q_D(QQuickMenuBar);
- d->changeTypes |= QQuickItemPrivate::Geometry;
- setFlag(ItemIsFocusScope);
- setFocusPolicy(Qt::ClickFocus);
-}
-
-/*!
- \qmlproperty Component QtQuick.Controls::MenuBar::delegate
-
- This property holds the component that is used to create menu bar
- items to present menus in the menu bar.
-
- \sa MenuBarItem
-*/
-QQmlComponent *QQuickMenuBar::delegate() const
-{
- Q_D(const QQuickMenuBar);
- return d->delegate;
-}
-
-void QQuickMenuBar::setDelegate(QQmlComponent *delegate)
-{
- Q_D(QQuickMenuBar);
- if (d->delegate == delegate)
- return;
-
- d->delegate = delegate;
- emit delegateChanged();
-}
-
-/*!
- \qmlmethod Menu QtQuick.Controls::MenuBar::menuAt(int index)
-
- Returns the menu at \a index, or \c null if it does not exist.
-*/
-QQuickMenu *QQuickMenuBar::menuAt(int index) const
-{
- Q_D(const QQuickMenuBar);
- QQuickMenuBarItem *item = qobject_cast<QQuickMenuBarItem *>(d->itemAt(index));
- if (!item)
- return nullptr;
- return item->menu();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::MenuBar::addMenu(Menu menu)
-
- Adds \a menu to the end of the list of menus.
-*/
-void QQuickMenuBar::addMenu(QQuickMenu *menu)
-{
- Q_D(QQuickMenuBar);
- addItem(d->createItem(menu));
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::MenuBar::insertMenu(int index, Menu menu)
-
- Inserts \a menu at \a index.
-*/
-void QQuickMenuBar::insertMenu(int index, QQuickMenu *menu)
-{
- Q_D(QQuickMenuBar);
- insertItem(index, d->createItem(menu));
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::MenuBar::removeMenu(Menu menu)
-
- Removes and destroys the specified \a menu.
-*/
-void QQuickMenuBar::removeMenu(QQuickMenu *menu)
-{
- Q_D(QQuickMenuBar);
- if (!menu)
- return;
-
- const int count = d->contentModel->count();
- for (int i = 0; i < count; ++i) {
- QQuickMenuBarItem *item = qobject_cast<QQuickMenuBarItem *>(itemAt(i));
- if (!item || item->menu() != menu)
- continue;
-
- removeItem(item);
- break;
- }
-
- menu->deleteLater();
-}
-
-/*!
- \qmlmethod Menu QtQuick.Controls::MenuBar::takeMenu(int index)
-
- Removes and returns the menu at \a index.
-
- \note The ownership of the item is transferred to the caller.
-*/
-QQuickMenu *QQuickMenuBar::takeMenu(int index)
-{
- Q_D(QQuickMenuBar);
- QQuickMenuBarItem *item = qobject_cast<QQuickMenuBarItem *>(itemAt(index));
- if (!item)
- return nullptr;
-
- QQuickMenu *menu = item->menu();
- if (!menu)
- return nullptr;
-
- d->removeItem(index, item);
- item->deleteLater();
- return menu;
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty real QtQuick.Controls::MenuBar::contentWidth
-
- This property holds the content width. It is used for calculating the total
- implicit width of the menu bar.
-
- \note This property is available in MenuBar since QtQuick.Controls 2.3 (Qt 5.10),
- but it was promoted to the Container base type in QtQuick.Controls 2.5 (Qt 5.12).
-
- \sa Container::contentWidth
-*/
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty real QtQuick.Controls::MenuBar::contentHeight
-
- This property holds the content height. It is used for calculating the total
- implicit height of the menu bar.
-
- \note This property is available in MenuBar since QtQuick.Controls 2.3 (Qt 5.10),
- but it was promoted to the Container base type in QtQuick.Controls 2.5 (Qt 5.12).
-
- \sa Container::contentHeight
-*/
-
-/*!
- \qmlproperty list<Menu> QtQuick.Controls::MenuBar::menus
-
- This property holds the list of menus.
-
- The list contains all menus that have been declared in QML as children
- of the menu bar, and also menus that have been dynamically added or
- inserted using the \l addMenu() and \l insertMenu() methods, respectively.
-*/
-QQmlListProperty<QQuickMenu> QQuickMenuBarPrivate::menus()
-{
- Q_Q(QQuickMenuBar);
- return QQmlListProperty<QQuickMenu>(q, nullptr,
- QQuickMenuBarPrivate::menus_append,
- QQuickMenuBarPrivate::menus_count,
- QQuickMenuBarPrivate::menus_at,
- QQuickMenuBarPrivate::menus_clear);
-}
-
-QQmlListProperty<QObject> QQuickMenuBarPrivate::contentData()
-{
- Q_Q(QQuickMenuBar);
- return QQmlListProperty<QObject>(q, nullptr,
- QQuickMenuBarPrivate::contentData_append,
- QQuickContainerPrivate::contentData_count,
- QQuickContainerPrivate::contentData_at,
- QQuickContainerPrivate::contentData_clear);
-}
-
-bool QQuickMenuBar::eventFilter(QObject *object, QEvent *event)
-{
- return QObject::eventFilter(object, event);
-}
-
-void QQuickMenuBar::keyPressEvent(QKeyEvent *event)
-{
- Q_D(QQuickMenuBar);
- QQuickContainer::keyReleaseEvent(event);
-
- switch (event->key()) {
- case Qt::Key_Up:
- d->toggleCurrentMenu(false, false);
- break;
-
- case Qt::Key_Down:
- d->toggleCurrentMenu(true, true);
- break;
-
- case Qt::Key_Left:
- case Qt::Key_Right:
- if (isMirrored() == (event->key() == Qt::Key_Left))
- d->activateNextItem();
- else
- d->activatePreviousItem();
- break;
- case Qt::Key_Escape:
- if (d->currentItem) {
- d->activateItem(nullptr);
- setFocus(false);
- }
- break;
- default:
- break;
- }
-}
-
-void QQuickMenuBar::keyReleaseEvent(QKeyEvent *event)
-{
- QQuickContainer::keyReleaseEvent(event);
-
- switch (event->key()) {
- case Qt::Key_Up:
- case Qt::Key_Down:
- case Qt::Key_Left:
- case Qt::Key_Right:
- case Qt::Key_Escape:
- event->accept();
- break;
-
- default:
- event->ignore();
- break;
- }
-}
-
-void QQuickMenuBar::hoverLeaveEvent(QHoverEvent *event)
-{
- Q_D(QQuickMenuBar);
- QQuickContainer::hoverLeaveEvent(event);
- if (!d->popupMode && d->currentItem)
- d->activateItem(nullptr);
-}
-
-bool QQuickMenuBar::isContent(QQuickItem *item) const
-{
- return qobject_cast<QQuickMenuBarItem *>(item);
-}
-
-void QQuickMenuBar::itemAdded(int index, QQuickItem *item)
-{
- Q_D(QQuickMenuBar);
- QQuickContainer::itemAdded(index, item);
- if (QQuickMenuBarItem *menuBarItem = qobject_cast<QQuickMenuBarItem *>(item)) {
- QQuickMenuBarItemPrivate::get(menuBarItem)->setMenuBar(this);
- QObjectPrivate::connect(menuBarItem, &QQuickControl::hoveredChanged, d, &QQuickMenuBarPrivate::onItemHovered);
- QObjectPrivate::connect(menuBarItem, &QQuickMenuBarItem::triggered, d, &QQuickMenuBarPrivate::onItemTriggered);
- if (QQuickMenu *menu = menuBarItem->menu())
- QObjectPrivate::connect(menu, &QQuickPopup::aboutToHide, d, &QQuickMenuBarPrivate::onMenuAboutToHide);
- }
- d->updateImplicitContentSize();
- emit menusChanged();
-}
-
-void QQuickMenuBar::itemMoved(int index, QQuickItem *item)
-{
- QQuickContainer::itemMoved(index, item);
- emit menusChanged();
-}
-
-void QQuickMenuBar::itemRemoved(int index, QQuickItem *item)
-{
- Q_D(QQuickMenuBar);
- QQuickContainer::itemRemoved(index, item);
- if (QQuickMenuBarItem *menuBarItem = qobject_cast<QQuickMenuBarItem *>(item)) {
- QQuickMenuBarItemPrivate::get(menuBarItem)->setMenuBar(nullptr);
- QObjectPrivate::disconnect(menuBarItem, &QQuickControl::hoveredChanged, d, &QQuickMenuBarPrivate::onItemHovered);
- QObjectPrivate::disconnect(menuBarItem, &QQuickMenuBarItem::triggered, d, &QQuickMenuBarPrivate::onItemTriggered);
- if (QQuickMenu *menu = menuBarItem->menu())
- QObjectPrivate::disconnect(menu, &QQuickPopup::aboutToHide, d, &QQuickMenuBarPrivate::onMenuAboutToHide);
- }
- d->updateImplicitContentSize();
- emit menusChanged();
-}
-
-QFont QQuickMenuBar::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::MenuBar);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickMenuBar::accessibleRole() const
-{
- return QAccessible::MenuBar;
-}
-#endif
-
-QT_END_NAMESPACE
-
-#include "moc_qquickmenubar_p.cpp"
diff --git a/src/quicktemplates2/qquickmenubar_p.h b/src/quicktemplates2/qquickmenubar_p.h
deleted file mode 100644
index 5eb5dabf..00000000
--- a/src/quicktemplates2/qquickmenubar_p.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMENUBAR_P_H
-#define QQUICKMENUBAR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontainer_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickMenu;
-class QQuickMenuBarPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickMenuBar : public QQuickContainer
-{
- Q_OBJECT
- Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged FINAL)
- Q_PRIVATE_PROPERTY(QQuickMenuBar::d_func(), QQmlListProperty<QQuickMenu> menus READ menus NOTIFY menusChanged FINAL)
- Q_PRIVATE_PROPERTY(QQuickMenuBar::d_func(), QQmlListProperty<QObject> contentData READ contentData FINAL)
- QML_NAMED_ELEMENT(MenuBar)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickMenuBar(QQuickItem *parent = nullptr);
-
- QQmlComponent *delegate() const;
- void setDelegate(QQmlComponent *delegate);
-
- Q_INVOKABLE QQuickMenu *menuAt(int index) const;
- Q_INVOKABLE void addMenu(QQuickMenu *menu);
- Q_INVOKABLE void insertMenu(int index, QQuickMenu *menu);
- Q_INVOKABLE void removeMenu(QQuickMenu *menu);
- Q_INVOKABLE QQuickMenu *takeMenu(int index);
-
-Q_SIGNALS:
- void delegateChanged();
- void menusChanged();
-
-protected:
- bool eventFilter(QObject *object, QEvent *event) override;
- void keyPressEvent(QKeyEvent *event) override;
- void keyReleaseEvent(QKeyEvent *event) override;
- void hoverLeaveEvent(QHoverEvent *event) override;
-
- bool isContent(QQuickItem *item) const override;
- void itemAdded(int index, QQuickItem *item) override;
- void itemMoved(int index, QQuickItem *item) override;
- void itemRemoved(int index, QQuickItem *item) override;
-
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickMenuBar)
- Q_DECLARE_PRIVATE(QQuickMenuBar)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickMenuBar)
-
-#endif // QQUICKMENUBAR_P_H
diff --git a/src/quicktemplates2/qquickmenubar_p_p.h b/src/quicktemplates2/qquickmenubar_p_p.h
deleted file mode 100644
index 0562d7e5..00000000
--- a/src/quicktemplates2/qquickmenubar_p_p.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMENUBAR_P_P_H
-#define QQUICKMENUBAR_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickmenubar_p.h>
-#include <QtQuickTemplates2/private/qquickcontainer_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQmlComponent;
-class QQuickMenuBarItem;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickMenuBarPrivate : public QQuickContainerPrivate
-{
- Q_DECLARE_PUBLIC(QQuickMenuBar)
-
-public:
- static QQuickMenuBarPrivate *get(QQuickMenuBar *menuBar)
- {
- return menuBar->d_func();
- }
-
- QQmlListProperty<QQuickMenu> menus();
- QQmlListProperty<QObject> contentData();
-
- QQuickItem *beginCreateItem(QQuickMenu *menu);
- void completeCreateItem();
-
- QQuickItem *createItem(QQuickMenu *menu);
-
- void toggleCurrentMenu(bool visible, bool activate);
- void activateItem(QQuickMenuBarItem *item);
- void activateNextItem();
- void activatePreviousItem();
-
- void onItemHovered();
- void onItemTriggered();
- void onMenuAboutToHide();
-
- qreal getContentWidth() const override;
- qreal getContentHeight() const override;
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- static void contentData_append(QQmlListProperty<QObject> *prop, QObject *obj);
-
- static void menus_append(QQmlListProperty<QQuickMenu> *prop, QQuickMenu *obj);
- static qsizetype menus_count(QQmlListProperty<QQuickMenu> *prop);
- static QQuickMenu *menus_at(QQmlListProperty<QQuickMenu> *prop, qsizetype index);
- static void menus_clear(QQmlListProperty<QQuickMenu> *prop);
-
- QPalette defaultPalette() const override;
-
- bool popupMode = false;
- bool triggering = false;
- QQmlComponent *delegate = nullptr;
- QPointer<QQuickMenuBarItem> currentItem;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKMENUBAR_P_P_H
diff --git a/src/quicktemplates2/qquickmenubaritem.cpp b/src/quicktemplates2/qquickmenubaritem.cpp
deleted file mode 100644
index de43adb6..00000000
--- a/src/quicktemplates2/qquickmenubaritem.cpp
+++ /dev/null
@@ -1,187 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmenubaritem_p.h"
-#include "qquickmenubaritem_p_p.h"
-#include "qquickmenubar_p.h"
-#include "qquickmenu_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype MenuBarItem
- \inherits AbstractButton
-//! \instantiates QQuickMenuBarItem
- \inqmlmodule QtQuick.Controls
- \since 5.10
- \ingroup qtquickcontrols2-menus
- \brief Presents a drop-down menu within a MenuBar.
-
- MenuBarItem presents a Menu within a MenuBar. The respective drop-down menu
- is shown when a MenuBarItem is \l triggered via keyboard, mouse, or touch.
-
- \image qtquickcontrols2-menubar.png
-
- MenuBarItem is used as a default \l {MenuBar::}{delegate} type for MenuBar.
- Notice that it is not necessary to declare MenuBarItem instances by hand when
- using MenuBar. It is sufficient to declare Menu instances as children of the
- MenuBar and the respective items are created automatically.
-
- \sa {Customizing MenuBar}, MenuBar, {Menu Controls}
-*/
-
-/*!
- \qmlsignal void QtQuick.Controls::MenuBarItem::triggered()
-
- This signal is emitted when the menu bar item is triggered by the user.
-*/
-
-void QQuickMenuBarItemPrivate::setMenuBar(QQuickMenuBar *newMenuBar)
-{
- Q_Q(QQuickMenuBarItem);
- if (menuBar == newMenuBar)
- return;
-
- menuBar = newMenuBar;
- emit q->menuBarChanged();
-}
-
-QPalette QQuickMenuBarItemPrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::MenuBar);
-}
-
-QQuickMenuBarItem::QQuickMenuBarItem(QQuickItem *parent)
- : QQuickAbstractButton(*(new QQuickMenuBarItemPrivate), parent)
-{
- setFocusPolicy(Qt::NoFocus);
- connect(this, &QQuickAbstractButton::clicked, this, &QQuickMenuBarItem::triggered);
-}
-
-/*!
- \qmlproperty Menu QtQuick.Controls::MenuBarItem::menuBar
- \readonly
-
- This property holds the menu bar that contains this item,
- or \c null if the item is not in a menu bar.
-*/
-QQuickMenuBar *QQuickMenuBarItem::menuBar() const
-{
- Q_D(const QQuickMenuBarItem);
- return d->menuBar;
-}
-
-/*!
- \qmlproperty Menu QtQuick.Controls::MenuBarItem::menu
-
- This property holds the menu that this item presents in a
- menu bar, or \c null if this item does not have a menu.
-*/
-QQuickMenu *QQuickMenuBarItem::menu() const
-{
- Q_D(const QQuickMenuBarItem);
- return d->menu;
-}
-
-void QQuickMenuBarItem::setMenu(QQuickMenu *menu)
-{
- Q_D(QQuickMenuBarItem);
- if (d->menu == menu)
- return;
-
- if (d->menu)
- disconnect(d->menu, &QQuickMenu::titleChanged, this, &QQuickAbstractButton::setText);
-
- if (menu) {
- setText(menu->title());
- menu->setY(height());
- menu->setParentItem(this);
- menu->setClosePolicy(QQuickPopup::CloseOnEscape | QQuickPopup::CloseOnPressOutsideParent | QQuickPopup::CloseOnReleaseOutsideParent);
- connect(menu, &QQuickMenu::titleChanged, this, &QQuickAbstractButton::setText);
- }
-
- d->menu = menu;
- emit menuChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::MenuBarItem::highlighted
-
- This property holds whether the menu bar item is highlighted by the user.
-
- A menu bar item can be highlighted by mouse hover or keyboard navigation.
-
- The default value is \c false.
-*/
-bool QQuickMenuBarItem::isHighlighted() const
-{
- Q_D(const QQuickMenuBarItem);
- return d->highlighted;
-}
-
-void QQuickMenuBarItem::setHighlighted(bool highlighted)
-{
- Q_D(QQuickMenuBarItem);
- if (highlighted == d->highlighted)
- return;
-
- d->highlighted = highlighted;
- emit highlightedChanged();
-}
-
-void QQuickMenuBarItem::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickMenuBarItem);
- QQuickAbstractButton::geometryChange(newGeometry, oldGeometry);
- if (d->menu)
- d->menu->setY(newGeometry.height());
-}
-
-QFont QQuickMenuBarItem::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::MenuBar);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickMenuBarItem::accessibleRole() const
-{
- return QAccessible::MenuBar;
-}
-#endif
-
-QT_END_NAMESPACE
-
-#include "moc_qquickmenubaritem_p.cpp"
diff --git a/src/quicktemplates2/qquickmenubaritem_p.h b/src/quicktemplates2/qquickmenubaritem_p.h
deleted file mode 100644
index a913f242..00000000
--- a/src/quicktemplates2/qquickmenubaritem_p.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMENUBARITEM_P_H
-#define QQUICKMENUBARITEM_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickMenu;
-class QQuickMenuBar;
-class QQuickMenuBarItemPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickMenuBarItem : public QQuickAbstractButton
-{
- Q_OBJECT
- Q_PROPERTY(QQuickMenuBar *menuBar READ menuBar NOTIFY menuBarChanged FINAL)
- Q_PROPERTY(QQuickMenu *menu READ menu WRITE setMenu NOTIFY menuChanged FINAL)
- Q_PROPERTY(bool highlighted READ isHighlighted WRITE setHighlighted NOTIFY highlightedChanged FINAL)
- QML_NAMED_ELEMENT(MenuBarItem)
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickMenuBarItem(QQuickItem *parent = nullptr);
-
- QQuickMenuBar *menuBar() const;
-
- QQuickMenu *menu() const;
- void setMenu(QQuickMenu *menu);
-
- bool isHighlighted() const;
- void setHighlighted(bool highlighted);
-
-Q_SIGNALS:
- void triggered();
- void menuBarChanged();
- void menuChanged();
- void highlightedChanged();
-
-protected:
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
-
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickMenuBarItem)
- Q_DECLARE_PRIVATE(QQuickMenuBarItem)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickMenuBarItem)
-
-#endif // QQUICKMENUBARITEM_P_H
diff --git a/src/quicktemplates2/qquickmenubaritem_p_p.h b/src/quicktemplates2/qquickmenubaritem_p_p.h
deleted file mode 100644
index 22c509dc..00000000
--- a/src/quicktemplates2/qquickmenubaritem_p_p.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMENUBARITEM_P_P_H
-#define QQUICKMENUBARITEM_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickmenubaritem_p.h>
-#include <QtQuickTemplates2/private/qquickabstractbutton_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickMenu;
-class QQuickMenuBar;
-
-class QQuickMenuBarItemPrivate : public QQuickAbstractButtonPrivate
-{
- Q_DECLARE_PUBLIC(QQuickMenuBarItem)
-
-public:
- static QQuickMenuBarItemPrivate *get(QQuickMenuBarItem *item)
- {
- return item->d_func();
- }
-
- void setMenuBar(QQuickMenuBar *menuBar);
-
- QPalette defaultPalette() const override;
-
- bool highlighted = false;
- QQuickMenu *menu = nullptr;
- QQuickMenuBar *menuBar = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKMENUBARITEM_P_P_H
diff --git a/src/quicktemplates2/qquickmenuitem.cpp b/src/quicktemplates2/qquickmenuitem.cpp
deleted file mode 100644
index 55902441..00000000
--- a/src/quicktemplates2/qquickmenuitem.cpp
+++ /dev/null
@@ -1,281 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmenuitem_p.h"
-#include "qquickmenuitem_p_p.h"
-#include "qquickmenu_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtQuick/private/qquickevents_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype MenuItem
- \inherits AbstractButton
-//! \instantiates QQuickMenuItem
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-menus
- \brief Presents an item within a Menu.
-
- MenuItem is a convenience type that implements the AbstractButton API,
- providing a familiar way to respond to menu items being \l triggered, for
- example.
-
- MenuItem inherits its API from AbstractButton. For instance, you can set
- \l {AbstractButton::text}{text} and \l {Icons in Qt Quick Controls}{icon}
- using the AbstractButton API.
-
- \code
- Button {
- id: fileButton
- text: "File"
- onClicked: menu.open()
-
- Menu {
- id: menu
-
- MenuItem {
- text: "New..."
- onTriggered: document.reset()
- }
- MenuItem {
- text: "Open..."
- onTriggered: openDialog.open()
- }
- MenuItem {
- text: "Save"
- onTriggered: saveDialog.open()
- }
- }
- }
- \endcode
-
- \sa {Customizing Menu}, Menu, {Menu Controls}
-*/
-
-void QQuickMenuItemPrivate::setMenu(QQuickMenu *newMenu)
-{
- Q_Q(QQuickMenuItem);
- if (menu == newMenu)
- return;
-
- menu = newMenu;
- emit q->menuChanged();
-}
-
-void QQuickMenuItemPrivate::setSubMenu(QQuickMenu *newSubMenu)
-{
- Q_Q(QQuickMenuItem);
- if (subMenu == newSubMenu)
- return;
-
- if (subMenu) {
- QObject::disconnect(subMenu, &QQuickMenu::titleChanged, q, &QQuickAbstractButton::setText);
- QObjectPrivate::disconnect(subMenu, &QQuickPopup::enabledChanged, this, &QQuickMenuItemPrivate::updateEnabled);
- }
-
- if (newSubMenu) {
- QObject::connect(newSubMenu, &QQuickMenu::titleChanged, q, &QQuickAbstractButton::setText);
- QObjectPrivate::connect(newSubMenu, &QQuickPopup::enabledChanged, this, &QQuickMenuItemPrivate::updateEnabled);
- q->setText(newSubMenu->title());
- }
-
- subMenu = newSubMenu;
- updateEnabled();
- emit q->subMenuChanged();
-}
-
-void QQuickMenuItemPrivate::updateEnabled()
-{
- Q_Q(QQuickMenuItem);
- q->setEnabled(subMenu && subMenu->isEnabled());
-}
-
-static inline QString arrowName() { return QStringLiteral("arrow"); }
-
-void QQuickMenuItemPrivate::cancelArrow()
-{
- Q_Q(QQuickAbstractButton);
- quickCancelDeferred(q, arrowName());
-}
-
-void QQuickMenuItemPrivate::executeArrow(bool complete)
-{
- Q_Q(QQuickMenuItem);
- if (arrow.wasExecuted())
- return;
-
- if (!arrow || complete)
- quickBeginDeferred(q, arrowName(), arrow);
- if (complete)
- quickCompleteDeferred(q, arrowName(), arrow);
-}
-
-bool QQuickMenuItemPrivate::acceptKeyClick(Qt::Key key) const
-{
- return key == Qt::Key_Space || key == Qt::Key_Return || key == Qt::Key_Enter;
-}
-
-QPalette QQuickMenuItemPrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::Menu);
-}
-
-/*!
- \qmlsignal void QtQuick.Controls::MenuItem::triggered()
-
- This signal is emitted when the menu item is triggered by the user.
-*/
-
-QQuickMenuItem::QQuickMenuItem(QQuickItem *parent)
- : QQuickAbstractButton(*(new QQuickMenuItemPrivate), parent)
-{
- connect(this, &QQuickAbstractButton::clicked, this, &QQuickMenuItem::triggered);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::MenuItem::highlighted
-
- This property holds whether the menu item is highlighted by the user.
-
- A menu item can be highlighted by mouse hover or keyboard navigation.
-
- The default value is \c false.
-
- \sa Menu::currentIndex
-*/
-bool QQuickMenuItem::isHighlighted() const
-{
- Q_D(const QQuickMenuItem);
- return d->highlighted;
-}
-
-void QQuickMenuItem::setHighlighted(bool highlighted)
-{
- Q_D(QQuickMenuItem);
- if (highlighted == d->highlighted)
- return;
-
- d->highlighted = highlighted;
- emit highlightedChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty Item QtQuick.Controls::MenuItem::arrow
-
- This property holds the sub-menu arrow item.
-
- \sa {Customizing Menu}
-*/
-QQuickItem *QQuickMenuItem::arrow() const
-{
- QQuickMenuItemPrivate *d = const_cast<QQuickMenuItemPrivate *>(d_func());
- if (!d->arrow)
- d->executeArrow();
- return d->arrow;
-}
-
-void QQuickMenuItem::setArrow(QQuickItem *arrow)
-{
- Q_D(QQuickMenuItem);
- if (d->arrow == arrow)
- return;
-
- if (!d->arrow.isExecuting())
- d->cancelArrow();
-
- QQuickControlPrivate::hideOldItem(d->arrow);
- d->arrow = arrow;
- if (arrow && !arrow->parentItem())
- arrow->setParentItem(this);
- if (!d->arrow.isExecuting())
- emit arrowChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty Menu QtQuick.Controls::MenuItem::menu
- \readonly
-
- This property holds the menu that contains this menu item,
- or \c null if the item is not in a menu.
-*/
-QQuickMenu *QQuickMenuItem::menu() const
-{
- Q_D(const QQuickMenuItem);
- return d->menu;
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty Menu QtQuick.Controls::MenuItem::subMenu
- \readonly
-
- This property holds the sub-menu that this item presents in
- the parent menu, or \c null if this item is not a sub-menu item.
-*/
-QQuickMenu *QQuickMenuItem::subMenu() const
-{
- Q_D(const QQuickMenuItem);
- return d->subMenu;
-}
-
-void QQuickMenuItem::componentComplete()
-{
- Q_D(QQuickMenuItem);
- d->executeArrow(true);
- QQuickAbstractButton::componentComplete();
-}
-
-QFont QQuickMenuItem::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::Menu);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickMenuItem::accessibleRole() const
-{
- return QAccessible::MenuItem;
-}
-#endif
-
-QT_END_NAMESPACE
-
-#include "moc_qquickmenuitem_p.cpp"
diff --git a/src/quicktemplates2/qquickmenuitem_p.h b/src/quicktemplates2/qquickmenuitem_p.h
deleted file mode 100644
index 817da76b..00000000
--- a/src/quicktemplates2/qquickmenuitem_p.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMENUITEM_P_H
-#define QQUICKMENUITEM_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickMenu;
-class QQuickMenuItemPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickMenuItem : public QQuickAbstractButton
-{
- Q_OBJECT
- Q_PROPERTY(bool highlighted READ isHighlighted WRITE setHighlighted NOTIFY highlightedChanged FINAL)
- // 2.3 (Qt 5.10)
- Q_PROPERTY(QQuickItem *arrow READ arrow WRITE setArrow NOTIFY arrowChanged FINAL REVISION(2, 3))
- Q_PROPERTY(QQuickMenu *menu READ menu NOTIFY menuChanged FINAL REVISION(2, 3))
- Q_PROPERTY(QQuickMenu *subMenu READ subMenu NOTIFY subMenuChanged FINAL REVISION(2, 3))
- Q_CLASSINFO("DeferredPropertyNames", "arrow,background,contentItem,indicator")
- QML_NAMED_ELEMENT(MenuItem)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickMenuItem(QQuickItem *parent = nullptr);
-
- bool isHighlighted() const;
- void setHighlighted(bool highlighted);
-
- // 2.3 (Qt 5.10)
- QQuickItem *arrow() const;
- void setArrow(QQuickItem *arrow);
-
- QQuickMenu *menu() const;
- QQuickMenu *subMenu() const;
-
-Q_SIGNALS:
- void triggered();
- void highlightedChanged();
- // 2.3 (Qt 5.10)
- Q_REVISION(2, 3) void arrowChanged();
- Q_REVISION(2, 3) void menuChanged();
- Q_REVISION(2, 3) void subMenuChanged();
-
-protected:
- void componentComplete() override;
-
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickMenuItem)
- Q_DECLARE_PRIVATE(QQuickMenuItem)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickMenuItem)
-
-#endif // QQUICKMENUITEM_P_H
diff --git a/src/quicktemplates2/qquickmenuitem_p_p.h b/src/quicktemplates2/qquickmenuitem_p_p.h
deleted file mode 100644
index 966e14e7..00000000
--- a/src/quicktemplates2/qquickmenuitem_p_p.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMENUITEM_P_P_H
-#define QQUICKMENUITEM_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickmenuitem_p.h>
-#include <QtQuickTemplates2/private/qquickabstractbutton_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickMenu;
-
-class QQuickMenuItemPrivate : public QQuickAbstractButtonPrivate
-{
- Q_DECLARE_PUBLIC(QQuickMenuItem)
-
-public:
- static QQuickMenuItemPrivate *get(QQuickMenuItem *item)
- {
- return item->d_func();
- }
-
- void setMenu(QQuickMenu *menu);
- void setSubMenu(QQuickMenu *subMenu);
-
- void updateEnabled();
-
- void cancelArrow();
- void executeArrow(bool complete = false);
-
- bool acceptKeyClick(Qt::Key key) const override;
-
- QPalette defaultPalette() const override;
-
- bool highlighted = false;
- QQuickDeferredPointer<QQuickItem> arrow;
- QQuickMenu *menu = nullptr;
- QQuickMenu *subMenu = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKMENUITEM_P_P_H
diff --git a/src/quicktemplates2/qquickmenuseparator.cpp b/src/quicktemplates2/qquickmenuseparator.cpp
deleted file mode 100644
index f7f3017d..00000000
--- a/src/quicktemplates2/qquickmenuseparator.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickmenuseparator_p.h"
-#include "qquickcontrol_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype MenuSeparator
- \inherits Control
-//! \instantiates QQuickMenuSeparator
- \inqmlmodule QtQuick.Controls
- \since 5.8
- \ingroup qtquickcontrols2-separators
- \brief Separates a group of items in a menu from adjacent items.
-
- MenuSeparator is used to visually distinguish between groups of items in a
- menu by separating them with a line.
-
- \image qtquickcontrols2-menuseparator.png
-
- \quotefromfile qtquickcontrols2-menuseparator-custom.qml
- \skipto import QtQuick
- \printuntil import QtQuick.Controls
- \skipto Menu
- \printto contentItem.parent: window
- \skipline contentItem.parent: window
- \printuntil text: qsTr("Exit")
- \printuntil }
- \printuntil }
-
- \sa {Customizing Menu}, Menu, {Separator Controls}
-*/
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickMenuSeparatorPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickMenuSeparator)
-
-public:
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::Menu); }
-};
-
-QQuickMenuSeparator::QQuickMenuSeparator(QQuickItem *parent)
- : QQuickControl(*(new QQuickMenuSeparatorPrivate), parent)
-{
-}
-
-QFont QQuickMenuSeparator::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::Menu);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickMenuSeparator::accessibleRole() const
-{
- return QAccessible::Separator;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickmenuseparator_p.h b/src/quicktemplates2/qquickmenuseparator_p.h
deleted file mode 100644
index 330aaac4..00000000
--- a/src/quicktemplates2/qquickmenuseparator_p.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKMENUSEPARATOR_P_H
-#define QQUICKMENUSEPARATOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickMenuSeparator;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickMenuSeparator : public QQuickControl
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(MenuSeparator)
- QML_ADDED_IN_VERSION(2, 1)
-
-public:
- explicit QQuickMenuSeparator(QQuickItem *parent = nullptr);
-
-protected:
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickMenuSeparator)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickMenuSeparator)
-
-#endif // QQUICKMENUSEPARATOR_P_H
diff --git a/src/quicktemplates2/qquickoverlay.cpp b/src/quicktemplates2/qquickoverlay.cpp
deleted file mode 100644
index 6689d93c..00000000
--- a/src/quicktemplates2/qquickoverlay.cpp
+++ /dev/null
@@ -1,728 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickcontrol_p_p.h"
-#include "qquickoverlay_p.h"
-#include "qquickoverlay_p_p.h"
-#include "qquickpopupitem_p_p.h"
-#include "qquickpopup_p_p.h"
-#include "qquickdrawer_p.h"
-#include "qquickdrawer_p_p.h"
-#include "qquickapplicationwindow_p.h"
-#include <QtQml/qqmlinfo.h>
-#include <QtQml/qqmlproperty.h>
-#include <QtQml/qqmlcomponent.h>
-#include <algorithm>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Overlay
- \inherits Item
-//! \instantiates QQuickOverlay
- \inqmlmodule QtQuick.Controls
- \since 5.10
- \brief A window overlay for popups.
-
- Overlay provides a layer for popups, ensuring that popups are displayed above
- other content and that the background is dimmed when a \l {Popup::}{modal} or
- \l {Popup::dim}{dimmed} popup is visible.
-
- The overlay is an ordinary Item that covers the entire window. It can be used
- as a visual parent to position a popup in scene coordinates.
-
- \include qquickoverlay-popup-parent.qdocinc
-
- \sa ApplicationWindow
-*/
-
-QList<QQuickPopup *> QQuickOverlayPrivate::stackingOrderPopups() const
-{
- const QList<QQuickItem *> children = paintOrderChildItems();
-
- QList<QQuickPopup *> popups;
- popups.reserve(children.count());
-
- for (auto it = children.crbegin(), end = children.crend(); it != end; ++it) {
- QQuickPopup *popup = qobject_cast<QQuickPopup *>((*it)->parent());
- if (popup)
- popups += popup;
- }
-
- return popups;
-}
-
-QList<QQuickDrawer *> QQuickOverlayPrivate::stackingOrderDrawers() const
-{
- QList<QQuickDrawer *> sorted(allDrawers);
- std::sort(sorted.begin(), sorted.end(), [](const QQuickDrawer *one, const QQuickDrawer *another) {
- return one->z() > another->z();
- });
- return sorted;
-}
-
-void QQuickOverlayPrivate::itemGeometryChanged(QQuickItem *, QQuickGeometryChange, const QRectF &)
-{
- updateGeometry();
-}
-
-bool QQuickOverlayPrivate::startDrag(QEvent *event, const QPointF &pos)
-{
- Q_Q(QQuickOverlay);
- if (allDrawers.isEmpty())
- return false;
-
- // don't start dragging a drawer if a modal popup overlay is blocking (QTBUG-60602)
- QQuickItem *item = q->childAt(pos.x(), pos.y());
- if (item) {
- const auto popups = stackingOrderPopups();
- for (QQuickPopup *popup : popups) {
- QQuickPopupPrivate *p = QQuickPopupPrivate::get(popup);
- if (p->dimmer == item && popup->isVisible() && popup->isModal())
- return false;
- }
- }
-
- const QList<QQuickDrawer *> drawers = stackingOrderDrawers();
- for (QQuickDrawer *drawer : drawers) {
- QQuickDrawerPrivate *p = QQuickDrawerPrivate::get(drawer);
- if (p->startDrag(event)) {
- setMouseGrabberPopup(drawer);
- return true;
- }
- }
-
- return false;
-}
-
-bool QQuickOverlayPrivate::handlePress(QQuickItem *source, QEvent *event, QQuickPopup *target)
-{
- if (target) {
- if (target->overlayEvent(source, event)) {
- setMouseGrabberPopup(target);
- return true;
- }
- return false;
- }
-
- switch (event->type()) {
- default: {
- if (mouseGrabberPopup)
- break;
-#if QT_CONFIG(quicktemplates2_multitouch)
- Q_FALLTHROUGH();
- case QEvent::TouchBegin:
- case QEvent::TouchUpdate:
- case QEvent::TouchEnd:
-#endif
- // allow non-modal popups to close themselves,
- // and non-dimming modal popups to block the event
- const auto popups = stackingOrderPopups();
- for (QQuickPopup *popup : popups) {
- if (popup->overlayEvent(source, event)) {
- setMouseGrabberPopup(popup);
- return true;
- }
- }
- break;
- }
- }
-
- event->ignore();
- return false;
-}
-
-bool QQuickOverlayPrivate::handleMove(QQuickItem *source, QEvent *event, QQuickPopup *target)
-{
- if (target)
- return target->overlayEvent(source, event);
- return false;
-}
-
-bool QQuickOverlayPrivate::handleRelease(QQuickItem *source, QEvent *event, QQuickPopup *target)
-{
- if (target) {
- setMouseGrabberPopup(nullptr);
- if (target->overlayEvent(source, event)) {
- setMouseGrabberPopup(nullptr);
- return true;
- }
- } else {
- const auto popups = stackingOrderPopups();
- for (QQuickPopup *popup : popups) {
- if (popup->overlayEvent(source, event))
- return true;
- }
- }
- return false;
-}
-
-bool QQuickOverlayPrivate::handleMouseEvent(QQuickItem *source, QMouseEvent *event, QQuickPopup *target)
-{
- switch (event->type()) {
- case QEvent::MouseButtonPress:
- if (!target && startDrag(event, event->scenePosition()))
- return true;
- return handlePress(source, event, target);
- case QEvent::MouseMove:
- return handleMove(source, event, target ? target : mouseGrabberPopup.data());
- case QEvent::MouseButtonRelease:
- return handleRelease(source, event, target ? target : mouseGrabberPopup.data());
- default:
- break;
- }
- return false;
-}
-
-bool QQuickOverlayPrivate::handleHoverEvent(QQuickItem *source, QHoverEvent *event, QQuickPopup *target)
-{
- switch (event->type()) {
- case QEvent::HoverEnter:
- case QEvent::HoverMove:
- case QEvent::HoverLeave:
- if (target)
- return target->overlayEvent(source, event);
- return false;
- default:
- Q_UNREACHABLE(); // function must only be called on hover events
- break;
- }
- return false;
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-bool QQuickOverlayPrivate::handleTouchEvent(QQuickItem *source, QTouchEvent *event, QQuickPopup *target)
-{
- bool handled = false;
- switch (event->type()) {
- case QEvent::TouchBegin:
- case QEvent::TouchUpdate:
- case QEvent::TouchEnd:
- for (const QTouchEvent::TouchPoint &point : event->points()) {
- switch (point.state()) {
- case QEventPoint::Pressed:
- if (!target && startDrag(event, point.scenePosition()))
- handled = true;
- else
- handled |= handlePress(source, event, target);
- break;
- case QEventPoint::Updated:
- handled |= handleMove(source, event, target ? target : mouseGrabberPopup.data());
- break;
- case QEventPoint::Released:
- handled |= handleRelease(source, event, target ? target : mouseGrabberPopup.data());
- break;
- default:
- break;
- }
- }
- break;
-
- default:
- break;
- }
-
- return handled;
-}
-#endif
-
-void QQuickOverlayPrivate::addPopup(QQuickPopup *popup)
-{
- Q_Q(QQuickOverlay);
- allPopups += popup;
- if (QQuickDrawer *drawer = qobject_cast<QQuickDrawer *>(popup)) {
- allDrawers += drawer;
- q->setVisible(!allDrawers.isEmpty() || !q->childItems().isEmpty());
- }
-}
-
-void QQuickOverlayPrivate::removePopup(QQuickPopup *popup)
-{
- Q_Q(QQuickOverlay);
- allPopups.removeOne(popup);
- if (allDrawers.removeOne(qobject_cast<QQuickDrawer *>(popup)))
- q->setVisible(!allDrawers.isEmpty() || !q->childItems().isEmpty());
-}
-
-void QQuickOverlayPrivate::setMouseGrabberPopup(QQuickPopup *popup)
-{
- if (popup && !popup->isVisible())
- popup = nullptr;
- mouseGrabberPopup = popup;
-}
-
-void QQuickOverlayPrivate::updateGeometry()
-{
- Q_Q(QQuickOverlay);
- if (!window)
- return;
-
- QPointF pos;
- QSizeF size = window->size();
- qreal rotation = 0;
-
- switch (window->contentOrientation()) {
- case Qt::PrimaryOrientation:
- case Qt::PortraitOrientation:
- size = window->size();
- break;
- case Qt::LandscapeOrientation:
- rotation = 90;
- pos = QPointF((size.width() - size.height()) / 2, -(size.width() - size.height()) / 2);
- size.transpose();
- break;
- case Qt::InvertedPortraitOrientation:
- rotation = 180;
- break;
- case Qt::InvertedLandscapeOrientation:
- rotation = 270;
- pos = QPointF((size.width() - size.height()) / 2, -(size.width() - size.height()) / 2);
- size.transpose();
- break;
- default:
- break;
- }
-
- q->setSize(size);
- q->setPosition(pos);
- q->setRotation(rotation);
-}
-
-QQuickOverlay::QQuickOverlay(QQuickItem *parent)
- : QQuickItem(*(new QQuickOverlayPrivate), parent)
-{
- Q_D(QQuickOverlay);
- setZ(1000001); // DefaultWindowDecoration+1
- setAcceptedMouseButtons(Qt::AllButtons);
-#if QT_CONFIG(quicktemplates2_multitouch)
- setAcceptTouchEvents(true);
-#endif
- setFiltersChildMouseEvents(true);
- setVisible(false);
-
- if (parent) {
- d->updateGeometry();
- QQuickItemPrivate::get(parent)->addItemChangeListener(d, QQuickItemPrivate::Geometry);
- if (QQuickWindow *window = parent->window()) {
- window->installEventFilter(this);
- QObjectPrivate::connect(window, &QWindow::contentOrientationChanged, d, &QQuickOverlayPrivate::updateGeometry);
- }
- }
-}
-
-QQuickOverlay::~QQuickOverlay()
-{
- Q_D(QQuickOverlay);
- if (QQuickItem *parent = parentItem())
- QQuickItemPrivate::get(parent)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
-}
-
-QQmlComponent *QQuickOverlay::modal() const
-{
- Q_D(const QQuickOverlay);
- return d->modal;
-}
-
-void QQuickOverlay::setModal(QQmlComponent *modal)
-{
- Q_D(QQuickOverlay);
- if (d->modal == modal)
- return;
-
- d->modal = modal;
- emit modalChanged();
-}
-
-QQmlComponent *QQuickOverlay::modeless() const
-{
- Q_D(const QQuickOverlay);
- return d->modeless;
-}
-
-void QQuickOverlay::setModeless(QQmlComponent *modeless)
-{
- Q_D(QQuickOverlay);
- if (d->modeless == modeless)
- return;
-
- d->modeless = modeless;
- emit modelessChanged();
-}
-
-QQuickOverlay *QQuickOverlay::overlay(QQuickWindow *window)
-{
- if (!window)
- return nullptr;
-
- const char *name = "_q_QQuickOverlay";
- QQuickOverlay *overlay = window->property(name).value<QQuickOverlay *>();
- if (!overlay) {
- QQuickItem *content = window->contentItem();
- // Do not re-create the overlay if the window is being destroyed
- // and thus, its content item no longer has a window associated.
- if (content && content->window()) {
- overlay = new QQuickOverlay(window->contentItem());
- window->setProperty(name, QVariant::fromValue(overlay));
- }
- }
- return overlay;
-}
-
-QQuickOverlayAttached *QQuickOverlay::qmlAttachedProperties(QObject *object)
-{
- return new QQuickOverlayAttached(object);
-}
-
-void QQuickOverlay::itemChange(ItemChange change, const ItemChangeData &data)
-{
- Q_D(QQuickOverlay);
- QQuickItem::itemChange(change, data);
-
- if (change == ItemChildAddedChange || change == ItemChildRemovedChange)
- setVisible(!d->allDrawers.isEmpty() || !childItems().isEmpty());
-}
-
-void QQuickOverlay::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickOverlay);
- QQuickItem::geometryChange(newGeometry, oldGeometry);
- for (QQuickPopup *popup : qAsConst(d->allPopups))
- QQuickPopupPrivate::get(popup)->resizeOverlay();
-}
-
-void QQuickOverlay::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickOverlay);
- d->handleMouseEvent(this, event);
-}
-
-void QQuickOverlay::mouseMoveEvent(QMouseEvent *event)
-{
- Q_D(QQuickOverlay);
- d->handleMouseEvent(this, event);
-}
-
-void QQuickOverlay::mouseReleaseEvent(QMouseEvent *event)
-{
- Q_D(QQuickOverlay);
- d->handleMouseEvent(this, event);
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickOverlay::touchEvent(QTouchEvent *event)
-{
- Q_D(QQuickOverlay);
- d->handleTouchEvent(this, event);
-}
-#endif
-
-#if QT_CONFIG(wheelevent)
-void QQuickOverlay::wheelEvent(QWheelEvent *event)
-{
- Q_D(QQuickOverlay);
- if (d->mouseGrabberPopup) {
- d->mouseGrabberPopup->overlayEvent(this, event);
- return;
- } else {
- const auto popups = d->stackingOrderPopups();
- for (QQuickPopup *popup : popups) {
- if (popup->overlayEvent(this, event))
- return;
- }
- }
- event->ignore();
-}
-#endif
-
-bool QQuickOverlay::childMouseEventFilter(QQuickItem *item, QEvent *event)
-{
- Q_D(QQuickOverlay);
- const auto popups = d->stackingOrderPopups();
- for (QQuickPopup *popup : popups) {
- QQuickPopupPrivate *p = QQuickPopupPrivate::get(popup);
-
- // Stop filtering overlay events when reaching a popup item or an item
- // that is inside the popup. Let the popup content handle its events.
- if (item == p->popupItem || p->popupItem->isAncestorOf(item))
- break;
-
- // Let the popup try closing itself when pressing or releasing over its
- // background dimming OR over another popup underneath, in case the popup
- // does not have background dimming.
- if (item == p->dimmer || !p->popupItem->isAncestorOf(item)) {
- switch (event->type()) {
-#if QT_CONFIG(quicktemplates2_multitouch)
- case QEvent::TouchBegin:
- case QEvent::TouchUpdate:
- case QEvent::TouchEnd:
- return d->handleTouchEvent(item, static_cast<QTouchEvent *>(event), popup);
-#endif
- case QEvent::HoverEnter:
- case QEvent::HoverMove:
- case QEvent::HoverLeave:
- return d->handleHoverEvent(item, static_cast<QHoverEvent *>(event), popup);
-
- case QEvent::MouseButtonPress:
- case QEvent::MouseMove:
- case QEvent::MouseButtonRelease:
- return d->handleMouseEvent(item, static_cast<QMouseEvent *>(event), popup);
-
- default:
- break;
- }
- }
- }
- return false;
-}
-
-bool QQuickOverlay::eventFilter(QObject *object, QEvent *event)
-{
- Q_D(QQuickOverlay);
- if (!isVisible() || object != d->window)
- return false;
-
- switch (event->type()) {
-#if QT_CONFIG(quicktemplates2_multitouch)
- case QEvent::TouchBegin:
- case QEvent::TouchUpdate:
- case QEvent::TouchEnd:
- if (static_cast<QTouchEvent *>(event)->touchPointStates() & QEventPoint::Pressed)
- emit pressed();
- if (static_cast<QTouchEvent *>(event)->touchPointStates() & QEventPoint::Released)
- emit released();
-
- // allow non-modal popups to close on touch release outside
- if (!d->mouseGrabberPopup) {
- for (const QTouchEvent::TouchPoint &point : static_cast<QTouchEvent *>(event)->points()) {
- if (point.state() == QEventPoint::Released) {
- if (d->handleRelease(d->window->contentItem(), event, nullptr))
- break;
- }
- }
- }
-
- QQuickWindowPrivate::get(d->window)->handleTouchEvent(static_cast<QTouchEvent *>(event));
-
- // If a touch event hasn't been accepted after being delivered, there
- // were no items interested in touch events at any of the touch points.
- // Make sure to accept the touch event in order to receive the consequent
- // touch events, to be able to close non-modal popups on release outside.
- event->accept();
- return true;
-#endif
-
- case QEvent::MouseButtonPress:
-#if QT_CONFIG(quicktemplates2_multitouch)
- // do not emit pressed() twice when mouse events have been synthesized from touch events
- if (static_cast<QMouseEvent *>(event)->source() == Qt::MouseEventNotSynthesized)
-#endif
- emit pressed();
-
- QQuickWindowPrivate::get(d->window)->handleMouseEvent(static_cast<QMouseEvent *>(event));
-
- // If a mouse event hasn't been accepted after being delivered, there
- // was no item interested in mouse events at the mouse point. Make sure
- // to accept the mouse event in order to receive the consequent mouse
- // events, to be able to close non-modal popups on release outside.
- event->accept();
- return true;
-
- case QEvent::MouseButtonRelease:
-#if QT_CONFIG(quicktemplates2_multitouch)
- // do not emit released() twice when mouse events have been synthesized from touch events
- if (static_cast<QMouseEvent *>(event)->source() == Qt::MouseEventNotSynthesized)
-#endif
- emit released();
-
- // allow non-modal popups to close on mouse release outside
- if (!d->mouseGrabberPopup)
- d->handleRelease(d->window->contentItem(), event, nullptr);
- break;
-
- default:
- break;
- }
-
- return false;
-}
-
-class QQuickOverlayAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickOverlayAttached)
-
-public:
- void setWindow(QQuickWindow *newWindow);
-
- QQuickWindow *window = nullptr;
- QQmlComponent *modal = nullptr;
- QQmlComponent *modeless = nullptr;
-};
-
-void QQuickOverlayAttachedPrivate::setWindow(QQuickWindow *newWindow)
-{
- Q_Q(QQuickOverlayAttached);
- if (window == newWindow)
- return;
-
- if (QQuickOverlay *oldOverlay = QQuickOverlay::overlay(window)) {
- QObject::disconnect(oldOverlay, &QQuickOverlay::pressed, q, &QQuickOverlayAttached::pressed);
- QObject::disconnect(oldOverlay, &QQuickOverlay::released, q, &QQuickOverlayAttached::released);
- }
-
- if (QQuickOverlay *newOverlay = QQuickOverlay::overlay(newWindow)) {
- QObject::connect(newOverlay, &QQuickOverlay::pressed, q, &QQuickOverlayAttached::pressed);
- QObject::connect(newOverlay, &QQuickOverlay::released, q, &QQuickOverlayAttached::released);
- }
-
- window = newWindow;
- emit q->overlayChanged();
-}
-
-/*!
- \qmlattachedsignal QtQuick.Controls::Overlay::pressed()
-
- This attached signal is emitted when the overlay is pressed by the user while
- a popup is visible.
-
- The signal can be attached to any item, popup, or window. When attached to an
- item or a popup, the signal is only emitted if the item or popup is in a window.
-*/
-
-/*!
- \qmlattachedsignal QtQuick.Controls::Overlay::released()
-
- This attached signal is emitted when the overlay is released by the user while
- a popup is visible.
-
- The signal can be attached to any item, popup, or window. When attached to an
- item or a popup, the signal is only emitted if the item or popup is in a window.
-*/
-
-QQuickOverlayAttached::QQuickOverlayAttached(QObject *parent)
- : QObject(*(new QQuickOverlayAttachedPrivate), parent)
-{
- Q_D(QQuickOverlayAttached);
- if (QQuickItem *item = qobject_cast<QQuickItem *>(parent)) {
- d->setWindow(item->window());
- QObjectPrivate::connect(item, &QQuickItem::windowChanged, d, &QQuickOverlayAttachedPrivate::setWindow);
- } else if (QQuickPopup *popup = qobject_cast<QQuickPopup *>(parent)) {
- d->setWindow(popup->window());
- QObjectPrivate::connect(popup, &QQuickPopup::windowChanged, d, &QQuickOverlayAttachedPrivate::setWindow);
- } else {
- d->setWindow(qobject_cast<QQuickWindow *>(parent));
- }
-}
-
-/*!
- \qmlattachedproperty Overlay QtQuick.Controls::Overlay::overlay
- \readonly
-
- This attached property holds the window overlay item.
-
- The property can be attached to any item, popup, or window. When attached to an
- item or a popup, the value is \c null if the item or popup is not in a window.
-*/
-QQuickOverlay *QQuickOverlayAttached::overlay() const
-{
- Q_D(const QQuickOverlayAttached);
- return QQuickOverlay::overlay(d->window);
-}
-
-/*!
- \qmlattachedproperty Component QtQuick.Controls::Overlay::modal
-
- This attached property holds a component to use as a visual item that implements
- background dimming for modal popups. It is created for and stacked below visible
- modal popups.
-
- The property can be attached to any popup.
-
- For example, to change the color of the background dimming for a modal
- popup, the following code can be used:
-
- \snippet qtquickcontrols2-overlay-modal.qml 1
-
- \sa Popup::modal
-*/
-QQmlComponent *QQuickOverlayAttached::modal() const
-{
- Q_D(const QQuickOverlayAttached);
- return d->modal;
-}
-
-void QQuickOverlayAttached::setModal(QQmlComponent *modal)
-{
- Q_D(QQuickOverlayAttached);
- if (d->modal == modal)
- return;
-
- d->modal = modal;
- emit modalChanged();
-}
-
-/*!
- \qmlattachedproperty Component QtQuick.Controls::Overlay::modeless
-
- This attached property holds a component to use as a visual item that implements
- background dimming for modeless popups. It is created for and stacked below visible
- dimming popups.
-
- The property can be attached to any popup.
-
- For example, to change the color of the background dimming for a modeless
- popup, the following code can be used:
-
- \snippet qtquickcontrols2-overlay-modeless.qml 1
-
- \sa Popup::dim
-*/
-QQmlComponent *QQuickOverlayAttached::modeless() const
-{
- Q_D(const QQuickOverlayAttached);
- return d->modeless;
-}
-
-void QQuickOverlayAttached::setModeless(QQmlComponent *modeless)
-{
- Q_D(QQuickOverlayAttached);
- if (d->modeless == modeless)
- return;
-
- d->modeless = modeless;
- emit modelessChanged();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickoverlay_p.h b/src/quicktemplates2/qquickoverlay_p.h
deleted file mode 100644
index c6e530e2..00000000
--- a/src/quicktemplates2/qquickoverlay_p.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKOVERLAY_P_H
-#define QQUICKOVERLAY_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/qquickitem.h>
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQmlComponent;
-class QQuickOverlayPrivate;
-class QQuickOverlayAttached;
-class QQuickOverlayAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickOverlay : public QQuickItem
-{
- Q_OBJECT
- Q_PROPERTY(QQmlComponent *modal READ modal WRITE setModal NOTIFY modalChanged FINAL)
- Q_PROPERTY(QQmlComponent *modeless READ modeless WRITE setModeless NOTIFY modelessChanged FINAL)
- QML_NAMED_ELEMENT(Overlay)
- QML_ATTACHED(QQuickOverlayAttached)
- QML_UNCREATABLE("")
- QML_ADDED_IN_VERSION(2, 3)
-
-public:
- explicit QQuickOverlay(QQuickItem *parent = nullptr);
- ~QQuickOverlay();
-
- QQmlComponent *modal() const;
- void setModal(QQmlComponent *modal);
-
- QQmlComponent *modeless() const;
- void setModeless(QQmlComponent *modeless);
-
- static QQuickOverlay *overlay(QQuickWindow *window);
-
- static QQuickOverlayAttached *qmlAttachedProperties(QObject *object);
-
-Q_SIGNALS:
- void modalChanged();
- void modelessChanged();
- void pressed();
- void released();
-
-protected:
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
-
- void mousePressEvent(QMouseEvent *event) override;
- void mouseMoveEvent(QMouseEvent *event) override;
- void mouseReleaseEvent(QMouseEvent *event) override;
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
-#endif
-#if QT_CONFIG(wheelevent)
- void wheelEvent(QWheelEvent *event) override;
-#endif
- bool childMouseEventFilter(QQuickItem *item, QEvent *event) override;
- bool eventFilter(QObject *object, QEvent *event) override;
-
-private:
- Q_DISABLE_COPY(QQuickOverlay)
- Q_DECLARE_PRIVATE(QQuickOverlay)
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickOverlayAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickOverlay *overlay READ overlay NOTIFY overlayChanged FINAL)
- Q_PROPERTY(QQmlComponent *modal READ modal WRITE setModal NOTIFY modalChanged FINAL)
- Q_PROPERTY(QQmlComponent *modeless READ modeless WRITE setModeless NOTIFY modelessChanged FINAL)
-
-public:
- explicit QQuickOverlayAttached(QObject *parent = nullptr);
-
- QQuickOverlay *overlay() const;
-
- QQmlComponent *modal() const;
- void setModal(QQmlComponent *modal);
-
- QQmlComponent *modeless() const;
- void setModeless(QQmlComponent *modeless);
-
-Q_SIGNALS:
- void overlayChanged();
- void modalChanged();
- void modelessChanged();
- void pressed();
- void released();
-
-private:
- Q_DISABLE_COPY(QQuickOverlayAttached)
- Q_DECLARE_PRIVATE(QQuickOverlayAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickOverlay)
-QML_DECLARE_TYPEINFO(QQuickOverlay, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKOVERLAY_P_H
diff --git a/src/quicktemplates2/qquickoverlay_p_p.h b/src/quicktemplates2/qquickoverlay_p_p.h
deleted file mode 100644
index fbb2f86c..00000000
--- a/src/quicktemplates2/qquickoverlay_p_p.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKOVERLAY_P_P_H
-#define QQUICKOVERLAY_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickoverlay_p.h>
-
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPopup;
-class QQuickDrawer;
-
-class QQuickOverlayPrivate : public QQuickItemPrivate, public QQuickItemChangeListener
-{
- Q_DECLARE_PUBLIC(QQuickOverlay)
-
-public:
- static QQuickOverlayPrivate *get(QQuickOverlay *overlay)
- {
- return overlay->d_func();
- }
-
- bool startDrag(QEvent *event, const QPointF &pos);
- bool handlePress(QQuickItem *source, QEvent *event, QQuickPopup *target);
- bool handleMove(QQuickItem *source, QEvent *event, QQuickPopup *target);
- bool handleRelease(QQuickItem *source, QEvent *event, QQuickPopup *target);
-
- bool handleMouseEvent(QQuickItem *source, QMouseEvent *event, QQuickPopup *target = nullptr);
- bool handleHoverEvent(QQuickItem *source, QHoverEvent *event, QQuickPopup *target = nullptr);
-#if QT_CONFIG(quicktemplates2_multitouch)
- bool handleTouchEvent(QQuickItem *source, QTouchEvent *event, QQuickPopup *target = nullptr);
-#endif
-
- void addPopup(QQuickPopup *popup);
- void removePopup(QQuickPopup *popup);
- void setMouseGrabberPopup(QQuickPopup *popup);
-
- QList<QQuickPopup *> stackingOrderPopups() const;
- QList<QQuickDrawer *> stackingOrderDrawers() const;
-
- void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override;
-
- void updateGeometry();
-
- QQmlComponent *modal = nullptr;
- QQmlComponent *modeless = nullptr;
- QList<QQuickPopup *> allPopups;
- QList<QQuickDrawer *> allDrawers;
- QPointer<QQuickPopup> mouseGrabberPopup;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKOVERLAY_P_P_H
diff --git a/src/quicktemplates2/qquickpage.cpp b/src/quicktemplates2/qquickpage.cpp
deleted file mode 100644
index 86470ebe..00000000
--- a/src/quicktemplates2/qquickpage.cpp
+++ /dev/null
@@ -1,496 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickpage_p.h"
-#include "qquickpage_p_p.h"
-#include "qquicktabbar_p.h"
-#include "qquicktoolbar_p.h"
-#include "qquickdialogbuttonbox_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Page
- \inherits Pane
-//! \instantiates QQuickPage
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-containers
- \ingroup qtquickcontrols2-focusscopes
- \brief Styled page control with support for a header and footer.
-
- Page is a container control which makes it convenient to add
- a \l header and \l footer item to a page.
-
- \image qtquickcontrols2-page-wireframe.png
-
- Items declared as children of a Page are:
- \list
- \li automatically parented to the Page's contentItem. Items created
- dynamically need to be explicitly parented to the contentItem.
- \li not automatically positioned or resized.
- \endlist
-
- The following example snippet illustrates how to use a page-specific
- toolbar header and an application-wide tabbar footer.
-
- \qml
- import QtQuick.Controls
- import QtQuick.Layouts
-
- ApplicationWindow {
- visible: true
-
- StackView {
- anchors.fill: parent
-
- initialItem: Page {
- header: ToolBar {
- // ...
- }
-
- ColumnLayout {
- anchors.fill: parent
- // ...
- }
- }
- }
-
- footer: TabBar {
- // ...
- }
- }
- \endqml
-
- \sa ApplicationWindow, {Container Controls},
- {Focus Management in Qt Quick Controls}
-*/
-
-static const QQuickItemPrivate::ChangeTypes LayoutChanges = QQuickItemPrivate::Geometry | QQuickItemPrivate::Visibility | QQuickItemPrivate::Destroyed
- | QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight;
-
-namespace {
- enum Position {
- Header,
- Footer
- };
-
- Q_STATIC_ASSERT(int(Header) == int(QQuickTabBar::Header));
- Q_STATIC_ASSERT(int(Footer) == int(QQuickTabBar::Footer));
-
- Q_STATIC_ASSERT(int(Header) == int(QQuickToolBar::Header));
- Q_STATIC_ASSERT(int(Footer) == int(QQuickToolBar::Footer));
-
- Q_STATIC_ASSERT(int(Header) == int(QQuickDialogButtonBox::Header));
- Q_STATIC_ASSERT(int(Footer) == int(QQuickDialogButtonBox::Footer));
-
- static void setPos(QQuickItem *item, Position position)
- {
- if (QQuickToolBar *toolBar = qobject_cast<QQuickToolBar *>(item))
- toolBar->setPosition(static_cast<QQuickToolBar::Position>(position));
- else if (QQuickTabBar *tabBar = qobject_cast<QQuickTabBar *>(item))
- tabBar->setPosition(static_cast<QQuickTabBar::Position>(position));
- else if (QQuickDialogButtonBox *buttonBox = qobject_cast<QQuickDialogButtonBox *>(item))
- buttonBox->setPosition(static_cast<QQuickDialogButtonBox::Position>(position));
- }
-}
-
-void QQuickPagePrivate::relayout()
-{
- Q_Q(QQuickPage);
- const qreal hh = header && header->isVisible() ? header->height() : 0;
- const qreal fh = footer && footer->isVisible() ? footer->height() : 0;
- const qreal hsp = hh > 0 ? spacing : 0;
- const qreal fsp = fh > 0 ? spacing : 0;
-
- if (contentItem) {
- contentItem->setY(q->topPadding() + hh + hsp);
- contentItem->setX(q->leftPadding());
- contentItem->setWidth(q->availableWidth());
- contentItem->setHeight(q->availableHeight() - hh - fh - hsp - fsp);
- }
-
- if (header)
- header->setWidth(q->width());
-
- if (footer) {
- footer->setY(q->height() - footer->height());
- footer->setWidth(q->width());
- }
-}
-
-void QQuickPagePrivate::resizeContent()
-{
- relayout();
-}
-
-void QQuickPagePrivate::itemVisibilityChanged(QQuickItem *item)
-{
- Q_Q(QQuickPage);
- QQuickPanePrivate::itemVisibilityChanged(item);
- if (item == header) {
- QBoolBlocker signalGuard(emittingImplicitSizeChangedSignals);
- emit q->implicitHeaderWidthChanged();
- emit q->implicitHeaderHeightChanged();
- relayout();
- } else if (item == footer) {
- QBoolBlocker signalGuard(emittingImplicitSizeChangedSignals);
- emit q->implicitFooterWidthChanged();
- emit q->implicitFooterHeightChanged();
- relayout();
- }
-}
-
-void QQuickPagePrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_Q(QQuickPage);
- QQuickPanePrivate::itemImplicitWidthChanged(item);
-
- // Avoid binding loops by skipping signal emission if we're already doing it.
- if (emittingImplicitSizeChangedSignals)
- return;
-
- if (item == header)
- emit q->implicitHeaderWidthChanged();
- else if (item == footer)
- emit q->implicitFooterWidthChanged();
-}
-
-void QQuickPagePrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_Q(QQuickPage);
- QQuickPanePrivate::itemImplicitHeightChanged(item);
-
- // Avoid binding loops by skipping signal emission if we're already doing it.
- if (emittingImplicitSizeChangedSignals)
- return;
-
- if (item == header)
- emit q->implicitHeaderHeightChanged();
- else if (item == footer)
- emit q->implicitFooterHeightChanged();
-}
-
-void QQuickPagePrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF & diff)
-{
- QQuickPanePrivate::itemGeometryChanged(item, change, diff);
- if (item == header || item == footer)
- relayout();
-}
-
-void QQuickPagePrivate::itemDestroyed(QQuickItem *item)
-{
- Q_Q(QQuickPage);
- QQuickPanePrivate::itemDestroyed(item);
- if (item == header) {
- header = nullptr;
- relayout();
- emit q->implicitHeaderWidthChanged();
- emit q->implicitHeaderHeightChanged();
- emit q->headerChanged();
- } else if (item == footer) {
- footer = nullptr;
- relayout();
- emit q->implicitFooterWidthChanged();
- emit q->implicitFooterHeightChanged();
- emit q->footerChanged();
- }
-}
-
-QQuickPage::QQuickPage(QQuickItem *parent)
- : QQuickPane(*(new QQuickPagePrivate), parent)
-{
-}
-
-QQuickPage::QQuickPage(QQuickPagePrivate &dd, QQuickItem *parent)
- : QQuickPane(dd, parent)
-{
-}
-
-QQuickPage::~QQuickPage()
-{
- Q_D(QQuickPage);
- if (d->header)
- QQuickItemPrivate::get(d->header)->removeItemChangeListener(d, LayoutChanges);
- if (d->footer)
- QQuickItemPrivate::get(d->footer)->removeItemChangeListener(d, LayoutChanges);
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::Page::title
-
- This property holds the page title.
-
- The title is often displayed at the top of a page to give
- the user context about the page they are viewing.
-
- Page does not render the title itself, but instead relies
- on the application to do so. For example:
-
- \code
- ApplicationWindow {
- visible: true
- width: 400
- height: 400
-
- header: Label {
- text: view.currentItem.title
- horizontalAlignment: Text.AlignHCenter
- }
-
- SwipeView {
- id: view
- anchors.fill: parent
-
- Page {
- title: qsTr("Home")
- }
- Page {
- title: qsTr("Discover")
- }
- Page {
- title: qsTr("Activity")
- }
- }
- }
- \endcode
-*/
-
-QString QQuickPage::title() const
-{
- return d_func()->title;
-}
-
-void QQuickPage::setTitle(const QString &title)
-{
- Q_D(QQuickPage);
- if (d->title == title)
- return;
-
- d->title = title;
- maybeSetAccessibleName(title);
- emit titleChanged();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Page::header
-
- This property holds the page header item. The header item is positioned to
- the top, and resized to the width of the page. The default value is \c null.
-
- \note Assigning a ToolBar, TabBar, or DialogButtonBox as a page header
- automatically sets the respective \l ToolBar::position, \l TabBar::position,
- or \l DialogButtonBox::position property to \c Header.
-
- \sa footer, ApplicationWindow::header
-*/
-QQuickItem *QQuickPage::header() const
-{
- Q_D(const QQuickPage);
- return d->header;
-}
-
-void QQuickPage::setHeader(QQuickItem *header)
-{
- Q_D(QQuickPage);
- if (d->header == header)
- return;
-
- if (d->header) {
- QQuickItemPrivate::get(d->header)->removeItemChangeListener(d, LayoutChanges);
- d->header->setParentItem(nullptr);
- }
- d->header = header;
- if (header) {
- header->setParentItem(this);
- QQuickItemPrivate::get(header)->addItemChangeListener(d, LayoutChanges);
- if (qFuzzyIsNull(header->z()))
- header->setZ(1);
- setPos(header, Header);
- }
- if (isComponentComplete())
- d->relayout();
- emit headerChanged();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Page::footer
-
- This property holds the page footer item. The footer item is positioned to
- the bottom, and resized to the width of the page. The default value is \c null.
-
- \note Assigning a ToolBar, TabBar, or DialogButtonBox as a page footer
- automatically sets the respective \l ToolBar::position, \l TabBar::position,
- or \l DialogButtonBox::position property to \c Footer.
-
- \sa header, ApplicationWindow::footer
-*/
-QQuickItem *QQuickPage::footer() const
-{
- Q_D(const QQuickPage);
- return d->footer;
-}
-
-void QQuickPage::setFooter(QQuickItem *footer)
-{
- Q_D(QQuickPage);
- if (d->footer == footer)
- return;
-
- if (d->footer) {
- QQuickItemPrivate::get(d->footer)->removeItemChangeListener(d, LayoutChanges);
- d->footer->setParentItem(nullptr);
- }
- d->footer = footer;
- if (footer) {
- footer->setParentItem(this);
- QQuickItemPrivate::get(footer)->addItemChangeListener(d, LayoutChanges);
- if (qFuzzyIsNull(footer->z()))
- footer->setZ(1);
- setPos(footer, Footer);
- }
- if (isComponentComplete())
- d->relayout();
- emit footerChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Page::implicitHeaderWidth
- \readonly
-
- This property holds the implicit header width.
-
- The value is equal to \c {header && header.visible ? header.implicitWidth : 0}.
-
- \sa implicitHeaderHeight, implicitFooterWidth
-*/
-qreal QQuickPage::implicitHeaderWidth() const
-{
- Q_D(const QQuickPage);
- if (!d->header || !d->header->isVisible())
- return 0;
- return d->header->implicitWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Page::implicitHeaderHeight
- \readonly
-
- This property holds the implicit header height.
-
- The value is equal to \c {header && header.visible ? header.implicitHeight : 0}.
-
- \sa implicitHeaderWidth, implicitFooterHeight
-*/
-qreal QQuickPage::implicitHeaderHeight() const
-{
- Q_D(const QQuickPage);
- if (!d->header || !d->header->isVisible())
- return 0;
- return d->header->implicitHeight();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Page::implicitFooterWidth
- \readonly
-
- This property holds the implicit footer width.
-
- The value is equal to \c {footer && footer.visible ? footer.implicitWidth : 0}.
-
- \sa implicitFooterHeight, implicitHeaderWidth
-*/
-qreal QQuickPage::implicitFooterWidth() const
-{
- Q_D(const QQuickPage);
- if (!d->footer || !d->footer->isVisible())
- return 0;
- return d->footer->implicitWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Page::implicitFooterHeight
- \readonly
-
- This property holds the implicit footer height.
-
- The value is equal to \c {footer && footer.visible ? footer.implicitHeight : 0}.
-
- \sa implicitFooterWidth, implicitHeaderHeight
-*/
-qreal QQuickPage::implicitFooterHeight() const
-{
- Q_D(const QQuickPage);
- if (!d->footer || !d->footer->isVisible())
- return 0;
- return d->footer->implicitHeight();
-}
-
-void QQuickPage::componentComplete()
-{
- Q_D(QQuickPage);
- QQuickPane::componentComplete();
- d->relayout();
-}
-
-void QQuickPage::spacingChange(qreal newSpacing, qreal oldSpacing)
-{
- Q_D(QQuickPage);
- QQuickPane::spacingChange(newSpacing, oldSpacing);
- d->relayout();
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickPage::accessibleRole() const
-{
- return QAccessible::PageTab;
-}
-
-void QQuickPage::accessibilityActiveChanged(bool active)
-{
- Q_D(QQuickPage);
- QQuickPane::accessibilityActiveChanged(active);
-
- if (active)
- maybeSetAccessibleName(d->title);
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickpage_p.h b/src/quicktemplates2/qquickpage_p.h
deleted file mode 100644
index 0a65f67f..00000000
--- a/src/quicktemplates2/qquickpage_p.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPAGE_P_H
-#define QQUICKPAGE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpane_p.h>
-#include <QtQml/qqmllist.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPagePrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPage : public QQuickPane
-{
- Q_OBJECT
- Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged FINAL)
- Q_PROPERTY(QQuickItem *header READ header WRITE setHeader NOTIFY headerChanged FINAL)
- Q_PROPERTY(QQuickItem *footer READ footer WRITE setFooter NOTIFY footerChanged FINAL)
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal implicitHeaderWidth READ implicitHeaderWidth NOTIFY implicitHeaderWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitHeaderHeight READ implicitHeaderHeight NOTIFY implicitHeaderHeightChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitFooterWidth READ implicitFooterWidth NOTIFY implicitFooterWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitFooterHeight READ implicitFooterHeight NOTIFY implicitFooterHeightChanged FINAL REVISION(2, 5))
- QML_NAMED_ELEMENT(Page)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickPage(QQuickItem *parent = nullptr);
- ~QQuickPage();
-
- QString title() const;
- void setTitle(const QString &title);
-
- QQuickItem *header() const;
- void setHeader(QQuickItem *header);
-
- QQuickItem *footer() const;
- void setFooter(QQuickItem *footer);
-
- // 2.5 (Qt 5.12)
- qreal implicitHeaderWidth() const;
- qreal implicitHeaderHeight() const;
-
- qreal implicitFooterWidth() const;
- qreal implicitFooterHeight() const;
-
-Q_SIGNALS:
- void titleChanged();
- void headerChanged();
- void footerChanged();
- // 2.5 (Qt 5.12)
- void implicitHeaderWidthChanged();
- void implicitHeaderHeightChanged();
- void implicitFooterWidthChanged();
- void implicitFooterHeightChanged();
-
-protected:
- QQuickPage(QQuickPagePrivate &dd, QQuickItem *parent);
-
- void componentComplete() override;
-
- void spacingChange(qreal newSpacing, qreal oldSpacing) override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
- void accessibilityActiveChanged(bool active) override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickPage)
- Q_DECLARE_PRIVATE(QQuickPage)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPage)
-
-#endif // QQUICKPAGE_P_H
diff --git a/src/quicktemplates2/qquickpage_p_p.h b/src/quicktemplates2/qquickpage_p_p.h
deleted file mode 100644
index 6c8b0371..00000000
--- a/src/quicktemplates2/qquickpage_p_p.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPAGE_P_P_H
-#define QQUICKPAGE_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpane_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPane;
-
-class QQuickPagePrivate : public QQuickPanePrivate
-{
- Q_DECLARE_PUBLIC(QQuickPage)
-
-public:
- void relayout();
- void resizeContent() override;
-
- void itemVisibilityChanged(QQuickItem *item) override;
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
- void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF & diff) override;
- void itemDestroyed(QQuickItem *item) override;
-
- QString title;
- QQuickItem *header = nullptr;
- QQuickItem *footer = nullptr;
- bool emittingImplicitSizeChangedSignals = false;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPAGE_P_P_H
diff --git a/src/quicktemplates2/qquickpageindicator.cpp b/src/quicktemplates2/qquickpageindicator.cpp
deleted file mode 100644
index 41caa234..00000000
--- a/src/quicktemplates2/qquickpageindicator.cpp
+++ /dev/null
@@ -1,352 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickpageindicator_p.h"
-#include "qquickcontrol_p_p.h"
-
-#include <QtCore/qmath.h>
-#include <QtQuick/private/qquickitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype PageIndicator
- \inherits Control
-//! \instantiates QQuickPageIndicator
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-indicators
- \brief Indicates the currently active page.
-
- PageIndicator is used to indicate the currently active page
- in a container of multiple pages. PageIndicator consists of
- delegate items that present pages.
-
- \image qtquickcontrols2-pageindicator.png
-
- \code
- Column {
- StackLayout {
- id: stackLayout
-
- Page {
- // ...
- }
- Page {
- // ...
- }
- Page {
- // ...
- }
- }
-
- PageIndicator {
- currentIndex: stackLayout.currentIndex
- count: stackLayout.count
- }
- }
- \endcode
-
- \sa SwipeView, {Customizing PageIndicator}, {Indicator Controls}
-*/
-
-class QQuickPageIndicatorPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickPageIndicator)
-
-public:
- void handlePress(const QPointF &point, ulong timestamp) override;
- void handleMove(const QPointF &point, ulong timestamp) override;
- void handleRelease(const QPointF &point, ulong timestamp) override;
- void handleUngrab() override;
-
- QQuickItem *itemAt(const QPointF &pos) const;
- void updatePressed(bool pressed, const QPointF &pos = QPointF());
- void setContextProperty(QQuickItem *item, const QString &name, const QVariant &value);
-
- void itemChildAdded(QQuickItem *, QQuickItem *child) override;
-
- int count = 0;
- int currentIndex = 0;
- bool interactive = false;
- QQmlComponent *delegate = nullptr;
- QQuickItem *pressedItem = nullptr;
-};
-
-void QQuickPageIndicatorPrivate::handlePress(const QPointF &point, ulong timestamp)
-{
- QQuickControlPrivate::handlePress(point, timestamp);
- if (interactive)
- updatePressed(true, point);
-}
-
-void QQuickPageIndicatorPrivate::handleMove(const QPointF &point, ulong timestamp)
-{
- QQuickControlPrivate::handleMove(point, timestamp);
- if (interactive)
- updatePressed(true, point);
-}
-
-void QQuickPageIndicatorPrivate::handleRelease(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickPageIndicator);
- QQuickControlPrivate::handleRelease(point, timestamp);
- if (interactive) {
- if (pressedItem && contentItem)
- q->setCurrentIndex(contentItem->childItems().indexOf(pressedItem));
- updatePressed(false);
- }
-}
-
-void QQuickPageIndicatorPrivate::handleUngrab()
-{
- QQuickControlPrivate::handleUngrab();
- if (interactive)
- updatePressed(false);
-}
-
-QQuickItem *QQuickPageIndicatorPrivate::itemAt(const QPointF &pos) const
-{
- Q_Q(const QQuickPageIndicator);
- if (!contentItem || !q->contains(pos))
- return nullptr;
-
- QPointF contentPos = q->mapToItem(contentItem, pos);
- QQuickItem *item = contentItem->childAt(contentPos.x(), contentPos.y());
- while (item && item->parentItem() != contentItem)
- item = item->parentItem();
- if (item && !QQuickItemPrivate::get(item)->isTransparentForPositioner())
- return item;
-
- // find the nearest
- qreal distance = qInf();
- QQuickItem *nearest = nullptr;
- const auto childItems = contentItem->childItems();
- for (QQuickItem *child : childItems) {
- if (QQuickItemPrivate::get(child)->isTransparentForPositioner())
- continue;
-
- QPointF center = child->boundingRect().center();
- QPointF pt = contentItem->mapToItem(child, contentPos);
-
- qreal len = QLineF(center, pt).length();
- if (len < distance) {
- distance = len;
- nearest = child;
- }
- }
- return nearest;
-}
-
-void QQuickPageIndicatorPrivate::updatePressed(bool pressed, const QPointF &pos)
-{
- QQuickItem *prevItem = pressedItem;
- pressedItem = pressed ? itemAt(pos) : nullptr;
- if (prevItem != pressedItem) {
- setContextProperty(prevItem, QStringLiteral("pressed"), false);
- setContextProperty(pressedItem, QStringLiteral("pressed"), pressed);
- }
-}
-
-void QQuickPageIndicatorPrivate::setContextProperty(QQuickItem *item, const QString &name, const QVariant &value)
-{
- QQmlContext *context = qmlContext(item);
- if (context && context->isValid()) {
- context = context->parentContext();
- if (context && context->isValid())
- context->setContextProperty(name, value);
- }
-}
-
-void QQuickPageIndicatorPrivate::itemChildAdded(QQuickItem *, QQuickItem *child)
-{
- if (!QQuickItemPrivate::get(child)->isTransparentForPositioner())
- setContextProperty(child, QStringLiteral("pressed"), false);
-}
-
-QQuickPageIndicator::QQuickPageIndicator(QQuickItem *parent)
- : QQuickControl(*(new QQuickPageIndicatorPrivate), parent)
-{
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::PageIndicator::count
-
- This property holds the number of pages.
-*/
-int QQuickPageIndicator::count() const
-{
- Q_D(const QQuickPageIndicator);
- return d->count;
-}
-
-void QQuickPageIndicator::setCount(int count)
-{
- Q_D(QQuickPageIndicator);
- if (d->count == count)
- return;
-
- d->count = count;
- emit countChanged();
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::PageIndicator::currentIndex
-
- This property holds the index of the current page.
-*/
-int QQuickPageIndicator::currentIndex() const
-{
- Q_D(const QQuickPageIndicator);
- return d->currentIndex;
-}
-
-void QQuickPageIndicator::setCurrentIndex(int index)
-{
- Q_D(QQuickPageIndicator);
- if (d->currentIndex == index)
- return;
-
- d->currentIndex = index;
- emit currentIndexChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::PageIndicator::interactive
-
- This property holds whether the control is interactive. An interactive page indicator
- reacts to presses and automatically changes the \l {currentIndex}{current index}
- appropriately.
-
- \snippet qtquickcontrols2-pageindicator-interactive.qml 1
-
- \note Page indicators are typically quite small (in order to avoid
- distracting the user from the actual content of the user interface). They
- can be hard to click, and might not be easily recognized as interactive by
- the user. For these reasons, they are best used to complement primary
- methods of navigation (such as \l SwipeView), not replace them.
-
- The default value is \c false.
-*/
-bool QQuickPageIndicator::isInteractive() const
-{
- Q_D(const QQuickPageIndicator);
- return d->interactive;
-}
-
-void QQuickPageIndicator::setInteractive(bool interactive)
-{
- Q_D(QQuickPageIndicator);
- if (d->interactive == interactive)
- return;
-
- d->interactive = interactive;
- if (interactive) {
- setAcceptedMouseButtons(Qt::LeftButton);
-#if QT_CONFIG(quicktemplates2_multitouch)
- setAcceptTouchEvents(true);
-#endif
-#if QT_CONFIG(cursor)
- setCursor(Qt::ArrowCursor);
-#endif
- } else {
- setAcceptedMouseButtons(Qt::NoButton);
-#if QT_CONFIG(quicktemplates2_multitouch)
- setAcceptTouchEvents(true);
-#endif
-#if QT_CONFIG(cursor)
- unsetCursor();
-#endif
- }
- emit interactiveChanged();
-}
-
-/*!
- \qmlproperty Component QtQuick.Controls::PageIndicator::delegate
-
- This property holds a delegate that presents a page.
-
- The following properties are available in the context of each delegate:
- \table
- \row \li \b index : int \li The index of the item
- \row \li \b pressed : bool \li Whether the item is pressed
- \endtable
-*/
-QQmlComponent *QQuickPageIndicator::delegate() const
-{
- Q_D(const QQuickPageIndicator);
- return d->delegate;
-}
-
-void QQuickPageIndicator::setDelegate(QQmlComponent *delegate)
-{
- Q_D(QQuickPageIndicator);
- if (d->delegate == delegate)
- return;
-
- d->delegate = delegate;
- emit delegateChanged();
-}
-
-void QQuickPageIndicator::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_D(QQuickPageIndicator);
- QQuickControl::contentItemChange(newItem, oldItem);
- if (oldItem)
- QQuickItemPrivate::get(oldItem)->removeItemChangeListener(d, QQuickItemPrivate::Children);
- if (newItem)
- QQuickItemPrivate::get(newItem)->addItemChangeListener(d, QQuickItemPrivate::Children);
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickPageIndicator::touchEvent(QTouchEvent *event)
-{
- Q_D(QQuickPageIndicator);
- if (d->interactive)
- QQuickControl::touchEvent(event);
- else
- event->ignore(); // QTBUG-61785
-}
-#endif
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickPageIndicator::accessibleRole() const
-{
- return QAccessible::Indicator;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickpageindicator_p.h b/src/quicktemplates2/qquickpageindicator_p.h
deleted file mode 100644
index a21e88fe..00000000
--- a/src/quicktemplates2/qquickpageindicator_p.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPAGEINDICATOR_P_H
-#define QQUICKPAGEINDICATOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQmlComponent;
-class QQuickPageIndicatorPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPageIndicator : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(int count READ count WRITE setCount NOTIFY countChanged FINAL)
- Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged FINAL)
- Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive NOTIFY interactiveChanged FINAL)
- Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged FINAL)
- QML_NAMED_ELEMENT(PageIndicator)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickPageIndicator(QQuickItem *parent = nullptr);
-
- int count() const;
- void setCount(int count);
-
- int currentIndex() const;
- void setCurrentIndex(int index);
-
- bool isInteractive() const;
- void setInteractive(bool interactive);
-
- QQmlComponent *delegate() const;
- void setDelegate(QQmlComponent *delegate);
-
-Q_SIGNALS:
- void countChanged();
- void currentIndexChanged();
- void interactiveChanged();
- void delegateChanged();
-
-protected:
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
-
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
-#endif
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickPageIndicator)
- Q_DECLARE_PRIVATE(QQuickPageIndicator)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPageIndicator)
-
-#endif // QQUICKPAGEINDICATOR_P_H
diff --git a/src/quicktemplates2/qquickpane.cpp b/src/quicktemplates2/qquickpane.cpp
deleted file mode 100644
index e24eea8b..00000000
--- a/src/quicktemplates2/qquickpane.cpp
+++ /dev/null
@@ -1,426 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickpane_p.h"
-#include "qquickpane_p_p.h"
-#include "qquickcontentitem_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Pane
- \inherits Control
-//! \instantiates QQuickPane
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-containers
- \ingroup qtquickcontrols2-focusscopes
- \brief Provides a background matching with the application style and theme.
-
- Pane provides a background color that matches with the application style
- and theme. Pane does not provide a layout of its own, but requires you to
- position its contents, for instance by creating a \l RowLayout or a
- \l ColumnLayout.
-
- Items declared as children of a Pane are automatically parented to the
- Pane's \l[QtQuickControls2]{Control::}{contentItem}. Items created
- dynamically need to be explicitly parented to the \c contentItem.
-
- \section1 Content Sizing
-
- If only a single item is used within a Pane, it will resize to fit the
- implicit size of its contained item. This makes it particularly suitable
- for use together with layouts.
-
- \image qtquickcontrols2-pane.png
-
- \snippet qtquickcontrols2-pane.qml 1
-
- Sometimes there might be two items within the pane:
-
- \code
- Pane {
- SwipeView {
- // ...
- }
- PageIndicator {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- }
- }
- \endcode
-
- In this case, Pane cannot calculate a sensible implicit size. Since we're
- anchoring the \l PageIndicator over the \l SwipeView, we can simply set the
- content size to the view's implicit size:
-
- \code
- Pane {
- contentWidth: view.implicitWidth
- contentHeight: view.implicitHeight
-
- SwipeView {
- id: view
- // ...
- }
- PageIndicator {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- }
- }
- \endcode
-
- If the \l[QtQuickControls2]{Control::}{contentItem} has no implicit size
- and only one child, Pane will use the implicit size of that child. For
- example, in the following code, the Pane assumes the size of the Rectangle:
-
- \code
- Pane {
- Item {
- Rectangle {
- implicitWidth: 200
- implicitHeight: 200
- color: "salmon"
- }
- }
- }
- \endcode
-
- \sa {Customizing Pane}, {Container Controls},
- {Focus Management in Qt Quick Controls}, {Event Handling}
-*/
-
-void QQuickPanePrivate::init()
-{
- Q_Q(QQuickPane);
- q->setFlag(QQuickItem::ItemIsFocusScope);
- q->setAcceptedMouseButtons(Qt::AllButtons);
-#if QT_CONFIG(cursor)
- q->setCursor(Qt::ArrowCursor);
-#endif
- connect(q, &QQuickControl::implicitContentWidthChanged, this, &QQuickPanePrivate::updateContentWidth);
- connect(q, &QQuickControl::implicitContentHeightChanged, this, &QQuickPanePrivate::updateContentHeight);
-}
-
-QList<QQuickItem *> QQuickPanePrivate::contentChildItems() const
-{
- if (!contentItem)
- return QList<QQuickItem *>();
-
- return contentItem->childItems();
-}
-
-QQuickItem *QQuickPanePrivate::getContentItem()
-{
- Q_Q(QQuickPane);
- if (QQuickItem *item = QQuickControlPrivate::getContentItem())
- return item;
-
- return new QQuickContentItem(q);
-}
-
-void QQuickPanePrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- QQuickControlPrivate::itemImplicitWidthChanged(item);
-
- if (item == firstChild)
- updateImplicitContentWidth();
-}
-
-void QQuickPanePrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- QQuickControlPrivate::itemImplicitHeightChanged(item);
-
- if (item == firstChild)
- updateImplicitContentHeight();
-}
-
-void QQuickPanePrivate::contentChildrenChange()
-{
- Q_Q(QQuickPane);
- QQuickItem *newFirstChild = contentChildItems().value(0);
- if (newFirstChild != firstChild) {
- if (firstChild)
- removeImplicitSizeListener(firstChild);
- if (newFirstChild)
- addImplicitSizeListener(newFirstChild);
- firstChild = newFirstChild;
- }
-
- updateImplicitContentSize();
- emit q->contentChildrenChanged();
-}
-
-qreal QQuickPanePrivate::getContentWidth() const
-{
- if (!contentItem)
- return 0;
-
- const qreal cw = contentItem->implicitWidth();
- if (!qFuzzyIsNull(cw))
- return cw;
-
- const auto contentChildren = contentChildItems();
- if (contentChildren.count() == 1)
- return contentChildren.first()->implicitWidth();
-
- return 0;
-}
-
-qreal QQuickPanePrivate::getContentHeight() const
-{
- if (!contentItem)
- return 0;
-
- const qreal ch = contentItem->implicitHeight();
- if (!qFuzzyIsNull(ch))
- return ch;
-
- const auto contentChildren = contentChildItems();
- if (contentChildren.count() == 1)
- return contentChildren.first()->implicitHeight();
-
- return 0;
-}
-
-void QQuickPanePrivate::updateContentWidth()
-{
- Q_Q(QQuickPane);
- if (hasContentWidth || qFuzzyCompare(contentWidth, implicitContentWidth))
- return;
-
- const qreal oldContentWidth = contentWidth;
- contentWidth = implicitContentWidth;
- q->contentSizeChange(QSizeF(contentWidth, contentHeight), QSizeF(oldContentWidth, contentHeight));
- emit q->contentWidthChanged();
-}
-
-void QQuickPanePrivate::updateContentHeight()
-{
- Q_Q(QQuickPane);
- if (hasContentHeight || qFuzzyCompare(contentHeight, implicitContentHeight))
- return;
-
- const qreal oldContentHeight = contentHeight;
- contentHeight = implicitContentHeight;
- q->contentSizeChange(QSizeF(contentWidth, contentHeight), QSizeF(contentWidth, oldContentHeight));
- emit q->contentHeightChanged();
-}
-
-QQuickPane::QQuickPane(QQuickItem *parent)
- : QQuickControl(*(new QQuickPanePrivate), parent)
-{
- Q_D(QQuickPane);
- d->init();
-}
-
-QQuickPane::~QQuickPane()
-{
- Q_D(QQuickPane);
- d->removeImplicitSizeListener(d->contentItem);
- d->removeImplicitSizeListener(d->firstChild);
-}
-
-QQuickPane::QQuickPane(QQuickPanePrivate &dd, QQuickItem *parent)
- : QQuickControl(dd, parent)
-{
- Q_D(QQuickPane);
- d->init();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Pane::contentWidth
-
- This property holds the content width. It is used for calculating the total
- implicit width of the pane.
-
- For more information, see \l {Content Sizing}.
-
- \sa contentHeight
-*/
-qreal QQuickPane::contentWidth() const
-{
- Q_D(const QQuickPane);
- return d->contentWidth;
-}
-
-void QQuickPane::setContentWidth(qreal width)
-{
- Q_D(QQuickPane);
- d->hasContentWidth = true;
- if (qFuzzyCompare(d->contentWidth, width))
- return;
-
- const qreal oldWidth = d->contentWidth;
- d->contentWidth = width;
- contentSizeChange(QSizeF(width, d->contentHeight), QSizeF(oldWidth, d->contentHeight));
- emit contentWidthChanged();
-}
-
-void QQuickPane::resetContentWidth()
-{
- Q_D(QQuickPane);
- if (!d->hasContentWidth)
- return;
-
- d->hasContentHeight = false;
- d->updateContentWidth();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Pane::contentHeight
-
- This property holds the content height. It is used for calculating the total
- implicit height of the pane.
-
- For more information, see \l {Content Sizing}.
-
- \sa contentWidth
-*/
-qreal QQuickPane::contentHeight() const
-{
- Q_D(const QQuickPane);
- return d->contentHeight;
-}
-
-void QQuickPane::setContentHeight(qreal height)
-{
- Q_D(QQuickPane);
- d->hasContentHeight = true;
- if (qFuzzyCompare(d->contentHeight, height))
- return;
-
- const qreal oldHeight = d->contentHeight;
- d->contentHeight = height;
- contentSizeChange(QSizeF(d->contentWidth, height), QSizeF(d->contentWidth, oldHeight));
- emit contentHeightChanged();
-}
-
-void QQuickPane::resetContentHeight()
-{
- Q_D(QQuickPane);
- if (!d->hasContentHeight)
- return;
-
- d->hasContentHeight = false;
- d->updateContentHeight();
-}
-
-/*!
- \qmlproperty list<Object> QtQuick.Controls::Pane::contentData
- \qmldefault
-
- This property holds the list of content data.
-
- The list contains all objects that have been declared in QML as children
- of the pane.
-
- \note Unlike \c contentChildren, \c contentData does include non-visual QML
- objects.
-
- \sa Item::data, contentChildren
-*/
-QQmlListProperty<QObject> QQuickPanePrivate::contentData()
-{
- Q_Q(QQuickPane);
- return QQmlListProperty<QObject>(q->contentItem(), nullptr,
- QQuickItemPrivate::data_append,
- QQuickItemPrivate::data_count,
- QQuickItemPrivate::data_at,
- QQuickItemPrivate::data_clear);
-}
-
-/*!
- \qmlproperty list<Item> QtQuick.Controls::Pane::contentChildren
-
- This property holds the list of content children.
-
- The list contains all items that have been declared in QML as children
- of the pane.
-
- \note Unlike \c contentData, \c contentChildren does not include non-visual
- QML objects.
-
- \sa Item::children, contentData
-*/
-QQmlListProperty<QQuickItem> QQuickPanePrivate::contentChildren()
-{
- Q_Q(QQuickPane);
- return QQmlListProperty<QQuickItem>(q->contentItem(), nullptr,
- QQuickItemPrivate::children_append,
- QQuickItemPrivate::children_count,
- QQuickItemPrivate::children_at,
- QQuickItemPrivate::children_clear);
-}
-
-void QQuickPane::componentComplete()
-{
- Q_D(QQuickPane);
- QQuickControl::componentComplete();
- d->updateImplicitContentSize();
-}
-
-void QQuickPane::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_D(QQuickPane);
- QQuickControl::contentItemChange(newItem, oldItem);
- if (oldItem) {
- d->removeImplicitSizeListener(oldItem);
- QObjectPrivate::disconnect(oldItem, &QQuickItem::childrenChanged, d, &QQuickPanePrivate::contentChildrenChange);
- }
- if (newItem) {
- d->addImplicitSizeListener(newItem);
- QObjectPrivate::connect(newItem, &QQuickItem::childrenChanged, d, &QQuickPanePrivate::contentChildrenChange);
- }
- d->contentChildrenChange();
-}
-
-void QQuickPane::contentSizeChange(const QSizeF &newSize, const QSizeF &oldSize)
-{
- Q_UNUSED(newSize);
- Q_UNUSED(oldSize);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickPane::accessibleRole() const
-{
- return QAccessible::Pane;
-}
-#endif
-
-QT_END_NAMESPACE
-
-#include "moc_qquickpane_p.cpp"
diff --git a/src/quicktemplates2/qquickpane_p.h b/src/quicktemplates2/qquickpane_p.h
deleted file mode 100644
index 2aeb94cd..00000000
--- a/src/quicktemplates2/qquickpane_p.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPANE_P_H
-#define QQUICKPANE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQml/qqmllist.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPanePrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPane : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(qreal contentWidth READ contentWidth WRITE setContentWidth RESET resetContentWidth NOTIFY contentWidthChanged FINAL)
- Q_PROPERTY(qreal contentHeight READ contentHeight WRITE setContentHeight RESET resetContentHeight NOTIFY contentHeightChanged FINAL)
- Q_PRIVATE_PROPERTY(QQuickPane::d_func(), QQmlListProperty<QObject> contentData READ contentData FINAL)
- Q_PRIVATE_PROPERTY(QQuickPane::d_func(), QQmlListProperty<QQuickItem> contentChildren READ contentChildren NOTIFY contentChildrenChanged FINAL)
- Q_CLASSINFO("DefaultProperty", "contentData")
- QML_NAMED_ELEMENT(Pane)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickPane(QQuickItem *parent = nullptr);
- ~QQuickPane();
-
- qreal contentWidth() const;
- void setContentWidth(qreal width);
- void resetContentWidth();
-
- qreal contentHeight() const;
- void setContentHeight(qreal height);
- void resetContentHeight();
-
-Q_SIGNALS:
- void contentWidthChanged();
- void contentHeightChanged();
- void contentChildrenChanged();
-
-protected:
- QQuickPane(QQuickPanePrivate &dd, QQuickItem *parent);
-
- void componentComplete() override;
-
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
- virtual void contentSizeChange(const QSizeF &newSize, const QSizeF &oldSize);
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickPane)
- Q_DECLARE_PRIVATE(QQuickPane)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPane)
-
-#endif // QQUICKPANE_P_H
diff --git a/src/quicktemplates2/qquickpane_p_p.h b/src/quicktemplates2/qquickpane_p_p.h
deleted file mode 100644
index 7dac4f3c..00000000
--- a/src/quicktemplates2/qquickpane_p_p.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPANE_P_P_H
-#define QQUICKPANE_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPane;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPanePrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickPane)
-
-public:
- void init();
-
- virtual QQmlListProperty<QObject> contentData();
- virtual QQmlListProperty<QQuickItem> contentChildren();
- virtual QList<QQuickItem *> contentChildItems() const;
-
- QQuickItem *getContentItem() override;
-
- qreal getContentWidth() const override;
- qreal getContentHeight() const override;
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- void contentChildrenChange();
-
- virtual void updateContentWidth();
- void updateContentHeight();
-
- bool hasContentWidth = false;
- bool hasContentHeight = false;
- qreal contentWidth = 0;
- qreal contentHeight = 0;
- QQuickItem *firstChild = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPANE_P_P_H
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp
deleted file mode 100644
index cb78d634..00000000
--- a/src/quicktemplates2/qquickpopup.cpp
+++ /dev/null
@@ -1,2771 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickpopup_p.h"
-#include "qquickpopup_p_p.h"
-#include "qquickpopupanchors_p.h"
-#include "qquickpopupitem_p_p.h"
-#include "qquickpopuppositioner_p_p.h"
-#include "qquickapplicationwindow_p.h"
-#include "qquickoverlay_p_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickdialog_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtQml/qqmlinfo.h>
-#include <QtQuick/qquickitem.h>
-#include <QtQuick/private/qquicktransition_p.h>
-#include <QtQuick/private/qquickitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcDimmer, "qt.quick.controls.popup.dimmer")
-Q_LOGGING_CATEGORY(lcPopup, "qt.quick.controls.popup")
-
-/*!
- \qmltype Popup
- \inherits QtObject
-//! \instantiates QQuickPopup
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-popups
- \ingroup qtquickcontrols2-focusscopes
- \brief Base type of popup-like user interface controls.
-
- Popup is the base type of popup-like user interface controls. It can be
- used with \l Window or \l ApplicationWindow.
-
- \qml
- import QtQuick.Window 2.2
- import QtQuick.Controls 2.12
-
- ApplicationWindow {
- id: window
- width: 400
- height: 400
- visible: true
-
- Button {
- text: "Open"
- onClicked: popup.open()
- }
-
- Popup {
- id: popup
- x: 100
- y: 100
- width: 200
- height: 300
- modal: true
- focus: true
- closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
- }
- }
- \endqml
-
- In order to ensure that a popup is displayed above other items in the
- scene, it is recommended to use ApplicationWindow. ApplicationWindow also
- provides background dimming effects.
-
- Popup does not provide a layout of its own, but requires you to position
- its contents, for instance by creating a \l RowLayout or a \l ColumnLayout.
-
- Items declared as children of a Popup are automatically parented to the
- Popups's \l contentItem. Items created dynamically need to be explicitly
- parented to the contentItem.
-
- \section1 Popup Layout
-
- The following diagram illustrates the layout of a popup within a window:
-
- \image qtquickcontrols2-popup.png
-
- The \l implicitWidth and \l implicitHeight of a popup are typically based
- on the implicit sizes of the background and the content item plus any insets
- and paddings. These properties determine how large the popup will be when no
- explicit \l width or \l height is specified.
-
- The geometry of the \l contentItem is determined by the padding. The following
- example reserves 10px padding between the boundaries of the popup and its content:
-
- \code
- Popup {
- padding: 10
-
- contentItem: Text {
- text: "Content"
- }
- }
- \endcode
-
- The \l background item fills the entire width and height of the popup,
- unless insets or an explicit size have been given for it.
-
- Negative insets can be used to make the background larger than the popup.
- The following example uses negative insets to place a shadow outside the
- popup's boundaries:
-
- \code
- Popup {
- topInset: -2
- leftInset: -2
- rightInset: -6
- bottomInset: -6
-
- background: BorderImage {
- source: ":/images/shadowed-background.png"
- }
- }
- \endcode
-
- \section1 Popup Sizing
-
- If only a single item is used within a Popup, it will resize to fit the
- implicit size of its contained item. This makes it particularly suitable
- for use together with layouts.
-
- \code
- Popup {
- ColumnLayout {
- anchors.fill: parent
- CheckBox { text: qsTr("E-mail") }
- CheckBox { text: qsTr("Calendar") }
- CheckBox { text: qsTr("Contacts") }
- }
- }
- \endcode
-
- Sometimes there might be two items within the popup:
-
- \code
- Popup {
- SwipeView {
- // ...
- }
- PageIndicator {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- }
- }
- \endcode
-
- In this case, Popup cannot calculate a sensible implicit size. Since we're
- anchoring the \l PageIndicator over the \l SwipeView, we can simply set the
- content size to the view's implicit size:
-
- \code
- Popup {
- contentWidth: view.implicitWidth
- contentHeight: view.implicitHeight
-
- SwipeView {
- id: view
- // ...
- }
- PageIndicator {
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- }
- }
- \endcode
-
- \section1 Popup Positioning
-
- Similar to items in Qt Quick, Popup's \l x and \l y coordinates are
- relative to its parent. This means that opening a popup that is a
- child of a \l Button, for example, will cause the popup to be positioned
- relative to the button.
-
- \include qquickoverlay-popup-parent.qdocinc
-
- Another way to center a popup in the window regardless of its parent item
- is to use \l {anchors.centerIn}:
-
- \snippet qtquickcontrols2-popup.qml centerIn
-
- To ensure that the popup is positioned within the bounds of the enclosing
- window, the \l margins property can be set to a non-negative value.
-
- \section1 Popup Transitions
-
- Since Qt 5.15.3 the following properties are restored to their original values from before
- the enter transition after the exit transition is completed.
-
- \list
- \li \l opacity
- \li \l scale
- \endlist
-
- This allows the built-in styles to animate on these properties without losing any explicitly
- defined value.
-
- \sa {Popup Controls}, {Customizing Popup}, ApplicationWindow
-*/
-
-/*!
- \qmlsignal void QtQuick.Controls::Popup::opened()
-
- This signal is emitted when the popup is opened.
-
- \sa aboutToShow()
-*/
-
-/*!
- \qmlsignal void QtQuick.Controls::Popup::closed()
-
- This signal is emitted when the popup is closed.
-
- \sa aboutToHide()
-*/
-
-/*!
- \qmlsignal void QtQuick.Controls::Popup::aboutToShow()
-
- This signal is emitted when the popup is about to show.
-
- \sa opened()
-*/
-
-/*!
- \qmlsignal void QtQuick.Controls::Popup::aboutToHide()
-
- This signal is emitted when the popup is about to hide.
-
- \sa closed()
-*/
-
-const QQuickPopup::ClosePolicy QQuickPopupPrivate::DefaultClosePolicy = QQuickPopup::CloseOnEscape | QQuickPopup::CloseOnPressOutside;
-
-QQuickPopupPrivate::QQuickPopupPrivate()
- : transitionManager(this)
-{
-}
-
-void QQuickPopupPrivate::init()
-{
- Q_Q(QQuickPopup);
- createPopupItem();
- popupItem->setVisible(false);
- q->setParentItem(qobject_cast<QQuickItem *>(parent));
- connectToPopupItem();
-}
-
-void QQuickPopupPrivate::createPopupItem()
-{
- Q_Q(QQuickPopup);
- popupItem = new QQuickPopupItem(q);
-}
-
-void QQuickPopupPrivate::connectToPopupItem()
-{
- Q_Q(QQuickPopup);
- QObject::connect(popupItem, &QQuickControl::paddingChanged, q, &QQuickPopup::paddingChanged);
- QObject::connect(popupItem, &QQuickControl::backgroundChanged, q, &QQuickPopup::backgroundChanged);
- QObject::connect(popupItem, &QQuickControl::contentItemChanged, q, &QQuickPopup::contentItemChanged);
- QObject::connect(popupItem, &QQuickControl::implicitContentWidthChanged, q, &QQuickPopup::implicitContentWidthChanged);
- QObject::connect(popupItem, &QQuickControl::implicitContentHeightChanged, q, &QQuickPopup::implicitContentHeightChanged);
- QObject::connect(popupItem, &QQuickControl::implicitBackgroundWidthChanged, q, &QQuickPopup::implicitBackgroundWidthChanged);
- QObject::connect(popupItem, &QQuickControl::implicitBackgroundHeightChanged, q, &QQuickPopup::implicitBackgroundHeightChanged);
-}
-
-void QQuickPopupPrivate::closeOrReject()
-{
- Q_Q(QQuickPopup);
- if (QQuickDialog *dialog = qobject_cast<QQuickDialog*>(q))
- dialog->reject();
- else
- q->close();
-}
-
-bool QQuickPopupPrivate::tryClose(const QPointF &pos, QQuickPopup::ClosePolicy flags)
-{
- if (!interactive)
- return false;
-
- static const QQuickPopup::ClosePolicy outsideFlags = QQuickPopup::CloseOnPressOutside | QQuickPopup::CloseOnReleaseOutside;
- static const QQuickPopup::ClosePolicy outsideParentFlags = QQuickPopup::CloseOnPressOutsideParent | QQuickPopup::CloseOnReleaseOutsideParent;
-
- const bool onOutside = closePolicy & (flags & outsideFlags);
- const bool onOutsideParent = closePolicy & (flags & outsideParentFlags);
- if (onOutside || onOutsideParent) {
- if (!contains(pos)) {
- if (!onOutsideParent || !parentItem || !parentItem->contains(parentItem->mapFromScene(pos))) {
- closeOrReject();
- return true;
- }
- }
- }
- return false;
-}
-
-bool QQuickPopupPrivate::contains(const QPointF &scenePos) const
-{
- return popupItem->contains(popupItem->mapFromScene(scenePos));
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-bool QQuickPopupPrivate::acceptTouch(const QTouchEvent::TouchPoint &point)
-{
- if (point.id() == touchId)
- return true;
-
- if (touchId == -1 && point.state() != QEventPoint::Released) {
- touchId = point.id();
- return true;
- }
-
- return false;
-}
-#endif
-
-bool QQuickPopupPrivate::blockInput(QQuickItem *item, const QPointF &point) const
-{
- // don't block presses and releases
- // a) outside a non-modal popup,
- // b) to popup children/content, or
- // b) outside a modal popups's background dimming
- return modal && !popupItem->isAncestorOf(item) && (!dimmer || dimmer->contains(dimmer->mapFromScene(point)));
-}
-
-bool QQuickPopupPrivate::handlePress(QQuickItem *item, const QPointF &point, ulong timestamp)
-{
- Q_UNUSED(timestamp);
- pressPoint = point;
- tryClose(point, QQuickPopup::CloseOnPressOutside | QQuickPopup::CloseOnPressOutsideParent);
- return blockInput(item, point);
-}
-
-bool QQuickPopupPrivate::handleMove(QQuickItem *item, const QPointF &point, ulong timestamp)
-{
- Q_UNUSED(timestamp);
- return blockInput(item, point);
-}
-
-bool QQuickPopupPrivate::handleRelease(QQuickItem *item, const QPointF &point, ulong timestamp)
-{
- Q_UNUSED(timestamp);
- if (item != popupItem && !contains(pressPoint))
- tryClose(point, QQuickPopup::CloseOnReleaseOutside | QQuickPopup::CloseOnReleaseOutsideParent);
- pressPoint = QPointF();
- touchId = -1;
- return blockInput(item, point);
-}
-
-void QQuickPopupPrivate::handleUngrab()
-{
- Q_Q(QQuickPopup);
- QQuickOverlay *overlay = QQuickOverlay::overlay(window);
- if (overlay) {
- QQuickOverlayPrivate *p = QQuickOverlayPrivate::get(overlay);
- if (p->mouseGrabberPopup == q)
- p->mouseGrabberPopup = nullptr;
- }
- pressPoint = QPointF();
- touchId = -1;
-}
-
-bool QQuickPopupPrivate::handleMouseEvent(QQuickItem *item, QMouseEvent *event)
-{
- switch (event->type()) {
- case QEvent::MouseButtonPress:
- return handlePress(item, event->scenePosition(), event->timestamp());
- case QEvent::MouseMove:
- return handleMove(item, event->scenePosition(), event->timestamp());
- case QEvent::MouseButtonRelease:
- return handleRelease(item, event->scenePosition(), event->timestamp());
- default:
- Q_UNREACHABLE();
- return false;
- }
-}
-
-bool QQuickPopupPrivate::handleHoverEvent(QQuickItem *item, QHoverEvent *event)
-{
- switch (event->type()) {
- case QEvent::HoverEnter:
- case QEvent::HoverMove:
- case QEvent::HoverLeave:
- return blockInput(item, event->scenePosition());
- default:
- Q_UNREACHABLE();
- return false;
- }
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-bool QQuickPopupPrivate::handleTouchEvent(QQuickItem *item, QTouchEvent *event)
-{
- switch (event->type()) {
- case QEvent::TouchBegin:
- case QEvent::TouchUpdate:
- case QEvent::TouchEnd:
- for (const QTouchEvent::TouchPoint &point : event->points()) {
- if (!acceptTouch(point))
- return blockInput(item, point.position());
-
- switch (point.state()) {
- case QEventPoint::Pressed:
- return handlePress(item, item->mapToScene(point.position()), event->timestamp());
- case QEventPoint::Updated:
- return handleMove(item, item->mapToScene(point.position()), event->timestamp());
- case QEventPoint::Released:
- return handleRelease(item, item->mapToScene(point.position()), event->timestamp());
- default:
- break;
- }
- }
- break;
-
- case QEvent::TouchCancel:
- handleUngrab();
- break;
-
- default:
- break;
- }
-
- return false;
-}
-#endif
-
-bool QQuickPopupPrivate::prepareEnterTransition()
-{
- Q_Q(QQuickPopup);
- if (!window) {
- qmlWarning(q) << "cannot find any window to open popup in.";
- return false;
- }
-
- if (transitionState == EnterTransition && transitionManager.isRunning())
- return false;
-
- if (transitionState != EnterTransition) {
- popupItem->setParentItem(QQuickOverlay::overlay(window));
- if (dim)
- createOverlay();
- showOverlay();
- emit q->aboutToShow();
- visible = true;
- transitionState = EnterTransition;
- popupItem->setVisible(true);
- getPositioner()->setParentItem(parentItem);
- emit q->visibleChanged();
- }
- return true;
-}
-
-bool QQuickPopupPrivate::prepareExitTransition()
-{
- Q_Q(QQuickPopup);
- if (transitionState == ExitTransition && transitionManager.isRunning())
- return false;
-
- // We need to cache the original scale and opacity values so we can reset it after
- // the exit transition is done so they have the original values again
- prevScale = popupItem->scale();
- prevOpacity = popupItem->opacity();
-
- if (transitionState != ExitTransition) {
- // The setFocus(false) call below removes any active focus before we're
- // able to check it in finalizeExitTransition.
- if (!hadActiveFocusBeforeExitTransition)
- hadActiveFocusBeforeExitTransition = popupItem->hasActiveFocus();
- if (focus)
- popupItem->setFocus(false);
- transitionState = ExitTransition;
- hideOverlay();
- emit q->aboutToHide();
- emit q->openedChanged();
- }
- return true;
-}
-
-void QQuickPopupPrivate::finalizeEnterTransition()
-{
- Q_Q(QQuickPopup);
- if (focus)
- popupItem->setFocus(true);
- transitionState = NoTransition;
- getPositioner()->reposition();
- emit q->openedChanged();
- opened();
-}
-
-void QQuickPopupPrivate::finalizeExitTransition()
-{
- Q_Q(QQuickPopup);
- getPositioner()->setParentItem(nullptr);
- if (popupItem) {
- popupItem->setParentItem(nullptr);
- popupItem->setVisible(false);
- }
- destroyOverlay();
-
- if (hadActiveFocusBeforeExitTransition && window) {
- // restore focus to the next popup in chain, or to the window content if there are no other popups open
- QQuickPopup *nextFocusPopup = nullptr;
- if (QQuickOverlay *overlay = QQuickOverlay::overlay(window)) {
- const auto stackingOrderPopups = QQuickOverlayPrivate::get(overlay)->stackingOrderPopups();
- for (auto popup : stackingOrderPopups) {
- if (QQuickPopupPrivate::get(popup)->transitionState != ExitTransition) {
- nextFocusPopup = popup;
- break;
- }
- }
- }
- if (nextFocusPopup && nextFocusPopup->hasFocus()) {
- nextFocusPopup->forceActiveFocus();
- } else {
- QQuickApplicationWindow *applicationWindow = qobject_cast<QQuickApplicationWindow*>(window);
- if (applicationWindow)
- applicationWindow->contentItem()->setFocus(true);
- else
- window->contentItem()->setFocus(true);
- }
- }
-
- visible = false;
- transitionState = NoTransition;
- hadActiveFocusBeforeExitTransition = false;
- emit q->visibleChanged();
- emit q->closed();
- if (popupItem) {
- popupItem->setScale(prevScale);
- popupItem->setOpacity(prevOpacity);
- }
-}
-
-void QQuickPopupPrivate::opened()
-{
- Q_Q(QQuickPopup);
- emit q->opened();
-}
-
-QMarginsF QQuickPopupPrivate::getMargins() const
-{
- Q_Q(const QQuickPopup);
- return QMarginsF(q->leftMargin(), q->topMargin(), q->rightMargin(), q->bottomMargin());
-}
-
-void QQuickPopupPrivate::setTopMargin(qreal value, bool reset)
-{
- Q_Q(QQuickPopup);
- qreal oldMargin = q->topMargin();
- topMargin = value;
- hasTopMargin = !reset;
- if ((!reset && !qFuzzyCompare(oldMargin, value)) || (reset && !qFuzzyCompare(oldMargin, margins))) {
- emit q->topMarginChanged();
- q->marginsChange(QMarginsF(leftMargin, topMargin, rightMargin, bottomMargin),
- QMarginsF(leftMargin, oldMargin, rightMargin, bottomMargin));
- }
-}
-
-void QQuickPopupPrivate::setLeftMargin(qreal value, bool reset)
-{
- Q_Q(QQuickPopup);
- qreal oldMargin = q->leftMargin();
- leftMargin = value;
- hasLeftMargin = !reset;
- if ((!reset && !qFuzzyCompare(oldMargin, value)) || (reset && !qFuzzyCompare(oldMargin, margins))) {
- emit q->leftMarginChanged();
- q->marginsChange(QMarginsF(leftMargin, topMargin, rightMargin, bottomMargin),
- QMarginsF(oldMargin, topMargin, rightMargin, bottomMargin));
- }
-}
-
-void QQuickPopupPrivate::setRightMargin(qreal value, bool reset)
-{
- Q_Q(QQuickPopup);
- qreal oldMargin = q->rightMargin();
- rightMargin = value;
- hasRightMargin = !reset;
- if ((!reset && !qFuzzyCompare(oldMargin, value)) || (reset && !qFuzzyCompare(oldMargin, margins))) {
- emit q->rightMarginChanged();
- q->marginsChange(QMarginsF(leftMargin, topMargin, rightMargin, bottomMargin),
- QMarginsF(leftMargin, topMargin, oldMargin, bottomMargin));
- }
-}
-
-void QQuickPopupPrivate::setBottomMargin(qreal value, bool reset)
-{
- Q_Q(QQuickPopup);
- qreal oldMargin = q->bottomMargin();
- bottomMargin = value;
- hasBottomMargin = !reset;
- if ((!reset && !qFuzzyCompare(oldMargin, value)) || (reset && !qFuzzyCompare(oldMargin, margins))) {
- emit q->bottomMarginChanged();
- q->marginsChange(QMarginsF(leftMargin, topMargin, rightMargin, bottomMargin),
- QMarginsF(leftMargin, topMargin, rightMargin, oldMargin));
- }
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty Object QtQuick.Controls::Popup::anchors.centerIn
-
- Anchors provide a way to position an item by specifying its
- relationship with other items.
-
- A common use case is to center a popup within its parent. One way to do
- this is with the \l[QtQuick]{Item::}{x} and \l[QtQuick]{Item::}{y} properties. Anchors offer
- a more convenient approach:
-
- \qml
- Pane {
- // ...
-
- Popup {
- anchors.centerIn: parent
- }
- }
- \endqml
-
- It is also possible to center the popup in the window by using \l Overlay:
-
- \snippet qtquickcontrols2-popup.qml centerIn
-
- This makes it easy to center a popup in the window from any component.
-
- \note Popups can only be centered within their immediate parent or
- the window overlay; trying to center in other items will produce a warning.
-
- \sa {Popup Positioning}, {Item::}{anchors}, {Using Qt Quick Controls types
- in property declarations}
-*/
-QQuickPopupAnchors *QQuickPopupPrivate::getAnchors()
-{
- Q_Q(QQuickPopup);
- if (!anchors)
- anchors = new QQuickPopupAnchors(q);
- return anchors;
-}
-
-QQuickPopupPositioner *QQuickPopupPrivate::getPositioner()
-{
- Q_Q(QQuickPopup);
- if (!positioner)
- positioner = new QQuickPopupPositioner(q);
- return positioner;
-}
-
-void QQuickPopupPrivate::setWindow(QQuickWindow *newWindow)
-{
- Q_Q(QQuickPopup);
- if (window == newWindow)
- return;
-
- if (window) {
- QQuickOverlay *overlay = QQuickOverlay::overlay(window);
- if (overlay)
- QQuickOverlayPrivate::get(overlay)->removePopup(q);
- }
-
- window = newWindow;
-
- if (newWindow) {
- QQuickOverlay *overlay = QQuickOverlay::overlay(newWindow);
- if (overlay)
- QQuickOverlayPrivate::get(overlay)->addPopup(q);
-
- QQuickControlPrivate *p = QQuickControlPrivate::get(popupItem);
- p->resolveFont();
- if (QQuickApplicationWindow *appWindow = qobject_cast<QQuickApplicationWindow *>(newWindow))
- p->updateLocale(appWindow->locale(), false); // explicit=false
- }
-
- emit q->windowChanged(newWindow);
-
- if (complete && visible && window)
- transitionManager.transitionEnter();
-}
-
-void QQuickPopupPrivate::itemDestroyed(QQuickItem *item)
-{
- Q_Q(QQuickPopup);
- if (item == parentItem)
- q->setParentItem(nullptr);
-}
-
-void QQuickPopupPrivate::reposition()
-{
- getPositioner()->reposition();
-}
-
-QPalette QQuickPopupPrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::System);
-}
-
-static QQuickItem *createDimmer(QQmlComponent *component, QQuickPopup *popup, QQuickItem *parent)
-{
- QQuickItem *item = nullptr;
- if (component) {
- QQmlContext *creationContext = component->creationContext();
- if (!creationContext)
- creationContext = qmlContext(popup);
- QQmlContext *context = new QQmlContext(creationContext, popup);
- context->setContextObject(popup);
- item = qobject_cast<QQuickItem*>(component->beginCreate(context));
- }
-
- // when there is no overlay component available (with plain QQuickWindow),
- // use a plain QQuickItem as a fallback to block hover events
- if (!item && popup->isModal())
- item = new QQuickItem;
-
- if (item) {
- item->setOpacity(popup->isVisible() ? 1.0 : 0.0);
- item->setParentItem(parent);
- item->stackBefore(popup->popupItem());
- item->setZ(popup->z());
- if (popup->isModal()) {
- item->setAcceptedMouseButtons(Qt::AllButtons);
-#if QT_CONFIG(cursor)
- item->setCursor(Qt::ArrowCursor);
-#endif
-#if QT_CONFIG(quicktemplates2_hover)
- // TODO: switch to QStyleHints::useHoverEffects in Qt 5.8
- item->setAcceptHoverEvents(true);
- // item->setAcceptHoverEvents(QGuiApplication::styleHints()->useHoverEffects());
- // connect(QGuiApplication::styleHints(), &QStyleHints::useHoverEffectsChanged, item, &QQuickItem::setAcceptHoverEvents);
-#endif
- }
- if (component)
- component->completeCreate();
- }
- qCDebug(lcDimmer) << "finished creating dimmer from component" << component
- << "for popup" << popup << "with parent" << parent << "- item is:" << item;
- return item;
-}
-
-void QQuickPopupPrivate::createOverlay()
-{
- Q_Q(QQuickPopup);
- QQuickOverlay *overlay = QQuickOverlay::overlay(window);
- if (!overlay)
- return;
-
- QQmlComponent *component = nullptr;
- QQuickOverlayAttached *overlayAttached = qobject_cast<QQuickOverlayAttached *>(qmlAttachedPropertiesObject<QQuickOverlay>(q, false));
- if (overlayAttached)
- component = modal ? overlayAttached->modal() : overlayAttached->modeless();
-
- if (!component)
- component = modal ? overlay->modal() : overlay->modeless();
-
- if (!dimmer)
- dimmer = createDimmer(component, q, overlay);
- resizeOverlay();
-}
-
-void QQuickPopupPrivate::destroyOverlay()
-{
- if (dimmer) {
- qCDebug(lcDimmer) << "destroying dimmer" << dimmer;
- dimmer->setParentItem(nullptr);
- dimmer->deleteLater();
- dimmer = nullptr;
- }
-}
-
-void QQuickPopupPrivate::toggleOverlay()
-{
- destroyOverlay();
- if (dim)
- createOverlay();
-}
-
-void QQuickPopupPrivate::showOverlay()
-{
- // use QQmlProperty instead of QQuickItem::setOpacity() to trigger QML Behaviors
- if (dim && dimmer)
- QQmlProperty::write(dimmer, QStringLiteral("opacity"), 1.0);
-}
-
-void QQuickPopupPrivate::hideOverlay()
-{
- // use QQmlProperty instead of QQuickItem::setOpacity() to trigger QML Behaviors
- if (dim && dimmer)
- QQmlProperty::write(dimmer, QStringLiteral("opacity"), 0.0);
-}
-
-void QQuickPopupPrivate::resizeOverlay()
-{
- if (!dimmer)
- return;
-
- qreal w = window ? window->width() : 0;
- qreal h = window ? window->height() : 0;
- dimmer->setSize(QSizeF(w, h));
-}
-
-QQuickPopupTransitionManager::QQuickPopupTransitionManager(QQuickPopupPrivate *popup)
- : popup(popup)
-{
-}
-
-void QQuickPopupTransitionManager::transitionEnter()
-{
- if (popup->transitionState == QQuickPopupPrivate::ExitTransition)
- cancel();
-
- if (!popup->prepareEnterTransition())
- return;
-
- if (popup->window)
- transition(popup->enterActions, popup->enter, popup->q_func());
- else
- finished();
-}
-
-void QQuickPopupTransitionManager::transitionExit()
-{
- if (!popup->prepareExitTransition())
- return;
-
- if (popup->window)
- transition(popup->exitActions, popup->exit, popup->q_func());
- else
- finished();
-}
-
-void QQuickPopupTransitionManager::finished()
-{
- if (popup->transitionState == QQuickPopupPrivate::EnterTransition)
- popup->finalizeEnterTransition();
- else if (popup->transitionState == QQuickPopupPrivate::ExitTransition)
- popup->finalizeExitTransition();
-}
-
-QQuickPopup::QQuickPopup(QObject *parent)
- : QObject(*(new QQuickPopupPrivate), parent)
-{
- Q_D(QQuickPopup);
- d->init();
-}
-
-QQuickPopup::QQuickPopup(QQuickPopupPrivate &dd, QObject *parent)
- : QObject(dd, parent)
-{
- dd.init();
-}
-
-QQuickPopup::~QQuickPopup()
-{
- Q_D(QQuickPopup);
- setParentItem(nullptr);
- d->popupItem->ungrabShortcut();
-
- // If the popup is destroyed before the exit transition finishes,
- // the necessary cleanup (removing modal dimmers that block mouse events,
- // emitting closed signal, etc.) won't happen. That's why we do it manually here.
- if (d->transitionState == QQuickPopupPrivate::ExitTransition && d->transitionManager.isRunning())
- d->finalizeExitTransition();
-
- delete d->popupItem;
- d->popupItem = nullptr;
- delete d->positioner;
- d->positioner = nullptr;
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Popup::open()
-
- Opens the popup.
-
- \sa visible
-*/
-void QQuickPopup::open()
-{
- setVisible(true);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Popup::close()
-
- Closes the popup.
-
- \sa visible
-*/
-void QQuickPopup::close()
-{
- setVisible(false);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::x
-
- This property holds the x-coordinate of the popup.
-
- \sa y, z
-*/
-qreal QQuickPopup::x() const
-{
- Q_D(const QQuickPopup);
- return d->effectiveX;
-}
-
-void QQuickPopup::setX(qreal x)
-{
- Q_D(QQuickPopup);
- setPosition(QPointF(x, d->y));
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::y
-
- This property holds the y-coordinate of the popup.
-
- \sa x, z
-*/
-qreal QQuickPopup::y() const
-{
- Q_D(const QQuickPopup);
- return d->effectiveY;
-}
-
-void QQuickPopup::setY(qreal y)
-{
- Q_D(QQuickPopup);
- setPosition(QPointF(d->x, y));
-}
-
-QPointF QQuickPopup::position() const
-{
- Q_D(const QQuickPopup);
- return QPointF(d->effectiveX, d->effectiveY);
-}
-
-void QQuickPopup::setPosition(const QPointF &pos)
-{
- Q_D(QQuickPopup);
- const bool xChange = !qFuzzyCompare(d->x, pos.x());
- const bool yChange = !qFuzzyCompare(d->y, pos.y());
- if (!xChange && !yChange)
- return;
-
- d->x = pos.x();
- d->y = pos.y();
- if (d->popupItem->isVisible()) {
- d->reposition();
- } else {
- if (xChange)
- emit xChanged();
- if (yChange)
- emit yChanged();
- }
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::z
-
- This property holds the z-value of the popup. Z-value determines
- the stacking order of popups.
-
- If two visible popups have the same z-value, the last one that
- was opened will be on top.
-
- The default z-value is \c 0.
-
- \sa x, y
-*/
-qreal QQuickPopup::z() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->z();
-}
-
-void QQuickPopup::setZ(qreal z)
-{
- Q_D(QQuickPopup);
- if (qFuzzyCompare(z, d->popupItem->z()))
- return;
- d->popupItem->setZ(z);
- emit zChanged();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::width
-
- This property holds the width of the popup.
-*/
-qreal QQuickPopup::width() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->width();
-}
-
-void QQuickPopup::setWidth(qreal width)
-{
- Q_D(QQuickPopup);
- d->hasWidth = true;
- d->popupItem->setWidth(width);
-}
-
-void QQuickPopup::resetWidth()
-{
- Q_D(QQuickPopup);
- if (!d->hasWidth)
- return;
-
- d->hasWidth = false;
- d->popupItem->resetWidth();
- if (d->popupItem->isVisible())
- d->reposition();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::height
-
- This property holds the height of the popup.
-*/
-qreal QQuickPopup::height() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->height();
-}
-
-void QQuickPopup::setHeight(qreal height)
-{
- Q_D(QQuickPopup);
- d->hasHeight = true;
- d->popupItem->setHeight(height);
-}
-
-void QQuickPopup::resetHeight()
-{
- Q_D(QQuickPopup);
- if (!d->hasHeight)
- return;
-
- d->hasHeight = false;
- d->popupItem->resetHeight();
- if (d->popupItem->isVisible())
- d->reposition();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::implicitWidth
-
- This property holds the implicit width of the popup.
-*/
-qreal QQuickPopup::implicitWidth() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->implicitWidth();
-}
-
-void QQuickPopup::setImplicitWidth(qreal width)
-{
- Q_D(QQuickPopup);
- d->popupItem->setImplicitWidth(width);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::implicitHeight
-
- This property holds the implicit height of the popup.
-*/
-qreal QQuickPopup::implicitHeight() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->implicitHeight();
-}
-
-void QQuickPopup::setImplicitHeight(qreal height)
-{
- Q_D(QQuickPopup);
- d->popupItem->setImplicitHeight(height);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::contentWidth
-
- This property holds the content width. It is used for calculating the
- total implicit width of the Popup.
-
- For more information, see \l {Popup Sizing}.
-
- \sa contentHeight
-*/
-qreal QQuickPopup::contentWidth() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->contentWidth();
-}
-
-void QQuickPopup::setContentWidth(qreal width)
-{
- Q_D(QQuickPopup);
- d->popupItem->setContentWidth(width);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::contentHeight
-
- This property holds the content height. It is used for calculating the
- total implicit height of the Popup.
-
- For more information, see \l {Popup Sizing}.
-
- \sa contentWidth
-*/
-qreal QQuickPopup::contentHeight() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->contentHeight();
-}
-
-void QQuickPopup::setContentHeight(qreal height)
-{
- Q_D(QQuickPopup);
- d->popupItem->setContentHeight(height);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::availableWidth
- \readonly
-
- This property holds the width available to the \l contentItem after
- deducting horizontal padding from the \l {Item::}{width} of the popup.
-
- \sa padding, leftPadding, rightPadding
-*/
-qreal QQuickPopup::availableWidth() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->availableWidth();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::availableHeight
- \readonly
-
- This property holds the height available to the \l contentItem after
- deducting vertical padding from the \l {Item::}{height} of the popup.
-
- \sa padding, topPadding, bottomPadding
-*/
-qreal QQuickPopup::availableHeight() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->availableHeight();
-}
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlproperty real QtQuick.Controls::Popup::spacing
-
- This property holds the spacing.
-
- Spacing is useful for popups that have multiple or repetitive building
- blocks. For example, some styles use spacing to determine the distance
- between the header, content, and footer of \l Dialog. Spacing is not
- enforced by Popup, so each style may interpret it differently, and some
- may ignore it altogether.
-*/
-qreal QQuickPopup::spacing() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->spacing();
-}
-
-void QQuickPopup::setSpacing(qreal spacing)
-{
- Q_D(QQuickPopup);
- d->popupItem->setSpacing(spacing);
-}
-
-void QQuickPopup::resetSpacing()
-{
- setSpacing(0);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::margins
-
- This property holds the distance between the edges of the popup and the
- edges of its window.
-
- A popup with negative margins is not pushed within the bounds
- of the enclosing window. The default value is \c -1.
-
- \sa topMargin, leftMargin, rightMargin, bottomMargin, {Popup Layout}
-*/
-qreal QQuickPopup::margins() const
-{
- Q_D(const QQuickPopup);
- return d->margins;
-}
-
-void QQuickPopup::setMargins(qreal margins)
-{
- Q_D(QQuickPopup);
- if (qFuzzyCompare(d->margins, margins))
- return;
- QMarginsF oldMargins(leftMargin(), topMargin(), rightMargin(), bottomMargin());
- d->margins = margins;
- emit marginsChanged();
- QMarginsF newMargins(leftMargin(), topMargin(), rightMargin(), bottomMargin());
- if (!qFuzzyCompare(newMargins.top(), oldMargins.top()))
- emit topMarginChanged();
- if (!qFuzzyCompare(newMargins.left(), oldMargins.left()))
- emit leftMarginChanged();
- if (!qFuzzyCompare(newMargins.right(), oldMargins.right()))
- emit rightMarginChanged();
- if (!qFuzzyCompare(newMargins.bottom(), oldMargins.bottom()))
- emit bottomMarginChanged();
- marginsChange(newMargins, oldMargins);
-}
-
-void QQuickPopup::resetMargins()
-{
- setMargins(-1);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::topMargin
-
- This property holds the distance between the top edge of the popup and
- the top edge of its window.
-
- A popup with a negative top margin is not pushed within the top edge
- of the enclosing window. The default value is \c -1.
-
- \sa margins, bottomMargin, {Popup Layout}
-*/
-qreal QQuickPopup::topMargin() const
-{
- Q_D(const QQuickPopup);
- if (d->hasTopMargin)
- return d->topMargin;
- return d->margins;
-}
-
-void QQuickPopup::setTopMargin(qreal margin)
-{
- Q_D(QQuickPopup);
- d->setTopMargin(margin);
-}
-
-void QQuickPopup::resetTopMargin()
-{
- Q_D(QQuickPopup);
- d->setTopMargin(-1, true);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::leftMargin
-
- This property holds the distance between the left edge of the popup and
- the left edge of its window.
-
- A popup with a negative left margin is not pushed within the left edge
- of the enclosing window. The default value is \c -1.
-
- \sa margins, rightMargin, {Popup Layout}
-*/
-qreal QQuickPopup::leftMargin() const
-{
- Q_D(const QQuickPopup);
- if (d->hasLeftMargin)
- return d->leftMargin;
- return d->margins;
-}
-
-void QQuickPopup::setLeftMargin(qreal margin)
-{
- Q_D(QQuickPopup);
- d->setLeftMargin(margin);
-}
-
-void QQuickPopup::resetLeftMargin()
-{
- Q_D(QQuickPopup);
- d->setLeftMargin(-1, true);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::rightMargin
-
- This property holds the distance between the right edge of the popup and
- the right edge of its window.
-
- A popup with a negative right margin is not pushed within the right edge
- of the enclosing window. The default value is \c -1.
-
- \sa margins, leftMargin, {Popup Layout}
-*/
-qreal QQuickPopup::rightMargin() const
-{
- Q_D(const QQuickPopup);
- if (d->hasRightMargin)
- return d->rightMargin;
- return d->margins;
-}
-
-void QQuickPopup::setRightMargin(qreal margin)
-{
- Q_D(QQuickPopup);
- d->setRightMargin(margin);
-}
-
-void QQuickPopup::resetRightMargin()
-{
- Q_D(QQuickPopup);
- d->setRightMargin(-1, true);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::bottomMargin
-
- This property holds the distance between the bottom edge of the popup and
- the bottom edge of its window.
-
- A popup with a negative bottom margin is not pushed within the bottom edge
- of the enclosing window. The default value is \c -1.
-
- \sa margins, topMargin, {Popup Layout}
-*/
-qreal QQuickPopup::bottomMargin() const
-{
- Q_D(const QQuickPopup);
- if (d->hasBottomMargin)
- return d->bottomMargin;
- return d->margins;
-}
-
-void QQuickPopup::setBottomMargin(qreal margin)
-{
- Q_D(QQuickPopup);
- d->setBottomMargin(margin);
-}
-
-void QQuickPopup::resetBottomMargin()
-{
- Q_D(QQuickPopup);
- d->setBottomMargin(-1, true);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::padding
-
- This property holds the default padding.
-
- \include qquickpopup-padding.qdocinc
-
- \sa availableWidth, availableHeight, topPadding, leftPadding, rightPadding, bottomPadding
-*/
-qreal QQuickPopup::padding() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->padding();
-}
-
-void QQuickPopup::setPadding(qreal padding)
-{
- Q_D(QQuickPopup);
- d->popupItem->setPadding(padding);
-}
-
-void QQuickPopup::resetPadding()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetPadding();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::topPadding
-
- This property holds the top padding. Unless explicitly set, the value
- is equal to \c verticalPadding.
-
- \include qquickpopup-padding.qdocinc
-
- \sa padding, bottomPadding, verticalPadding, availableHeight
-*/
-qreal QQuickPopup::topPadding() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->topPadding();
-}
-
-void QQuickPopup::setTopPadding(qreal padding)
-{
- Q_D(QQuickPopup);
- d->popupItem->setTopPadding(padding);
-}
-
-void QQuickPopup::resetTopPadding()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetTopPadding();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::leftPadding
-
- This property holds the left padding. Unless explicitly set, the value
- is equal to \c horizontalPadding.
-
- \include qquickpopup-padding.qdocinc
-
- \sa padding, rightPadding, horizontalPadding, availableWidth
-*/
-qreal QQuickPopup::leftPadding() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->leftPadding();
-}
-
-void QQuickPopup::setLeftPadding(qreal padding)
-{
- Q_D(QQuickPopup);
- d->popupItem->setLeftPadding(padding);
-}
-
-void QQuickPopup::resetLeftPadding()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetLeftPadding();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::rightPadding
-
- This property holds the right padding. Unless explicitly set, the value
- is equal to \c horizontalPadding.
-
- \include qquickpopup-padding.qdocinc
-
- \sa padding, leftPadding, horizontalPadding, availableWidth
-*/
-qreal QQuickPopup::rightPadding() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->rightPadding();
-}
-
-void QQuickPopup::setRightPadding(qreal padding)
-{
- Q_D(QQuickPopup);
- d->popupItem->setRightPadding(padding);
-}
-
-void QQuickPopup::resetRightPadding()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetRightPadding();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::bottomPadding
-
- This property holds the bottom padding. Unless explicitly set, the value
- is equal to \c verticalPadding.
-
- \include qquickpopup-padding.qdocinc
-
- \sa padding, topPadding, verticalPadding, availableHeight
-*/
-qreal QQuickPopup::bottomPadding() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->bottomPadding();
-}
-
-void QQuickPopup::setBottomPadding(qreal padding)
-{
- Q_D(QQuickPopup);
- d->popupItem->setBottomPadding(padding);
-}
-
-void QQuickPopup::resetBottomPadding()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetBottomPadding();
-}
-
-/*!
- \qmlproperty Locale QtQuick.Controls::Popup::locale
-
- This property holds the locale of the popup.
-
- \sa mirrored, {LayoutMirroring}{LayoutMirroring}
-*/
-QLocale QQuickPopup::locale() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->locale();
-}
-
-void QQuickPopup::setLocale(const QLocale &locale)
-{
- Q_D(QQuickPopup);
- d->popupItem->setLocale(locale);
-}
-
-void QQuickPopup::resetLocale()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetLocale();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::Popup::mirrored
- \readonly
-
- This property holds whether the popup is mirrored.
-
- This property is provided for convenience. A popup is considered mirrored
- when its visual layout direction is right-to-left; that is, when using a
- right-to-left locale.
-
- \sa locale, {Right-to-left User Interfaces}
-*/
-bool QQuickPopup::isMirrored() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->isMirrored();
-}
-
-/*!
- \qmlproperty font QtQuick.Controls::Popup::font
-
- This property holds the font currently set for the popup.
-
- Popup propagates explicit font properties to its children. If you change a specific
- property on a popup's font, that property propagates to all of the popup's children,
- overriding any system defaults for that property.
-
- \code
- Popup {
- font.family: "Courier"
-
- Column {
- Label {
- text: qsTr("This will use Courier...")
- }
-
- Switch {
- text: qsTr("... and so will this")
- }
- }
- }
- \endcode
-
- \sa Control::font, ApplicationWindow::font
-*/
-QFont QQuickPopup::font() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->font();
-}
-
-void QQuickPopup::setFont(const QFont &font)
-{
- Q_D(QQuickPopup);
- d->popupItem->setFont(font);
-}
-
-void QQuickPopup::resetFont()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetFont();
-}
-
-QQuickWindow *QQuickPopup::window() const
-{
- Q_D(const QQuickPopup);
- return d->window;
-}
-
-QQuickItem *QQuickPopup::popupItem() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem;
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Popup::parent
-
- This property holds the parent item.
-*/
-QQuickItem *QQuickPopup::parentItem() const
-{
- Q_D(const QQuickPopup);
- return d->parentItem;
-}
-
-void QQuickPopup::setParentItem(QQuickItem *parent)
-{
- Q_D(QQuickPopup);
- if (d->parentItem == parent)
- return;
-
- if (d->parentItem) {
- QObjectPrivate::disconnect(d->parentItem, &QQuickItem::windowChanged, d, &QQuickPopupPrivate::setWindow);
- QQuickItemPrivate::get(d->parentItem)->removeItemChangeListener(d, QQuickItemPrivate::Destroyed);
- }
- d->parentItem = parent;
- QQuickPopupPositioner *positioner = d->getPositioner();
- if (positioner->parentItem())
- positioner->setParentItem(parent);
- if (parent) {
- QObjectPrivate::connect(parent, &QQuickItem::windowChanged, d, &QQuickPopupPrivate::setWindow);
- QQuickItemPrivate::get(d->parentItem)->addItemChangeListener(d, QQuickItemPrivate::Destroyed);
- } else {
- close();
- }
- d->setWindow(parent ? parent->window() : nullptr);
- emit parentChanged();
-}
-
-void QQuickPopup::resetParentItem()
-{
- if (QQuickWindow *window = qobject_cast<QQuickWindow *>(parent()))
- setParentItem(window->contentItem());
- else
- setParentItem(qobject_cast<QQuickItem *>(parent()));
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Popup::background
-
- This property holds the background item.
-
- \note If the background item has no explicit size specified, it automatically
- follows the popup's size. In most cases, there is no need to specify
- width or height for a background item.
-
- \note Most popups use the implicit size of the background item to calculate
- the implicit size of the popup itself. If you replace the background item
- with a custom one, you should also consider providing a sensible implicit
- size for it (unless it is an item like \l Image which has its own implicit
- size).
-
- \sa {Customizing Popup}
-*/
-QQuickItem *QQuickPopup::background() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->background();
-}
-
-void QQuickPopup::setBackground(QQuickItem *background)
-{
- Q_D(QQuickPopup);
- d->popupItem->setBackground(background);
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Popup::contentItem
-
- This property holds the content item of the popup.
-
- The content item is the visual implementation of the popup. When the
- popup is made visible, the content item is automatically reparented to
- the \l {Overlay::overlay}{overlay item}.
-
- \note The content item is automatically resized to fit within the
- \l padding of the popup.
-
- \note Most popups use the implicit size of the content item to calculate
- the implicit size of the popup itself. If you replace the content item
- with a custom one, you should also consider providing a sensible implicit
- size for it (unless it is an item like \l Text which has its own implicit
- size).
-
- \sa {Customizing Popup}
-*/
-QQuickItem *QQuickPopup::contentItem() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->contentItem();
-}
-
-void QQuickPopup::setContentItem(QQuickItem *item)
-{
- Q_D(QQuickPopup);
- d->popupItem->setContentItem(item);
-}
-
-/*!
- \qmlproperty list<Object> QtQuick.Controls::Popup::contentData
- \qmldefault
-
- This property holds the list of content data.
-
- The list contains all objects that have been declared in QML as children
- of the popup.
-
- \note Unlike \c contentChildren, \c contentData does include non-visual QML
- objects.
-
- \sa Item::data, contentChildren
-*/
-QQmlListProperty<QObject> QQuickPopupPrivate::contentData()
-{
- QQuickControlPrivate *p = QQuickControlPrivate::get(popupItem);
- if (!p->contentItem)
- p->executeContentItem();
- return QQmlListProperty<QObject>(popupItem->contentItem(), nullptr,
- QQuickItemPrivate::data_append,
- QQuickItemPrivate::data_count,
- QQuickItemPrivate::data_at,
- QQuickItemPrivate::data_clear);
-}
-
-/*!
- \qmlproperty list<Item> QtQuick.Controls::Popup::contentChildren
-
- This property holds the list of content children.
-
- The list contains all items that have been declared in QML as children
- of the popup.
-
- \note Unlike \c contentData, \c contentChildren does not include non-visual
- QML objects.
-
- \sa Item::children, contentData
-*/
-QQmlListProperty<QQuickItem> QQuickPopupPrivate::contentChildren()
-{
- return QQmlListProperty<QQuickItem>(popupItem->contentItem(), nullptr,
- QQuickItemPrivate::children_append,
- QQuickItemPrivate::children_count,
- QQuickItemPrivate::children_at,
- QQuickItemPrivate::children_clear);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Popup::clip
-
- This property holds whether clipping is enabled. The default value is \c false.
-*/
-bool QQuickPopup::clip() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->clip();
-}
-
-void QQuickPopup::setClip(bool clip)
-{
- Q_D(QQuickPopup);
- if (clip == d->popupItem->clip())
- return;
- d->popupItem->setClip(clip);
- emit clipChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Popup::focus
-
- This property holds whether the popup wants focus.
-
- When the popup actually receives focus, \l activeFocus will be \c true.
- For more information, see \l {Keyboard Focus in Qt Quick}.
-
- The default value is \c false.
-
- \sa activeFocus
-*/
-bool QQuickPopup::hasFocus() const
-{
- Q_D(const QQuickPopup);
- return d->focus;
-}
-
-void QQuickPopup::setFocus(bool focus)
-{
- Q_D(QQuickPopup);
- if (d->focus == focus)
- return;
- d->focus = focus;
- emit focusChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Popup::activeFocus
- \readonly
-
- This property holds whether the popup has active focus.
-
- \sa focus, {Keyboard Focus in Qt Quick}
-*/
-bool QQuickPopup::hasActiveFocus() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->hasActiveFocus();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Popup::modal
-
- This property holds whether the popup is modal.
-
- Modal popups often have a distinctive background dimming effect defined
- in \l {Overlay::modal}{Overlay.modal}, and do not allow press
- or release events through to items beneath them. For example, if the user
- accidentally clicks outside of a popup, any item beneath that popup at
- the location of the click will not receive the event.
-
- On desktop platforms, it is common for modal popups to be closed only when
- the escape key is pressed. To achieve this behavior, set
- \l closePolicy to \c Popup.CloseOnEscape. By default, \c closePolicy
- is set to \c {Popup.CloseOnEscape | Popup.CloseOnPressOutside}, which
- means that clicking outside of a modal popup will close it.
-
- The default value is \c false.
-
- \sa dim
-*/
-bool QQuickPopup::isModal() const
-{
- Q_D(const QQuickPopup);
- return d->modal;
-}
-
-void QQuickPopup::setModal(bool modal)
-{
- Q_D(QQuickPopup);
- if (d->modal == modal)
- return;
- d->modal = modal;
- if (d->complete && d->visible)
- d->toggleOverlay();
- emit modalChanged();
-
- QQuickItemPrivate::get(d->popupItem)->isTabFence = modal;
-
- if (!d->hasDim) {
- setDim(modal);
- d->hasDim = false;
- }
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Popup::dim
-
- This property holds whether the popup dims the background.
-
- Unless explicitly set, this property follows the value of \l modal. To
- return to the default value, set this property to \c undefined.
-
- \sa modal, {Overlay::modeless}{Overlay.modeless}
-*/
-bool QQuickPopup::dim() const
-{
- Q_D(const QQuickPopup);
- return d->dim;
-}
-
-void QQuickPopup::setDim(bool dim)
-{
- Q_D(QQuickPopup);
- d->hasDim = true;
-
- if (d->dim == dim)
- return;
-
- d->dim = dim;
- if (d->complete && d->visible)
- d->toggleOverlay();
- emit dimChanged();
-}
-
-void QQuickPopup::resetDim()
-{
- Q_D(QQuickPopup);
- if (!d->hasDim)
- return;
-
- setDim(d->modal);
- d->hasDim = false;
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Popup::visible
-
- This property holds whether the popup is visible. The default value is \c false.
-
- \sa open(), close(), opened
-*/
-bool QQuickPopup::isVisible() const
-{
- Q_D(const QQuickPopup);
- return d->visible && d->popupItem->isVisible();
-}
-
-void QQuickPopup::setVisible(bool visible)
-{
- Q_D(QQuickPopup);
- if (d->visible == visible && d->transitionState != QQuickPopupPrivate::ExitTransition)
- return;
-
- if (d->complete) {
- if (visible)
- d->transitionManager.transitionEnter();
- else
- d->transitionManager.transitionExit();
- } else {
- d->visible = visible;
- }
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::Popup::enabled
-
- This property holds whether the popup is enabled. The default value is \c true.
-
- \sa visible, Item::enabled
-*/
-bool QQuickPopup::isEnabled() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->isEnabled();
-}
-
-void QQuickPopup::setEnabled(bool enabled)
-{
- Q_D(QQuickPopup);
- d->popupItem->setEnabled(enabled);
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::Popup::opened
-
- This property holds whether the popup is fully open. The popup is considered opened
- when it's visible and neither the \l enter nor \l exit transitions are running.
-
- \sa open(), close(), visible
-*/
-bool QQuickPopup::isOpened() const
-{
- Q_D(const QQuickPopup);
- return d->transitionState == QQuickPopupPrivate::NoTransition && isVisible();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::opacity
-
- This property holds the opacity of the popup. Opacity is specified as a number between
- \c 0.0 (fully transparent) and \c 1.0 (fully opaque). The default value is \c 1.0.
-
- \sa visible
-*/
-qreal QQuickPopup::opacity() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->opacity();
-}
-
-void QQuickPopup::setOpacity(qreal opacity)
-{
- Q_D(QQuickPopup);
- d->popupItem->setOpacity(opacity);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Popup::scale
-
- This property holds the scale factor of the popup. The default value is \c 1.0.
-
- A scale of less than \c 1.0 causes the popup to be rendered at a smaller size,
- and a scale greater than \c 1.0 renders the popup at a larger size. Negative
- scales are not supported.
-*/
-qreal QQuickPopup::scale() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->scale();
-}
-
-void QQuickPopup::setScale(qreal scale)
-{
- Q_D(QQuickPopup);
- if (qFuzzyCompare(scale, d->popupItem->scale()))
- return;
- d->popupItem->setScale(scale);
- emit scaleChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::Popup::closePolicy
-
- This property determines the circumstances under which the popup closes.
- The flags can be combined to allow several ways of closing the popup.
-
- The available values are:
- \value Popup.NoAutoClose The popup will only close when manually instructed to do so.
- \value Popup.CloseOnPressOutside The popup will close when the mouse is pressed outside of it.
- \value Popup.CloseOnPressOutsideParent The popup will close when the mouse is pressed outside of its parent.
- \value Popup.CloseOnReleaseOutside The popup will close when the mouse is released outside of it.
- \value Popup.CloseOnReleaseOutsideParent The popup will close when the mouse is released outside of its parent.
- \value Popup.CloseOnEscape The popup will close when the escape key is pressed while the popup
- has active focus.
-
- The default value is \c {Popup.CloseOnEscape | Popup.CloseOnPressOutside}.
-
- \note There is a known limitation that the \c Popup.CloseOnReleaseOutside
- and \c Popup.CloseOnReleaseOutsideParent policies only work with
- \l modal popups.
-*/
-QQuickPopup::ClosePolicy QQuickPopup::closePolicy() const
-{
- Q_D(const QQuickPopup);
- return d->closePolicy;
-}
-
-void QQuickPopup::setClosePolicy(ClosePolicy policy)
-{
- Q_D(QQuickPopup);
- d->hasClosePolicy = true;
- if (d->closePolicy == policy)
- return;
- d->closePolicy = policy;
- if (isVisible()) {
- if (policy & QQuickPopup::CloseOnEscape)
- d->popupItem->grabShortcut();
- else
- d->popupItem->ungrabShortcut();
- }
- emit closePolicyChanged();
-}
-
-void QQuickPopup::resetClosePolicy()
-{
- Q_D(QQuickPopup);
- setClosePolicy(QQuickPopupPrivate::DefaultClosePolicy);
- d->hasClosePolicy = false;
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::Popup::transformOrigin
-
- This property holds the origin point for transformations in enter and exit transitions.
-
- Nine transform origins are available, as shown in the image below.
- The default transform origin is \c Popup.Center.
-
- \image qtquickcontrols2-popup-transformorigin.png
-
- \sa enter, exit, Item::transformOrigin
-*/
-QQuickPopup::TransformOrigin QQuickPopup::transformOrigin() const
-{
- Q_D(const QQuickPopup);
- return static_cast<TransformOrigin>(d->popupItem->transformOrigin());
-}
-
-void QQuickPopup::setTransformOrigin(TransformOrigin origin)
-{
- Q_D(QQuickPopup);
- d->popupItem->setTransformOrigin(static_cast<QQuickItem::TransformOrigin>(origin));
-}
-
-/*!
- \qmlproperty Transition QtQuick.Controls::Popup::enter
-
- This property holds the transition that is applied to the popup item
- when the popup is opened and enters the screen.
-
- The following example animates the opacity of the popup when it enters
- the screen:
- \code
- Popup {
- enter: Transition {
- NumberAnimation { property: "opacity"; from: 0.0; to: 1.0 }
- }
- }
- \endcode
-
- \sa exit
-*/
-QQuickTransition *QQuickPopup::enter() const
-{
- Q_D(const QQuickPopup);
- return d->enter;
-}
-
-void QQuickPopup::setEnter(QQuickTransition *transition)
-{
- Q_D(QQuickPopup);
- if (d->enter == transition)
- return;
- d->enter = transition;
- emit enterChanged();
-}
-
-/*!
- \qmlproperty Transition QtQuick.Controls::Popup::exit
-
- This property holds the transition that is applied to the popup item
- when the popup is closed and exits the screen.
-
- The following example animates the opacity of the popup when it exits
- the screen:
- \code
- Popup {
- exit: Transition {
- NumberAnimation { property: "opacity"; from: 1.0; to: 0.0 }
- }
- }
- \endcode
-
- \sa enter
-*/
-QQuickTransition *QQuickPopup::exit() const
-{
- Q_D(const QQuickPopup);
- return d->exit;
-}
-
-void QQuickPopup::setExit(QQuickTransition *transition)
-{
- Q_D(QQuickPopup);
- if (d->exit == transition)
- return;
- d->exit = transition;
- emit exitChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Popup::horizontalPadding
-
- This property holds the horizontal padding. Unless explicitly set, the value
- is equal to \c padding.
-
- \include qquickpopup-padding.qdocinc
-
- \sa padding, leftPadding, rightPadding, verticalPadding
-*/
-qreal QQuickPopup::horizontalPadding() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->horizontalPadding();
-}
-
-void QQuickPopup::setHorizontalPadding(qreal padding)
-{
- Q_D(QQuickPopup);
- d->popupItem->setHorizontalPadding(padding);
-}
-
-void QQuickPopup::resetHorizontalPadding()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetHorizontalPadding();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Popup::verticalPadding
-
- This property holds the vertical padding. Unless explicitly set, the value
- is equal to \c padding.
-
- \include qquickpopup-padding.qdocinc
-
- \sa padding, topPadding, bottomPadding, horizontalPadding
-*/
-qreal QQuickPopup::verticalPadding() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->verticalPadding();
-}
-
-void QQuickPopup::setVerticalPadding(qreal padding)
-{
- Q_D(QQuickPopup);
- d->popupItem->setVerticalPadding(padding);
-}
-
-void QQuickPopup::resetVerticalPadding()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetVerticalPadding();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Popup::implicitContentWidth
- \readonly
-
- This property holds the implicit content width.
-
- The value is calculated based on the content children.
-
- \sa implicitContentHeight, implicitBackgroundWidth
-*/
-qreal QQuickPopup::implicitContentWidth() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->implicitContentWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Popup::implicitContentHeight
- \readonly
-
- This property holds the implicit content height.
-
- The value is calculated based on the content children.
-
- \sa implicitContentWidth, implicitBackgroundHeight
-*/
-qreal QQuickPopup::implicitContentHeight() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->implicitContentHeight();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Popup::implicitBackgroundWidth
- \readonly
-
- This property holds the implicit background width.
-
- The value is equal to \c {background ? background.implicitWidth : 0}.
-
- \sa implicitBackgroundHeight, implicitContentWidth
-*/
-qreal QQuickPopup::implicitBackgroundWidth() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->implicitBackgroundWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Popup::implicitBackgroundHeight
- \readonly
-
- This property holds the implicit background height.
-
- The value is equal to \c {background ? background.implicitHeight : 0}.
-
- \sa implicitBackgroundWidth, implicitContentHeight
-*/
-qreal QQuickPopup::implicitBackgroundHeight() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->implicitBackgroundHeight();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Popup::topInset
-
- This property holds the top inset for the background.
-
- \sa {Popup Layout}, bottomInset
-*/
-qreal QQuickPopup::topInset() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->topInset();
-}
-
-void QQuickPopup::setTopInset(qreal inset)
-{
- Q_D(QQuickPopup);
- d->popupItem->setTopInset(inset);
-}
-
-void QQuickPopup::resetTopInset()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetTopInset();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Popup::leftInset
-
- This property holds the left inset for the background.
-
- \sa {Popup Layout}, rightInset
-*/
-qreal QQuickPopup::leftInset() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->leftInset();
-}
-
-void QQuickPopup::setLeftInset(qreal inset)
-{
- Q_D(QQuickPopup);
- d->popupItem->setLeftInset(inset);
-}
-
-void QQuickPopup::resetLeftInset()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetLeftInset();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Popup::rightInset
-
- This property holds the right inset for the background.
-
- \sa {Popup Layout}, leftInset
-*/
-qreal QQuickPopup::rightInset() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->rightInset();
-}
-
-void QQuickPopup::setRightInset(qreal inset)
-{
- Q_D(QQuickPopup);
- d->popupItem->setRightInset(inset);
-}
-
-void QQuickPopup::resetRightInset()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetRightInset();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Popup::bottomInset
-
- This property holds the bottom inset for the background.
-
- \sa {Popup Layout}, topInset
-*/
-qreal QQuickPopup::bottomInset() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->bottomInset();
-}
-
-void QQuickPopup::setBottomInset(qreal inset)
-{
- Q_D(QQuickPopup);
- d->popupItem->setBottomInset(inset);
-}
-
-void QQuickPopup::resetBottomInset()
-{
- Q_D(QQuickPopup);
- d->popupItem->resetBottomInset();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty palette QtQuick.Controls::Popup::palette
-
- This property holds the palette currently set for the popup.
-
- Popup propagates explicit palette properties to its children. If you change a specific
- property on a popup's palette, that property propagates to all of the popup's children,
- overriding any system defaults for that property.
-
- \code
- Popup {
- palette.text: "red"
-
- Column {
- Label {
- text: qsTr("This will use red color...")
- }
-
- Switch {
- text: qsTr("... and so will this")
- }
- }
- }
- \endcode
-
- \sa Item::palette, Window::palette, ColorGroup, Palette
-*/
-
-bool QQuickPopup::filtersChildMouseEvents() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->filtersChildMouseEvents();
-}
-
-void QQuickPopup::setFiltersChildMouseEvents(bool filter)
-{
- Q_D(QQuickPopup);
- d->popupItem->setFiltersChildMouseEvents(filter);
-}
-
-/*!
- \qmlmethod QtQuick.Controls::Popup::forceActiveFocus(enumeration reason = Qt.OtherFocusReason)
-
- Forces active focus on the popup with the given \a reason.
-
- This method sets focus on the popup and ensures that all ancestor
- \l FocusScope objects in the object hierarchy are also given \l focus.
-
- \sa activeFocus, Qt::FocusReason
-*/
-void QQuickPopup::forceActiveFocus(Qt::FocusReason reason)
-{
- Q_D(QQuickPopup);
- d->popupItem->forceActiveFocus(reason);
-}
-
-void QQuickPopup::classBegin()
-{
- Q_D(QQuickPopup);
- d->complete = false;
- QQmlContext *context = qmlContext(this);
- if (context)
- QQmlEngine::setContextForObject(d->popupItem, context);
- d->popupItem->classBegin();
-}
-
-void QQuickPopup::componentComplete()
-{
- Q_D(QQuickPopup);
- qCDebug(lcPopup) << "componentComplete";
- if (!parentItem())
- resetParentItem();
-
- if (d->visible && d->window)
- d->transitionManager.transitionEnter();
-
- d->complete = true;
- d->popupItem->componentComplete();
-
- if (isVisible()) {
- if (d->closePolicy & QQuickPopup::CloseOnEscape)
- d->popupItem->grabShortcut();
- else
- d->popupItem->ungrabShortcut();
- }
-}
-
-bool QQuickPopup::isComponentComplete() const
-{
- Q_D(const QQuickPopup);
- return d->complete;
-}
-
-bool QQuickPopup::childMouseEventFilter(QQuickItem *child, QEvent *event)
-{
- Q_UNUSED(child);
- Q_UNUSED(event);
- return false;
-}
-
-void QQuickPopup::focusInEvent(QFocusEvent *event)
-{
- event->accept();
-}
-
-void QQuickPopup::focusOutEvent(QFocusEvent *event)
-{
- event->accept();
-}
-
-void QQuickPopup::keyPressEvent(QKeyEvent *event)
-{
- Q_D(QQuickPopup);
- event->accept();
-
- if (hasActiveFocus() && (event->key() == Qt::Key_Tab || event->key() == Qt::Key_Backtab))
- QQuickItemPrivate::focusNextPrev(d->popupItem, event->key() == Qt::Key_Tab);
-}
-
-void QQuickPopup::keyReleaseEvent(QKeyEvent *event)
-{
- event->accept();
-}
-
-void QQuickPopup::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickPopup);
- d->handleMouseEvent(d->popupItem, event);
- event->accept();
-}
-
-void QQuickPopup::mouseMoveEvent(QMouseEvent *event)
-{
- Q_D(QQuickPopup);
- d->handleMouseEvent(d->popupItem, event);
- event->accept();
-}
-
-void QQuickPopup::mouseReleaseEvent(QMouseEvent *event)
-{
- Q_D(QQuickPopup);
- d->handleMouseEvent(d->popupItem, event);
- event->accept();
-}
-
-void QQuickPopup::mouseDoubleClickEvent(QMouseEvent *event)
-{
- event->accept();
-}
-
-void QQuickPopup::mouseUngrabEvent()
-{
- Q_D(QQuickPopup);
- d->handleUngrab();
-}
-
-bool QQuickPopup::overlayEvent(QQuickItem *item, QEvent *event)
-{
- Q_D(QQuickPopup);
- switch (event->type()) {
- case QEvent::KeyPress:
- case QEvent::KeyRelease:
- case QEvent::MouseMove:
- case QEvent::Wheel:
- if (d->modal)
- event->accept();
- return d->modal;
-
-#if QT_CONFIG(quicktemplates2_multitouch)
- case QEvent::TouchBegin:
- case QEvent::TouchUpdate:
- case QEvent::TouchEnd:
- return d->handleTouchEvent(item, static_cast<QTouchEvent *>(event));
-#endif
- case QEvent::HoverEnter:
- case QEvent::HoverMove:
- case QEvent::HoverLeave:
- return d->handleHoverEvent(item, static_cast<QHoverEvent *>(event));
-
- case QEvent::MouseButtonPress:
- case QEvent::MouseButtonRelease:
- return d->handleMouseEvent(item, static_cast<QMouseEvent *>(event));
-
- default:
- return false;
- }
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickPopup::touchEvent(QTouchEvent *event)
-{
- Q_D(QQuickPopup);
- d->handleTouchEvent(d->popupItem, event);
-}
-
-void QQuickPopup::touchUngrabEvent()
-{
- Q_D(QQuickPopup);
- d->handleUngrab();
-}
-#endif
-
-#if QT_CONFIG(wheelevent)
-void QQuickPopup::wheelEvent(QWheelEvent *event)
-{
- event->accept();
-}
-#endif
-
-void QQuickPopup::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_UNUSED(newItem);
- Q_UNUSED(oldItem);
-}
-
-void QQuickPopup::contentSizeChange(const QSizeF &newSize, const QSizeF &oldSize)
-{
- if (!qFuzzyCompare(newSize.width(), oldSize.width()))
- emit contentWidthChanged();
- if (!qFuzzyCompare(newSize.height(), oldSize.height()))
- emit contentHeightChanged();
-}
-
-void QQuickPopup::fontChange(const QFont &newFont, const QFont &oldFont)
-{
- Q_UNUSED(newFont);
- Q_UNUSED(oldFont);
- emit fontChanged();
-}
-
-void QQuickPopup::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickPopup);
- d->reposition();
- if (!qFuzzyCompare(newGeometry.width(), oldGeometry.width())) {
- emit widthChanged();
- emit availableWidthChanged();
- }
- if (!qFuzzyCompare(newGeometry.height(), oldGeometry.height())) {
- emit heightChanged();
- emit availableHeightChanged();
- }
-}
-
-void QQuickPopup::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- Q_D(QQuickPopup);
-
- switch (change) {
- case QQuickItem::ItemActiveFocusHasChanged:
- emit activeFocusChanged();
- break;
- case QQuickItem::ItemOpacityHasChanged:
- emit opacityChanged();
- break;
- case QQuickItem::ItemVisibleHasChanged:
- if (isComponentComplete() && d->closePolicy & CloseOnEscape) {
- if (data.boolValue)
- d->popupItem->grabShortcut();
- else
- d->popupItem->ungrabShortcut();
- }
- break;
- default:
- break;
- }
-}
-
-void QQuickPopup::localeChange(const QLocale &newLocale, const QLocale &oldLocale)
-{
- Q_UNUSED(newLocale);
- Q_UNUSED(oldLocale);
- emit localeChanged();
-}
-
-void QQuickPopup::marginsChange(const QMarginsF &newMargins, const QMarginsF &oldMargins)
-{
- Q_D(QQuickPopup);
- Q_UNUSED(newMargins);
- Q_UNUSED(oldMargins);
- d->reposition();
-}
-
-void QQuickPopup::paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding)
-{
- const bool tp = !qFuzzyCompare(newPadding.top(), oldPadding.top());
- const bool lp = !qFuzzyCompare(newPadding.left(), oldPadding.left());
- const bool rp = !qFuzzyCompare(newPadding.right(), oldPadding.right());
- const bool bp = !qFuzzyCompare(newPadding.bottom(), oldPadding.bottom());
-
- if (tp)
- emit topPaddingChanged();
- if (lp)
- emit leftPaddingChanged();
- if (rp)
- emit rightPaddingChanged();
- if (bp)
- emit bottomPaddingChanged();
-
- if (lp || rp) {
- emit horizontalPaddingChanged();
- emit availableWidthChanged();
- }
- if (tp || bp) {
- emit verticalPaddingChanged();
- emit availableHeightChanged();
- }
-}
-
-void QQuickPopup::spacingChange(qreal newSpacing, qreal oldSpacing)
-{
- Q_UNUSED(newSpacing);
- Q_UNUSED(oldSpacing);
- emit spacingChanged();
-}
-
-void QQuickPopup::insetChange(const QMarginsF &newInset, const QMarginsF &oldInset)
-{
- if (!qFuzzyCompare(newInset.top(), oldInset.top()))
- emit topInsetChanged();
- if (!qFuzzyCompare(newInset.left(), oldInset.left()))
- emit leftInsetChanged();
- if (!qFuzzyCompare(newInset.right(), oldInset.right()))
- emit rightInsetChanged();
- if (!qFuzzyCompare(newInset.bottom(), oldInset.bottom()))
- emit bottomInsetChanged();
-}
-
-QFont QQuickPopup::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::System);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickPopup::accessibleRole() const
-{
- return QAccessible::Dialog;
-}
-
-void QQuickPopup::accessibilityActiveChanged(bool active)
-{
- Q_UNUSED(active);
-}
-#endif
-
-QString QQuickPopup::accessibleName() const
-{
- Q_D(const QQuickPopup);
- return d->popupItem->accessibleName();
-}
-
-void QQuickPopup::maybeSetAccessibleName(const QString &name)
-{
- Q_D(QQuickPopup);
- d->popupItem->maybeSetAccessibleName(name);
-}
-
-QVariant QQuickPopup::accessibleProperty(const char *propertyName)
-{
- Q_D(const QQuickPopup);
- return d->popupItem->accessibleProperty(propertyName);
-}
-
-bool QQuickPopup::setAccessibleProperty(const char *propertyName, const QVariant &value)
-{
- Q_D(QQuickPopup);
- return d->popupItem->setAccessibleProperty(propertyName, value);
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickpopup_p.cpp"
diff --git a/src/quicktemplates2/qquickpopup_p.h b/src/quicktemplates2/qquickpopup_p.h
deleted file mode 100644
index cdbc3cc4..00000000
--- a/src/quicktemplates2/qquickpopup_p.h
+++ /dev/null
@@ -1,478 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPOPUP_P_H
-#define QQUICKPOPUP_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtCore/qmargins.h>
-#include <QtGui/qevent.h>
-#include <QtCore/qlocale.h>
-#include <QtGui/qfont.h>
-#include <QtGui/qpalette.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-#include <QtQml/qqml.h>
-#include <QtQml/qqmllist.h>
-#include <QtQml/qqmlparserstatus.h>
-#include <QtQuick/qquickitem.h>
-
-#if QT_CONFIG(accessibility)
-#include <QtGui/qaccessible.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-class QQuickWindow;
-class QQuickPopupAnchors;
-class QQuickPopupPrivate;
-class QQuickTransition;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopup : public QObject, public QQmlParserStatus
-{
- Q_OBJECT
- Q_INTERFACES(QQmlParserStatus)
- Q_PROPERTY(qreal x READ x WRITE setX NOTIFY xChanged FINAL)
- Q_PROPERTY(qreal y READ y WRITE setY NOTIFY yChanged FINAL)
- Q_PROPERTY(qreal z READ z WRITE setZ NOTIFY zChanged FINAL)
- Q_PROPERTY(qreal width READ width WRITE setWidth RESET resetWidth NOTIFY widthChanged FINAL)
- Q_PROPERTY(qreal height READ height WRITE setHeight RESET resetHeight NOTIFY heightChanged FINAL)
- Q_PROPERTY(qreal implicitWidth READ implicitWidth WRITE setImplicitWidth NOTIFY implicitWidthChanged FINAL)
- Q_PROPERTY(qreal implicitHeight READ implicitHeight WRITE setImplicitHeight NOTIFY implicitHeightChanged FINAL)
- Q_PROPERTY(qreal contentWidth READ contentWidth WRITE setContentWidth NOTIFY contentWidthChanged FINAL)
- Q_PROPERTY(qreal contentHeight READ contentHeight WRITE setContentHeight NOTIFY contentHeightChanged FINAL)
- Q_PROPERTY(qreal availableWidth READ availableWidth NOTIFY availableWidthChanged FINAL)
- Q_PROPERTY(qreal availableHeight READ availableHeight NOTIFY availableHeightChanged FINAL)
- Q_PROPERTY(qreal margins READ margins WRITE setMargins RESET resetMargins NOTIFY marginsChanged FINAL)
- Q_PROPERTY(qreal topMargin READ topMargin WRITE setTopMargin RESET resetTopMargin NOTIFY topMarginChanged FINAL)
- Q_PROPERTY(qreal leftMargin READ leftMargin WRITE setLeftMargin RESET resetLeftMargin NOTIFY leftMarginChanged FINAL)
- Q_PROPERTY(qreal rightMargin READ rightMargin WRITE setRightMargin RESET resetRightMargin NOTIFY rightMarginChanged FINAL)
- Q_PROPERTY(qreal bottomMargin READ bottomMargin WRITE setBottomMargin RESET resetBottomMargin NOTIFY bottomMarginChanged FINAL)
- Q_PROPERTY(qreal padding READ padding WRITE setPadding RESET resetPadding NOTIFY paddingChanged FINAL)
- Q_PROPERTY(qreal topPadding READ topPadding WRITE setTopPadding RESET resetTopPadding NOTIFY topPaddingChanged FINAL)
- Q_PROPERTY(qreal leftPadding READ leftPadding WRITE setLeftPadding RESET resetLeftPadding NOTIFY leftPaddingChanged FINAL)
- Q_PROPERTY(qreal rightPadding READ rightPadding WRITE setRightPadding RESET resetRightPadding NOTIFY rightPaddingChanged FINAL)
- Q_PROPERTY(qreal bottomPadding READ bottomPadding WRITE setBottomPadding RESET resetBottomPadding NOTIFY bottomPaddingChanged FINAL)
- Q_PROPERTY(QLocale locale READ locale WRITE setLocale RESET resetLocale NOTIFY localeChanged FINAL)
- Q_PROPERTY(QFont font READ font WRITE setFont RESET resetFont NOTIFY fontChanged FINAL)
- Q_PROPERTY(QQuickItem *parent READ parentItem WRITE setParentItem RESET resetParentItem NOTIFY parentChanged FINAL)
- Q_PROPERTY(QQuickItem *background READ background WRITE setBackground NOTIFY backgroundChanged FINAL)
- Q_PROPERTY(QQuickItem *contentItem READ contentItem WRITE setContentItem NOTIFY contentItemChanged FINAL)
- Q_PRIVATE_PROPERTY(QQuickPopup::d_func(), QQmlListProperty<QObject> contentData READ contentData)
- Q_PRIVATE_PROPERTY(QQuickPopup::d_func(), QQmlListProperty<QQuickItem> contentChildren READ contentChildren NOTIFY contentChildrenChanged FINAL)
- Q_PROPERTY(bool clip READ clip WRITE setClip NOTIFY clipChanged FINAL)
- Q_PROPERTY(bool focus READ hasFocus WRITE setFocus NOTIFY focusChanged FINAL)
- Q_PROPERTY(bool activeFocus READ hasActiveFocus NOTIFY activeFocusChanged FINAL)
- Q_PROPERTY(bool modal READ isModal WRITE setModal NOTIFY modalChanged FINAL)
- Q_PROPERTY(bool dim READ dim WRITE setDim RESET resetDim NOTIFY dimChanged FINAL)
- Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
- Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity NOTIFY opacityChanged FINAL)
- Q_PROPERTY(qreal scale READ scale WRITE setScale NOTIFY scaleChanged FINAL)
- Q_PROPERTY(ClosePolicy closePolicy READ closePolicy WRITE setClosePolicy RESET resetClosePolicy NOTIFY closePolicyChanged FINAL)
- Q_PROPERTY(TransformOrigin transformOrigin READ transformOrigin WRITE setTransformOrigin FINAL)
- Q_PROPERTY(QQuickTransition *enter READ enter WRITE setEnter NOTIFY enterChanged FINAL)
- Q_PROPERTY(QQuickTransition *exit READ exit WRITE setExit NOTIFY exitChanged FINAL)
- // 2.1 (Qt 5.8)
- Q_PROPERTY(qreal spacing READ spacing WRITE setSpacing RESET resetSpacing NOTIFY spacingChanged FINAL REVISION(2, 1))
- // 2.3 (Qt 5.10)
- Q_PROPERTY(bool opened READ isOpened NOTIFY openedChanged FINAL REVISION(2, 3))
- Q_PROPERTY(bool mirrored READ isMirrored NOTIFY mirroredChanged FINAL REVISION(2, 3))
- Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged FINAL REVISION(2, 3))
- Q_PRIVATE_PROPERTY(QQuickPopup::d_func(), QQuickPalette *palette READ palette WRITE setPalette RESET resetPalette NOTIFY paletteChanged REVISION(2, 3))
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal horizontalPadding READ horizontalPadding WRITE setHorizontalPadding RESET resetHorizontalPadding NOTIFY horizontalPaddingChanged FINAL)
- Q_PROPERTY(qreal verticalPadding READ verticalPadding WRITE setVerticalPadding RESET resetVerticalPadding NOTIFY verticalPaddingChanged FINAL)
- Q_PRIVATE_PROPERTY(QQuickPopup::d_func(), QQuickPopupAnchors *anchors READ getAnchors DESIGNABLE false CONSTANT FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitContentWidth READ implicitContentWidth NOTIFY implicitContentWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitContentHeight READ implicitContentHeight NOTIFY implicitContentHeightChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitBackgroundWidth READ implicitBackgroundWidth NOTIFY implicitBackgroundWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitBackgroundHeight READ implicitBackgroundHeight NOTIFY implicitBackgroundHeightChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal topInset READ topInset WRITE setTopInset RESET resetTopInset NOTIFY topInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal leftInset READ leftInset WRITE setLeftInset RESET resetLeftInset NOTIFY leftInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal rightInset READ rightInset WRITE setRightInset RESET resetRightInset NOTIFY rightInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal bottomInset READ bottomInset WRITE setBottomInset RESET resetBottomInset NOTIFY bottomInsetChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "background,contentItem")
- Q_CLASSINFO("DefaultProperty", "contentData")
- QML_NAMED_ELEMENT(Popup)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickPopup(QObject *parent = nullptr);
- ~QQuickPopup();
-
- qreal x() const;
- void setX(qreal x);
-
- qreal y() const;
- void setY(qreal y);
-
- QPointF position() const;
- void setPosition(const QPointF &pos);
-
- qreal z() const;
- void setZ(qreal z);
-
- qreal width() const;
- void setWidth(qreal width);
- void resetWidth();
-
- qreal height() const;
- void setHeight(qreal height);
- void resetHeight();
-
- qreal implicitWidth() const;
- void setImplicitWidth(qreal width);
-
- qreal implicitHeight() const;
- void setImplicitHeight(qreal height);
-
- qreal contentWidth() const;
- void setContentWidth(qreal width);
-
- qreal contentHeight() const;
- void setContentHeight(qreal height);
-
- qreal availableWidth() const;
- qreal availableHeight() const;
-
- qreal margins() const;
- void setMargins(qreal margins);
- void resetMargins();
-
- qreal topMargin() const;
- void setTopMargin(qreal margin);
- void resetTopMargin();
-
- qreal leftMargin() const;
- void setLeftMargin(qreal margin);
- void resetLeftMargin();
-
- qreal rightMargin() const;
- void setRightMargin(qreal margin);
- void resetRightMargin();
-
- qreal bottomMargin() const;
- void setBottomMargin(qreal margin);
- void resetBottomMargin();
-
- qreal padding() const;
- void setPadding(qreal padding);
- void resetPadding();
-
- qreal topPadding() const;
- void setTopPadding(qreal padding);
- void resetTopPadding();
-
- qreal leftPadding() const;
- void setLeftPadding(qreal padding);
- void resetLeftPadding();
-
- qreal rightPadding() const;
- void setRightPadding(qreal padding);
- void resetRightPadding();
-
- qreal bottomPadding() const;
- void setBottomPadding(qreal padding);
- void resetBottomPadding();
-
- QLocale locale() const;
- void setLocale(const QLocale &locale);
- void resetLocale();
-
- QFont font() const;
- void setFont(const QFont &font);
- void resetFont();
-
- QQuickWindow *window() const;
- QQuickItem *popupItem() const;
-
- QQuickItem *parentItem() const;
- void setParentItem(QQuickItem *parent);
- void resetParentItem();
-
- QQuickItem *background() const;
- void setBackground(QQuickItem *background);
-
- QQuickItem *contentItem() const;
- void setContentItem(QQuickItem *item);
-
- bool clip() const;
- void setClip(bool clip);
-
- bool hasFocus() const;
- void setFocus(bool focus);
-
- bool hasActiveFocus() const;
-
- bool isModal() const;
- void setModal(bool modal);
-
- bool dim() const;
- void setDim(bool dim);
- void resetDim();
-
- bool isVisible() const;
- virtual void setVisible(bool visible);
-
- qreal opacity() const;
- void setOpacity(qreal opacity);
-
- qreal scale() const;
- void setScale(qreal scale);
-
- enum ClosePolicyFlag {
- NoAutoClose = 0x00,
- CloseOnPressOutside = 0x01,
- CloseOnPressOutsideParent = 0x02,
- CloseOnReleaseOutside = 0x04,
- CloseOnReleaseOutsideParent = 0x08,
- CloseOnEscape = 0x10
- };
- Q_DECLARE_FLAGS(ClosePolicy, ClosePolicyFlag)
- Q_FLAG(ClosePolicy)
-
- ClosePolicy closePolicy() const;
- void setClosePolicy(ClosePolicy policy);
- void resetClosePolicy();
-
- // keep in sync with Item.TransformOrigin
- enum TransformOrigin {
- TopLeft, Top, TopRight,
- Left, Center, Right,
- BottomLeft, Bottom, BottomRight
- };
- Q_ENUM(TransformOrigin)
-
- TransformOrigin transformOrigin() const;
- void setTransformOrigin(TransformOrigin);
-
- QQuickTransition *enter() const;
- void setEnter(QQuickTransition *transition);
-
- QQuickTransition *exit() const;
- void setExit(QQuickTransition *transition);
-
- bool filtersChildMouseEvents() const;
- void setFiltersChildMouseEvents(bool filter);
-
- Q_INVOKABLE void forceActiveFocus(Qt::FocusReason reason = Qt::OtherFocusReason);
-
- // 2.1 (Qt 5.8)
- qreal spacing() const;
- void setSpacing(qreal spacing);
- void resetSpacing();
-
- // 2.3 (Qt 5.10)
- bool isOpened() const;
- bool isMirrored() const;
-
- bool isEnabled() const;
- void setEnabled(bool enabled);
-
- // 2.5 (Qt 5.12)
- qreal horizontalPadding() const;
- void setHorizontalPadding(qreal padding);
- void resetHorizontalPadding();
-
- qreal verticalPadding() const;
- void setVerticalPadding(qreal padding);
- void resetVerticalPadding();
-
- qreal implicitContentWidth() const;
- qreal implicitContentHeight() const;
-
- qreal implicitBackgroundWidth() const;
- qreal implicitBackgroundHeight() const;
-
- qreal topInset() const;
- void setTopInset(qreal inset);
- void resetTopInset();
-
- qreal leftInset() const;
- void setLeftInset(qreal inset);
- void resetLeftInset();
-
- qreal rightInset() const;
- void setRightInset(qreal inset);
- void resetRightInset();
-
- qreal bottomInset() const;
- void setBottomInset(qreal inset);
- void resetBottomInset();
-
-public Q_SLOTS:
- void open();
- void close();
-
-Q_SIGNALS:
- void opened();
- void closed();
- void aboutToShow();
- void aboutToHide();
- void xChanged();
- void yChanged();
- void zChanged();
- void widthChanged();
- void heightChanged();
- void implicitWidthChanged();
- void implicitHeightChanged();
- void contentWidthChanged();
- void contentHeightChanged();
- void availableWidthChanged();
- void availableHeightChanged();
- void marginsChanged();
- void topMarginChanged();
- void leftMarginChanged();
- void rightMarginChanged();
- void bottomMarginChanged();
- void paddingChanged();
- void topPaddingChanged();
- void leftPaddingChanged();
- void rightPaddingChanged();
- void bottomPaddingChanged();
- void fontChanged();
- void localeChanged();
- void parentChanged();
- void backgroundChanged();
- void contentItemChanged();
- void contentChildrenChanged();
- void clipChanged();
- void focusChanged();
- void activeFocusChanged();
- void modalChanged();
- void dimChanged();
- void visibleChanged();
- void opacityChanged();
- void scaleChanged();
- void closePolicyChanged();
- void enterChanged();
- void exitChanged();
- void windowChanged(QQuickWindow *window);
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) void spacingChanged();
- // 2.3 (Qt 5.10)
- Q_REVISION(2, 3) void openedChanged();
- Q_REVISION(2, 3) void mirroredChanged();
- Q_REVISION(2, 3) void enabledChanged();
- Q_REVISION(2, 3) void paletteChanged();
- Q_REVISION(2, 3) void paletteCreated();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void horizontalPaddingChanged();
- Q_REVISION(2, 5) void verticalPaddingChanged();
- Q_REVISION(2, 5) void implicitContentWidthChanged();
- Q_REVISION(2, 5) void implicitContentHeightChanged();
- Q_REVISION(2, 5) void implicitBackgroundWidthChanged();
- Q_REVISION(2, 5) void implicitBackgroundHeightChanged();
- Q_REVISION(2, 5) void topInsetChanged();
- Q_REVISION(2, 5) void leftInsetChanged();
- Q_REVISION(2, 5) void rightInsetChanged();
- Q_REVISION(2, 5) void bottomInsetChanged();
-
-protected:
- QQuickPopup(QQuickPopupPrivate &dd, QObject *parent);
-
- void classBegin() override;
- void componentComplete() override;
- bool isComponentComplete() const;
-
- virtual bool childMouseEventFilter(QQuickItem *child, QEvent *event);
- virtual void focusInEvent(QFocusEvent *event);
- virtual void focusOutEvent(QFocusEvent *event);
- virtual void keyPressEvent(QKeyEvent *event);
- virtual void keyReleaseEvent(QKeyEvent *event);
- virtual void mousePressEvent(QMouseEvent *event);
- virtual void mouseMoveEvent(QMouseEvent *event);
- virtual void mouseReleaseEvent(QMouseEvent *event);
- virtual void mouseDoubleClickEvent(QMouseEvent *event);
- virtual void mouseUngrabEvent();
- virtual bool overlayEvent(QQuickItem *item, QEvent *event);
-#if QT_CONFIG(quicktemplates2_multitouch)
- virtual void touchEvent(QTouchEvent *event);
- virtual void touchUngrabEvent();
-#endif
-#if QT_CONFIG(wheelevent)
- virtual void wheelEvent(QWheelEvent *event);
-#endif
-
- virtual void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem);
- virtual void contentSizeChange(const QSizeF &newSize, const QSizeF &oldSize);
- virtual void fontChange(const QFont &newFont, const QFont &oldFont);
- virtual void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry);
- virtual void localeChange(const QLocale &newLocale, const QLocale &oldLocale);
- virtual void itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data);
- virtual void marginsChange(const QMarginsF &newMargins, const QMarginsF &oldMargins);
- virtual void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding);
- virtual void spacingChange(qreal newSpacing, qreal oldSpacing);
- virtual void insetChange(const QMarginsF &newInset, const QMarginsF &oldInset);
-
- virtual QFont defaultFont() const;
-
-#if QT_CONFIG(accessibility)
- virtual QAccessible::Role accessibleRole() const;
- virtual void accessibilityActiveChanged(bool active);
-#endif
-
- QString accessibleName() const;
- void maybeSetAccessibleName(const QString &name);
-
- QVariant accessibleProperty(const char *propertyName);
- bool setAccessibleProperty(const char *propertyName, const QVariant &value);
-
-private:
- Q_DISABLE_COPY(QQuickPopup)
- Q_DECLARE_PRIVATE(QQuickPopup)
- friend class QQuickPopupItem;
- friend class QQuickOverlay;
- friend class QQuickOverlayPrivate;
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QQuickPopup::ClosePolicy)
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPopup)
-
-#endif // QQUICKPOPUP_P_H
diff --git a/src/quicktemplates2/qquickpopup_p_p.h b/src/quicktemplates2/qquickpopup_p_p.h
deleted file mode 100644
index 0a00c2aa..00000000
--- a/src/quicktemplates2/qquickpopup_p_p.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPOPUP_P_P_H
-#define QQUICKPOPUP_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpopup_p.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-#include <QtCore/private/qobject_p.h>
-#include <QtQuick/qquickitem.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-#include <QtQuick/private/qquicktransitionmanager_p_p.h>
-#include <QtQuick/private/qquickitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTransition;
-class QQuickTransitionManager;
-class QQuickPopup;
-class QQuickPopupAnchors;
-class QQuickPopupItem;
-class QQuickPopupPrivate;
-class QQuickPopupPositioner;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopupTransitionManager : public QQuickTransitionManager
-{
-public:
- QQuickPopupTransitionManager(QQuickPopupPrivate *popup);
-
- void transitionEnter();
- void transitionExit();
-
-protected:
- void finished() override;
-
-private:
- QQuickPopupPrivate *popup = nullptr;
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopupPrivate
- : public QObjectPrivate
- , public QQuickItemChangeListener
- , public QQuickPaletteProviderPrivateBase<QQuickPopup, QQuickPopupPrivate>
-{
- Q_DECLARE_PUBLIC(QQuickPopup)
-
-public:
- QQuickPopupPrivate();
-
- static QQuickPopupPrivate *get(QQuickPopup *popup)
- {
- return popup->d_func();
- }
-
- QQmlListProperty<QObject> contentData();
- QQmlListProperty<QQuickItem> contentChildren();
-
- virtual void init();
- void createPopupItem();
- void connectToPopupItem();
- void closeOrReject();
- bool tryClose(const QPointF &pos, QQuickPopup::ClosePolicy flags);
-
- bool contains(const QPointF &scenePos) const;
-
-#if QT_CONFIG(quicktemplates2_multitouch)
- virtual bool acceptTouch(const QTouchEvent::TouchPoint &point);
-#endif
- virtual bool blockInput(QQuickItem *item, const QPointF &point) const;
-
- virtual bool handlePress(QQuickItem* item, const QPointF &point, ulong timestamp);
- virtual bool handleMove(QQuickItem* item, const QPointF &point, ulong timestamp);
- virtual bool handleRelease(QQuickItem* item, const QPointF &point, ulong timestamp);
- virtual void handleUngrab();
-
- bool handleMouseEvent(QQuickItem *item, QMouseEvent *event);
- bool handleHoverEvent(QQuickItem *item, QHoverEvent *event);
-#if QT_CONFIG(quicktemplates2_multitouch)
- bool handleTouchEvent(QQuickItem *item, QTouchEvent *event);
-#endif
-
- void reposition();
-
- void createOverlay();
- void destroyOverlay();
- void toggleOverlay();
- virtual void showOverlay();
- virtual void hideOverlay();
- virtual void resizeOverlay();
-
- virtual bool prepareEnterTransition();
- virtual bool prepareExitTransition();
- virtual void finalizeEnterTransition();
- virtual void finalizeExitTransition();
-
- virtual void opened();
-
- QMarginsF getMargins() const;
-
- void setTopMargin(qreal value, bool reset = false);
- void setLeftMargin(qreal value, bool reset = false);
- void setRightMargin(qreal value, bool reset = false);
- void setBottomMargin(qreal value, bool reset = false);
-
- QQuickPopupAnchors *getAnchors();
- virtual QQuickPopupPositioner *getPositioner();
-
- void setWindow(QQuickWindow *window);
- void itemDestroyed(QQuickItem *item) override;
-
- QPalette defaultPalette() const override;
-
- enum TransitionState {
- NoTransition, EnterTransition, ExitTransition
- };
-
- static const QQuickPopup::ClosePolicy DefaultClosePolicy;
-
- bool focus = false;
- bool modal = false;
- bool dim = false;
- bool hasDim = false;
- bool visible = false;
- bool complete = true;
- bool positioning = false;
- bool hasWidth = false;
- bool hasHeight = false;
- bool hasTopMargin = false;
- bool hasLeftMargin = false;
- bool hasRightMargin = false;
- bool hasBottomMargin = false;
- bool allowVerticalFlip = false;
- bool allowHorizontalFlip = false;
- bool allowVerticalMove = true;
- bool allowHorizontalMove = true;
- bool allowVerticalResize = true;
- bool allowHorizontalResize = true;
- bool hadActiveFocusBeforeExitTransition = false;
- bool interactive = true;
- bool hasClosePolicy = false;
- int touchId = -1;
- qreal x = 0;
- qreal y = 0;
- qreal effectiveX = 0;
- qreal effectiveY = 0;
- qreal margins = -1;
- qreal topMargin = 0;
- qreal leftMargin = 0;
- qreal rightMargin = 0;
- qreal bottomMargin = 0;
- QPointF pressPoint;
- TransitionState transitionState = NoTransition;
- QQuickPopup::ClosePolicy closePolicy = DefaultClosePolicy;
- QQuickItem *parentItem = nullptr;
- QQuickItem *dimmer = nullptr;
- QPointer<QQuickWindow> window;
- QQuickTransition *enter = nullptr;
- QQuickTransition *exit = nullptr;
- QQuickPopupItem *popupItem = nullptr;
- QQuickPopupPositioner *positioner = nullptr;
- QList<QQuickStateAction> enterActions;
- QList<QQuickStateAction> exitActions;
- QQuickPopupTransitionManager transitionManager;
- QQuickPopupAnchors *anchors = nullptr;
- qreal prevOpacity = 0;
- qreal prevScale = 0;
-
- friend class QQuickPopupTransitionManager;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPOPUP_P_P_H
diff --git a/src/quicktemplates2/qquickpopupanchors.cpp b/src/quicktemplates2/qquickpopupanchors.cpp
deleted file mode 100644
index 0d286cc0..00000000
--- a/src/quicktemplates2/qquickpopupanchors.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickpopupanchors_p.h"
-#include "qquickpopupanchors_p_p.h"
-#include "qquickpopup_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-QQuickPopupAnchors::QQuickPopupAnchors(QQuickPopup *popup)
- : QObject(*(new QQuickPopupAnchorsPrivate), popup)
-{
- Q_D(QQuickPopupAnchors);
- d->popup = popup;
-}
-
-QQuickPopupAnchors::~QQuickPopupAnchors()
-{
- Q_D(const QQuickPopupAnchors);
- if (d->centerIn) {
- auto centerInPrivate = QQuickItemPrivate::get(d->centerIn);
- centerInPrivate->removeItemChangeListener(this, QQuickItemPrivate::Destroyed);
- }
-}
-
-QQuickItem *QQuickPopupAnchors::centerIn() const
-{
- Q_D(const QQuickPopupAnchors);
- return d->centerIn;
-}
-
-void QQuickPopupAnchors::setCenterIn(QQuickItem *item)
-{
- Q_D(QQuickPopupAnchors);
- if (item == d->centerIn)
- return;
-
- if (d->centerIn) {
- auto centerInPrivate = QQuickItemPrivate::get(d->centerIn);
- centerInPrivate->removeItemChangeListener(this, QQuickItemPrivate::Destroyed);
- }
-
- d->centerIn = item;
-
- if (d->centerIn) {
- auto centerInPrivate = QQuickItemPrivate::get(d->centerIn);
- centerInPrivate->addItemChangeListener(this, QQuickItemPrivate::Destroyed);
- }
-
- QQuickPopupPrivate::get(d->popup)->reposition();
-
- emit centerInChanged();
-}
-
-void QQuickPopupAnchors::resetCenterIn()
-{
- setCenterIn(nullptr);
-}
-
-void QQuickPopupAnchors::itemDestroyed(QQuickItem *)
-{
- resetCenterIn();
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickpopupanchors_p.cpp"
diff --git a/src/quicktemplates2/qquickpopupanchors_p.h b/src/quicktemplates2/qquickpopupanchors_p.h
deleted file mode 100644
index dce1c5b2..00000000
--- a/src/quicktemplates2/qquickpopupanchors_p.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPOPUPANCHORS_P_H
-#define QQUICKPOPUPANCHORS_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtQml/qqml.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickItem;
-class QQuickPopupAnchorsPrivate;
-class QQuickPopup;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopupAnchors : public QObject, public QQuickItemChangeListener
-{
- Q_OBJECT
- Q_PROPERTY(QQuickItem *centerIn READ centerIn WRITE setCenterIn RESET resetCenterIn NOTIFY centerInChanged)
- QML_ANONYMOUS
- QML_ADDED_IN_VERSION(2, 5)
-
-public:
- explicit QQuickPopupAnchors(QQuickPopup *popup);
- ~QQuickPopupAnchors();
-
- QQuickItem *centerIn() const;
- void setCenterIn(QQuickItem *item);
- void resetCenterIn();
-
-Q_SIGNALS:
- void centerInChanged();
-
-private:
- void itemDestroyed(QQuickItem *item) override;
-
- Q_DISABLE_COPY(QQuickPopupAnchors)
- Q_DECLARE_PRIVATE(QQuickPopupAnchors)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickPopupAnchors)
-
-#endif // QQUICKPOPUPANCHORS_P_H
diff --git a/src/quicktemplates2/qquickpopupanchors_p_p.h b/src/quicktemplates2/qquickpopupanchors_p_p.h
deleted file mode 100644
index 989dc6df..00000000
--- a/src/quicktemplates2/qquickpopupanchors_p_p.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPOPUPANCHORS_P_P_H
-#define QQUICKPOPUPANCHORS_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/private/qobject_p.h>
-#include <QtQuickTemplates2/private/qquickpopup_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickItem;
-class QQuickPopup;
-
-class QQuickPopupAnchorsPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickPopupAnchors)
-
-public:
- static QQuickPopupAnchorsPrivate *get(QQuickPopupAnchors *popupAnchors)
- {
- return popupAnchors->d_func();
- }
-
- QQuickPopup *popup = nullptr;
- QQuickItem *centerIn = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPOPUPANCHORS_P_P_H
diff --git a/src/quicktemplates2/qquickpopupitem.cpp b/src/quicktemplates2/qquickpopupitem.cpp
deleted file mode 100644
index 0381dac2..00000000
--- a/src/quicktemplates2/qquickpopupitem.cpp
+++ /dev/null
@@ -1,438 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickpopupitem_p_p.h"
-#include "qquickapplicationwindow_p.h"
-#include "qquickshortcutcontext_p_p.h"
-#include "qquickpage_p_p.h"
-#include "qquickcontentitem_p.h"
-#include "qquickpopup_p_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#if QT_CONFIG(shortcut)
-# include <QtGui/private/qshortcutmap_p.h>
-#endif
-#include <QtGui/private/qguiapplication_p.h>
-
-#if QT_CONFIG(accessibility)
-#include <QtQuick/private/qquickaccessibleattached_p.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-QQuickPopupItemPrivate::QQuickPopupItemPrivate(QQuickPopup *popup)
- : popup(popup)
-{
- isTabFence = true;
-}
-
-void QQuickPopupItemPrivate::init()
-{
- Q_Q(QQuickPopupItem);
- q->setParent(popup);
- q->setFlag(QQuickItem::ItemIsFocusScope);
- q->setAcceptedMouseButtons(Qt::AllButtons);
-#if QT_CONFIG(quicktemplates2_multitouch)
- q->setAcceptTouchEvents(true);
-#endif
-#if QT_CONFIG(cursor)
- q->setCursor(Qt::ArrowCursor);
-#endif
-
- q->connect(popup, &QQuickPopup::paletteChanged, q, &QQuickItem::paletteChanged);
- q->connect(popup, &QQuickPopup::paletteCreated, q, &QQuickItem::paletteCreated);
-
-#if QT_CONFIG(quicktemplates2_hover)
- // TODO: switch to QStyleHints::useHoverEffects in Qt 5.8
- q->setHoverEnabled(true);
- // setAcceptHoverEvents(QGuiApplication::styleHints()->useHoverEffects());
- // connect(QGuiApplication::styleHints(), &QStyleHints::useHoverEffectsChanged, this, &QQuickItem::setAcceptHoverEvents);
-#endif
-}
-
-void QQuickPopupItemPrivate::implicitWidthChanged()
-{
- QQuickPagePrivate::implicitWidthChanged();
- emit popup->implicitWidthChanged();
-}
-
-void QQuickPopupItemPrivate::implicitHeightChanged()
-{
- QQuickPagePrivate::implicitHeightChanged();
- emit popup->implicitHeightChanged();
-}
-
-void QQuickPopupItemPrivate::resolveFont()
-{
- if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(popup->window()))
- inheritFont(window->font());
- else
- inheritFont(QQuickTheme::font(QQuickTheme::System));
-}
-
-QQuickItem *QQuickPopupItemPrivate::getContentItem()
-{
- Q_Q(QQuickPopupItem);
- if (QQuickItem *item = QQuickPagePrivate::getContentItem())
- return item;
-
- return new QQuickContentItem(popup, q);
-}
-
-static inline QString contentItemName() { return QStringLiteral("contentItem"); }
-
-void QQuickPopupItemPrivate::cancelContentItem()
-{
- quickCancelDeferred(popup, contentItemName());
-}
-
-void QQuickPopupItemPrivate::executeContentItem(bool complete)
-{
- if (contentItem.wasExecuted())
- return;
-
- if (!contentItem || complete)
- quickBeginDeferred(popup, contentItemName(), contentItem);
- if (complete)
- quickCompleteDeferred(popup, contentItemName(), contentItem);
-}
-
-static inline QString backgroundName() { return QStringLiteral("background"); }
-
-void QQuickPopupItemPrivate::cancelBackground()
-{
- quickCancelDeferred(popup, backgroundName());
-}
-
-void QQuickPopupItemPrivate::executeBackground(bool complete)
-{
- if (background.wasExecuted())
- return;
-
- if (!background || complete)
- quickBeginDeferred(popup, backgroundName(), background);
- if (complete)
- quickCompleteDeferred(popup, backgroundName(), background);
-}
-
-QQuickPopupItem::QQuickPopupItem(QQuickPopup *popup)
- : QQuickPage(*(new QQuickPopupItemPrivate(popup)), nullptr)
-{
- Q_D(QQuickPopupItem);
- d->init();
-}
-
-QQuickPopupItem::QQuickPopupItem(QQuickPopupItemPrivate &dd) :
- QQuickPage(dd, nullptr)
-{
- Q_D(QQuickPopupItem);
- d->init();
-}
-
-void QQuickPopupItem::grabShortcut()
-{
-#if QT_CONFIG(shortcut)
- Q_D(QQuickPopupItem);
- QGuiApplicationPrivate *pApp = QGuiApplicationPrivate::instance();
- if (!d->backId)
- d->backId = pApp->shortcutMap.addShortcut(this, Qt::Key_Back, Qt::WindowShortcut, QQuickShortcutContext::matcher);
- if (!d->escapeId)
- d->escapeId = pApp->shortcutMap.addShortcut(this, Qt::Key_Escape, Qt::WindowShortcut, QQuickShortcutContext::matcher);
-#endif
-}
-
-void QQuickPopupItem::ungrabShortcut()
-{
-#if QT_CONFIG(shortcut)
- Q_D(QQuickPopupItem);
- QGuiApplicationPrivate *pApp = QGuiApplicationPrivate::instance();
- if (d->backId) {
- pApp->shortcutMap.removeShortcut(d->backId, this);
- d->backId = 0;
- }
- if (d->escapeId) {
- pApp->shortcutMap.removeShortcut(d->escapeId, this);
- d->escapeId = 0;
- }
-#endif
-}
-
-QQuickPalette *QQuickPopupItemPrivate::palette() const
-{
- return QQuickPopupPrivate::get(popup)->palette();
-}
-
-void QQuickPopupItemPrivate::setPalette(QQuickPalette *p)
-{
- QQuickPopupPrivate::get(popup)->setPalette(p);
-}
-
-void QQuickPopupItemPrivate::resetPalette()
-{
- QQuickPopupPrivate::get(popup)->resetPalette();
-}
-
-QPalette QQuickPopupItemPrivate::defaultPalette() const
-{
- return QQuickPopupPrivate::get(popup)->defaultPalette();
-}
-
-bool QQuickPopupItemPrivate::providesPalette() const
-{
- return QQuickPopupPrivate::get(popup)->providesPalette();
-}
-
-QPalette QQuickPopupItemPrivate::parentPalette() const
-{
- return QQuickPopupPrivate::get(popup)->parentPalette();
-}
-
-void QQuickPopupItem::updatePolish()
-{
- Q_D(QQuickPopupItem);
- return QQuickPopupPrivate::get(d->popup)->reposition();
-}
-
-bool QQuickPopupItem::event(QEvent *event)
-{
-#if QT_CONFIG(shortcut)
- Q_D(QQuickPopupItem);
- if (event->type() == QEvent::Shortcut) {
- QShortcutEvent *se = static_cast<QShortcutEvent *>(event);
- if (se->shortcutId() == d->escapeId || se->shortcutId() == d->backId) {
- QQuickPopupPrivate *p = QQuickPopupPrivate::get(d->popup);
- if (p->interactive) {
- p->closeOrReject();
- return true;
- }
- }
- }
-#endif
- return QQuickItem::event(event);
-}
-
-bool QQuickPopupItem::childMouseEventFilter(QQuickItem *child, QEvent *event)
-{
- Q_D(QQuickPopupItem);
- return d->popup->childMouseEventFilter(child, event);
-}
-
-void QQuickPopupItem::focusInEvent(QFocusEvent *event)
-{
- Q_D(QQuickPopupItem);
- d->popup->focusInEvent(event);
-}
-
-void QQuickPopupItem::focusOutEvent(QFocusEvent *event)
-{
- Q_D(QQuickPopupItem);
- d->popup->focusOutEvent(event);
-}
-
-void QQuickPopupItem::keyPressEvent(QKeyEvent *event)
-{
- Q_D(QQuickPopupItem);
- d->popup->keyPressEvent(event);
-}
-
-void QQuickPopupItem::keyReleaseEvent(QKeyEvent *event)
-{
- Q_D(QQuickPopupItem);
- d->popup->keyReleaseEvent(event);
-}
-
-void QQuickPopupItem::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickPopupItem);
- d->popup->mousePressEvent(event);
-}
-
-void QQuickPopupItem::mouseMoveEvent(QMouseEvent *event)
-{
- Q_D(QQuickPopupItem);
- d->popup->mouseMoveEvent(event);
-}
-
-void QQuickPopupItem::mouseReleaseEvent(QMouseEvent *event)
-{
- Q_D(QQuickPopupItem);
- d->popup->mouseReleaseEvent(event);
-}
-
-void QQuickPopupItem::mouseDoubleClickEvent(QMouseEvent *event)
-{
- Q_D(QQuickPopupItem);
- d->popup->mouseDoubleClickEvent(event);
-}
-
-void QQuickPopupItem::mouseUngrabEvent()
-{
- Q_D(QQuickPopupItem);
- d->popup->mouseUngrabEvent();
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickPopupItem::touchEvent(QTouchEvent *event)
-{
- Q_D(QQuickPopupItem);
- d->popup->touchEvent(event);
-}
-
-void QQuickPopupItem::touchUngrabEvent()
-{
- Q_D(QQuickPopupItem);
- d->popup->touchUngrabEvent();
-}
-#endif
-
-#if QT_CONFIG(wheelevent)
-void QQuickPopupItem::wheelEvent(QWheelEvent *event)
-{
- Q_D(QQuickPopupItem);
- d->popup->wheelEvent(event);
-}
-#endif
-
-void QQuickPopupItem::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_D(QQuickPopupItem);
- QQuickPage::contentItemChange(newItem, oldItem);
- d->popup->contentItemChange(newItem, oldItem);
-}
-
-void QQuickPopupItem::contentSizeChange(const QSizeF &newSize, const QSizeF &oldSize)
-{
- Q_D(QQuickPopupItem);
- QQuickPage::contentSizeChange(newSize, oldSize);
- d->popup->contentSizeChange(newSize, oldSize);
-}
-
-void QQuickPopupItem::fontChange(const QFont &newFont, const QFont &oldFont)
-{
- Q_D(QQuickPopupItem);
- QQuickPage::fontChange(newFont, oldFont);
- d->popup->fontChange(newFont, oldFont);
-}
-
-void QQuickPopupItem::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickPopupItem);
- QQuickPage::geometryChange(newGeometry, oldGeometry);
- d->popup->geometryChange(newGeometry, oldGeometry);
-}
-
-void QQuickPopupItem::localeChange(const QLocale &newLocale, const QLocale &oldLocale)
-{
- Q_D(QQuickPopupItem);
- QQuickPage::localeChange(newLocale, oldLocale);
- d->popup->localeChange(newLocale, oldLocale);
-}
-
-void QQuickPopupItem::mirrorChange()
-{
- Q_D(QQuickPopupItem);
- emit d->popup->mirroredChanged();
-}
-
-void QQuickPopupItem::itemChange(ItemChange change, const ItemChangeData &data)
-{
- Q_D(QQuickPopupItem);
- QQuickPage::itemChange(change, data);
- d->popup->itemChange(change, data);
-}
-
-void QQuickPopupItem::paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding)
-{
- Q_D(QQuickPopupItem);
- QQuickPage::paddingChange(newPadding, oldPadding);
- d->popup->paddingChange(newPadding, oldPadding);
-}
-
-void QQuickPopupItem::enabledChange()
-{
- Q_D(QQuickPopupItem);
- // Just having QQuickPopup connect our QQuickItem::enabledChanged() signal
- // to its enabledChanged() signal is enough for the enabled property to work,
- // but we must also ensure that its paletteChanged() signal is emitted
- // so that bindings to palette are re-evaluated, because QQuickControl::palette()
- // returns a different palette depending on whether or not the control is enabled.
- // To save a connection, we also emit enabledChanged here.
- emit d->popup->enabledChanged();
-}
-
-QFont QQuickPopupItem::defaultFont() const
-{
- Q_D(const QQuickPopupItem);
- return d->popup->defaultFont();
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickPopupItem::accessibleRole() const
-{
- Q_D(const QQuickPopupItem);
- return d->popup->accessibleRole();
-}
-
-void QQuickPopupItem::accessibilityActiveChanged(bool active)
-{
- Q_D(const QQuickPopupItem);
- // Can't just use d->popup->accessibleName() here, because that refers to the accessible
- // name of us, the popup item, which is not what we want.
- const QQuickAccessibleAttached *popupAccessibleAttached = QQuickControlPrivate::accessibleAttached(d->popup);
- const QString oldPopupName = popupAccessibleAttached ? popupAccessibleAttached->name() : QString();
- const bool wasNameExplicitlySetOnPopup = popupAccessibleAttached && popupAccessibleAttached->wasNameExplicitlySet();
-
- QQuickPage::accessibilityActiveChanged(active);
-
- QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this);
- const QString ourName = accessibleAttached ? accessibleAttached->name() : QString();
- if (wasNameExplicitlySetOnPopup && accessibleAttached && ourName != oldPopupName) {
- // The user set Accessible.name on the Popup. Since the Popup and its popup item
- // have different accessible attached properties, the popup item doesn't know that
- // a name was set on the Popup by the user, and that it should use that, rather than
- // whatever QQuickPage sets. That's why we need to do it here.
- // To avoid it being overridden by the call to accessibilityActiveChanged() below,
- // we set it explicitly. It's safe to do this as the popup item is an internal implementation detail.
- accessibleAttached->setName(oldPopupName);
- }
-
- // This allows the different popup types to set a name on their popup item accordingly.
- // For example: Dialog uses its title and ToolTip uses its text.
- d->popup->accessibilityActiveChanged(active);
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickpopupitem_p.h b/src/quicktemplates2/qquickpopupitem_p.h
deleted file mode 100644
index 2947a6e3..00000000
--- a/src/quicktemplates2/qquickpopupitem_p.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPOPUPITEM_P_H
-#define QQUICKPOPUPITEM_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpage_p.h>
-#include <QtQuickTemplates2/private/qquickpage_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPopup;
-class QQuickPopupItemPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopupItem : public QQuickPage
-{
- Q_OBJECT
-
-public:
- explicit QQuickPopupItem(QQuickPopup *popup);
-
- void grabShortcut();
- void ungrabShortcut();
-
-protected:
- void updatePolish() override;
-
- bool event(QEvent *event) override;
- bool childMouseEventFilter(QQuickItem *child, QEvent *event) override;
- void focusInEvent(QFocusEvent *event) override;
- void focusOutEvent(QFocusEvent *event) override;
- void keyPressEvent(QKeyEvent *event) override;
- void keyReleaseEvent(QKeyEvent *event) override;
- void mousePressEvent(QMouseEvent *event) override;
- void mouseMoveEvent(QMouseEvent *event) override;
- void mouseReleaseEvent(QMouseEvent *event) override;
- void mouseDoubleClickEvent(QMouseEvent *event) override;
- void mouseUngrabEvent() override;
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
- void touchUngrabEvent() override;
-#endif
-#if QT_CONFIG(wheelevent)
- void wheelEvent(QWheelEvent *event) override;
-#endif
-
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
- void contentSizeChange(const QSizeF &newSize, const QSizeF &oldSize) override;
- void fontChange(const QFont &newFont, const QFont &oldFont) override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- void localeChange(const QLocale &newLocale, const QLocale &oldLocale) override;
- void mirrorChange() override;
- void itemChange(ItemChange change, const ItemChangeData &data) override;
- void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) override;
- void enabledChange() override;
-
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
- void accessibilityActiveChanged(bool active) override;
-#endif
-
-protected:
- QQuickPopupItem(QQuickPopupItemPrivate &dd);
-
-private:
- Q_DISABLE_COPY(QQuickPopupItem)
- Q_DECLARE_PRIVATE(QQuickPopupItem)
- friend class QQuickPopup;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPOPUPITEM_P_H
diff --git a/src/quicktemplates2/qquickpopupitem_p_p.h b/src/quicktemplates2/qquickpopupitem_p_p.h
deleted file mode 100644
index 48b35aa2..00000000
--- a/src/quicktemplates2/qquickpopupitem_p_p.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPOPUPITEM_P_P_H
-#define QQUICKPOPUPITEM_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpopupitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPopup;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopupItemPrivate : public QQuickPagePrivate
-{
- Q_DECLARE_PUBLIC(QQuickPopupItem)
-
-public:
- QQuickPopupItemPrivate(QQuickPopup *popup);
-
- void init();
-
- void implicitWidthChanged() override;
- void implicitHeightChanged() override;
-
- void resolveFont() override;
-
- QQuickItem *getContentItem() override;
-
- void cancelContentItem() override;
- void executeContentItem(bool complete = false) override;
-
- void cancelBackground() override;
- void executeBackground(bool complete = false) override;
-
- QQuickPalette *palette() const override;
- void setPalette(QQuickPalette* p) override;
- void resetPalette() override;
-
- QPalette defaultPalette() const override;
- bool providesPalette() const override;
-
- QPalette parentPalette() const override;
-
- int backId = 0;
- int escapeId = 0;
- QQuickPopup *popup = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPOPUPITEM_P_P_H
diff --git a/src/quicktemplates2/qquickpopuppositioner.cpp b/src/quicktemplates2/qquickpopuppositioner.cpp
deleted file mode 100644
index 1bfaafbe..00000000
--- a/src/quicktemplates2/qquickpopuppositioner.cpp
+++ /dev/null
@@ -1,310 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickoverlay_p.h"
-#include "qquickpopuppositioner_p_p.h"
-#include "qquickpopupanchors_p.h"
-#include "qquickpopupitem_p_p.h"
-#include "qquickpopup_p_p.h"
-
-#include <QtQml/qqmlinfo.h>
-#include <QtQuick/private/qquickitem_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static const QQuickItemPrivate::ChangeTypes AncestorChangeTypes = QQuickItemPrivate::Geometry
- | QQuickItemPrivate::Parent
- | QQuickItemPrivate::Children;
-
-static const QQuickItemPrivate::ChangeTypes ItemChangeTypes = QQuickItemPrivate::Geometry
- | QQuickItemPrivate::Parent;
-
-QQuickPopupPositioner::QQuickPopupPositioner(QQuickPopup *popup)
- : m_popup(popup)
-{
-}
-
-QQuickPopupPositioner::~QQuickPopupPositioner()
-{
- if (m_parentItem) {
- QQuickItemPrivate::get(m_parentItem)->removeItemChangeListener(this, ItemChangeTypes);
- removeAncestorListeners(m_parentItem->parentItem());
- }
-}
-
-QQuickPopup *QQuickPopupPositioner::popup() const
-{
- return m_popup;
-}
-
-QQuickItem *QQuickPopupPositioner::parentItem() const
-{
- return m_parentItem;
-}
-
-void QQuickPopupPositioner::setParentItem(QQuickItem *parent)
-{
- if (m_parentItem == parent)
- return;
-
- if (m_parentItem) {
- QQuickItemPrivate::get(m_parentItem)->removeItemChangeListener(this, ItemChangeTypes);
- removeAncestorListeners(m_parentItem->parentItem());
- }
-
- m_parentItem = parent;
-
- if (!parent)
- return;
-
- QQuickItemPrivate::get(parent)->addItemChangeListener(this, ItemChangeTypes);
- addAncestorListeners(parent->parentItem());
- // Store the scale property so the end result of any transition that could effect the scale
- // does not influence the top left of the final popup, so it doesn't appear to flip from one
- // position to another as a result
- m_popupScale = m_popup->popupItem()->scale();
- if (m_popup->popupItem()->isVisible())
- QQuickPopupPrivate::get(m_popup)->reposition();
-}
-
-void QQuickPopupPositioner::reposition()
-{
- QQuickItem *popupItem = m_popup->popupItem();
- if (!popupItem->isVisible())
- return;
-
- if (m_positioning) {
- popupItem->polish();
- return;
- }
-
- const qreal w = popupItem->width() * m_popupScale;
- const qreal h = popupItem->height() * m_popupScale;
- const qreal iw = popupItem->implicitWidth() * m_popupScale;
- const qreal ih = popupItem->implicitHeight() * m_popupScale;
-
- bool widthAdjusted = false;
- bool heightAdjusted = false;
- QQuickPopupPrivate *p = QQuickPopupPrivate::get(m_popup);
-
- const QQuickItem *centerInParent = p->anchors ? p->getAnchors()->centerIn() : nullptr;
- const QQuickOverlay *centerInOverlay = qobject_cast<const QQuickOverlay*>(centerInParent);
- QRectF rect(!centerInParent ? p->allowHorizontalMove ? p->x : popupItem->x() : 0,
- !centerInParent ? p->allowVerticalMove ? p->y : popupItem->y() : 0,
- !p->hasWidth && iw > 0 ? iw : w,
- !p->hasHeight && ih > 0 ? ih : h);
- if (m_parentItem) {
- // m_parentItem is the parent that the popup should open in,
- // and popupItem()->parentItem() is the overlay, so the mapToItem() calls below
- // effectively map the rect to scene coordinates.
- if (centerInParent) {
- if (centerInParent != parentItem() && !centerInOverlay) {
- qmlWarning(m_popup) << "Popup can only be centered within its immediate parent or Overlay.overlay";
- return;
- }
-
- if (centerInOverlay) {
- rect.moveCenter(QPointF(qRound(centerInOverlay->width() / 2.0), qRound(centerInOverlay->height() / 2.0)));
- } else {
- const QPointF parentItemCenter = QPointF(qRound(m_parentItem->width() / 2), qRound(m_parentItem->height() / 2));
- rect.moveCenter(m_parentItem->mapToItem(popupItem->parentItem(), parentItemCenter));
- }
- } else {
- rect.moveTopLeft(m_parentItem->mapToItem(popupItem->parentItem(), rect.topLeft()));
- }
-
- if (p->window) {
- const QMarginsF margins = p->getMargins();
- QRectF bounds(qMax<qreal>(0.0, margins.left()),
- qMax<qreal>(0.0, margins.top()),
- p->window->width() - qMax<qreal>(0.0, margins.left()) - qMax<qreal>(0.0, margins.right()),
- p->window->height() - qMax<qreal>(0.0, margins.top()) - qMax<qreal>(0.0, margins.bottom()));
- if (p->window->contentOrientation() == Qt::LandscapeOrientation || p->window->contentOrientation() == Qt::InvertedLandscapeOrientation)
- bounds = bounds.transposed();
-
- // if the popup doesn't fit horizontally inside the window, try flipping it around (left <-> right)
- if (p->allowHorizontalFlip && (rect.left() < bounds.left() || rect.right() > bounds.right())) {
- const QRectF flipped(m_parentItem->mapToScene(QPointF(m_parentItem->width() - p->x - rect.width(), p->y)), rect.size());
- if (flipped.intersected(bounds).width() > rect.intersected(bounds).width())
- rect.moveLeft(flipped.left());
- }
-
- // if the popup doesn't fit vertically inside the window, try flipping it around (above <-> below)
- if (p->allowVerticalFlip && (rect.top() < bounds.top() || rect.bottom() > bounds.bottom())) {
- const QRectF flipped(m_parentItem->mapToScene(QPointF(p->x, m_parentItem->height() - p->y - rect.height())), rect.size());
- if (flipped.intersected(bounds).height() > rect.intersected(bounds).height())
- rect.moveTop(flipped.top());
- }
-
- // push inside the margins if specified
- if (p->allowVerticalMove) {
- if (margins.top() >= 0 && rect.top() < bounds.top())
- rect.moveTop(margins.top());
- if (margins.bottom() >= 0 && rect.bottom() > bounds.bottom())
- rect.moveBottom(bounds.bottom());
- }
- if (p->allowHorizontalMove) {
- if (margins.left() >= 0 && rect.left() < bounds.left())
- rect.moveLeft(margins.left());
- if (margins.right() >= 0 && rect.right() > bounds.right())
- rect.moveRight(bounds.right());
- }
-
- if (iw > 0 && (rect.left() < bounds.left() || rect.right() > bounds.right())) {
- // neither the flipped or pushed geometry fits inside the window, choose
- // whichever side (left vs. right) fits larger part of the popup
- if (p->allowHorizontalMove && p->allowHorizontalFlip) {
- if (rect.left() < bounds.left() && bounds.left() + rect.width() <= bounds.right())
- rect.moveLeft(bounds.left());
- else if (rect.right() > bounds.right() && bounds.right() - rect.width() >= bounds.left())
- rect.moveRight(bounds.right());
- }
-
- // as a last resort, adjust the width to fit the window
- if (p->allowHorizontalResize) {
- if (rect.left() < bounds.left()) {
- rect.setLeft(bounds.left());
- widthAdjusted = true;
- }
- if (rect.right() > bounds.right()) {
- rect.setRight(bounds.right());
- widthAdjusted = true;
- }
- }
- } else if (iw > 0 && rect.left() >= bounds.left() && rect.right() <= bounds.right()
- && iw != w) {
- // restore original width
- rect.setWidth(iw);
- widthAdjusted = true;
- }
-
- if (ih > 0 && (rect.top() < bounds.top() || rect.bottom() > bounds.bottom())) {
- // neither the flipped or pushed geometry fits inside the window, choose
- // whichever side (above vs. below) fits larger part of the popup
- if (p->allowVerticalMove && p->allowVerticalFlip) {
- if (rect.top() < bounds.top() && bounds.top() + rect.height() <= bounds.bottom())
- rect.moveTop(bounds.top());
- else if (rect.bottom() > bounds.bottom() && bounds.bottom() - rect.height() >= bounds.top())
- rect.moveBottom(bounds.bottom());
- }
-
- // as a last resort, adjust the height to fit the window
- if (p->allowVerticalResize) {
- if (rect.top() < bounds.top()) {
- rect.setTop(bounds.top());
- heightAdjusted = true;
- }
- if (rect.bottom() > bounds.bottom()) {
- rect.setBottom(bounds.bottom());
- heightAdjusted = true;
- }
- }
- } else if (ih > 0 && rect.top() >= bounds.top() && rect.bottom() <= bounds.bottom()
- && ih != h) {
- // restore original height
- rect.setHeight(ih);
- heightAdjusted = true;
- }
- }
- }
-
- m_positioning = true;
-
- popupItem->setPosition(rect.topLeft());
-
- // If the popup was assigned a parent, rect will be in scene coordinates,
- // so we need to map its top left back to item coordinates.
- // However, if centering within the overlay, the coordinates will be relative
- // to the window, so we don't need to do anything.
- const QPointF effectivePos = m_parentItem && !centerInOverlay ? m_parentItem->mapFromScene(rect.topLeft()) : rect.topLeft();
- if (!qFuzzyCompare(p->effectiveX, effectivePos.x())) {
- p->effectiveX = effectivePos.x();
- emit m_popup->xChanged();
- }
- if (!qFuzzyCompare(p->effectiveY, effectivePos.y())) {
- p->effectiveY = effectivePos.y();
- emit m_popup->yChanged();
- }
-
- if (!p->hasWidth && widthAdjusted && rect.width() > 0)
- popupItem->setWidth(rect.width() / m_popupScale);
- if (!p->hasHeight && heightAdjusted && rect.height() > 0)
- popupItem->setHeight(rect.height() / m_popupScale);
- m_positioning = false;
-}
-
-void QQuickPopupPositioner::itemGeometryChanged(QQuickItem *, QQuickGeometryChange, const QRectF &)
-{
- if (m_parentItem && m_popup->popupItem()->isVisible())
- QQuickPopupPrivate::get(m_popup)->reposition();
-}
-
-void QQuickPopupPositioner::itemParentChanged(QQuickItem *, QQuickItem *parent)
-{
- addAncestorListeners(parent);
-}
-
-void QQuickPopupPositioner::itemChildRemoved(QQuickItem *item, QQuickItem *child)
-{
- if (child == m_parentItem || child->isAncestorOf(m_parentItem))
- removeAncestorListeners(item);
-}
-
-void QQuickPopupPositioner::removeAncestorListeners(QQuickItem *item)
-{
- if (item == m_parentItem)
- return;
-
- QQuickItem *p = item;
- while (p) {
- QQuickItemPrivate::get(p)->removeItemChangeListener(this, AncestorChangeTypes);
- p = p->parentItem();
- }
-}
-
-void QQuickPopupPositioner::addAncestorListeners(QQuickItem *item)
-{
- if (item == m_parentItem)
- return;
-
- QQuickItem *p = item;
- while (p) {
- QQuickItemPrivate::get(p)->updateOrAddItemChangeListener(this, AncestorChangeTypes);
- p = p->parentItem();
- }
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickpopuppositioner_p_p.h b/src/quicktemplates2/qquickpopuppositioner_p_p.h
deleted file mode 100644
index 03a2e2fe..00000000
--- a/src/quicktemplates2/qquickpopuppositioner_p_p.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPOPUPPOSITIONER_P_P_H
-#define QQUICKPOPUPPOSITIONER_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickItem;
-class QQuickPopup;
-
-class QQuickPopupPositioner : public QQuickItemChangeListener
-{
-public:
- explicit QQuickPopupPositioner(QQuickPopup *popup);
- ~QQuickPopupPositioner();
-
- QQuickPopup *popup() const;
-
- QQuickItem *parentItem() const;
- void setParentItem(QQuickItem *parent);
-
- virtual void reposition();
-
-protected:
- void itemGeometryChanged(QQuickItem *, QQuickGeometryChange, const QRectF &) override;
- void itemParentChanged(QQuickItem *, QQuickItem *parent) override;
- void itemChildRemoved(QQuickItem *, QQuickItem *child) override;
-
- void removeAncestorListeners(QQuickItem *item);
- void addAncestorListeners(QQuickItem *item);
-
- bool m_positioning = false;
- QQuickItem *m_parentItem = nullptr;
- QQuickPopup *m_popup = nullptr;
- qreal m_popupScale = 1.0;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPOPUPPOSITIONER_P_P_H
diff --git a/src/quicktemplates2/qquickpresshandler.cpp b/src/quicktemplates2/qquickpresshandler.cpp
deleted file mode 100644
index d9ed484b..00000000
--- a/src/quicktemplates2/qquickpresshandler.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickpresshandler_p_p.h"
-
-#include <QtCore/private/qobject_p.h>
-#include <QtGui/qguiapplication.h>
-#include <QtGui/qstylehints.h>
-#include <QtQuick/qquickitem.h>
-#include <QtQuick/private/qquickevents_p_p.h>
-#include <QtQuickTemplates2/private/qquicktextarea_p.h>
-#include <QtQuickTemplates2/private/qquicktextfield_p.h>
-
-QT_BEGIN_NAMESPACE
-
-void QQuickPressHandler::mousePressEvent(QMouseEvent *event)
-{
- longPress = false;
- pressPos = event->position();
- if (Qt::LeftButton == (event->buttons() & Qt::LeftButton)) {
- timer.start(QGuiApplication::styleHints()->mousePressAndHoldInterval(), control);
- delayedMousePressEvent = new QMouseEvent(event->type(), event->position().toPoint(), event->button(), event->buttons(), event->modifiers());
- } else {
- timer.stop();
- }
-
- if (isSignalConnected(control, "pressed(QQuickMouseEvent*)", pressedSignalIndex)) {
- QQuickMouseEvent mev;
- mev.reset(pressPos.x(), pressPos.y(), event->button(), event->buttons(),
- event->modifiers(), false/*isClick*/, false/*wasHeld*/);
- mev.setAccepted(true);
- QQuickMouseEvent *mevPtr = &mev;
- void *args[] = { nullptr, &mevPtr };
- QMetaObject::metacall(control, QMetaObject::InvokeMetaMethod, pressedSignalIndex, args);
- event->setAccepted(mev.isAccepted());
- }
-}
-
-void QQuickPressHandler::mouseMoveEvent(QMouseEvent *event)
-{
- if (qAbs(int(event->position().x() - pressPos.x())) > QGuiApplication::styleHints()->startDragDistance())
- timer.stop();
-}
-
-void QQuickPressHandler::mouseReleaseEvent(QMouseEvent *event)
-{
- if (!longPress) {
- timer.stop();
-
- if (isSignalConnected(control, "released(QQuickMouseEvent*)", releasedSignalIndex)) {
- QQuickMouseEvent mev;
- mev.reset(pressPos.x(), pressPos.y(), event->button(), event->buttons(),
- event->modifiers(), false/*isClick*/, false/*wasHeld*/);
- mev.setAccepted(true);
- QQuickMouseEvent *mevPtr = &mev;
- void *args[] = { nullptr, &mevPtr };
- QMetaObject::metacall(control, QMetaObject::InvokeMetaMethod, releasedSignalIndex, args);
- event->setAccepted(mev.isAccepted());
- }
- }
-}
-
-void QQuickPressHandler::timerEvent(QTimerEvent *)
-{
- timer.stop();
- clearDelayedMouseEvent();
-
- longPress = isSignalConnected(control, "pressAndHold(QQuickMouseEvent*)", pressAndHoldSignalIndex);
- if (longPress) {
- QQuickMouseEvent mev;
-QT_WARNING_PUSH
-QT_WARNING_DISABLE_DEPRECATED
- mev.reset(pressPos.x(), pressPos.y(), Qt::LeftButton, Qt::LeftButton,
- QGuiApplication::keyboardModifiers(), false/*isClick*/, true/*wasHeld*/);
-QT_WARNING_POP
- mev.setAccepted(true);
- // Use fast signal invocation since we already got its index
- QQuickMouseEvent *mevPtr = &mev;
- void *args[] = { nullptr, &mevPtr };
- QMetaObject::metacall(control, QMetaObject::InvokeMetaMethod, pressAndHoldSignalIndex, args);
- if (!mev.isAccepted())
- longPress = false;
- }
-}
-
-void QQuickPressHandler::clearDelayedMouseEvent()
-{
- if (delayedMousePressEvent) {
- delete delayedMousePressEvent;
- delayedMousePressEvent = 0;
- }
-}
-
-bool QQuickPressHandler::isActive()
-{
- return !(timer.isActive() || longPress);
-}
-
-bool QQuickPressHandler::isSignalConnected(QQuickItem *item, const char *signalName, int &signalIndex)
-{
- if (signalIndex == -1)
- signalIndex = item->metaObject()->indexOfSignal(signalName);
- Q_ASSERT(signalIndex != -1);
- const auto signalMetaMethod = item->metaObject()->method(signalIndex);
- if (QQuickTextArea *textArea = qobject_cast<QQuickTextArea*>(item)) {
- return textArea->isSignalConnected(signalMetaMethod);
- } else if (QQuickTextField *textField = qobject_cast<QQuickTextField*>(item)) {
- return textField->isSignalConnected(signalMetaMethod);
- }
- qFatal("Unhandled control type for signal name: %s", signalName);
- return false;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickpresshandler_p_p.h b/src/quicktemplates2/qquickpresshandler_p_p.h
deleted file mode 100644
index 19312cdd..00000000
--- a/src/quicktemplates2/qquickpresshandler_p_p.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPRESSHANDLER_P_P_H
-#define QQUICKPRESSHANDLER_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qpoint.h>
-#include <QtCore/qbasictimer.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickItem;
-class QMouseEvent;
-class QTimerEvent;
-
-struct QQuickPressHandler
-{
- void mousePressEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- void mouseReleaseEvent(QMouseEvent *event);
- void timerEvent(QTimerEvent *event);
-
- void clearDelayedMouseEvent();
- bool isActive();
-
- static bool isSignalConnected(QQuickItem *item, const char *signalName, int &signalIndex);
-
- QQuickItem *control = nullptr;
- QBasicTimer timer;
- QPointF pressPos;
- bool longPress = false;
- int pressAndHoldSignalIndex = -1;
- int pressedSignalIndex = -1;
- int releasedSignalIndex = -1;
- QMouseEvent *delayedMousePressEvent = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKPRESSHANDLER_P_P_H
diff --git a/src/quicktemplates2/qquickprogressbar.cpp b/src/quicktemplates2/qquickprogressbar.cpp
deleted file mode 100644
index 34d3cd1b..00000000
--- a/src/quicktemplates2/qquickprogressbar.cpp
+++ /dev/null
@@ -1,271 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickprogressbar_p.h"
-#include "qquickcontrol_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ProgressBar
- \inherits Control
-//! \instantiates QQuickProgressBar
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-indicators
- \brief Indicates the progress of an operation.
-
- \image qtquickcontrols2-progressbar.gif
-
- ProgressBar indicates the progress of an operation. The value should be updated
- regularly. The range is defined by \l from and \l to, which both can contain any value.
-
- \code
- ProgressBar {
- value: 0.5
- }
- \endcode
-
- ProgressBar also supports a special \l indeterminate mode, which is useful,
- for example, when unable to determine the size of the item being downloaded,
- or if the download progress gets interrupted due to a network disconnection.
-
- \image qtquickcontrols2-progressbar-indeterminate.gif
-
- \code
- ProgressBar {
- indeterminate: true
- }
- \endcode
-
- The indeterminate mode is similar to a \l BusyIndicator. Both can be used
- to indicate background activity. The main difference is visual, and that
- ProgressBar can also present a concrete amount of progress (when it can be
- determined). Due to the visual difference, indeterminate progress bars and
- busy indicators fit different places in user interfaces. Typical places for
- an indeterminate progress bar:
- \list
- \li at the bottom of a \l ToolBar
- \li inline within the content of a \l Page
- \li in an \l ItemDelegate to show the progress of a particular item
- \endlist
-
- \sa {Customizing ProgressBar}, BusyIndicator, {Indicator Controls}
-*/
-
-class QQuickProgressBarPrivate : public QQuickControlPrivate
-{
-public:
- qreal from = 0;
- qreal to = 1;
- qreal value = 0;
- bool indeterminate = false;
-};
-
-QQuickProgressBar::QQuickProgressBar(QQuickItem *parent)
- : QQuickControl(*(new QQuickProgressBarPrivate), parent)
-{
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::ProgressBar::from
-
- This property holds the starting value for the progress. The default value is \c 0.0.
-
- \sa to, value
-*/
-qreal QQuickProgressBar::from() const
-{
- Q_D(const QQuickProgressBar);
- return d->from;
-}
-
-void QQuickProgressBar::setFrom(qreal from)
-{
- Q_D(QQuickProgressBar);
- if (qFuzzyCompare(d->from, from))
- return;
-
- d->from = from;
- emit fromChanged();
- emit positionChanged();
- emit visualPositionChanged();
- if (isComponentComplete())
- setValue(d->value);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::ProgressBar::to
-
- This property holds the end value for the progress. The default value is \c 1.0.
-
- \sa from, value
-*/
-qreal QQuickProgressBar::to() const
-{
- Q_D(const QQuickProgressBar);
- return d->to;
-}
-
-void QQuickProgressBar::setTo(qreal to)
-{
- Q_D(QQuickProgressBar);
- if (qFuzzyCompare(d->to, to))
- return;
-
- d->to = to;
- emit toChanged();
- emit positionChanged();
- emit visualPositionChanged();
- if (isComponentComplete())
- setValue(d->value);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::ProgressBar::value
-
- This property holds the progress value. The default value is \c 0.0.
-
- \sa from, to, position
-*/
-qreal QQuickProgressBar::value() const
-{
- Q_D(const QQuickProgressBar);
- return d->value;
-}
-
-void QQuickProgressBar::setValue(qreal value)
-{
- Q_D(QQuickProgressBar);
- if (isComponentComplete())
- value = d->from > d->to ? qBound(d->to, value, d->from) : qBound(d->from, value, d->to);
-
- if (qFuzzyCompare(d->value, value))
- return;
-
- d->value = value;
- emit valueChanged();
- emit positionChanged();
- emit visualPositionChanged();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::ProgressBar::position
- \readonly
-
- This property holds the logical position of the progress.
-
- The position is expressed as a fraction of the value, in the range
- \c {0.0 - 1.0}. For visualizing the progress, the right-to-left
- aware \l visualPosition should be used instead.
-
- \sa value, visualPosition
-*/
-qreal QQuickProgressBar::position() const
-{
- Q_D(const QQuickProgressBar);
- if (qFuzzyCompare(d->from, d->to))
- return 0;
- return (d->value - d->from) / (d->to - d->from);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::ProgressBar::visualPosition
- \readonly
-
- This property holds the visual position of the progress.
-
- The position is expressed as a fraction of the value, in the range \c {0.0 - 1.0}.
- When the control is \l {Control::mirrored}{mirrored}, \c visuaPosition is equal
- to \c {1.0 - position}. This makes \c visualPosition suitable for visualizing
- the progress, taking right-to-left support into account.
-
- \sa position, value
-*/
-qreal QQuickProgressBar::visualPosition() const
-{
- if (isMirrored())
- return 1.0 - position();
- return position();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::ProgressBar::indeterminate
-
- This property holds whether the progress bar is in indeterminate mode.
- A progress bar in indeterminate mode displays that an operation is in progress, but it
- doesn't show how much progress has been made.
-
- \image qtquickcontrols2-progressbar-indeterminate.gif
-*/
-bool QQuickProgressBar::isIndeterminate() const
-{
- Q_D(const QQuickProgressBar);
- return d->indeterminate;
-}
-
-void QQuickProgressBar::setIndeterminate(bool indeterminate)
-{
- Q_D(QQuickProgressBar);
- if (d->indeterminate == indeterminate)
- return;
-
- d->indeterminate = indeterminate;
- emit indeterminateChanged();
-}
-
-void QQuickProgressBar::mirrorChange()
-{
- QQuickControl::mirrorChange();
- if (!qFuzzyCompare(position(), qreal(0.5)))
- emit visualPositionChanged();
-}
-
-void QQuickProgressBar::componentComplete()
-{
- Q_D(QQuickProgressBar);
- QQuickControl::componentComplete();
- setValue(d->value);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickProgressBar::accessibleRole() const
-{
- return QAccessible::ProgressBar;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickprogressbar_p.h b/src/quicktemplates2/qquickprogressbar_p.h
deleted file mode 100644
index 8322670f..00000000
--- a/src/quicktemplates2/qquickprogressbar_p.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKPROGRESSBAR_P_H
-#define QQUICKPROGRESSBAR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickProgressBarPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickProgressBar : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged FINAL)
- Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged FINAL)
- Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY valueChanged FINAL)
- Q_PROPERTY(qreal position READ position NOTIFY positionChanged FINAL)
- Q_PROPERTY(qreal visualPosition READ visualPosition NOTIFY visualPositionChanged FINAL)
- Q_PROPERTY(bool indeterminate READ isIndeterminate WRITE setIndeterminate NOTIFY indeterminateChanged FINAL)
- QML_NAMED_ELEMENT(ProgressBar)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickProgressBar(QQuickItem *parent = nullptr);
-
- qreal from() const;
- void setFrom(qreal from);
-
- qreal to() const;
- void setTo(qreal to);
-
- qreal value() const;
- void setValue(qreal value);
-
- qreal position() const;
- qreal visualPosition() const;
-
- bool isIndeterminate() const;
- void setIndeterminate(bool indeterminate);
-
-Q_SIGNALS:
- void fromChanged();
- void toChanged();
- void valueChanged();
- void positionChanged();
- void visualPositionChanged();
- void indeterminateChanged();
-
-protected:
- void mirrorChange() override;
- void componentComplete() override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickProgressBar)
- Q_DECLARE_PRIVATE(QQuickProgressBar)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickProgressBar)
-
-#endif // QQUICKPROGRESSBAR_P_H
diff --git a/src/quicktemplates2/qquickradiobutton.cpp b/src/quicktemplates2/qquickradiobutton.cpp
deleted file mode 100644
index f6c9c38f..00000000
--- a/src/quicktemplates2/qquickradiobutton.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickradiobutton_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickabstractbutton_p_p.h"
-
-#include <QtGui/qpa/qplatformtheme.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype RadioButton
- \inherits AbstractButton
-//! \instantiates QQuickRadioButton
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-buttons
- \brief Exclusive radio button that can be toggled on or off.
-
- \image qtquickcontrols2-radiobutton.gif
-
- RadioButton presents an option button that can be toggled on (checked) or
- off (unchecked). Radio buttons are typically used to select one option
- from a set of options.
-
- RadioButton inherits its API from \l AbstractButton. For instance,
- you can set \l {AbstractButton::text}{text} and react to
- \l {AbstractButton::clicked}{clicks} using the AbstractButton API.
- The state of the radio button can be set with the
- \l {AbstractButton::}{checked} property.
-
- Radio buttons are \l {AbstractButton::autoExclusive}{auto-exclusive}
- by default. Only one button can be checked at any time amongst radio
- buttons that belong to the same parent item; checking another button
- automatically unchecks the previously checked one. For radio buttons
- that do not share a common parent, ButtonGroup can be used to manage
- exclusivity.
-
- \l RadioDelegate is similar to RadioButton, except that it is typically
- used in views.
-
- \code
- ColumnLayout {
- RadioButton {
- checked: true
- text: qsTr("First")
- }
- RadioButton {
- text: qsTr("Second")
- }
- RadioButton {
- text: qsTr("Third")
- }
- }
- \endcode
-
- \sa ButtonGroup, {Customizing RadioButton}, {Button Controls}, RadioDelegate
-*/
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickRadioButtonPrivate : public QQuickAbstractButtonPrivate
-{
- Q_DECLARE_PUBLIC(QQuickRadioButton)
-
-public:
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::RadioButton); }
-};
-
-QQuickRadioButton::QQuickRadioButton(QQuickItem *parent)
- : QQuickAbstractButton(*(new QQuickRadioButtonPrivate), parent)
-{
- setCheckable(true);
- setAutoExclusive(true);
-}
-
-QFont QQuickRadioButton::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::RadioButton);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickRadioButton::accessibleRole() const
-{
- return QAccessible::RadioButton;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickradiobutton_p.h b/src/quicktemplates2/qquickradiobutton_p.h
deleted file mode 100644
index 29e18922..00000000
--- a/src/quicktemplates2/qquickradiobutton_p.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKRADIOBUTTON_P_H
-#define QQUICKRADIOBUTTON_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickRadioButtonPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickRadioButton : public QQuickAbstractButton
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(RadioButton)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickRadioButton(QQuickItem *parent = nullptr);
-
-protected:
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickRadioButton)
-
-#endif // QQUICKRADIOBUTTON_P_H
diff --git a/src/quicktemplates2/qquickradiodelegate.cpp b/src/quicktemplates2/qquickradiodelegate.cpp
deleted file mode 100644
index 69236fc1..00000000
--- a/src/quicktemplates2/qquickradiodelegate.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickradiodelegate_p.h"
-#include "qquickabstractbutton_p_p.h"
-#include "qquickitemdelegate_p_p.h"
-
-#include <QtGui/qpa/qplatformtheme.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype RadioDelegate
- \inherits ItemDelegate
-//! \instantiates QQuickRadioDelegate
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-delegates
- \brief Exclusive item delegate with a radio indicator that can be toggled on or off.
-
- \image qtquickcontrols2-radiodelegate.gif
-
- RadioDelegate presents an item delegate that can be toggled on (checked) or
- off (unchecked). Radio delegates are typically used to select one option
- from a set of options.
-
- RadioDelegate inherits its API from \l ItemDelegate, which is inherited
- from AbstractButton. For instance, you can set \l {AbstractButton::text}{text},
- and react to \l {AbstractButton::clicked}{clicks} using the AbstractButton
- API. The state of the radio delegate can be set with the
- \l {AbstractButton::}{checked} property.
-
- Radio delegates are \l {AbstractButton::autoExclusive}{auto-exclusive}
- by default. Only one delegate can be checked at any time amongst radio
- delegates that belong to the same parent item; checking another delegate
- automatically unchecks the previously checked one. For radio delegates
- that do not share a common parent, ButtonGroup can be used to manage
- exclusivity.
-
- \l RadioButton is similar to RadioDelegate, except that it is typically
- not used in views, but rather when there are only a few options, and often
- with the requirement that each button is uniquely identifiable.
-
- \code
- ButtonGroup {
- id: buttonGroup
- }
-
- ListView {
- model: ["Option 1", "Option 2", "Option 3"]
- delegate: RadioDelegate {
- text: modelData
- checked: index == 0
- ButtonGroup.group: buttonGroup
- }
- }
- \endcode
-
- \sa {Customizing RadioDelegate}, {Delegate Controls}, RadioButton
-*/
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickRadioDelegatePrivate : public QQuickItemDelegatePrivate
-{
- Q_DECLARE_PUBLIC(QQuickRadioDelegate)
-
-public:
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::ListView); }
-};
-
-QQuickRadioDelegate::QQuickRadioDelegate(QQuickItem *parent)
- : QQuickItemDelegate(*(new QQuickRadioDelegatePrivate), parent)
-{
- setCheckable(true);
- setAutoExclusive(true);
-}
-
-QFont QQuickRadioDelegate::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::ListView);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickRadioDelegate::accessibleRole() const
-{
- return QAccessible::RadioButton;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickradiodelegate_p.h b/src/quicktemplates2/qquickradiodelegate_p.h
deleted file mode 100644
index 0ddff985..00000000
--- a/src/quicktemplates2/qquickradiodelegate_p.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKRADIODELEGATE_P_H
-#define QQUICKRADIODELEGATE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickitemdelegate_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickRadioDelegatePrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickRadioDelegate : public QQuickItemDelegate
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(RadioDelegate)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickRadioDelegate(QQuickItem *parent = nullptr);
-
-protected:
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DECLARE_PRIVATE(QQuickRadioDelegate)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickRadioDelegate)
-
-#endif // QQUICKRADIODELEGATE_P_H
diff --git a/src/quicktemplates2/qquickrangeslider.cpp b/src/quicktemplates2/qquickrangeslider.cpp
deleted file mode 100644
index 2348e642..00000000
--- a/src/quicktemplates2/qquickrangeslider.cpp
+++ /dev/null
@@ -1,1320 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickrangeslider_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtCore/qscopedpointer.h>
-#include <QtQuick/private/qquickwindow_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype RangeSlider
- \inherits Control
-//! \instantiates QQuickRangeSlider
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-input
- \ingroup qtquickcontrols2-focusscopes
- \brief Used to select a range of values by sliding two handles along a track.
-
- \image qtquickcontrols2-rangeslider.gif
-
- RangeSlider is used to select a range specified by two values, by sliding
- each handle along a track.
-
- In the example below, custom \l from and \l to values are set, and the
- initial positions of the \l first and \l second handles are set:
-
- \code
- RangeSlider {
- from: 1
- to: 100
- first.value: 25
- second.value: 75
- }
- \endcode
-
- In order to perform an action when the value for a particular handle changes,
- use the following syntax:
-
- \code
- first.onMoved: console.log("first.value changed to " + first.value)
- \endcode
-
- The \l {first.position} and \l {second.position} properties are expressed as
- fractions of the control's size, in the range \c {0.0 - 1.0}.
- The \l {first.visualPosition} and \l {second.visualPosition} properties are
- the same, except that they are reversed in a
- \l {Right-to-left User Interfaces}{right-to-left} application.
- The \c visualPosition is useful for positioning the handles when styling
- RangeSlider. In the example above, \l {first.visualPosition} will be \c 0.24
- in a left-to-right application, and \c 0.76 in a right-to-left application.
-
- For a slider that allows the user to select a single value, see \l Slider.
-
- \sa {Customizing RangeSlider}, {Input Controls},
- {Focus Management in Qt Quick Controls}
-*/
-
-class QQuickRangeSliderNodePrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickRangeSliderNode)
-public:
- QQuickRangeSliderNodePrivate(qreal value, QQuickRangeSlider *slider)
- : value(value),
- slider(slider)
- {
- }
-
- bool isFirst() const;
-
- void setPosition(qreal position, bool ignoreOtherPosition = false);
- void updatePosition(bool ignoreOtherPosition = false);
-
- void cancelHandle();
- void executeHandle(bool complete = false);
-
- static QQuickRangeSliderNodePrivate *get(QQuickRangeSliderNode *node);
-
- qreal value = 0;
- bool isPendingValue = false;
- qreal pendingValue = 0;
- qreal position = 0;
- QQuickDeferredPointer<QQuickItem> handle;
- QQuickRangeSlider *slider = nullptr;
- bool pressed = false;
- bool hovered = false;
- int touchId = -1;
-};
-
-bool QQuickRangeSliderNodePrivate::isFirst() const
-{
- return this == get(slider->first());
-}
-
-void QQuickRangeSliderNodePrivate::setPosition(qreal position, bool ignoreOtherPosition)
-{
- Q_Q(QQuickRangeSliderNode);
-
- const qreal min = isFirst() || ignoreOtherPosition ? 0.0 : qMax<qreal>(0.0, slider->first()->position());
- const qreal max = !isFirst() || ignoreOtherPosition ? 1.0 : qMin<qreal>(1.0, slider->second()->position());
- position = qBound(min, position, max);
- if (!qFuzzyCompare(this->position, position)) {
- this->position = position;
- emit q->positionChanged();
- emit q->visualPositionChanged();
- }
-}
-
-void QQuickRangeSliderNodePrivate::updatePosition(bool ignoreOtherPosition)
-{
- qreal pos = 0;
- if (!qFuzzyCompare(slider->from(), slider->to()))
- pos = (value - slider->from()) / (slider->to() - slider->from());
- setPosition(pos, ignoreOtherPosition);
-}
-
-static inline QString handleName() { return QStringLiteral("handle"); }
-
-void QQuickRangeSliderNodePrivate::cancelHandle()
-{
- Q_Q(QQuickRangeSliderNode);
- quickCancelDeferred(q, handleName());
-}
-
-void QQuickRangeSliderNodePrivate::executeHandle(bool complete)
-{
- Q_Q(QQuickRangeSliderNode);
- if (handle.wasExecuted())
- return;
-
- if (!handle || complete)
- quickBeginDeferred(q, handleName(), handle);
- if (complete)
- quickCompleteDeferred(q, handleName(), handle);
-}
-
-QQuickRangeSliderNodePrivate *QQuickRangeSliderNodePrivate::get(QQuickRangeSliderNode *node)
-{
- return node->d_func();
-}
-
-QQuickRangeSliderNode::QQuickRangeSliderNode(qreal value, QQuickRangeSlider *slider)
- : QObject(*(new QQuickRangeSliderNodePrivate(value, slider)), slider)
-{
-}
-
-QQuickRangeSliderNode::~QQuickRangeSliderNode()
-{
-}
-
-qreal QQuickRangeSliderNode::value() const
-{
- Q_D(const QQuickRangeSliderNode);
- return d->value;
-}
-
-void QQuickRangeSliderNode::setValue(qreal value)
-{
- Q_D(QQuickRangeSliderNode);
- if (!d->slider->isComponentComplete()) {
- d->pendingValue = value;
- d->isPendingValue = true;
- return;
- }
-
- // First, restrict the first value to be within to and from.
- const qreal smaller = qMin(d->slider->to(), d->slider->from());
- const qreal larger = qMax(d->slider->to(), d->slider->from());
- value = qBound(smaller, value, larger);
-
- // Then, ensure that it doesn't go past the other value,
- // a check that depends on whether or not the range is inverted.
- const bool invertedRange = d->slider->from() > d->slider->to();
- if (d->isFirst()) {
- if (invertedRange) {
- if (value < d->slider->second()->value())
- value = d->slider->second()->value();
- } else {
- if (value > d->slider->second()->value())
- value = d->slider->second()->value();
- }
- } else {
- if (invertedRange) {
- if (value > d->slider->first()->value())
- value = d->slider->first()->value();
- } else {
- if (value < d->slider->first()->value())
- value = d->slider->first()->value();
- }
- }
-
- if (!qFuzzyCompare(d->value, value)) {
- d->value = value;
- d->updatePosition();
- emit valueChanged();
- }
-}
-
-qreal QQuickRangeSliderNode::position() const
-{
- Q_D(const QQuickRangeSliderNode);
- return d->position;
-}
-
-qreal QQuickRangeSliderNode::visualPosition() const
-{
- Q_D(const QQuickRangeSliderNode);
- if (d->slider->orientation() == Qt::Vertical || d->slider->isMirrored())
- return 1.0 - d->position;
- return d->position;
-}
-
-QQuickItem *QQuickRangeSliderNode::handle() const
-{
- QQuickRangeSliderNodePrivate *d = const_cast<QQuickRangeSliderNodePrivate *>(d_func());
- if (!d->handle)
- d->executeHandle();
- return d->handle;
-}
-
-void QQuickRangeSliderNode::setHandle(QQuickItem *handle)
-{
- Q_D(QQuickRangeSliderNode);
- if (d->handle == handle)
- return;
-
- if (!d->handle.isExecuting())
- d->cancelHandle();
-
- const qreal oldImplicitHandleWidth = implicitHandleWidth();
- const qreal oldImplicitHandleHeight = implicitHandleHeight();
-
- QQuickControlPrivate::get(d->slider)->removeImplicitSizeListener(d->handle);
- QQuickControlPrivate::hideOldItem(d->handle);
- d->handle = handle;
-
- if (handle) {
- if (!handle->parentItem())
- handle->setParentItem(d->slider);
-
- QQuickItem *firstHandle = QQuickRangeSliderNodePrivate::get(d->slider->first())->handle;
- QQuickItem *secondHandle = QQuickRangeSliderNodePrivate::get(d->slider->second())->handle;
- if (firstHandle && secondHandle) {
- // The order of property assignments in QML is undefined,
- // but we need the first handle to be before the second due
- // to focus order constraints, so check for that here.
- const QList<QQuickItem *> childItems = d->slider->childItems();
- const int firstIndex = childItems.indexOf(firstHandle);
- const int secondIndex = childItems.indexOf(secondHandle);
- if (firstIndex != -1 && secondIndex != -1 && firstIndex > secondIndex) {
- firstHandle->stackBefore(secondHandle);
- // Ensure we have some way of knowing which handle is above
- // the other when it comes to mouse presses, and also that
- // they are rendered in the correct order.
- secondHandle->setZ(secondHandle->z() + 1);
- }
- }
-
- handle->setActiveFocusOnTab(true);
- QQuickControlPrivate::get(d->slider)->addImplicitSizeListener(handle);
- }
-
- if (!qFuzzyCompare(oldImplicitHandleWidth, implicitHandleWidth()))
- emit implicitHandleWidthChanged();
- if (!qFuzzyCompare(oldImplicitHandleHeight, implicitHandleHeight()))
- emit implicitHandleHeightChanged();
- if (!d->handle.isExecuting())
- emit handleChanged();
-}
-
-bool QQuickRangeSliderNode::isPressed() const
-{
- Q_D(const QQuickRangeSliderNode);
- return d->pressed;
-}
-
-void QQuickRangeSliderNode::setPressed(bool pressed)
-{
- Q_D(QQuickRangeSliderNode);
- if (d->pressed == pressed)
- return;
-
- d->pressed = pressed;
- d->slider->setAccessibleProperty("pressed", pressed || d->slider->second()->isPressed());
- emit pressedChanged();
-}
-
-bool QQuickRangeSliderNode::isHovered() const
-{
- Q_D(const QQuickRangeSliderNode);
- return d->hovered;
-}
-
-void QQuickRangeSliderNode::setHovered(bool hovered)
-{
- Q_D(QQuickRangeSliderNode);
- if (d->hovered == hovered)
- return;
-
- d->hovered = hovered;
- emit hoveredChanged();
-}
-
-qreal QQuickRangeSliderNode::implicitHandleWidth() const
-{
- Q_D(const QQuickRangeSliderNode);
- if (!d->handle)
- return 0;
- return d->handle->implicitWidth();
-}
-
-qreal QQuickRangeSliderNode::implicitHandleHeight() const
-{
- Q_D(const QQuickRangeSliderNode);
- if (!d->handle)
- return 0;
- return d->handle->implicitHeight();
-}
-
-void QQuickRangeSliderNode::increase()
-{
- Q_D(QQuickRangeSliderNode);
- qreal step = qFuzzyIsNull(d->slider->stepSize()) ? 0.1 : d->slider->stepSize();
- setValue(d->value + step);
-}
-
-void QQuickRangeSliderNode::decrease()
-{
- Q_D(QQuickRangeSliderNode);
- qreal step = qFuzzyIsNull(d->slider->stepSize()) ? 0.1 : d->slider->stepSize();
- setValue(d->value - step);
-}
-
-static const qreal defaultFrom = 0.0;
-static const qreal defaultTo = 1.0;
-
-class QQuickRangeSliderPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickRangeSlider)
-
-public:
- QQuickRangeSliderNode *pressedNode(int touchId = -1) const;
-
-#if QT_CONFIG(quicktemplates2_multitouch)
- bool acceptTouch(const QTouchEvent::TouchPoint &point) override;
-#endif
- void handlePress(const QPointF &point, ulong timestamp) override;
- void handleMove(const QPointF &point, ulong timestamp) override;
- void handleRelease(const QPointF &point, ulong timestamp) override;
- void handleUngrab() override;
-
- void updateHover(const QPointF &pos);
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- bool live = true;
- qreal from = defaultFrom;
- qreal to = defaultTo;
- qreal stepSize = 0;
- qreal touchDragThreshold = -1;
- QQuickRangeSliderNode *first = nullptr;
- QQuickRangeSliderNode *second = nullptr;
- QPointF pressPoint;
- Qt::Orientation orientation = Qt::Horizontal;
- QQuickRangeSlider::SnapMode snapMode = QQuickRangeSlider::NoSnap;
-};
-
-static qreal valueAt(const QQuickRangeSlider *slider, qreal position)
-{
- return slider->from() + (slider->to() - slider->from()) * position;
-}
-
-static qreal snapPosition(const QQuickRangeSlider *slider, qreal position)
-{
- const qreal range = slider->to() - slider->from();
- if (qFuzzyIsNull(range))
- return position;
-
- const qreal effectiveStep = slider->stepSize() / range;
- if (qFuzzyIsNull(effectiveStep))
- return position;
-
- return qRound(position / effectiveStep) * effectiveStep;
-}
-
-static qreal positionAt(const QQuickRangeSlider *slider, QQuickItem *handle, const QPointF &point)
-{
- if (slider->orientation() == Qt::Horizontal) {
- const qreal hw = handle ? handle->width() : 0;
- const qreal offset = hw / 2;
- const qreal extent = slider->availableWidth() - hw;
- if (!qFuzzyIsNull(extent)) {
- if (slider->isMirrored())
- return (slider->width() - point.x() - slider->rightPadding() - offset) / extent;
- return (point.x() - slider->leftPadding() - offset) / extent;
- }
- } else {
- const qreal hh = handle ? handle->height() : 0;
- const qreal offset = hh / 2;
- const qreal extent = slider->availableHeight() - hh;
- if (!qFuzzyIsNull(extent))
- return (slider->height() - point.y() - slider->bottomPadding() - offset) / extent;
- }
- return 0;
-}
-
-QQuickRangeSliderNode *QQuickRangeSliderPrivate::pressedNode(int touchId) const
-{
- if (touchId == -1)
- return first->isPressed() ? first : (second->isPressed() ? second : nullptr);
- if (QQuickRangeSliderNodePrivate::get(first)->touchId == touchId)
- return first;
- if (QQuickRangeSliderNodePrivate::get(second)->touchId == touchId)
- return second;
- return nullptr;
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-bool QQuickRangeSliderPrivate::acceptTouch(const QTouchEvent::TouchPoint &point)
-{
- int firstId = QQuickRangeSliderNodePrivate::get(first)->touchId;
- int secondId = QQuickRangeSliderNodePrivate::get(second)->touchId;
-
- if (((firstId == -1 || secondId == -1) && point.state() == QEventPoint::Pressed) || point.id() == firstId || point.id() == secondId) {
- touchId = point.id();
- return true;
- }
-
- return false;
-}
-#endif
-
-void QQuickRangeSliderPrivate::handlePress(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickRangeSlider);
- QQuickControlPrivate::handlePress(point, timestamp);
- pressPoint = point;
-
- QQuickItem *firstHandle = first->handle();
- QQuickItem *secondHandle = second->handle();
- const bool firstHit = firstHandle && !first->isPressed() && firstHandle->contains(q->mapToItem(firstHandle, point));
- const bool secondHit = secondHandle && !second->isPressed() && secondHandle->contains(q->mapToItem(secondHandle, point));
- QQuickRangeSliderNode *hitNode = nullptr;
- QQuickRangeSliderNode *otherNode = nullptr;
-
- if (firstHit && secondHit) {
- // choose highest
- hitNode = firstHandle->z() > secondHandle->z() ? first : second;
- otherNode = firstHandle->z() > secondHandle->z() ? second : first;
- } else if (firstHit) {
- hitNode = first;
- otherNode = second;
- } else if (secondHit) {
- hitNode = second;
- otherNode = first;
- } else {
- // find the nearest
- const qreal firstPos = positionAt(q, firstHandle, point);
- const qreal secondPos = positionAt(q, secondHandle, point);
- const qreal firstDistance = qAbs(firstPos - first->position());
- const qreal secondDistance = qAbs(secondPos - second->position());
-
- if (qFuzzyCompare(firstDistance, secondDistance)) {
- // same distance => choose the one that can be moved towards the press position
- const bool inverted = from > to;
- if ((!inverted && firstPos < first->position()) || (inverted && firstPos > first->position())) {
- hitNode = first;
- otherNode = second;
- } else {
- hitNode = second;
- otherNode = first;
- }
- } else if (firstDistance < secondDistance) {
- hitNode = first;
- otherNode = second;
- } else {
- hitNode = second;
- otherNode = first;
- }
- }
-
- if (hitNode) {
- hitNode->setPressed(true);
- if (QQuickItem *handle = hitNode->handle())
- handle->setZ(1);
- QQuickRangeSliderNodePrivate::get(hitNode)->touchId = touchId;
- }
- if (otherNode) {
- if (QQuickItem *handle = otherNode->handle())
- handle->setZ(0);
- }
-}
-
-void QQuickRangeSliderPrivate::handleMove(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickRangeSlider);
- QQuickControlPrivate::handleMove(point, timestamp);
- QQuickRangeSliderNode *pressedNode = QQuickRangeSliderPrivate::pressedNode(touchId);
- if (pressedNode) {
- const qreal oldPos = pressedNode->position();
- qreal pos = positionAt(q, pressedNode->handle(), point);
- if (snapMode == QQuickRangeSlider::SnapAlways)
- pos = snapPosition(q, pos);
- if (live)
- pressedNode->setValue(valueAt(q, pos));
- else
- QQuickRangeSliderNodePrivate::get(pressedNode)->setPosition(pos);
-
- if (!qFuzzyCompare(pressedNode->position(), oldPos))
- emit pressedNode->moved();
- }
-}
-
-void QQuickRangeSliderPrivate::handleRelease(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickRangeSlider);
- QQuickControlPrivate::handleRelease(point, timestamp);
- pressPoint = QPointF();
-
- QQuickRangeSliderNode *pressedNode = QQuickRangeSliderPrivate::pressedNode(touchId);
- if (!pressedNode)
- return;
- QQuickRangeSliderNodePrivate *pressedNodePrivate = QQuickRangeSliderNodePrivate::get(pressedNode);
-
- if (q->keepMouseGrab() || q->keepTouchGrab()) {
- const qreal oldPos = pressedNode->position();
- qreal pos = positionAt(q, pressedNode->handle(), point);
- if (snapMode != QQuickRangeSlider::NoSnap)
- pos = snapPosition(q, pos);
- qreal val = valueAt(q, pos);
- if (!qFuzzyCompare(val, pressedNode->value()))
- pressedNode->setValue(val);
- else if (snapMode != QQuickRangeSlider::NoSnap)
- pressedNodePrivate->setPosition(pos);
- q->setKeepMouseGrab(false);
- q->setKeepTouchGrab(false);
-
- if (!qFuzzyCompare(pressedNode->position(), oldPos))
- emit pressedNode->moved();
- }
- pressedNode->setPressed(false);
- pressedNodePrivate->touchId = -1;
-}
-
-void QQuickRangeSliderPrivate::handleUngrab()
-{
- QQuickControlPrivate::handleUngrab();
- pressPoint = QPointF();
- first->setPressed(false);
- second->setPressed(false);
- QQuickRangeSliderNodePrivate::get(first)->touchId = -1;
- QQuickRangeSliderNodePrivate::get(second)->touchId = -1;
-}
-
-void QQuickRangeSliderPrivate::updateHover(const QPointF &pos)
-{
- Q_Q(QQuickRangeSlider);
- QQuickItem *firstHandle = first->handle();
- QQuickItem *secondHandle = second->handle();
- first->setHovered(firstHandle && firstHandle->isEnabled() && firstHandle->contains(q->mapToItem(firstHandle, pos)));
- second->setHovered(secondHandle && secondHandle->isEnabled() && secondHandle->contains(q->mapToItem(secondHandle, pos)));
-}
-
-void QQuickRangeSliderPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- QQuickControlPrivate::itemImplicitWidthChanged(item);
- if (item == first->handle())
- emit first->implicitHandleWidthChanged();
- else if (item == second->handle())
- emit second->implicitHandleWidthChanged();
-}
-
-void QQuickRangeSliderPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- QQuickControlPrivate::itemImplicitHeightChanged(item);
- if (item == first->handle())
- emit first->implicitHandleHeightChanged();
- else if (item == second->handle())
- emit second->implicitHandleHeightChanged();
-}
-
-QQuickRangeSlider::QQuickRangeSlider(QQuickItem *parent)
- : QQuickControl(*(new QQuickRangeSliderPrivate), parent)
-{
- Q_D(QQuickRangeSlider);
- d->first = new QQuickRangeSliderNode(0.0, this);
- d->second = new QQuickRangeSliderNode(1.0, this);
-
- setFlag(QQuickItem::ItemIsFocusScope);
- setAcceptedMouseButtons(Qt::LeftButton);
-#if QT_CONFIG(quicktemplates2_multitouch)
- setAcceptTouchEvents(true);
-#endif
-#if QT_CONFIG(cursor)
- setCursor(Qt::ArrowCursor);
-#endif
-}
-
-QQuickRangeSlider::~QQuickRangeSlider()
-{
- Q_D(QQuickRangeSlider);
- d->removeImplicitSizeListener(d->first->handle());
- d->removeImplicitSizeListener(d->second->handle());
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::RangeSlider::from
-
- This property holds the starting value for the range. The default value is \c 0.0.
-
- \sa to, first.value, second.value
-*/
-qreal QQuickRangeSlider::from() const
-{
- Q_D(const QQuickRangeSlider);
- return d->from;
-}
-
-void QQuickRangeSlider::setFrom(qreal from)
-{
- Q_D(QQuickRangeSlider);
- if (qFuzzyCompare(d->from, from))
- return;
-
- d->from = from;
- emit fromChanged();
-
- if (isComponentComplete()) {
- d->first->setValue(d->first->value());
- d->second->setValue(d->second->value());
- }
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::RangeSlider::to
-
- This property holds the end value for the range. The default value is \c 1.0.
-
- \sa from, first.value, second.value
-*/
-qreal QQuickRangeSlider::to() const
-{
- Q_D(const QQuickRangeSlider);
- return d->to;
-}
-
-void QQuickRangeSlider::setTo(qreal to)
-{
- Q_D(QQuickRangeSlider);
- if (qFuzzyCompare(d->to, to))
- return;
-
- d->to = to;
- emit toChanged();
-
- if (isComponentComplete()) {
- d->first->setValue(d->first->value());
- d->second->setValue(d->second->value());
- }
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty qreal QtQuick.Controls::RangeSlider::touchDragThreshold
-
- This property holds the threshold (in logical pixels) at which a touch drag event will be initiated.
- The mouse drag threshold won't be affected.
- The default value is \c Qt.styleHints.startDragDistance.
-
- \sa QStyleHints
-
-*/
-qreal QQuickRangeSlider::touchDragThreshold() const
-{
- Q_D(const QQuickRangeSlider);
- return d->touchDragThreshold;
-}
-
-void QQuickRangeSlider::setTouchDragThreshold(qreal touchDragThreshold)
-{
- Q_D(QQuickRangeSlider);
- if (d->touchDragThreshold == touchDragThreshold)
- return;
-
- d->touchDragThreshold = touchDragThreshold;
- emit touchDragThresholdChanged();
-}
-
-void QQuickRangeSlider::resetTouchDragThreshold()
-{
- setTouchDragThreshold(-1);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlmethod real QtQuick.Controls::RangeSlider::valueAt(real position)
-
- Returns the value for the given \a position.
-
- \sa first.value, second.value, first.position, second.position, live
-*/
-qreal QQuickRangeSlider::valueAt(qreal position) const
-{
- Q_D(const QQuickRangeSlider);
- const qreal value = (d->to - d->from) * position;
- if (qFuzzyIsNull(d->stepSize))
- return d->from + value;
- return d->from + qRound(value / d->stepSize) * d->stepSize;
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::RangeSlider::first.value
- \qmlproperty real QtQuick.Controls::RangeSlider::first.position
- \qmlproperty real QtQuick.Controls::RangeSlider::first.visualPosition
- \qmlproperty Item QtQuick.Controls::RangeSlider::first.handle
- \qmlproperty bool QtQuick.Controls::RangeSlider::first.pressed
- \qmlproperty bool QtQuick.Controls::RangeSlider::first.hovered
- \qmlproperty real QtQuick.Controls::RangeSlider::first.implicitHandleWidth
- \qmlproperty real QtQuick.Controls::RangeSlider::first.implicitHandleHeight
-
- \table
- \header
- \li Property
- \li Description
- \row
- \li value
- \li This property holds the value of the first handle in the range
- \c from - \c to.
-
- If \l from is greater than \l to, the value of the first handle
- must be greater than the second, and vice versa.
-
- The default value is \c 0.0.
- \row
- \li handle
- \li This property holds the first handle item.
- \row
- \li visualPosition
- \li This property holds the visual position of the first handle.
-
- The position is expressed as a fraction of the control's size, in the range
- \c {0.0 - 1.0}. When the control is \l {Control::mirrored}{mirrored}, the
- value is equal to \c {1.0 - position}. This makes the value suitable for
- visualizing the slider, taking right-to-left support into account.
- \row
- \li position
- \li This property holds the logical position of the first handle.
-
- The position is expressed as a fraction of the control's size, in the range
- \c {0.0 - 1.0}. For visualizing a slider, the right-to-left aware
- \l {first.visualPosition}{visualPosition} should be used instead.
- \row
- \li pressed
- \li This property holds whether the first handle is pressed by either touch,
- mouse, or keys.
- \row
- \li hovered
- \li This property holds whether the first handle is hovered.
- This property was introduced in QtQuick.Controls 2.1.
- \row
- \li implicitHandleWidth
- \li This property holds the implicit width of the first handle.
- This property was introduced in QtQuick.Controls 2.5.
- \row
- \li implicitHandleHeight
- \li This property holds the implicit height of the first handle.
- This property was introduced in QtQuick.Controls 2.5.
- \endtable
-
- \sa first.moved(), first.increase(), first.decrease()
-*/
-QQuickRangeSliderNode *QQuickRangeSlider::first() const
-{
- Q_D(const QQuickRangeSlider);
- return d->first;
-}
-
-/*!
- \qmlsignal void QtQuick.Controls::RangeSlider::first.moved()
- \qmlsignal void QtQuick.Controls::RangeSlider::second.moved()
- \since QtQuick.Controls 2.5
-
- This signal is emitted when either the first or second handle has been
- interactively moved by the user by either touch, mouse, or keys.
-
- \sa first, second
-*/
-
-/*!
- \qmlproperty real QtQuick.Controls::RangeSlider::second.value
- \qmlproperty real QtQuick.Controls::RangeSlider::second.position
- \qmlproperty real QtQuick.Controls::RangeSlider::second.visualPosition
- \qmlproperty Item QtQuick.Controls::RangeSlider::second.handle
- \qmlproperty bool QtQuick.Controls::RangeSlider::second.pressed
- \qmlproperty bool QtQuick.Controls::RangeSlider::second.hovered
- \qmlproperty real QtQuick.Controls::RangeSlider::second.implicitHandleWidth
- \qmlproperty real QtQuick.Controls::RangeSlider::second.implicitHandleHeight
-
- \table
- \header
- \li Property
- \li Description
- \row
- \li value
- \li This property holds the value of the second handle in the range
- \c from - \c to.
-
- If \l from is greater than \l to, the value of the first handle
- must be greater than the second, and vice versa.
-
- The default value is \c 0.0.
- \row
- \li handle
- \li This property holds the second handle item.
- \row
- \li visualPosition
- \li This property holds the visual position of the second handle.
-
- The position is expressed as a fraction of the control's size, in the range
- \c {0.0 - 1.0}. When the control is \l {Control::mirrored}{mirrored}, the
- value is equal to \c {1.0 - position}. This makes the value suitable for
- visualizing the slider, taking right-to-left support into account.
- \row
- \li position
- \li This property holds the logical position of the second handle.
-
- The position is expressed as a fraction of the control's size, in the range
- \c {0.0 - 1.0}. For visualizing a slider, the right-to-left aware
- \l {second.visualPosition}{visualPosition} should be used instead.
- \row
- \li pressed
- \li This property holds whether the second handle is pressed by either touch,
- mouse, or keys.
- \row
- \li hovered
- \li This property holds whether the second handle is hovered.
- This property was introduced in QtQuick.Controls 2.1.
- \row
- \li implicitHandleWidth
- \li This property holds the implicit width of the second handle.
- This property was introduced in QtQuick.Controls 2.5.
- \row
- \li implicitHandleHeight
- \li This property holds the implicit height of the second handle.
- This property was introduced in QtQuick.Controls 2.5.
- \endtable
-
- \sa second.moved(), second.increase(), second.decrease()
-*/
-QQuickRangeSliderNode *QQuickRangeSlider::second() const
-{
- Q_D(const QQuickRangeSlider);
- return d->second;
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::RangeSlider::stepSize
-
- This property holds the step size. The default value is \c 0.0.
-
- \sa snapMode, first.increase(), first.decrease()
-*/
-qreal QQuickRangeSlider::stepSize() const
-{
- Q_D(const QQuickRangeSlider);
- return d->stepSize;
-}
-
-void QQuickRangeSlider::setStepSize(qreal step)
-{
- Q_D(QQuickRangeSlider);
- if (qFuzzyCompare(d->stepSize, step))
- return;
-
- d->stepSize = step;
- emit stepSizeChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::RangeSlider::snapMode
-
- This property holds the snap mode.
-
- The snap mode determines how the slider handles behave with
- regards to the \l stepSize.
-
- Possible values:
- \value RangeSlider.NoSnap The slider does not snap (default).
- \value RangeSlider.SnapAlways The slider snaps while the handle is dragged.
- \value RangeSlider.SnapOnRelease The slider does not snap while being dragged, but only after the handle is released.
-
- For visual explanations of the various modes, see the
- \l {Slider::}{snapMode} documentation of \l Slider.
-
- \sa stepSize
-*/
-QQuickRangeSlider::SnapMode QQuickRangeSlider::snapMode() const
-{
- Q_D(const QQuickRangeSlider);
- return d->snapMode;
-}
-
-void QQuickRangeSlider::setSnapMode(SnapMode mode)
-{
- Q_D(QQuickRangeSlider);
- if (d->snapMode == mode)
- return;
-
- d->snapMode = mode;
- emit snapModeChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::RangeSlider::orientation
-
- This property holds the orientation.
-
- Possible values:
- \value Qt.Horizontal Horizontal (default)
- \value Qt.Vertical Vertical
-
- \sa horizontal, vertical
-*/
-Qt::Orientation QQuickRangeSlider::orientation() const
-{
- Q_D(const QQuickRangeSlider);
- return d->orientation;
-}
-
-void QQuickRangeSlider::setOrientation(Qt::Orientation orientation)
-{
- Q_D(QQuickRangeSlider);
- if (d->orientation == orientation)
- return;
-
- d->orientation = orientation;
- emit orientationChanged();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::RangeSlider::setValues(real firstValue, real secondValue)
-
- Sets \l first.value and \l second.value with the given arguments.
-
- If \l to is larger than \l from and \a firstValue is larger than
- \a secondValue, firstValue will be clamped to secondValue.
-
- If \l from is larger than \l to and secondValue is larger than
- firstValue, secondValue will be clamped to firstValue.
-
- This function may be necessary to set the first and second values
- after the control has been completed, as there is a circular
- dependency between firstValue and secondValue which can cause
- assigned values to be clamped to each other.
-
- \sa stepSize
-*/
-void QQuickRangeSlider::setValues(qreal firstValue, qreal secondValue)
-{
- Q_D(QQuickRangeSlider);
- // Restrict the values to be within to and from.
- const qreal smaller = qMin(d->to, d->from);
- const qreal larger = qMax(d->to, d->from);
- firstValue = qBound(smaller, firstValue, larger);
- secondValue = qBound(smaller, secondValue, larger);
-
- if (d->from > d->to) {
- // If the from and to values are reversed, the secondValue
- // might be less than the first value, which is not allowed.
- if (secondValue > firstValue)
- secondValue = firstValue;
- } else {
- // Otherwise, clamp first to second if it's too large.
- if (firstValue > secondValue)
- firstValue = secondValue;
- }
-
- // Then set both values. If they didn't change, no change signal will be emitted.
- QQuickRangeSliderNodePrivate *firstPrivate = QQuickRangeSliderNodePrivate::get(d->first);
- if (firstValue != firstPrivate->value) {
- firstPrivate->value = firstValue;
- emit d->first->valueChanged();
- }
-
- QQuickRangeSliderNodePrivate *secondPrivate = QQuickRangeSliderNodePrivate::get(d->second);
- if (secondValue != secondPrivate->value) {
- secondPrivate->value = secondValue;
- emit d->second->valueChanged();
- }
-
- // After we've set both values, then we can update the positions.
- // If we don't do this last, the positions may be incorrect.
- firstPrivate->updatePosition(true);
- secondPrivate->updatePosition();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty bool QtQuick.Controls::RangeSlider::live
-
- This property holds whether the slider provides live updates for the \l first.value
- and \l second.value properties while the respective handles are dragged.
-
- The default value is \c true.
-
- \sa first.value, second.value
-*/
-bool QQuickRangeSlider::live() const
-{
- Q_D(const QQuickRangeSlider);
- return d->live;
-}
-
-void QQuickRangeSlider::setLive(bool live)
-{
- Q_D(QQuickRangeSlider);
- if (d->live == live)
- return;
-
- d->live = live;
- emit liveChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::RangeSlider::horizontal
- \readonly
-
- This property holds whether the slider is horizontal.
-
- \sa orientation
-*/
-bool QQuickRangeSlider::isHorizontal() const
-{
- Q_D(const QQuickRangeSlider);
- return d->orientation == Qt::Horizontal;
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::RangeSlider::vertical
- \readonly
-
- This property holds whether the slider is vertical.
-
- \sa orientation
-*/
-bool QQuickRangeSlider::isVertical() const
-{
- Q_D(const QQuickRangeSlider);
- return d->orientation == Qt::Vertical;
-}
-
-void QQuickRangeSlider::focusInEvent(QFocusEvent *event)
-{
- Q_D(QQuickRangeSlider);
- QQuickControl::focusInEvent(event);
-
- // The active focus ends up to RangeSlider when using forceActiveFocus()
- // or QML KeyNavigation. We must forward the focus to one of the handles,
- // because RangeSlider handles key events for the focused handle. If
- // neither handle has active focus, RangeSlider doesn't do anything.
- QQuickItem *handle = nextItemInFocusChain();
- // QQuickItem::nextItemInFocusChain() only works as desired with
- // Qt::TabFocusAllControls. otherwise pick the first handle
- if (!handle || handle == this)
- handle = d->first->handle();
- if (handle)
- handle->forceActiveFocus(event->reason());
-}
-
-void QQuickRangeSlider::keyPressEvent(QKeyEvent *event)
-{
- Q_D(QQuickRangeSlider);
- QQuickControl::keyPressEvent(event);
-
- QQuickRangeSliderNode *focusNode = d->first->handle()->hasActiveFocus()
- ? d->first : (d->second->handle()->hasActiveFocus() ? d->second : nullptr);
- if (!focusNode)
- return;
-
- const qreal oldValue = focusNode->value();
- if (d->orientation == Qt::Horizontal) {
- if (event->key() == Qt::Key_Left) {
- focusNode->setPressed(true);
- if (isMirrored())
- focusNode->increase();
- else
- focusNode->decrease();
- event->accept();
- } else if (event->key() == Qt::Key_Right) {
- focusNode->setPressed(true);
- if (isMirrored())
- focusNode->decrease();
- else
- focusNode->increase();
- event->accept();
- }
- } else {
- if (event->key() == Qt::Key_Up) {
- focusNode->setPressed(true);
- focusNode->increase();
- event->accept();
- } else if (event->key() == Qt::Key_Down) {
- focusNode->setPressed(true);
- focusNode->decrease();
- event->accept();
- }
- }
- if (!qFuzzyCompare(focusNode->value(), oldValue))
- emit focusNode->moved();
-}
-
-void QQuickRangeSlider::hoverEnterEvent(QHoverEvent *event)
-{
- Q_D(QQuickRangeSlider);
- QQuickControl::hoverEnterEvent(event);
- d->updateHover(event->position());
-}
-
-void QQuickRangeSlider::hoverMoveEvent(QHoverEvent *event)
-{
- Q_D(QQuickRangeSlider);
- QQuickControl::hoverMoveEvent(event);
- d->updateHover(event->position());
-}
-
-void QQuickRangeSlider::hoverLeaveEvent(QHoverEvent *event)
-{
- Q_D(QQuickRangeSlider);
- QQuickControl::hoverLeaveEvent(event);
- d->first->setHovered(false);
- d->second->setHovered(false);
-}
-
-void QQuickRangeSlider::keyReleaseEvent(QKeyEvent *event)
-{
- Q_D(QQuickRangeSlider);
- QQuickControl::keyReleaseEvent(event);
- d->first->setPressed(false);
- d->second->setPressed(false);
-}
-
-void QQuickRangeSlider::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickRangeSlider);
- QQuickControl::mousePressEvent(event);
- d->handleMove(event->position(), event->timestamp());
- setKeepMouseGrab(true);
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickRangeSlider::touchEvent(QTouchEvent *event)
-{
- Q_D(QQuickRangeSlider);
- switch (event->type()) {
- case QEvent::TouchUpdate:
- for (const QTouchEvent::TouchPoint &point : event->points()) {
- if (!d->acceptTouch(point))
- continue;
-
- switch (point.state()) {
- case QEventPoint::Pressed:
- d->handlePress(point.position(), event->timestamp());
- break;
- case QEventPoint::Updated:
- if (!keepTouchGrab()) {
- if (d->orientation == Qt::Horizontal)
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().x() - point.pressPosition().x(), Qt::XAxis, &point, qRound(d->touchDragThreshold)));
- else
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().y() - point.pressPosition().y(), Qt::YAxis, &point, qRound(d->touchDragThreshold)));
- }
- if (keepTouchGrab())
- d->handleMove(point.position(), event->timestamp());
- break;
- case QEventPoint::Released:
- d->handleRelease(point.position(), event->timestamp());
- break;
- default:
- break;
- }
- }
- break;
-
- default:
- QQuickControl::touchEvent(event);
- break;
- }
-}
-#endif
-
-void QQuickRangeSlider::mirrorChange()
-{
- Q_D(QQuickRangeSlider);
- QQuickControl::mirrorChange();
- emit d->first->visualPositionChanged();
- emit d->second->visualPositionChanged();
-}
-
-void QQuickRangeSlider::classBegin()
-{
- Q_D(QQuickRangeSlider);
- QQuickControl::classBegin();
-
- QQmlContext *context = qmlContext(this);
- if (context) {
- QQmlEngine::setContextForObject(d->first, context);
- QQmlEngine::setContextForObject(d->second, context);
- }
-}
-
-void QQuickRangeSlider::componentComplete()
-{
- Q_D(QQuickRangeSlider);
- QQuickRangeSliderNodePrivate *firstPrivate = QQuickRangeSliderNodePrivate::get(d->first);
- QQuickRangeSliderNodePrivate *secondPrivate = QQuickRangeSliderNodePrivate::get(d->second);
- firstPrivate->executeHandle(true);
- secondPrivate->executeHandle(true);
-
- QQuickControl::componentComplete();
-
- if (firstPrivate->isPendingValue || secondPrivate->isPendingValue
- || !qFuzzyCompare(d->from, defaultFrom) || !qFuzzyCompare(d->to, defaultTo)) {
- // Properties were set while we were loading. To avoid clamping issues that occur when setting the
- // values of first and second overriding values set by the user, set them all at once at the end.
- // Another reason that we must set these values here is that the from and to values might have made the old range invalid.
- setValues(firstPrivate->isPendingValue ? firstPrivate->pendingValue : firstPrivate->value,
- secondPrivate->isPendingValue ? secondPrivate->pendingValue : secondPrivate->value);
-
- firstPrivate->pendingValue = 0;
- firstPrivate->isPendingValue = false;
- secondPrivate->pendingValue = 0;
- secondPrivate->isPendingValue = false;
- } else {
- // If there was no pending data, we must still update the positions,
- // as first.setValue()/second.setValue() won't be called as part of default construction.
- // Don't need to ignore the second position when updating the first position here,
- // as our default values are guaranteed to be valid.
- firstPrivate->updatePosition();
- secondPrivate->updatePosition();
- }
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::RangeSlider::first.increase()
-
- Increases the value of the handle by stepSize, or \c 0.1 if stepSize is not defined.
-
- \sa first
-*/
-
-/*!
- \qmlmethod void QtQuick.Controls::RangeSlider::first.decrease()
-
- Decreases the value of the handle by stepSize, or \c 0.1 if stepSize is not defined.
-
- \sa first
-*/
-
-/*!
- \qmlmethod void QtQuick.Controls::RangeSlider::second.increase()
-
- Increases the value of the handle by stepSize, or \c 0.1 if stepSize is not defined.
-
- \sa second
-*/
-
-/*!
- \qmlmethod void QtQuick.Controls::RangeSlider::second.decrease()
-
- Decreases the value of the handle by stepSize, or \c 0.1 if stepSize is not defined.
-
- \sa second
-*/
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickRangeSlider::accessibleRole() const
-{
- return QAccessible::Slider;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickrangeslider_p.h b/src/quicktemplates2/qquickrangeslider_p.h
deleted file mode 100644
index d767228e..00000000
--- a/src/quicktemplates2/qquickrangeslider_p.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKRANGESLIDER_P_H
-#define QQUICKRANGESLIDER_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickRangeSliderPrivate;
-class QQuickRangeSliderNode;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickRangeSlider : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged FINAL)
- Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged FINAL)
- Q_PROPERTY(QQuickRangeSliderNode *first READ first CONSTANT FINAL)
- Q_PROPERTY(QQuickRangeSliderNode *second READ second CONSTANT FINAL)
- Q_PROPERTY(qreal stepSize READ stepSize WRITE setStepSize NOTIFY stepSizeChanged FINAL)
- Q_PROPERTY(SnapMode snapMode READ snapMode WRITE setSnapMode NOTIFY snapModeChanged FINAL)
- Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged FINAL)
- // 2.2 (Qt 5.9)
- Q_PROPERTY(bool live READ live WRITE setLive NOTIFY liveChanged FINAL REVISION(2, 2))
- Q_PROPERTY(bool horizontal READ isHorizontal NOTIFY orientationChanged FINAL REVISION(2, 3))
- // 2.3 (Qt 5.10)
- Q_PROPERTY(bool vertical READ isVertical NOTIFY orientationChanged FINAL REVISION(2, 3))
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal touchDragThreshold READ touchDragThreshold WRITE setTouchDragThreshold RESET resetTouchDragThreshold NOTIFY touchDragThresholdChanged FINAL REVISION(2, 5))
- QML_NAMED_ELEMENT(RangeSlider)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickRangeSlider(QQuickItem *parent = nullptr);
- ~QQuickRangeSlider();
-
- qreal from() const;
- void setFrom(qreal from);
-
- qreal to() const;
- void setTo(qreal to);
-
- QQuickRangeSliderNode *first() const;
- QQuickRangeSliderNode *second() const;
-
- qreal stepSize() const;
- void setStepSize(qreal step);
-
- enum SnapMode {
- NoSnap,
- SnapAlways,
- SnapOnRelease
- };
- Q_ENUM(SnapMode)
-
- SnapMode snapMode() const;
- void setSnapMode(SnapMode mode);
-
- Qt::Orientation orientation() const;
- void setOrientation(Qt::Orientation orientation);
-
- Q_INVOKABLE void setValues(qreal firstValue, qreal secondValue);
-
- // 2.2 (Qt 5.9)
- bool live() const;
- void setLive(bool live);
-
- // 2.3 (Qt 5.10)
- bool isHorizontal() const;
- bool isVertical() const;
-
- // 2.5 (Qt 5.12)
- qreal touchDragThreshold() const;
- void setTouchDragThreshold(qreal touchDragThreshold);
- void resetTouchDragThreshold();
- Q_REVISION(2, 5) Q_INVOKABLE qreal valueAt(qreal position) const;
-
-Q_SIGNALS:
- void fromChanged();
- void toChanged();
- void stepSizeChanged();
- void snapModeChanged();
- void orientationChanged();
- // 2.2 (Qt 5.9)
- Q_REVISION(2, 2) void liveChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void touchDragThresholdChanged();
-
-protected:
- void focusInEvent(QFocusEvent *event) override;
- void hoverEnterEvent(QHoverEvent *event) override;
- void hoverMoveEvent(QHoverEvent *event) override;
- void hoverLeaveEvent(QHoverEvent *event) override;
- void keyPressEvent(QKeyEvent *event) override;
- void keyReleaseEvent(QKeyEvent *event) override;
- void mousePressEvent(QMouseEvent *event) override;
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
-#endif
- void mirrorChange() override;
- void classBegin() override;
- void componentComplete() override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- friend class QQuickRangeSliderNode;
-
- Q_DISABLE_COPY(QQuickRangeSlider)
- Q_DECLARE_PRIVATE(QQuickRangeSlider)
-};
-
-class QQuickRangeSliderNodePrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickRangeSliderNode : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY valueChanged FINAL)
- Q_PROPERTY(qreal position READ position NOTIFY positionChanged FINAL)
- Q_PROPERTY(qreal visualPosition READ visualPosition NOTIFY visualPositionChanged FINAL)
- Q_PROPERTY(QQuickItem *handle READ handle WRITE setHandle NOTIFY handleChanged FINAL)
- Q_PROPERTY(bool pressed READ isPressed WRITE setPressed NOTIFY pressedChanged FINAL)
- // 2.1 (Qt 5.8)
- Q_PROPERTY(bool hovered READ isHovered WRITE setHovered NOTIFY hoveredChanged FINAL REVISION(2, 1))
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal implicitHandleWidth READ implicitHandleWidth NOTIFY implicitHandleWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitHandleHeight READ implicitHandleHeight NOTIFY implicitHandleHeightChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "handle")
- QML_ANONYMOUS
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickRangeSliderNode(qreal value, QQuickRangeSlider *slider);
- ~QQuickRangeSliderNode();
-
- qreal value() const;
- void setValue(qreal value);
-
- qreal position() const;
- qreal visualPosition() const;
-
- QQuickItem *handle() const;
- void setHandle(QQuickItem *handle);
-
- bool isPressed() const;
- void setPressed(bool pressed);
-
- // 2.1 (Qt 5.8)
- bool isHovered() const;
- void setHovered(bool hovered);
-
- // 2.5 (Qt 5.12)
- qreal implicitHandleWidth() const;
- qreal implicitHandleHeight() const;
-
-public Q_SLOTS:
- void increase();
- void decrease();
-
-Q_SIGNALS:
- void valueChanged();
- void positionChanged();
- void visualPositionChanged();
- void handleChanged();
- void pressedChanged();
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) void hoveredChanged();
- // 2.5 (Qt 5.12)
- /*Q_REVISION(2, 5)*/ void moved();
- /*Q_REVISION(2, 5)*/ void implicitHandleWidthChanged();
- /*Q_REVISION(2, 5)*/ void implicitHandleHeightChanged();
-
-private:
- Q_DISABLE_COPY(QQuickRangeSliderNode)
- Q_DECLARE_PRIVATE(QQuickRangeSliderNode)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickRangeSlider)
-
-#endif // QQUICKRANGESLIDER_P_H
diff --git a/src/quicktemplates2/qquickroundbutton.cpp b/src/quicktemplates2/qquickroundbutton.cpp
deleted file mode 100644
index 05eb53b0..00000000
--- a/src/quicktemplates2/qquickroundbutton.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickroundbutton_p.h"
-
-#include <QtQuickTemplates2/private/qquickbutton_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype RoundButton
- \inherits Button
-//! \instantiates QQuickRoundButton
- \inqmlmodule QtQuick.Controls
- \since 5.8
- \ingroup qtquickcontrols2-buttons
- \brief A push-button control with rounded corners that can be clicked by the user.
-
- \image qtquickcontrols2-roundbutton.png
-
- RoundButton is identical to \l Button, except that it has a \l radius property
- which allows the corners to be rounded without having to customize the
- \l background.
-
- \snippet qtquickcontrols2-roundbutton.qml 1
-
- \sa {Customizing RoundButton}, {Button Controls}
-*/
-
-class QQuickRoundButtonPrivate : public QQuickButtonPrivate
-{
- Q_DECLARE_PUBLIC(QQuickRoundButton)
-
-public:
- void setRadius(qreal newRadius = -1.0);
-
- qreal radius = 0;
- bool explicitRadius = false;
-};
-
-void QQuickRoundButtonPrivate::setRadius(qreal newRadius)
-{
- Q_Q(QQuickRoundButton);
- const qreal oldRadius = radius;
- if (newRadius < 0)
- radius = qMax<qreal>(0, qMin<qreal>(width, height) / 2);
- else
- radius = newRadius;
-
- if (!qFuzzyCompare(radius, oldRadius))
- emit q->radiusChanged();
-}
-
-QQuickRoundButton::QQuickRoundButton(QQuickItem *parent)
- : QQuickButton(*(new QQuickRoundButtonPrivate), parent)
-{
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::RoundButton::radius
-
- This property holds the radius of the button.
-
- To create a relatively square button that has slightly rounded corners,
- use a small value, such as \c 3.
-
- To create a completely circular button (the default), use a value that is
- equal to half of the width or height of the button, and make the button's
- width and height identical.
-
- To reset this property back to the default value, set its value to
- \c undefined.
-*/
-qreal QQuickRoundButton::radius() const
-{
- Q_D(const QQuickRoundButton);
- return d->radius;
-}
-
-void QQuickRoundButton::setRadius(qreal radius)
-{
- Q_D(QQuickRoundButton);
- d->explicitRadius = true;
- d->setRadius(radius);
-}
-
-void QQuickRoundButton::resetRadius()
-{
- Q_D(QQuickRoundButton);
- d->explicitRadius = false;
- d->setRadius();
-}
-
-void QQuickRoundButton::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickRoundButton);
- QQuickControl::geometryChange(newGeometry, oldGeometry);
- if (!d->explicitRadius)
- d->setRadius();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickroundbutton_p.h b/src/quicktemplates2/qquickroundbutton_p.h
deleted file mode 100644
index fdd46cf8..00000000
--- a/src/quicktemplates2/qquickroundbutton_p.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKROUNDBUTTON_P_H
-#define QQUICKROUNDBUTTON_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickbutton_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickRoundButtonPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickRoundButton : public QQuickButton
-{
- Q_OBJECT
- Q_PROPERTY(qreal radius READ radius WRITE setRadius RESET resetRadius NOTIFY radiusChanged FINAL)
- QML_NAMED_ELEMENT(RoundButton)
- QML_ADDED_IN_VERSION(2, 1)
-
-public:
- explicit QQuickRoundButton(QQuickItem *parent = nullptr);
-
- qreal radius() const;
- void setRadius(qreal radius);
- void resetRadius();
-
-Q_SIGNALS:
- void radiusChanged();
-
-protected:
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
-
-private:
- Q_DISABLE_COPY(QQuickRoundButton)
- Q_DECLARE_PRIVATE(QQuickRoundButton)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickRoundButton)
-
-#endif // QQUICKROUNDBUTTON_P_H
diff --git a/src/quicktemplates2/qquickscrollbar.cpp b/src/quicktemplates2/qquickscrollbar.cpp
deleted file mode 100644
index 9d62611e..00000000
--- a/src/quicktemplates2/qquickscrollbar.cpp
+++ /dev/null
@@ -1,1258 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickscrollbar_p.h"
-#include "qquickscrollbar_p_p.h"
-#include "qquickscrollview_p.h"
-
-#include <QtQml/qqmlinfo.h>
-#include <QtQuick/private/qquickflickable_p.h>
-#if QT_CONFIG(accessibility)
-#include <QtQuick/private/qquickaccessibleattached_p.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ScrollBar
- \inherits Control
-//! \instantiates QQuickScrollBar
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-indicators
- \brief Vertical or horizontal interactive scroll bar.
-
- \image qtquickcontrols2-scrollbar.gif
-
- ScrollBar is an interactive bar that can be used to scroll to a specific
- position. A scroll bar can be either \l vertical or \l horizontal, and can
- be attached to any \l Flickable, such as \l ListView and \l GridView.
-
- \code
- Flickable {
- // ...
- ScrollBar.vertical: ScrollBar { }
- }
- \endcode
-
- \section1 Attaching ScrollBar to a Flickable
-
- When ScrollBar is attached \l {ScrollBar::vertical}{vertically} or
- \l {ScrollBar::horizontal}{horizontally} to a Flickable, its geometry and
- the following properties are automatically set and updated as appropriate:
-
- \list
- \li \l orientation
- \li \l position
- \li \l size
- \li \l active
- \endlist
-
- An attached ScrollBar re-parents itself to the target Flickable. A vertically
- attached ScrollBar resizes itself to the height of the Flickable, and positions
- itself to either side of it based on the \l {Control::mirrored}{layout direction}.
- A horizontally attached ScrollBar resizes itself to the width of the Flickable,
- and positions itself to the bottom. The automatic geometry management can be disabled
- by specifying another parent for the attached ScrollBar. This can be useful, for
- example, if the ScrollBar should be placed outside a clipping Flickable. This is
- demonstrated by the following example:
-
- \code
- Flickable {
- id: flickable
- clip: true
- // ...
- ScrollBar.vertical: ScrollBar {
- parent: flickable.parent
- anchors.top: flickable.top
- anchors.left: flickable.right
- anchors.bottom: flickable.bottom
- }
- }
- \endcode
-
- Notice that ScrollBar does not filter key events of the Flickable it is
- attached to. The following example illustrates how to implement scrolling
- with up and down keys:
-
- \code
- Flickable {
- focus: true
-
- Keys.onUpPressed: scrollBar.decrease()
- Keys.onDownPressed: scrollBar.increase()
-
- ScrollBar.vertical: ScrollBar { id: scrollBar }
- }
- \endcode
-
- \section1 Binding the Active State of Horizontal and Vertical Scroll Bars
-
- Horizontal and vertical scroll bars do not share the \l active state with
- each other by default. In order to keep both bars visible whilst scrolling
- to either direction, establish a two-way binding between the active states
- as presented by the following example:
-
- \snippet qtquickcontrols2-scrollbar-active.qml 1
-
- \section1 Non-attached Scroll Bars
-
- It is possible to create an instance of ScrollBar without using the
- attached property API. This is useful when the behavior of the attached
- scroll bar is not sufficient or a \l Flickable is not in use. In the
- following example, horizontal and vertical scroll bars are used to
- scroll over the text without using \l Flickable:
-
- \snippet qtquickcontrols2-scrollbar-non-attached.qml 1
-
- \image qtquickcontrols2-scrollbar-non-attached.png
-
- When using a non-attached ScrollBar, the following must be done manually:
-
- \list
- \li Layout the scroll bar (with the \l {Item::}{x} and \l {Item::}{y} or
- \l {Item::}{anchors} property, for example).
- \li Set the \l size and \l position properties to determine the size and position
- of the scroll bar in relation to the scrolled item.
- \li Set the \l active property to determine when the scroll bar will be
- visible.
- \endlist
-
- \sa ScrollIndicator, {Customizing ScrollBar}, {Indicator Controls}
-*/
-
-static const QQuickItemPrivate::ChangeTypes changeTypes = QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed;
-static const QQuickItemPrivate::ChangeTypes horizontalChangeTypes = changeTypes | QQuickItemPrivate::ImplicitHeight;
-static const QQuickItemPrivate::ChangeTypes verticalChangeTypes = changeTypes | QQuickItemPrivate::ImplicitWidth;
-
-QQuickScrollBarPrivate::VisualArea QQuickScrollBarPrivate::visualArea() const
-{
- qreal visualPos = position;
- if (minimumSize > size)
- visualPos = position / (1.0 - size) * (1.0 - minimumSize);
-
- qreal visualSize = qBound<qreal>(0, qMax(size, minimumSize) + qMin<qreal>(0, visualPos), 1.0 - visualPos);
-
- visualPos = qBound<qreal>(0, visualPos, 1.0 - visualSize);
-
- return VisualArea(visualPos, visualSize);
-}
-
-qreal QQuickScrollBarPrivate::logicalPosition(qreal position) const
-{
- if (minimumSize > size)
- return position * (1.0 - size) / (1.0 - minimumSize);
- return position;
-}
-
-qreal QQuickScrollBarPrivate::snapPosition(qreal position) const
-{
- const qreal effectiveStep = stepSize * (1.0 - size);
- if (qFuzzyIsNull(effectiveStep))
- return position;
-
- return qRound(position / effectiveStep) * effectiveStep;
-}
-
-qreal QQuickScrollBarPrivate::positionAt(const QPointF &point) const
-{
- Q_Q(const QQuickScrollBar);
- if (orientation == Qt::Horizontal)
- return logicalPosition(point.x() - q->leftPadding()) / q->availableWidth();
- else
- return logicalPosition(point.y() - q->topPadding()) / q->availableHeight();
-}
-
-void QQuickScrollBarPrivate::setInteractive(bool enabled)
-{
- Q_Q(QQuickScrollBar);
- if (interactive == enabled)
- return;
-
- interactive = enabled;
- if (interactive) {
- q->setAcceptedMouseButtons(Qt::LeftButton);
-#if QT_CONFIG(quicktemplates2_multitouch)
- q->setAcceptTouchEvents(true);
-#endif
-#if QT_CONFIG(cursor)
- q->setCursor(Qt::ArrowCursor);
-#endif
- } else {
- q->setAcceptedMouseButtons(Qt::NoButton);
-#if QT_CONFIG(quicktemplates2_multitouch)
- q->setAcceptTouchEvents(false);
-#endif
-#if QT_CONFIG(cursor)
- q->unsetCursor();
-#endif
- q->ungrabMouse();
- }
- emit q->interactiveChanged();
-}
-
-void QQuickScrollBarPrivate::updateActive()
-{
- Q_Q(QQuickScrollBar);
-#if QT_CONFIG(quicktemplates2_hover)
- bool hover = hovered;
-#else
- bool hover = false;
-#endif
- q->setActive(moving || (interactive && (pressed || hover)));
-}
-
-void QQuickScrollBarPrivate::resizeContent()
-{
- Q_Q(QQuickScrollBar);
- if (!contentItem)
- return;
-
- // - negative overshoot (pos < 0): clamp the pos to 0, and deduct the overshoot from the size
- // - positive overshoot (pos + size > 1): clamp the size to 1-pos
- const VisualArea visual = visualArea();
-
- if (orientation == Qt::Horizontal) {
- contentItem->setPosition(QPointF(q->leftPadding() + visual.position * q->availableWidth(), q->topPadding()));
- contentItem->setSize(QSizeF(q->availableWidth() * visual.size, q->availableHeight()));
- } else {
- contentItem->setPosition(QPointF(q->leftPadding(), q->topPadding() + visual.position * q->availableHeight()));
- contentItem->setSize(QSizeF(q->availableWidth(), q->availableHeight() * visual.size));
- }
-}
-
-void QQuickScrollBarPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_Q(QQuickScrollBar);
- QQuickControlPrivate::itemImplicitWidthChanged(item);
- QQuickIndicatorButton *indicatorButton = q->decreaseVisual();
- if (!indicatorButton || item != indicatorButton->indicator()) {
- indicatorButton = q->increaseVisual();
- if (!indicatorButton || item != indicatorButton->indicator())
- return;
- }
- if (indicatorButton)
- emit indicatorButton->implicitIndicatorWidthChanged();
-}
-
-void QQuickScrollBarPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_Q(QQuickScrollBar);
- QQuickControlPrivate::itemImplicitHeightChanged(item);
- QQuickIndicatorButton *indicatorButton = q->decreaseVisual();
- if (!indicatorButton || item != indicatorButton->indicator()) {
- indicatorButton = q->increaseVisual();
- if (!indicatorButton || item != indicatorButton->indicator())
- return;
- }
- if (indicatorButton)
- emit indicatorButton->implicitIndicatorHeightChanged();
-}
-
-void QQuickScrollBarPrivate::handlePress(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickScrollBar);
- QQuickControlPrivate::handlePress(point, timestamp);
- if (QQuickIndicatorButton *indicatorButton = q->decreaseVisual()) {
- QQuickItem *decreaseArrow = indicatorButton->indicator();
- if (decreaseArrow && decreaseArrow->contains(q->mapToItem(decreaseArrow, point + QPointF(0.5, 0.5)))) {
- indicatorButton->setPressed(true);
- q->decrease();
- return;
- }
- }
-
- if (QQuickIndicatorButton *increaseObject = q->increaseVisual()) {
- QQuickItem *increaseArrow = increaseObject->indicator();
- if (increaseArrow && increaseArrow->contains(q->mapToItem(increaseArrow, point + QPointF(0.5, 0.5)))) {
- increaseObject->setPressed(true);
- q->increase();
- return;
- }
- }
-
- offset = positionAt(point) - position;
- qreal sz = qMax(size, logicalPosition(minimumSize));
- if (offset < 0 || offset > sz)
- offset = sz / 2;
- q->setPressed(true);
-}
-
-void QQuickScrollBarPrivate::handleMove(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickScrollBar);
- QQuickControlPrivate::handleMove(point, timestamp);
-
- /*
- * handleMove() will be called as soon as you hold the mouse button down *anywhere* on the
- * ScrollBar, including the increase/decrease button indicator areas. So without the following
- * early return, it would move the scrollbar handle to one of its extremeties. That would
- * ruin the behavior we would like when clicking e.g. the "increase button": To step the
- * scrollbar gently.
- */
- if (!pressed)
- return;
-
- qreal pos = qBound<qreal>(0.0, positionAt(point) - offset, 1.0 - size);
- if (snapMode == QQuickScrollBar::SnapAlways)
- pos = snapPosition(pos);
- q->setPosition(pos);
-}
-
-void QQuickScrollBarPrivate::handleRelease(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickScrollBar);
- QQuickControlPrivate::handleRelease(point, timestamp);
-
- if (orientation == Qt::Vertical) {
- if (point.y() < q->topPadding() || point.y() >= (q->height() - q->bottomPadding()))
- return;
- } else /* orientation == Qt::Horizontal */{
- if (point.x() < q->leftPadding() || point.x() >= (q->width() - q->rightPadding()))
- return;
- }
-
- qreal pos = qBound<qreal>(0.0, positionAt(point) - offset, 1.0 - size);
- if (snapMode != QQuickScrollBar::NoSnap)
- pos = snapPosition(pos);
- q->setPosition(pos);
- offset = 0.0;
- q->setPressed(false);
-}
-
-void QQuickScrollBarPrivate::handleUngrab()
-{
- Q_Q(QQuickScrollBar);
- QQuickControlPrivate::handleUngrab();
- offset = 0.0;
- q->setPressed(false);
-}
-
-void QQuickScrollBarPrivate::visualAreaChange(const VisualArea &newVisualArea, const VisualArea &oldVisualArea)
-{
- Q_Q(QQuickScrollBar);
- if (!qFuzzyCompare(newVisualArea.size, oldVisualArea.size))
- emit q->visualSizeChanged();
- if (!qFuzzyCompare(newVisualArea.position, oldVisualArea.position))
- emit q->visualPositionChanged();
-}
-
-void QQuickScrollBarPrivate::updateHover(const QPointF &pos, std::optional<bool> newHoverState)
-{
- Q_Q(QQuickScrollBar);
- auto updateHoverOnButton = [&](QQuickIndicatorButton *sbButton) {
- if (sbButton) {
- bool hovered = newHoverState.value_or(false);
- if (!newHoverState.has_value()) {
- if (QQuickItem *indicator = sbButton->indicator())
- hovered = indicator->contains(q->mapToItem(indicator, pos));
- }
- sbButton->setHovered(hovered);
- }
- };
- updateHoverOnButton(q->decreaseVisual());
- updateHoverOnButton(q->increaseVisual());
-}
-
-QQuickScrollBar::QQuickScrollBar(QQuickItem *parent)
- : QQuickControl(*(new QQuickScrollBarPrivate), parent)
-{
- Q_D(QQuickScrollBar);
- d->decreaseVisual = new QQuickIndicatorButton(this);
- d->increaseVisual = new QQuickIndicatorButton(this);
- setKeepMouseGrab(true);
- setAcceptedMouseButtons(Qt::LeftButton);
-#if QT_CONFIG(quicktemplates2_multitouch)
- setAcceptTouchEvents(true);
-#endif
-#if QT_CONFIG(cursor)
- setCursor(Qt::ArrowCursor);
-#endif
-}
-
-QQuickScrollBarAttached *QQuickScrollBar::qmlAttachedProperties(QObject *object)
-{
- return new QQuickScrollBarAttached(object);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::ScrollBar::size
-
- This property holds the size of the scroll bar, scaled to \c {0.0 - 1.0}.
-
- \sa {Flickable::visibleArea.heightRatio}{Flickable::visibleArea}
-
- This property is automatically set when the scroll bar is
- \l {Attaching ScrollBar to a Flickable}{attached to a flickable}.
-
- \sa minimumSize, visualSize
-*/
-qreal QQuickScrollBar::size() const
-{
- Q_D(const QQuickScrollBar);
- return d->size;
-}
-
-void QQuickScrollBar::setSize(qreal size)
-{
- Q_D(QQuickScrollBar);
- if (qFuzzyCompare(d->size, size))
- return;
-
- auto oldVisualArea = d->visualArea();
- d->size = size;
- if (isComponentComplete())
- d->resizeContent();
- emit sizeChanged();
- d->visualAreaChange(d->visualArea(), oldVisualArea);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::ScrollBar::position
-
- This property holds the position of the scroll bar, scaled to \c {0.0 - 1.0}.
-
- \sa {Flickable::visibleArea.yPosition}{Flickable::visibleArea}
-
- This property is automatically set when the scroll bar is
- \l {Attaching ScrollBar to a Flickable}{attached to a flickable}.
-
- \sa visualPosition
-*/
-qreal QQuickScrollBar::position() const
-{
- Q_D(const QQuickScrollBar);
- return d->position;
-}
-
-void QQuickScrollBar::setPosition(qreal position)
-{
- Q_D(QQuickScrollBar);
- if (qFuzzyCompare(d->position, position))
- return;
-
- auto oldVisualArea = d->visualArea();
- d->position = position;
- if (isComponentComplete())
- d->resizeContent();
- emit positionChanged();
- d->visualAreaChange(d->visualArea(), oldVisualArea);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::ScrollBar::stepSize
-
- This property holds the step size. The default value is \c 0.0.
-
- \sa snapMode, increase(), decrease()
-*/
-qreal QQuickScrollBar::stepSize() const
-{
- Q_D(const QQuickScrollBar);
- return d->stepSize;
-}
-
-void QQuickScrollBar::setStepSize(qreal step)
-{
- Q_D(QQuickScrollBar);
- if (qFuzzyCompare(d->stepSize, step))
- return;
-
- d->stepSize = step;
- emit stepSizeChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::ScrollBar::active
-
- This property holds whether the scroll bar is active, i.e. when it's \l pressed
- or the attached Flickable is \l {Flickable::moving}{moving}.
-
- It is possible to keep \l {Binding the Active State of Horizontal and Vertical Scroll Bars}
- {both horizontal and vertical bars visible} while scrolling in either direction.
-
- This property is automatically set when the scroll bar is
- \l {Attaching ScrollBar to a Flickable}{attached to a flickable}.
-*/
-bool QQuickScrollBar::isActive() const
-{
- Q_D(const QQuickScrollBar);
- return d->active;
-}
-
-void QQuickScrollBar::setActive(bool active)
-{
- Q_D(QQuickScrollBar);
- if (d->active == active)
- return;
-
- d->active = active;
- emit activeChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::ScrollBar::pressed
-
- This property holds whether the scroll bar is pressed.
-*/
-bool QQuickScrollBar::isPressed() const
-{
- Q_D(const QQuickScrollBar);
- return d->pressed;
-}
-
-void QQuickScrollBar::setPressed(bool pressed)
-{
- Q_D(QQuickScrollBar);
- if (!pressed) {
- if (QQuickIndicatorButton *button = decreaseVisual())
- button->setPressed(false);
- if (QQuickIndicatorButton *button = increaseVisual())
- button->setPressed(false);
- }
- if (d->pressed == pressed)
- return;
-
- d->pressed = pressed;
- setAccessibleProperty("pressed", pressed);
- d->updateActive();
- emit pressedChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::ScrollBar::orientation
-
- This property holds the orientation of the scroll bar.
-
- Possible values:
- \value Qt.Horizontal Horizontal
- \value Qt.Vertical Vertical (default)
-
- This property is automatically set when the scroll bar is
- \l {Attaching ScrollBar to a Flickable}{attached to a flickable}.
-
- \sa horizontal, vertical
-*/
-Qt::Orientation QQuickScrollBar::orientation() const
-{
- Q_D(const QQuickScrollBar);
- return d->orientation;
-}
-
-void QQuickScrollBar::setOrientation(Qt::Orientation orientation)
-{
- Q_D(QQuickScrollBar);
- if (d->orientation == orientation)
- return;
-
- d->orientation = orientation;
- if (isComponentComplete())
- d->resizeContent();
- emit orientationChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty enumeration QtQuick.Controls::ScrollBar::snapMode
-
- This property holds the snap mode.
-
- Possible values:
- \value ScrollBar.NoSnap The scrollbar does not snap (default).
- \value ScrollBar.SnapAlways The scrollbar snaps while dragged.
- \value ScrollBar.SnapOnRelease The scrollbar does not snap while being dragged, but only after released.
-
- In the following table, the various modes are illustrated with animations.
- The movement and the \l stepSize (\c 0.25) are identical in each animation.
-
- \table
- \header
- \row \li \b Value \li \b Example
- \row \li \c ScrollBar.NoSnap \li \image qtquickcontrols2-scrollbar-nosnap.gif
- \row \li \c ScrollBar.SnapAlways \li \image qtquickcontrols2-scrollbar-snapalways.gif
- \row \li \c ScrollBar.SnapOnRelease \li \image qtquickcontrols2-scrollbar-snaponrelease.gif
- \endtable
-
- \sa stepSize
-*/
-QQuickScrollBar::SnapMode QQuickScrollBar::snapMode() const
-{
- Q_D(const QQuickScrollBar);
- return d->snapMode;
-}
-
-void QQuickScrollBar::setSnapMode(SnapMode mode)
-{
- Q_D(QQuickScrollBar);
- if (d->snapMode == mode)
- return;
-
- d->snapMode = mode;
- emit snapModeChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty bool QtQuick.Controls::ScrollBar::interactive
-
- This property holds whether the scroll bar is interactive. The default value is \c true.
-
- A non-interactive scroll bar is visually and behaviorally similar to \l ScrollIndicator.
- This property is useful for switching between typical mouse- and touch-orientated UIs
- with interactive and non-interactive scroll bars, respectively.
-*/
-bool QQuickScrollBar::isInteractive() const
-{
- Q_D(const QQuickScrollBar);
- return d->interactive;
-}
-
-void QQuickScrollBar::setInteractive(bool interactive)
-{
- Q_D(QQuickScrollBar);
- d->explicitInteractive = true;
- d->setInteractive(interactive);
-}
-
-void QQuickScrollBar::resetInteractive()
-{
- Q_D(QQuickScrollBar);
- d->explicitInteractive = false;
- d->setInteractive(true);
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty enumeration QtQuick.Controls::ScrollBar::policy
-
- This property holds the policy of the scroll bar. The default policy is \c ScrollBar.AsNeeded.
-
- Possible values:
- \value ScrollBar.AsNeeded The scroll bar is only shown when the content is too large to fit.
- \value ScrollBar.AlwaysOff The scroll bar is never shown.
- \value ScrollBar.AlwaysOn The scroll bar is always shown.
-
- The following example keeps the vertical scroll bar always visible:
-
- \snippet qtquickcontrols2-scrollbar-policy.qml 1
-*/
-QQuickScrollBar::Policy QQuickScrollBar::policy() const
-{
- Q_D(const QQuickScrollBar);
- return d->policy;
-}
-
-void QQuickScrollBar::setPolicy(Policy policy)
-{
- Q_D(QQuickScrollBar);
- if (d->policy == policy)
- return;
-
- d->policy = policy;
- emit policyChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::ScrollBar::horizontal
- \readonly
-
- This property holds whether the scroll bar is horizontal.
-
- \sa orientation
-*/
-bool QQuickScrollBar::isHorizontal() const
-{
- Q_D(const QQuickScrollBar);
- return d->orientation == Qt::Horizontal;
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::ScrollBar::vertical
- \readonly
-
- This property holds whether the scroll bar is vertical.
-
- \sa orientation
-*/
-bool QQuickScrollBar::isVertical() const
-{
- Q_D(const QQuickScrollBar);
- return d->orientation == Qt::Vertical;
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty real QtQuick.Controls::ScrollBar::minimumSize
-
- This property holds the minimum size of the scroll bar, scaled to \c {0.0 - 1.0}.
-
- \sa size, visualSize, visualPosition
-*/
-qreal QQuickScrollBar::minimumSize() const
-{
- Q_D(const QQuickScrollBar);
- return d->minimumSize;
-}
-
-void QQuickScrollBar::setMinimumSize(qreal minimumSize)
-{
- Q_D(QQuickScrollBar);
- if (qFuzzyCompare(d->minimumSize, minimumSize))
- return;
-
- auto oldVisualArea = d->visualArea();
- d->minimumSize = minimumSize;
- if (isComponentComplete())
- d->resizeContent();
- emit minimumSizeChanged();
- d->visualAreaChange(d->visualArea(), oldVisualArea);
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty real QtQuick.Controls::ScrollBar::visualSize
-
- This property holds the effective visual size of the scroll bar,
- which may be limited by the \l {minimumSize}{minimum size}.
-
- \sa size, minimumSize
-*/
-qreal QQuickScrollBar::visualSize() const
-{
- Q_D(const QQuickScrollBar);
- return d->visualArea().size;
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty real QtQuick.Controls::ScrollBar::visualPosition
-
- This property holds the effective visual position of the scroll bar,
- which may be limited by the \l {minimumSize}{minimum size}.
-
- \sa position, minimumSize
-*/
-qreal QQuickScrollBar::visualPosition() const
-{
- Q_D(const QQuickScrollBar);
- return d->visualArea().position;
-}
-
-QQuickIndicatorButton *QQuickScrollBar::decreaseVisual()
-{
- Q_D(QQuickScrollBar);
- return d->decreaseVisual;
-}
-
-QQuickIndicatorButton *QQuickScrollBar::increaseVisual()
-{
- Q_D(QQuickScrollBar);
- return d->increaseVisual;
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::ScrollBar::increase()
-
- Increases the position by \l stepSize or \c 0.1 if stepSize is \c 0.0.
-
- \sa stepSize
-*/
-void QQuickScrollBar::increase()
-{
- Q_D(QQuickScrollBar);
- qreal step = qFuzzyIsNull(d->stepSize) ? 0.1 : d->stepSize;
- bool wasActive = d->active;
- setActive(true);
- setPosition(qMin<qreal>(1.0 - d->size, d->position + step));
- setActive(wasActive);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::ScrollBar::decrease()
-
- Decreases the position by \l stepSize or \c 0.1 if stepSize is \c 0.0.
-
- \sa stepSize
-*/
-void QQuickScrollBar::decrease()
-{
- Q_D(QQuickScrollBar);
- qreal step = qFuzzyIsNull(d->stepSize) ? 0.1 : d->stepSize;
- bool wasActive = d->active;
- setActive(true);
- setPosition(qMax<qreal>(0.0, d->position - step));
- setActive(wasActive);
-}
-
-void QQuickScrollBar::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickScrollBar);
- QQuickControl::mousePressEvent(event);
- d->handleMove(event->position(), event->timestamp());
-}
-
-#if QT_CONFIG(quicktemplates2_hover)
-void QQuickScrollBar::hoverChange()
-{
- Q_D(QQuickScrollBar);
- d->updateActive();
-}
-
-void QQuickScrollBar::hoverEnterEvent(QHoverEvent *event)
-{
- Q_D(QQuickScrollBar);
- QQuickControl::hoverEnterEvent(event);
- d->updateHover(event->position());
-}
-
-void QQuickScrollBar::hoverMoveEvent(QHoverEvent *event)
-{
- Q_D(QQuickScrollBar);
- QQuickControl::hoverMoveEvent(event);
- d->updateHover(event->position());
-}
-
-void QQuickScrollBar::hoverLeaveEvent(QHoverEvent *event)
-{
- Q_D(QQuickScrollBar);
- QQuickControl::hoverLeaveEvent(event);
-
- d->updateHover(QPoint(), false); //position is not needed when we force it to unhover
-}
-#endif
-
-void QQuickScrollBar::classBegin()
-{
- Q_D(QQuickScrollBar);
- QQuickControl::classBegin();
-
- QQmlContext *context = qmlContext(this);
- if (context) {
- QQmlEngine::setContextForObject(d->decreaseVisual, context);
- QQmlEngine::setContextForObject(d->increaseVisual, context);
- }
-}
-
-void QQuickScrollBar::componentComplete()
-{
- Q_D(QQuickScrollBar);
- QQuickIndicatorButtonPrivate::get(d->decreaseVisual)->executeIndicator(true);
- QQuickIndicatorButtonPrivate::get(d->increaseVisual)->executeIndicator(true);
-
- QQuickControl::componentComplete();
-}
-
-#if QT_CONFIG(accessibility)
-void QQuickScrollBar::accessibilityActiveChanged(bool active)
-{
- QQuickControl::accessibilityActiveChanged(active);
-
- Q_D(QQuickScrollBar);
- if (active) {
- setAccessibleProperty("pressed", d->pressed);
-
- if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this)) {
- connect(accessibleAttached, &QQuickAccessibleAttached::increaseAction, this, &QQuickScrollBar::increase);
- connect(accessibleAttached, &QQuickAccessibleAttached::decreaseAction, this, &QQuickScrollBar::decrease);
- }
- } else {
- if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this)) {
- disconnect(accessibleAttached, &QQuickAccessibleAttached::increaseAction, this, &QQuickScrollBar::increase);
- disconnect(accessibleAttached, &QQuickAccessibleAttached::decreaseAction, this, &QQuickScrollBar::decrease);
- }
- }
-}
-
-QAccessible::Role QQuickScrollBar::accessibleRole() const
-{
- return QAccessible::ScrollBar;
-}
-#endif
-
-void QQuickScrollBarAttachedPrivate::setFlickable(QQuickFlickable *item)
-{
- if (flickable) {
- // NOTE: Use removeItemChangeListener(Geometry) instead of updateOrRemoveGeometryChangeListener(Size).
- // The latter doesn't remove the listener but only resets its types. Thus, it leaves behind a dangling
- // pointer on destruction.
- QQuickItemPrivate::get(flickable)->removeItemChangeListener(this, QQuickItemPrivate::Geometry);
- if (horizontal)
- cleanupHorizontal();
- if (vertical)
- cleanupVertical();
- }
-
- flickable = item;
-
- if (item) {
- QQuickItemPrivate::get(item)->updateOrAddGeometryChangeListener(this, QQuickGeometryChange::Size);
- if (horizontal)
- initHorizontal();
- if (vertical)
- initVertical();
- }
-}
-
-void QQuickScrollBarAttachedPrivate::initHorizontal()
-{
- Q_ASSERT(flickable && horizontal);
-
- connect(flickable, &QQuickFlickable::movingHorizontallyChanged, this, &QQuickScrollBarAttachedPrivate::activateHorizontal);
-
- // TODO: export QQuickFlickableVisibleArea
- QObject *area = flickable->property("visibleArea").value<QObject *>();
- QObject::connect(area, SIGNAL(widthRatioChanged(qreal)), horizontal, SLOT(setSize(qreal)));
- QObject::connect(area, SIGNAL(xPositionChanged(qreal)), horizontal, SLOT(setPosition(qreal)));
-
- // ensure that the ScrollBar is stacked above the Flickable in a ScrollView
- QQuickItem *parent = horizontal->parentItem();
- if (parent && parent == flickable->parentItem())
- horizontal->stackAfter(flickable);
-
- layoutHorizontal();
- horizontal->setSize(area->property("widthRatio").toReal());
- horizontal->setPosition(area->property("xPosition").toReal());
-}
-
-void QQuickScrollBarAttachedPrivate::initVertical()
-{
- Q_ASSERT(flickable && vertical);
-
- connect(flickable, &QQuickFlickable::movingVerticallyChanged, this, &QQuickScrollBarAttachedPrivate::activateVertical);
-
- // TODO: export QQuickFlickableVisibleArea
- QObject *area = flickable->property("visibleArea").value<QObject *>();
- QObject::connect(area, SIGNAL(heightRatioChanged(qreal)), vertical, SLOT(setSize(qreal)));
- QObject::connect(area, SIGNAL(yPositionChanged(qreal)), vertical, SLOT(setPosition(qreal)));
-
- // ensure that the ScrollBar is stacked above the Flickable in a ScrollView
- QQuickItem *parent = vertical->parentItem();
- if (parent && parent == flickable->parentItem())
- vertical->stackAfter(flickable);
-
- layoutVertical();
- vertical->setSize(area->property("heightRatio").toReal());
- vertical->setPosition(area->property("yPosition").toReal());
-}
-
-void QQuickScrollBarAttachedPrivate::cleanupHorizontal()
-{
- Q_ASSERT(flickable && horizontal);
-
- QQuickControlPrivate::hideOldItem(horizontal);
- // ScrollBar.qml has a binding to visible and ScrollView.qml has a binding to parent.
- // If we just set visible to false and parent to null, these bindings will overwrite
- // them upon component completion as part of the binding evaluation.
- // That's why we remove the binding completely.
- const QQmlProperty visibleProperty(horizontal, QStringLiteral("visible"));
- const QQmlProperty parentProperty(horizontal, QStringLiteral("parent"));
- QQmlPropertyPrivate::removeBinding(visibleProperty);
- QQmlPropertyPrivate::removeBinding(parentProperty);
-
- disconnect(flickable, &QQuickFlickable::movingHorizontallyChanged, this, &QQuickScrollBarAttachedPrivate::activateHorizontal);
-
- // TODO: export QQuickFlickableVisibleArea
- QObject *area = flickable->property("visibleArea").value<QObject *>();
- QObject::disconnect(area, SIGNAL(widthRatioChanged(qreal)), horizontal, SLOT(setSize(qreal)));
- QObject::disconnect(area, SIGNAL(xPositionChanged(qreal)), horizontal, SLOT(setPosition(qreal)));
-}
-
-void QQuickScrollBarAttachedPrivate::cleanupVertical()
-{
- Q_ASSERT(flickable && vertical);
-
- QQuickControlPrivate::hideOldItem(vertical);
- const QQmlProperty visibleProperty(vertical, QStringLiteral("visible"));
- const QQmlProperty parentProperty(vertical, QStringLiteral("parent"));
- QQmlPropertyPrivate::removeBinding(visibleProperty);
- QQmlPropertyPrivate::removeBinding(parentProperty);
-
- disconnect(flickable, &QQuickFlickable::movingVerticallyChanged, this, &QQuickScrollBarAttachedPrivate::activateVertical);
-
- // TODO: export QQuickFlickableVisibleArea
- QObject *area = flickable->property("visibleArea").value<QObject *>();
- QObject::disconnect(area, SIGNAL(heightRatioChanged(qreal)), vertical, SLOT(setSize(qreal)));
- QObject::disconnect(area, SIGNAL(yPositionChanged(qreal)), vertical, SLOT(setPosition(qreal)));
-}
-
-void QQuickScrollBarAttachedPrivate::activateHorizontal()
-{
- QQuickScrollBarPrivate *p = QQuickScrollBarPrivate::get(horizontal);
- p->moving = flickable->isMovingHorizontally();
- p->updateActive();
-}
-
-void QQuickScrollBarAttachedPrivate::activateVertical()
-{
- QQuickScrollBarPrivate *p = QQuickScrollBarPrivate::get(vertical);
- p->moving = flickable->isMovingVertically();
- p->updateActive();
-}
-
-// TODO: QQuickFlickable::maxXYExtent()
-class QQuickFriendlyFlickable : public QQuickFlickable
-{
- friend class QQuickScrollBarAttachedPrivate;
-};
-
-void QQuickScrollBarAttachedPrivate::scrollHorizontal()
-{
- if (!flickable)
- return;
-
- QQuickFriendlyFlickable *f = reinterpret_cast<QQuickFriendlyFlickable *>(flickable);
-
- const qreal viewwidth = f->width();
- const qreal maxxextent = -f->maxXExtent() + f->minXExtent();
- const qreal cx = horizontal->position() * (maxxextent + viewwidth) - f->minXExtent();
-
- if (!qIsNaN(cx) && !qFuzzyCompare(cx, flickable->contentX()))
- flickable->setContentX(cx);
-}
-
-void QQuickScrollBarAttachedPrivate::scrollVertical()
-{
- if (!flickable)
- return;
-
- QQuickFriendlyFlickable *f = reinterpret_cast<QQuickFriendlyFlickable *>(flickable);
-
- const qreal viewheight = f->height();
- const qreal maxyextent = -f->maxYExtent() + f->minYExtent();
- const qreal cy = vertical->position() * (maxyextent + viewheight) - f->minYExtent();
-
- if (!qIsNaN(cy) && !qFuzzyCompare(cy, flickable->contentY()))
- flickable->setContentY(cy);
-}
-
-void QQuickScrollBarAttachedPrivate::mirrorVertical()
-{
- layoutVertical(true);
-}
-
-void QQuickScrollBarAttachedPrivate::layoutHorizontal(bool move)
-{
- Q_ASSERT(horizontal && flickable);
- if (horizontal->parentItem() != flickable)
- return;
- horizontal->setWidth(flickable->width());
- if (move)
- horizontal->setY(flickable->height() - horizontal->height());
-}
-
-void QQuickScrollBarAttachedPrivate::layoutVertical(bool move)
-{
- Q_ASSERT(vertical && flickable);
- if (vertical->parentItem() != flickable)
- return;
- vertical->setHeight(flickable->height());
- if (move)
- vertical->setX(vertical->isMirrored() ? 0 : flickable->width() - vertical->width());
-}
-
-void QQuickScrollBarAttachedPrivate::itemGeometryChanged(QQuickItem *item, const QQuickGeometryChange change, const QRectF &diff)
-{
- Q_UNUSED(item);
- Q_UNUSED(change);
- if (horizontal && horizontal->height() > 0) {
-#ifdef QT_QUICK_NEW_GEOMETRY_CHANGED_HANDLING // TODO: correct/rename diff to oldGeometry
- bool move = qFuzzyIsNull(horizontal->y()) || qFuzzyCompare(horizontal->y(), diff.height() - horizontal->height());
-#else
- bool move = qFuzzyIsNull(horizontal->y()) || qFuzzyCompare(horizontal->y(), item->height() - diff.height() - horizontal->height());
-#endif
- if (flickable)
- layoutHorizontal(move);
- }
- if (vertical && vertical->width() > 0) {
-#ifdef QT_QUICK_NEW_GEOMETRY_CHANGED_HANDLING // TODO: correct/rename diff to oldGeometry
- bool move = qFuzzyIsNull(vertical->x()) || qFuzzyCompare(vertical->x(), diff.width() - vertical->width());
-#else
- bool move = qFuzzyIsNull(vertical->x()) || qFuzzyCompare(vertical->x(), item->width() - diff.width() - vertical->width());
-#endif
- if (flickable)
- layoutVertical(move);
- }
-}
-
-void QQuickScrollBarAttachedPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- if (item == vertical && flickable)
- layoutVertical(true);
-}
-
-void QQuickScrollBarAttachedPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- if (item == horizontal && flickable)
- layoutHorizontal(true);
-}
-
-void QQuickScrollBarAttachedPrivate::itemDestroyed(QQuickItem *item)
-{
- if (item == horizontal)
- horizontal = nullptr;
- if (item == vertical)
- vertical = nullptr;
-}
-
-QQuickScrollBarAttached::QQuickScrollBarAttached(QObject *parent)
- : QObject(*(new QQuickScrollBarAttachedPrivate), parent)
-{
- Q_D(QQuickScrollBarAttached);
- d->setFlickable(qobject_cast<QQuickFlickable *>(parent));
-
- if (parent && !d->flickable && !qobject_cast<QQuickScrollView *>(parent))
- qmlWarning(parent) << "ScrollBar must be attached to a Flickable or ScrollView";
-}
-
-QQuickScrollBarAttached::~QQuickScrollBarAttached()
-{
- Q_D(QQuickScrollBarAttached);
- if (d->horizontal) {
- QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, horizontalChangeTypes);
- d->horizontal = nullptr;
- }
- if (d->vertical) {
- QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d, verticalChangeTypes);
- d->vertical = nullptr;
- }
- d->setFlickable(nullptr);
-}
-
-/*!
- \qmlattachedproperty ScrollBar QtQuick.Controls::ScrollBar::horizontal
-
- This property attaches a horizontal scroll bar to a \l Flickable.
-
- \code
- Flickable {
- contentWidth: 2000
- ScrollBar.horizontal: ScrollBar { }
- }
- \endcode
-
- \sa {Attaching ScrollBar to a Flickable}
-*/
-QQuickScrollBar *QQuickScrollBarAttached::horizontal() const
-{
- Q_D(const QQuickScrollBarAttached);
- return d->horizontal;
-}
-
-void QQuickScrollBarAttached::setHorizontal(QQuickScrollBar *horizontal)
-{
- Q_D(QQuickScrollBarAttached);
- if (d->horizontal == horizontal)
- return;
-
- if (d->horizontal) {
- QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, horizontalChangeTypes);
- QObjectPrivate::disconnect(d->horizontal, &QQuickScrollBar::positionChanged, d, &QQuickScrollBarAttachedPrivate::scrollHorizontal);
-
- if (d->flickable)
- d->cleanupHorizontal();
- }
-
- d->horizontal = horizontal;
-
- if (horizontal) {
- if (!horizontal->parentItem())
- horizontal->setParentItem(qobject_cast<QQuickItem *>(parent()));
- horizontal->setOrientation(Qt::Horizontal);
-
- QQuickItemPrivate::get(horizontal)->addItemChangeListener(d, horizontalChangeTypes);
- QObjectPrivate::connect(horizontal, &QQuickScrollBar::positionChanged, d, &QQuickScrollBarAttachedPrivate::scrollHorizontal);
-
- if (d->flickable)
- d->initHorizontal();
- }
- emit horizontalChanged();
-}
-
-/*!
- \qmlattachedproperty ScrollBar QtQuick.Controls::ScrollBar::vertical
-
- This property attaches a vertical scroll bar to a \l Flickable.
-
- \code
- Flickable {
- contentHeight: 2000
- ScrollBar.vertical: ScrollBar { }
- }
- \endcode
-
- \sa {Attaching ScrollBar to a Flickable}
-*/
-QQuickScrollBar *QQuickScrollBarAttached::vertical() const
-{
- Q_D(const QQuickScrollBarAttached);
- return d->vertical;
-}
-
-void QQuickScrollBarAttached::setVertical(QQuickScrollBar *vertical)
-{
- Q_D(QQuickScrollBarAttached);
- if (d->vertical == vertical)
- return;
-
- if (d->vertical) {
- QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d, verticalChangeTypes);
- QObjectPrivate::disconnect(d->vertical, &QQuickScrollBar::mirroredChanged, d, &QQuickScrollBarAttachedPrivate::mirrorVertical);
- QObjectPrivate::disconnect(d->vertical, &QQuickScrollBar::positionChanged, d, &QQuickScrollBarAttachedPrivate::scrollVertical);
-
- if (d->flickable)
- d->cleanupVertical();
- }
-
- d->vertical = vertical;
-
- if (vertical) {
- if (!vertical->parentItem())
- vertical->setParentItem(qobject_cast<QQuickItem *>(parent()));
- vertical->setOrientation(Qt::Vertical);
-
- QQuickItemPrivate::get(vertical)->addItemChangeListener(d, verticalChangeTypes);
- QObjectPrivate::connect(vertical, &QQuickScrollBar::mirroredChanged, d, &QQuickScrollBarAttachedPrivate::mirrorVertical);
- QObjectPrivate::connect(vertical, &QQuickScrollBar::positionChanged, d, &QQuickScrollBarAttachedPrivate::scrollVertical);
-
- if (d->flickable)
- d->initVertical();
- }
- emit verticalChanged();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickscrollbar_p.h b/src/quicktemplates2/qquickscrollbar_p.h
deleted file mode 100644
index b7de290b..00000000
--- a/src/quicktemplates2/qquickscrollbar_p.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSCROLLBAR_P_H
-#define QQUICKSCROLLBAR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQuickTemplates2/private/qquickindicatorbutton_p.h>
-QT_BEGIN_NAMESPACE
-
-class QQuickScrollBarAttached;
-class QQuickScrollBarPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickScrollBar : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(qreal size READ size WRITE setSize NOTIFY sizeChanged FINAL)
- Q_PROPERTY(qreal position READ position WRITE setPosition NOTIFY positionChanged FINAL)
- Q_PROPERTY(qreal stepSize READ stepSize WRITE setStepSize NOTIFY stepSizeChanged FINAL)
- Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged FINAL)
- Q_PROPERTY(bool pressed READ isPressed WRITE setPressed NOTIFY pressedChanged FINAL)
- Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged FINAL)
- // 2.2 (Qt 5.9)
- Q_PROPERTY(SnapMode snapMode READ snapMode WRITE setSnapMode NOTIFY snapModeChanged FINAL REVISION(2, 2))
- Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive RESET resetInteractive NOTIFY interactiveChanged FINAL REVISION(2, 2))
- Q_PROPERTY(Policy policy READ policy WRITE setPolicy NOTIFY policyChanged FINAL REVISION(2, 2))
- // 2.3 (Qt 5.10)
- Q_PROPERTY(bool horizontal READ isHorizontal NOTIFY orientationChanged FINAL REVISION(2, 3))
- Q_PROPERTY(bool vertical READ isVertical NOTIFY orientationChanged FINAL REVISION(2, 3))
- // 2.4 (Qt 5.11)
- Q_PROPERTY(qreal minimumSize READ minimumSize WRITE setMinimumSize NOTIFY minimumSizeChanged FINAL REVISION(2, 4))
- Q_PROPERTY(qreal visualSize READ visualSize NOTIFY visualSizeChanged FINAL REVISION(2, 4))
- Q_PROPERTY(qreal visualPosition READ visualPosition NOTIFY visualPositionChanged FINAL REVISION(2, 4))
-
- Q_PROPERTY(QQuickIndicatorButton *__decreaseVisual READ decreaseVisual CONSTANT FINAL)
- Q_PROPERTY(QQuickIndicatorButton *__increaseVisual READ increaseVisual CONSTANT FINAL)
-
- QML_NAMED_ELEMENT(ScrollBar)
- QML_ATTACHED(QQuickScrollBarAttached)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickScrollBar(QQuickItem *parent = nullptr);
-
- static QQuickScrollBarAttached *qmlAttachedProperties(QObject *object);
-
- qreal size() const;
- qreal position() const;
-
- qreal stepSize() const;
- void setStepSize(qreal step);
-
- bool isActive() const;
- void setActive(bool active);
-
- bool isPressed() const;
- void setPressed(bool pressed);
-
- Qt::Orientation orientation() const;
- void setOrientation(Qt::Orientation orientation);
-
- // 2.2 (Qt 5.9)
- enum SnapMode {
- NoSnap,
- SnapAlways,
- SnapOnRelease
- };
- Q_ENUM(SnapMode)
-
- SnapMode snapMode() const;
- void setSnapMode(SnapMode mode);
-
- bool isInteractive() const;
- void setInteractive(bool interactive);
- void resetInteractive();
-
- enum Policy {
- AsNeeded = Qt::ScrollBarAsNeeded,
- AlwaysOff = Qt::ScrollBarAlwaysOff,
- AlwaysOn = Qt::ScrollBarAlwaysOn
- };
- Q_ENUM(Policy)
-
- Policy policy() const;
- void setPolicy(Policy policy);
-
- // 2.3 (Qt 5.10)
- bool isHorizontal() const;
- bool isVertical() const;
-
- // 2.4 (Qt 5.11)
- qreal minimumSize() const;
- void setMinimumSize(qreal minimumSize);
-
- qreal visualSize() const;
- qreal visualPosition() const;
-
- QQuickIndicatorButton *decreaseVisual();
- QQuickIndicatorButton *increaseVisual();
-
-public Q_SLOTS:
- void increase();
- void decrease();
- void setSize(qreal size);
- void setPosition(qreal position);
-
-Q_SIGNALS:
- void sizeChanged();
- void positionChanged();
- void stepSizeChanged();
- void activeChanged();
- void pressedChanged();
- void orientationChanged();
- // 2.2 (Qt 5.9)
- Q_REVISION(2, 2) void snapModeChanged();
- Q_REVISION(2, 2) void interactiveChanged();
- Q_REVISION(2, 2) void policyChanged();
- // 2.4 (Qt 5.11)
- Q_REVISION(2, 4) void minimumSizeChanged();
- Q_REVISION(2, 4) void visualSizeChanged();
- Q_REVISION(2, 4) void visualPositionChanged();
-
-protected:
- void mousePressEvent(QMouseEvent *event) override;
-
-#if QT_CONFIG(quicktemplates2_hover)
- void hoverChange() override;
- void hoverEnterEvent(QHoverEvent *event) override;
- void hoverMoveEvent(QHoverEvent *event) override;
- void hoverLeaveEvent(QHoverEvent *event) override;
-#endif
-
- void classBegin() override;
- void componentComplete() override;
-
-#if QT_CONFIG(accessibility)
- void accessibilityActiveChanged(bool active) override;
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickScrollBar)
- Q_DECLARE_PRIVATE(QQuickScrollBar)
-};
-
-class QQuickScrollBarAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickScrollBarAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickScrollBar *horizontal READ horizontal WRITE setHorizontal NOTIFY horizontalChanged FINAL)
- Q_PROPERTY(QQuickScrollBar *vertical READ vertical WRITE setVertical NOTIFY verticalChanged FINAL)
-
-public:
- explicit QQuickScrollBarAttached(QObject *parent = nullptr);
- ~QQuickScrollBarAttached();
-
- QQuickScrollBar *horizontal() const;
- void setHorizontal(QQuickScrollBar *horizontal);
-
- QQuickScrollBar *vertical() const;
- void setVertical(QQuickScrollBar *vertical);
-
-Q_SIGNALS:
- void horizontalChanged();
- void verticalChanged();
-
-private:
- Q_DISABLE_COPY(QQuickScrollBarAttached)
- Q_DECLARE_PRIVATE(QQuickScrollBarAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickScrollBar)
-QML_DECLARE_TYPEINFO(QQuickScrollBar, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKSCROLLBAR_P_H
diff --git a/src/quicktemplates2/qquickscrollbar_p_p.h b/src/quicktemplates2/qquickscrollbar_p_p.h
deleted file mode 100644
index 2c6345e9..00000000
--- a/src/quicktemplates2/qquickscrollbar_p_p.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSCROLLBAR_P_P_H
-#define QQUICKSCROLLBAR_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickscrollbar_p.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFlickable;
-class QQuickIndicatorButton;
-
-class QQuickScrollBarPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickScrollBar)
-
-public:
- static QQuickScrollBarPrivate *get(QQuickScrollBar *bar)
- {
- return bar->d_func();
- }
-
- struct VisualArea
- {
- VisualArea(qreal pos, qreal sz)
- : position(pos), size(sz) { }
- qreal position = 0;
- qreal size = 0;
- };
- VisualArea visualArea() const;
-
- qreal logicalPosition(qreal position) const;
-
- qreal snapPosition(qreal position) const;
- qreal positionAt(const QPointF &point) const;
- void setInteractive(bool interactive);
- void updateActive();
- void resizeContent() override;
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- void handlePress(const QPointF &point, ulong timestamp) override;
- void handleMove(const QPointF &point, ulong timestamp) override;
- void handleRelease(const QPointF &point, ulong timestamp) override;
- void handleUngrab() override;
-
- void visualAreaChange(const VisualArea &newVisualArea, const VisualArea &oldVisualArea);
-
- void updateHover(const QPointF &pos, std::optional<bool> newHoverState = {});
-
- QQuickIndicatorButton *decreaseVisual = nullptr;
- QQuickIndicatorButton *increaseVisual = nullptr;
- qreal size = 0;
- qreal position = 0;
- qreal stepSize = 0;
- qreal offset = 0;
- qreal minimumSize = 0;
- bool active = false;
- bool pressed = false;
- bool moving = false;
- bool interactive = true;
- bool explicitInteractive = false;
- Qt::Orientation orientation = Qt::Vertical;
- QQuickScrollBar::SnapMode snapMode = QQuickScrollBar::NoSnap;
- QQuickScrollBar::Policy policy = QQuickScrollBar::AsNeeded;
-};
-
-class QQuickScrollBarAttachedPrivate : public QObjectPrivate, public QQuickItemChangeListener
-{
-public:
- static QQuickScrollBarAttachedPrivate *get(QQuickScrollBarAttached *attached)
- {
- return attached->d_func();
- }
-
- void setFlickable(QQuickFlickable *flickable);
-
- void initHorizontal();
- void initVertical();
- void cleanupHorizontal();
- void cleanupVertical();
- void activateHorizontal();
- void activateVertical();
- void scrollHorizontal();
- void scrollVertical();
- void mirrorVertical();
-
- void layoutHorizontal(bool move = true);
- void layoutVertical(bool move = true);
-
- void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override;
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
- void itemDestroyed(QQuickItem *item) override;
-
- QQuickFlickable *flickable = nullptr;
- QQuickScrollBar *horizontal = nullptr;
- QQuickScrollBar *vertical = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSCROLLBAR_P_P_H
diff --git a/src/quicktemplates2/qquickscrollindicator.cpp b/src/quicktemplates2/qquickscrollindicator.cpp
deleted file mode 100644
index 8c001c01..00000000
--- a/src/quicktemplates2/qquickscrollindicator.cpp
+++ /dev/null
@@ -1,665 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickscrollindicator_p.h"
-#include "qquickcontrol_p_p.h"
-
-#include <QtQml/qqmlinfo.h>
-#include <QtQuick/private/qquickflickable_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ScrollIndicator
- \inherits Control
-//! \instantiates QQuickScrollIndicator
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-indicators
- \brief Vertical or horizontal non-interactive scroll indicator.
-
- \image qtquickcontrols2-scrollindicator.gif
-
- ScrollIndicator is a non-interactive indicator that indicates the current scroll
- position. A scroll indicator can be either \l vertical or \l horizontal, and can
- be attached to any \l Flickable, such as \l ListView and \l GridView.
-
- \code
- Flickable {
- // ...
- ScrollIndicator.vertical: ScrollIndicator { }
- }
- \endcode
-
- \section1 Attaching ScrollIndicator to a Flickable
-
- \note When ScrollIndicator is attached \l {ScrollIndicator::vertical}{vertically}
- or \l {ScrollIndicator::horizontal}{horizontally} to a Flickable, its geometry and
- the following properties are automatically set and updated as appropriate:
-
- \list
- \li \l orientation
- \li \l position
- \li \l size
- \li \l active
- \endlist
-
- An attached ScrollIndicator re-parents itself to the target Flickable. A vertically
- attached ScrollIndicator resizes itself to the height of the Flickable, and positions
- itself to either side of it based on the \l {Control::mirrored}{layout direction}.
- A horizontally attached ScrollIndicator resizes itself to the width of the Flickable,
- and positions itself to the bottom. The automatic geometry management can be disabled
- by specifying another parent for the attached ScrollIndicator. This can be useful, for
- example, if the ScrollIndicator should be placed outside a clipping Flickable. This is
- demonstrated by the following example:
-
- \code
- Flickable {
- id: flickable
- clip: true
- // ...
- ScrollIndicator.vertical: ScrollIndicator {
- parent: flickable.parent
- anchors.top: flickable.top
- anchors.left: flickable.right
- anchors.bottom: flickable.bottom
- }
- }
- \endcode
-
- \section1 Binding the Active State of Horizontal and Vertical Scroll Indicators
-
- Horizontal and vertical scroll indicators do not share the \l active state with
- each other by default. In order to keep both indicators visible whilst scrolling
- to either direction, establish a two-way binding between the active states as
- presented by the following example:
-
- \snippet qtquickcontrols2-scrollindicator-active.qml 1
-
- \section1 Non-attached Scroll Indicators
-
- It is possible to create an instance of ScrollIndicator without using the
- attached property API. This is useful when the behavior of the attached
- scoll indicator is not sufficient or a \l Flickable is not in use. In the
- following example, horizontal and vertical scroll indicators are used to
- indicate how far the user has scrolled over the text (using \l MouseArea
- instead of \l Flickable):
-
- \snippet qtquickcontrols2-scrollindicator-non-attached.qml 1
-
- \image qtquickcontrols2-scrollindicator-non-attached.png
-
- \sa ScrollBar, {Customizing ScrollIndicator}, {Indicator Controls}
-*/
-
-static const QQuickItemPrivate::ChangeTypes changeTypes = QQuickItemPrivate::Geometry | QQuickItemPrivate::Destroyed;
-static const QQuickItemPrivate::ChangeTypes horizontalChangeTypes = changeTypes | QQuickItemPrivate::ImplicitHeight;
-static const QQuickItemPrivate::ChangeTypes verticalChangeTypes = changeTypes | QQuickItemPrivate::ImplicitWidth;
-
-class QQuickScrollIndicatorPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickScrollIndicator)
-
-public:
- struct VisualArea
- {
- VisualArea(qreal pos, qreal sz)
- : position(pos), size(sz) { }
- qreal position = 0;
- qreal size = 0;
- };
- VisualArea visualArea() const;
- void visualAreaChange(const VisualArea &newVisualArea, const VisualArea &oldVisualArea);
-
- void resizeContent() override;
-
- qreal size = 0;
- qreal minimumSize = 0;
- qreal position = 0;
- bool active = false;
- Qt::Orientation orientation = Qt::Vertical;
-};
-
-QQuickScrollIndicatorPrivate::VisualArea QQuickScrollIndicatorPrivate::visualArea() const
-{
- qreal visualPos = position;
- if (minimumSize > size)
- visualPos = position / (1.0 - size) * (1.0 - minimumSize);
-
- qreal visualSize = qBound<qreal>(0, qMax(size, minimumSize) + qMin<qreal>(0, visualPos), 1.0 - visualPos);
-
- visualPos = qBound<qreal>(0, visualPos, 1.0 - visualSize);
-
- return VisualArea(visualPos, visualSize);
-}
-
-void QQuickScrollIndicatorPrivate::visualAreaChange(const VisualArea &newVisualArea, const VisualArea &oldVisualArea)
-{
- Q_Q(QQuickScrollIndicator);
- if (!qFuzzyCompare(newVisualArea.size, oldVisualArea.size))
- emit q->visualSizeChanged();
- if (!qFuzzyCompare(newVisualArea.position, oldVisualArea.position))
- emit q->visualPositionChanged();
-}
-
-void QQuickScrollIndicatorPrivate::resizeContent()
-{
- Q_Q(QQuickScrollIndicator);
- if (!contentItem)
- return;
-
- // - negative overshoot (pos < 0): clamp the pos to 0, and deduct the overshoot from the size
- // - positive overshoot (pos + size > 1): clamp the size to 1-pos
- const VisualArea visual = visualArea();
-
- if (orientation == Qt::Horizontal) {
- contentItem->setPosition(QPointF(q->leftPadding() + visual.position * q->availableWidth(), q->topPadding()));
- contentItem->setSize(QSizeF(q->availableWidth() * visual.size, q->availableHeight()));
- } else {
- contentItem->setPosition(QPointF(q->leftPadding(), q->topPadding() + visual.position * q->availableHeight()));
- contentItem->setSize(QSizeF(q->availableWidth(), q->availableHeight() * visual.size));
- }
-}
-
-QQuickScrollIndicator::QQuickScrollIndicator(QQuickItem *parent)
- : QQuickControl(*(new QQuickScrollIndicatorPrivate), parent)
-{
-}
-
-QQuickScrollIndicatorAttached *QQuickScrollIndicator::qmlAttachedProperties(QObject *object)
-{
- return new QQuickScrollIndicatorAttached(object);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::ScrollIndicator::size
-
- This property holds the size of the indicator, scaled to \c {0.0 - 1.0}.
-
- \sa {Flickable::visibleArea.heightRatio}{Flickable::visibleArea}
-
- This property is automatically set when the scroll indicator is
- \l {Attaching ScrollIndicator to a Flickable}{attached to a flickable}.
-
- \sa minimumSize, visualSize
-*/
-qreal QQuickScrollIndicator::size() const
-{
- Q_D(const QQuickScrollIndicator);
- return d->size;
-}
-
-void QQuickScrollIndicator::setSize(qreal size)
-{
- Q_D(QQuickScrollIndicator);
- if (qFuzzyCompare(d->size, size))
- return;
-
- auto oldVisualArea = d->visualArea();
- d->size = size;
- if (isComponentComplete())
- d->resizeContent();
- emit sizeChanged();
- d->visualAreaChange(d->visualArea(), oldVisualArea);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::ScrollIndicator::position
-
- This property holds the position of the indicator, scaled to \c {0.0 - 1.0}.
-
- This property is automatically set when the scroll indicator is
- \l {Attaching ScrollIndicator to a Flickable}{attached to a flickable}.
-
- \sa {Flickable::visibleArea.yPosition}{Flickable::visibleArea}, visualPosition
-*/
-qreal QQuickScrollIndicator::position() const
-{
- Q_D(const QQuickScrollIndicator);
- return d->position;
-}
-
-void QQuickScrollIndicator::setPosition(qreal position)
-{
- Q_D(QQuickScrollIndicator);
- if (qFuzzyCompare(d->position, position))
- return;
-
- auto oldVisualArea = d->visualArea();
- d->position = position;
- if (isComponentComplete())
- d->resizeContent();
- emit positionChanged();
- d->visualAreaChange(d->visualArea(), oldVisualArea);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::ScrollIndicator::active
-
- This property holds whether the indicator is active, that is, when the
- attached Flickable is \l {Flickable::moving}{moving}.
-
- It is possible to keep \l {Binding the Active State of Horizontal and Vertical Scroll Indicators}
- {both horizontal and vertical indicators visible} while scrolling in either direction.
-
- This property is automatically set when the scroll indicator is
- \l {Attaching ScrollIndicator to a Flickable}{attached to a flickable}.
-*/
-bool QQuickScrollIndicator::isActive() const
-{
- Q_D(const QQuickScrollIndicator);
- return d->active;
-}
-
-void QQuickScrollIndicator::setActive(bool active)
-{
- Q_D(QQuickScrollIndicator);
- if (d->active == active)
- return;
-
- d->active = active;
- emit activeChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::ScrollIndicator::orientation
-
- This property holds the orientation of the indicator.
-
- Possible values:
- \value Qt.Horizontal Horizontal
- \value Qt.Vertical Vertical (default)
-
- This property is automatically set when the scroll indicator is
- \l {Attaching ScrollIndicator to a Flickable}{attached to a flickable}.
-
- \sa horizontal, vertical
-*/
-Qt::Orientation QQuickScrollIndicator::orientation() const
-{
- Q_D(const QQuickScrollIndicator);
- return d->orientation;
-}
-
-void QQuickScrollIndicator::setOrientation(Qt::Orientation orientation)
-{
- Q_D(QQuickScrollIndicator);
- if (d->orientation == orientation)
- return;
-
- d->orientation = orientation;
- if (isComponentComplete())
- d->resizeContent();
- emit orientationChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::ScrollIndicator::horizontal
- \readonly
-
- This property holds whether the scroll indicator is horizontal.
-
- \sa orientation
-*/
-bool QQuickScrollIndicator::isHorizontal() const
-{
- Q_D(const QQuickScrollIndicator);
- return d->orientation == Qt::Horizontal;
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::ScrollIndicator::vertical
- \readonly
-
- This property holds whether the scroll indicator is vertical.
-
- \sa orientation
-*/
-bool QQuickScrollIndicator::isVertical() const
-{
- Q_D(const QQuickScrollIndicator);
- return d->orientation == Qt::Vertical;
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty real QtQuick.Controls::ScrollIndicator::minimumSize
-
- This property holds the minimum size of the indicator, scaled to \c {0.0 - 1.0}.
-
- \sa size, visualSize, visualPosition
-*/
-qreal QQuickScrollIndicator::minimumSize() const
-{
- Q_D(const QQuickScrollIndicator);
- return d->minimumSize;
-}
-
-void QQuickScrollIndicator::setMinimumSize(qreal minimumSize)
-{
- Q_D(QQuickScrollIndicator);
- if (qFuzzyCompare(d->minimumSize, minimumSize))
- return;
-
- auto oldVisualArea = d->visualArea();
- d->minimumSize = minimumSize;
- if (isComponentComplete())
- d->resizeContent();
- emit minimumSizeChanged();
- d->visualAreaChange(d->visualArea(), oldVisualArea);
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty real QtQuick.Controls::ScrollIndicator::visualSize
-
- This property holds the effective visual size of the indicator,
- which may be limited by the \l {minimumSize}{minimum size}.
-
- \sa size, minimumSize
-*/
-qreal QQuickScrollIndicator::visualSize() const
-{
- Q_D(const QQuickScrollIndicator);
- return d->visualArea().size;
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty real QtQuick.Controls::ScrollIndicator::visualPosition
-
- This property holds the effective visual position of the indicator,
- which may be limited by the \l {minimumSize}{minimum size}.
-
- \sa position, minimumSize
-*/
-qreal QQuickScrollIndicator::visualPosition() const
-{
- Q_D(const QQuickScrollIndicator);
- return d->visualArea().position;
-}
-
-class QQuickScrollIndicatorAttachedPrivate : public QObjectPrivate, public QQuickItemChangeListener
-{
-public:
- void activateHorizontal();
- void activateVertical();
-
- void layoutHorizontal(bool move = true);
- void layoutVertical(bool move = true);
-
- void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override;
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
- void itemDestroyed(QQuickItem *item) override;
-
- QQuickFlickable *flickable = nullptr;
- QQuickScrollIndicator *horizontal = nullptr;
- QQuickScrollIndicator *vertical = nullptr;
-};
-
-void QQuickScrollIndicatorAttachedPrivate::activateHorizontal()
-{
- horizontal->setActive(flickable->isMovingHorizontally());
-}
-
-void QQuickScrollIndicatorAttachedPrivate::activateVertical()
-{
- vertical->setActive(flickable->isMovingVertically());
-}
-
-void QQuickScrollIndicatorAttachedPrivate::layoutHorizontal(bool move)
-{
- Q_ASSERT(horizontal && flickable);
- if (horizontal->parentItem() != flickable)
- return;
- horizontal->setWidth(flickable->width());
- if (move)
- horizontal->setY(flickable->height() - horizontal->height());
-}
-
-void QQuickScrollIndicatorAttachedPrivate::layoutVertical(bool move)
-{
- Q_ASSERT(vertical && flickable);
- if (vertical->parentItem() != flickable)
- return;
- vertical->setHeight(flickable->height());
- if (move && !QQuickItemPrivate::get(vertical)->isMirrored())
- vertical->setX(flickable->width() - vertical->width());
-}
-
-void QQuickScrollIndicatorAttachedPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff)
-{
- Q_UNUSED(item);
- Q_UNUSED(change);
- if (horizontal && horizontal->height() > 0) {
-#ifdef QT_QUICK_NEW_GEOMETRY_CHANGED_HANDLING // TODO: correct/rename diff to oldGeometry
- bool move = qFuzzyIsNull(horizontal->y()) || qFuzzyCompare(horizontal->y(), diff.height() - horizontal->height());
-#else
- bool move = qFuzzyIsNull(horizontal->y()) || qFuzzyCompare(horizontal->y(), item->height() - diff.height() - horizontal->height());
-#endif
- layoutHorizontal(move);
- }
- if (vertical && vertical->width() > 0) {
-#ifdef QT_QUICK_NEW_GEOMETRY_CHANGED_HANDLING // TODO: correct/rename diff to oldGeometry
- bool move = qFuzzyIsNull(vertical->x()) || qFuzzyCompare(vertical->x(), diff.width() - vertical->width());
-#else
- bool move = qFuzzyIsNull(vertical->x()) || qFuzzyCompare(vertical->x(), item->width() - diff.width() - vertical->width());
-#endif
- layoutVertical(move);
- }
-}
-
-void QQuickScrollIndicatorAttachedPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- if (item == vertical)
- layoutVertical(true);
-}
-
-void QQuickScrollIndicatorAttachedPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- if (item == horizontal)
- layoutHorizontal(true);
-}
-
-void QQuickScrollIndicatorAttachedPrivate::itemDestroyed(QQuickItem *item)
-{
- if (item == horizontal)
- horizontal = nullptr;
- if (item == vertical)
- vertical = nullptr;
-}
-
-QQuickScrollIndicatorAttached::QQuickScrollIndicatorAttached(QObject *parent)
- : QObject(*(new QQuickScrollIndicatorAttachedPrivate), parent)
-{
- Q_D(QQuickScrollIndicatorAttached);
- d->flickable = qobject_cast<QQuickFlickable *>(parent);
- if (d->flickable)
- QQuickItemPrivate::get(d->flickable)->updateOrAddGeometryChangeListener(d, QQuickGeometryChange::Size);
- else if (parent)
- qmlWarning(parent) << "ScrollIndicator must be attached to a Flickable";
-}
-
-QQuickScrollIndicatorAttached::~QQuickScrollIndicatorAttached()
-{
- Q_D(QQuickScrollIndicatorAttached);
- if (d->flickable) {
- if (d->horizontal)
- QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, horizontalChangeTypes);
- if (d->vertical)
- QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d,verticalChangeTypes);
- // NOTE: Use removeItemChangeListener(Geometry) instead of updateOrRemoveGeometryChangeListener(Size).
- // The latter doesn't remove the listener but only resets its types. Thus, it leaves behind a dangling
- // pointer on destruction.
- QQuickItemPrivate::get(d->flickable)->removeItemChangeListener(d, QQuickItemPrivate::Geometry);
- }
-}
-
-/*!
- \qmlattachedproperty ScrollIndicator QtQuick.Controls::ScrollIndicator::horizontal
-
- This property attaches a horizontal scroll indicator to a \l Flickable.
-
- \code
- Flickable {
- contentWidth: 2000
- ScrollIndicator.horizontal: ScrollIndicator { }
- }
- \endcode
-
- \sa {Attaching ScrollIndicator to a Flickable}
-*/
-QQuickScrollIndicator *QQuickScrollIndicatorAttached::horizontal() const
-{
- Q_D(const QQuickScrollIndicatorAttached);
- return d->horizontal;
-}
-
-void QQuickScrollIndicatorAttached::setHorizontal(QQuickScrollIndicator *horizontal)
-{
- Q_D(QQuickScrollIndicatorAttached);
- if (d->horizontal == horizontal)
- return;
-
- if (d->horizontal && d->flickable) {
- QQuickItemPrivate::get(d->horizontal)->removeItemChangeListener(d, horizontalChangeTypes);
- QObjectPrivate::disconnect(d->flickable, &QQuickFlickable::movingHorizontallyChanged, d, &QQuickScrollIndicatorAttachedPrivate::activateHorizontal);
-
- // TODO: export QQuickFlickableVisibleArea
- QObject *area = d->flickable->property("visibleArea").value<QObject *>();
- disconnect(area, SIGNAL(widthRatioChanged(qreal)), d->horizontal, SLOT(setSize(qreal)));
- disconnect(area, SIGNAL(xPositionChanged(qreal)), d->horizontal, SLOT(setPosition(qreal)));
- }
-
- d->horizontal = horizontal;
-
- if (horizontal && d->flickable) {
- if (!horizontal->parentItem())
- horizontal->setParentItem(d->flickable);
- horizontal->setOrientation(Qt::Horizontal);
-
- QQuickItemPrivate::get(horizontal)->addItemChangeListener(d, horizontalChangeTypes);
- QObjectPrivate::connect(d->flickable, &QQuickFlickable::movingHorizontallyChanged, d, &QQuickScrollIndicatorAttachedPrivate::activateHorizontal);
-
- // TODO: export QQuickFlickableVisibleArea
- QObject *area = d->flickable->property("visibleArea").value<QObject *>();
- connect(area, SIGNAL(widthRatioChanged(qreal)), horizontal, SLOT(setSize(qreal)));
- connect(area, SIGNAL(xPositionChanged(qreal)), horizontal, SLOT(setPosition(qreal)));
-
- d->layoutHorizontal();
- horizontal->setSize(area->property("widthRatio").toReal());
- horizontal->setPosition(area->property("xPosition").toReal());
- }
- emit horizontalChanged();
-}
-
-/*!
- \qmlattachedproperty ScrollIndicator QtQuick.Controls::ScrollIndicator::vertical
-
- This property attaches a vertical scroll indicator to a \l Flickable.
-
- \code
- Flickable {
- contentHeight: 2000
- ScrollIndicator.vertical: ScrollIndicator { }
- }
- \endcode
-
- \sa {Attaching ScrollIndicator to a Flickable}
-*/
-QQuickScrollIndicator *QQuickScrollIndicatorAttached::vertical() const
-{
- Q_D(const QQuickScrollIndicatorAttached);
- return d->vertical;
-}
-
-void QQuickScrollIndicatorAttached::setVertical(QQuickScrollIndicator *vertical)
-{
- Q_D(QQuickScrollIndicatorAttached);
- if (d->vertical == vertical)
- return;
-
- if (d->vertical && d->flickable) {
- QQuickItemPrivate::get(d->vertical)->removeItemChangeListener(d, verticalChangeTypes);
- QObjectPrivate::disconnect(d->flickable, &QQuickFlickable::movingVerticallyChanged, d, &QQuickScrollIndicatorAttachedPrivate::activateVertical);
-
- // TODO: export QQuickFlickableVisibleArea
- QObject *area = d->flickable->property("visibleArea").value<QObject *>();
- disconnect(area, SIGNAL(heightRatioChanged(qreal)), d->vertical, SLOT(setSize(qreal)));
- disconnect(area, SIGNAL(yPositionChanged(qreal)), d->vertical, SLOT(setPosition(qreal)));
- }
-
- d->vertical = vertical;
-
- if (vertical && d->flickable) {
- if (!vertical->parentItem())
- vertical->setParentItem(d->flickable);
- vertical->setOrientation(Qt::Vertical);
-
- QQuickItemPrivate::get(vertical)->addItemChangeListener(d, verticalChangeTypes);
- QObjectPrivate::connect(d->flickable, &QQuickFlickable::movingVerticallyChanged, d, &QQuickScrollIndicatorAttachedPrivate::activateVertical);
-
- // TODO: export QQuickFlickableVisibleArea
- QObject *area = d->flickable->property("visibleArea").value<QObject *>();
- connect(area, SIGNAL(heightRatioChanged(qreal)), vertical, SLOT(setSize(qreal)));
- connect(area, SIGNAL(yPositionChanged(qreal)), vertical, SLOT(setPosition(qreal)));
-
- d->layoutVertical();
- vertical->setSize(area->property("heightRatio").toReal());
- vertical->setPosition(area->property("yPosition").toReal());
- }
- emit verticalChanged();
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickScrollIndicator::touchEvent(QTouchEvent *event)
-{
- event->ignore(); // QTBUG-61785
-}
-#endif
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickScrollIndicator::accessibleRole() const
-{
- return QAccessible::Indicator;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickscrollindicator_p.h b/src/quicktemplates2/qquickscrollindicator_p.h
deleted file mode 100644
index dbad6ffe..00000000
--- a/src/quicktemplates2/qquickscrollindicator_p.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSCROLLINDICATOR_P_H
-#define QQUICKSCROLLINDICATOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFlickable;
-class QQuickScrollIndicatorAttached;
-class QQuickScrollIndicatorPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickScrollIndicator : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(qreal size READ size WRITE setSize NOTIFY sizeChanged FINAL)
- Q_PROPERTY(qreal position READ position WRITE setPosition NOTIFY positionChanged FINAL)
- Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged FINAL)
- Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged FINAL)
- // 2.3 (Qt 5.10)
- Q_PROPERTY(bool horizontal READ isHorizontal NOTIFY orientationChanged FINAL REVISION(2, 3))
- Q_PROPERTY(bool vertical READ isVertical NOTIFY orientationChanged FINAL REVISION(2, 3))
- // 2.4 (Qt 5.11)
- Q_PROPERTY(qreal minimumSize READ minimumSize WRITE setMinimumSize NOTIFY minimumSizeChanged FINAL REVISION(2, 4))
- Q_PROPERTY(qreal visualSize READ visualSize NOTIFY visualSizeChanged FINAL REVISION(2, 4))
- Q_PROPERTY(qreal visualPosition READ visualPosition NOTIFY visualPositionChanged FINAL REVISION(2, 4))
- QML_NAMED_ELEMENT(ScrollIndicator)
- QML_ATTACHED(QQuickScrollIndicatorAttached)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickScrollIndicator(QQuickItem *parent = nullptr);
-
- static QQuickScrollIndicatorAttached *qmlAttachedProperties(QObject *object);
-
- qreal size() const;
- qreal position() const;
-
- bool isActive() const;
- void setActive(bool active);
-
- Qt::Orientation orientation() const;
- void setOrientation(Qt::Orientation orientation);
-
- // 2.3 (Qt 5.10)
- bool isHorizontal() const;
- bool isVertical() const;
-
- // 2.4 (Qt 5.11)
- qreal minimumSize() const;
- void setMinimumSize(qreal minimumSize);
-
- qreal visualSize() const;
- qreal visualPosition() const;
-
-public Q_SLOTS:
- void setSize(qreal size);
- void setPosition(qreal position);
-
-Q_SIGNALS:
- void sizeChanged();
- void positionChanged();
- void activeChanged();
- void orientationChanged();
- // 2.4 (Qt 5.11)
- Q_REVISION(2, 4) void minimumSizeChanged();
- Q_REVISION(2, 4) void visualSizeChanged();
- Q_REVISION(2, 4) void visualPositionChanged();
-
-protected:
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
-#endif
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickScrollIndicator)
- Q_DECLARE_PRIVATE(QQuickScrollIndicator)
-};
-
-class QQuickScrollIndicatorAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickScrollIndicatorAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickScrollIndicator *horizontal READ horizontal WRITE setHorizontal NOTIFY horizontalChanged FINAL)
- Q_PROPERTY(QQuickScrollIndicator *vertical READ vertical WRITE setVertical NOTIFY verticalChanged FINAL)
-
-public:
- explicit QQuickScrollIndicatorAttached(QObject *parent = nullptr);
- ~QQuickScrollIndicatorAttached();
-
- QQuickScrollIndicator *horizontal() const;
- void setHorizontal(QQuickScrollIndicator *horizontal);
-
- QQuickScrollIndicator *vertical() const;
- void setVertical(QQuickScrollIndicator *vertical);
-
-Q_SIGNALS:
- void horizontalChanged();
- void verticalChanged();
-
-private:
- Q_DISABLE_COPY(QQuickScrollIndicatorAttached)
- Q_DECLARE_PRIVATE(QQuickScrollIndicatorAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickScrollIndicator)
-QML_DECLARE_TYPEINFO(QQuickScrollIndicator, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKSCROLLINDICATOR_P_H
diff --git a/src/quicktemplates2/qquickscrollview.cpp b/src/quicktemplates2/qquickscrollview.cpp
deleted file mode 100644
index 1f5adbb7..00000000
--- a/src/quicktemplates2/qquickscrollview.cpp
+++ /dev/null
@@ -1,623 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickscrollview_p.h"
-#include "qquickpane_p_p.h"
-#include "qquickscrollbar_p_p.h"
-
-#include <QtQuick/private/qquickflickable_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ScrollView
- \inherits Pane
-//! \instantiates QQuickScrollView
- \inqmlmodule QtQuick.Controls
- \since 5.9
- \ingroup qtquickcontrols2-containers
- \ingroup qtquickcontrols2-focusscopes
- \brief Scrollable view.
-
- ScrollView provides scrolling for user-defined content. It can be used to
- either replace a \l Flickable, or to decorate an existing one.
-
- \image qtquickcontrols2-scrollview.png
-
- The first example demonstrates the simplest usage of ScrollView.
-
- \snippet qtquickcontrols2-scrollview.qml file
-
- The second example illustrates using an existing \l Flickable, that is,
- a \l ListView.
-
- \snippet qtquickcontrols2-scrollview-listview.qml file
-
- \note As of Qt-6.0, ScrollView automatically clips its contents if you
- don't use a Flickable as a child. If this is not wanted, you can
- set your own Flickable as a child, and control the \l {Item::}{clip}
- property on the Flickable explicitly.
-
- \section2 Sizing
-
- As with Flickable, there are several things to keep in mind when using
- ScrollView:
- \list
- \li If only a single item is used within a ScrollView, the content size is
- automatically calculated based on the implicit size of its contained item.
- However, if more than one item is used (or an implicit size is not
- provided), the \l {QtQuick.Controls::Pane::}{contentWidth} and
- \l {QtQuick.Controls::Pane::}{contentHeight} properties must
- be set to the combined size of its contained items.
- \li If the content size is less than or equal to the size of the ScrollView,
- it will not be scrollable.
- \li If you want the ScrollView to only scroll vertically, you can bind
- \l {QtQuick.Controls::Pane::}{contentWidth} to
- \l {QtQuick.Controls::Control::}{availableWidth}
- (and vice versa for contentHeight). This will let the contents fill
- out all the available space horizontally inside the ScrollView, taking
- any padding or scroll bars into account.
- \endlist
-
- \section2 Scroll Bars
-
- The horizontal and vertical scroll bars can be accessed and customized using
- the \l {ScrollBar::horizontal}{ScrollBar.horizontal} and \l {ScrollBar::vertical}
- {ScrollBar.vertical} attached properties. The following example adjusts the scroll
- bar policies so that the horizontal scroll bar is always off, and the vertical
- scroll bar is always on.
-
- \snippet qtquickcontrols2-scrollview-policy.qml file
-
- \section2 Touch vs. Mouse Interaction
-
- On touch, ScrollView enables flicking and makes the scroll bars non-interactive.
-
- \image qtquickcontrols2-scrollindicator.gif
-
- When interacted with a mouse device, flicking is disabled and the scroll bars
- are interactive.
-
- \image qtquickcontrols2-scrollbar.gif
-
- Scroll bars can be made interactive on touch, or non-interactive when interacted
- with a mouse device, by setting the \l {ScrollBar::}{interactive} property explicitly
- to \c true or \c false, respectively.
-
- \snippet qtquickcontrols2-scrollview-interactive.qml file
-
- \sa ScrollBar, ScrollIndicator, {Customizing ScrollView}, {Container Controls},
- {Focus Management in Qt Quick Controls}
-*/
-
-class QQuickScrollViewPrivate : public QQuickPanePrivate
-{
- Q_DECLARE_PUBLIC(QQuickScrollView)
-
-public:
- QQmlListProperty<QObject> contentData() override;
- QQmlListProperty<QQuickItem> contentChildren() override;
- QList<QQuickItem *> contentChildItems() const override;
-
- QQuickItem *getContentItem() override;
-
- QQuickFlickable *ensureFlickable(bool content);
- bool setFlickable(QQuickFlickable *flickable, bool content);
-
- void flickableContentWidthChanged();
- void flickableContentHeightChanged();
-
- qreal getContentWidth() const override;
- qreal getContentHeight() const override;
-
- QQuickScrollBar *verticalScrollBar() const;
- QQuickScrollBar *horizontalScrollBar() const;
-
- void setScrollBarsInteractive(bool interactive);
-
- static void contentData_append(QQmlListProperty<QObject> *prop, QObject *obj);
- static qsizetype contentData_count(QQmlListProperty<QObject> *prop);
- static QObject *contentData_at(QQmlListProperty<QObject> *prop, qsizetype index);
- static void contentData_clear(QQmlListProperty<QObject> *prop);
-
- static void contentChildren_append(QQmlListProperty<QQuickItem> *prop, QQuickItem *obj);
- static qsizetype contentChildren_count(QQmlListProperty<QQuickItem> *prop);
- static QQuickItem *contentChildren_at(QQmlListProperty<QQuickItem> *prop, qsizetype index);
- static void contentChildren_clear(QQmlListProperty<QQuickItem> *prop);
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
-
- bool wasTouched = false;
- QQuickFlickable *flickable = nullptr;
- bool flickableHasExplicitContentWidth = true;
- bool flickableHasExplicitContentHeight = true;
-};
-
-QList<QQuickItem *> QQuickScrollViewPrivate::contentChildItems() const
-{
- if (!flickable)
- return QList<QQuickItem *>();
-
- return flickable->contentItem()->childItems();
-}
-
-QQuickItem *QQuickScrollViewPrivate::getContentItem()
-{
- if (!contentItem)
- executeContentItem();
- return ensureFlickable(false);
-}
-
-QQuickFlickable *QQuickScrollViewPrivate::ensureFlickable(bool content)
-{
- Q_Q(QQuickScrollView);
- if (!flickable) {
- flickableHasExplicitContentWidth = false;
- flickableHasExplicitContentHeight = false;
- auto flickable = new QQuickFlickable(q);
- // We almost always want to clip the flickable so that flickable
- // contents doesn't show up outside the scrollview. The only time
- // this is not really needed, is when the scrollview covers the whole
- // window and the scrollbars are transient. But for that corner case, if this
- // optimization is needed, the user can simply create his own flickable
- // child inside the scrollview, and control clipping on it explicit.
- flickable->setClip(true);
- flickable->setPixelAligned(true);
- setFlickable(flickable, content);
- }
- return flickable;
-}
-
-bool QQuickScrollViewPrivate::setFlickable(QQuickFlickable *item, bool content)
-{
- Q_Q(QQuickScrollView);
- if (item == flickable)
- return false;
-
- QQuickScrollBarAttached *attached = qobject_cast<QQuickScrollBarAttached *>(qmlAttachedPropertiesObject<QQuickScrollBar>(q, false));
-
- if (flickable) {
- flickable->removeEventFilter(q);
-
- if (attached)
- QQuickScrollBarAttachedPrivate::get(attached)->setFlickable(nullptr);
-
- QObjectPrivate::disconnect(flickable->contentItem(), &QQuickItem::childrenChanged, this, &QQuickPanePrivate::contentChildrenChange);
- QObjectPrivate::disconnect(flickable, &QQuickFlickable::contentWidthChanged, this, &QQuickScrollViewPrivate::flickableContentWidthChanged);
- QObjectPrivate::disconnect(flickable, &QQuickFlickable::contentHeightChanged, this, &QQuickScrollViewPrivate::flickableContentHeightChanged);
- }
-
- flickable = item;
- if (content)
- q->setContentItem(flickable);
-
- if (flickable) {
- flickable->installEventFilter(q);
- if (hasContentWidth)
- flickable->setContentWidth(contentWidth);
- else
- flickableContentWidthChanged();
- if (hasContentHeight)
- flickable->setContentHeight(contentHeight);
- else
- flickableContentHeightChanged();
-
- if (attached)
- QQuickScrollBarAttachedPrivate::get(attached)->setFlickable(flickable);
-
- QObjectPrivate::connect(flickable->contentItem(), &QQuickItem::childrenChanged, this, &QQuickPanePrivate::contentChildrenChange);
- QObjectPrivate::connect(flickable, &QQuickFlickable::contentWidthChanged, this, &QQuickScrollViewPrivate::flickableContentWidthChanged);
- QObjectPrivate::connect(flickable, &QQuickFlickable::contentHeightChanged, this, &QQuickScrollViewPrivate::flickableContentHeightChanged);
- }
-
- return true;
-}
-
-void QQuickScrollViewPrivate::flickableContentWidthChanged()
-{
- Q_Q(QQuickScrollView);
- if (!flickable || !componentComplete)
- return;
-
- const qreal cw = flickable->contentWidth();
- if (qFuzzyCompare(cw, implicitContentWidth))
- return;
-
- flickableHasExplicitContentWidth = true;
- implicitContentWidth = cw;
- emit q->implicitContentWidthChanged();
-}
-
-void QQuickScrollViewPrivate::flickableContentHeightChanged()
-{
- Q_Q(QQuickScrollView);
- if (!flickable || !componentComplete)
- return;
-
- const qreal ch = flickable->contentHeight();
- if (qFuzzyCompare(ch, implicitContentHeight))
- return;
-
- flickableHasExplicitContentHeight = true;
- implicitContentHeight = ch;
- emit q->implicitContentHeightChanged();
-}
-
-qreal QQuickScrollViewPrivate::getContentWidth() const
-{
- if (flickable && flickableHasExplicitContentWidth)
- return flickable->contentWidth();
-
- // The scrollview wraps a flickable created by us, and nobody searched for it and
- // modified its contentWidth. In that case, since the application does not control
- // this flickable, we fall back to calculate the content width based on the child
- // items inside it.
- return QQuickPanePrivate::getContentWidth();
-}
-
-qreal QQuickScrollViewPrivate::getContentHeight() const
-{
- if (flickable && flickableHasExplicitContentHeight)
- return flickable->contentHeight();
-
- // The scrollview wraps a flickable created by us, and nobody searched for it and
- // modified its contentHeight. In that case, since the application does not control
- // this flickable, we fall back to calculate the content height based on the child
- // items inside it.
- return QQuickPanePrivate::getContentHeight();
-}
-
-QQuickScrollBar *QQuickScrollViewPrivate::verticalScrollBar() const
-{
- Q_Q(const QQuickScrollView);
- QQuickScrollBarAttached *attached = qobject_cast<QQuickScrollBarAttached *>(qmlAttachedPropertiesObject<QQuickScrollBar>(q, false));
- if (!attached)
- return nullptr;
- return attached->vertical();
-}
-
-QQuickScrollBar *QQuickScrollViewPrivate::horizontalScrollBar() const
-{
- Q_Q(const QQuickScrollView);
- QQuickScrollBarAttached *attached = qobject_cast<QQuickScrollBarAttached *>(qmlAttachedPropertiesObject<QQuickScrollBar>(q, false));
- if (!attached)
- return nullptr;
- return attached->horizontal();
-}
-
-void QQuickScrollViewPrivate::setScrollBarsInteractive(bool interactive)
-{
- QQuickScrollBar *hbar = horizontalScrollBar();
- if (hbar) {
- QQuickScrollBarPrivate *p = QQuickScrollBarPrivate::get(hbar);
- if (!p->explicitInteractive)
- p->setInteractive(interactive);
- }
-
- QQuickScrollBar *vbar = verticalScrollBar();
- if (vbar) {
- QQuickScrollBarPrivate *p = QQuickScrollBarPrivate::get(vbar);
- if (!p->explicitInteractive)
- p->setInteractive(interactive);
- }
-}
-
-void QQuickScrollViewPrivate::contentData_append(QQmlListProperty<QObject> *prop, QObject *obj)
-{
- QQuickScrollViewPrivate *p = static_cast<QQuickScrollViewPrivate *>(prop->data);
- if (!p->flickable && p->setFlickable(qobject_cast<QQuickFlickable *>(obj), true))
- return;
-
- QQuickFlickable *flickable = p->ensureFlickable(true);
- Q_ASSERT(flickable);
- QQmlListProperty<QObject> data = flickable->flickableData();
- data.append(&data, obj);
-}
-
-qsizetype QQuickScrollViewPrivate::contentData_count(QQmlListProperty<QObject> *prop)
-{
- QQuickScrollViewPrivate *p = static_cast<QQuickScrollViewPrivate *>(prop->data);
- if (!p->flickable)
- return 0;
-
- QQmlListProperty<QObject> data = p->flickable->flickableData();
- return data.count(&data);
-}
-
-QObject *QQuickScrollViewPrivate::contentData_at(QQmlListProperty<QObject> *prop, qsizetype index)
-{
- QQuickScrollViewPrivate *p = static_cast<QQuickScrollViewPrivate *>(prop->data);
- if (!p->flickable)
- return nullptr;
-
- QQmlListProperty<QObject> data = p->flickable->flickableData();
- return data.at(&data, index);
-}
-
-void QQuickScrollViewPrivate::contentData_clear(QQmlListProperty<QObject> *prop)
-{
- QQuickScrollViewPrivate *p = static_cast<QQuickScrollViewPrivate *>(prop->data);
- if (!p->flickable)
- return;
-
- QQmlListProperty<QObject> data = p->flickable->flickableData();
- return data.clear(&data);
-}
-
-void QQuickScrollViewPrivate::contentChildren_append(QQmlListProperty<QQuickItem> *prop, QQuickItem *item)
-{
- QQuickScrollViewPrivate *p = static_cast<QQuickScrollViewPrivate *>(prop->data);
- if (!p->flickable)
- p->setFlickable(qobject_cast<QQuickFlickable *>(item), true);
-
- QQuickFlickable *flickable = p->ensureFlickable(true);
- Q_ASSERT(flickable);
- QQmlListProperty<QQuickItem> children = flickable->flickableChildren();
- children.append(&children, item);
-}
-
-qsizetype QQuickScrollViewPrivate::contentChildren_count(QQmlListProperty<QQuickItem> *prop)
-{
- QQuickScrollViewPrivate *p = static_cast<QQuickScrollViewPrivate *>(prop->data);
- if (!p->flickable)
- return 0;
-
- QQmlListProperty<QQuickItem> children = p->flickable->flickableChildren();
- return children.count(&children);
-}
-
-QQuickItem *QQuickScrollViewPrivate::contentChildren_at(QQmlListProperty<QQuickItem> *prop, qsizetype index)
-{
- QQuickScrollViewPrivate *p = static_cast<QQuickScrollViewPrivate *>(prop->data);
- if (!p->flickable)
- return nullptr;
-
- QQmlListProperty<QQuickItem> children = p->flickable->flickableChildren();
- return children.at(&children, index);
-}
-
-void QQuickScrollViewPrivate::contentChildren_clear(QQmlListProperty<QQuickItem> *prop)
-{
- QQuickScrollViewPrivate *p = static_cast<QQuickScrollViewPrivate *>(prop->data);
- if (!p->flickable)
- return;
-
- QQmlListProperty<QQuickItem> children = p->flickable->flickableChildren();
- children.clear(&children);
-}
-
-void QQuickScrollViewPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- // a special case for width<->height dependent content (wrapping text) in ScrollView
- if (contentWidth < 0 && !componentComplete)
- return;
-
- QQuickPanePrivate::itemImplicitWidthChanged(item);
-}
-
-QQuickScrollView::QQuickScrollView(QQuickItem *parent)
- : QQuickPane(*(new QQuickScrollViewPrivate), parent)
-{
- Q_D(QQuickScrollView);
- d->contentWidth = -1;
- d->contentHeight = -1;
-
- setFiltersChildMouseEvents(true);
- setWheelEnabled(true);
-}
-
-/*!
- \qmlproperty list<Object> QtQuick.Controls::ScrollView::contentData
- \qmldefault
-
- This property holds the list of content data.
-
- The list contains all objects that have been declared in QML as children of the view.
-
- \note Unlike \c contentChildren, \c contentData does include non-visual QML objects.
-
- \sa Item::data, contentChildren
-*/
-QQmlListProperty<QObject> QQuickScrollViewPrivate::contentData()
-{
- Q_Q(QQuickScrollView);
- return QQmlListProperty<QObject>(q, this,
- QQuickScrollViewPrivate::contentData_append,
- QQuickScrollViewPrivate::contentData_count,
- QQuickScrollViewPrivate::contentData_at,
- QQuickScrollViewPrivate::contentData_clear);
-}
-
-/*!
- \qmlproperty list<Item> QtQuick.Controls::ScrollView::contentChildren
-
- This property holds the list of content children.
-
- The list contains all items that have been declared in QML as children of the view.
-
- \note Unlike \c contentData, \c contentChildren does not include non-visual QML objects.
-
- \sa Item::children, contentData
-*/
-QQmlListProperty<QQuickItem> QQuickScrollViewPrivate::contentChildren()
-{
- Q_Q(QQuickScrollView);
- return QQmlListProperty<QQuickItem>(q, this,
- QQuickScrollViewPrivate::contentChildren_append,
- QQuickScrollViewPrivate::contentChildren_count,
- QQuickScrollViewPrivate::contentChildren_at,
- QQuickScrollViewPrivate::contentChildren_clear);
-}
-
-bool QQuickScrollView::childMouseEventFilter(QQuickItem *item, QEvent *event)
-{
- Q_D(QQuickScrollView);
- switch (event->type()) {
- case QEvent::TouchBegin:
- d->wasTouched = true;
- d->setScrollBarsInteractive(false);
- return false;
-
- case QEvent::TouchEnd:
- d->wasTouched = false;
- return false;
-
- case QEvent::MouseButtonPress:
- // NOTE: Flickable does not handle touch events, only synthesized mouse events
- if (static_cast<QMouseEvent *>(event)->source() == Qt::MouseEventNotSynthesized) {
- d->wasTouched = false;
- d->setScrollBarsInteractive(true);
- return false;
- }
- return !d->wasTouched && item == d->flickable;
-
- case QEvent::MouseMove:
- case QEvent::MouseButtonRelease:
- if (static_cast<QMouseEvent *>(event)->source() == Qt::MouseEventNotSynthesized)
- return item == d->flickable;
- break;
-
- case QEvent::HoverEnter:
- case QEvent::HoverMove:
- if (d->wasTouched && (item == d->verticalScrollBar() || item == d->horizontalScrollBar()))
- d->setScrollBarsInteractive(true);
- break;
-
- default:
- break;
- }
-
- return false;
-}
-
-bool QQuickScrollView::eventFilter(QObject *object, QEvent *event)
-{
- Q_D(QQuickScrollView);
- if (event->type() == QEvent::Wheel) {
- d->setScrollBarsInteractive(true);
- if (!d->wheelEnabled)
- return true;
- }
- return QQuickPane::eventFilter(object, event);
-}
-
-void QQuickScrollView::keyPressEvent(QKeyEvent *event)
-{
- Q_D(QQuickScrollView);
- QQuickPane::keyPressEvent(event);
- switch (event->key()) {
- case Qt::Key_Up:
- if (QQuickScrollBar *vbar = d->verticalScrollBar()) {
- vbar->decrease();
- event->accept();
- }
- break;
- case Qt::Key_Down:
- if (QQuickScrollBar *vbar = d->verticalScrollBar()) {
- vbar->increase();
- event->accept();
- }
- break;
- case Qt::Key_Left:
- if (QQuickScrollBar *hbar = d->horizontalScrollBar()) {
- hbar->decrease();
- event->accept();
- }
- break;
- case Qt::Key_Right:
- if (QQuickScrollBar *hbar = d->horizontalScrollBar()) {
- hbar->increase();
- event->accept();
- }
- break;
- default:
- event->ignore();
- break;
- }
-}
-
-void QQuickScrollView::componentComplete()
-{
- Q_D(QQuickScrollView);
- QQuickPane::componentComplete();
- if (!d->contentItem)
- d->ensureFlickable(true);
-}
-
-void QQuickScrollView::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_D(QQuickScrollView);
- if (newItem != d->flickable) {
- // The new flickable was not created by us. In that case, we always
- // assume/require that it has an explicit content size assigned.
- d->flickableHasExplicitContentWidth = true;
- d->flickableHasExplicitContentHeight = true;
- auto newItemAsFlickable = qobject_cast<QQuickFlickable *>(newItem);
- if (newItem && !newItemAsFlickable)
- qmlWarning(this) << "ScrollView only supports Flickable types as its contentItem";
- d->setFlickable(newItemAsFlickable, false);
- }
- QQuickPane::contentItemChange(newItem, oldItem);
-}
-
-void QQuickScrollView::contentSizeChange(const QSizeF &newSize, const QSizeF &oldSize)
-{
- Q_D(QQuickScrollView);
- QQuickPane::contentSizeChange(newSize, oldSize);
- if (d->flickable) {
- // Only set the content size on the flickable if the flickable doesn't
- // have an explicit assignment from before. Otherwise we can end up overwriting
- // assignments done to those properties by the application. The
- // exception is if the application has assigned a content size
- // directly to the scrollview, which will then win even if the
- // application has assigned something else to the flickable.
- if (d->hasContentWidth || !d->flickableHasExplicitContentWidth)
- d->flickable->setContentWidth(newSize.width());
- if (d->hasContentHeight || !d->flickableHasExplicitContentHeight)
- d->flickable->setContentHeight(newSize.height());
- }
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickScrollView::accessibleRole() const
-{
- return QAccessible::Pane;
-}
-#endif
-
-QT_END_NAMESPACE
-
-#include "moc_qquickscrollview_p.cpp"
diff --git a/src/quicktemplates2/qquickscrollview_p.h b/src/quicktemplates2/qquickscrollview_p.h
deleted file mode 100644
index 7eea46dd..00000000
--- a/src/quicktemplates2/qquickscrollview_p.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSCROLLVIEW_P_H
-#define QQUICKSCROLLVIEW_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpane_p.h>
-#include <QtQml/qqmllist.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickScrollViewPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickScrollView : public QQuickPane
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(ScrollView)
- QML_ADDED_IN_VERSION(2, 2)
-
-public:
- explicit QQuickScrollView(QQuickItem *parent = nullptr);
-
-protected:
- bool childMouseEventFilter(QQuickItem *item, QEvent *event) override;
- bool eventFilter(QObject *object, QEvent *event) override;
- void keyPressEvent(QKeyEvent *event) override;
-
- void componentComplete() override;
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
- void contentSizeChange(const QSizeF &newSize, const QSizeF &oldSize) override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickScrollView)
- Q_DECLARE_PRIVATE(QQuickScrollView)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickScrollView)
-
-#endif // QQUICKSCROLLVIEW_P_H
diff --git a/src/quicktemplates2/qquickselectionrectangle.cpp b/src/quicktemplates2/qquickselectionrectangle.cpp
deleted file mode 100644
index 5910e16b..00000000
--- a/src/quicktemplates2/qquickselectionrectangle.cpp
+++ /dev/null
@@ -1,540 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickselectionrectangle_p.h"
-#include "qquickselectionrectangle_p_p.h"
-
-#include <QtQml/qqmlinfo.h>
-
-#include <QtQuick/private/qquicktableview_p_p.h>
-
-#include "qquickscrollview_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype SelectionRectangle
- \inherits Control
-//! \instantiates QQuickSelectionRectangle
- \inqmlmodule QtQuick.Controls
- \since 6.2
- \ingroup utilities
- \brief Used to select table cells inside a TableView
-
- \image qtquickcontrols2-selectionrectangle.png
-
- SelectionRectangle is used for selecting table cells in a TableView. It lets
- the user start a selection by doing a pointer drag inside the viewport, or by
- doing a long press on top of a cell.
-
- For a SelectionRectangle to be able to select cells, TableView must have
- an ItemSelectionModel assigned. The ItemSelectionModel will store any
- selections done on the model, and can be used for querying
- which cells that the user has selected.
-
- The following example shows how you can make a SelectionRectangle target
- a TableView:
-
- \snippet qtquickcontrols2-selectionrectangle.qml 0
-
- \note A SelectionRectangle itself is not shown as part of a selection. Only the
- delegates (like topLeftHandle and bottomRightHandle) are used.
- You should also consider \l {Selecting items}{rendering the TableView delegate as selected}.
-
- \sa TableView, TableView::selectionModel, ItemSelectionModel
-*/
-
-/*!
- \qmlproperty Item QtQuick.Controls::SelectionRectangle::target
-
- This property holds the TableView on which the
- SelectionRectangle should act.
-*/
-
-/*!
- \qmlproperty bool QtQuick.Controls::SelectionRectangle::active
- \readonly
-
- This property is \c true while the user is performing a
- selection. The selection will be active from the time the
- the user starts to select, and until the selection is
- removed again, for example from tapping inside the viewport.
-*/
-
-/*!
- \qmlproperty bool QtQuick.Controls::SelectionRectangle::dragging
- \readonly
-
- This property is \c true whenever the user is doing a pointer drag or
- a handle drag to adjust the selection rectangle.
-*/
-
-/*!
- \qmlproperty Component QtQuick.Controls::SelectionRectangle::topLeftHandle
-
- This property holds the delegate that will be shown on the center of the
- top-left corner of the selection rectangle. When a handle is
- provided, the user can drag it to adjust the selection.
-
- Set this property to \c null if you don't want a selection handle on the top-left.
-
- \sa bottomRightHandle
-*/
-
-/*!
- \qmlproperty Component QtQuick.Controls::SelectionRectangle::bottomRightHandle
-
- This property holds the delegate that will be shown on the center of the
- top-left corner of the selection rectangle. When a handle is
- provided, the user can drag it to adjust the selection.
-
- Set this property to \c null if you don't want a selection handle on the bottom-right.
-
- \sa topLeftHandle
-*/
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::SelectionRectangle::selectionMode
-
- This property holds when a selection should start.
-
- \value SelectionRectangle.Drag A selection will start by doing a pointer drag inside the viewport
- \value SelectionRectangle.PressAndHold A selection will start by doing a press and hold on top a cell
- \value SelectionRectangle.Auto SelectionRectangle will choose which mode to use based on the target
- and the platform. This normally means \c PressAndHold on touch based platforms, and \c Drag on desktop.
- However, \c Drag will only be used if it doesn't conflict with flicking. This means that
- TableView will need to be configured with \c interactive set to \c false, or placed
- inside a ScrollView (where flicking, by default, is off for mouse events), for \c Drag to be chosen.
-
- The default value is \c Auto.
-*/
-
-/*!
- \qmlattachedproperty SelectionRectangle QtQuick::SelectionRectangle::control
-
- This attached property holds the SelectionRectangle that manages the delegate instance.
- It is attached to each handle instance.
-*/
-
-/*!
- \qmlattachedproperty bool QtQuick::SelectionRectangle::dragging
-
- This attached property will be \c true if the user is dragging on the handle.
- It is attached to each handle instance.
-*/
-
-QQuickSelectionRectanglePrivate::QQuickSelectionRectanglePrivate()
- : QQuickControlPrivate()
-{
- m_tapHandler = new QQuickTapHandler();
- m_dragHandler = new QQuickDragHandler();
- m_dragHandler->setTarget(nullptr);
-
- QObject::connect(&m_scrollTimer, &QTimer::timeout, [&]{
- if (m_topLeftHandle && m_draggedHandle == m_topLeftHandle)
- m_selectable->setSelectionStartPos(m_scrollToPoint);
- else
- m_selectable->setSelectionEndPos(m_scrollToPoint);
- updateHandles();
- const QSizeF dist = m_selectable->scrollTowardsSelectionPoint(m_scrollToPoint, m_scrollSpeed);
- m_scrollToPoint.rx() += dist.width() > 0 ? m_scrollSpeed.width() : -m_scrollSpeed.width();
- m_scrollToPoint.ry() += dist.height() > 0 ? m_scrollSpeed.height() : -m_scrollSpeed.height();
- m_scrollSpeed = QSizeF(qAbs(dist.width() * 0.007), qAbs(dist.height() * 0.007));
- });
-
- QObject::connect(m_tapHandler, &QQuickTapHandler::tapped, [=](QEventPoint) {
- m_selectable->clearSelection();
- updateActiveState(false);
- });
-
- QObject::connect(m_tapHandler, &QQuickTapHandler::longPressed, [=]() {
- if (!m_alwaysAcceptPressAndHold) {
- if (m_selectionMode == QQuickSelectionRectangle::Auto) {
- // In Auto mode, we only accept press and hold from touch
- if (m_tapHandler->point().device()->pointerType() != QPointingDevice::PointerType::Finger)
- return;
- } else if (m_selectionMode != QQuickSelectionRectangle::PressAndHold) {
- return;
- }
- }
-
- const QPointF pos = m_tapHandler->point().position();
- m_selectable->clearSelection();
- m_selectable->setSelectionStartPos(pos);
- m_selectable->setSelectionEndPos(pos);
- updateHandles();
- updateActiveState(true);
- });
-
- QObject::connect(m_dragHandler, &QQuickDragHandler::activeChanged, [=]() {
- const QPointF pos = m_dragHandler->centroid().position();
- if (m_dragHandler->active()) {
- m_selectable->clearSelection();
- m_selectable->setSelectionStartPos(pos);
- m_selectable->setSelectionEndPos(pos);
- m_draggedHandle = nullptr;
- updateHandles();
- updateActiveState(true);
- updateDraggingState(true);
- } else {
- m_scrollTimer.stop();
- m_selectable->normalizeSelection();
- updateDraggingState(false);
- }
- });
-
- QObject::connect(m_dragHandler, &QQuickDragHandler::centroidChanged, [=]() {
- if (!m_dragging)
- return;
- const QPointF pos = m_dragHandler->centroid().position();
- m_selectable->setSelectionEndPos(pos);
- updateHandles();
- scrollTowardsPos(pos);
- });
-}
-
-void QQuickSelectionRectanglePrivate::scrollTowardsPos(const QPointF &pos)
-{
- m_scrollToPoint = pos;
- if (m_scrollTimer.isActive())
- return;
-
- const QSizeF dist = m_selectable->scrollTowardsSelectionPoint(m_scrollToPoint, m_scrollSpeed);
- if (!dist.isNull())
- m_scrollTimer.start(1);
-}
-
-void QQuickSelectionRectanglePrivate::updateDraggingState(bool dragging)
-{
- if (dragging != m_dragging) {
- m_dragging = dragging;
- emit q_func()->draggingChanged();
- }
-
- if (auto attached = getAttachedObject(m_draggedHandle))
- attached->setDragging(dragging);
-}
-
-void QQuickSelectionRectanglePrivate::updateActiveState(bool active)
-{
- if (active == m_active)
- return;
-
- m_active = active;
- emit q_func()->activeChanged();
-}
-
-QQuickItem *QQuickSelectionRectanglePrivate::createHandle(QQmlComponent *delegate)
-{
- Q_Q(QQuickSelectionRectangle);
-
- const bool topLeft = (delegate == m_topLeftHandleDelegate);
-
- // Incubate the handle
- const auto handlerTarget = m_selectable->selectionPointerHandlerTarget();
- QObject *obj = delegate->beginCreate(QQmlEngine::contextForObject(q));
- QQuickItem *handleItem = qobject_cast<QQuickItem*>(obj);
- if (auto attached = getAttachedObject(handleItem))
- attached->setControl(q);
- delegate->completeCreate();
- handleItem->setParentItem(handlerTarget);
- if (handleItem->z() == 0)
- handleItem->setZ(100);
-
- // Add pointer handlers to it
- QQuickDragHandler *dragHandler = new QQuickDragHandler();
- dragHandler->setTarget(nullptr);
- dragHandler->setParent(handleItem);
- QQuickItemPrivate::get(handleItem)->addPointerHandler(dragHandler);
-
- QObject::connect(dragHandler, &QQuickDragHandler::activeChanged, [=]() {
- if (dragHandler->active()) {
- const QPointF localPos = dragHandler->centroid().position();
- const QPointF pos = handleItem->mapToItem(handleItem->parentItem(), localPos);
- if (topLeft)
- m_selectable->setSelectionStartPos(pos);
- else
- m_selectable->setSelectionEndPos(pos);
-
- m_draggedHandle = handleItem;
- updateHandles();
- updateDraggingState(true);
- } else {
- m_scrollTimer.stop();
- m_selectable->normalizeSelection();
- updateDraggingState(false);
- }
- });
-
- QObject::connect(dragHandler, &QQuickDragHandler::centroidChanged, [=]() {
- if (!m_dragging)
- return;
-
- const QPointF localPos = dragHandler->centroid().position();
- const QPointF pos = handleItem->mapToItem(handleItem->parentItem(), localPos);
- if (topLeft)
- m_selectable->setSelectionStartPos(pos);
- else
- m_selectable->setSelectionEndPos(pos);
-
- updateHandles();
- scrollTowardsPos(pos);
- });
-
- return handleItem;
-}
-
-void QQuickSelectionRectanglePrivate::updateHandles()
-{
- if (!m_selectable)
- return;
-
- const QRectF rect = m_selectable->selectionRectangle().normalized();
-
- if (!m_topLeftHandle && m_topLeftHandleDelegate)
- m_topLeftHandle = createHandle(m_topLeftHandleDelegate);
-
- if (!m_bottomRightHandle && m_bottomRightHandleDelegate)
- m_bottomRightHandle = createHandle(m_bottomRightHandleDelegate);
-
- if (m_topLeftHandle) {
- m_topLeftHandle->setX(rect.x() - (m_topLeftHandle->width() / 2));
- m_topLeftHandle->setY(rect.y() - (m_topLeftHandle->height() / 2));
- }
-
- if (m_bottomRightHandle) {
- m_bottomRightHandle->setX(rect.x() + rect.width() - (m_bottomRightHandle->width() / 2));
- m_bottomRightHandle->setY(rect.y() + rect.height() - (m_bottomRightHandle->height() / 2));
- }
-}
-
-void QQuickSelectionRectanglePrivate::connectToTarget()
-{
- // To support QuickSelectionRectangle::Auto, we need to listen for changes to the target
- if (const auto flickable = qobject_cast<QQuickFlickable *>(m_target)) {
- connect(flickable, &QQuickFlickable::interactiveChanged, this, &QQuickSelectionRectanglePrivate::updateSelectionMode);
- }
-}
-
-void QQuickSelectionRectanglePrivate::updateSelectionMode()
-{
- Q_Q(QQuickSelectionRectangle);
-
- const bool enabled = q->isEnabled();
- m_tapHandler->setEnabled(enabled);
-
- if (m_selectionMode == QQuickSelectionRectangle::Auto) {
- if (qobject_cast<QQuickScrollView *>(m_target->parentItem())) {
- // ScrollView allows flicking with touch, but not with mouse. So we do
- // the same here: you can drag to select with a mouse, but not with touch.
- m_dragHandler->setAcceptedDevices(QInputDevice::DeviceType::Mouse);
- m_dragHandler->setEnabled(enabled);
- } else if (const auto flickable = qobject_cast<QQuickFlickable *>(m_target)) {
- m_dragHandler->setEnabled(enabled && !flickable->isInteractive());
- } else {
- m_dragHandler->setAcceptedDevices(QInputDevice::DeviceType::Mouse);
- m_dragHandler->setEnabled(enabled);
- }
- } else if (m_selectionMode == QQuickSelectionRectangle::Drag) {
- m_dragHandler->setAcceptedDevices(QInputDevice::DeviceType::AllDevices);
- m_dragHandler->setEnabled(enabled);
- } else {
- m_dragHandler->setEnabled(false);
- }
-
- // If you can't select using a drag, we always accept a PressAndHold
- m_alwaysAcceptPressAndHold = !m_dragHandler->enabled();
-}
-
-QQuickSelectionRectangleAttached *QQuickSelectionRectanglePrivate::getAttachedObject(const QObject *object) const
-{
- QObject *attachedObject = qmlAttachedPropertiesObject<QQuickSelectionRectangle>(object);
- return static_cast<QQuickSelectionRectangleAttached *>(attachedObject);
-}
-
-// --------------------------------------------------------
-
-QQuickSelectionRectangle::QQuickSelectionRectangle(QQuickItem *parent)
- : QQuickControl(*(new QQuickSelectionRectanglePrivate), parent)
-{
- Q_D(QQuickSelectionRectangle);
-
- QObject::connect(this, &QQuickItem::enabledChanged, [=]() {
- d->m_scrollTimer.stop();
- d->updateSelectionMode();
- d->updateDraggingState(false);
- d->updateActiveState(false);
- });
-}
-
-QQuickItem *QQuickSelectionRectangle::target() const
-{
- return d_func()->m_target;
-}
-
-void QQuickSelectionRectangle::setTarget(QQuickItem *target)
-{
- Q_D(QQuickSelectionRectangle);
- if (d->m_target == target)
- return;
-
- if (d->m_selectable) {
- d->m_scrollTimer.stop();
- d->m_tapHandler->setParent(nullptr);
- d->m_dragHandler->setParent(nullptr);
- d->m_target->disconnect(this);
- }
-
- d->m_target = target;
- d->m_selectable = nullptr;
-
- if (d->m_target) {
- d->m_selectable = dynamic_cast<QQuickSelectable *>(QObjectPrivate::get(d->m_target.data()));
- if (!d->m_selectable)
- qmlWarning(this) << "the assigned target is not supported by the control";
- }
-
- if (d->m_selectable) {
- const auto handlerTarget = d->m_selectable->selectionPointerHandlerTarget();
- d->m_dragHandler->setParent(handlerTarget);
- d->m_tapHandler->setParent(handlerTarget);
- QQuickItemPrivate::get(handlerTarget)->addPointerHandler(d->m_tapHandler);
- QQuickItemPrivate::get(handlerTarget)->addPointerHandler(d->m_dragHandler);
- d->connectToTarget();
- d->updateSelectionMode();
- }
-
- emit targetChanged();
-}
-
-bool QQuickSelectionRectangle::active()
-{
- return d_func()->m_active;
-}
-
-bool QQuickSelectionRectangle::dragging()
-{
- return d_func()->m_dragging;
-}
-
-QQuickSelectionRectangle::SelectionMode QQuickSelectionRectangle::selectionMode() const
-{
- return d_func()->m_selectionMode;
-}
-
-void QQuickSelectionRectangle::setSelectionMode(QQuickSelectionRectangle::SelectionMode selectionMode)
-{
- Q_D(QQuickSelectionRectangle);
- if (d->m_selectionMode == selectionMode)
- return;
-
- d->m_selectionMode = selectionMode;
-
- if (d->m_target)
- d->updateSelectionMode();
-
- emit selectionModeChanged();
-}
-
-QQmlComponent *QQuickSelectionRectangle::topLeftHandle() const
-{
- return d_func()->m_topLeftHandleDelegate;
-}
-
-void QQuickSelectionRectangle::setTopLeftHandle(QQmlComponent *topLeftHandle)
-{
- Q_D(QQuickSelectionRectangle);
- if (d->m_topLeftHandleDelegate == topLeftHandle)
- return;
-
- d->m_topLeftHandleDelegate = topLeftHandle;
- emit topLeftHandleChanged();
-}
-
-QQmlComponent *QQuickSelectionRectangle::bottomRightHandle() const
-{
- return d_func()->m_bottomRightHandleDelegate;
-}
-
-void QQuickSelectionRectangle::setBottomRightHandle(QQmlComponent *bottomRightHandle)
-{
- Q_D(QQuickSelectionRectangle);
- if (d->m_bottomRightHandleDelegate == bottomRightHandle)
- return;
-
- d->m_bottomRightHandleDelegate = bottomRightHandle;
- emit bottomRightHandleChanged();
-}
-
-QQuickSelectionRectangleAttached *QQuickSelectionRectangle::qmlAttachedProperties(QObject *obj)
-{
- return new QQuickSelectionRectangleAttached(obj);
-}
-
-QQuickSelectionRectangleAttached::QQuickSelectionRectangleAttached(QObject *parent)
- : QObject(parent)
-{
-}
-
-QQuickSelectionRectangle *QQuickSelectionRectangleAttached::control() const
-{
- return m_control;
-}
-
-void QQuickSelectionRectangleAttached::setControl(QQuickSelectionRectangle *control)
-{
- if (m_control == control)
- return;
-
- m_control = control;
- emit controlChanged();
-}
-
-bool QQuickSelectionRectangleAttached::dragging() const
-{
- return m_dragging;
-}
-
-void QQuickSelectionRectangleAttached::setDragging(bool dragging)
-{
- if (m_dragging == dragging)
- return;
-
- m_dragging = dragging;
- emit draggingChanged();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickselectionrectangle_p.h b/src/quicktemplates2/qquickselectionrectangle_p.h
deleted file mode 100644
index 3acf1b10..00000000
--- a/src/quicktemplates2/qquickselectionrectangle_p.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSELECTIONRECTANGLE_P_H
-#define QQUICKSELECTIONRECTANGLE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuick/qquickitem.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickSelectionRectanglePrivate;
-class QQuickSelectable;
-class QQuickSelectionRectangleAttached;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSelectionRectangle : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(SelectionMode selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged FINAL)
- Q_PROPERTY(QQuickItem *target READ target WRITE setTarget NOTIFY targetChanged FINAL)
- Q_PROPERTY(QQmlComponent *topLeftHandle READ topLeftHandle WRITE setTopLeftHandle NOTIFY topLeftHandleChanged FINAL)
- Q_PROPERTY(QQmlComponent *bottomRightHandle READ bottomRightHandle WRITE setBottomRightHandle NOTIFY bottomRightHandleChanged FINAL)
- Q_PROPERTY(bool active READ active NOTIFY activeChanged FINAL)
- Q_PROPERTY(bool dragging READ dragging NOTIFY draggingChanged FINAL)
-
- QML_NAMED_ELEMENT(SelectionRectangle)
- QML_ATTACHED(QQuickSelectionRectangleAttached)
- QML_ADDED_IN_VERSION(6, 2)
-
-public:
- enum SelectionMode {
- Drag,
- PressAndHold,
- Auto
- };
- Q_ENUM(SelectionMode)
-
- explicit QQuickSelectionRectangle(QQuickItem *parent = nullptr);
-
- QQuickItem *target() const;
- void setTarget(QQuickItem *target);
-
- bool active();
- bool dragging();
-
- SelectionMode selectionMode() const;
- void setSelectionMode(SelectionMode selectionMode);
-
- QQmlComponent *topLeftHandle() const;
- void setTopLeftHandle(QQmlComponent *topLeftHandle);
- QQmlComponent *bottomRightHandle() const;
- void setBottomRightHandle(QQmlComponent *bottomRightHandle);
-
- static QQuickSelectionRectangleAttached *qmlAttachedProperties(QObject *obj);
-
-Q_SIGNALS:
- void targetChanged();
- bool activeChanged();
- bool draggingChanged();
- void topLeftHandleChanged();
- void bottomRightHandleChanged();
- void selectionModeChanged();
-
-private:
- Q_DISABLE_COPY(QQuickSelectionRectangle)
- Q_DECLARE_PRIVATE(QQuickSelectionRectangle)
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSelectionRectangleAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickSelectionRectangle *control READ control NOTIFY controlChanged FINAL)
- Q_PROPERTY(bool dragging READ dragging NOTIFY draggingChanged FINAL)
-
-public:
- QQuickSelectionRectangleAttached(QObject *parent);
-
- QQuickSelectionRectangle *control() const;
- void setControl(QQuickSelectionRectangle *control);
-
- bool dragging() const;
- void setDragging(bool dragging);
-
-Q_SIGNALS:
- void controlChanged();
- void draggingChanged();
-
-private:
- QPointer<QQuickSelectionRectangle> m_control;
- bool m_dragging = false;
-
- friend class QQuickSelectionRectanglePrivate;
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickSelectionRectangle)
-
-#endif // QQUICKSELECTIONRECTANGLE_P_H
diff --git a/src/quicktemplates2/qquickselectionrectangle_p_p.h b/src/quicktemplates2/qquickselectionrectangle_p_p.h
deleted file mode 100644
index 2ed3e035..00000000
--- a/src/quicktemplates2/qquickselectionrectangle_p_p.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSELECTIONRECTANGLE_P_P_H
-#define QQUICKSELECTIONRECTANGLE_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qquickselectionrectangle_p.h"
-
-#include <QtCore/qpointer.h>
-#include <QtCore/qtimer.h>
-
-#include <QtQuick/private/qquickselectable_p.h>
-#include <QtQuick/private/qquicktaphandler_p.h>
-#include <QtQuick/private/qquickdraghandler_p.h>
-
-#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickSelectionRectanglePrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickSelectionRectangle)
-
-public:
- QQuickSelectionRectanglePrivate();
-
- void updateDraggingState(bool isDragging);
- void updateActiveState(bool isActive);
- void updateHandles();
- void updateSelectionMode();
- void connectToTarget();
- void scrollTowardsPos(const QPointF &pos);
-
- QQuickItem *createHandle(QQmlComponent *delegate);
-
- QQuickSelectionRectangleAttached *getAttachedObject(const QObject *object) const;
-
-public:
- QPointer<QQuickItem> m_target;
-
- QQmlComponent *m_topLeftHandleDelegate = nullptr;
- QQmlComponent *m_bottomRightHandleDelegate = nullptr;
- QPointer<QQuickItem> m_topLeftHandle;
- QPointer<QQuickItem> m_bottomRightHandle;
- QPointer<QQuickItem> m_draggedHandle = nullptr;
-
- QQuickSelectable *m_selectable = nullptr;
-
- QQuickTapHandler *m_tapHandler = nullptr;
- QQuickDragHandler *m_dragHandler = nullptr;
-
- QTimer m_scrollTimer;
- QPointF m_scrollToPoint;
- QSizeF m_scrollSpeed = QSizeF(1, 1);
-
- QQuickSelectionRectangle::SelectionMode m_selectionMode = QQuickSelectionRectangle::Auto;
- bool m_alwaysAcceptPressAndHold = false;
-
- bool m_enabled = true;
- bool m_active = false;
- bool m_dragging = false;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSELECTIONRECTANGLE_P_P_H
diff --git a/src/quicktemplates2/qquickshortcutcontext.cpp b/src/quicktemplates2/qquickshortcutcontext.cpp
deleted file mode 100644
index b2b03e5d..00000000
--- a/src/quicktemplates2/qquickshortcutcontext.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickshortcutcontext_p_p.h"
-#include "qquickoverlay_p_p.h"
-#include "qquicktooltip_p.h"
-#include "qquickpopup_p.h"
-
-#include <QtGui/qguiapplication.h>
-#include <QtQuick/qquickrendercontrol.h>
-
-QT_BEGIN_NAMESPACE
-
-static bool isBlockedByPopup(QQuickItem *item)
-{
- if (!item || !item->window())
- return false;
-
- QQuickOverlay *overlay = QQuickOverlay::overlay(item->window());
- const auto popups = QQuickOverlayPrivate::get(overlay)->stackingOrderPopups();
- for (QQuickPopup *popup : popups) {
- if (qobject_cast<QQuickToolTip *>(popup))
- continue; // ignore tooltips (QTBUG-60492)
- if (popup->isModal() || popup->closePolicy() & QQuickPopup::CloseOnEscape) {
- return item != popup->popupItem() && !popup->popupItem()->isAncestorOf(item);
- }
- }
-
- return false;
-}
-
-bool QQuickShortcutContext::matcher(QObject *obj, Qt::ShortcutContext context)
-{
- QQuickItem *item = nullptr;
- switch (context) {
- case Qt::ApplicationShortcut:
- return true;
- case Qt::WindowShortcut:
- while (obj && !obj->isWindowType()) {
- item = qobject_cast<QQuickItem *>(obj);
- if (item && item->window()) {
- obj = item->window();
- break;
- } else if (QQuickPopup *popup = qobject_cast<QQuickPopup *>(obj)) {
- obj = popup->window();
- item = popup->popupItem();
- break;
- }
- obj = obj->parent();
- }
- if (QWindow *renderWindow = QQuickRenderControl::renderWindowFor(qobject_cast<QQuickWindow *>(obj)))
- obj = renderWindow;
- return obj && obj == QGuiApplication::focusWindow() && !isBlockedByPopup(item);
- default:
- return false;
- }
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickshortcutcontext_p_p.h b/src/quicktemplates2/qquickshortcutcontext_p_p.h
deleted file mode 100644
index 44e63f1e..00000000
--- a/src/quicktemplates2/qquickshortcutcontext_p_p.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSHORTCUTCONTEXT_P_P_H
-#define QQUICKSHORTCUTCONTEXT_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qnamespace.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QObject;
-
-struct Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickShortcutContext
-{
- static bool matcher(QObject *object, Qt::ShortcutContext context);
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSHORTCUTCONTEXT_P_P_H
diff --git a/src/quicktemplates2/qquickslider.cpp b/src/quicktemplates2/qquickslider.cpp
deleted file mode 100644
index 7f6b025d..00000000
--- a/src/quicktemplates2/qquickslider.cpp
+++ /dev/null
@@ -1,893 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickslider_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtQuick/private/qquickwindow_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Slider
- \inherits Control
-//! \instantiates QQuickSlider
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-input
- \brief Used to select a value by sliding a handle along a track.
-
- \image qtquickcontrols2-slider.gif
-
- Slider is used to select a value by sliding a handle along a track.
-
- In the example below, custom \l from, \l value, and \l to values are set:
-
- \code
- Slider {
- from: 1
- value: 25
- to: 100
- }
- \endcode
-
- The \l position property is expressed as a fraction of the control's size,
- in the range \c {0.0 - 1.0}. The \l visualPosition property is
- the same, except that it is reversed in a
- \l {Right-to-left User Interfaces}{right-to-left} application. The
- visualPosition is useful for positioning the handle when styling Slider.
- In the example above, \l visualPosition will be \c 0.24 in a left-to-right
- application, and \c 0.76 in a right-to-left application.
-
- For a slider that allows the user to select a range by providing two
- handles, see \l RangeSlider.
-
- \sa {Customizing Slider}, {Input Controls}
-*/
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlsignal QtQuick.Controls::Slider::moved()
-
- This signal is emitted when the slider has been interactively moved
- by the user by either touch, mouse, wheel, or keys.
-*/
-
-class QQuickSliderPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickSlider)
-
-public:
- qreal snapPosition(qreal position) const;
- qreal positionAt(const QPointF &point) const;
- void setPosition(qreal position);
- void updatePosition();
-
- void handlePress(const QPointF &point, ulong timestamp) override;
- void handleMove(const QPointF &point, ulong timestamp) override;
- void handleRelease(const QPointF &point, ulong timestamp) override;
- void handleUngrab() override;
-
- void cancelHandle();
- void executeHandle(bool complete = false);
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- qreal from = 0;
- qreal to = 1;
- qreal value = 0;
- qreal position = 0;
- qreal stepSize = 0;
- qreal touchDragThreshold = -1; // in QQuickWindowPrivate::dragOverThreshold, '-1' implies using styleHints::startDragDistance()
- bool live = true;
- bool pressed = false;
- QPointF pressPoint;
- Qt::Orientation orientation = Qt::Horizontal;
- QQuickSlider::SnapMode snapMode = QQuickSlider::NoSnap;
- QQuickDeferredPointer<QQuickItem> handle;
-};
-
-qreal QQuickSliderPrivate::snapPosition(qreal position) const
-{
- const qreal range = to - from;
- if (qFuzzyIsNull(range))
- return position;
-
- const qreal effectiveStep = stepSize / range;
- if (qFuzzyIsNull(effectiveStep))
- return position;
-
- return qRound(position / effectiveStep) * effectiveStep;
-}
-
-qreal QQuickSliderPrivate::positionAt(const QPointF &point) const
-{
- Q_Q(const QQuickSlider);
- qreal pos = 0.0;
- if (orientation == Qt::Horizontal) {
- const qreal hw = handle ? handle->width() : 0;
- const qreal offset = hw / 2;
- const qreal extent = q->availableWidth() - hw;
- if (!qFuzzyIsNull(extent)) {
- if (q->isMirrored())
- pos = (q->width() - point.x() - q->rightPadding() - offset) / extent;
- else
- pos = (point.x() - q->leftPadding() - offset) / extent;
- }
- } else {
- const qreal hh = handle ? handle->height() : 0;
- const qreal offset = hh / 2;
- const qreal extent = q->availableHeight() - hh;
- if (!qFuzzyIsNull(extent))
- pos = (q->height() - point.y() - q->bottomPadding() - offset) / extent;
- }
- return qBound<qreal>(0.0, pos, 1.0);
-}
-
-void QQuickSliderPrivate::setPosition(qreal pos)
-{
- Q_Q(QQuickSlider);
- pos = qBound<qreal>(0.0, pos, 1.0);
- if (qFuzzyCompare(position, pos))
- return;
-
- position = pos;
- emit q->positionChanged();
- emit q->visualPositionChanged();
-}
-
-void QQuickSliderPrivate::updatePosition()
-{
- qreal pos = 0;
- if (!qFuzzyCompare(from, to))
- pos = (value - from) / (to - from);
- setPosition(pos);
-}
-
-void QQuickSliderPrivate::handlePress(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSlider);
- QQuickControlPrivate::handlePress(point, timestamp);
- pressPoint = point;
- q->setPressed(true);
-}
-
-void QQuickSliderPrivate::handleMove(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSlider);
- QQuickControlPrivate::handleMove(point, timestamp);
- const qreal oldPos = position;
- qreal pos = positionAt(point);
- if (snapMode == QQuickSlider::SnapAlways)
- pos = snapPosition(pos);
- if (live)
- q->setValue(q->valueAt(pos));
- if (!live || snapMode == QQuickSlider::NoSnap || snapMode == QQuickSlider::SnapOnRelease)
- setPosition(pos);
- if (!qFuzzyCompare(pos, oldPos))
- emit q->moved();
-}
-
-void QQuickSliderPrivate::handleRelease(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSlider);
- QQuickControlPrivate::handleRelease(point, timestamp);
- pressPoint = QPointF();
- const qreal oldPos = position;
- qreal pos = positionAt(point);
- if (snapMode != QQuickSlider::NoSnap)
- pos = snapPosition(pos);
- qreal val = q->valueAt(pos);
- if (!qFuzzyCompare(val, value))
- q->setValue(val);
- else if (snapMode != QQuickSlider::NoSnap)
- setPosition(pos);
- if (!qFuzzyCompare(pos, oldPos))
- emit q->moved();
- q->setKeepMouseGrab(false);
- q->setKeepTouchGrab(false);
- q->setPressed(false);
-}
-
-void QQuickSliderPrivate::handleUngrab()
-{
- Q_Q(QQuickSlider);
- QQuickControlPrivate::handleUngrab();
- pressPoint = QPointF();
- q->setPressed(false);
-}
-
-static inline QString handleName() { return QStringLiteral("handle"); }
-
-void QQuickSliderPrivate::cancelHandle()
-{
- Q_Q(QQuickSlider);
- quickCancelDeferred(q, handleName());
-}
-
-void QQuickSliderPrivate::executeHandle(bool complete)
-{
- Q_Q(QQuickSlider);
- if (handle.wasExecuted())
- return;
-
- if (!handle || complete)
- quickBeginDeferred(q, handleName(), handle);
- if (complete)
- quickCompleteDeferred(q, handleName(), handle);
-}
-
-void QQuickSliderPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_Q(QQuickSlider);
- QQuickControlPrivate::itemImplicitWidthChanged(item);
- if (item == handle)
- emit q->implicitHandleWidthChanged();
-}
-
-void QQuickSliderPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_Q(QQuickSlider);
- QQuickControlPrivate::itemImplicitHeightChanged(item);
- if (item == handle)
- emit q->implicitHandleHeightChanged();
-}
-
-QQuickSlider::QQuickSlider(QQuickItem *parent)
- : QQuickControl(*(new QQuickSliderPrivate), parent)
-{
- setActiveFocusOnTab(true);
-#ifdef Q_OS_MACOS
- setFocusPolicy(Qt::TabFocus);
-#else
- setFocusPolicy(Qt::StrongFocus);
-#endif
- setAcceptedMouseButtons(Qt::LeftButton);
-#if QT_CONFIG(quicktemplates2_multitouch)
- setAcceptTouchEvents(true);
-#endif
-#if QT_CONFIG(cursor)
- setCursor(Qt::ArrowCursor);
-#endif
-}
-
-QQuickSlider::~QQuickSlider()
-{
- Q_D(QQuickSlider);
- d->removeImplicitSizeListener(d->handle);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Slider::from
-
- This property holds the starting value for the range. The default value is \c 0.0.
-
- \sa to, value
-*/
-qreal QQuickSlider::from() const
-{
- Q_D(const QQuickSlider);
- return d->from;
-}
-
-void QQuickSlider::setFrom(qreal from)
-{
- Q_D(QQuickSlider);
- if (qFuzzyCompare(d->from, from))
- return;
-
- d->from = from;
- emit fromChanged();
- if (isComponentComplete()) {
- setValue(d->value);
- d->updatePosition();
- }
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Slider::to
-
- This property holds the end value for the range. The default value is \c 1.0.
-
- \sa from, value
-*/
-qreal QQuickSlider::to() const
-{
- Q_D(const QQuickSlider);
- return d->to;
-}
-
-void QQuickSlider::setTo(qreal to)
-{
- Q_D(QQuickSlider);
- if (qFuzzyCompare(d->to, to))
- return;
-
- d->to = to;
- emit toChanged();
- if (isComponentComplete()) {
- setValue(d->value);
- d->updatePosition();
- }
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Slider::value
-
- This property holds the value in the range \c from - \c to. The default value is \c 0.0.
-
- \sa position
-*/
-qreal QQuickSlider::value() const
-{
- Q_D(const QQuickSlider);
- return d->value;
-}
-
-void QQuickSlider::setValue(qreal value)
-{
- Q_D(QQuickSlider);
- if (isComponentComplete())
- value = d->from > d->to ? qBound(d->to, value, d->from) : qBound(d->from, value, d->to);
-
- if (qFuzzyCompare(d->value, value))
- return;
-
- d->value = value;
- d->updatePosition();
- emit valueChanged();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Slider::position
- \readonly
-
- This property holds the logical position of the handle.
-
- The position is expressed as a fraction of the control's size, in the range
- \c {0.0 - 1.0}. For visualizing a slider, the right-to-left aware
- \l visualPosition should be used instead.
-
- \sa value, visualPosition, valueAt()
-*/
-qreal QQuickSlider::position() const
-{
- Q_D(const QQuickSlider);
- return d->position;
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Slider::visualPosition
- \readonly
-
- This property holds the visual position of the handle.
-
- The position is expressed as a fraction of the control's size, in the range
- \c {0.0 - 1.0}. When the control is \l {Control::mirrored}{mirrored}, the
- value is equal to \c {1.0 - position}. This makes the value suitable for
- visualizing the slider, taking right-to-left support into account.
-
- \sa position
-*/
-qreal QQuickSlider::visualPosition() const
-{
- Q_D(const QQuickSlider);
- if (d->orientation == Qt::Vertical || isMirrored())
- return 1.0 - d->position;
- return d->position;
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Slider::stepSize
-
- This property holds the step size. The default value is \c 0.0.
-
- \sa snapMode, increase(), decrease()
-*/
-qreal QQuickSlider::stepSize() const
-{
- Q_D(const QQuickSlider);
- return d->stepSize;
-}
-
-void QQuickSlider::setStepSize(qreal step)
-{
- Q_D(QQuickSlider);
- if (qFuzzyCompare(d->stepSize, step))
- return;
-
- d->stepSize = step;
- emit stepSizeChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::Slider::snapMode
-
- This property holds the snap mode.
-
- The snap mode determines how the slider handle behaves with
- regards to the \l stepSize.
-
- Possible values:
- \value Slider.NoSnap The slider does not snap (default).
- \value Slider.SnapAlways The slider snaps while the handle is dragged.
- \value Slider.SnapOnRelease The slider does not snap while being dragged, but only after the handle is released.
-
- In the following table, the various modes are illustrated with animations.
- The movement of the mouse cursor and the \l stepSize (\c 0.2) are identical
- in each animation.
-
- \table
- \header
- \row \li \b Value \li \b Example
- \row \li \c Slider.NoSnap \li \image qtquickcontrols2-slider-nosnap.gif
- \row \li \c Slider.SnapAlways \li \image qtquickcontrols2-slider-snapalways.gif
- \row \li \c Slider.SnapOnRelease \li \image qtquickcontrols2-slider-snaponrelease.gif
- \endtable
-
- \sa stepSize
-*/
-QQuickSlider::SnapMode QQuickSlider::snapMode() const
-{
- Q_D(const QQuickSlider);
- return d->snapMode;
-}
-
-void QQuickSlider::setSnapMode(SnapMode mode)
-{
- Q_D(QQuickSlider);
- if (d->snapMode == mode)
- return;
-
- d->snapMode = mode;
- emit snapModeChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Slider::pressed
-
- This property holds whether the slider is pressed by either touch, mouse,
- or keys.
-*/
-bool QQuickSlider::isPressed() const
-{
- Q_D(const QQuickSlider);
- return d->pressed;
-}
-
-void QQuickSlider::setPressed(bool pressed)
-{
- Q_D(QQuickSlider);
- if (d->pressed == pressed)
- return;
-
- d->pressed = pressed;
- setAccessibleProperty("pressed", pressed);
- emit pressedChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::Slider::horizontal
- \readonly
-
- This property holds whether the slider is horizontal.
-
- \sa orientation
-*/
-bool QQuickSlider::isHorizontal() const
-{
- Q_D(const QQuickSlider);
- return d->orientation == Qt::Horizontal;
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::Slider::vertical
- \readonly
-
- This property holds whether the slider is vertical.
-
- \sa orientation
-*/
-bool QQuickSlider::isVertical() const
-{
- Q_D(const QQuickSlider);
- return d->orientation == Qt::Vertical;
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::Slider::orientation
-
- This property holds the orientation.
-
- Possible values:
- \value Qt.Horizontal Horizontal (default)
- \value Qt.Vertical Vertical
-
- \sa horizontal, vertical
-*/
-Qt::Orientation QQuickSlider::orientation() const
-{
- Q_D(const QQuickSlider);
- return d->orientation;
-}
-
-void QQuickSlider::setOrientation(Qt::Orientation orientation)
-{
- Q_D(QQuickSlider);
- if (d->orientation == orientation)
- return;
-
- d->orientation = orientation;
- emit orientationChanged();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Slider::handle
-
- This property holds the handle item.
-
- \sa {Customizing Slider}
-*/
-QQuickItem *QQuickSlider::handle() const
-{
- QQuickSliderPrivate *d = const_cast<QQuickSliderPrivate *>(d_func());
- if (!d->handle)
- d->executeHandle();
- return d->handle;
-}
-
-void QQuickSlider::setHandle(QQuickItem *handle)
-{
- Q_D(QQuickSlider);
- if (d->handle == handle)
- return;
-
- if (!d->handle.isExecuting())
- d->cancelHandle();
-
- const qreal oldImplicitHandleWidth = implicitHandleWidth();
- const qreal oldImplicitHandleHeight = implicitHandleHeight();
-
- d->removeImplicitSizeListener(d->handle);
- QQuickControlPrivate::hideOldItem(d->handle);
- d->handle = handle;
-
- if (handle) {
- if (!handle->parentItem())
- handle->setParentItem(this);
- d->addImplicitSizeListener(handle);
- }
-
- if (!qFuzzyCompare(oldImplicitHandleWidth, implicitHandleWidth()))
- emit implicitHandleWidthChanged();
- if (!qFuzzyCompare(oldImplicitHandleHeight, implicitHandleHeight()))
- emit implicitHandleHeightChanged();
- if (!d->handle.isExecuting())
- emit handleChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlmethod real QtQuick.Controls::Slider::valueAt(real position)
-
- Returns the value for the given \a position.
-
- \sa value, position
-*/
-qreal QQuickSlider::valueAt(qreal position) const
-{
- Q_D(const QQuickSlider);
- const qreal value = (d->to - d->from) * position;
- if (qFuzzyIsNull(d->stepSize))
- return d->from + value;
- return d->from + qRound(value / d->stepSize) * d->stepSize;
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty bool QtQuick.Controls::Slider::live
-
- This property holds whether the slider provides live updates for the \l value
- property while the handle is dragged.
-
- The default value is \c true.
-
- \sa value, valueAt()
-*/
-bool QQuickSlider::live() const
-{
- Q_D(const QQuickSlider);
- return d->live;
-}
-
-void QQuickSlider::setLive(bool live)
-{
- Q_D(QQuickSlider);
- if (d->live == live)
- return;
-
- d->live = live;
- emit liveChanged();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Slider::increase()
-
- Increases the value by \l stepSize or \c 0.1 if stepSize is not defined.
-
- \sa stepSize
-*/
-void QQuickSlider::increase()
-{
- Q_D(QQuickSlider);
- qreal step = qFuzzyIsNull(d->stepSize) ? 0.1 : d->stepSize;
- setValue(d->value + step);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Slider::decrease()
-
- Decreases the value by \l stepSize or \c 0.1 if stepSize is not defined.
-
- \sa stepSize
-*/
-void QQuickSlider::decrease()
-{
- Q_D(QQuickSlider);
- qreal step = qFuzzyIsNull(d->stepSize) ? 0.1 : d->stepSize;
- setValue(d->value - step);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty qreal QtQuick.Controls::Slider::touchDragThreshold
-
- This property holds the threshold (in logical pixels) at which a touch drag event will be initiated.
- The mouse drag threshold won't be affected.
- The default value is \c Qt.styleHints.startDragDistance.
-
- \sa QStyleHints
-*/
-qreal QQuickSlider::touchDragThreshold() const
-{
- Q_D(const QQuickSlider);
- return d->touchDragThreshold;
-}
-
-void QQuickSlider::setTouchDragThreshold(qreal touchDragThreshold)
-{
- Q_D(QQuickSlider);
- if (d->touchDragThreshold == touchDragThreshold)
- return;
-
- d->touchDragThreshold = touchDragThreshold;
- emit touchDragThresholdChanged();
-}
-
-void QQuickSlider::resetTouchDragThreshold()
-{
- setTouchDragThreshold(-1);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Slider::implicitHandleWidth
- \readonly
-
- This property holds the implicit handle width.
-
- The value is equal to \c {handle ? handle.implicitWidth : 0}.
-
- This is typically used, together with \l {Control::}{implicitContentWidth} and
- \l {Control::}{implicitBackgroundWidth}, to calculate the \l {Item::}{implicitWidth}.
-
- \sa implicitHandleHeight
-*/
-qreal QQuickSlider::implicitHandleWidth() const
-{
- Q_D(const QQuickSlider);
- if (!d->handle)
- return 0;
- return d->handle->implicitWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::Slider::implicitHandleHeight
- \readonly
-
- This property holds the implicit handle height.
-
- The value is equal to \c {handle ? handle.implicitHeight : 0}.
-
- This is typically used, together with \l {Control::}{implicitContentHeight} and
- \l {Control::}{implicitBackgroundHeight}, to calculate the \l {Item::}{implicitHeight}.
-
- \sa implicitHandleWidth
-*/
-qreal QQuickSlider::implicitHandleHeight() const
-{
- Q_D(const QQuickSlider);
- if (!d->handle)
- return 0;
- return d->handle->implicitHeight();
-}
-
-void QQuickSlider::keyPressEvent(QKeyEvent *event)
-{
- Q_D(QQuickSlider);
- QQuickControl::keyPressEvent(event);
-
- const qreal oldValue = d->value;
- if (d->orientation == Qt::Horizontal) {
- if (event->key() == Qt::Key_Left) {
- setPressed(true);
- if (isMirrored())
- increase();
- else
- decrease();
- event->accept();
- } else if (event->key() == Qt::Key_Right) {
- setPressed(true);
- if (isMirrored())
- decrease();
- else
- increase();
- event->accept();
- }
- } else {
- if (event->key() == Qt::Key_Up) {
- setPressed(true);
- increase();
- event->accept();
- } else if (event->key() == Qt::Key_Down) {
- setPressed(true);
- decrease();
- event->accept();
- }
- }
- if (!qFuzzyCompare(d->value, oldValue))
- emit moved();
-}
-
-void QQuickSlider::keyReleaseEvent(QKeyEvent *event)
-{
- QQuickControl::keyReleaseEvent(event);
- setPressed(false);
-}
-
-void QQuickSlider::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickSlider);
- QQuickControl::mousePressEvent(event);
- d->handleMove(event->position(), event->timestamp());
- setKeepMouseGrab(true);
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickSlider::touchEvent(QTouchEvent *event)
-{
- Q_D(QQuickSlider);
- switch (event->type()) {
- case QEvent::TouchUpdate:
- for (const QTouchEvent::TouchPoint &point : event->points()) {
- if (!d->acceptTouch(point))
- continue;
-
- switch (point.state()) {
- case QEventPoint::Pressed:
- d->handlePress(point.position(), event->timestamp());
- break;
- case QEventPoint::Updated:
- if (!keepTouchGrab()) {
- if (d->orientation == Qt::Horizontal)
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().x() - d->pressPoint.x(), Qt::XAxis, &point, qRound(d->touchDragThreshold)));
- else
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().y() - d->pressPoint.y(), Qt::YAxis, &point, qRound(d->touchDragThreshold)));
- }
- if (keepTouchGrab())
- d->handleMove(point.position(), event->timestamp());
- break;
- case QEventPoint::Released:
- d->handleRelease(point.position(), event->timestamp());
- break;
- default:
- break;
- }
- }
- break;
-
- default:
- QQuickControl::touchEvent(event);
- break;
- }
-}
-#endif
-
-#if QT_CONFIG(wheelevent)
-void QQuickSlider::wheelEvent(QWheelEvent *event)
-{
- Q_D(QQuickSlider);
- QQuickControl::wheelEvent(event);
- if (d->wheelEnabled) {
- const qreal oldValue = d->value;
- const QPointF angle = event->angleDelta();
- const qreal delta = (qFuzzyIsNull(angle.y()) ? angle.x() : (event->inverted() ? -angle.y() : angle.y())) / QWheelEvent::DefaultDeltasPerStep;
- const qreal step = qFuzzyIsNull(d->stepSize) ? 0.1 : d->stepSize;
- setValue(oldValue + step * delta);
- const bool wasMoved = !qFuzzyCompare(d->value, oldValue);
- if (wasMoved)
- emit moved();
- }
-}
-#endif
-
-void QQuickSlider::mirrorChange()
-{
- QQuickControl::mirrorChange();
- emit visualPositionChanged();
-}
-
-void QQuickSlider::componentComplete()
-{
- Q_D(QQuickSlider);
- d->executeHandle(true);
- QQuickControl::componentComplete();
- setValue(d->value);
- d->updatePosition();
-}
-
-#if QT_CONFIG(accessibility)
-void QQuickSlider::accessibilityActiveChanged(bool active)
-{
- QQuickControl::accessibilityActiveChanged(active);
-
- Q_D(QQuickSlider);
- if (active)
- setAccessibleProperty("pressed", d->pressed);
-}
-
-QAccessible::Role QQuickSlider::accessibleRole() const
-{
- return QAccessible::Slider;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickslider_p.h b/src/quicktemplates2/qquickslider_p.h
deleted file mode 100644
index ac03f7f9..00000000
--- a/src/quicktemplates2/qquickslider_p.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSLIDER_P_H
-#define QQUICKSLIDER_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickSliderPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSlider : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged FINAL)
- Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged FINAL)
- Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY valueChanged FINAL)
- Q_PROPERTY(qreal position READ position NOTIFY positionChanged FINAL)
- Q_PROPERTY(qreal visualPosition READ visualPosition NOTIFY visualPositionChanged FINAL)
- Q_PROPERTY(qreal stepSize READ stepSize WRITE setStepSize NOTIFY stepSizeChanged FINAL)
- Q_PROPERTY(SnapMode snapMode READ snapMode WRITE setSnapMode NOTIFY snapModeChanged FINAL)
- Q_PROPERTY(bool pressed READ isPressed WRITE setPressed NOTIFY pressedChanged FINAL)
- Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged FINAL)
- Q_PROPERTY(QQuickItem *handle READ handle WRITE setHandle NOTIFY handleChanged FINAL)
- Q_PROPERTY(bool live READ live WRITE setLive NOTIFY liveChanged FINAL REVISION(2, 2))
- // 2.3 (Qt 5.10)
- Q_PROPERTY(bool horizontal READ isHorizontal NOTIFY orientationChanged FINAL REVISION(2, 3))
- Q_PROPERTY(bool vertical READ isVertical NOTIFY orientationChanged FINAL REVISION(2, 3))
- // 2.5 (Qt 5.12)
- Q_PROPERTY(qreal touchDragThreshold READ touchDragThreshold WRITE setTouchDragThreshold RESET resetTouchDragThreshold NOTIFY touchDragThresholdChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitHandleWidth READ implicitHandleWidth NOTIFY implicitHandleWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitHandleHeight READ implicitHandleHeight NOTIFY implicitHandleHeightChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "background,handle")
- QML_NAMED_ELEMENT(Slider)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickSlider(QQuickItem *parent = nullptr);
- ~QQuickSlider();
-
- qreal from() const;
- void setFrom(qreal from);
-
- qreal to() const;
- void setTo(qreal to);
-
- qreal value() const;
- void setValue(qreal value);
-
- qreal position() const;
- qreal visualPosition() const;
-
- qreal stepSize() const;
- void setStepSize(qreal step);
-
- enum SnapMode {
- NoSnap,
- SnapAlways,
- SnapOnRelease
- };
- Q_ENUM(SnapMode)
-
- SnapMode snapMode() const;
- void setSnapMode(SnapMode mode);
-
- bool isPressed() const;
- void setPressed(bool pressed);
-
- Qt::Orientation orientation() const;
- void setOrientation(Qt::Orientation orientation);
-
- QQuickItem *handle() const;
- void setHandle(QQuickItem *handle);
-
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) Q_INVOKABLE qreal valueAt(qreal position) const;
-
- // 2.2 (Qt 5.9)
- bool live() const;
- void setLive(bool live);
-
- // 2.3 (Qt 5.10)
- bool isHorizontal() const;
- bool isVertical() const;
-
- // 2.5 (Qt 5.12)
- qreal touchDragThreshold() const;
- void setTouchDragThreshold(qreal touchDragThreshold);
- void resetTouchDragThreshold();
-
- qreal implicitHandleWidth() const;
- qreal implicitHandleHeight() const;
-
-public Q_SLOTS:
- void increase();
- void decrease();
-
-Q_SIGNALS:
- void fromChanged();
- void toChanged();
- void valueChanged();
- void positionChanged();
- void visualPositionChanged();
- void stepSizeChanged();
- void snapModeChanged();
- void pressedChanged();
- void orientationChanged();
- void handleChanged();
- // 2.2 (Qt 5.9)
- Q_REVISION(2, 2) void moved();
- Q_REVISION(2, 2) void liveChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void touchDragThresholdChanged();
- Q_REVISION(2, 5) void implicitHandleWidthChanged();
- Q_REVISION(2, 5) void implicitHandleHeightChanged();
-
-protected:
- void keyPressEvent(QKeyEvent *event) override;
- void keyReleaseEvent(QKeyEvent *event) override;
- void mousePressEvent(QMouseEvent *event) override;
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
-#endif
-#if QT_CONFIG(wheelevent)
- void wheelEvent(QWheelEvent *event) override;
-#endif
-
- void mirrorChange() override;
- void componentComplete() override;
-
-#if QT_CONFIG(accessibility)
- void accessibilityActiveChanged(bool active) override;
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickSlider)
- Q_DECLARE_PRIVATE(QQuickSlider)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickSlider)
-
-#endif // QQUICKSLIDER_P_H
diff --git a/src/quicktemplates2/qquickspinbox.cpp b/src/quicktemplates2/qquickspinbox.cpp
deleted file mode 100644
index b26c9aa6..00000000
--- a/src/quicktemplates2/qquickspinbox.cpp
+++ /dev/null
@@ -1,1057 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickspinbox_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickindicatorbutton_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtGui/qguiapplication.h>
-#include <QtGui/qstylehints.h>
-
-#include <QtQml/qqmlinfo.h>
-#include <QtQml/private/qqmllocale_p.h>
-#include <QtQml/private/qqmlengine_p.h>
-#include <QtQuick/private/qquicktextinput_p.h>
-
-QT_BEGIN_NAMESPACE
-
-// copied from qabstractbutton.cpp
-static const int AUTO_REPEAT_DELAY = 300;
-static const int AUTO_REPEAT_INTERVAL = 100;
-
-/*!
- \qmltype SpinBox
- \inherits Control
-//! \instantiates QQuickSpinBox
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup input
- \ingroup qtquickcontrols2-focusscopes
- \brief Allows the user to select from a set of preset values.
-
- \image qtquickcontrols2-spinbox.png
-
- SpinBox allows the user to choose an integer value by clicking the up
- or down indicator buttons, or by pressing up or down on the keyboard.
- Optionally, SpinBox can be also made \l editable, so the user can enter
- a text value in the input field.
-
- By default, SpinBox provides discrete values in the range of \c [0-99]
- with a \l stepSize of \c 1.
-
- \snippet qtquickcontrols2-spinbox.qml 1
-
- \section2 Custom Values
-
- \image qtquickcontrols2-spinbox-textual.png
-
- Even though SpinBox works on integer values, it can be customized to
- accept arbitrary input values. The following snippet demonstrates how
- \l validator, \l textFromValue and \l valueFromText can be used to
- customize the default behavior.
-
- \snippet qtquickcontrols2-spinbox-textual.qml 1
-
- In the same manner, SpinBox can be customized to accept floating point
- numbers:
-
- \image qtquickcontrols2-spinbox-double.png
-
- \snippet qtquickcontrols2-spinbox-double.qml 1
-
- \sa Tumbler, {Customizing SpinBox}, {Focus Management in Qt Quick Controls}
-*/
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlsignal QtQuick.Controls::SpinBox::valueModified()
-
- This signal is emitted when the spin box value has been interactively
- modified by the user by either touch, mouse, wheel, or keys.
-*/
-
-class QQuickSpinBoxPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickSpinBox)
-
-public:
- int boundValue(int value, bool wrap) const;
- void updateValue();
- bool setValue(int value, bool wrap, bool modified);
- bool stepBy(int steps, bool modified);
- void increase(bool modified);
- void decrease(bool modified);
-
- int effectiveStepSize() const;
-
- void updateDisplayText(bool modified = false);
- void setDisplayText(const QString &displayText, bool modified = false);
-
- bool upEnabled() const;
- void updateUpEnabled();
- bool downEnabled() const;
- void updateDownEnabled();
- void updateHover(const QPointF &pos);
-
- void startRepeatDelay();
- void startPressRepeat();
- void stopPressRepeat();
-
- void handlePress(const QPointF &point, ulong timestamp) override;
- void handleMove(const QPointF &point, ulong timestamp) override;
- void handleRelease(const QPointF &point, ulong timestamp) override;
- void handleUngrab() override;
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::SpinBox); }
-
- bool editable = false;
- bool wrap = false;
- int from = 0;
- int to = 99;
- int value = 0;
- int stepSize = 1;
- int delayTimer = 0;
- int repeatTimer = 0;
- QString displayText;
- QQuickIndicatorButton *up = nullptr;
- QQuickIndicatorButton *down = nullptr;
- QValidator *validator = nullptr;
- mutable QJSValue textFromValue;
- mutable QJSValue valueFromText;
- Qt::InputMethodHints inputMethodHints = Qt::ImhDigitsOnly;
-};
-
-int QQuickSpinBoxPrivate::boundValue(int value, bool wrap) const
-{
- bool inverted = from > to;
- if (!wrap)
- return inverted ? qBound(to, value, from) : qBound(from, value, to);
-
- int f = inverted ? to : from;
- int t = inverted ? from : to;
- if (value < f)
- value = t;
- else if (value > t)
- value = f;
-
- return value;
-}
-
-void QQuickSpinBoxPrivate::updateValue()
-{
- Q_Q(QQuickSpinBox);
- if (contentItem) {
- QVariant text = contentItem->property("text");
- if (text.isValid()) {
- int val = 0;
- QQmlEngine *engine = qmlEngine(q);
- if (engine && valueFromText.isCallable()) {
- QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine);
- QJSValue loc = QJSValuePrivate::fromReturnedValue(QQmlLocale::wrap(v4, locale));
- val = valueFromText.call(QJSValueList() << text.toString() << loc).toInt();
- } else {
- val = locale.toInt(text.toString());
- }
- setValue(val, /* allowWrap = */ false, /* modified = */ true);
- }
- }
-}
-
-// modified indicates if the value was modified by the user and not programatically
-// this is then passed on to updateDisplayText to indicate that the user has modified
-// the value so it may need to trigger an update of the contentItem's text too
-
-bool QQuickSpinBoxPrivate::setValue(int newValue, bool allowWrap, bool modified)
-{
- Q_Q(QQuickSpinBox);
- int correctedValue = newValue;
- if (q->isComponentComplete())
- correctedValue = boundValue(newValue, allowWrap);
-
- if (!modified && newValue == correctedValue && newValue == value)
- return false;
-
- const bool emitSignals = (value != correctedValue);
- value = correctedValue;
-
- updateDisplayText(modified);
- updateUpEnabled();
- updateDownEnabled();
-
- // Only emit the signals if the corrected value is not the same as the
- // original value to avoid unnecessary updates
- if (emitSignals) {
- emit q->valueChanged();
- if (modified)
- emit q->valueModified();
- }
- return true;
-}
-
-bool QQuickSpinBoxPrivate::stepBy(int steps, bool modified)
-{
- return setValue(value + steps, wrap, modified);
-}
-
-void QQuickSpinBoxPrivate::increase(bool modified)
-{
- setValue(value + effectiveStepSize(), wrap, modified);
-}
-
-void QQuickSpinBoxPrivate::decrease(bool modified)
-{
- setValue(value - effectiveStepSize(), wrap, modified);
-}
-
-int QQuickSpinBoxPrivate::effectiveStepSize() const
-{
- return from > to ? -1 * stepSize : stepSize;
-}
-
-void QQuickSpinBoxPrivate::updateDisplayText(bool modified)
-{
- Q_Q(QQuickSpinBox);
- QString text;
- QQmlEngine *engine = qmlEngine(q);
- if (engine && textFromValue.isCallable()) {
- QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine);
- QJSValue loc = QJSValuePrivate::fromReturnedValue(QQmlLocale::wrap(v4, locale));
- text = textFromValue.call(QJSValueList() << value << loc).toString();
- } else {
- text = locale.toString(value);
- }
- setDisplayText(text, modified);
-}
-
-void QQuickSpinBoxPrivate::setDisplayText(const QString &text, bool modified)
-{
- Q_Q(QQuickSpinBox);
-
- if (!modified && displayText == text)
- return;
-
- displayText = text;
- emit q->displayTextChanged();
-}
-
-bool QQuickSpinBoxPrivate::upEnabled() const
-{
- const QQuickItem *upIndicator = up->indicator();
- return upIndicator && upIndicator->isEnabled();
-}
-
-void QQuickSpinBoxPrivate::updateUpEnabled()
-{
- QQuickItem *upIndicator = up->indicator();
- if (!upIndicator)
- return;
-
- upIndicator->setEnabled(wrap || (from < to ? value < to : value > to));
-}
-
-bool QQuickSpinBoxPrivate::downEnabled() const
-{
- const QQuickItem *downIndicator = down->indicator();
- return downIndicator && downIndicator->isEnabled();
-}
-
-void QQuickSpinBoxPrivate::updateDownEnabled()
-{
- QQuickItem *downIndicator = down->indicator();
- if (!downIndicator)
- return;
-
- downIndicator->setEnabled(wrap || (from < to ? value > from : value < from));
-}
-
-void QQuickSpinBoxPrivate::updateHover(const QPointF &pos)
-{
- Q_Q(QQuickSpinBox);
- QQuickItem *ui = up->indicator();
- QQuickItem *di = down->indicator();
- up->setHovered(ui && ui->isEnabled() && ui->contains(q->mapToItem(ui, pos)));
- down->setHovered(di && di->isEnabled() && di->contains(q->mapToItem(di, pos)));
-}
-
-void QQuickSpinBoxPrivate::startRepeatDelay()
-{
- Q_Q(QQuickSpinBox);
- stopPressRepeat();
- delayTimer = q->startTimer(AUTO_REPEAT_DELAY);
-}
-
-void QQuickSpinBoxPrivate::startPressRepeat()
-{
- Q_Q(QQuickSpinBox);
- stopPressRepeat();
- repeatTimer = q->startTimer(AUTO_REPEAT_INTERVAL);
-}
-
-void QQuickSpinBoxPrivate::stopPressRepeat()
-{
- Q_Q(QQuickSpinBox);
- if (delayTimer > 0) {
- q->killTimer(delayTimer);
- delayTimer = 0;
- }
- if (repeatTimer > 0) {
- q->killTimer(repeatTimer);
- repeatTimer = 0;
- }
-}
-
-void QQuickSpinBoxPrivate::handlePress(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSpinBox);
- QQuickControlPrivate::handlePress(point, timestamp);
- QQuickItem *ui = up->indicator();
- QQuickItem *di = down->indicator();
- up->setPressed(ui && ui->isEnabled() && ui->contains(ui->mapFromItem(q, point)));
- down->setPressed(di && di->isEnabled() && di->contains(di->mapFromItem(q, point)));
-
- bool pressed = up->isPressed() || down->isPressed();
- q->setAccessibleProperty("pressed", pressed);
- if (pressed)
- startRepeatDelay();
-}
-
-void QQuickSpinBoxPrivate::handleMove(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSpinBox);
- QQuickControlPrivate::handleMove(point, timestamp);
- QQuickItem *ui = up->indicator();
- QQuickItem *di = down->indicator();
- up->setHovered(ui && ui->isEnabled() && ui->contains(ui->mapFromItem(q, point)));
- up->setPressed(up->isHovered());
- down->setHovered(di && di->isEnabled() && di->contains(di->mapFromItem(q, point)));
- down->setPressed(down->isHovered());
-
- bool pressed = up->isPressed() || down->isPressed();
- q->setAccessibleProperty("pressed", pressed);
- if (!pressed)
- stopPressRepeat();
-}
-
-void QQuickSpinBoxPrivate::handleRelease(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSpinBox);
- QQuickControlPrivate::handleRelease(point, timestamp);
- QQuickItem *ui = up->indicator();
- QQuickItem *di = down->indicator();
-
- int oldValue = value;
- if (up->isPressed()) {
- up->setPressed(false);
- if (repeatTimer <= 0 && ui && ui->contains(ui->mapFromItem(q, point)))
- q->increase();
- } else if (down->isPressed()) {
- down->setPressed(false);
- if (repeatTimer <= 0 && di && di->contains(di->mapFromItem(q, point)))
- q->decrease();
- }
- if (value != oldValue)
- emit q->valueModified();
-
- q->setAccessibleProperty("pressed", false);
- stopPressRepeat();
-}
-
-void QQuickSpinBoxPrivate::handleUngrab()
-{
- Q_Q(QQuickSpinBox);
- QQuickControlPrivate::handleUngrab();
- up->setPressed(false);
- down->setPressed(false);
-
- q->setAccessibleProperty("pressed", false);
- stopPressRepeat();
-}
-
-void QQuickSpinBoxPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- QQuickControlPrivate::itemImplicitWidthChanged(item);
- if (item == up->indicator())
- emit up->implicitIndicatorWidthChanged();
- else if (item == down->indicator())
- emit down->implicitIndicatorWidthChanged();
-}
-
-void QQuickSpinBoxPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- QQuickControlPrivate::itemImplicitHeightChanged(item);
- if (item == up->indicator())
- emit up->implicitIndicatorHeightChanged();
- else if (item == down->indicator())
- emit down->implicitIndicatorHeightChanged();
-}
-
-QQuickSpinBox::QQuickSpinBox(QQuickItem *parent)
- : QQuickControl(*(new QQuickSpinBoxPrivate), parent)
-{
- Q_D(QQuickSpinBox);
- d->up = new QQuickIndicatorButton(this);
- d->down = new QQuickIndicatorButton(this);
-
- setFlag(ItemIsFocusScope);
- setFiltersChildMouseEvents(true);
- setAcceptedMouseButtons(Qt::LeftButton);
-#if QT_CONFIG(cursor)
- setCursor(Qt::ArrowCursor);
-#endif
-}
-
-QQuickSpinBox::~QQuickSpinBox()
-{
- Q_D(QQuickSpinBox);
- d->removeImplicitSizeListener(d->up->indicator());
- d->removeImplicitSizeListener(d->down->indicator());
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::SpinBox::from
-
- This property holds the starting value for the range. The default value is \c 0.
-
- \sa to, value
-*/
-int QQuickSpinBox::from() const
-{
- Q_D(const QQuickSpinBox);
- return d->from;
-}
-
-void QQuickSpinBox::setFrom(int from)
-{
- Q_D(QQuickSpinBox);
- if (d->from == from)
- return;
-
- d->from = from;
- emit fromChanged();
- if (isComponentComplete()) {
- if (!d->setValue(d->value, /* allowWrap = */ false, /* modified = */ false)) {
- d->updateUpEnabled();
- d->updateDownEnabled();
- }
- }
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::SpinBox::to
-
- This property holds the end value for the range. The default value is \c 99.
-
- \sa from, value
-*/
-int QQuickSpinBox::to() const
-{
- Q_D(const QQuickSpinBox);
- return d->to;
-}
-
-void QQuickSpinBox::setTo(int to)
-{
- Q_D(QQuickSpinBox);
- if (d->to == to)
- return;
-
- d->to = to;
- emit toChanged();
- if (isComponentComplete()) {
- if (!d->setValue(d->value, /* allowWrap = */false, /* modified = */ false)) {
- d->updateUpEnabled();
- d->updateDownEnabled();
- }
- }
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::SpinBox::value
-
- This property holds the value in the range \c from - \c to. The default value is \c 0.
-*/
-int QQuickSpinBox::value() const
-{
- Q_D(const QQuickSpinBox);
- return d->value;
-}
-
-void QQuickSpinBox::setValue(int value)
-{
- Q_D(QQuickSpinBox);
- d->setValue(value, /* allowWrap = */ false, /* modified = */ false);
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::SpinBox::stepSize
-
- This property holds the step size. The default value is \c 1.
-
- \sa increase(), decrease()
-*/
-int QQuickSpinBox::stepSize() const
-{
- Q_D(const QQuickSpinBox);
- return d->stepSize;
-}
-
-void QQuickSpinBox::setStepSize(int step)
-{
- Q_D(QQuickSpinBox);
- if (d->stepSize == step)
- return;
-
- d->stepSize = step;
- emit stepSizeChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::SpinBox::editable
-
- This property holds whether the spinbox is editable. The default value is \c false.
-
- \sa validator
-*/
-bool QQuickSpinBox::isEditable() const
-{
- Q_D(const QQuickSpinBox);
- return d->editable;
-}
-
-void QQuickSpinBox::setEditable(bool editable)
-{
- Q_D(QQuickSpinBox);
- if (d->editable == editable)
- return;
-
-#if QT_CONFIG(cursor)
- if (d->contentItem) {
- if (editable)
- d->contentItem->setCursor(Qt::IBeamCursor);
- else
- d->contentItem->unsetCursor();
- }
-#endif
-
- d->editable = editable;
- setAccessibleProperty("editable", editable);
- emit editableChanged();
-}
-
-/*!
- \qmlproperty Validator QtQuick.Controls::SpinBox::validator
-
- This property holds the input text validator for editable spinboxes. By
- default, SpinBox uses \l IntValidator to accept input of integer numbers.
-
- \code
- SpinBox {
- id: control
- validator: IntValidator {
- locale: control.locale.name
- bottom: Math.min(control.from, control.to)
- top: Math.max(control.from, control.to)
- }
- }
- \endcode
-
- \sa editable, textFromValue, valueFromText, {Control::locale}{locale}
-*/
-QValidator *QQuickSpinBox::validator() const
-{
- Q_D(const QQuickSpinBox);
- return d->validator;
-}
-
-void QQuickSpinBox::setValidator(QValidator *validator)
-{
- Q_D(QQuickSpinBox);
- if (d->validator == validator)
- return;
-
- d->validator = validator;
- emit validatorChanged();
-}
-
-/*!
- \qmlproperty function QtQuick.Controls::SpinBox::textFromValue
-
- This property holds a callback function that is called whenever
- an integer value needs to be converted to display text.
-
- The default function can be overridden to display custom text for a given
- value. This applies to both editable and non-editable spinboxes;
- for example, when using the up and down buttons or a mouse wheel to
- increment and decrement the value, the new value is converted to display
- text using this function.
-
- The callback function signature is \c {string function(value, locale)}.
- The function can have one or two arguments, where the first argument
- is the value to be converted, and the optional second argument is the
- locale that should be used for the conversion, if applicable.
-
- The default implementation does the conversion using
- \l {QtQml::Number::toLocaleString()}{Number.toLocaleString}():
-
- \code
- textFromValue: function(value, locale) { return Number(value).toLocaleString(locale, 'f', 0); }
- \endcode
-
- \note When applying a custom \c textFromValue implementation for editable
- spinboxes, a matching \l valueFromText implementation must be provided
- to be able to convert the custom text back to an integer value.
-
- \sa valueFromText, validator, {Control::locale}{locale}
-*/
-QJSValue QQuickSpinBox::textFromValue() const
-{
- Q_D(const QQuickSpinBox);
- if (!d->textFromValue.isCallable()) {
- QQmlEngine *engine = qmlEngine(this);
- if (engine)
- d->textFromValue = engine->evaluate(QStringLiteral("(function(value, locale) { return Number(value).toLocaleString(locale, 'f', 0); })"));
- }
- return d->textFromValue;
-}
-
-void QQuickSpinBox::setTextFromValue(const QJSValue &callback)
-{
- Q_D(QQuickSpinBox);
- if (!callback.isCallable()) {
- qmlWarning(this) << "textFromValue must be a callable function";
- return;
- }
- d->textFromValue = callback;
- emit textFromValueChanged();
-}
-
-/*!
- \qmlproperty function QtQuick.Controls::SpinBox::valueFromText
-
- This property holds a callback function that is called whenever
- input text needs to be converted to an integer value.
-
- This function only needs to be overridden when \l textFromValue
- is overridden for an editable spinbox.
-
- The callback function signature is \c {int function(text, locale)}.
- The function can have one or two arguments, where the first argument
- is the text to be converted, and the optional second argument is the
- locale that should be used for the conversion, if applicable.
-
- The default implementation does the conversion using \l {QtQml::Locale}{Number.fromLocaleString()}:
-
- \code
- valueFromText: function(text, locale) { return Number.fromLocaleString(locale, text); }
- \endcode
-
- \note When applying a custom \l textFromValue implementation for editable
- spinboxes, a matching \c valueFromText implementation must be provided
- to be able to convert the custom text back to an integer value.
-
- \sa textFromValue, validator, {Control::locale}{locale}
-*/
-QJSValue QQuickSpinBox::valueFromText() const
-{
- Q_D(const QQuickSpinBox);
- if (!d->valueFromText.isCallable()) {
- QQmlEngine *engine = qmlEngine(this);
- if (engine)
- d->valueFromText = engine->evaluate(QStringLiteral("(function(text, locale) { return Number.fromLocaleString(locale, text); })"));
- }
- return d->valueFromText;
-}
-
-void QQuickSpinBox::setValueFromText(const QJSValue &callback)
-{
- Q_D(QQuickSpinBox);
- if (!callback.isCallable()) {
- qmlWarning(this) << "valueFromText must be a callable function";
- return;
- }
- d->valueFromText = callback;
- emit valueFromTextChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::SpinBox::up.pressed
- \qmlproperty Item QtQuick.Controls::SpinBox::up.indicator
- \qmlproperty bool QtQuick.Controls::SpinBox::up.hovered
- \qmlproperty real QtQuick.Controls::SpinBox::up.implicitIndicatorWidth
- \qmlproperty real QtQuick.Controls::SpinBox::up.implicitIndicatorHeight
-
- These properties hold the up indicator item and whether it is pressed or
- hovered. The \c up.hovered property was introduced in QtQuick.Controls 2.1,
- and the \c up.implicitIndicatorWidth and \c up.implicitIndicatorHeight
- properties were introduced in QtQuick.Controls 2.5.
-
- \sa increase()
-*/
-QQuickIndicatorButton *QQuickSpinBox::up() const
-{
- Q_D(const QQuickSpinBox);
- return d->up;
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::SpinBox::down.pressed
- \qmlproperty Item QtQuick.Controls::SpinBox::down.indicator
- \qmlproperty bool QtQuick.Controls::SpinBox::down.hovered
- \qmlproperty real QtQuick.Controls::SpinBox::down.implicitIndicatorWidth
- \qmlproperty real QtQuick.Controls::SpinBox::down.implicitIndicatorHeight
-
- These properties hold the down indicator item and whether it is pressed or
- hovered. The \c down.hovered property was introduced in QtQuick.Controls 2.1,
- and the \c down.implicitIndicatorWidth and \c down.implicitIndicatorHeight
- properties were introduced in QtQuick.Controls 2.5.
-
- \sa decrease()
-*/
-QQuickIndicatorButton *QQuickSpinBox::down() const
-{
- Q_D(const QQuickSpinBox);
- return d->down;
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty flags QtQuick.Controls::SpinBox::inputMethodHints
-
- This property provides hints to the input method about the expected content
- of the spin box and how it should operate.
-
- The default value is \c Qt.ImhDigitsOnly.
-
- \include inputmethodhints.qdocinc
-*/
-Qt::InputMethodHints QQuickSpinBox::inputMethodHints() const
-{
- Q_D(const QQuickSpinBox);
- return d->inputMethodHints;
-}
-
-void QQuickSpinBox::setInputMethodHints(Qt::InputMethodHints hints)
-{
- Q_D(QQuickSpinBox);
- if (d->inputMethodHints == hints)
- return;
-
- d->inputMethodHints = hints;
- emit inputMethodHintsChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty bool QtQuick.Controls::SpinBox::inputMethodComposing
- \readonly
-
- This property holds whether an editable spin box has partial text input from an input method.
-
- While it is composing, an input method may rely on mouse or key events from the spin box to
- edit or commit the partial text. This property can be used to determine when to disable event
- handlers that may interfere with the correct operation of an input method.
-*/
-bool QQuickSpinBox::isInputMethodComposing() const
-{
- Q_D(const QQuickSpinBox);
- return d->contentItem && d->contentItem->property("inputMethodComposing").toBool();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::SpinBox::wrap
-
- This property holds whether the spinbox wraps. The default value is \c false.
-
- If wrap is \c true, stepping past \l to changes the value to \l from and vice versa.
-*/
-bool QQuickSpinBox::wrap() const
-{
- Q_D(const QQuickSpinBox);
- return d->wrap;
-}
-
-void QQuickSpinBox::setWrap(bool wrap)
-{
- Q_D(QQuickSpinBox);
- if (d->wrap == wrap)
- return;
-
- d->wrap = wrap;
- if (d->value == d->from || d->value == d->to) {
- d->updateUpEnabled();
- d->updateDownEnabled();
- }
- emit wrapChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.4 (Qt 5.11)
- \qmlproperty string QtQuick.Controls::SpinBox::displayText
- \readonly
-
- This property holds the textual value of the spinbox.
-
- The value of the property is based on \l textFromValue and \l {Control::}
- {locale}, and equal to:
- \badcode
- var text = spinBox.textFromValue(spinBox.value, spinBox.locale)
- \endcode
-
- \sa textFromValue
-*/
-QString QQuickSpinBox::displayText() const
-{
- Q_D(const QQuickSpinBox);
- return d->displayText;
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::SpinBox::increase()
-
- Increases the value by \l stepSize, or \c 1 if stepSize is not defined.
-
- \sa stepSize
-*/
-void QQuickSpinBox::increase()
-{
- Q_D(QQuickSpinBox);
- d->increase(false);
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::SpinBox::decrease()
-
- Decreases the value by \l stepSize, or \c 1 if stepSize is not defined.
-
- \sa stepSize
-*/
-void QQuickSpinBox::decrease()
-{
- Q_D(QQuickSpinBox);
- d->decrease(false);
-}
-
-void QQuickSpinBox::focusInEvent(QFocusEvent *event)
-{
- Q_D(QQuickSpinBox);
- QQuickControl::focusInEvent(event);
-
- // When an editable SpinBox gets focus, it must pass on the focus to its editor.
- if (d->editable && d->contentItem && !d->contentItem->hasActiveFocus())
- d->contentItem->forceActiveFocus(event->reason());
-}
-
-void QQuickSpinBox::hoverEnterEvent(QHoverEvent *event)
-{
- Q_D(QQuickSpinBox);
- QQuickControl::hoverEnterEvent(event);
- d->updateHover(event->position());
-}
-
-void QQuickSpinBox::hoverMoveEvent(QHoverEvent *event)
-{
- Q_D(QQuickSpinBox);
- QQuickControl::hoverMoveEvent(event);
- d->updateHover(event->position());
-}
-
-void QQuickSpinBox::hoverLeaveEvent(QHoverEvent *event)
-{
- Q_D(QQuickSpinBox);
- QQuickControl::hoverLeaveEvent(event);
- d->down->setHovered(false);
- d->up->setHovered(false);
-}
-
-void QQuickSpinBox::keyPressEvent(QKeyEvent *event)
-{
- Q_D(QQuickSpinBox);
- QQuickControl::keyPressEvent(event);
-
- switch (event->key()) {
- case Qt::Key_Up:
- if (d->upEnabled()) {
- d->increase(true);
- d->up->setPressed(true);
- event->accept();
- }
- break;
-
- case Qt::Key_Down:
- if (d->downEnabled()) {
- d->decrease(true);
- d->down->setPressed(true);
- event->accept();
- }
- break;
-
- default:
- break;
- }
-
- setAccessibleProperty("pressed", d->up->isPressed() || d->down->isPressed());
-}
-
-void QQuickSpinBox::keyReleaseEvent(QKeyEvent *event)
-{
- Q_D(QQuickSpinBox);
- QQuickControl::keyReleaseEvent(event);
-
- if (d->editable && (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return))
- d->updateValue();
-
- d->up->setPressed(false);
- d->down->setPressed(false);
- setAccessibleProperty("pressed", false);
-}
-
-void QQuickSpinBox::timerEvent(QTimerEvent *event)
-{
- Q_D(QQuickSpinBox);
- QQuickControl::timerEvent(event);
- if (event->timerId() == d->delayTimer) {
- d->startPressRepeat();
- } else if (event->timerId() == d->repeatTimer) {
- if (d->up->isPressed())
- d->increase(true);
- else if (d->down->isPressed())
- d->decrease(true);
- }
-}
-
-#if QT_CONFIG(wheelevent)
-void QQuickSpinBox::wheelEvent(QWheelEvent *event)
-{
- Q_D(QQuickSpinBox);
- QQuickControl::wheelEvent(event);
- if (d->wheelEnabled) {
- const QPointF angle = event->angleDelta();
- const qreal delta = (qFuzzyIsNull(angle.y()) ? angle.x() : angle.y()) / QWheelEvent::DefaultDeltasPerStep;
- d->stepBy(qRound(d->effectiveStepSize() * delta), true);
- }
-}
-#endif
-
-void QQuickSpinBox::classBegin()
-{
- Q_D(QQuickSpinBox);
- QQuickControl::classBegin();
-
- QQmlContext *context = qmlContext(this);
- if (context) {
- QQmlEngine::setContextForObject(d->up, context);
- QQmlEngine::setContextForObject(d->down, context);
- }
-}
-
-void QQuickSpinBox::componentComplete()
-{
- Q_D(QQuickSpinBox);
- QQuickIndicatorButtonPrivate::get(d->up)->executeIndicator(true);
- QQuickIndicatorButtonPrivate::get(d->down)->executeIndicator(true);
-
- QQuickControl::componentComplete();
- if (!d->setValue(d->value, /* allowWrap = */ false, /* modified = */ false)) {
- d->updateDisplayText();
- d->updateUpEnabled();
- d->updateDownEnabled();
- }
-}
-
-void QQuickSpinBox::itemChange(ItemChange change, const ItemChangeData &value)
-{
- Q_D(QQuickSpinBox);
- QQuickControl::itemChange(change, value);
- if (d->editable && change == ItemActiveFocusHasChanged && !value.boolValue)
- d->updateValue();
-}
-
-void QQuickSpinBox::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_D(QQuickSpinBox);
- if (QQuickTextInput *oldInput = qobject_cast<QQuickTextInput *>(oldItem))
- disconnect(oldInput, &QQuickTextInput::inputMethodComposingChanged, this, &QQuickSpinBox::inputMethodComposingChanged);
-
- if (newItem) {
- newItem->setActiveFocusOnTab(true);
- if (d->activeFocus)
- newItem->forceActiveFocus(d->focusReason);
-#if QT_CONFIG(cursor)
- if (d->editable)
- newItem->setCursor(Qt::IBeamCursor);
-#endif
-
- if (QQuickTextInput *newInput = qobject_cast<QQuickTextInput *>(newItem))
- connect(newInput, &QQuickTextInput::inputMethodComposingChanged, this, &QQuickSpinBox::inputMethodComposingChanged);
- }
-}
-
-void QQuickSpinBox::localeChange(const QLocale &newLocale, const QLocale &oldLocale)
-{
- Q_D(QQuickSpinBox);
- QQuickControl::localeChange(newLocale, oldLocale);
- d->updateDisplayText();
-}
-
-QFont QQuickSpinBox::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::SpinBox);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickSpinBox::accessibleRole() const
-{
- return QAccessible::SpinBox;
-}
-
-void QQuickSpinBox::accessibilityActiveChanged(bool active)
-{
- Q_D(QQuickSpinBox);
- QQuickControl::accessibilityActiveChanged(active);
-
- if (active)
- setAccessibleProperty("editable", d->editable);
-}
-#endif
-
-QT_END_NAMESPACE
-
-#include "moc_qquickspinbox_p.cpp"
diff --git a/src/quicktemplates2/qquickspinbox_p.h b/src/quicktemplates2/qquickspinbox_p.h
deleted file mode 100644
index 9e64e96e..00000000
--- a/src/quicktemplates2/qquickspinbox_p.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSPINBOX_P_H
-#define QQUICKSPINBOX_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-#include <QtQml/qjsvalue.h>
-
-QT_BEGIN_NAMESPACE
-
-class QValidator;
-class QQuickSpinBoxPrivate;
-class QQuickIndicatorButton;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSpinBox : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(int from READ from WRITE setFrom NOTIFY fromChanged FINAL)
- Q_PROPERTY(int to READ to WRITE setTo NOTIFY toChanged FINAL)
- Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged FINAL)
- Q_PROPERTY(int stepSize READ stepSize WRITE setStepSize NOTIFY stepSizeChanged FINAL)
- Q_PROPERTY(bool editable READ isEditable WRITE setEditable NOTIFY editableChanged FINAL)
- Q_PROPERTY(QValidator *validator READ validator WRITE setValidator NOTIFY validatorChanged FINAL)
- Q_PROPERTY(QJSValue textFromValue READ textFromValue WRITE setTextFromValue NOTIFY textFromValueChanged FINAL)
- Q_PROPERTY(QJSValue valueFromText READ valueFromText WRITE setValueFromText NOTIFY valueFromTextChanged FINAL)
- Q_PROPERTY(QQuickIndicatorButton *up READ up CONSTANT FINAL)
- Q_PROPERTY(QQuickIndicatorButton *down READ down CONSTANT FINAL)
- // 2.2 (Qt 5.9)
- Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints WRITE setInputMethodHints NOTIFY inputMethodHintsChanged FINAL REVISION(2, 2))
- Q_PROPERTY(bool inputMethodComposing READ isInputMethodComposing NOTIFY inputMethodComposingChanged FINAL REVISION(2, 2))
- // 2.3 (Qt 5.10)
- Q_PROPERTY(bool wrap READ wrap WRITE setWrap NOTIFY wrapChanged FINAL REVISION(2, 3))
- // 2.4 (Qt 5.11)
- Q_PROPERTY(QString displayText READ displayText NOTIFY displayTextChanged FINAL REVISION(2, 4))
- QML_NAMED_ELEMENT(SpinBox)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickSpinBox(QQuickItem *parent = nullptr);
- ~QQuickSpinBox();
-
- int from() const;
- void setFrom(int from);
-
- int to() const;
- void setTo(int to);
-
- int value() const;
- void setValue(int value);
-
- int stepSize() const;
- void setStepSize(int step);
-
- bool isEditable() const;
- void setEditable(bool editable);
-
- QValidator *validator() const;
- void setValidator(QValidator *validator);
-
- QJSValue textFromValue() const;
- void setTextFromValue(const QJSValue &callback);
-
- QJSValue valueFromText() const;
- void setValueFromText(const QJSValue &callback);
-
- QQuickIndicatorButton *up() const;
- QQuickIndicatorButton *down() const;
-
- // 2.2 (Qt 5.9)
- Qt::InputMethodHints inputMethodHints() const;
- void setInputMethodHints(Qt::InputMethodHints hints);
-
- bool isInputMethodComposing() const;
-
- // 2.3 (Qt 5.10)
- bool wrap() const;
- void setWrap(bool wrap);
-
- // 2.4 (Qt 5.11)
- QString displayText() const;
-
-public Q_SLOTS:
- void increase();
- void decrease();
-
-Q_SIGNALS:
- void fromChanged();
- void toChanged();
- void valueChanged();
- void stepSizeChanged();
- void editableChanged();
- void validatorChanged();
- void textFromValueChanged();
- void valueFromTextChanged();
- // 2.2 (Qt 5.9)
- Q_REVISION(2, 2) void valueModified();
- Q_REVISION(2, 2) void inputMethodHintsChanged();
- Q_REVISION(2, 2) void inputMethodComposingChanged();
- // 2.3 (Qt 5.10)
- Q_REVISION(2, 3) void wrapChanged();
- // 2.4 (Qt 5.11)
- Q_REVISION(2, 4) void displayTextChanged();
-
-protected:
- void focusInEvent(QFocusEvent *event) override;
- void hoverEnterEvent(QHoverEvent *event) override;
- void hoverMoveEvent(QHoverEvent *event) override;
- void hoverLeaveEvent(QHoverEvent *event) override;
- void keyPressEvent(QKeyEvent *event) override;
- void keyReleaseEvent(QKeyEvent *event) override;
- void timerEvent(QTimerEvent *event) override;
-#if QT_CONFIG(wheelevent)
- void wheelEvent(QWheelEvent *event) override;
-#endif
-
- void classBegin() override;
- void componentComplete() override;
- void itemChange(ItemChange change, const ItemChangeData &value) override;
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
- void localeChange(const QLocale &newLocale, const QLocale &oldLocale) override;
-
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
- void accessibilityActiveChanged(bool active) override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickSpinBox)
- Q_DECLARE_PRIVATE(QQuickSpinBox)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickSpinBox)
-
-#endif // QQUICKSPINBOX_P_H
diff --git a/src/quicktemplates2/qquicksplitview.cpp b/src/quicktemplates2/qquicksplitview.cpp
deleted file mode 100644
index a6f70b32..00000000
--- a/src/quicktemplates2/qquicksplitview.cpp
+++ /dev/null
@@ -1,2089 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicksplitview_p.h"
-#include "qquicksplitview_p_p.h"
-#include "qquickcontentitem_p.h"
-
-#include <QtCore/qdebug.h>
-#include <QtCore/qloggingcategory.h>
-#include <QtCore/qcborarray.h>
-#include <QtCore/qcbormap.h>
-#include <QtCore/qcborvalue.h>
-#include <QtQml/QQmlInfo>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype SplitView
- \inherits Container
-//! \instantiates QQuickSplitView
- \inqmlmodule QtQuick.Controls
- \since 5.13
- \ingroup qtquickcontrols2-containers
- \ingroup qtquickcontrols2-focusscopes
- \brief Lays out items with a draggable splitter between each item.
-
- SplitView is a control that lays out items horizontally or vertically with
- a draggable splitter between each item.
-
- SplitView supports the following attached properties on items it manages:
-
- \list
- \li \l{minimumWidth}{SplitView.minimumWidth}
- \li \l{minimumHeight}{SplitView.minimumHeight}
- \li \l{preferredWidth}{SplitView.preferredWidth}
- \li \l{preferredHeight}{SplitView.preferredHeight}
- \li \l{maximumWidth}{SplitView.maximumWidth}
- \li \l{maximumHeight}{SplitView.maximumHeight}
- \li \l{fillWidth}{SplitView.fillWidth} (true for only one child)
- \li \l{fillHeight}{SplitView.fillHeight} (true for only one child)
- \endlist
-
- In addition, each handle has the following read-only attached properties:
-
- \list
- \li \l{SplitHandle::hovered}{SplitHandle.hovered}
- \li \l{SplitHandle::pressed}{SplitHandle.pressed}
- \endlist
-
- \note Handles should be purely visual and not handle events, as it can
- interfere with their hovered and pressed states.
-
- The preferred size of items in a SplitView can be specified via
- \l{Item::}{implicitWidth} and \l{Item::}{implicitHeight} or
- \c SplitView.preferredWidth and \c SplitView.preferredHeight:
-
- \code
- SplitView {
- anchors.fill: parent
-
- Item {
- SplitView.preferredWidth: 50
- }
-
- // ...
- }
- \endcode
-
- For a horizontal SplitView, it's not necessary to specify the preferred
- height of each item, as they will be resized to the height of the view.
- This applies in reverse for vertical views.
-
- When a split handle is dragged, the \c SplitView.preferredWidth or
- \c SplitView.preferredHeight property is overwritten, depending on the
- \l orientation of the view.
-
- To limit the size of items in a horizontal view, use the following
- properties:
-
- \code
- SplitView {
- anchors.fill: parent
-
- Item {
- SplitView.minimumWidth: 25
- SplitView.preferredWidth: 50
- SplitView.maximumWidth: 100
- }
-
- // ...
- }
- \endcode
-
- To limit the size of items in a vertical view, use the following
- properties:
-
- \code
- SplitView {
- anchors.fill: parent
- orientation: Qt.Vertical
-
- Item {
- SplitView.minimumHeight: 25
- SplitView.preferredHeight: 50
- SplitView.maximumHeight: 100
- }
-
- // ...
- }
- \endcode
-
- There will always be one item (the fill item) in the SplitView that has
- \c SplitView.fillWidth set to \c true (or \c SplitView.fillHeight, if
- \l orientation is \c Qt.Vertical). This means that the item will get all
- leftover space when other items have been laid out. By default, the last
- visible child of the SplitView will have this set, but it can be changed by
- explicitly setting \c fillWidth to \c true on another item.
-
- A handle can belong to the item either on the left or top side, or on the
- right or bottom side:
-
- \list
- \li If the fill item is to the right: the handle belongs to the left
- item.
- \li If the fill item is on the left: the handle belongs to the right
- item.
- \endlist
-
- To create a SplitView with three items, and let the center item get
- superfluous space, one could do the following:
-
- \code
- SplitView {
- anchors.fill: parent
- orientation: Qt.Horizontal
-
- Rectangle {
- implicitWidth: 200
- SplitView.maximumWidth: 400
- color: "lightblue"
- Label {
- text: "View 1"
- anchors.centerIn: parent
- }
- }
- Rectangle {
- id: centerItem
- SplitView.minimumWidth: 50
- SplitView.fillWidth: true
- color: "lightgray"
- Label {
- text: "View 2"
- anchors.centerIn: parent
- }
- }
- Rectangle {
- implicitWidth: 200
- color: "lightgreen"
- Label {
- text: "View 3"
- anchors.centerIn: parent
- }
- }
- }
- \endcode
-
- \section1 Serializing SplitView's State
-
- The main purpose of SplitView is to allow users to easily configure the
- size of various UI elements. In addition, the user's preferred sizes should
- be remembered across sessions. To achieve this, the values of the \c
- SplitView.preferredWidth and \c SplitView.preferredHeight properties can be
- serialized using the \l saveState() and \l restoreState() functions:
-
- \qml
- import QtQuick.Controls
- import Qt.labs.settings
-
- ApplicationWindow {
- // ...
-
- Component.onCompleted: splitView.restoreState(settings.splitView)
- Component.onDestruction: settings.splitView = splitView.saveState()
-
- Settings {
- id: settings
- property var splitView
- }
-
- SplitView {
- id: splitView
- // ...
- }
- }
- \endqml
-
- Alternatively, the \l {Settings::}{value()} and \l {Settings::}{setValue()}
- functions of \l Settings can be used:
-
- \qml
- import QtQuick.Controls
- import Qt.labs.settings
-
- ApplicationWindow {
- // ...
-
- Component.onCompleted: splitView.restoreState(settings.value("ui/splitview"))
- Component.onDestruction: settings.setValue("ui/splitview", splitView.saveState())
-
- Settings {
- id: settings
- }
-
- SplitView {
- id: splitView
- // ...
- }
- }
- \endqml
-
- \sa SplitHandle, {Customizing SplitView}, {Container Controls}
-*/
-
-Q_LOGGING_CATEGORY(qlcQQuickSplitView, "qt.quick.controls.splitview")
-Q_LOGGING_CATEGORY(qlcQQuickSplitViewMouse, "qt.quick.controls.splitview.mouse")
-Q_LOGGING_CATEGORY(qlcQQuickSplitViewState, "qt.quick.controls.splitview.state")
-
-void QQuickSplitViewPrivate::updateFillIndex()
-{
- const int count = contentModel->count();
- const bool horizontal = isHorizontal();
-
- qCDebug(qlcQQuickSplitView) << "looking for fillWidth/Height item amongst" << count << "items";
-
- m_fillIndex = -1;
- int i = 0;
- int lastVisibleIndex = -1;
- for (; i < count; ++i) {
- QQuickItem *item = qobject_cast<QQuickItem*>(contentModel->object(i));
- if (!item->isVisible())
- continue;
-
- lastVisibleIndex = i;
-
- const QQuickSplitViewAttached *attached = qobject_cast<QQuickSplitViewAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitView>(item, false));
- if (!attached)
- continue;
-
- if ((horizontal && attached->fillWidth()) || (!horizontal && attached->fillHeight())) {
- m_fillIndex = i;
- qCDebug(qlcQQuickSplitView) << "found fillWidth/Height item at index" << m_fillIndex;
- break;
- }
- }
-
- if (m_fillIndex == -1) {
- // If there was no item with fillWidth/fillHeight set, m_fillIndex will be -1,
- // and we'll set it to the last visible item.
- // If there was an item with fillWidth/fillHeight set, we were already done and this will be skipped.
- m_fillIndex = lastVisibleIndex != -1 ? lastVisibleIndex : count - 1;
- qCDebug(qlcQQuickSplitView) << "found no fillWidth/Height item; using last item at index" << m_fillIndex;
- }
-}
-
-/*
- Resizes split items according to their preferred size and any constraints.
-
- If a split item is being resized due to a split handle being dragged,
- it will be resized accordingly.
-
- Items that aren't visible are skipped.
-*/
-void QQuickSplitViewPrivate::layoutResizeSplitItems(qreal &usedWidth, qreal &usedHeight, int &indexBeingResizedDueToDrag)
-{
- const int count = contentModel->count();
- const bool horizontal = isHorizontal();
- for (int index = 0; index < count; ++index) {
- QQuickItem *item = qobject_cast<QQuickItem*>(contentModel->object(index));
- if (!item->isVisible()) {
- // The item is not visible, so skip it.
- qCDebug(qlcQQuickSplitView).nospace() << " - " << index << ": split item " << item
- << " at index " << index << " is not visible; skipping it and its handles (if any)";
- continue;
- }
-
- const QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
- QQuickSplitViewAttached *attached = qobject_cast<QQuickSplitViewAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitView>(item, false));
- const auto sizeData = effectiveSizeData(itemPrivate, attached);
-
- const bool resizeLeftItem = m_fillIndex > m_pressedHandleIndex;
- // True if any handle is pressed.
- const bool isAHandlePressed = m_pressedHandleIndex != -1;
- // True if this particular item is being resized as a result of a handle being dragged.
- const bool isBeingResized = isAHandlePressed && ((resizeLeftItem && index == m_pressedHandleIndex)
- || (!resizeLeftItem && index == m_nextVisibleIndexAfterPressedHandle));
- if (isBeingResized) {
- indexBeingResizedDueToDrag = index;
- qCDebug(qlcQQuickSplitView).nospace() << " - " << index << ": dragging handle for item";
- }
-
- const qreal size = horizontal ? width : height;
- qreal requestedSize = 0;
- if (isBeingResized) {
- // Don't let the mouse go past either edge of the SplitView.
- const qreal clampedMousePos = horizontal
- ? qBound(qreal(0.0), m_mousePos.x(), qreal(width))
- : qBound(qreal(0.0), m_mousePos.y(), qreal(height));
-
- // We also need to ensure that the item's edge doesn't go too far
- // out and hence give the item more space than is available.
- const int firstIndex = resizeLeftItem ? m_nextVisibleIndexAfterPressedHandle : 0;
- const int lastIndex = resizeLeftItem ? contentModel->count() - 1 : m_pressedHandleIndex;
- const qreal accumulated = accumulatedSize(firstIndex, lastIndex);
-
- const qreal mousePosRelativeToLeftHandleEdge = horizontal
- ? m_pressPos.x() - m_handlePosBeforePress.x()
- : m_pressPos.y() - m_handlePosBeforePress.y();
-
- const QQuickItem *pressedHandleItem = m_handleItems.at(m_pressedHandleIndex);
- const qreal pressedHandleSize = horizontal ? pressedHandleItem->width() : pressedHandleItem->height();
-
- if (resizeLeftItem) {
- // The handle shouldn't cross other handles, so use the right edge of
- // the first handle to the left as the left edge.
- qreal leftEdge = 0;
- if (m_pressedHandleIndex - 1 >= 0) {
- const QQuickItem *leftHandle = m_handleItems.at(m_pressedHandleIndex - 1);
- leftEdge = horizontal
- ? leftHandle->x() + leftHandle->width()
- : leftHandle->y() + leftHandle->height();
- }
-
- // The mouse can be clicked anywhere in the handle, and if we don't account for
- // its position within the handle, the handle will jump when dragged.
- const qreal pressedHandlePos = clampedMousePos - mousePosRelativeToLeftHandleEdge;
-
- const qreal rightStop = size - accumulated - pressedHandleSize;
- qreal leftStop = qMax(leftEdge, pressedHandlePos);
- // qBound() doesn't care if min is greater than max, but we do.
- if (leftStop > rightStop)
- leftStop = rightStop;
- const qreal newHandlePos = qBound(leftStop, pressedHandlePos, rightStop);
- const qreal newItemSize = newHandlePos - leftEdge;
-
- // Modify the preferredWidth, otherwise the original implicitWidth/preferredWidth
- // will be used on the next layout (when it's no longer being resized).
- if (!attached) {
- // Force the attached object to be created since we rely on it.
- attached = qobject_cast<QQuickSplitViewAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitView>(item, true));
- }
-
- /*
- Users could conceivably respond to size changes in items by setting attached
- SplitView properties:
-
- onWidthChanged: if (width < 10) secondItem.SplitView.preferredWidth = 100
-
- We handle this by doing another layout after the current layout if the
- attached/implicit size properties are set during this layout. However, we also
- need to set preferredWidth/Height here (for reasons mentioned in the comment above),
- but we don't want this to count as a request for a delayed layout, so we guard against it.
- */
- m_ignoreNextLayoutRequest = true;
-
- if (horizontal)
- attached->setPreferredWidth(newItemSize);
- else
- attached->setPreferredHeight(newItemSize);
-
- // We still need to use requestedWidth in the setWidth() call below,
- // because sizeData has already been calculated and now contains an old
- // effectivePreferredWidth value.
- requestedSize = newItemSize;
-
- qCDebug(qlcQQuickSplitView).nospace() << " - " << index << ": resized (dragged) " << item
- << " (clampedMousePos=" << clampedMousePos
- << " pressedHandlePos=" << pressedHandlePos
- << " accumulated=" << accumulated
- << " leftEdge=" << leftEdge
- << " leftStop=" << leftStop
- << " rightStop=" << rightStop
- << " newHandlePos=" << newHandlePos
- << " newItemSize=" << newItemSize << ")";
- } else { // Resizing the item on the right.
- // The handle shouldn't cross other handles, so use the left edge of
- // the first handle to the right as the right edge.
- qreal rightEdge = size;
- if (m_nextVisibleIndexAfterPressedHandle < m_handleItems.size()) {
- const QQuickItem *rightHandle = m_handleItems.at(m_nextVisibleIndexAfterPressedHandle);
- rightEdge = horizontal ? rightHandle->x() : rightHandle->y();
- }
-
- // The mouse can be clicked anywhere in the handle, and if we don't account for
- // its position within the handle, the handle will jump when dragged.
- const qreal pressedHandlePos = clampedMousePos - mousePosRelativeToLeftHandleEdge;
-
- const qreal leftStop = accumulated - pressedHandleSize;
- qreal rightStop = qMin(rightEdge - pressedHandleSize, pressedHandlePos);
- // qBound() doesn't care if min is greater than max, but we do.
- if (rightStop < leftStop)
- rightStop = leftStop;
- const qreal newHandlePos = qBound(leftStop, pressedHandlePos, rightStop);
- const qreal newItemSize = rightEdge - (newHandlePos + pressedHandleSize);
-
- // Modify the preferredWidth, otherwise the original implicitWidth/preferredWidth
- // will be used on the next layout (when it's no longer being resized).
- if (!attached) {
- // Force the attached object to be created since we rely on it.
- attached = qobject_cast<QQuickSplitViewAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitView>(item, true));
- }
-
- m_ignoreNextLayoutRequest = true;
-
- if (horizontal)
- attached->setPreferredWidth(newItemSize);
- else
- attached->setPreferredHeight(newItemSize);
-
- // We still need to use requestedSize in the setWidth()/setHeight() call below,
- // because sizeData has already been calculated and now contains an old
- // effectivePreferredWidth/Height value.
- requestedSize = newItemSize;
-
- qCDebug(qlcQQuickSplitView).nospace() << " - " << index << ": resized (dragged) " << item
- << " (clampedMousePos=" << clampedMousePos
- << " pressedHandlePos=" << pressedHandlePos
- << " accumulated=" << accumulated
- << " leftEdge=" << rightEdge
- << " leftStop=" << leftStop
- << " rightStop=" << rightStop
- << " newHandlePos=" << newHandlePos
- << " newItemSize=" << newItemSize << ")";
- }
- } else if (index != m_fillIndex) {
- // No handle is being dragged and we're not the fill item,
- // so set our preferred size as we normally would.
- requestedSize = horizontal
- ? sizeData.effectivePreferredWidth : sizeData.effectivePreferredHeight;
- }
-
- if (index != m_fillIndex) {
- if (horizontal) {
- item->setWidth(qBound(
- sizeData.effectiveMinimumWidth,
- requestedSize,
- sizeData.effectiveMaximumWidth));
- item->setHeight(height);
- } else {
- item->setWidth(width);
- item->setHeight(qBound(
- sizeData.effectiveMinimumHeight,
- requestedSize,
- sizeData.effectiveMaximumHeight));
- }
-
- qCDebug(qlcQQuickSplitView).nospace() << " - " << index << ": resized split item " << item
- << " (effective"
- << " minW=" << sizeData.effectiveMinimumWidth
- << ", minH=" << sizeData.effectiveMinimumHeight
- << ", prfW=" << sizeData.effectivePreferredWidth
- << ", prfH=" << sizeData.effectivePreferredHeight
- << ", maxW=" << sizeData.effectiveMaximumWidth
- << ", maxH=" << sizeData.effectiveMaximumHeight << ")";
-
- // Keep track of how much space has been used so far.
- if (horizontal)
- usedWidth += item->width();
- else
- usedHeight += item->height();
- } else if (indexBeingResizedDueToDrag != m_fillIndex) {
- // The fill item is resized afterwards, outside of the loop.
- qCDebug(qlcQQuickSplitView).nospace() << " - " << index << ": skipping fill item as we resize it last";
- }
-
- // Also account for the size of the handle for this item (if any).
- // We do this for the fill item too, which is why it's outside of the check above.
- if (index < count - 1 && m_handle) {
- QQuickItem *handleItem = m_handleItems.at(index);
- // The handle for an item that's not visible will usually already be skipped
- // with the item visibility check higher up, but if the view looks like this
- // [ visible ] | [ visible (fill) ] | [ hidden ]
- // ^
- // hidden
- // and we're iterating over the second item (which is visible but has no handle),
- // we need to add an extra check for it to avoid it still taking up space.
- if (handleItem->isVisible()) {
- if (horizontal) {
- qCDebug(qlcQQuickSplitView).nospace() << " - " << index
- << ": handle takes up " << handleItem->width() << " width";
- usedWidth += handleItem->width();
- } else {
- qCDebug(qlcQQuickSplitView).nospace() << " - " << index
- << ": handle takes up " << handleItem->height() << " height";
- usedHeight += handleItem->height();
- }
- } else {
- qCDebug(qlcQQuickSplitView).nospace() << " - " << index << ": handle is not visible; skipping it";
- }
- }
- }
-}
-
-/*
- Resizes the fill item by giving it the remaining space
- after all other items have been resized.
-
- Items that aren't visible are skipped.
-*/
-void QQuickSplitViewPrivate::layoutResizeFillItem(QQuickItem *fillItem,
- qreal &usedWidth, qreal &usedHeight, int indexBeingResizedDueToDrag)
-{
- // Only bother resizing if it it's visible. Also, if it's being resized due to a drag,
- // then we've already set its size in layoutResizeSplitItems(), so no need to do it here.
- if (!fillItem->isVisible() || indexBeingResizedDueToDrag == m_fillIndex) {
- qCDebug(qlcQQuickSplitView).nospace() << m_fillIndex << ": - fill item " << fillItem
- << " is not visible or was already resized due to a drag;"
- << " skipping it and its handles (if any)";
- return;
- }
-
- const QQuickItemPrivate *fillItemPrivate = QQuickItemPrivate::get(fillItem);
- const QQuickSplitViewAttached *attached = qobject_cast<QQuickSplitViewAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitView>(fillItem, false));
- const auto fillSizeData = effectiveSizeData(fillItemPrivate, attached);
- if (isHorizontal()) {
- fillItem->setWidth(qBound(
- fillSizeData.effectiveMinimumWidth,
- width - usedWidth,
- fillSizeData.effectiveMaximumWidth));
- fillItem->setHeight(height);
- } else {
- fillItem->setWidth(width);
- fillItem->setHeight(qBound(
- fillSizeData.effectiveMinimumHeight,
- height - usedHeight,
- fillSizeData.effectiveMaximumHeight));
- }
-
- qCDebug(qlcQQuickSplitView).nospace() << " - " << m_fillIndex
- << ": resized split fill item " << fillItem << " (effective"
- << " minW=" << fillSizeData.effectiveMinimumWidth
- << ", minH=" << fillSizeData.effectiveMinimumHeight
- << ", maxW=" << fillSizeData.effectiveMaximumWidth
- << ", maxH=" << fillSizeData.effectiveMaximumHeight << ")";
-}
-
-/*
- Positions items by laying them out in a row or column.
-
- Items that aren't visible are skipped.
-*/
-void QQuickSplitViewPrivate::layoutPositionItems(const QQuickItem *fillItem)
-{
- const bool horizontal = isHorizontal();
- const int count = contentModel->count();
- qreal usedWidth = 0;
- qreal usedHeight = 0;
-
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = qobject_cast<QQuickItem*>(contentModel->object(i));
- if (!item->isVisible()) {
- qCDebug(qlcQQuickSplitView).nospace() << " - " << i << ": split item " << item
- << " is not visible; skipping it and its handles (if any)";
- continue;
- }
-
- // Position the item.
- if (horizontal) {
- item->setX(usedWidth);
- item->setY(0);
- } else {
- item->setX(0);
- item->setY(usedHeight);
- }
-
- // Keep track of how much space has been used so far.
- if (horizontal)
- usedWidth += item->width();
- else
- usedHeight += item->height();
-
- if (Q_UNLIKELY(qlcQQuickSplitView().isDebugEnabled())) {
- const QQuickItemPrivate *fillItemPrivate = QQuickItemPrivate::get(fillItem);
- const QQuickSplitViewAttached *attached = qobject_cast<QQuickSplitViewAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitView>(fillItem, false));
- const auto sizeData = effectiveSizeData(fillItemPrivate, attached);
- qCDebug(qlcQQuickSplitView).nospace() << " - " << i << ": positioned "
- << (i == m_fillIndex ? "fill item " : "item ") << item << " (effective"
- << " minW=" << sizeData.effectiveMinimumWidth
- << ", minH=" << sizeData.effectiveMinimumHeight
- << ", prfW=" << sizeData.effectivePreferredWidth
- << ", prfH=" << sizeData.effectivePreferredHeight
- << ", maxW=" << sizeData.effectiveMaximumWidth
- << ", maxH=" << sizeData.effectiveMaximumHeight << ")";
- }
-
- // Position the handle for this item (if any).
- if (i < count - 1 && m_handle) {
- // Position the handle.
- QQuickItem *handleItem = m_handleItems.at(i);
- handleItem->setX(horizontal ? usedWidth : 0);
- handleItem->setY(horizontal ? 0 : usedHeight);
-
- if (horizontal)
- usedWidth += handleItem->width();
- else
- usedHeight += handleItem->height();
-
- qCDebug(qlcQQuickSplitView).nospace() << " - " << i << ": positioned handle " << handleItem;
- }
- }
-}
-
-void QQuickSplitViewPrivate::requestLayout()
-{
- Q_Q(QQuickSplitView);
- q->polish();
-}
-
-void QQuickSplitViewPrivate::layout()
-{
- if (!componentComplete)
- return;
-
- if (m_layingOut)
- return;
-
- const int count = contentModel->count();
- if (count <= 0)
- return;
-
- Q_ASSERT_X(m_fillIndex < count, Q_FUNC_INFO, qPrintable(
- QString::fromLatin1("m_fillIndex is %1 but our count is %2").arg(m_fillIndex).arg(count)));
-
- Q_ASSERT_X(!m_handle || m_handleItems.size() == count - 1, Q_FUNC_INFO, qPrintable(QString::fromLatin1(
- "Expected %1 handle items, but there are %2").arg(count - 1).arg(m_handleItems.size())));
-
- // We allow mouse events to instantly trigger layouts, whereas with e.g.
- // attached properties being set, we require a delayed layout.
- // To prevent recursive calls during mouse events, we need this guard.
- QBoolBlocker guard(m_layingOut, true);
-
- const bool horizontal = isHorizontal();
- qCDebug(qlcQQuickSplitView) << "laying out" << count << "split items"
- << (horizontal ? "horizontally" : "vertically") << "in SplitView" << q_func();
-
- qreal usedWidth = 0;
- qreal usedHeight = 0;
- int indexBeingResizedDueToDrag = -1;
-
- qCDebug(qlcQQuickSplitView) << " resizing:";
-
- // First, resize the items. We need to do this first because otherwise fill
- // items would take up all of the remaining space as soon as they are encountered.
- layoutResizeSplitItems(usedWidth, usedHeight, indexBeingResizedDueToDrag);
-
- qCDebug(qlcQQuickSplitView).nospace()
- << " - (remaining width=" << width - usedWidth
- << " remaining height=" << height - usedHeight << ")";
-
- // Give the fill item the remaining space.
- QQuickItem *fillItem = qobject_cast<QQuickItem*>(contentModel->object(m_fillIndex));
- layoutResizeFillItem(fillItem, usedWidth, usedHeight, indexBeingResizedDueToDrag);
-
- qCDebug(qlcQQuickSplitView) << " positioning:";
-
- // Position the items.
- layoutPositionItems(fillItem);
-
- qCDebug(qlcQQuickSplitView).nospace() << "finished layouting";
-}
-
-void QQuickSplitViewPrivate::createHandles()
-{
- Q_ASSERT(m_handle);
- // A handle only makes sense if there are two items on either side.
- if (contentModel->count() <= 1)
- return;
-
- // Create new handle items if there aren't enough.
- const int count = contentModel->count() - 1;
- qCDebug(qlcQQuickSplitView) << "creating" << count << "handles";
- m_handleItems.reserve(count);
- for (int i = 0; i < count; ++i)
- createHandleItem(i);
-}
-
-void QQuickSplitViewPrivate::createHandleItem(int index)
-{
- Q_Q(QQuickSplitView);
- if (contentModel->count() <= 1)
- return;
-
- qCDebug(qlcQQuickSplitView) << "- creating handle for split item at index" << index
- << "from handle component" << m_handle;
-
- // If we don't use the correct context, it won't be possible to refer to
- // the control's id from within the delegate.
- QQmlContext *creationContext = m_handle->creationContext();
- // The component might not have been created in QML, in which case
- // the creation context will be null and we have to create it ourselves.
- if (!creationContext)
- creationContext = qmlContext(q);
- QQmlContext *context = new QQmlContext(creationContext, q);
- context->setContextObject(q);
- QQuickItem *handleItem = qobject_cast<QQuickItem*>(m_handle->beginCreate(context));
- if (handleItem) {
- qCDebug(qlcQQuickSplitView) << "- successfully created handle item" << handleItem << "for split item at index" << index;
-
- // Insert the item to our list of items *before* its parent is set to us,
- // so that we can avoid it being added as a content item by checking
- // if it is in the list in isContent().
- m_handleItems.insert(index, handleItem);
-
- handleItem->setParentItem(q);
-
- m_handle->completeCreate();
- resizeHandle(handleItem);
- }
-}
-
-void QQuickSplitViewPrivate::removeExcessHandles()
-{
- int excess = m_handleItems.size() - qMax(0, contentModel->count() - 1);
- qCDebug(qlcQQuickSplitView) << "removing" << excess << "excess handles from the end of our list";
- for (; excess > 0; --excess) {
- QQuickItem *handleItem = m_handleItems.takeLast();
- delete handleItem;
- }
-}
-
-qreal QQuickSplitViewPrivate::accumulatedSize(int firstIndex, int lastIndex) const
-{
- qreal size = 0.0;
- const bool horizontal = isHorizontal();
- for (int i = firstIndex; i <= lastIndex; ++i) {
- QQuickItem *item = qobject_cast<QQuickItem*>(contentModel->object(i));
- if (item->isVisible()) {
- if (i != m_fillIndex) {
- size += horizontal ? item->width() : item->height();
- } else {
- // If the fill item has a minimum size specified, we must respect it.
- const QQuickSplitViewAttached *attached = qobject_cast<QQuickSplitViewAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitView>(item, false));
- if (attached) {
- const QQuickSplitViewAttachedPrivate *attachedPrivate
- = QQuickSplitViewAttachedPrivate::get(attached);
- if (horizontal && attachedPrivate->m_isMinimumWidthSet)
- size += attachedPrivate->m_minimumWidth;
- else if (!horizontal && attachedPrivate->m_isMinimumHeightSet)
- size += attachedPrivate->m_minimumHeight;
- }
- }
- }
-
- // Only add the handle's width if there's actually a handle for this split item index.
- if (i < lastIndex || lastIndex < contentModel->count() - 1) {
- const QQuickItem *handleItem = m_handleItems.at(i);
- if (handleItem->isVisible())
- size += horizontal ? handleItem->width() : handleItem->height();
- }
- }
- return size;
-}
-
-qreal effectiveMinimumWidth(const QQuickSplitViewAttachedPrivate *attachedPrivate)
-{
- return attachedPrivate && attachedPrivate->m_isMinimumWidthSet ? attachedPrivate->m_minimumWidth : 0;
-}
-
-qreal effectiveMinimumHeight(const QQuickSplitViewAttachedPrivate *attachedPrivate)
-{
- return attachedPrivate && attachedPrivate->m_isMinimumHeightSet ? attachedPrivate->m_minimumHeight : 0;
-}
-
-qreal effectivePreferredWidth(const QQuickSplitViewAttachedPrivate *attachedPrivate,
- const QQuickItemPrivate *itemPrivate)
-{
- return attachedPrivate && attachedPrivate->m_isPreferredWidthSet
- ? attachedPrivate->m_preferredWidth : itemPrivate->implicitWidth;
-}
-
-qreal effectivePreferredHeight(const QQuickSplitViewAttachedPrivate *attachedPrivate,
- const QQuickItemPrivate *itemPrivate)
-{
- return attachedPrivate && attachedPrivate->m_isPreferredHeightSet
- ? attachedPrivate->m_preferredHeight : itemPrivate->implicitHeight;
-}
-
-qreal effectiveMaximumWidth(const QQuickSplitViewAttachedPrivate *attachedPrivate)
-{
- return attachedPrivate && attachedPrivate->m_isMaximumWidthSet
- ? attachedPrivate->m_maximumWidth : std::numeric_limits<qreal>::infinity();
-}
-
-qreal effectiveMaximumHeight(const QQuickSplitViewAttachedPrivate *attachedPrivate)
-{
- return attachedPrivate && attachedPrivate->m_isMaximumHeightSet
- ? attachedPrivate->m_maximumHeight : std::numeric_limits<qreal>::infinity();
-}
-
-// We don't just take an index, because the item and attached properties object
-// will both be used outside of this function by calling code, so save some
-// time by not accessing them twice.
-QQuickSplitViewPrivate::EffectiveSizeData QQuickSplitViewPrivate::effectiveSizeData(
- const QQuickItemPrivate *itemPrivate, const QQuickSplitViewAttached *attached) const
-{
- EffectiveSizeData data;
- const QQuickSplitViewAttachedPrivate *attachedPrivate = attached ? QQuickSplitViewAttachedPrivate::get(attached) : nullptr;
- data.effectiveMinimumWidth = effectiveMinimumWidth(attachedPrivate);
- data.effectiveMinimumHeight = effectiveMinimumHeight(attachedPrivate);
- data.effectivePreferredWidth = effectivePreferredWidth(attachedPrivate, itemPrivate);
- data.effectivePreferredHeight = effectivePreferredHeight(attachedPrivate, itemPrivate);
- data.effectiveMaximumWidth = effectiveMaximumWidth(attachedPrivate);
- data.effectiveMaximumHeight = effectiveMaximumHeight(attachedPrivate);
- return data;
-}
-
-int QQuickSplitViewPrivate::handleIndexForSplitIndex(int splitIndex) const
-{
- // If it's the first and only item in the view, it doesn't have a handle,
- // so return -1: splitIndex (0) - 1.
- // If it's the last item in the view, it doesn't have a handle, so use
- // the handle for the previous item.
- return splitIndex == contentModel->count() - 1 ? splitIndex - 1 : splitIndex;
-}
-
-void QQuickSplitViewPrivate::destroyHandles()
-{
- qCDebug(qlcQQuickSplitView) << "destroying" << m_handleItems.size() << "handles";
- qDeleteAll(m_handleItems);
- m_handleItems.clear();
-}
-
-void QQuickSplitViewPrivate::resizeHandle(QQuickItem *handleItem)
-{
- const bool horizontal = isHorizontal();
- handleItem->setWidth(horizontal ? handleItem->implicitWidth() : width);
- handleItem->setHeight(horizontal ? height : handleItem->implicitHeight());
-}
-
-void QQuickSplitViewPrivate::resizeHandles()
-{
- for (QQuickItem *handleItem : m_handleItems)
- resizeHandle(handleItem);
-}
-
-void QQuickSplitViewPrivate::updateHandleVisibilities()
-{
- // If this is the first item that is visible, we won't have any
- // handles yet, because we don't create a handle if we only have one item.
- if (m_handleItems.isEmpty())
- return;
-
- // If the visibility/children change makes any item the last (right/bottom-most)
- // visible item, we don't want to display a handle for it either:
- // [ visible (fill) ] | [ hidden ] | [ hidden ]
- // ^ ^
- // hidden hidden
- const int count = contentModel->count();
- int lastVisibleItemIndex = -1;
- for (int i = count - 1; i >= 0; --i) {
- const QQuickItem *item = qobject_cast<QQuickItem*>(contentModel->object(i));
- if (item->isVisible()) {
- lastVisibleItemIndex = i;
- break;
- }
- }
-
- for (int i = 0; i < count - 1; ++i) {
- const QQuickItem *item = qobject_cast<QQuickItem*>(contentModel->object(i));
- QQuickItem *handleItem = m_handleItems.at(i);
- if (i != lastVisibleItemIndex)
- handleItem->setVisible(item->isVisible());
- else
- handleItem->setVisible(false);
- qCDebug(qlcQQuickSplitView) << "set visible property of handle" << handleItem << "at index"
- << i << "to" << handleItem->isVisible();
- }
-}
-
-void QQuickSplitViewPrivate::updateHoveredHandle(QQuickItem *hoveredItem)
-{
- Q_Q(QQuickSplitView);
- qCDebug(qlcQQuickSplitViewMouse) << "updating hovered handle after" << hoveredItem << "was hovered";
-
- const int oldHoveredHandleIndex = m_hoveredHandleIndex;
- m_hoveredHandleIndex = m_handleItems.indexOf(hoveredItem);
- if (m_hoveredHandleIndex == oldHoveredHandleIndex)
- return;
-
- // First, clear the hovered flag of any previously-hovered handle.
- if (oldHoveredHandleIndex != -1) {
- QQuickItem *oldHoveredHandle = m_handleItems.at(oldHoveredHandleIndex);
- QQuickSplitHandleAttached *oldHoveredHandleAttached = qobject_cast<QQuickSplitHandleAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitHandleAttached>(oldHoveredHandle, true));
- QQuickSplitHandleAttachedPrivate::get(oldHoveredHandleAttached)->setHovered(false);
- qCDebug(qlcQQuickSplitViewMouse) << "handle item at index" << oldHoveredHandleIndex << "is no longer hovered";
- }
-
- if (m_hoveredHandleIndex != -1) {
- QQuickSplitHandleAttached *handleAttached = qobject_cast<QQuickSplitHandleAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitHandleAttached>(hoveredItem, true));
- QQuickSplitHandleAttachedPrivate::get(handleAttached)->setHovered(true);
- qCDebug(qlcQQuickSplitViewMouse) << "handle item at index" << m_hoveredHandleIndex << "is now hovered";
- } else {
- qCDebug(qlcQQuickSplitViewMouse) << "either there is no hovered item or" << hoveredItem << "is not a handle";
- }
-
-#if QT_CONFIG(cursor)
- if (m_hoveredHandleIndex != -1)
- q->setCursor(m_orientation == Qt::Horizontal ? Qt::SplitHCursor : Qt::SplitVCursor);
- else
- q->setCursor(Qt::ArrowCursor);
-#endif
-}
-
-void QQuickSplitViewPrivate::setResizing(bool resizing)
-{
- Q_Q(QQuickSplitView);
- if (resizing == m_resizing)
- return;
-
- m_resizing = resizing;
- emit q->resizingChanged();
-}
-
-bool QQuickSplitViewPrivate::isHorizontal() const
-{
- return m_orientation == Qt::Horizontal;
-}
-
-QQuickItem *QQuickSplitViewPrivate::getContentItem()
-{
- Q_Q(QQuickSplitView);
- if (QQuickItem *item = QQuickContainerPrivate::getContentItem())
- return item;
-
- return new QQuickContentItem(q);
-}
-
-void QQuickSplitViewPrivate::handlePress(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSplitView);
- QQuickContainerPrivate::handlePress(point, timestamp);
-
- QQuickItem *pressedItem = q->childAt(point.x(), point.y());
- const int pressedHandleIndex = m_handleItems.indexOf(pressedItem);
- if (pressedHandleIndex != -1) {
- m_pressedHandleIndex = pressedHandleIndex;
- m_pressPos = point;
- m_mousePos = point;
-
- const QQuickItem *leftOrTopItem = qobject_cast<QQuickItem*>(contentModel->object(m_pressedHandleIndex));
- // Find the first item to the right/bottom of this one that is visible.
- QQuickItem *rightOrBottomItem = nullptr;
- m_nextVisibleIndexAfterPressedHandle = -1;
- for (int i = m_pressedHandleIndex + 1; i < contentModel->count(); ++i) {
- auto nextItem = qobject_cast<QQuickItem*>(contentModel->object(i));
- if (nextItem->isVisible()) {
- rightOrBottomItem = nextItem;
- m_nextVisibleIndexAfterPressedHandle = i;
- break;
- }
- }
- Q_ASSERT_X(rightOrBottomItem, Q_FUNC_INFO, qPrintable(QString::fromLatin1(
- "Failed to find a visible item to the right/bottom of the one that was pressed at index %1; this shouldn't happen")
- .arg(m_pressedHandleIndex)));
-
- const bool isHorizontal = m_orientation == Qt::Horizontal;
- m_leftOrTopItemSizeBeforePress = isHorizontal ? leftOrTopItem->width() : leftOrTopItem->height();
- m_rightOrBottomItemSizeBeforePress = isHorizontal ? rightOrBottomItem->width() : rightOrBottomItem->height();
- m_handlePosBeforePress = pressedItem->position();
-
- // Avoid e.g. Flickable stealing our drag if we're inside it.
- q->setKeepMouseGrab(true);
-
- // Force the attached object to be created since we rely on it.
- QQuickSplitHandleAttached *handleAttached = qobject_cast<QQuickSplitHandleAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitHandleAttached>(pressedItem, true));
- QQuickSplitHandleAttachedPrivate::get(handleAttached)->setPressed(true);
-
- setResizing(true);
-
- qCDebug(qlcQQuickSplitViewMouse).nospace() << "handled press -"
- << " left/top index=" << m_pressedHandleIndex << ","
- << " size before press=" << m_leftOrTopItemSizeBeforePress << ","
- << " item=" << leftOrTopItem
- << " right/bottom index=" << m_nextVisibleIndexAfterPressedHandle << ","
- << " size before press=" << m_rightOrBottomItemSizeBeforePress
- << " item=" << rightOrBottomItem;
- }
-}
-
-void QQuickSplitViewPrivate::handleMove(const QPointF &point, ulong timestamp)
-{
- QQuickContainerPrivate::handleMove(point, timestamp);
-
- if (m_pressedHandleIndex != -1) {
- m_mousePos = point;
- // Don't request layouts for input events because we want
- // resizing to be as responsive and smooth as possible.
- updatePolish();
- }
-}
-
-void QQuickSplitViewPrivate::handleRelease(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSplitView);
- QQuickContainerPrivate::handleRelease(point, timestamp);
-
- if (m_pressedHandleIndex != -1) {
- QQuickItem *pressedHandle = m_handleItems.at(m_pressedHandleIndex);
- QQuickSplitHandleAttached *handleAttached = qobject_cast<QQuickSplitHandleAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitHandleAttached>(pressedHandle, true));
- QQuickSplitHandleAttachedPrivate::get(handleAttached)->setPressed(false);
- }
-
- setResizing(false);
-
- m_pressedHandleIndex = -1;
- m_pressPos = QPointF();
- m_mousePos = QPointF();
- m_handlePosBeforePress = QPointF();
- m_leftOrTopItemSizeBeforePress = 0.0;
- m_rightOrBottomItemSizeBeforePress = 0.0;
- q->setKeepMouseGrab(false);
-}
-
-void QQuickSplitViewPrivate::itemVisibilityChanged(QQuickItem *item)
-{
- const int itemIndex = contentModel->indexOf(item, nullptr);
- Q_ASSERT(itemIndex != -1);
-
- qCDebug(qlcQQuickSplitView) << "visible property of split item"
- << item << "at index" << itemIndex << "changed to" << item->isVisible();
-
- // The visibility of an item just changed, so we need to update the visibility
- // of the corresponding handle (if one exists).
-
- const int handleIndex = handleIndexForSplitIndex(itemIndex);
- if (handleIndex != -1) {
- QQuickItem *handleItem = m_handleItems.at(handleIndex);
- handleItem->setVisible(item->isVisible());
-
- qCDebug(qlcQQuickSplitView) << "set visible property of handle item"
- << handleItem << "at index" << handleIndex << "to" << item->isVisible();
- }
-
- updateHandleVisibilities();
- updateFillIndex();
- requestLayout();
-}
-
-void QQuickSplitViewPrivate::itemImplicitWidthChanged(QQuickItem *)
-{
- requestLayout();
-}
-
-void QQuickSplitViewPrivate::itemImplicitHeightChanged(QQuickItem *)
-{
- requestLayout();
-}
-
-void QQuickSplitViewPrivate::updatePolish()
-{
- layout();
-}
-
-QQuickSplitViewPrivate *QQuickSplitViewPrivate::get(QQuickSplitView *splitView)
-{
- return splitView->d_func();
-}
-
-QQuickSplitView::QQuickSplitView(QQuickItem *parent)
- : QQuickContainer(*(new QQuickSplitViewPrivate), parent)
-{
- Q_D(QQuickSplitView);
- d->changeTypes |= QQuickItemPrivate::Visibility;
-
- setAcceptedMouseButtons(Qt::LeftButton);
- setFiltersChildMouseEvents(true);
-}
-
-QQuickSplitView::QQuickSplitView(QQuickSplitViewPrivate &dd, QQuickItem *parent)
- : QQuickContainer(dd, parent)
-{
- Q_D(QQuickSplitView);
- d->changeTypes |= QQuickItemPrivate::Visibility;
-
- setAcceptedMouseButtons(Qt::LeftButton);
- setFiltersChildMouseEvents(true);
-}
-
-QQuickSplitView::~QQuickSplitView()
-{
- Q_D(QQuickSplitView);
- for (int i = 0; i < d->contentModel->count(); ++i) {
- QQuickItem *item = qobject_cast<QQuickItem*>(d->contentModel->object(i));
- d->removeImplicitSizeListener(item);
- }
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::SplitView::orientation
-
- This property holds the orientation of the SplitView.
-
- The orientation determines how the split items are laid out:
-
- Possible values:
- \value Qt.Horizontal The items are laid out horizontally (default).
- \value Qt.Vertical The items are laid out vertically.
-*/
-Qt::Orientation QQuickSplitView::orientation() const
-{
- Q_D(const QQuickSplitView);
- return d->m_orientation;
-}
-
-void QQuickSplitView::setOrientation(Qt::Orientation orientation)
-{
- Q_D(QQuickSplitView);
- if (orientation == d->m_orientation)
- return;
-
- d->m_orientation = orientation;
- d->resizeHandles();
- d->requestLayout();
- emit orientationChanged();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::SplitView::resizing
- \readonly
-
- This property is \c true when the user is resizing
- split items by dragging on the splitter handles.
-*/
-bool QQuickSplitView::isResizing() const
-{
- Q_D(const QQuickSplitView);
- return d->m_resizing;
-}
-
-/*!
- \qmlproperty Component QtQuick.Controls::SplitView::handle
-
- This property holds the handle component.
-
- An instance of this component will be instantiated \c {count - 1}
- times, as long as \c count is greater than than \c {1}.
-
- The following table explains how each handle will be resized
- depending on the orientation of the split view:
-
- \table
- \header
- \li Orientation
- \li Handle Width
- \li Handle Height
- \row
- \li \c Qt.Horizontal
- \li \c implicitWidth
- \li The \c height of the SplitView.
- \row
- \li \c Qt.Vertical
- \li The \c width of the SplitView.
- \li \c implicitHeight
- \endtable
-
- To change the size of the handle for mouse and touch events without
- changing its visual size, use a \l {Item::}{containmentMask}:
-
- \snippet qtquickcontrols2-splitview-handle-containmentmask.qml 1
-
- \sa {Customizing SplitView}
-*/
-QQmlComponent *QQuickSplitView::handle()
-{
- Q_D(const QQuickSplitView);
- return d->m_handle;
-}
-
-void QQuickSplitView::setHandle(QQmlComponent *handle)
-{
- Q_D(QQuickSplitView);
- if (handle == d->m_handle)
- return;
-
- qCDebug(qlcQQuickSplitView) << "setting handle" << handle;
-
- if (d->m_handle)
- d->destroyHandles();
-
- d->m_handle = handle;
-
- if (d->m_handle) {
- d->createHandles();
- d->updateHandleVisibilities();
- }
-
- d->requestLayout();
-
- emit handleChanged();
-}
-
-bool QQuickSplitView::isContent(QQuickItem *item) const
-{
- Q_D(const QQuickSplitView);
- if (!qmlContext(item))
- return false;
-
- if (QQuickItemPrivate::get(item)->isTransparentForPositioner())
- return false;
-
- return !d->m_handleItems.contains(item);
-}
-
-QQuickSplitViewAttached *QQuickSplitView::qmlAttachedProperties(QObject *object)
-{
- return new QQuickSplitViewAttached(object);
-}
-
-/*!
- \qmlmethod var QtQuick.Controls::SplitView::saveState()
-
- Saves the preferred sizes of split items into a byte array and returns it.
-
- \sa {Serializing SplitView's State}, restoreState()
-*/
-QVariant QQuickSplitView::saveState()
-{
- Q_D(QQuickSplitView);
- qCDebug(qlcQQuickSplitViewState) << "saving state for split items in" << this;
-
- // Save the preferred sizes of each split item.
- QCborArray cborArray;
- for (int i = 0; i < d->contentModel->count(); ++i) {
- const QQuickItem *item = qobject_cast<QQuickItem*>(d->contentModel->object(i));
- const QQuickSplitViewAttached *attached = qobject_cast<QQuickSplitViewAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitView>(item, false));
- // Don't serialise stuff if we don't need to. If a split item was given a preferred
- // size in QML or it was dragged, it will have an attached object and either
- // m_isPreferredWidthSet or m_isPreferredHeightSet (or both) will be true,
- // so items without these can be skipped. We write the index of each item
- // that has data so that we know which item to set it on when restoring.
- if (!attached)
- continue;
-
- const QQuickSplitViewAttachedPrivate *attachedPrivate = QQuickSplitViewAttachedPrivate::get(attached);
- if (!attachedPrivate->m_isPreferredWidthSet && !attachedPrivate->m_isPreferredHeightSet)
- continue;
-
- QCborMap cborMap;
- cborMap[QLatin1String("index")] = i;
- if (attachedPrivate->m_isPreferredWidthSet) {
- cborMap[QLatin1String("preferredWidth")] = static_cast<double>(attachedPrivate->m_preferredWidth);
-
- qCDebug(qlcQQuickSplitViewState).nospace() << "- wrote preferredWidth of "
- << attachedPrivate->m_preferredWidth << " for split item " << item << " at index " << i;
- }
- if (attachedPrivate->m_isPreferredHeightSet) {
- cborMap[QLatin1String("preferredHeight")] = static_cast<double>(attachedPrivate->m_preferredHeight);
-
- qCDebug(qlcQQuickSplitViewState).nospace() << "- wrote preferredHeight of "
- << attachedPrivate->m_preferredHeight << " for split item " << item << " at index " << i;
- }
-
- cborArray.append(cborMap);
- }
-
- const QByteArray byteArray = cborArray.toCborValue().toCbor();
- qCDebug(qlcQQuickSplitViewState) << "the resulting byte array is:" << byteArray;
- return QVariant(byteArray);
-}
-
-/*!
- \qmlmethod bool QtQuick.Controls::SplitView::restoreState(state)
-
- Reads the preferred sizes from \a state and applies them to the split items.
-
- Returns \c true if the state was successfully restored, otherwise \c false.
-
- \sa {Serializing SplitView's State}, saveState()
-*/
-bool QQuickSplitView::restoreState(const QVariant &state)
-{
- const QByteArray cborByteArray = state.toByteArray();
- Q_D(QQuickSplitView);
- if (cborByteArray.isEmpty())
- return false;
-
- QCborParserError parserError;
- const QCborValue cborValue(QCborValue::fromCbor(cborByteArray, &parserError));
- if (parserError.error != QCborError::NoError) {
- qmlWarning(this) << "Error reading SplitView state:" << parserError.errorString();
- return false;
- }
-
- qCDebug(qlcQQuickSplitViewState) << "restoring state for split items of" << this
- << "from the following string:" << state;
-
- const QCborArray cborArray(cborValue.toArray());
- const int ourCount = d->contentModel->count();
- // This could conceivably happen if items were removed from the SplitView since the state was last saved.
- if (cborArray.size() > ourCount) {
- qmlWarning(this) << "Error reading SplitView state: expected "
- << ourCount << " or less split items but got " << cborArray.size();
- return false;
- }
-
- for (auto it = cborArray.constBegin(); it != cborArray.constEnd(); ++it) {
- QCborMap cborMap(it->toMap());
- const int splitItemIndex = cborMap.value(QLatin1String("index")).toInteger();
- const bool isPreferredWidthSet = cborMap.contains(QLatin1String("preferredWidth"));
- const bool isPreferredHeightSet = cborMap.contains(QLatin1String("preferredHeight"));
-
- QQuickItem *item = qobject_cast<QQuickItem*>(d->contentModel->object(splitItemIndex));
- // If the split item does not have a preferred size specified in QML, it could still have
- // been resized via dragging before it was saved. In this case, it won't have an
- // attached object upon application startup, so we create it.
- QQuickSplitViewAttached *attached = qobject_cast<QQuickSplitViewAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitView>(item, true));
- if (isPreferredWidthSet) {
- const qreal preferredWidth = cborMap.value(QLatin1String("preferredWidth")).toDouble();
- attached->setPreferredWidth(preferredWidth);
- }
- if (isPreferredHeightSet) {
- const qreal preferredHeight = cborMap.value(QLatin1String("preferredHeight")).toDouble();
- attached->setPreferredHeight(preferredHeight);
- }
-
- const QQuickSplitViewAttachedPrivate *attachedPrivate = QQuickSplitViewAttachedPrivate::get(attached);
- qCDebug(qlcQQuickSplitViewState).nospace()
- << "- restored the following state for split item " << item << " at index " << splitItemIndex
- << ": preferredWidthSet=" << attachedPrivate->m_isPreferredWidthSet
- << " preferredWidth=" << attachedPrivate->m_preferredWidth
- << " preferredHeightSet=" << attachedPrivate->m_isPreferredHeightSet
- << " preferredHeight=" << attachedPrivate->m_preferredHeight;
- }
-
- return true;
-}
-
-void QQuickSplitView::componentComplete()
-{
- Q_D(QQuickSplitView);
- QQuickControl::componentComplete();
- d->resizeHandles();
- d->updateFillIndex();
- d->updatePolish();
-}
-
-void QQuickSplitView::hoverMoveEvent(QHoverEvent *event)
-{
- Q_D(QQuickSplitView);
- QQuickContainer::hoverMoveEvent(event);
-
- QQuickItem *hoveredItem = childAt(event->position().toPoint().x(), event->position().toPoint().y());
- d->updateHoveredHandle(hoveredItem);
-}
-
-bool QQuickSplitView::childMouseEventFilter(QQuickItem *item, QEvent *event)
-{
- Q_D(QQuickSplitView);
- qCDebug(qlcQQuickSplitViewMouse) << "childMouseEventFilter called with" << item << event;
- if (event->type() != QEvent::HoverEnter)
- return false;
-
- // If a child item received a hover enter event, then it means our handle is no longer hovered.
- // Handles should be purely visual and not accept hover events,
- // so we should never get hover events for them here.
- d->updateHoveredHandle(nullptr);
- return false;
-}
-
-void QQuickSplitView::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickSplitView);
- QQuickControl::geometryChange(newGeometry, oldGeometry);
- d->resizeHandles();
- d->requestLayout();
-}
-
-void QQuickSplitView::itemAdded(int index, QQuickItem *item)
-{
- Q_D(QQuickSplitView);
- if (QQuickItemPrivate::get(item)->isTransparentForPositioner())
- return;
-
- const int count = d->contentModel->count();
- qCDebug(qlcQQuickSplitView).nospace() << "split item " << item << " added at index " << index
- << "; there are now " << count << " items";
-
- QQuickSplitViewAttached *attached = qobject_cast<QQuickSplitViewAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitView>(item, false));
- if (attached)
- QQuickSplitViewAttachedPrivate::get(attached)->setView(this);
-
- // Only need to add handles if we have more than one split item.
- if (count > 1) {
- // If the item was added at the end, it shouldn't get a handle;
- // the handle always goes to the split item on the left.
- d->createHandleItem(index < count - 1 ? index : index - 1);
- }
-
- d->addImplicitSizeListener(item);
-
- d->updateHandleVisibilities();
- d->updateFillIndex();
- d->requestLayout();
-}
-
-void QQuickSplitView::itemMoved(int index, QQuickItem *item)
-{
- Q_D(QQuickSplitView);
- if (QQuickItemPrivate::get(item)->isTransparentForPositioner())
- return;
-
- qCDebug(qlcQQuickSplitView) << "split item" << item << "moved to index" << index;
-
- d->updateHandleVisibilities();
- d->updateFillIndex();
- d->requestLayout();
-}
-
-void QQuickSplitView::itemRemoved(int index, QQuickItem *item)
-{
- Q_D(QQuickSplitView);
- if (QQuickItemPrivate::get(item)->isTransparentForPositioner())
- return;
-
- qCDebug(qlcQQuickSplitView).nospace() << "split item " << item << " removed from index " << index
- << "; there are now " << d->contentModel->count() << " items";
-
- // Clear hovered/pressed handle if there are any.
- if (d->m_hoveredHandleIndex != -1 || d->m_pressedHandleIndex != -1) {
- const int handleIndex = d->m_hoveredHandleIndex != -1 ? d->m_hoveredHandleIndex : d->m_pressedHandleIndex;
- QQuickItem *itemHandle = d->m_handleItems.at(handleIndex);
- QQuickSplitHandleAttached *handleAttached = qobject_cast<QQuickSplitHandleAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitHandleAttached>(itemHandle, false));
- if (handleAttached) {
- auto handleAttachedPrivate = QQuickSplitHandleAttachedPrivate::get(handleAttached);
- handleAttachedPrivate->setHovered(false);
- handleAttachedPrivate->setPressed(false);
- }
-
- setKeepMouseGrab(false);
- d->m_hoveredHandleIndex = -1;
- d->m_pressedHandleIndex = -1;
- }
-
- // Unset any attached properties since the item is no longer owned by us.
- QQuickSplitViewAttached *attached = qobject_cast<QQuickSplitViewAttached*>(
- qmlAttachedPropertiesObject<QQuickSplitView>(item, false));
- if (attached)
- QQuickSplitViewAttachedPrivate::get(attached)->setView(this);
-
- d->removeImplicitSizeListener(item);
-
- d->removeExcessHandles();
- d->updateHandleVisibilities();
- d->updateFillIndex();
- d->requestLayout();
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickSplitView::accessibleRole() const
-{
- return QAccessible::Pane;
-}
-#endif
-
-QQuickSplitViewAttached::QQuickSplitViewAttached(QObject *parent)
- : QObject(*(new QQuickSplitViewAttachedPrivate), parent)
-{
- Q_D(QQuickSplitViewAttached);
- QQuickItem *item = qobject_cast<QQuickItem *>(parent);
- if (!item) {
- qmlWarning(parent) << "SplitView: attached properties can only be used on Items";
- return;
- }
-
- if (QQuickItemPrivate::get(item)->isTransparentForPositioner())
- return;
-
- d->m_splitItem = item;
-
- // Child items get added to SplitView's contentItem, so we have to ensure
- // that exists first before trying to set m_splitView.
- // Apparently, in some cases it's normal for the parent item
- // to not exist until shortly after this constructor has run.
- if (!item->parentItem())
- return;
-
- // This will get hit when attached SplitView properties are imperatively set
- // on an item that previously had none set, for example.
- QQuickSplitView *splitView = qobject_cast<QQuickSplitView*>(item->parentItem()->parentItem());
- if (!splitView) {
- qmlWarning(parent) << "SplitView: attached properties must be accessed through a direct child of SplitView";
- return;
- }
-
- d->setView(splitView);
-}
-
-/*!
- \qmlattachedproperty SplitView QtQuick.Controls::SplitView::view
-
- This attached property holds the split view of the item it is
- attached to, or \c null if the item is not in a split view.
-*/
-QQuickSplitView *QQuickSplitViewAttached::view() const
-{
- Q_D(const QQuickSplitViewAttached);
- return d->m_splitView;
-}
-
-/*!
- \qmlattachedproperty real QtQuick.Controls::SplitView::minimumWidth
-
- This attached property controls the minimum width of the split item.
- The \l preferredWidth is bound within the \l minimumWidth and
- \l maximumWidth. A split item cannot be dragged to be smaller than
- its \c minimumWidth.
-
- The default value is \c 0. To reset this property to its default value,
- set it to \c undefined.
-
- \sa maximumWidth, preferredWidth, fillWidth, minimumHeight
-*/
-qreal QQuickSplitViewAttached::minimumWidth() const
-{
- Q_D(const QQuickSplitViewAttached);
- return d->m_minimumWidth;
-}
-
-void QQuickSplitViewAttached::setMinimumWidth(qreal width)
-{
- Q_D(QQuickSplitViewAttached);
- d->m_isMinimumWidthSet = true;
- if (qFuzzyCompare(width, d->m_minimumWidth))
- return;
-
- d->m_minimumWidth = width;
- d->requestLayoutView();
- emit minimumWidthChanged();
-}
-
-void QQuickSplitViewAttached::resetMinimumWidth()
-{
- Q_D(QQuickSplitViewAttached);
- const qreal oldEffectiveMinimumWidth = effectiveMinimumWidth(d);
-
- d->m_isMinimumWidthSet = false;
- d->m_minimumWidth = -1;
-
- const qreal newEffectiveMinimumWidth = effectiveMinimumWidth(d);
- if (qFuzzyCompare(newEffectiveMinimumWidth, oldEffectiveMinimumWidth))
- return;
-
- d->requestLayoutView();
- emit minimumWidthChanged();
-}
-
-/*!
- \qmlattachedproperty real QtQuick.Controls::SplitView::minimumHeight
-
- This attached property controls the minimum height of the split item.
- The \l preferredHeight is bound within the \l minimumHeight and
- \l maximumHeight. A split item cannot be dragged to be smaller than
- its \c minimumHeight.
-
- The default value is \c 0. To reset this property to its default value,
- set it to \c undefined.
-
- \sa maximumHeight, preferredHeight, fillHeight, minimumWidth
-*/
-qreal QQuickSplitViewAttached::minimumHeight() const
-{
- Q_D(const QQuickSplitViewAttached);
- return d->m_minimumHeight;
-}
-
-void QQuickSplitViewAttached::setMinimumHeight(qreal height)
-{
- Q_D(QQuickSplitViewAttached);
- d->m_isMinimumHeightSet = true;
- if (qFuzzyCompare(height, d->m_minimumHeight))
- return;
-
- d->m_minimumHeight = height;
- d->requestLayoutView();
- emit minimumHeightChanged();
-}
-
-void QQuickSplitViewAttached::resetMinimumHeight()
-{
- Q_D(QQuickSplitViewAttached);
- const qreal oldEffectiveMinimumHeight = effectiveMinimumHeight(d);
-
- d->m_isMinimumHeightSet = false;
- d->m_minimumHeight = -1;
-
- const qreal newEffectiveMinimumHeight = effectiveMinimumHeight(d);
- if (qFuzzyCompare(newEffectiveMinimumHeight, oldEffectiveMinimumHeight))
- return;
-
- d->requestLayoutView();
- emit minimumHeightChanged();
-}
-
-/*!
- \qmlattachedproperty real QtQuick.Controls::SplitView::preferredWidth
-
- This attached property controls the preferred width of the split item. The
- preferred width will be used as the size of the item, and will be bound
- within the \l minimumWidth and \l maximumWidth. If the preferred width
- is not set, the item's \l {Item::}{implicitWidth} will be used.
-
- When a split item is resized, the preferredWidth will be set in order
- to keep track of the new size.
-
- By default, this property is not set, and therefore
- \l {Item::}{implicitWidth} will be used instead. To reset this property to
- its default value, set it to \c undefined.
-
- \note Do not set the \l{Item::}{width} property of a split item, as it will be
- overwritten upon each layout of the SplitView.
-
- \sa minimumWidth, maximumWidth, fillWidth, preferredHeight
-*/
-qreal QQuickSplitViewAttached::preferredWidth() const
-{
- Q_D(const QQuickSplitViewAttached);
- return d->m_preferredWidth;
-}
-
-void QQuickSplitViewAttached::setPreferredWidth(qreal width)
-{
- Q_D(QQuickSplitViewAttached);
- d->m_isPreferredWidthSet = true;
- // Make sure that we clear this flag now, before we emit the change signals
- // which could cause another setter to be called.
- auto splitViewPrivate = d->m_splitView ? QQuickSplitViewPrivate::get(d->m_splitView) : nullptr;
- const bool ignoreNextLayoutRequest = splitViewPrivate && splitViewPrivate->m_ignoreNextLayoutRequest;
- if (splitViewPrivate)
- splitViewPrivate->m_ignoreNextLayoutRequest = false;
-
- if (qFuzzyCompare(width, d->m_preferredWidth))
- return;
-
- d->m_preferredWidth = width;
-
- if (!ignoreNextLayoutRequest) {
- // We are currently in the middle of performing a layout, and the user (not our internal code)
- // changed the preferred width of one of the split items, so request another layout.
- d->requestLayoutView();
- }
-
- emit preferredWidthChanged();
-}
-
-void QQuickSplitViewAttached::resetPreferredWidth()
-{
- Q_D(QQuickSplitViewAttached);
- const qreal oldEffectivePreferredWidth = effectivePreferredWidth(
- d, QQuickItemPrivate::get(d->m_splitItem));
-
- d->m_isPreferredWidthSet = false;
- d->m_preferredWidth = -1;
-
- const qreal newEffectivePreferredWidth = effectivePreferredWidth(
- d, QQuickItemPrivate::get(d->m_splitItem));
- if (qFuzzyCompare(newEffectivePreferredWidth, oldEffectivePreferredWidth))
- return;
-
- d->requestLayoutView();
- emit preferredWidthChanged();
-}
-
-/*!
- \qmlattachedproperty real QtQuick.Controls::SplitView::preferredHeight
-
- This attached property controls the preferred height of the split item. The
- preferred height will be used as the size of the item, and will be bound
- within the \l minimumHeight and \l maximumHeight. If the preferred height
- is not set, the item's \l{Item::}{implicitHeight} will be used.
-
- When a split item is resized, the preferredHeight will be set in order
- to keep track of the new size.
-
- By default, this property is not set, and therefore
- \l{Item::}{implicitHeight} will be used instead. To reset this property to
- its default value, set it to \c undefined.
-
- \note Do not set the \l{Item::}{height} property of a split item, as it will be
- overwritten upon each layout of the SplitView.
-
- \sa minimumHeight, maximumHeight, fillHeight, preferredWidth
-*/
-qreal QQuickSplitViewAttached::preferredHeight() const
-{
- Q_D(const QQuickSplitViewAttached);
- return d->m_preferredHeight;
-}
-
-void QQuickSplitViewAttached::setPreferredHeight(qreal height)
-{
- Q_D(QQuickSplitViewAttached);
- d->m_isPreferredHeightSet = true;
- // Make sure that we clear this flag now, before we emit the change signals
- // which could cause another setter to be called.
- auto splitViewPrivate = d->m_splitView ? QQuickSplitViewPrivate::get(d->m_splitView) : nullptr;
- const bool ignoreNextLayoutRequest = splitViewPrivate && splitViewPrivate->m_ignoreNextLayoutRequest;
- if (splitViewPrivate)
- splitViewPrivate->m_ignoreNextLayoutRequest = false;
-
- if (qFuzzyCompare(height, d->m_preferredHeight))
- return;
-
- d->m_preferredHeight = height;
-
- if (!ignoreNextLayoutRequest) {
- // We are currently in the middle of performing a layout, and the user (not our internal code)
- // changed the preferred height of one of the split items, so request another layout.
- d->requestLayoutView();
- }
-
- emit preferredHeightChanged();
-}
-
-void QQuickSplitViewAttached::resetPreferredHeight()
-{
- Q_D(QQuickSplitViewAttached);
- const qreal oldEffectivePreferredHeight = effectivePreferredHeight(
- d, QQuickItemPrivate::get(d->m_splitItem));
-
- d->m_isPreferredHeightSet = false;
- d->m_preferredHeight = -1;
-
- const qreal newEffectivePreferredHeight = effectivePreferredHeight(
- d, QQuickItemPrivate::get(d->m_splitItem));
- if (qFuzzyCompare(newEffectivePreferredHeight, oldEffectivePreferredHeight))
- return;
-
- d->requestLayoutView();
- emit preferredHeightChanged();
-}
-
-/*!
- \qmlattachedproperty real QtQuick.Controls::SplitView::maximumWidth
-
- This attached property controls the maximum width of the split item.
- The \l preferredWidth is bound within the \l minimumWidth and
- \l maximumWidth. A split item cannot be dragged to be larger than
- its \c maximumWidth.
-
- The default value is \c Infinity. To reset this property to its default
- value, set it to \c undefined.
-
- \sa minimumWidth, preferredWidth, fillWidth, maximumHeight
-*/
-qreal QQuickSplitViewAttached::maximumWidth() const
-{
- Q_D(const QQuickSplitViewAttached);
- return d->m_maximumWidth;
-}
-
-void QQuickSplitViewAttached::setMaximumWidth(qreal width)
-{
- Q_D(QQuickSplitViewAttached);
- d->m_isMaximumWidthSet = true;
- if (qFuzzyCompare(width, d->m_maximumWidth))
- return;
-
- d->m_maximumWidth = width;
- d->requestLayoutView();
- emit maximumWidthChanged();
-}
-
-void QQuickSplitViewAttached::resetMaximumWidth()
-{
- Q_D(QQuickSplitViewAttached);
- const qreal oldEffectiveMaximumWidth = effectiveMaximumWidth(d);
-
- d->m_isMaximumWidthSet = false;
- d->m_maximumWidth = -1;
-
- const qreal newEffectiveMaximumWidth = effectiveMaximumWidth(d);
- if (qFuzzyCompare(newEffectiveMaximumWidth, oldEffectiveMaximumWidth))
- return;
-
- d->requestLayoutView();
- emit maximumWidthChanged();
-}
-
-/*!
- \qmlattachedproperty real QtQuick.Controls::SplitView::maximumHeight
-
- This attached property controls the maximum height of the split item.
- The \l preferredHeight is bound within the \l minimumHeight and
- \l maximumHeight. A split item cannot be dragged to be larger than
- its \c maximumHeight.
-
- The default value is \c Infinity. To reset this property to its default
- value, set it to \c undefined.
-
- \sa minimumHeight, preferredHeight, fillHeight, maximumWidth
-*/
-qreal QQuickSplitViewAttached::maximumHeight() const
-{
- Q_D(const QQuickSplitViewAttached);
- return d->m_maximumHeight;
-}
-
-void QQuickSplitViewAttached::setMaximumHeight(qreal height)
-{
- Q_D(QQuickSplitViewAttached);
- d->m_isMaximumHeightSet = true;
- if (qFuzzyCompare(height, d->m_maximumHeight))
- return;
-
- d->m_maximumHeight = height;
- d->requestLayoutView();
- emit maximumHeightChanged();
-}
-
-void QQuickSplitViewAttached::resetMaximumHeight()
-{
- Q_D(QQuickSplitViewAttached);
- const qreal oldEffectiveMaximumHeight = effectiveMaximumHeight(d);
-
- d->m_isMaximumHeightSet = false;
- d->m_maximumHeight = -1;
-
- const qreal newEffectiveMaximumHeight = effectiveMaximumHeight(d);
- if (qFuzzyCompare(newEffectiveMaximumHeight, oldEffectiveMaximumHeight))
- return;
-
- d->requestLayoutView();
- emit maximumHeightChanged();
-}
-
-/*!
- \qmlattachedproperty bool QtQuick.Controls::SplitView::fillWidth
-
- This attached property controls whether the item takes the remaining space
- in the split view after all other items have been laid out.
-
- By default, the last visible child of the split view will have this set,
- but it can be changed by explicitly setting \c fillWidth to \c true on
- another item.
-
- The width of a split item with \c fillWidth set to \c true is still
- restricted within its \l minimumWidth and \l maximumWidth.
-
- \sa minimumWidth, preferredWidth, maximumWidth, fillHeight
-*/
-bool QQuickSplitViewAttached::fillWidth() const
-{
- Q_D(const QQuickSplitViewAttached);
- return d->m_fillWidth;
-}
-
-void QQuickSplitViewAttached::setFillWidth(bool fill)
-{
- Q_D(QQuickSplitViewAttached);
- d->m_isFillWidthSet = true;
- if (fill == d->m_fillWidth)
- return;
-
- d->m_fillWidth = fill;
- if (d->m_splitView && d->m_splitView->orientation() == Qt::Horizontal)
- QQuickSplitViewPrivate::get(d->m_splitView)->updateFillIndex();
- d->requestLayoutView();
- emit fillWidthChanged();
-}
-
-/*!
- \qmlattachedproperty bool QtQuick.Controls::SplitView::fillHeight
-
- This attached property controls whether the item takes the remaining space
- in the split view after all other items have been laid out.
-
- By default, the last visible child of the split view will have this set,
- but it can be changed by explicitly setting \c fillHeight to \c true on
- another item.
-
- The height of a split item with \c fillHeight set to \c true is still
- restricted within its \l minimumHeight and \l maximumHeight.
-
- \sa minimumHeight, preferredHeight, maximumHeight, fillWidth
-*/
-bool QQuickSplitViewAttached::fillHeight() const
-{
- Q_D(const QQuickSplitViewAttached);
- return d->m_fillHeight;
-}
-
-void QQuickSplitViewAttached::setFillHeight(bool fill)
-{
- Q_D(QQuickSplitViewAttached);
- d->m_isFillHeightSet = true;
- if (fill == d->m_fillHeight)
- return;
-
- d->m_fillHeight = fill;
- if (d->m_splitView && d->m_splitView->orientation() == Qt::Vertical)
- QQuickSplitViewPrivate::get(d->m_splitView)->updateFillIndex();
- d->requestLayoutView();
- emit fillHeightChanged();
-}
-
-QQuickSplitViewAttachedPrivate::QQuickSplitViewAttachedPrivate()
- : m_fillWidth(false)
- , m_fillHeight(false)
- , m_isFillWidthSet(false)
- , m_isFillHeightSet(false)
- , m_isMinimumWidthSet(false)
- , m_isMinimumHeightSet(false)
- , m_isPreferredWidthSet(false)
- , m_isPreferredHeightSet(false)
- , m_isMaximumWidthSet(false)
- , m_isMaximumHeightSet(false)
- , m_minimumWidth(0)
- , m_minimumHeight(0)
- , m_preferredWidth(-1)
- , m_preferredHeight(-1)
- , m_maximumWidth(std::numeric_limits<qreal>::infinity())
- , m_maximumHeight(std::numeric_limits<qreal>::infinity())
-{
-}
-
-void QQuickSplitViewAttachedPrivate::setView(QQuickSplitView *newView)
-{
- Q_Q(QQuickSplitViewAttached);
- if (newView == m_splitView)
- return;
-
- m_splitView = newView;
- qCDebug(qlcQQuickSplitView) << "set SplitView" << newView << "on attached object" << this;
- emit q->viewChanged();
-}
-
-void QQuickSplitViewAttachedPrivate::requestLayoutView()
-{
- if (m_splitView)
- QQuickSplitViewPrivate::get(m_splitView)->requestLayout();
-}
-
-QQuickSplitViewAttachedPrivate *QQuickSplitViewAttachedPrivate::get(QQuickSplitViewAttached *attached)
-{
- return attached->d_func();
-}
-
-const QQuickSplitViewAttachedPrivate *QQuickSplitViewAttachedPrivate::get(const QQuickSplitViewAttached *attached)
-{
- return attached->d_func();
-}
-
-QQuickSplitHandleAttachedPrivate::QQuickSplitHandleAttachedPrivate()
- : m_hovered(false)
- , m_pressed(false)
-{
-}
-
-void QQuickSplitHandleAttachedPrivate::setHovered(bool hovered)
-{
- Q_Q(QQuickSplitHandleAttached);
- if (hovered == m_hovered)
- return;
-
- m_hovered = hovered;
- emit q->hoveredChanged();
-}
-
-void QQuickSplitHandleAttachedPrivate::setPressed(bool pressed)
-{
- Q_Q(QQuickSplitHandleAttached);
- if (pressed == m_pressed)
- return;
-
- m_pressed = pressed;
- emit q->pressedChanged();
-}
-
-QQuickSplitHandleAttachedPrivate *QQuickSplitHandleAttachedPrivate::get(QQuickSplitHandleAttached *attached)
-{
- return attached->d_func();
-}
-
-const QQuickSplitHandleAttachedPrivate *QQuickSplitHandleAttachedPrivate::get(const QQuickSplitHandleAttached *attached)
-{
- return attached->d_func();
-}
-
-QQuickSplitHandleAttached::QQuickSplitHandleAttached(QObject *parent)
- : QObject(*(new QQuickSplitHandleAttachedPrivate), parent)
-{
-}
-
-/*!
- \qmltype SplitHandle
- \inherits QtObject
-//! \instantiates QQuickSplitHandleAttached
- \inqmlmodule QtQuick.Controls
- \since 5.13
- \brief Provides attached properties for SplitView handles.
-
- SplitHandle provides attached properties for \l SplitView handles.
-
- For split items themselves, use the attached \l SplitView properties.
-
- \sa SplitView
-*/
-
-/*!
- \qmlattachedproperty bool QtQuick.Controls::SplitHandle::hovered
-
- This attached property holds whether the split handle is hovered.
-
- \sa pressed
-*/
-bool QQuickSplitHandleAttached::isHovered() const
-{
- Q_D(const QQuickSplitHandleAttached);
- return d->m_hovered;
-}
-
-/*!
- \qmlattachedproperty bool QtQuick.Controls::SplitHandle::pressed
-
- This attached property holds whether the split handle is pressed.
-
- \sa hovered
-*/
-bool QQuickSplitHandleAttached::isPressed() const
-{
- Q_D(const QQuickSplitHandleAttached);
- return d->m_pressed;
-}
-
-QQuickSplitHandleAttached *QQuickSplitHandleAttached::qmlAttachedProperties(QObject *object)
-{
- return new QQuickSplitHandleAttached(object);
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquicksplitview_p.cpp"
diff --git a/src/quicktemplates2/qquicksplitview_p.h b/src/quicktemplates2/qquicksplitview_p.h
deleted file mode 100644
index 55b45ed8..00000000
--- a/src/quicktemplates2/qquicksplitview_p.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSPLITVIEW_P_H
-#define QQUICKSPLITVIEW_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontainer_p.h>
-#include <QtQml/qqmllist.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickSplitViewPrivate;
-class QQuickSplitViewAttached;
-class QQuickSplitViewAttachedPrivate;
-class QQuickSplitHandleAttached;
-class QQuickSplitHandleAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSplitView : public QQuickContainer
-{
- Q_OBJECT
- Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged FINAL)
- Q_PROPERTY(bool resizing READ isResizing NOTIFY resizingChanged)
- Q_PROPERTY(QQmlComponent *handle READ handle WRITE setHandle NOTIFY handleChanged FINAL)
- QML_NAMED_ELEMENT(SplitView)
- QML_ATTACHED(QQuickSplitViewAttached)
- QML_ADDED_IN_VERSION(2, 13)
-
-public:
- explicit QQuickSplitView(QQuickItem *parent = nullptr);
- ~QQuickSplitView() override;
-
- Qt::Orientation orientation() const;
- void setOrientation(Qt::Orientation orientation);
-
- bool isResizing() const;
-
- QQmlComponent *handle();
- void setHandle(QQmlComponent *handle);
-
- bool isContent(QQuickItem *item) const override;
-
- static QQuickSplitViewAttached *qmlAttachedProperties(QObject *object);
-
- // Based on the same code in QMainWindow.
- enum VersionMarkers {
- VersionMarker = 0xff
- };
- Q_INVOKABLE QVariant saveState();
- Q_INVOKABLE bool restoreState(const QVariant &state);
-
-Q_SIGNALS:
- void orientationChanged();
- void resizingChanged();
- void handleChanged();
-
-protected:
- QQuickSplitView(QQuickSplitViewPrivate &dd, QQuickItem *parent);
-
- void componentComplete() override;
- void hoverMoveEvent(QHoverEvent *event) override;
- bool childMouseEventFilter(QQuickItem *item, QEvent *event) override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
-
- void itemAdded(int index, QQuickItem *item) override;
- void itemMoved(int index, QQuickItem *item) override;
- void itemRemoved(int index, QQuickItem *item) override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickSplitView)
- Q_DECLARE_PRIVATE(QQuickSplitView)
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSplitViewAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickSplitView *view READ view NOTIFY viewChanged FINAL)
- Q_PROPERTY(qreal minimumWidth READ minimumWidth WRITE setMinimumWidth
- RESET resetMinimumWidth NOTIFY minimumWidthChanged FINAL)
- Q_PROPERTY(qreal minimumHeight READ minimumHeight WRITE setMinimumHeight
- RESET resetMinimumHeight NOTIFY minimumHeightChanged FINAL)
- Q_PROPERTY(qreal preferredWidth READ preferredWidth WRITE setPreferredWidth
- RESET resetPreferredWidth NOTIFY preferredWidthChanged FINAL)
- Q_PROPERTY(qreal preferredHeight READ preferredHeight WRITE setPreferredHeight
- RESET resetPreferredHeight NOTIFY preferredHeightChanged FINAL)
- Q_PROPERTY(qreal maximumWidth READ maximumWidth WRITE setMaximumWidth
- RESET resetMaximumWidth NOTIFY maximumWidthChanged FINAL)
- Q_PROPERTY(qreal maximumHeight READ maximumHeight WRITE setMaximumHeight
- RESET resetMaximumHeight NOTIFY maximumHeightChanged FINAL)
- Q_PROPERTY(bool fillHeight READ fillHeight WRITE setFillHeight NOTIFY fillHeightChanged FINAL)
- Q_PROPERTY(bool fillWidth READ fillWidth WRITE setFillWidth NOTIFY fillWidthChanged FINAL)
-
-public:
- explicit QQuickSplitViewAttached(QObject *parent = nullptr);
-
- QQuickSplitView *view() const;
-
- qreal minimumWidth() const;
- void setMinimumWidth(qreal width);
- void resetMinimumWidth();
-
- qreal minimumHeight() const;
- void setMinimumHeight(qreal height);
- void resetMinimumHeight();
-
- qreal preferredWidth() const;
- void setPreferredWidth(qreal width);
- void resetPreferredWidth();
-
- qreal preferredHeight() const;
- void setPreferredHeight(qreal height);
- void resetPreferredHeight();
-
- qreal maximumWidth() const;
- void setMaximumWidth(qreal width);
- void resetMaximumWidth();
-
- qreal maximumHeight() const;
- void setMaximumHeight(qreal height);
- void resetMaximumHeight();
-
- bool fillWidth() const;
- void setFillWidth(bool fill);
-
- bool fillHeight() const;
- void setFillHeight(bool fill);
-
-Q_SIGNALS:
- void viewChanged();
- void minimumWidthChanged();
- void minimumHeightChanged();
- void preferredWidthChanged();
- void preferredHeightChanged();
- void maximumWidthChanged();
- void maximumHeightChanged();
- void fillWidthChanged();
- void fillHeightChanged();
-
-private:
- Q_DISABLE_COPY(QQuickSplitViewAttached)
- Q_DECLARE_PRIVATE(QQuickSplitViewAttached)
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSplitHandleAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(bool hovered READ isHovered NOTIFY hoveredChanged FINAL)
- Q_PROPERTY(bool pressed READ isPressed NOTIFY pressedChanged FINAL)
- QML_NAMED_ELEMENT(SplitHandle)
- QML_ATTACHED(QQuickSplitHandleAttached)
- QML_UNCREATABLE("")
- QML_ADDED_IN_VERSION(2, 13)
-
-public:
- explicit QQuickSplitHandleAttached(QObject *parent = nullptr);
-
- bool isHovered() const;
- bool isPressed() const;
-
- static QQuickSplitHandleAttached *qmlAttachedProperties(QObject *object);
-
-Q_SIGNALS:
- void hoveredChanged();
- void pressedChanged();
-
-private:
- Q_DISABLE_COPY(QQuickSplitHandleAttached)
- Q_DECLARE_PRIVATE(QQuickSplitHandleAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickSplitView)
-QML_DECLARE_TYPEINFO(QQuickSplitView, QML_HAS_ATTACHED_PROPERTIES)
-
-QML_DECLARE_TYPE(QQuickSplitHandleAttached)
-QML_DECLARE_TYPEINFO(QQuickSplitHandleAttached, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKSPLITVIEW_P_H
diff --git a/src/quicktemplates2/qquicksplitview_p_p.h b/src/quicktemplates2/qquicksplitview_p_p.h
deleted file mode 100644
index ebf51bf9..00000000
--- a/src/quicktemplates2/qquicksplitview_p_p.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSPLITVIEW_P_P_H
-#define QQUICKSPLITVIEW_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontainer_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickSplitView;
-class QQuickSplitViewAttached;
-class QQuickSplitHandleAttached;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSplitViewPrivate : public QQuickContainerPrivate
-{
- Q_DECLARE_PUBLIC(QQuickSplitView)
-
-public:
- void updateFillIndex();
- void layoutResizeSplitItems(qreal &usedWidth, qreal &usedHeight, int &indexBeingResizedDueToDrag);
- void layoutResizeFillItem(QQuickItem *fillItem, qreal &usedWidth, qreal &usedHeight, int indexBeingResizedDueToDrag);
- void layoutPositionItems(const QQuickItem *fillItem);
- void requestLayout();
- void layout();
- void createHandles();
- void createHandleItem(int index);
- void removeExcessHandles();
- void destroyHandles();
- void resizeHandle(QQuickItem *handleItem);
- void resizeHandles();
- void updateHandleVisibilities();
- void updateHoveredHandle(QQuickItem *hoveredItem);
- void setResizing(bool resizing);
-
- bool isHorizontal() const;
- qreal accumulatedSize(int firstIndex, int lastIndex) const;
-
- struct EffectiveSizeData {
- qreal effectiveMinimumWidth;
- qreal effectiveMinimumHeight;
- qreal effectivePreferredWidth;
- qreal effectivePreferredHeight;
- qreal effectiveMaximumWidth;
- qreal effectiveMaximumHeight;
- };
-
- EffectiveSizeData effectiveSizeData(const QQuickItemPrivate *itemPrivate,
- const QQuickSplitViewAttached *attached) const;
-
- int handleIndexForSplitIndex(int splitIndex) const;
-
- QQuickItem *getContentItem() override;
- void handlePress(const QPointF &point, ulong timestamp) override;
- void handleMove(const QPointF &point, ulong timestamp) override;
- void handleRelease(const QPointF &point, ulong timestamp) override;
-
- void itemVisibilityChanged(QQuickItem *item) override;
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- void updatePolish() override;
-
- static QQuickSplitViewPrivate *get(QQuickSplitView *splitView);
-
- Qt::Orientation m_orientation = Qt::Horizontal;
- QQmlComponent *m_handle = nullptr;
- QList<QQuickItem*> m_handleItems;
- int m_hoveredHandleIndex = -1;
- int m_pressedHandleIndex = -1;
- int m_nextVisibleIndexAfterPressedHandle = -1;
- QPointF m_pressPos;
- QPointF m_mousePos;
- QPointF m_handlePosBeforePress;
- qreal m_leftOrTopItemSizeBeforePress = 0.0;
- qreal m_rightOrBottomItemSizeBeforePress = 0.0;
- int m_fillIndex = -1;
- bool m_layingOut = false;
- bool m_ignoreNextLayoutRequest = false;
- bool m_resizing = false;
-};
-
-class QQuickSplitViewAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickSplitViewAttached)
-
-public:
- QQuickSplitViewAttachedPrivate();
-
- void setView(QQuickSplitView *newView);
- void requestLayoutView();
-
- static QQuickSplitViewAttachedPrivate *get(QQuickSplitViewAttached *attached);
- static const QQuickSplitViewAttachedPrivate *get(const QQuickSplitViewAttached *attached);
-
- QQuickItem *m_splitItem = nullptr;
- QQuickSplitView *m_splitView = nullptr;
-
- unsigned m_fillWidth : 1;
- unsigned m_fillHeight : 1;
- unsigned m_isFillWidthSet : 1;
- unsigned m_isFillHeightSet : 1;
- unsigned m_isMinimumWidthSet : 1;
- unsigned m_isMinimumHeightSet : 1;
- unsigned m_isPreferredWidthSet : 1;
- unsigned m_isPreferredHeightSet : 1;
- unsigned m_isMaximumWidthSet : 1;
- unsigned m_isMaximumHeightSet : 1;
- qreal m_minimumWidth;
- qreal m_minimumHeight;
- qreal m_preferredWidth;
- qreal m_preferredHeight;
- qreal m_maximumWidth;
- qreal m_maximumHeight;
-};
-
-class QQuickSplitHandleAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickSplitHandleAttached)
-
-public:
- QQuickSplitHandleAttachedPrivate();
-
- void setHovered(bool hovered);
- void setPressed(bool pressed);
-
- static QQuickSplitHandleAttachedPrivate *get(QQuickSplitHandleAttached *attached);
- static const QQuickSplitHandleAttachedPrivate *get(const QQuickSplitHandleAttached *attached);
-
- unsigned m_hovered : 1;
- unsigned m_pressed : 1;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSPLITVIEW_P_P_H
diff --git a/src/quicktemplates2/qquickstackelement.cpp b/src/quicktemplates2/qquickstackelement.cpp
deleted file mode 100644
index b275f96b..00000000
--- a/src/quicktemplates2/qquickstackelement.cpp
+++ /dev/null
@@ -1,320 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstackelement_p_p.h"
-#include "qquickstackview_p_p.h"
-
-#include <QtQml/qqmlinfo.h>
-#include <QtQml/qqmlengine.h>
-#include <QtQml/qqmlcomponent.h>
-#include <QtQml/qqmlincubator.h>
-#include <QtQml/private/qv4qobjectwrapper_p.h>
-#include <QtQml/private/qqmlcomponent_p.h>
-#include <QtQml/private/qqmlengine_p.h>
-
-QT_BEGIN_NAMESPACE
-
-static QQuickStackViewAttached *attachedStackObject(QQuickStackElement *element)
-{
- QQuickStackViewAttached *attached = qobject_cast<QQuickStackViewAttached *>(qmlAttachedPropertiesObject<QQuickStackView>(element->item, false));
- if (attached)
- QQuickStackViewAttachedPrivate::get(attached)->element = element;
- return attached;
-}
-
-class QQuickStackIncubator : public QQmlIncubator
-{
-public:
- QQuickStackIncubator(QQuickStackElement *element)
- : QQmlIncubator(Synchronous),
- element(element)
- {
- }
-
-protected:
- void setInitialState(QObject *object) override { element->incubate(object); }
-
-private:
- QQuickStackElement *element;
-};
-
-QQuickStackElement::QQuickStackElement()
- : QQuickItemViewTransitionableItem(nullptr)
-{
-}
-
-QQuickStackElement::~QQuickStackElement()
-{
- if (item)
- QQuickItemPrivate::get(item)->removeItemChangeListener(this, QQuickItemPrivate::Destroyed);
-
- if (ownComponent)
- delete component;
-
- QQuickStackViewAttached *attached = attachedStackObject(this);
- if (item) {
- if (ownItem) {
- item->setParentItem(nullptr);
- item->deleteLater();
- item = nullptr;
- } else {
- setVisible(false);
- if (!widthValid)
- item->resetWidth();
- if (!heightValid)
- item->resetHeight();
- if (item->parentItem() != originalParent) {
- item->setParentItem(originalParent);
- } else {
- if (attached)
- QQuickStackViewAttachedPrivate::get(attached)->itemParentChanged(item, nullptr);
- }
- }
- }
-
- if (attached)
- emit attached->removed();
-
- delete context;
-}
-
-QQuickStackElement *QQuickStackElement::fromString(const QString &str, QQuickStackView *view, QString *error)
-{
- QUrl url(str);
- if (!url.isValid()) {
- *error = QStringLiteral("invalid url: ") + str;
- return nullptr;
- }
-
- if (url.isRelative())
- url = qmlContext(view)->resolvedUrl(url);
-
- QQuickStackElement *element = new QQuickStackElement;
- element->component = new QQmlComponent(qmlEngine(view), url, view);
- element->ownComponent = true;
- return element;
-}
-
-QQuickStackElement *QQuickStackElement::fromObject(QObject *object, QQuickStackView *view, QString *error)
-{
- Q_UNUSED(view);
- QQmlComponent *component = qobject_cast<QQmlComponent *>(object);
- QQuickItem *item = qobject_cast<QQuickItem *>(object);
- if (!component && !item) {
- *error = QQmlMetaType::prettyTypeName(object) + QStringLiteral(" is not supported. Must be Item or Component.");
- return nullptr;
- }
-
- QQuickStackElement *element = new QQuickStackElement;
- element->component = qobject_cast<QQmlComponent *>(object);
- element->item = qobject_cast<QQuickItem *>(object);
- if (element->item)
- element->originalParent = element->item->parentItem();
- return element;
-}
-
-bool QQuickStackElement::load(QQuickStackView *parent)
-{
- setView(parent);
- if (!item) {
- ownItem = true;
-
- if (component->isLoading()) {
- QObject::connect(component, &QQmlComponent::statusChanged, [this](QQmlComponent::Status status) {
- if (status == QQmlComponent::Ready)
- load(view);
- else if (status == QQmlComponent::Error)
- QQuickStackViewPrivate::get(view)->warn(component->errorString().trimmed());
- });
- return true;
- }
-
- QQmlContext *creationContext = component->creationContext();
- if (!creationContext)
- creationContext = qmlContext(parent);
- context = new QQmlContext(creationContext, parent);
- context->setContextObject(parent);
-
- QQuickStackIncubator incubator(this);
- component->create(incubator, context);
- if (component->isError())
- QQuickStackViewPrivate::get(parent)->warn(component->errorString().trimmed());
- } else {
- initialize();
- }
- return item;
-}
-
-void QQuickStackElement::incubate(QObject *object)
-{
- item = qmlobject_cast<QQuickItem *>(object);
- if (item) {
- QQmlEngine::setObjectOwnership(item, QQmlEngine::CppOwnership);
- item->setParent(view);
- initialize();
- }
-}
-
-void QQuickStackElement::initialize()
-{
- if (!item || init)
- return;
-
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- if (!(widthValid = p->widthValid()))
- item->setWidth(view->width());
- if (!(heightValid = p->heightValid()))
- item->setHeight(view->height());
- item->setParentItem(view);
- p->addItemChangeListener(this, QQuickItemPrivate::Destroyed);
-
- if (!properties.isUndefined()) {
- QQmlEngine *engine = qmlEngine(view);
- Q_ASSERT(engine);
- QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine);
- Q_ASSERT(v4);
- QV4::Scope scope(v4);
- QV4::ScopedValue ipv(scope, properties.value());
- QV4::Scoped<QV4::QmlContext> qmlContext(scope, qmlCallingContext.value());
- QV4::ScopedValue qmlObject(scope, QV4::QObjectWrapper::wrap(v4, item));
- RequiredProperties requiredPropertiesCurrentlyNotSupported;
- QQmlComponentPrivate::setInitialProperties(v4, qmlContext, qmlObject, ipv, requiredPropertiesCurrentlyNotSupported, item);
- properties.clear();
- }
-
- init = true;
-}
-
-void QQuickStackElement::setIndex(int value)
-{
- if (index == value)
- return;
-
- index = value;
- QQuickStackViewAttached *attached = attachedStackObject(this);
- if (attached)
- emit attached->indexChanged();
-}
-
-void QQuickStackElement::setView(QQuickStackView *value)
-{
- if (view == value)
- return;
-
- view = value;
- QQuickStackViewAttached *attached = attachedStackObject(this);
- if (attached)
- emit attached->viewChanged();
-}
-
-void QQuickStackElement::setStatus(QQuickStackView::Status value)
-{
- if (status == value)
- return;
-
- status = value;
- QQuickStackViewAttached *attached = attachedStackObject(this);
- if (!attached)
- return;
-
- switch (value) {
- case QQuickStackView::Inactive:
- emit attached->deactivated();
- break;
- case QQuickStackView::Deactivating:
- emit attached->deactivating();
- break;
- case QQuickStackView::Activating:
- emit attached->activating();
- break;
- case QQuickStackView::Active:
- emit attached->activated();
- break;
- default:
- Q_UNREACHABLE();
- break;
- }
-
- emit attached->statusChanged();
-}
-
-void QQuickStackElement::setVisible(bool visible)
-{
- QQuickStackViewAttached *attached = attachedStackObject(this);
- if (!item || (attached && QQuickStackViewAttachedPrivate::get(attached)->explicitVisible))
- return;
-
- item->setVisible(visible);
-}
-
-void QQuickStackElement::transitionNextReposition(QQuickItemViewTransitioner *transitioner, QQuickItemViewTransitioner::TransitionType type, bool asTarget)
-{
- if (transitioner)
- transitioner->transitionNextReposition(this, type, asTarget);
-}
-
-bool QQuickStackElement::prepareTransition(QQuickItemViewTransitioner *transitioner, const QRectF &viewBounds)
-{
- if (transitioner) {
- if (item) {
- QQuickAnchors *anchors = QQuickItemPrivate::get(item)->_anchors;
- // TODO: expose QQuickAnchorLine so we can test for other conflicting anchors
- if (anchors && (anchors->fill() || anchors->centerIn()))
- qmlWarning(item) << "StackView has detected conflicting anchors. Transitions may not execute properly.";
- }
-
- // TODO: add force argument to QQuickItemViewTransitionableItem::prepareTransition()?
- nextTransitionToSet = true;
- nextTransitionFromSet = true;
- nextTransitionFrom += QPointF(1, 1);
- return QQuickItemViewTransitionableItem::prepareTransition(transitioner, index, viewBounds);
- }
- return false;
-}
-
-void QQuickStackElement::startTransition(QQuickItemViewTransitioner *transitioner, QQuickStackView::Status status)
-{
- setStatus(status);
- if (transitioner)
- QQuickItemViewTransitionableItem::startTransition(transitioner, index);
-}
-
-void QQuickStackElement::itemDestroyed(QQuickItem *)
-{
- item = nullptr;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickstackelement_p_p.h b/src/quicktemplates2/qquickstackelement_p_p.h
deleted file mode 100644
index 65e73244..00000000
--- a/src/quicktemplates2/qquickstackelement_p_p.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTACKELEMENT_P_P_H
-#define QQUICKSTACKELEMENT_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickstackview_p.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
-#include <QtQuick/private/qquickitemviewtransition_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-#include <QtQml/private/qv4persistent_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQmlContext;
-class QQmlComponent;
-struct QQuickStackTransition;
-
-class QQuickStackElement : public QQuickItemViewTransitionableItem, public QQuickItemChangeListener
-{
- QQuickStackElement();
-
-public:
- ~QQuickStackElement();
-
- static QQuickStackElement *fromString(const QString &str, QQuickStackView *view, QString *error);
- static QQuickStackElement *fromObject(QObject *object, QQuickStackView *view, QString *error);
-
- bool load(QQuickStackView *parent);
- void incubate(QObject *object);
- void initialize();
-
- void setIndex(int index);
- void setView(QQuickStackView *view);
- void setStatus(QQuickStackView::Status status);
- void setVisible(bool visible);
-
- void transitionNextReposition(QQuickItemViewTransitioner *transitioner, QQuickItemViewTransitioner::TransitionType type, bool asTarget);
- bool prepareTransition(QQuickItemViewTransitioner *transitioner, const QRectF &viewBounds);
- void startTransition(QQuickItemViewTransitioner *transitioner, QQuickStackView::Status status);
-
- void itemDestroyed(QQuickItem *item) override;
-
- int index = -1;
- bool init = false;
- bool removal = false;
- bool ownItem = false;
- bool ownComponent = false;
- bool widthValid = false;
- bool heightValid = false;
- QQmlContext *context = nullptr;
- QQmlComponent *component = nullptr;
- QQuickStackView *view = nullptr;
- QPointer<QQuickItem> originalParent;
- QQuickStackView::Status status = QQuickStackView::Inactive;
- QV4::PersistentValue properties;
- QV4::PersistentValue qmlCallingContext;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSTACKELEMENT_P_P_H
diff --git a/src/quicktemplates2/qquickstacktransition.cpp b/src/quicktemplates2/qquickstacktransition.cpp
deleted file mode 100644
index a0192d1b..00000000
--- a/src/quicktemplates2/qquickstacktransition.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstacktransition_p_p.h"
-#include "qquickstackelement_p_p.h"
-#include "qquickstackview_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-static QQuickStackTransition exitTransition(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view)
-{
- QQuickStackTransition st;
- st.status = QQuickStackView::Deactivating;
- st.element = element;
-
- const QQuickItemViewTransitioner *transitioner = QQuickStackViewPrivate::get(view)->transitioner;
-
- switch (operation) {
- case QQuickStackView::PushTransition:
- st.type = QQuickItemViewTransitioner::AddTransition;
- if (transitioner)
- st.transition = transitioner->addDisplacedTransition;
- break;
- case QQuickStackView::ReplaceTransition:
- st.type = QQuickItemViewTransitioner::MoveTransition;
- if (transitioner)
- st.transition = transitioner->moveDisplacedTransition;
- break;
- case QQuickStackView::PopTransition:
- st.target = true;
- st.type = QQuickItemViewTransitioner::RemoveTransition;
- st.viewBounds = view->boundingRect();
- if (transitioner)
- st.transition = transitioner->removeTransition;
- break;
- default:
- Q_UNREACHABLE();
- break;
- }
-
- return st;
-}
-
-static QQuickStackTransition enterTransition(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view)
-{
- QQuickStackTransition st;
- st.status = QQuickStackView::Activating;
- st.element = element;
-
- const QQuickItemViewTransitioner *transitioner = QQuickStackViewPrivate::get(view)->transitioner;
-
- switch (operation) {
- case QQuickStackView::PushTransition:
- st.target = true;
- st.type = QQuickItemViewTransitioner::AddTransition;
- st.viewBounds = view->boundingRect();
- if (transitioner)
- st.transition = transitioner->addTransition;
- break;
- case QQuickStackView::ReplaceTransition:
- st.target = true;
- st.type = QQuickItemViewTransitioner::MoveTransition;
- st.viewBounds = view->boundingRect();
- if (transitioner)
- st.transition = transitioner->moveTransition;
- break;
- case QQuickStackView::PopTransition:
- st.type = QQuickItemViewTransitioner::RemoveTransition;
- if (transitioner)
- st.transition = transitioner->removeDisplacedTransition;
- break;
- default:
- Q_UNREACHABLE();
- break;
- }
-
- return st;
-}
-
-static QQuickStackView::Operation operationTransition(QQuickStackView::Operation operation, QQuickStackView::Operation transition)
-{
- if (operation == QQuickStackView::Immediate || operation == QQuickStackView::Transition)
- return transition;
- return operation;
-}
-
-QQuickStackTransition QQuickStackTransition::popExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view)
-{
- return exitTransition(operationTransition(operation, QQuickStackView::PopTransition), element, view);
-}
-
-QQuickStackTransition QQuickStackTransition::popEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view)
-{
- return enterTransition(operationTransition(operation, QQuickStackView::PopTransition), element, view);
-}
-
-QQuickStackTransition QQuickStackTransition::pushExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view)
-{
- return exitTransition(operationTransition(operation, QQuickStackView::PushTransition), element, view);
-}
-
-QQuickStackTransition QQuickStackTransition::pushEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view)
-{
- return enterTransition(operationTransition(operation, QQuickStackView::PushTransition), element, view);
-}
-
-QQuickStackTransition QQuickStackTransition::replaceExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view)
-{
- return exitTransition(operationTransition(operation, QQuickStackView::ReplaceTransition), element, view);
-}
-
-QQuickStackTransition QQuickStackTransition::replaceEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view)
-{
- return enterTransition(operationTransition(operation, QQuickStackView::ReplaceTransition), element, view);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickstacktransition_p_p.h b/src/quicktemplates2/qquickstacktransition_p_p.h
deleted file mode 100644
index 3a08fb4a..00000000
--- a/src/quicktemplates2/qquickstacktransition_p_p.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTACKTRANSITION_P_P_H
-#define QQUICKSTACKTRANSITION_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickstackview_p.h>
-#include <QtQuick/private/qquickitemviewtransition_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickStackElement;
-
-struct QQuickStackTransition
-{
- static QQuickStackTransition popExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view);
- static QQuickStackTransition popEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view);
-
- static QQuickStackTransition pushExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view);
- static QQuickStackTransition pushEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view);
-
- static QQuickStackTransition replaceExit(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view);
- static QQuickStackTransition replaceEnter(QQuickStackView::Operation operation, QQuickStackElement *element, QQuickStackView *view);
-
- bool target = false;
- QQuickStackView::Status status = QQuickStackView::Inactive;
- QQuickItemViewTransitioner::TransitionType type = QQuickItemViewTransitioner::NoTransition;
- QRectF viewBounds;
- QQuickStackElement *element = nullptr;
- QQuickTransition *transition = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSTACKTRANSITION_P_P_H
diff --git a/src/quicktemplates2/qquickstackview.cpp b/src/quicktemplates2/qquickstackview.cpp
deleted file mode 100644
index 7bf4c3d3..00000000
--- a/src/quicktemplates2/qquickstackview.cpp
+++ /dev/null
@@ -1,1404 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstackview_p.h"
-#include "qquickstackview_p_p.h"
-#include "qquickstackelement_p_p.h"
-#include "qquickstacktransition_p_p.h"
-
-#include <QtCore/qscopedvaluerollback.h>
-#include <QtQml/qjsvalue.h>
-#include <QtQml/qqmlengine.h>
-#include <QtQml/qqmlinfo.h>
-
-#include <private/qv4qobjectwrapper_p.h>
-#include <private/qqmlengine_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype StackView
- \inherits Control
-//! \instantiates QQuickStackView
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-navigation
- \ingroup qtquickcontrols2-containers
- \ingroup qtquickcontrols2-focusscopes
- \brief Provides a stack-based navigation model.
-
- \image qtquickcontrols2-stackview-wireframe.png
-
- StackView can be used with a set of inter-linked information pages. For
- example, an email application with separate views to list the latest emails,
- view a specific email, and list/view the attachments. The email list view
- is pushed onto the stack as users open an email, and popped out as they
- choose to go back.
-
- The following snippet demonstrates a simple use case, where the \c mainView
- is pushed onto and popped out of the stack on relevant button click:
-
- \qml
- ApplicationWindow {
- title: qsTr("Hello World")
- width: 640
- height: 480
- visible: true
-
- StackView {
- id: stack
- initialItem: mainView
- anchors.fill: parent
- }
-
- Component {
- id: mainView
-
- Row {
- spacing: 10
-
- Button {
- text: "Push"
- onClicked: stack.push(mainView)
- }
- Button {
- text: "Pop"
- enabled: stack.depth > 1
- onClicked: stack.pop()
-
- }
- Text {
- text: stack.depth
- }
- }
- }
- }
- \endqml
-
- \section1 Using StackView in an Application
-
- Using StackView in an application is as simple as adding it as a child to
- a Window. The stack is usually anchored to the edges of the window, except
- at the top or bottom where it might be anchored to a status bar, or some
- other similar UI component. The stack can then be used by invoking its
- navigation methods. The first item to show in the StackView is the one
- that was assigned to \l initialItem, or the topmost item if \l initialItem
- is not set.
-
- \section1 Basic Navigation
-
- StackView supports three primary navigation operations: push(), pop(), and
- replace(). These correspond to classic stack operations where "push" adds
- an item to the top of a stack, "pop" removes the top item from the
- stack, and "replace" is like a pop followed by a push, which replaces the
- topmost item with the new item. The topmost item in the stack
- corresponds to the one that is \l{StackView::currentItem}{currently}
- visible on screen. Logically, "push" navigates forward or deeper into the
- application UI, "pop" navigates backward, and "replace" replaces the
- \l currentItem.
-
- \section2 Pushing Items
-
- In the following animation, three \l Label controls are pushed onto a
- stack view with the \l push() function:
-
- \image qtquickcontrols2-stackview-push.gif
-
- The stack now contains the following items: \c [A, B, C].
-
- \note When the stack is empty, a push() operation will not have a
- transition animation because there is nothing to transition from (typically
- on application start-up).
-
- \section2 Popping Items
-
- Continuing on from the example above, the topmost item on the stack is
- removed with a call to \l pop():
-
- \image qtquickcontrols2-stackview-pop.gif
-
- The stack now contains the following items: \c [A, B].
-
- \note A pop() operation on a stack with depth 1 or 0 does nothing. In such
- cases, the stack can be emptied using the \l clear() method.
-
- \section3 Unwinding Items via Pop
-
- Sometimes, it is necessary to go back more than a single step in the stack.
- For example, to return to a "main" item or some kind of section item in the
- application. In such cases, it is possible to specify an item as a
- parameter for pop(). This is called an "unwind" operation, where the stack
- unwinds till the specified item. If the item is not found, stack unwinds
- until it is left with one item, which becomes the \l currentItem. To
- explicitly unwind to the bottom of the stack, it is recommended to use
- \l{pop()}{pop(null)}, although any non-existent item will do.
-
- In the following animation, we unwind the stack to the first item by
- calling \c pop(null):
-
- \image qtquickcontrols2-stackview-unwind.gif
-
- The stack now contains a single item: \c [A].
-
- \section2 Replacing Items
-
- In the following animation, we \l replace the topmost item with \c D:
-
- \image qtquickcontrols2-stackview-replace.gif
-
- The stack now contains the following items: \c [A, B, D].
-
- \section1 Deep Linking
-
- \e{Deep linking} means launching an application into a particular state. For
- example, a newspaper application could be launched into showing a
- particular article, bypassing the topmost item. In terms of StackView, deep linking means the ability to modify
- the state of the stack, so much so that it is possible to push a set of
- items to the top of the stack, or to completely reset the stack to a given
- state.
-
- The API for deep linking in StackView is the same as for basic navigation.
- Pushing an array instead of a single item adds all the items in that array
- to the stack. The transition animation, however, is applied only for the
- last item in the array. The normal semantics of push() apply for deep
- linking, that is, it adds whatever is pushed onto the stack.
-
- \note Only the last item of the array is loaded. The rest of the items are
- loaded only when needed, either on subsequent calls to pop or on request to
- get an item using get().
-
- This gives us the following result, given the stack [A, B, C]:
-
- \list
- \li \l{push()}{push([D, E, F])} => [A, B, C, D, E, F] - "push" transition
- animation between C and F
- \li \l{replace()}{replace([D, E, F])} => [A, B, D, E, F] - "replace"
- transition animation between C and F
- \li \l{clear()} followed by \l{push()}{push([D, E, F])} => [D, E, F] - no
- transition animation for pushing items as the stack was empty.
- \endlist
-
- \section1 Finding Items
-
- An Item for which the application does not have a reference can be found
- by calling find(). The method needs a callback function, which is invoked
- for each item in the stack (starting at the top) until a match is found.
- If the callback returns \c true, find() stops and returns the matching
- item, otherwise \c null is returned.
-
- The code below searches the stack for an item named "order_id" and unwinds
- to that item.
-
- \badcode
- stackView.pop(stackView.find(function(item) {
- return item.name == "order_id";
- }));
- \endcode
-
- You can also get to an item in the stack using \l {get()}{get(index)}.
-
- \badcode
- previousItem = stackView.get(myItem.StackView.index - 1));
- \endcode
-
- \section1 Transitions
-
- For each push or pop operation, different transition animations are applied
- to entering and exiting items. These animations define how the entering item
- should animate in, and the exiting item should animate out. The animations
- can be customized by assigning different \l{Transition}s for the
- \l pushEnter, \l pushExit, \l popEnter, \l popExit, \l replaceEnter, and
- \l replaceExit properties of StackView.
-
- \note The transition animations affect each others' transitional behavior.
- Customizing the animation for one and leaving the other may give unexpected
- results.
-
- The following snippet defines a simple fade transition for push and pop
- operations:
-
- \qml
- StackView {
- id: stackview
- anchors.fill: parent
-
- pushEnter: Transition {
- PropertyAnimation {
- property: "opacity"
- from: 0
- to:1
- duration: 200
- }
- }
- pushExit: Transition {
- PropertyAnimation {
- property: "opacity"
- from: 1
- to:0
- duration: 200
- }
- }
- popEnter: Transition {
- PropertyAnimation {
- property: "opacity"
- from: 0
- to:1
- duration: 200
- }
- }
- popExit: Transition {
- PropertyAnimation {
- property: "opacity"
- from: 1
- to:0
- duration: 200
- }
- }
- }
- \endqml
-
- \note Using anchors on the items added to a StackView is not supported.
- Typically push, pop, and replace transitions animate the position,
- which is not possible when anchors are applied. Notice that this
- only applies to the root of the item. Using anchors for its children
- works as expected.
-
- \section1 Item Ownership
-
- StackView only takes ownership of items that it creates itself. This means
- that any item pushed onto a StackView will never be destroyed by the
- StackView; only items that StackView creates from \l {Component}{Components}
- or \l [QML] {url}{URLs} are destroyed by the StackView. To illustrate this,
- the messages in the example below will only be printed when the StackView
- is destroyed, not when the items are popped off the stack:
-
- \qml
- Component {
- id: itemComponent
-
- Item {
- Component.onDestruction: print("Destroying second item")
- }
- }
-
- StackView {
- initialItem: Item {
- Component.onDestruction: print("Destroying initial item")
- }
-
- Component.onCompleted: push(itemComponent.createObject(window))
- }
- \endqml
-
- However, both of the items created from the URL and Component in the
- following example will be destroyed by the StackView when they are popped
- off of it:
-
- \qml
- Component {
- id: itemComponent
-
- Item {
- Component.onDestruction: print("Destroying second item")
- }
- }
-
- StackView {
- initialItem: "Item1.qml"
-
- Component.onCompleted: push(itemComponent)
- }
- \endqml
-
- \section1 Size
-
- StackView does not inherit an implicit size from items that are pushed onto
- it. This means that using it as the \l {Popup::}{contentItem} of a
- \l Dialog, for example, will not work as expected:
-
- \code
- Dialog {
- StackView {
- initialItem: Rectangle {
- width: 200
- height: 200
- color: "salmon"
- }
- }
- }
- \endcode
-
- There are several ways to ensure that StackView has a size in this
- situation:
-
- \list
- \li Set \l[QtQuick]{Item::}{implicitWidth} and
- \l[QtQuick]{Item::}{implicitHeight} on the StackView itself.
- \li Set \l[QtQuick]{Item::}{implicitWidth} and
- \l[QtQuick]{Item::}{implicitHeight} on the \l Rectangle.
- \li Set \l {Popup::}{contentWidth} and \l {Popup::}{contentHeight} on
- the Dialog.
- \li Give the Dialog a size.
- \endlist
-
- \sa {Customizing StackView}, {Navigation Controls}, {Container Controls},
- {Focus Management in Qt Quick Controls}
-*/
-
-QQuickStackView::QQuickStackView(QQuickItem *parent)
- : QQuickControl(*(new QQuickStackViewPrivate), parent)
-{
- setFlag(ItemIsFocusScope);
-}
-
-QQuickStackView::~QQuickStackView()
-{
- Q_D(QQuickStackView);
- if (d->transitioner) {
- d->transitioner->setChangeListener(nullptr);
- delete d->transitioner;
- }
- qDeleteAll(d->removing);
- qDeleteAll(d->removed);
- qDeleteAll(d->elements);
-}
-
-QQuickStackViewAttached *QQuickStackView::qmlAttachedProperties(QObject *object)
-{
- return new QQuickStackViewAttached(object);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::StackView::busy
- \readonly
- This property holds whether a transition is running.
-*/
-bool QQuickStackView::isBusy() const
-{
- Q_D(const QQuickStackView);
- return d->busy;
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::StackView::depth
- \readonly
- This property holds the number of items currently pushed onto the stack.
-*/
-int QQuickStackView::depth() const
-{
- Q_D(const QQuickStackView);
- return d->elements.count();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::StackView::currentItem
- \readonly
- This property holds the current top-most item in the stack.
-*/
-QQuickItem *QQuickStackView::currentItem() const
-{
- Q_D(const QQuickStackView);
- return d->currentItem;
-}
-
-/*!
- \qmlmethod Item QtQuick.Controls::StackView::get(index, behavior)
-
- Returns the item at position \a index in the stack, or \c null if the index
- is out of bounds.
-
- Supported \a behavior values:
- \value StackView.DontLoad The item is not forced to load (and \c null is returned if not yet loaded).
- \value StackView.ForceLoad The item is forced to load.
-*/
-QQuickItem *QQuickStackView::get(int index, LoadBehavior behavior)
-{
- Q_D(QQuickStackView);
- QQuickStackElement *element = d->elements.value(index);
- if (element) {
- if (behavior == ForceLoad)
- element->load(this);
- return element->item;
- }
- return nullptr;
-}
-
-/*!
- \qmlmethod Item QtQuick.Controls::StackView::find(callback, behavior)
-
- Search for a specific item inside the stack. The \a callback function is called
- for each item in the stack (with the item and index as arguments) until the callback
- function returns \c true. The return value is the item found. For example:
-
- \code
- stackView.find(function(item, index) {
- return item.isTheOne
- })
- \endcode
-
- Supported \a behavior values:
- \value StackView.DontLoad Unloaded items are skipped (the callback function is not called for them).
- \value StackView.ForceLoad Unloaded items are forced to load.
-*/
-QQuickItem *QQuickStackView::find(const QJSValue &callback, LoadBehavior behavior)
-{
- Q_D(QQuickStackView);
- QJSValue func(callback);
- QQmlEngine *engine = qmlEngine(this);
- if (!engine || !func.isCallable()) // TODO: warning?
- return nullptr;
-
- for (int i = d->elements.count() - 1; i >= 0; --i) {
- QQuickStackElement *element = d->elements.at(i);
- if (behavior == ForceLoad)
- element->load(this);
- if (element->item) {
- QJSValue rv = func.call(QJSValueList() << engine->newQObject(element->item) << i);
- if (rv.toBool())
- return element->item;
- }
- }
-
- return nullptr;
-}
-
-/*!
- \qmlmethod Item QtQuick.Controls::StackView::push(item, properties, operation)
-
- Pushes an \a item onto the stack using an optional \a operation, and
- optionally applies a set of \a properties on the item. The item can be
- an \l Item, \l Component, or a \l [QML] url. Returns the item that became
- current.
-
- StackView creates an instance automatically if the pushed item is a \l Component,
- or a \l [QML] url, and the instance will be destroyed when it is popped
- off the stack. See \l {Item Ownership} for more information.
-
- The optional \a properties argument specifies a map of initial
- property values for the pushed item. For dynamically created items, these values
- are applied before the creation is finalized. This is more efficient than setting
- property values after creation, particularly where large sets of property values
- are defined, and also allows property bindings to be set up (using \l{Qt::binding}
- {Qt.binding()}) before the item is created.
-
- Pushing a single item:
- \code
- stackView.push(rect)
-
- // or with properties:
- stackView.push(rect, {"color": "red"})
- \endcode
-
- Multiple items can be pushed at the same time either by passing them as
- additional arguments, or as an array. The last item becomes the current
- item. Each item can be followed by a set of properties to apply.
-
- Passing a variable amount of arguments:
- \code
- stackView.push(rect1, rect2, rect3)
-
- // or with properties:
- stackView.push(rect1, {"color": "red"}, rect2, {"color": "green"}, rect3, {"color": "blue"})
- \endcode
-
- Pushing an array of items:
- \code
- stackView.push([rect1, rect2, rect3])
-
- // or with properties:
- stackView.push([rect1, {"color": "red"}, rect2, {"color": "green"}, rect3, {"color": "blue"}])
- \endcode
-
- An \a operation can be optionally specified as the last argument. Supported
- operations:
-
- \value StackView.Immediate An immediate operation without transitions.
- \value StackView.PushTransition An operation with push transitions (since QtQuick.Controls 2.1).
- \value StackView.ReplaceTransition An operation with replace transitions (since QtQuick.Controls 2.1).
- \value StackView.PopTransition An operation with pop transitions (since QtQuick.Controls 2.1).
-
- If no operation is provided, \c PushTransition will be used.
-
- \note Items that already exist in the stack are not pushed.
-
- \sa initialItem, {Pushing Items}
-*/
-void QQuickStackView::push(QQmlV4Function *args)
-{
- Q_D(QQuickStackView);
- const QString operationName = QStringLiteral("push");
- if (d->modifyingElements) {
- d->warnOfInterruption(operationName);
- return;
- }
-
- QScopedValueRollback<bool> modifyingElements(d->modifyingElements, true);
- QScopedValueRollback<QString> operationNameRollback(d->operation, operationName);
- if (args->length() <= 0) {
- d->warn(QStringLiteral("missing arguments"));
- args->setReturnValue(QV4::Encode::null());
- return;
- }
-
- QV4::ExecutionEngine *v4 = args->v4engine();
- QV4::Scope scope(v4);
-
- Operation operation = d->elements.isEmpty() ? Immediate : PushTransition;
- QV4::ScopedValue lastArg(scope, (*args)[args->length() - 1]);
- if (lastArg->isInt32())
- operation = static_cast<Operation>(lastArg->toInt32());
-
- QStringList errors;
- QList<QQuickStackElement *> elements = d->parseElements(0, args, &errors);
- // Remove any items that are already in the stack, as they can't be in two places at once.
- for (int i = 0; i < elements.size(); ) {
- QQuickStackElement *element = elements.at(i);
- if (element->item && d->findElement(element->item))
- elements.removeAt(i);
- else
- ++i;
- }
-
- if (!errors.isEmpty() || elements.isEmpty()) {
- if (!errors.isEmpty()) {
- for (const QString &error : qAsConst(errors))
- d->warn(error);
- } else {
- d->warn(QStringLiteral("nothing to push"));
- }
- args->setReturnValue(QV4::Encode::null());
- return;
- }
-
- QQuickStackElement *exit = nullptr;
- if (!d->elements.isEmpty())
- exit = d->elements.top();
-
- int oldDepth = d->elements.count();
- if (d->pushElements(elements)) {
- d->depthChange(d->elements.count(), oldDepth);
- QQuickStackElement *enter = d->elements.top();
- d->startTransition(QQuickStackTransition::pushEnter(operation, enter, this),
- QQuickStackTransition::pushExit(operation, exit, this),
- operation == Immediate);
- d->setCurrentItem(enter);
- }
-
- if (d->currentItem) {
- QV4::ScopedValue rv(scope, QV4::QObjectWrapper::wrap(v4, d->currentItem));
- args->setReturnValue(rv->asReturnedValue());
- } else {
- args->setReturnValue(QV4::Encode::null());
- }
-}
-
-/*!
- \qmlmethod Item QtQuick.Controls::StackView::pop(item, operation)
-
- Pops one or more items off the stack. Returns the last item removed from the stack.
-
- If the \a item argument is specified, all items down to (but not
- including) \a item will be popped. If \a item is \c null, all
- items down to (but not including) the first item is popped.
- If not specified, only the current item is popped.
-
- \note A pop() operation on a stack with depth 1 or 0 does nothing. In such
- cases, the stack can be emptied using the \l clear() method.
-
- \include qquickstackview.qdocinc pop-ownership
-
- An \a operation can be optionally specified as the last argument. Supported
- operations:
-
- \value StackView.Immediate An immediate operation without transitions.
- \value StackView.PushTransition An operation with push transitions (since QtQuick.Controls 2.1).
- \value StackView.ReplaceTransition An operation with replace transitions (since QtQuick.Controls 2.1).
- \value StackView.PopTransition An operation with pop transitions (since QtQuick.Controls 2.1).
-
- If no operation is provided, \c PopTransition will be used.
-
- Examples:
- \code
- stackView.pop()
- stackView.pop(someItem, StackView.Immediate)
- stackView.pop(StackView.Immediate)
- stackView.pop(null)
- \endcode
-
- \sa clear(), {Popping Items}, {Unwinding Items via Pop}
-*/
-void QQuickStackView::pop(QQmlV4Function *args)
-{
- Q_D(QQuickStackView);
- const QString operationName = QStringLiteral("pop");
- if (d->modifyingElements) {
- d->warnOfInterruption(operationName);
- args->setReturnValue(QV4::Encode::null());
- return;
- }
-
- QScopedValueRollback<bool> modifyingElements(d->modifyingElements, true);
- QScopedValueRollback<QString> operationNameRollback(d->operation, operationName);
- int argc = args->length();
- if (d->elements.count() <= 1 || argc > 2) {
- if (argc > 2)
- d->warn(QStringLiteral("too many arguments"));
- args->setReturnValue(QV4::Encode::null());
- return;
- }
-
- int oldDepth = d->elements.count();
- QQuickStackElement *exit = d->elements.pop();
- QQuickStackElement *enter = d->elements.top();
-
- QV4::ExecutionEngine *v4 = args->v4engine();
- QV4::Scope scope(v4);
-
- if (argc > 0) {
- QV4::ScopedValue value(scope, (*args)[0]);
- if (value->isNull()) {
- enter = d->elements.value(0);
- } else if (const QV4::QObjectWrapper *o = value->as<QV4::QObjectWrapper>()) {
- QQuickItem *item = qobject_cast<QQuickItem *>(o->object());
- enter = d->findElement(item);
- if (!enter) {
- if (item != d->currentItem)
- d->warn(QStringLiteral("unknown argument: ") + value->toQString()); // TODO: safe?
- args->setReturnValue(QV4::Encode::null());
- d->elements.push(exit); // restore
- return;
- }
- }
- }
-
- Operation operation = PopTransition;
- if (argc > 0) {
- QV4::ScopedValue lastArg(scope, (*args)[argc - 1]);
- if (lastArg->isInt32())
- operation = static_cast<Operation>(lastArg->toInt32());
- }
-
- QQuickItem *previousItem = nullptr;
-
- if (d->popElements(enter)) {
- if (exit) {
- exit->removal = true;
- d->removing.insert(exit);
- previousItem = exit->item;
- }
- d->depthChange(d->elements.count(), oldDepth);
- d->startTransition(QQuickStackTransition::popExit(operation, exit, this),
- QQuickStackTransition::popEnter(operation, enter, this),
- operation == Immediate);
- d->setCurrentItem(enter);
- }
-
- if (previousItem) {
- QV4::ScopedValue rv(scope, QV4::QObjectWrapper::wrap(v4, previousItem));
- args->setReturnValue(rv->asReturnedValue());
- } else {
- args->setReturnValue(QV4::Encode::null());
- }
-}
-
-/*!
- \qmlmethod Item QtQuick.Controls::StackView::replace(target, item, properties, operation)
-
- Replaces one or more items on the stack with the specified \a item and
- optional \a operation, and optionally applies a set of \a properties on the
- item. The item can be an \l Item, \l Component, or a \l [QML] url.
- Returns the item that became current.
-
- \include qquickstackview.qdocinc pop-ownership
-
- If the \a target argument is specified, all items down to the \target
- item will be replaced. If \a target is \c null, all items in the stack
- will be replaced. If not specified, only the top item will be replaced.
-
- StackView creates an instance automatically if the replacing item is a \l Component,
- or a \l [QML] url. The optional \a properties argument specifies a map of initial
- property values for the replacing item. For dynamically created items, these values
- are applied before the creation is finalized. This is more efficient than setting
- property values after creation, particularly where large sets of property values
- are defined, and also allows property bindings to be set up (using \l{Qt::binding}
- {Qt.binding()}) before the item is created.
-
- Replace the top item:
- \code
- stackView.replace(rect)
-
- // or with properties:
- stackView.replace(rect, {"color": "red"})
- \endcode
-
- Multiple items can be replaced at the same time either by passing them as
- additional arguments, or as an array. Each item can be followed by a set
- of properties to apply.
-
- Passing a variable amount of arguments:
- \code
- stackView.replace(rect1, rect2, rect3)
-
- // or with properties:
- stackView.replace(rect1, {"color": "red"}, rect2, {"color": "green"}, rect3, {"color": "blue"})
- \endcode
-
- Replacing an array of items:
- \code
- stackView.replace([rect1, rect2, rect3])
-
- // or with properties:
- stackView.replace([rect1, {"color": "red"}, rect2, {"color": "green"}, rect3, {"color": "blue"}])
- \endcode
-
- An \a operation can be optionally specified as the last argument. Supported
- operations:
-
- \value StackView.Immediate An immediate operation without transitions.
- \value StackView.PushTransition An operation with push transitions (since QtQuick.Controls 2.1).
- \value StackView.ReplaceTransition An operation with replace transitions (since QtQuick.Controls 2.1).
- \value StackView.PopTransition An operation with pop transitions (since QtQuick.Controls 2.1).
-
- If no operation is provided, \c ReplaceTransition will be used.
-
- The following example illustrates the use of push and pop transitions with replace().
-
- \code
- StackView {
- id: stackView
-
- initialItem: Component {
- id: page
-
- Page {
- Row {
- spacing: 20
- anchors.centerIn: parent
-
- Button {
- text: "<"
- onClicked: stackView.replace(page, StackView.PopTransition)
- }
- Button {
- text: ">"
- onClicked: stackView.replace(page, StackView.PushTransition)
- }
- }
- }
- }
- }
- \endcode
-
- \sa push(), {Replacing Items}
-*/
-void QQuickStackView::replace(QQmlV4Function *args)
-{
- Q_D(QQuickStackView);
- const QString operationName = QStringLiteral("replace");
- if (d->modifyingElements) {
- d->warnOfInterruption(operationName);
- args->setReturnValue(QV4::Encode::null());
- return;
- }
-
- QScopedValueRollback<bool> modifyingElements(d->modifyingElements, true);
- QScopedValueRollback<QString> operationNameRollback(d->operation, operationName);
- if (args->length() <= 0) {
- d->warn(QStringLiteral("missing arguments"));
- args->setReturnValue(QV4::Encode::null());
- return;
- }
-
- QV4::ExecutionEngine *v4 = args->v4engine();
- QV4::Scope scope(v4);
-
- Operation operation = d->elements.isEmpty() ? Immediate : ReplaceTransition;
- QV4::ScopedValue lastArg(scope, (*args)[args->length() - 1]);
- if (lastArg->isInt32())
- operation = static_cast<Operation>(lastArg->toInt32());
-
- QQuickStackElement *target = nullptr;
- QV4::ScopedValue firstArg(scope, (*args)[0]);
- if (firstArg->isNull())
- target = d->elements.value(0);
- else if (!firstArg->isInt32())
- target = d->findElement(firstArg);
-
- QStringList errors;
- QList<QQuickStackElement *> elements = d->parseElements(target ? 1 : 0, args, &errors);
- if (!errors.isEmpty() || elements.isEmpty()) {
- if (!errors.isEmpty()) {
- for (const QString &error : qAsConst(errors))
- d->warn(error);
- } else {
- d->warn(QStringLiteral("nothing to push"));
- }
- args->setReturnValue(QV4::Encode::null());
- return;
- }
-
- int oldDepth = d->elements.count();
- QQuickStackElement* exit = nullptr;
- if (!d->elements.isEmpty())
- exit = d->elements.pop();
-
- if (exit != target ? d->replaceElements(target, elements) : d->pushElements(elements)) {
- d->depthChange(d->elements.count(), oldDepth);
- if (exit) {
- exit->removal = true;
- d->removing.insert(exit);
- }
- QQuickStackElement *enter = d->elements.top();
- d->startTransition(QQuickStackTransition::replaceExit(operation, exit, this),
- QQuickStackTransition::replaceEnter(operation, enter, this),
- operation == Immediate);
- d->setCurrentItem(enter);
- }
-
- if (d->currentItem) {
- QV4::ScopedValue rv(scope, QV4::QObjectWrapper::wrap(v4, d->currentItem));
- args->setReturnValue(rv->asReturnedValue());
- } else {
- args->setReturnValue(QV4::Encode::null());
- }
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::StackView::empty
- \readonly
-
- This property holds whether the stack is empty.
-
- \sa depth
-*/
-bool QQuickStackView::isEmpty() const
-{
- Q_D(const QQuickStackView);
- return d->elements.isEmpty();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::StackView::clear(transition)
-
- Removes all items from the stack.
-
- \include qquickstackview.qdocinc pop-ownership
-
- Since QtQuick.Controls 2.3, a \a transition can be optionally specified. Supported transitions:
-
- \value StackView.Immediate Clear the stack immediately without any transition (default).
- \value StackView.PushTransition Clear the stack with a push transition.
- \value StackView.ReplaceTransition Clear the stack with a replace transition.
- \value StackView.PopTransition Clear the stack with a pop transition.
-*/
-void QQuickStackView::clear(Operation operation)
-{
- Q_D(QQuickStackView);
- if (d->elements.isEmpty())
- return;
-
- const QString operationName = QStringLiteral("clear");
- if (d->modifyingElements) {
- d->warnOfInterruption(operationName);
- return;
- }
-
- QScopedValueRollback<bool> modifyingElements(d->modifyingElements, true);
- QScopedValueRollback<QString> operationNameRollback(d->operation, operationName);
- if (operation != Immediate) {
- QQuickStackElement *exit = d->elements.pop();
- exit->removal = true;
- d->removing.insert(exit);
- d->startTransition(QQuickStackTransition::popExit(operation, exit, this),
- QQuickStackTransition::popEnter(operation, nullptr, this), false);
- }
-
- int oldDepth = d->elements.count();
- d->setCurrentItem(nullptr);
- qDeleteAll(d->elements);
- d->elements.clear();
- d->depthChange(0, oldDepth);
-}
-
-/*!
- \qmlproperty var QtQuick.Controls::StackView::initialItem
-
- This property holds the initial item that should be shown when the StackView
- is created. The initial item can be an \l Item, \l Component, or a \l [QML] url.
- Specifying an initial item is equivalent to:
- \code
- Component.onCompleted: stackView.push(myInitialItem)
- \endcode
-
- \sa push()
-*/
-QJSValue QQuickStackView::initialItem() const
-{
- Q_D(const QQuickStackView);
- return d->initialItem;
-}
-
-void QQuickStackView::setInitialItem(const QJSValue &item)
-{
- Q_D(QQuickStackView);
- d->initialItem = item;
-}
-
-/*!
- \qmlproperty Transition QtQuick.Controls::StackView::popEnter
-
- This property holds the transition that is applied to the item that
- enters the stack when another item is popped off of it.
-
- \sa {Customizing StackView}
-*/
-QQuickTransition *QQuickStackView::popEnter() const
-{
- Q_D(const QQuickStackView);
- if (d->transitioner)
- return d->transitioner->removeDisplacedTransition;
- return nullptr;
-}
-
-void QQuickStackView::setPopEnter(QQuickTransition *enter)
-{
- Q_D(QQuickStackView);
- d->ensureTransitioner();
- if (d->transitioner->removeDisplacedTransition == enter)
- return;
-
- d->transitioner->removeDisplacedTransition = enter;
- emit popEnterChanged();
-}
-
-/*!
- \qmlproperty Transition QtQuick.Controls::StackView::popExit
-
- This property holds the transition that is applied to the item that
- exits the stack when the item is popped off of it.
-
- \sa {Customizing StackView}
-*/
-QQuickTransition *QQuickStackView::popExit() const
-{
- Q_D(const QQuickStackView);
- if (d->transitioner)
- return d->transitioner->removeTransition;
- return nullptr;
-}
-
-void QQuickStackView::setPopExit(QQuickTransition *exit)
-{
- Q_D(QQuickStackView);
- d->ensureTransitioner();
- if (d->transitioner->removeTransition == exit)
- return;
-
- d->transitioner->removeTransition = exit;
- emit popExitChanged();
-}
-
-/*!
- \qmlproperty Transition QtQuick.Controls::StackView::pushEnter
-
- This property holds the transition that is applied to the item that
- enters the stack when the item is pushed onto it.
-
- \sa {Customizing StackView}
-*/
-QQuickTransition *QQuickStackView::pushEnter() const
-{
- Q_D(const QQuickStackView);
- if (d->transitioner)
- return d->transitioner->addTransition;
- return nullptr;
-}
-
-void QQuickStackView::setPushEnter(QQuickTransition *enter)
-{
- Q_D(QQuickStackView);
- d->ensureTransitioner();
- if (d->transitioner->addTransition == enter)
- return;
-
- d->transitioner->addTransition = enter;
- emit pushEnterChanged();
-}
-
-/*!
- \qmlproperty Transition QtQuick.Controls::StackView::pushExit
-
- This property holds the transition that is applied to the item that
- exits the stack when another item is pushed onto it.
-
- \sa {Customizing StackView}
-*/
-QQuickTransition *QQuickStackView::pushExit() const
-{
- Q_D(const QQuickStackView);
- if (d->transitioner)
- return d->transitioner->addDisplacedTransition;
- return nullptr;
-}
-
-void QQuickStackView::setPushExit(QQuickTransition *exit)
-{
- Q_D(QQuickStackView);
- d->ensureTransitioner();
- if (d->transitioner->addDisplacedTransition == exit)
- return;
-
- d->transitioner->addDisplacedTransition = exit;
- emit pushExitChanged();
-}
-
-/*!
- \qmlproperty Transition QtQuick.Controls::StackView::replaceEnter
-
- This property holds the transition that is applied to the item that
- enters the stack when another item is replaced by it.
-
- \sa {Customizing StackView}
-*/
-QQuickTransition *QQuickStackView::replaceEnter() const
-{
- Q_D(const QQuickStackView);
- if (d->transitioner)
- return d->transitioner->moveTransition;
- return nullptr;
-}
-
-void QQuickStackView::setReplaceEnter(QQuickTransition *enter)
-{
- Q_D(QQuickStackView);
- d->ensureTransitioner();
- if (d->transitioner->moveTransition == enter)
- return;
-
- d->transitioner->moveTransition = enter;
- emit replaceEnterChanged();
-}
-
-/*!
- \qmlproperty Transition QtQuick.Controls::StackView::replaceExit
-
- This property holds the transition that is applied to the item that
- exits the stack when it is replaced by another item.
-
- \sa {Customizing StackView}
-*/
-QQuickTransition *QQuickStackView::replaceExit() const
-{
- Q_D(const QQuickStackView);
- if (d->transitioner)
- return d->transitioner->moveDisplacedTransition;
- return nullptr;
-}
-
-void QQuickStackView::setReplaceExit(QQuickTransition *exit)
-{
- Q_D(QQuickStackView);
- d->ensureTransitioner();
- if (d->transitioner->moveDisplacedTransition == exit)
- return;
-
- d->transitioner->moveDisplacedTransition = exit;
- emit replaceExitChanged();
-}
-
-void QQuickStackView::componentComplete()
-{
- QQuickControl::componentComplete();
-
- Q_D(QQuickStackView);
- QScopedValueRollback<QString> operationNameRollback(d->operation, QStringLiteral("initialItem"));
- QQuickStackElement *element = nullptr;
- QString error;
- int oldDepth = d->elements.count();
- if (QObject *o = d->initialItem.toQObject())
- element = QQuickStackElement::fromObject(o, this, &error);
- else if (d->initialItem.isString())
- element = QQuickStackElement::fromString(d->initialItem.toString(), this, &error);
- if (!error.isEmpty()) {
- d->warn(error);
- delete element;
- } else if (d->pushElement(element)) {
- d->depthChange(d->elements.count(), oldDepth);
- d->setCurrentItem(element);
- element->setStatus(QQuickStackView::Active);
- }
-}
-
-void QQuickStackView::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- QQuickControl::geometryChange(newGeometry, oldGeometry);
-
- Q_D(QQuickStackView);
- for (QQuickStackElement *element : qAsConst(d->elements)) {
- if (element->item) {
- if (!element->widthValid)
- element->item->setWidth(newGeometry.width());
- if (!element->heightValid)
- element->item->setHeight(newGeometry.height());
- }
- }
-}
-
-bool QQuickStackView::childMouseEventFilter(QQuickItem *item, QEvent *event)
-{
- // in order to block accidental user interaction while busy/transitioning,
- // StackView filters out childrens' mouse events. therefore we block all
- // press events. however, since push() may be called from signal handlers
- // such as onPressed or onDoubleClicked, we must let the current mouse
- // grabber item receive the respective mouse release event to avoid
- // breaking its state (QTBUG-50305).
- if (event->type() == QEvent::MouseButtonPress)
- return true;
- if (event->type() == QEvent::UngrabMouse)
- return false;
- QQuickWindow *window = item->window();
- return window && !window->mouseGrabberItem();
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickStackView::touchEvent(QTouchEvent *event)
-{
- event->ignore(); // QTBUG-65084
-}
-#endif
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickStackView::accessibleRole() const
-{
- return QAccessible::LayeredPane;
-}
-#endif
-
-void QQuickStackViewAttachedPrivate::itemParentChanged(QQuickItem *item, QQuickItem *parent)
-{
- Q_Q(QQuickStackViewAttached);
- int oldIndex = element ? element->index : -1;
- QQuickStackView *oldView = element ? element->view : nullptr;
- QQuickStackView::Status oldStatus = element ? element->status : QQuickStackView::Inactive;
-
- QQuickStackView *newView = qobject_cast<QQuickStackView *>(parent);
- element = newView ? QQuickStackViewPrivate::get(newView)->findElement(item) : nullptr;
-
- int newIndex = element ? element->index : -1;
- QQuickStackView::Status newStatus = element ? element->status : QQuickStackView::Inactive;
-
- if (oldIndex != newIndex)
- emit q->indexChanged();
- if (oldView != newView)
- emit q->viewChanged();
- if (oldStatus != newStatus)
- emit q->statusChanged();
-}
-
-QQuickStackViewAttached::QQuickStackViewAttached(QObject *parent)
- : QObject(*(new QQuickStackViewAttachedPrivate), parent)
-{
- Q_D(QQuickStackViewAttached);
- QQuickItem *item = qobject_cast<QQuickItem *>(parent);
- if (item) {
- connect(item, &QQuickItem::visibleChanged, this, &QQuickStackViewAttached::visibleChanged);
- QQuickItemPrivate::get(item)->addItemChangeListener(d, QQuickItemPrivate::Parent);
- d->itemParentChanged(item, item->parentItem());
- } else if (parent) {
- qmlWarning(parent) << "StackView must be attached to an Item";
- }
-}
-
-QQuickStackViewAttached::~QQuickStackViewAttached()
-{
- Q_D(QQuickStackViewAttached);
- QQuickItem *parentItem = qobject_cast<QQuickItem *>(parent());
- if (parentItem)
- QQuickItemPrivate::get(parentItem)->removeItemChangeListener(d, QQuickItemPrivate::Parent);
-}
-
-/*!
- \qmlattachedproperty int QtQuick.Controls::StackView::index
- \readonly
-
- This attached property holds the stack index of the item it's
- attached to, or \c -1 if the item is not in a stack.
-*/
-int QQuickStackViewAttached::index() const
-{
- Q_D(const QQuickStackViewAttached);
- return d->element ? d->element->index : -1;
-}
-
-/*!
- \qmlattachedproperty StackView QtQuick.Controls::StackView::view
- \readonly
-
- This attached property holds the stack view of the item it's
- attached to, or \c null if the item is not in a stack.
-*/
-QQuickStackView *QQuickStackViewAttached::view() const
-{
- Q_D(const QQuickStackViewAttached);
- return d->element ? d->element->view : nullptr;
-}
-
-/*!
- \qmlattachedproperty enumeration QtQuick.Controls::StackView::status
- \readonly
-
- This attached property holds the stack status of the item it's
- attached to, or \c StackView.Inactive if the item is not in a stack.
-
- Available values:
- \value StackView.Inactive The item is inactive (or not in a stack).
- \value StackView.Deactivating The item is being deactivated (popped off).
- \value StackView.Activating The item is being activated (becoming the current item).
- \value StackView.Active The item is active, that is, the current item.
-*/
-QQuickStackView::Status QQuickStackViewAttached::status() const
-{
- Q_D(const QQuickStackViewAttached);
- return d->element ? d->element->status : QQuickStackView::Inactive;
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlattachedproperty bool QtQuick.Controls::StackView::visible
-
- This attached property holds the visibility of the item it's attached to.
- The value follows the value of \l Item::visible.
-
- By default, StackView shows incoming items when the enter transition begins,
- and hides outgoing items when the exit transition ends. Setting this property
- explicitly allows the default behavior to be overridden, making it possible
- to keep items that are below the top-most item visible.
-
- \note The default transitions of most styles slide outgoing items outside the
- view, and may also animate their opacity. In order to keep a full stack
- of items visible, consider customizing the \l transitions so that the
- items underneath can be seen.
-
- \image qtquickcontrols2-stackview-visible.png
-
- \snippet qtquickcontrols2-stackview-visible.qml 1
-*/
-bool QQuickStackViewAttached::isVisible() const
-{
- const QQuickItem *parentItem = qobject_cast<QQuickItem *>(parent());
- return parentItem && parentItem->isVisible();
-}
-
-void QQuickStackViewAttached::setVisible(bool visible)
-{
- Q_D(QQuickStackViewAttached);
- d->explicitVisible = true;
- QQuickItem *parentItem = qobject_cast<QQuickItem *>(parent());
- if (parentItem)
- parentItem->setVisible(visible);
-}
-
-void QQuickStackViewAttached::resetVisible()
-{
- Q_D(QQuickStackViewAttached);
- d->explicitVisible = false;
- if (!d->element || !d->element->view)
- return;
-
- QQuickItem *parentItem = qobject_cast<QQuickItem *>(parent());
- if (parentItem)
- parentItem->setVisible(parentItem == d->element->view->currentItem());
-}
-
-/*!
- \qmlattachedsignal QtQuick.Controls::StackView::activated()
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This attached signal is emitted when the item it's attached to is activated in the stack.
-
- \sa status
-*/
-
-/*!
- \qmlattachedsignal QtQuick.Controls::StackView::deactivated()
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This attached signal is emitted when the item it's attached to is deactivated in the stack.
-
- \sa status
-*/
-
-/*!
- \qmlattachedsignal QtQuick.Controls::StackView::activating()
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This attached signal is emitted when the item it's attached to is in the process of being
- activated in the stack.
-
- \sa status
-*/
-
-/*!
- \qmlattachedsignal QtQuick.Controls::StackView::deactivating()
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This attached signal is emitted when the item it's attached to is in the process of being
- dectivated in the stack.
-
- \sa status
-*/
-
-/*!
- \qmlattachedsignal QtQuick.Controls::StackView::removed()
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This attached signal is emitted when the item it's attached to has been
- removed from the stack. It can be used to safely destroy an Item that was
- pushed onto the stack, for example:
-
- \code
- Item {
- StackView.onRemoved: destroy() // Will be destroyed sometime after this call.
- }
- \endcode
-
- \sa status
-*/
-
-QT_END_NAMESPACE
-
-#include "moc_qquickstackview_p.cpp"
diff --git a/src/quicktemplates2/qquickstackview_p.cpp b/src/quicktemplates2/qquickstackview_p.cpp
deleted file mode 100644
index c2b5d514..00000000
--- a/src/quicktemplates2/qquickstackview_p.cpp
+++ /dev/null
@@ -1,350 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickstackview_p_p.h"
-#include "qquickstackelement_p_p.h"
-#include "qquickstacktransition_p_p.h"
-
-#include <QtQml/qqmlinfo.h>
-#include <QtQml/qqmllist.h>
-#include <QtQml/private/qv4qmlcontext_p.h>
-#include <QtQml/private/qv4qobjectwrapper_p.h>
-#include <QtQml/private/qv4variantobject_p.h>
-#include <QtQml/private/qv4urlobject_p.h>
-#include <QtQuick/private/qquickanimation_p.h>
-#include <QtQuick/private/qquicktransition_p.h>
-
-QT_BEGIN_NAMESPACE
-
-void QQuickStackViewPrivate::warn(const QString &error)
-{
- Q_Q(QQuickStackView);
- if (operation.isEmpty())
- qmlWarning(q) << error;
- else
- qmlWarning(q) << operation << ": " << error;
-}
-
-void QQuickStackViewPrivate::warnOfInterruption(const QString &attemptedOperation)
-{
- Q_Q(QQuickStackView);
- qmlWarning(q) << "cannot " << attemptedOperation << " while already in the process of completing a " << operation;
-}
-
-void QQuickStackViewPrivate::setCurrentItem(QQuickStackElement *element)
-{
- Q_Q(QQuickStackView);
- QQuickItem *item = element ? element->item : nullptr;
- if (currentItem == item)
- return;
-
- currentItem = item;
- if (element)
- element->setVisible(true);
- if (item)
- item->setFocus(true);
- emit q->currentItemChanged();
-}
-
-static bool initProperties(QQuickStackElement *element, const QV4::Value &props, QQmlV4Function *args)
-{
- if (props.isObject()) {
- const QV4::QObjectWrapper *wrapper = props.as<QV4::QObjectWrapper>();
- if (!wrapper) {
- QV4::ExecutionEngine *v4 = args->v4engine();
- element->properties.set(v4, props);
- element->qmlCallingContext.set(v4, v4->qmlContext());
- return true;
- }
- }
- return false;
-}
-
-QList<QQuickStackElement *> QQuickStackViewPrivate::parseElements(int from, QQmlV4Function *args, QStringList *errors)
-{
- QV4::ExecutionEngine *v4 = args->v4engine();
- auto context = v4->callingQmlContext();
- QV4::Scope scope(v4);
-
- QList<QQuickStackElement *> elements;
-
- int argc = args->length();
- for (int i = from; i < argc; ++i) {
- QV4::ScopedValue arg(scope, (*args)[i]);
- if (QV4::ArrayObject *array = arg->as<QV4::ArrayObject>()) {
- const uint len = uint(array->getLength());
- for (uint j = 0; j < len; ++j) {
- QString error;
- QV4::ScopedValue value(scope, array->get(j));
- QQuickStackElement *element = createElement(value, context, &error);
- if (element) {
- if (j < len - 1) {
- QV4::ScopedValue props(scope, array->get(j + 1));
- if (initProperties(element, props, args))
- ++j;
- }
- elements += element;
- } else if (!error.isEmpty()) {
- *errors += error;
- }
- }
- } else {
- QString error;
- QQuickStackElement *element = createElement(arg, context, &error);
- if (element) {
- if (i < argc - 1) {
- QV4::ScopedValue props(scope, (*args)[i + 1]);
- if (initProperties(element, props, args))
- ++i;
- }
- elements += element;
- } else if (!error.isEmpty()) {
- *errors += error;
- }
- }
- }
- return elements;
-}
-
-QQuickStackElement *QQuickStackViewPrivate::findElement(QQuickItem *item) const
-{
- if (item) {
- for (QQuickStackElement *e : qAsConst(elements)) {
- if (e->item == item)
- return e;
- }
- }
- return nullptr;
-}
-
-QQuickStackElement *QQuickStackViewPrivate::findElement(const QV4::Value &value) const
-{
- if (const QV4::QObjectWrapper *o = value.as<QV4::QObjectWrapper>())
- return findElement(qobject_cast<QQuickItem *>(o->object()));
- return nullptr;
-}
-
-static QUrl resolvedUrl(const QUrl &url, const QQmlRefPointer<QQmlContextData> &context)
-{
- if (url.isRelative())
- return context->resolvedUrl(url).toString();
- return url;
-}
-
-static QString resolvedUrl(const QString &str, const QQmlRefPointer<QQmlContextData> &context)
-{
- QUrl url(str);
- if (url.isRelative())
- return context->resolvedUrl(url).toString();
- return str;
-}
-
-QQuickStackElement *QQuickStackViewPrivate::createElement(const QV4::Value &value, const QQmlRefPointer<QQmlContextData> &context, QString *error)
-{
- Q_Q(QQuickStackView);
- if (const QV4::String *s = value.as<QV4::String>())
- return QQuickStackElement::fromString(resolvedUrl(s->toQString(), context), q, error);
- if (const QV4::QObjectWrapper *o = value.as<QV4::QObjectWrapper>())
- return QQuickStackElement::fromObject(o->object(), q, error);
- if (const QV4::UrlObject *u = value.as<QV4::UrlObject>())
- return QQuickStackElement::fromString(resolvedUrl(u->href(), context), q, error);
-
- if (const QV4::Object *v = value.as<QV4::Object>()) {
- const QVariant data = v->engine()->toVariant(value, QMetaType::fromType<QUrl>());
- if (data.typeId() == QMetaType::QUrl) {
- return QQuickStackElement::fromString(resolvedUrl(data.toUrl(), context).toString(), q,
- error);
- }
- }
-
- return nullptr;
-}
-
-bool QQuickStackViewPrivate::pushElements(const QList<QQuickStackElement *> &elems)
-{
- Q_Q(QQuickStackView);
- if (!elems.isEmpty()) {
- for (QQuickStackElement *e : elems) {
- e->setIndex(elements.count());
- elements += e;
- }
- return elements.top()->load(q);
- }
- return false;
-}
-
-bool QQuickStackViewPrivate::pushElement(QQuickStackElement *element)
-{
- if (element)
- return pushElements(QList<QQuickStackElement *>() << element);
- return false;
-}
-
-bool QQuickStackViewPrivate::popElements(QQuickStackElement *element)
-{
- Q_Q(QQuickStackView);
- while (elements.count() > 1 && elements.top() != element) {
- delete elements.pop();
- if (!element)
- break;
- }
- return elements.top()->load(q);
-}
-
-bool QQuickStackViewPrivate::replaceElements(QQuickStackElement *target, const QList<QQuickStackElement *> &elems)
-{
- if (target) {
- while (!elements.isEmpty()) {
- QQuickStackElement* top = elements.pop();
- delete top;
- if (top == target)
- break;
- }
- }
- return pushElements(elems);
-}
-
-void QQuickStackViewPrivate::ensureTransitioner()
-{
- if (!transitioner) {
- transitioner = new QQuickItemViewTransitioner;
- transitioner->setChangeListener(this);
- }
-}
-
-void QQuickStackViewPrivate::startTransition(const QQuickStackTransition &first, const QQuickStackTransition &second, bool immediate)
-{
- if (first.element)
- first.element->transitionNextReposition(transitioner, first.type, first.target);
- if (second.element)
- second.element->transitionNextReposition(transitioner, second.type, second.target);
-
- if (first.element) {
- if (immediate || !first.element->item || !first.element->prepareTransition(transitioner, first.viewBounds))
- completeTransition(first.element, first.transition, first.status);
- else
- first.element->startTransition(transitioner, first.status);
- }
- if (second.element) {
- if (immediate || !second.element->item || !second.element->prepareTransition(transitioner, second.viewBounds))
- completeTransition(second.element, second.transition, second.status);
- else
- second.element->startTransition(transitioner, second.status);
- }
-
- if (transitioner) {
- setBusy(!transitioner->runningJobs.isEmpty());
- transitioner->resetTargetLists();
- }
-}
-
-void QQuickStackViewPrivate::completeTransition(QQuickStackElement *element, QQuickTransition *transition, QQuickStackView::Status status)
-{
- element->setStatus(status);
- if (transition) {
- // TODO: add a proper way to complete a transition
- QQmlListProperty<QQuickAbstractAnimation> animations = transition->animations();
- int count = animations.count(&animations);
- for (int i = 0; i < count; ++i) {
- QQuickAbstractAnimation *anim = animations.at(&animations, i);
- anim->complete();
- }
- }
- viewItemTransitionFinished(element);
-}
-
-void QQuickStackViewPrivate::viewItemTransitionFinished(QQuickItemViewTransitionableItem *transitionable)
-{
- QQuickStackElement *element = static_cast<QQuickStackElement *>(transitionable);
- if (element->status == QQuickStackView::Activating) {
- element->setStatus(QQuickStackView::Active);
- } else if (element->status == QQuickStackView::Deactivating) {
- element->setStatus(QQuickStackView::Inactive);
- QQuickStackElement *existingElement = element->item ? findElement(element->item) : nullptr;
- // If a different element with the same item is found,
- // do not call setVisible(false) since it needs to be visible.
- if (!existingElement || element == existingElement)
- element->setVisible(false);
- if (element->removal || element->isPendingRemoval())
- removed += element;
- }
-
- if (transitioner && transitioner->runningJobs.isEmpty()) {
- // ~QQuickStackElement() emits QQuickStackViewAttached::removed(), which may be used
- // to modify the stack. Set the status first and make a copy of the destroyable stack
- // elements to exclude any modifications that may happen during qDeleteAll(). (QTBUG-62153)
- setBusy(false);
- QList<QQuickStackElement*> removedElements = removed;
- removed.clear();
-
- for (QQuickStackElement *removedElement : qAsConst(removedElements)) {
- // If an element with the same item is found in the active stack list,
- // forget about the item so that we don't hide it.
- if (removedElement->item && findElement(removedElement->item)) {
- QQuickItemPrivate::get(removedElement->item)->removeItemChangeListener(removedElement, QQuickItemPrivate::Destroyed);
- removedElement->item = nullptr;
- }
- }
-
- qDeleteAll(removedElements);
- }
-
- removing.remove(element);
-}
-
-void QQuickStackViewPrivate::setBusy(bool b)
-{
- Q_Q(QQuickStackView);
- if (busy == b)
- return;
-
- busy = b;
- q->setFiltersChildMouseEvents(busy);
- emit q->busyChanged();
-}
-
-void QQuickStackViewPrivate::depthChange(int newDepth, int oldDepth)
-{
- Q_Q(QQuickStackView);
- if (newDepth == oldDepth)
- return;
-
- emit q->depthChanged();
- if (newDepth == 0 || oldDepth == 0)
- emit q->emptyChanged();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickstackview_p.h b/src/quicktemplates2/qquickstackview_p.h
deleted file mode 100644
index f4cb5458..00000000
--- a/src/quicktemplates2/qquickstackview_p.h
+++ /dev/null
@@ -1,224 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTACKVIEW_P_H
-#define QQUICKSTACKVIEW_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQmlV4Function;
-class QQuickTransition;
-class QQuickStackElement;
-class QQuickStackViewPrivate;
-class QQuickStackViewAttached;
-class QQuickStackViewAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickStackView : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(bool busy READ isBusy NOTIFY busyChanged FINAL)
- Q_PROPERTY(int depth READ depth NOTIFY depthChanged FINAL)
- Q_PROPERTY(QQuickItem *currentItem READ currentItem NOTIFY currentItemChanged FINAL)
- Q_PROPERTY(QJSValue initialItem READ initialItem WRITE setInitialItem FINAL)
- Q_PROPERTY(QQuickTransition *popEnter READ popEnter WRITE setPopEnter NOTIFY popEnterChanged FINAL)
- Q_PROPERTY(QQuickTransition *popExit READ popExit WRITE setPopExit NOTIFY popExitChanged FINAL)
- Q_PROPERTY(QQuickTransition *pushEnter READ pushEnter WRITE setPushEnter NOTIFY pushEnterChanged FINAL)
- Q_PROPERTY(QQuickTransition *pushExit READ pushExit WRITE setPushExit NOTIFY pushExitChanged FINAL)
- Q_PROPERTY(QQuickTransition *replaceEnter READ replaceEnter WRITE setReplaceEnter NOTIFY replaceEnterChanged FINAL)
- Q_PROPERTY(QQuickTransition *replaceExit READ replaceExit WRITE setReplaceExit NOTIFY replaceExitChanged FINAL)
- // 2.3 (Qt 5.10)
- Q_PROPERTY(bool empty READ isEmpty NOTIFY emptyChanged FINAL REVISION(2, 3))
- QML_NAMED_ELEMENT(StackView)
- QML_ATTACHED(QQuickStackViewAttached)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickStackView(QQuickItem *parent = nullptr);
- ~QQuickStackView();
-
- static QQuickStackViewAttached *qmlAttachedProperties(QObject *object);
-
- bool isBusy() const;
- int depth() const;
- QQuickItem *currentItem() const;
-
- enum Status {
- Inactive = 0,
- Deactivating = 1,
- Activating = 2,
- Active = 3
- };
- Q_ENUM(Status)
-
- QJSValue initialItem() const;
- void setInitialItem(const QJSValue &item);
-
- QQuickTransition *popEnter() const;
- void setPopEnter(QQuickTransition *enter);
-
- QQuickTransition *popExit() const;
- void setPopExit(QQuickTransition *exit);
-
- QQuickTransition *pushEnter() const;
- void setPushEnter(QQuickTransition *enter);
-
- QQuickTransition *pushExit() const;
- void setPushExit(QQuickTransition *exit);
-
- QQuickTransition *replaceEnter() const;
- void setReplaceEnter(QQuickTransition *enter);
-
- QQuickTransition *replaceExit() const;
- void setReplaceExit(QQuickTransition *exit);
-
- enum LoadBehavior {
- DontLoad,
- ForceLoad
- };
- Q_ENUM(LoadBehavior)
-
- Q_INVOKABLE QQuickItem *get(int index, LoadBehavior behavior = DontLoad);
- Q_INVOKABLE QQuickItem *find(const QJSValue &callback, LoadBehavior behavior = DontLoad);
-
- enum Operation {
- Transition = -1, // ### Deprecated in Qt 6; remove in Qt 7.
- Immediate = 0,
- PushTransition = 1,
- ReplaceTransition = 2,
- PopTransition = 3,
- };
- Q_ENUM(Operation)
-
- Q_INVOKABLE void push(QQmlV4Function *args);
- Q_INVOKABLE void pop(QQmlV4Function *args);
- Q_INVOKABLE void replace(QQmlV4Function *args);
-
- // 2.3 (Qt 5.10)
- bool isEmpty() const;
-
-public Q_SLOTS:
- void clear(Operation operation = Immediate);
-
-Q_SIGNALS:
- void busyChanged();
- void depthChanged();
- void currentItemChanged();
- void popEnterChanged();
- void popExitChanged();
- void pushEnterChanged();
- void pushExitChanged();
- void replaceEnterChanged();
- void replaceExitChanged();
- // 2.3 (Qt 5.10)
- Q_REVISION(2, 3) void emptyChanged();
-
-protected:
- void componentComplete() override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- bool childMouseEventFilter(QQuickItem *, QEvent *) override;
-
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
-#endif
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickStackView)
- Q_DECLARE_PRIVATE(QQuickStackView)
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickStackViewAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(int index READ index NOTIFY indexChanged FINAL)
- Q_PROPERTY(QQuickStackView *view READ view NOTIFY viewChanged FINAL)
- Q_PROPERTY(QQuickStackView::Status status READ status NOTIFY statusChanged FINAL)
- // 2.2 (Qt 5.9)
- Q_PROPERTY(bool visible READ isVisible WRITE setVisible RESET resetVisible NOTIFY visibleChanged FINAL) // REVISION(2, 2)
-
-public:
- explicit QQuickStackViewAttached(QObject *parent = nullptr);
- ~QQuickStackViewAttached();
-
- int index() const;
- QQuickStackView *view() const;
- QQuickStackView::Status status() const;
-
- // 2.2 (Qt 5.9)
- bool isVisible() const;
- void setVisible(bool visible);
- void resetVisible();
-
-Q_SIGNALS:
- void indexChanged();
- void viewChanged();
- void statusChanged();
- // 2.1 (Qt 5.8)
- /*Q_REVISION(2, 1)*/ void activated();
- /*Q_REVISION(2, 1)*/ void activating();
- /*Q_REVISION(2, 1)*/ void deactivated();
- /*Q_REVISION(2, 1)*/ void deactivating();
- /*Q_REVISION(2, 1)*/ void removed();
- // 2.2 (Qt 5.9)
- /*Q_REVISION(2, 2)*/ void visibleChanged();
-
-private:
- Q_DISABLE_COPY(QQuickStackViewAttached)
- Q_DECLARE_PRIVATE(QQuickStackViewAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickStackView)
-QML_DECLARE_TYPEINFO(QQuickStackView, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKSTACKVIEW_P_H
diff --git a/src/quicktemplates2/qquickstackview_p_p.h b/src/quicktemplates2/qquickstackview_p_p.h
deleted file mode 100644
index 0c64019d..00000000
--- a/src/quicktemplates2/qquickstackview_p_p.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSTACKVIEW_P_P_H
-#define QQUICKSTACKVIEW_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickstackview_p.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
-#include <QtQuick/private/qquickitemviewtransition_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-#include <QtQml/private/qv4value_p.h>
-#include <QtQml/private/qqmlcontextdata_p.h>
-#include <QtCore/qset.h>
-#include <QtCore/qstack.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickStackElement;
-struct QQuickStackTransition;
-
-class QQuickStackViewPrivate : public QQuickControlPrivate, public QQuickItemViewTransitionChangeListener
-{
- Q_DECLARE_PUBLIC(QQuickStackView)
-
-public:
- static QQuickStackViewPrivate *get(QQuickStackView *view)
- {
- return view->d_func();
- }
-
- void warn(const QString &error);
- void warnOfInterruption(const QString &attemptedOperation);
-
- void setCurrentItem(QQuickStackElement *element);
-
- QList<QQuickStackElement *> parseElements(int from, QQmlV4Function *args, QStringList *errors);
- QQuickStackElement *findElement(QQuickItem *item) const;
- QQuickStackElement *findElement(const QV4::Value &value) const;
- QQuickStackElement *createElement(const QV4::Value &value, const QQmlRefPointer<QQmlContextData> &context, QString *error);
- bool pushElements(const QList<QQuickStackElement *> &elements);
- bool pushElement(QQuickStackElement *element);
- bool popElements(QQuickStackElement *element);
- bool replaceElements(QQuickStackElement *element, const QList<QQuickStackElement *> &elements);
-
- void ensureTransitioner();
- void startTransition(const QQuickStackTransition &first, const QQuickStackTransition &second, bool immediate);
- void completeTransition(QQuickStackElement *element, QQuickTransition *transition, QQuickStackView::Status status);
-
- void viewItemTransitionFinished(QQuickItemViewTransitionableItem *item) override;
- void setBusy(bool busy);
- void depthChange(int newDepth, int oldDepth);
-
- bool busy = false;
- bool modifyingElements = false;
- QString operation;
- QJSValue initialItem;
- QQuickItem *currentItem = nullptr;
- QSet<QQuickStackElement*> removing;
- QList<QQuickStackElement*> removed;
- QStack<QQuickStackElement *> elements;
- QQuickItemViewTransitioner *transitioner = nullptr;
-};
-
-class QQuickStackViewAttachedPrivate : public QObjectPrivate, public QQuickItemChangeListener
-{
- Q_DECLARE_PUBLIC(QQuickStackViewAttached)
-
-public:
- static QQuickStackViewAttachedPrivate *get(QQuickStackViewAttached *attached)
- {
- return attached->d_func();
- }
-
- void itemParentChanged(QQuickItem *item, QQuickItem *parent) override;
-
- bool explicitVisible = false;
- QQuickStackElement *element = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSTACKVIEW_P_P_H
diff --git a/src/quicktemplates2/qquickswipe_p.h b/src/quicktemplates2/qquickswipe_p.h
deleted file mode 100644
index 768d5638..00000000
--- a/src/quicktemplates2/qquickswipe_p.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSWIPE_P_H
-#define QQUICKSWIPE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qobject.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-#include <QtQuickTemplates2/private/qquickswipedelegate_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQmlComponent;
-class QQuickItem;
-class QQuickTransition;
-class QQuickSwipePrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSwipe : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(qreal position READ position WRITE setPosition NOTIFY positionChanged FINAL)
- Q_PROPERTY(bool complete READ isComplete NOTIFY completeChanged FINAL)
- Q_PROPERTY(QQmlComponent *left READ left WRITE setLeft NOTIFY leftChanged FINAL)
- Q_PROPERTY(QQmlComponent *behind READ behind WRITE setBehind NOTIFY behindChanged FINAL)
- Q_PROPERTY(QQmlComponent *right READ right WRITE setRight NOTIFY rightChanged FINAL)
- Q_PROPERTY(QQuickItem *leftItem READ leftItem NOTIFY leftItemChanged FINAL)
- Q_PROPERTY(QQuickItem *behindItem READ behindItem NOTIFY behindItemChanged FINAL)
- Q_PROPERTY(QQuickItem *rightItem READ rightItem NOTIFY rightItemChanged FINAL)
- // 2.2 (Qt 5.9)
- Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged FINAL) // REVISION(2, 2)
- Q_PROPERTY(QQuickTransition *transition READ transition WRITE setTransition NOTIFY transitionChanged FINAL) // REVISION(2, 2)
- QML_ANONYMOUS
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickSwipe(QQuickSwipeDelegate *control);
-
- qreal position() const;
- void setPosition(qreal position);
-
- bool isComplete() const;
- void setComplete(bool complete);
-
- QQmlComponent *left() const;
- void setLeft(QQmlComponent *left);
-
- QQmlComponent *behind() const;
- void setBehind(QQmlComponent *behind);
-
- QQmlComponent *right() const;
- void setRight(QQmlComponent *right);
-
- QQuickItem *leftItem() const;
- void setLeftItem(QQuickItem *item);
-
- QQuickItem *behindItem() const;
- void setBehindItem(QQuickItem *item);
-
- QQuickItem *rightItem() const;
- void setRightItem(QQuickItem *item);
-
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) Q_INVOKABLE void close();
-
- // 2.2 (Qt 5.9)
- bool isEnabled() const;
- void setEnabled(bool enabled);
-
- QQuickTransition *transition() const;
- void setTransition(QQuickTransition *transition);
-
- Q_REVISION(2, 2) Q_INVOKABLE void open(QQuickSwipeDelegate::Side side);
-
-Q_SIGNALS:
- void positionChanged();
- void completeChanged();
- void leftChanged();
- void behindChanged();
- void rightChanged();
- void leftItemChanged();
- void behindItemChanged();
- void rightItemChanged();
- // 2.1 (Qt 5.8)
- /*Q_REVISION(2, 1)*/ void completed();
- // 2.2 (Qt 5.9)
- /*Q_REVISION(2, 2)*/ void opened();
- /*Q_REVISION(2, 2)*/ void closed();
- /*Q_REVISION(2, 2)*/ void enabledChanged();
- /*Q_REVISION(2, 2)*/ void transitionChanged();
-
-private:
- Q_DISABLE_COPY(QQuickSwipe)
- Q_DECLARE_PRIVATE(QQuickSwipe)
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSWIPE_P_H
diff --git a/src/quicktemplates2/qquickswipedelegate.cpp b/src/quicktemplates2/qquickswipedelegate.cpp
deleted file mode 100644
index 817704ba..00000000
--- a/src/quicktemplates2/qquickswipedelegate.cpp
+++ /dev/null
@@ -1,1527 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickswipedelegate_p.h"
-#include "qquickswipedelegate_p_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickitemdelegate_p_p.h"
-#include "qquickvelocitycalculator_p_p.h"
-
-#include <QtGui/qstylehints.h>
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtQml/qqmlinfo.h>
-#include <QtQuick/private/qquickanimation_p.h>
-#include <QtQuick/private/qquicktransition_p.h>
-#include <QtQuick/private/qquicktransitionmanager_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype SwipeDelegate
- \inherits ItemDelegate
-//! \instantiates QQuickSwipeDelegate
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-delegates
- \brief Swipable item delegate.
-
- SwipeDelegate presents a view item that can be swiped left or right to
- expose more options or information. It is used as a delegate in views such
- as \l ListView.
-
- In the following example, SwipeDelegate is used in a \l ListView to allow
- items to be removed from it by swiping to the left:
-
- \snippet qtquickcontrols2-swipedelegate.qml 1
-
- SwipeDelegate inherits its API from \l ItemDelegate, which is inherited
- from AbstractButton. For instance, you can set \l {AbstractButton::text}{text},
- and react to \l {AbstractButton::clicked}{clicks} using the AbstractButton
- API.
-
- Information regarding the progress of a swipe, as well as the components
- that should be shown upon swiping, are both available through the
- \l {SwipeDelegate::}{swipe} grouped property object. For example,
- \c swipe.position holds the position of the
- swipe within the range \c -1.0 to \c 1.0. The \c swipe.left
- property determines which item will be displayed when the control is swiped
- to the right, and vice versa for \c swipe.right. The positioning of these
- components is left to applications to decide. For example, without specifying
- any position for \c swipe.left or \c swipe.right, the following will
- occur:
-
- \image qtquickcontrols2-swipedelegate.gif
-
- If \c swipe.left and \c swipe.right are anchored to the left and
- right of the \l {Control::}{background} item (respectively), they'll behave like this:
-
- \image qtquickcontrols2-swipedelegate-leading-trailing.gif
-
- When using \c swipe.left and \c swipe.right, the control cannot be
- swiped past the left and right edges. To achieve this type of "wrapping"
- behavior, set \c swipe.behind instead. This will result in the same
- item being shown regardless of which direction the control is swiped. For
- example, in the image below, we set \c swipe.behind and then swipe the
- control repeatedly in both directions:
-
- \image qtquickcontrols2-swipedelegate-behind.gif
-
- \sa {Customizing SwipeDelegate}, {Delegate Controls}, {Qt Quick Controls 2 - Swipe to Remove}{Swipe to Remove Example}
-*/
-
-namespace {
- typedef QQuickSwipeDelegateAttached Attached;
-
- Attached *attachedObject(QQuickItem *item) {
- return qobject_cast<Attached*>(qmlAttachedPropertiesObject<QQuickSwipeDelegate>(item, false));
- }
-
- enum PositionAnimation {
- DontAnimatePosition,
- AnimatePosition
- };
-}
-
-class QQuickSwipeTransitionManager : public QQuickTransitionManager
-{
-public:
- QQuickSwipeTransitionManager(QQuickSwipe *swipe);
-
- void transition(QQuickTransition *transition, qreal position);
-
-protected:
- void finished() override;
-
-private:
- QQuickSwipe *m_swipe = nullptr;
-};
-
-class QQuickSwipePrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickSwipe)
-
-public:
- QQuickSwipePrivate(QQuickSwipeDelegate *control) : control(control) { }
-
- static QQuickSwipePrivate *get(QQuickSwipe *swipe);
-
- QQuickItem *createDelegateItem(QQmlComponent *component);
- QQuickItem *showRelevantItemForPosition(qreal position);
- QQuickItem *createRelevantItemForDistance(qreal distance);
- void reposition(PositionAnimation animationPolicy);
- void createLeftItem();
- void createBehindItem();
- void createRightItem();
- void createAndShowLeftItem();
- void createAndShowBehindItem();
- void createAndShowRightItem();
-
- void warnAboutMixingDelegates();
- void warnAboutSettingDelegatesWhileVisible();
-
- bool hasDelegates() const;
-
- bool isTransitioning() const;
- void beginTransition(qreal position);
- void finishTransition();
-
- QQuickSwipeDelegate *control = nullptr;
- // Same range as position, but is set before press events so that we can
- // keep track of which direction the user must swipe when using left and right delegates.
- qreal positionBeforePress = 0;
- qreal position = 0;
- // A "less strict" version of complete that is true if complete was true
- // before the last press event.
- bool wasComplete = false;
- bool complete = false;
- bool enabled = true;
- bool waitForTransition = false;
- QQuickVelocityCalculator velocityCalculator;
- QQmlComponent *left = nullptr;
- QQmlComponent *behind = nullptr;
- QQmlComponent *right = nullptr;
- QQuickItem *leftItem = nullptr;
- QQuickItem *behindItem = nullptr;
- QQuickItem *rightItem = nullptr;
- QQuickTransition *transition = nullptr;
- QScopedPointer<QQuickSwipeTransitionManager> transitionManager;
-};
-
-QQuickSwipeTransitionManager::QQuickSwipeTransitionManager(QQuickSwipe *swipe)
- : m_swipe(swipe)
-{
-}
-
-void QQuickSwipeTransitionManager::transition(QQuickTransition *transition, qreal position)
-{
- qmlExecuteDeferred(transition);
-
- QQmlProperty defaultTarget(m_swipe, QLatin1String("position"));
- QQmlListProperty<QQuickAbstractAnimation> animations = transition->animations();
- const int count = animations.count(&animations);
- for (int i = 0; i < count; ++i) {
- QQuickAbstractAnimation *anim = animations.at(&animations, i);
- anim->setDefaultTarget(defaultTarget);
- }
-
- QList<QQuickStateAction> actions;
- actions << QQuickStateAction(m_swipe, QLatin1String("position"), position);
- QQuickTransitionManager::transition(actions, transition, m_swipe);
-}
-
-void QQuickSwipeTransitionManager::finished()
-{
- QQuickSwipePrivate::get(m_swipe)->finishTransition();
-}
-
-QQuickSwipePrivate *QQuickSwipePrivate::get(QQuickSwipe *swipe)
-{
- return swipe->d_func();
-}
-
-QQuickItem *QQuickSwipePrivate::createDelegateItem(QQmlComponent *component)
-{
- // If we don't use the correct context, it won't be possible to refer to
- // the control's id from within the delegates.
- QQmlContext *creationContext = component->creationContext();
- // The component might not have been created in QML, in which case
- // the creation context will be null and we have to create it ourselves.
- if (!creationContext)
- creationContext = qmlContext(control);
- QQmlContext *context = new QQmlContext(creationContext, control);
- context->setContextObject(control);
- QQuickItem *item = qobject_cast<QQuickItem*>(component->beginCreate(context));
- if (item) {
- item->setParentItem(control);
- component->completeCreate();
- }
- return item;
-}
-
-QQuickItem *QQuickSwipePrivate::showRelevantItemForPosition(qreal position)
-{
- if (qFuzzyIsNull(position))
- return nullptr;
-
- if (behind) {
- createAndShowBehindItem();
- return behindItem;
- }
-
- if (right && position < 0.0) {
- createAndShowRightItem();
- return rightItem;
- }
-
- if (left && position > 0.0) {
- createAndShowLeftItem();
- return leftItem;
- }
-
- return nullptr;
-}
-
-QQuickItem *QQuickSwipePrivate::createRelevantItemForDistance(qreal distance)
-{
- if (qFuzzyIsNull(distance))
- return nullptr;
-
- if (behind) {
- createBehindItem();
- return behindItem;
- }
-
- // a) If the position before the press was 0.0, we know that *any* movement
- // whose distance is negative will result in the right item being shown and
- // vice versa.
- // b) Once the control has been exposed (that is, swiped to the left or right,
- // and hence the position is either -1.0 or 1.0), we must use the width of the
- // relevant item to determine if the distance is larger than that item,
- // in order to know whether or not to display it.
- // c) If the control has been exposed, and the swipe is larger than the width
- // of the relevant item from which the swipe started from, we must show the
- // item on the other side (if any).
-
- if (right) {
- if ((distance < 0.0 && positionBeforePress == 0.0) /* a) */
- || (rightItem && positionBeforePress == -1.0 && distance < rightItem->width()) /* b) */
- || (leftItem && positionBeforePress == 1.0 && qAbs(distance) > leftItem->width())) /* c) */ {
- createRightItem();
- return rightItem;
- }
- }
-
- if (left) {
- if ((distance > 0.0 && positionBeforePress == 0.0) /* a) */
- || (leftItem && positionBeforePress == 1.0 && qAbs(distance) < leftItem->width()) /* b) */
- || (rightItem && positionBeforePress == -1.0 && qAbs(distance) > rightItem->width())) /* c) */ {
- createLeftItem();
- return leftItem;
- }
- }
-
- return nullptr;
-}
-
-void QQuickSwipePrivate::reposition(PositionAnimation animationPolicy)
-{
- QQuickItem *relevantItem = showRelevantItemForPosition(position);
- const qreal relevantWidth = relevantItem ? relevantItem->width() : 0.0;
- const qreal contentItemX = position * relevantWidth + control->leftPadding();
-
- // "Behavior on x" relies on the property system to know when it should update,
- // so we can prevent it from animating by setting the x position directly.
- if (animationPolicy == AnimatePosition) {
- if (QQuickItem *contentItem = control->contentItem())
- contentItem->setProperty("x", contentItemX);
- if (QQuickItem *background = control->background())
- background->setProperty("x", position * relevantWidth);
- } else {
- if (QQuickItem *contentItem = control->contentItem())
- contentItem->setX(contentItemX);
- if (QQuickItem *background = control->background())
- background->setX(position * relevantWidth);
- }
-}
-
-void QQuickSwipePrivate::createLeftItem()
-{
- if (!leftItem) {
- Q_Q(QQuickSwipe);
- q->setLeftItem(createDelegateItem(left));
- if (!leftItem)
- qmlWarning(control) << "Failed to create left item:" << left->errors();
- }
-}
-
-void QQuickSwipePrivate::createBehindItem()
-{
- if (!behindItem) {
- Q_Q(QQuickSwipe);
- q->setBehindItem(createDelegateItem(behind));
- if (!behindItem)
- qmlWarning(control) << "Failed to create behind item:" << behind->errors();
- }
-}
-
-void QQuickSwipePrivate::createRightItem()
-{
- if (!rightItem) {
- Q_Q(QQuickSwipe);
- q->setRightItem(createDelegateItem(right));
- if (!rightItem)
- qmlWarning(control) << "Failed to create right item:" << right->errors();
- }
-}
-
-void QQuickSwipePrivate::createAndShowLeftItem()
-{
- createLeftItem();
-
- if (leftItem)
- leftItem->setVisible(true);
-
- if (rightItem)
- rightItem->setVisible(false);
-}
-
-void QQuickSwipePrivate::createAndShowBehindItem()
-{
- createBehindItem();
-
- if (behindItem)
- behindItem->setVisible(true);
-}
-
-void QQuickSwipePrivate::createAndShowRightItem()
-{
- createRightItem();
-
- // This item may have already existed but was hidden.
- if (rightItem)
- rightItem->setVisible(true);
-
- // The left item isn't visible when the right item is visible, so save rendering effort by hiding it.
- if (leftItem)
- leftItem->setVisible(false);
-}
-
-void QQuickSwipePrivate::warnAboutMixingDelegates()
-{
- qmlWarning(control) << "cannot set both behind and left/right properties";
-}
-
-void QQuickSwipePrivate::warnAboutSettingDelegatesWhileVisible()
-{
- qmlWarning(control) << "left/right/behind properties may only be set when swipe.position is 0";
-}
-
-bool QQuickSwipePrivate::hasDelegates() const
-{
- return left || right || behind;
-}
-
-bool QQuickSwipePrivate::isTransitioning() const
-{
- return transitionManager && transitionManager->isRunning();
-}
-
-void QQuickSwipePrivate::beginTransition(qreal newPosition)
-{
- if (waitForTransition)
- return;
- Q_Q(QQuickSwipe);
- if (!transition) {
- q->setPosition(newPosition);
- finishTransition();
- return;
- }
-
- if (!transitionManager)
- transitionManager.reset(new QQuickSwipeTransitionManager(q));
-
- transitionManager->transition(transition, newPosition);
-}
-
-void QQuickSwipePrivate::finishTransition()
-{
- Q_Q(QQuickSwipe);
- waitForTransition = false;
- q->setComplete(qFuzzyCompare(qAbs(position), qreal(1.0)));
- if (complete) {
- emit q->opened();
- } else {
- if (qFuzzyIsNull(position))
- wasComplete = false;
- emit q->closed();
- }
-}
-
-QQuickSwipe::QQuickSwipe(QQuickSwipeDelegate *control)
- : QObject(*(new QQuickSwipePrivate(control)))
-{
-}
-
-QQmlComponent *QQuickSwipe::left() const
-{
- Q_D(const QQuickSwipe);
- return d->left;
-}
-
-void QQuickSwipe::setLeft(QQmlComponent *left)
-{
- Q_D(QQuickSwipe);
- if (left == d->left)
- return;
-
- if (d->behind) {
- d->warnAboutMixingDelegates();
- return;
- }
-
- if (!qFuzzyIsNull(d->position)) {
- d->warnAboutSettingDelegatesWhileVisible();
- return;
- }
-
- d->left = left;
-
- if (!d->left) {
- delete d->leftItem;
- d->leftItem = nullptr;
- }
-
- d->control->setFiltersChildMouseEvents(d->hasDelegates());
-
- emit leftChanged();
-}
-
-QQmlComponent *QQuickSwipe::behind() const
-{
- Q_D(const QQuickSwipe);
- return d->behind;
-}
-
-void QQuickSwipe::setBehind(QQmlComponent *behind)
-{
- Q_D(QQuickSwipe);
- if (behind == d->behind)
- return;
-
- if (d->left || d->right) {
- d->warnAboutMixingDelegates();
- return;
- }
-
- if (!qFuzzyIsNull(d->position)) {
- d->warnAboutSettingDelegatesWhileVisible();
- return;
- }
-
- d->behind = behind;
-
- if (!d->behind) {
- delete d->behindItem;
- d->behindItem = nullptr;
- }
-
- d->control->setFiltersChildMouseEvents(d->hasDelegates());
-
- emit behindChanged();
-}
-
-QQmlComponent *QQuickSwipe::right() const
-{
- Q_D(const QQuickSwipe);
- return d->right;
-}
-
-void QQuickSwipe::setRight(QQmlComponent *right)
-{
- Q_D(QQuickSwipe);
- if (right == d->right)
- return;
-
- if (d->behind) {
- d->warnAboutMixingDelegates();
- return;
- }
-
- if (!qFuzzyIsNull(d->position)) {
- d->warnAboutSettingDelegatesWhileVisible();
- return;
- }
-
- d->right = right;
-
- if (!d->right) {
- delete d->rightItem;
- d->rightItem = nullptr;
- }
-
- d->control->setFiltersChildMouseEvents(d->hasDelegates());
-
- emit rightChanged();
-}
-
-QQuickItem *QQuickSwipe::leftItem() const
-{
- Q_D(const QQuickSwipe);
- return d->leftItem;
-}
-
-void QQuickSwipe::setLeftItem(QQuickItem *item)
-{
- Q_D(QQuickSwipe);
- if (item == d->leftItem)
- return;
-
- delete d->leftItem;
- d->leftItem = item;
-
- if (d->leftItem) {
- d->leftItem->setParentItem(d->control);
-
- if (qFuzzyIsNull(d->leftItem->z()))
- d->leftItem->setZ(-2);
- }
-
- emit leftItemChanged();
-}
-
-QQuickItem *QQuickSwipe::behindItem() const
-{
- Q_D(const QQuickSwipe);
- return d->behindItem;
-}
-
-void QQuickSwipe::setBehindItem(QQuickItem *item)
-{
- Q_D(QQuickSwipe);
- if (item == d->behindItem)
- return;
-
- delete d->behindItem;
- d->behindItem = item;
-
- if (d->behindItem) {
- d->behindItem->setParentItem(d->control);
-
- if (qFuzzyIsNull(d->behindItem->z()))
- d->behindItem->setZ(-2);
- }
-
- emit behindItemChanged();
-}
-
-QQuickItem *QQuickSwipe::rightItem() const
-{
- Q_D(const QQuickSwipe);
- return d->rightItem;
-}
-
-void QQuickSwipe::setRightItem(QQuickItem *item)
-{
- Q_D(QQuickSwipe);
- if (item == d->rightItem)
- return;
-
- delete d->rightItem;
- d->rightItem = item;
-
- if (d->rightItem) {
- d->rightItem->setParentItem(d->control);
-
- if (qFuzzyIsNull(d->rightItem->z()))
- d->rightItem->setZ(-2);
- }
-
- emit rightItemChanged();
-}
-
-qreal QQuickSwipe::position() const
-{
- Q_D(const QQuickSwipe);
- return d->position;
-}
-
-void QQuickSwipe::setPosition(qreal position)
-{
- Q_D(QQuickSwipe);
- const qreal adjustedPosition = qBound<qreal>(-1.0, position, 1.0);
- if (adjustedPosition == d->position)
- return;
-
- d->position = adjustedPosition;
- d->reposition(AnimatePosition);
- emit positionChanged();
-}
-
-bool QQuickSwipe::isComplete() const
-{
- Q_D(const QQuickSwipe);
- return d->complete;
-}
-
-void QQuickSwipe::setComplete(bool complete)
-{
- Q_D(QQuickSwipe);
- if (complete == d->complete)
- return;
-
- d->complete = complete;
- emit completeChanged();
- if (d->complete)
- emit completed();
-}
-
-bool QQuickSwipe::isEnabled() const
-{
- Q_D(const QQuickSwipe);
- return d->enabled;
-}
-
-void QQuickSwipe::setEnabled(bool enabled)
-{
- Q_D(QQuickSwipe);
- if (enabled == d->enabled)
- return;
-
- d->enabled = enabled;
- emit enabledChanged();
-}
-
-QQuickTransition *QQuickSwipe::transition() const
-{
- Q_D(const QQuickSwipe);
- return d->transition;
-}
-
-void QQuickSwipe::setTransition(QQuickTransition *transition)
-{
- Q_D(QQuickSwipe);
- if (transition == d->transition)
- return;
-
- d->transition = transition;
- emit transitionChanged();
-}
-
-void QQuickSwipe::open(QQuickSwipeDelegate::Side side)
-{
- Q_D(QQuickSwipe);
- if (qFuzzyCompare(qAbs(d->position), qreal(1.0)))
- return;
-
- if ((side != QQuickSwipeDelegate::Left && side != QQuickSwipeDelegate::Right)
- || (!d->left && !d->behind && side == QQuickSwipeDelegate::Left)
- || (!d->right && !d->behind && side == QQuickSwipeDelegate::Right))
- return;
-
- d->beginTransition(side);
- d->wasComplete = true;
- d->velocityCalculator.reset();
- d->positionBeforePress = d->position;
-}
-
-void QQuickSwipe::close()
-{
- Q_D(QQuickSwipe);
- if (qFuzzyIsNull(d->position))
- return;
-
- if (d->control->isPressed()) {
- // We don't support closing when we're pressed; release() or clicked() should be used instead.
- return;
- }
-
- d->beginTransition(0.0);
- d->waitForTransition = true;
- d->wasComplete = false;
- d->positionBeforePress = 0.0;
- d->velocityCalculator.reset();
-}
-
-QQuickSwipeDelegatePrivate::QQuickSwipeDelegatePrivate(QQuickSwipeDelegate *control)
- : swipe(control)
-{
-}
-
-void QQuickSwipeDelegatePrivate::resizeBackground()
-{
- if (!background)
- return;
-
- resizingBackground = true;
-
- QQuickItemPrivate *p = QQuickItemPrivate::get(background);
- const bool extraAllocated = extra.isAllocated();
- // Don't check for or set the x here since it will just be overwritten by reposition().
- if (((!p->widthValid() || !extraAllocated || !extra->hasBackgroundWidth))
- || (extraAllocated && (extra->hasLeftInset || extra->hasRightInset))) {
- background->setWidth(width - getLeftInset() - getRightInset());
- }
- if (((!p->heightValid() || !extraAllocated || !extra->hasBackgroundHeight) && qFuzzyIsNull(background->y()))
- || (extraAllocated && (extra->hasTopInset || extra->hasBottomInset))) {
- background->setY(getTopInset());
- background->setHeight(height - getTopInset() - getBottomInset());
- }
-
- resizingBackground = false;
-}
-
-bool QQuickSwipeDelegatePrivate::handleMousePressEvent(QQuickItem *item, QMouseEvent *event)
-{
- Q_Q(QQuickSwipeDelegate);
- const auto posInItem = item->mapToItem(q, event->position().toPoint());
- QQuickSwipePrivate *swipePrivate = QQuickSwipePrivate::get(&swipe);
- // If the position is 0, we want to handle events ourselves - we don't want child items to steal them.
- // This code will only get called when a child item has been created;
- // events will go through the regular channels (mousePressEvent()) until then.
- if (qFuzzyIsNull(swipePrivate->position)) {
- q->mousePressEvent(event);
- // The press point could be incorrect if the press happened over a child item,
- // so we correct it after calling the base class' mousePressEvent(), rather
- // than having to duplicate its code just so we can set the pressPoint.
- setPressPoint(posInItem);
- return true;
- }
-
- // If the delegate is swiped open, send the event to the exposed item,
- // in case it's an interactive child (like a Button).
- if (swipePrivate->complete)
- forwardMouseEvent(event, item, posInItem);
-
- // The position is non-zero, this press could be either for a delegate or the control itself
- // (the control can be clicked to e.g. close the swipe). Either way, we must begin measuring
- // mouse movement in case it turns into a swipe, in which case we grab the mouse.
- swipePrivate->positionBeforePress = swipePrivate->position;
- swipePrivate->velocityCalculator.startMeasuring(event->position().toPoint(), event->timestamp());
- setPressPoint(item->mapToItem(q, event->position().toPoint()));
-
- // When a delegate or any of its children uses the attached properties and signals,
- // it declares that it wants mouse events.
- const bool delivered = attachedObjectsSetPressed(item, event->scenePosition(), true);
- if (delivered)
- event->accept();
- return delivered;
-}
-
-bool QQuickSwipeDelegatePrivate::handleMouseMoveEvent(QQuickItem *item, QMouseEvent *event)
-{
- Q_Q(QQuickSwipeDelegate);
-
- if (holdTimer > 0) {
- if (QLineF(pressPoint, event->position()).length() > QGuiApplication::styleHints()->startDragDistance())
- stopPressAndHold();
- }
-
- // The delegate can still be pressed when swipe.enabled is false,
- // but the mouse moving shouldn't have any effect on swipe.position.
- QQuickSwipePrivate *swipePrivate = QQuickSwipePrivate::get(&swipe);
- if (!swipePrivate->enabled)
- return false;
-
- // Protect against division by zero.
- if (width == 0)
- return false;
-
- // Don't bother reacting to events if we don't have any delegates.
- if (!swipePrivate->left && !swipePrivate->right && !swipePrivate->behind)
- return false;
-
- // Don't handle move events for the control if it wasn't pressed.
- if (item == q && !pressed)
- return false;
-
- const QPointF mappedEventPos = item->mapToItem(q, event->position().toPoint());
- const qreal distance = (mappedEventPos - pressPoint).x();
- if (!q->keepMouseGrab()) {
- // We used to use the custom threshold that QQuickDrawerPrivate::grabMouse used,
- // but since it's larger than what Flickable uses, it results in Flickable
- // stealing events from us (QTBUG-50045), so now we use the default.
- const bool overThreshold = QQuickWindowPrivate::dragOverThreshold(distance, Qt::XAxis, event);
- if (window && overThreshold) {
- QQuickItem *grabber = q->window()->mouseGrabberItem();
- if (!grabber || !grabber->keepMouseGrab()) {
- q->grabMouse();
- q->setKeepMouseGrab(true);
- q->setPressed(true);
- swipe.setComplete(false);
-
- attachedObjectsSetPressed(item, event->scenePosition(), false, true);
- }
- }
- }
-
- if (q->keepMouseGrab()) {
- // Ensure we don't try to calculate a position when the user tried to drag
- // to the left when the left item is already exposed, and vice versa.
- // The code below assumes that the drag is valid, so if we don't have this check,
- // the wrong items are visible and the swiping wraps.
- if (swipePrivate->behind
- || ((swipePrivate->left || swipePrivate->right)
- && (qFuzzyIsNull(swipePrivate->positionBeforePress)
- || (swipePrivate->positionBeforePress == -1.0 && distance >= 0.0)
- || (swipePrivate->positionBeforePress == 1.0 && distance <= 0.0)))) {
-
- // We must instantiate the items here so that we can calculate the
- // position against the width of the relevant item.
- QQuickItem *relevantItem = swipePrivate->createRelevantItemForDistance(distance);
- // If there isn't any relevant item, the user may have swiped back to the 0 position,
- // or they swiped back to a position that is equal to positionBeforePress.
- const qreal normalizedDistance = relevantItem ? distance / relevantItem->width() : 0.0;
- qreal position = 0;
-
- // If the control was exposed before the drag begun, the distance should be inverted.
- // For example, if the control had been swiped to the right, the position would be 1.0.
- // If the control was then swiped to the left by a distance of -20 pixels, the normalized
- // distance might be -0.2, for example, which cannot be used as the position; the swipe
- // started from the right, so we account for that by adding the position.
- if (qFuzzyIsNull(normalizedDistance)) {
- // There are two cases when the normalizedDistance can be 0,
- // and we must distinguish between them:
- //
- // a) The swipe returns to the position that it was at before the press event.
- // In this case, the distance will be 0.
- // There would have been many position changes in the meantime, so we can't just
- // ignore the move event; we have to set position to what it was before the press.
- //
- // b) If the position was at, 1.0, for example, and the control was then swiped
- // to the left by the exact width of the left item, there won't be any relevant item
- // (because the swipe's position would be at 0.0). In turn, the normalizedDistance
- // would be 0 (because of the lack of a relevant item), but the distance will be non-zero.
- position = qFuzzyIsNull(distance) ? swipePrivate->positionBeforePress : 0;
- } else if (!swipePrivate->wasComplete) {
- position = normalizedDistance;
- } else {
- position = distance > 0 ? normalizedDistance - 1.0 : normalizedDistance + 1.0;
- }
-
- if (swipePrivate->isTransitioning())
- swipePrivate->transitionManager->cancel();
- swipe.setPosition(position);
- }
- } else {
- // The swipe wasn't initiated.
- if (event->position().toPoint().y() < 0 || event->position().toPoint().y() > height) {
- // The mouse went outside the vertical bounds of the control, so
- // we should no longer consider it pressed.
- q->setPressed(false);
- }
- }
-
- event->accept();
-
- return q->keepMouseGrab();
-}
-
-static const qreal exposeVelocityThreshold = 300.0;
-
-bool QQuickSwipeDelegatePrivate::handleMouseReleaseEvent(QQuickItem *item, QMouseEvent *event)
-{
- Q_Q(QQuickSwipeDelegate);
- QQuickSwipePrivate *swipePrivate = QQuickSwipePrivate::get(&swipe);
- swipePrivate->velocityCalculator.stopMeasuring(event->position().toPoint(), event->timestamp());
-
- const bool hadGrabbedMouse = q->keepMouseGrab();
- q->setKeepMouseGrab(false);
-
- // QQuickSwipe::close() doesn't allow closing while pressed, but now we're releasing.
- // So set the pressed state false if this release _could_ result in closing, so that check can be bypassed.
- if (!qIsNull(swipePrivate->position))
- q->setPressed(false);
-
- // Animations for the background and contentItem delegates are typically
- // only enabled when !control.down, so that the animations aren't running
- // when the user is swiping. To ensure that the animations are enabled
- // *before* the positions of these delegates change (via the swipe.setPosition() calls below),
- // we must cancel the press. QQuickAbstractButton::mouseUngrabEvent() does this
- // for us, but by then it's too late.
- if (hadGrabbedMouse) {
- // TODO: this is copied from QQuickAbstractButton::mouseUngrabEvent().
- // Eventually it should be moved into a private helper so that we don't have to duplicate it.
- q->setPressed(false);
- stopPressRepeat();
- stopPressAndHold();
- emit q->canceled();
- }
-
- // Inform the given item that the mouse is released, in case it's an interactive child.
- if (item != q && (swipePrivate->complete || swipePrivate->wasComplete))
- forwardMouseEvent(event, item, item->mapFromScene(event->scenePosition()));
-
- // The control can be exposed by either swiping past the halfway mark, or swiping fast enough.
- const qreal swipeVelocity = swipePrivate->velocityCalculator.velocity().x();
- if (swipePrivate->position > 0.5 ||
- (swipePrivate->position > 0.0 && swipeVelocity > exposeVelocityThreshold)) {
- swipePrivate->beginTransition(1.0);
- swipePrivate->wasComplete = true;
- } else if (swipePrivate->position < -0.5 ||
- (swipePrivate->position < 0.0 && swipeVelocity < -exposeVelocityThreshold)) {
- swipePrivate->beginTransition(-1.0);
- swipePrivate->wasComplete = true;
- } else if (!swipePrivate->isTransitioning()) {
- // The position is either <= 0.5 or >= -0.5, so the position should go to 0.
- // However, if the position was already 0 or close to it, we were just clicked,
- // and we don't need to start a transition.
- if (!qFuzzyIsNull(swipePrivate->position))
- swipePrivate->beginTransition(0.0);
- swipePrivate->wasComplete = false;
- }
-
- // Inform any QQuickSwipeDelegateAttached objects that the mouse is released.
- attachedObjectsSetPressed(item, event->scenePosition(), false);
-
- // Only consume child events if we had grabbed the mouse.
- return hadGrabbedMouse;
-}
-
-/*! \internal
- Send a localized copy of \a event with \a localPos to the \a destination item.
-*/
-void QQuickSwipeDelegatePrivate::forwardMouseEvent(QMouseEvent *event, QQuickItem *destination, QPointF localPos)
-{
- Q_Q(QQuickSwipeDelegate);
- QMutableSinglePointEvent localizedEvent(*event);
- localizedEvent.mutablePoint().setPosition(localPos);
- QGuiApplication::sendEvent(destination, &localizedEvent);
- q->setPressed(!localizedEvent.isAccepted());
-}
-
-/*! \internal
- For each QQuickSwipeDelegateAttached object on children of \a item:
- if \a scenePos is in the attachee (the item to which it's attached), then
- set its \a pressed state. Unless \a cancel is \c true, when the state
- transitions from pressed to released, also emit \l QQuickSwipeDelegateAttached::clicked().
- Returns \c true if at least one relevant attached object was found.
-*/
-bool QQuickSwipeDelegatePrivate::attachedObjectsSetPressed(QQuickItem *item, QPointF scenePos, bool pressed, bool cancel)
-{
- bool found = false;
- QVarLengthArray<QQuickItem *, 16> itemAndChildren;
- itemAndChildren.append(item);
- for (int i = 0; i < itemAndChildren.count(); ++i) {
- auto item = itemAndChildren.at(i);
- auto posInItem = item->mapFromScene(scenePos);
- if (item->contains(posInItem)) {
- if (Attached *attached = attachedObject(item)) {
- const bool wasPressed = attached->isPressed();
- attached->setPressed(pressed);
- if (wasPressed && !pressed && !cancel)
- emit attached->clicked();
- found = true;
- }
- }
- for (auto child : item->childItems())
- itemAndChildren.append(child);
- }
- return found;
-}
-
-static void warnIfHorizontallyAnchored(QQuickItem *item, const QString &itemName)
-{
- if (!item)
- return;
-
- QQuickAnchors *anchors = QQuickItemPrivate::get(item)->_anchors;
- if (anchors && (anchors->fill() || anchors->centerIn() || anchors->left().item || anchors->right().item)
- && !item->property("_q_QQuickSwipeDelegate_warned").toBool()) {
- qmlWarning(item) << QString::fromLatin1("SwipeDelegate: cannot use horizontal anchors with %1; unable to layout the item.").arg(itemName);
- item->setProperty("_q_QQuickSwipeDelegate_warned", true);
- }
-}
-
-void QQuickSwipeDelegatePrivate::resizeContent()
-{
- warnIfHorizontallyAnchored(background, QStringLiteral("background"));
- warnIfHorizontallyAnchored(contentItem, QStringLiteral("contentItem"));
-
- // If the background and contentItem are repositioned due to a swipe,
- // we don't want to call QQuickControlPrivate's implementation of this function,
- // as it repositions the contentItem to be visible.
- // However, we still want to position the contentItem vertically
- // and resize it (in case the control was resized while open).
- QQuickSwipePrivate *swipePrivate = QQuickSwipePrivate::get(&swipe);
- if (!swipePrivate->complete) {
- QQuickItemDelegatePrivate::resizeContent();
- } else if (contentItem) {
- Q_Q(QQuickSwipeDelegate);
- contentItem->setY(q->topPadding());
- contentItem->setWidth(q->availableWidth());
- contentItem->setHeight(q->availableHeight());
- }
-}
-
-QPalette QQuickSwipeDelegatePrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::ListView);
-}
-
-QQuickSwipeDelegate::QQuickSwipeDelegate(QQuickItem *parent)
- : QQuickItemDelegate(*(new QQuickSwipeDelegatePrivate(this)), parent)
-{
- // QQuickSwipeDelegate still depends on synthesized mouse events
- setAcceptTouchEvents(false);
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlmethod void QtQuick.Controls::SwipeDelegate::swipe.open(enumeration side)
-
- This method sets the \c position of the swipe so that it opens
- from the specified \a side.
-
- Available values:
- \value SwipeDelegate.Left The \c position is set to \c 1, which makes the swipe open
- from the left. Either \c swipe.left or \c swipe.behind must
- have been specified; otherwise the call is ignored.
- \value SwipeDelegate.Right The \c position is set to \c -1, which makes the swipe open
- from the right. Either \c swipe.right or \c swipe.behind must
- have been specified; otherwise the call is ignored.
-
- Any animations defined for the \l {Item::}{x} position of \l {Control::}{contentItem}
- and \l {Control::}{background} will be triggered.
-
- \sa swipe, swipe.close()
-*/
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlmethod void QtQuick.Controls::SwipeDelegate::swipe.close()
-
- This method sets the \c position of the swipe to \c 0. Any animations
- defined for the \l {Item::}{x} position of \l {Control::}{contentItem}
- and \l {Control::}{background} will be triggered.
-
- \sa swipe, swipe.open()
-*/
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlsignal void QtQuick.Controls::SwipeDelegate::swipe.opened()
-
- This signal is emitted when the delegate has been swiped open
- and the transition has finished.
-
- It is useful for performing some action upon completion of a swipe.
- For example, it can be used to remove the delegate from the list
- that it is in.
-
- \sa swipe, swipe.closed()
-*/
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlsignal void QtQuick.Controls::SwipeDelegate::swipe.closed()
-
- This signal is emitted when the delegate has been swiped to closed
- and the transition has finished.
-
- It is useful for performing some action upon cancellation of a swipe.
- For example, it can be used to cancel the removal of the delegate from
- the list that it is in.
-
- \sa swipe, swipe.opened()
-*/
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlsignal void QtQuick.Controls::SwipeDelegate::swipe.completed()
-
- This signal is emitted when \c swipe.complete becomes \c true.
-
- It is useful for performing some action upon completion of a swipe.
- For example, it can be used to remove the delegate from the list
- that it is in.
-
- \sa swipe
-*/
-
-/*!
- \qmlproperty real QtQuick.Controls::SwipeDelegate::swipe.position
- \qmlproperty bool QtQuick.Controls::SwipeDelegate::swipe.complete
- \qmlproperty bool QtQuick.Controls::SwipeDelegate::swipe.enabled
- \qmlproperty Component QtQuick.Controls::SwipeDelegate::swipe.left
- \qmlproperty Component QtQuick.Controls::SwipeDelegate::swipe.behind
- \qmlproperty Component QtQuick.Controls::SwipeDelegate::swipe.right
- \qmlproperty Item QtQuick.Controls::SwipeDelegate::swipe.leftItem
- \qmlproperty Item QtQuick.Controls::SwipeDelegate::swipe.behindItem
- \qmlproperty Item QtQuick.Controls::SwipeDelegate::swipe.rightItem
- \qmlproperty Transition QtQuick.Controls::SwipeDelegate::swipe.transition
-
- \table
- \header
- \li Name
- \li Description
- \row
- \li position
- \li This read-only property holds the position of the swipe relative to either
- side of the control. When this value reaches either
- \c -1.0 (left side) or \c 1.0 (right side) and the mouse button is
- released, \c complete will be \c true.
- \row
- \li complete
- \li This read-only property holds whether the control is fully exposed after
- having been swiped to the left or right.
-
- When complete is \c true, any interactive items declared in \c left,
- \c right, or \c behind will receive mouse events.
- \row
- \li enabled
- \li This property determines whether or not the control can be swiped.
-
- This property was added in QtQuick.Controls 2.2.
- \row
- \li left
- \li This property holds the left delegate.
-
- The left delegate sits behind both \l {Control::}{contentItem} and
- \l {Control::}{background}. When the SwipeDelegate is swiped to the right,
- this item will be gradually revealed.
-
- \include qquickswipedelegate-interaction.qdocinc
- \row
- \li behind
- \li This property holds the delegate that is shown when the
- SwipeDelegate is swiped to both the left and right.
-
- As with the \c left and \c right delegates, it sits behind both
- \l {Control::}{contentItem} and \l {Control::}{background}. However, a
- SwipeDelegate whose \c behind has been set can be continuously swiped
- from either side, and will always show the same item.
-
- \include qquickswipedelegate-interaction.qdocinc
- \row
- \li right
- \li This property holds the right delegate.
-
- The right delegate sits behind both \l {Control::}{contentItem} and
- \l {Control::}{background}. When the SwipeDelegate is swiped to the left,
- this item will be gradually revealed.
-
- \include qquickswipedelegate-interaction.qdocinc
- \row
- \li leftItem
- \li This read-only property holds the item instantiated from the \c left component.
-
- If \c left has not been set, or the position hasn't changed since
- creation of the SwipeDelegate, this property will be \c null.
- \row
- \li behindItem
- \li This read-only property holds the item instantiated from the \c behind component.
-
- If \c behind has not been set, or the position hasn't changed since
- creation of the SwipeDelegate, this property will be \c null.
- \row
- \li rightItem
- \li This read-only property holds the item instantiated from the \c right component.
-
- If \c right has not been set, or the position hasn't changed since
- creation of the SwipeDelegate, this property will be \c null.
- \row
- \li transition
- \li This property holds the transition that is applied when a swipe is released,
- or \l swipe.open() or \l swipe.close() is called.
-
- \snippet qtquickcontrols2-swipedelegate-transition.qml 1
-
- This property was added in Qt Quick Controls 2.2.
- \endtable
-
- \sa {Control::}{contentItem}, {Control::}{background}, swipe.open(), swipe.close()
-*/
-QQuickSwipe *QQuickSwipeDelegate::swipe() const
-{
- Q_D(const QQuickSwipeDelegate);
- return const_cast<QQuickSwipe*>(&d->swipe);
-}
-
-QQuickSwipeDelegateAttached *QQuickSwipeDelegate::qmlAttachedProperties(QObject *object)
-{
- return new QQuickSwipeDelegateAttached(object);
-}
-
-static bool isChildOrGrandchildOf(QQuickItem *child, QQuickItem *item)
-{
- return item && (child == item || item->isAncestorOf(child));
-}
-
-bool QQuickSwipeDelegate::childMouseEventFilter(QQuickItem *child, QEvent *event)
-{
- Q_D(QQuickSwipeDelegate);
- // The contentItem is, by default, usually a non-interactive item like Text, and
- // the same applies to the background. This means that simply stacking the left/right/behind
- // items before these items won't allow us to get mouse events when the control is not currently exposed
- // but has been previously. Therefore, we instead call setFiltersChildMouseEvents(true) in the constructor
- // and filter out child events only when the child is the left/right/behind item.
- const QQuickSwipePrivate *swipePrivate = QQuickSwipePrivate::get(&d->swipe);
- if (!isChildOrGrandchildOf(child, swipePrivate->leftItem) && !isChildOrGrandchildOf(child, swipePrivate->behindItem)
- && !isChildOrGrandchildOf(child, swipePrivate->rightItem)) {
- return false;
- }
-
- switch (event->type()) {
- case QEvent::MouseButtonPress: {
- return d->handleMousePressEvent(child, static_cast<QMouseEvent *>(event));
- } case QEvent::MouseMove: {
- return d->handleMouseMoveEvent(child, static_cast<QMouseEvent *>(event));
- } case QEvent::MouseButtonRelease: {
- // Make sure that the control gets release events if it has created child
- // items that are stealing events from it.
- QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
- QQuickItemDelegate::mouseReleaseEvent(mouseEvent);
- return d->handleMouseReleaseEvent(child, mouseEvent);
- } case QEvent::UngrabMouse: {
- // If the mouse was pressed over e.g. rightItem and then dragged down,
- // the ListView would eventually grab the mouse, at which point we must
- // clear the pressed flag so that it doesn't stay pressed after the release.
- Attached *attached = attachedObject(child);
- if (attached)
- attached->setPressed(false);
- return false;
- } default:
- return false;
- }
-}
-
-// We only override this to set positionBeforePress;
-// otherwise, it's the same as the base class implementation.
-void QQuickSwipeDelegate::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickSwipeDelegate);
- QQuickItemDelegate::mousePressEvent(event);
-
- QQuickSwipePrivate *swipePrivate = QQuickSwipePrivate::get(&d->swipe);
- if (!swipePrivate->enabled)
- return;
-
- swipePrivate->positionBeforePress = swipePrivate->position;
- swipePrivate->velocityCalculator.startMeasuring(event->position().toPoint(), event->timestamp());
-
- if (swipePrivate->complete) {
- auto item = d->swipe.rightItem();
- if (item && item->contains(item->mapFromScene(event->scenePosition()))) {
- d->pressedItem = item;
- d->handleMousePressEvent(item, event);
- } else {
- item = d->swipe.leftItem();
- if (item && item->contains(item->mapFromScene(event->scenePosition()))) {
- d->pressedItem = item;
- d->handleMousePressEvent(item, event);
- }
- }
- }
-}
-
-void QQuickSwipeDelegate::mouseMoveEvent(QMouseEvent *event)
-{
- Q_D(QQuickSwipeDelegate);
- if (filtersChildMouseEvents())
- d->handleMouseMoveEvent(this, event);
- else
- QQuickItemDelegate::mouseMoveEvent(event);
- if (d->pressedItem)
- d->handleMouseMoveEvent(d->pressedItem, event);
-}
-
-void QQuickSwipeDelegate::mouseReleaseEvent(QMouseEvent *event)
-{
- Q_D(QQuickSwipeDelegate);
- if (!filtersChildMouseEvents() || !d->handleMouseReleaseEvent(this, event))
- QQuickItemDelegate::mouseReleaseEvent(event);
-
- if (d->pressedItem) {
- if (d->pressedItem->acceptedMouseButtons())
- d->handleMouseReleaseEvent(d->pressedItem, event);
- d->pressedItem = nullptr;
- }
-}
-
-void QQuickSwipeDelegate::mouseUngrabEvent()
-{
- Q_D(QQuickSwipeDelegate);
- setPressed(false);
-
- auto item = d->swipe.rightItem();
- if (item) {
- if (auto control = qmlobject_cast<QQuickControl *>(item))
- QQuickControlPrivate::get(control)->handleUngrab();
- Attached *attached = attachedObject(item);
- if (attached)
- attached->setPressed(false);
- } else {
- item = d->swipe.leftItem();
- if (item) {
- if (auto control = qmlobject_cast<QQuickControl *>(item))
- QQuickControlPrivate::get(control)->handleUngrab();
- Attached *attached = attachedObject(item);
- if (attached)
- attached->setPressed(false);
- }
- }
-
- d->pressedItem = nullptr;
-}
-
-void QQuickSwipeDelegate::touchEvent(QTouchEvent *event)
-{
- // Don't allow QQuickControl accept the touch event, because QQuickSwipeDelegate
- // is still based on synthesized mouse events
- event->ignore();
-}
-
-void QQuickSwipeDelegate::componentComplete()
-{
- Q_D(QQuickSwipeDelegate);
- QQuickItemDelegate::componentComplete();
- QQuickSwipePrivate::get(&d->swipe)->reposition(DontAnimatePosition);
-}
-
-void QQuickSwipeDelegate::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickSwipeDelegate);
- QQuickControl::geometryChange(newGeometry, oldGeometry);
-
- if (isComponentComplete() && !qFuzzyCompare(newGeometry.width(), oldGeometry.width())) {
- QQuickSwipePrivate *swipePrivate = QQuickSwipePrivate::get(&d->swipe);
- swipePrivate->reposition(DontAnimatePosition);
- }
-}
-
-QFont QQuickSwipeDelegate::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::ListView);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickSwipeDelegate::accessibleRole() const
-{
- return QAccessible::ListItem;
-}
-#endif
-
-class QQuickSwipeDelegateAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickSwipeDelegateAttached)
-
-public:
- // True when left/right/behind is non-interactive and is pressed.
- bool pressed = false;
-};
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlattachedsignal QtQuick.Controls::SwipeDelegate::clicked()
-
- This signal can be attached to a non-interactive item declared in
- \c swipe.left, \c swipe.right, or \c swipe.behind, in order to react to
- clicks. Items can only be clicked when \c swipe.complete is \c true.
-
- For interactive controls (such as \l Button) declared in these
- items, use their respective \c clicked() signal instead.
-
- To respond to clicks on the SwipeDelegate itself, use its
- \l {AbstractButton::}{clicked()} signal.
-
- \note See the documentation for \l pressed for information on
- how to use the event-related properties correctly.
-
- \sa pressed
-*/
-
-QQuickSwipeDelegateAttached::QQuickSwipeDelegateAttached(QObject *object)
- : QObject(*(new QQuickSwipeDelegateAttachedPrivate), object)
-{
- QQuickItem *item = qobject_cast<QQuickItem *>(object);
- if (item) {
- // This allows us to be notified when an otherwise non-interactive item
- // is pressed and clicked. The alternative is much more more complex:
- // iterating through children that contain the event pos and finding
- // the first one with an attached object.
- item->setAcceptedMouseButtons(Qt::AllButtons);
- } else {
- qWarning() << "Attached properties of SwipeDelegate must be accessed through an Item";
- }
-}
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlattachedproperty bool QtQuick.Controls::SwipeDelegate::pressed
- \readonly
-
- This property can be attached to a non-interactive item declared in
- \c swipe.left, \c swipe.right, or \c swipe.behind, in order to detect if it
- is pressed. Items can only be pressed when \c swipe.complete is \c true.
-
- For example:
-
- \code
- swipe.right: Label {
- anchors.right: parent.right
- height: parent.height
- text: "Action"
- color: "white"
- padding: 12
- background: Rectangle {
- color: SwipeDelegate.pressed ? Qt.darker("tomato", 1.1) : "tomato"
- }
- }
- \endcode
-
- It is possible to have multiple items which individually receive mouse and
- touch events. For example, to have two actions in the \c swipe.right item,
- use the following code:
-
- \code
- swipe.right: Row {
- anchors.right: parent.right
- height: parent.height
-
- Label {
- id: moveLabel
- text: qsTr("Move")
- color: "white"
- verticalAlignment: Label.AlignVCenter
- padding: 12
- height: parent.height
-
- SwipeDelegate.onClicked: console.log("Moving...")
-
- background: Rectangle {
- color: moveLabel.SwipeDelegate.pressed ? Qt.darker("#ffbf47", 1.1) : "#ffbf47"
- }
- }
- Label {
- id: deleteLabel
- text: qsTr("Delete")
- color: "white"
- verticalAlignment: Label.AlignVCenter
- padding: 12
- height: parent.height
-
- SwipeDelegate.onClicked: console.log("Deleting...")
-
- background: Rectangle {
- color: deleteLabel.SwipeDelegate.pressed ? Qt.darker("tomato", 1.1) : "tomato"
- }
- }
- }
- \endcode
-
- Note how the \c color assignment in each \l {Control::}{background} item
- qualifies the attached property with the \c id of the label. This
- is important; using the attached properties on an item causes that item
- to accept events. Suppose we had left out the \c id in the previous example:
-
- \code
- color: SwipeDelegate.pressed ? Qt.darker("tomato", 1.1) : "tomato"
- \endcode
-
- The \l Rectangle background item is a child of the label, so it naturally
- receives events before it. In practice, this means that the background
- color will change, but the \c onClicked handler in the label will never
- get called.
-
- For interactive controls (such as \l Button) declared in these
- items, use their respective \c pressed property instead.
-
- For presses on the SwipeDelegate itself, use its
- \l {AbstractButton::}{pressed} property.
-
- \sa clicked()
-*/
-bool QQuickSwipeDelegateAttached::isPressed() const
-{
- Q_D(const QQuickSwipeDelegateAttached);
- return d->pressed;
-}
-
-void QQuickSwipeDelegateAttached::setPressed(bool pressed)
-{
- Q_D(QQuickSwipeDelegateAttached);
- if (pressed == d->pressed)
- return;
-
- d->pressed = pressed;
- emit pressedChanged();
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickswipe_p.cpp"
-#include "moc_qquickswipedelegate_p.cpp"
diff --git a/src/quicktemplates2/qquickswipedelegate_p.h b/src/quicktemplates2/qquickswipedelegate_p.h
deleted file mode 100644
index cbf5f4b4..00000000
--- a/src/quicktemplates2/qquickswipedelegate_p.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSWIPEDELEGATE_P_H
-#define QQUICKSWIPEDELEGATE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickitemdelegate_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickSwipe;
-class QQuickSwipeDelegatePrivate;
-class QQuickSwipeDelegateAttached;
-class QQuickSwipeDelegateAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSwipeDelegate : public QQuickItemDelegate
-{
- Q_OBJECT
- Q_PROPERTY(QQuickSwipe *swipe READ swipe CONSTANT FINAL)
- QML_NAMED_ELEMENT(SwipeDelegate)
- QML_ATTACHED(QQuickSwipeDelegateAttached)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickSwipeDelegate(QQuickItem *parent = nullptr);
-
- QQuickSwipe *swipe() const;
-
- enum Side { Left = 1, Right = -1 };
- Q_ENUM(Side)
-
- static QQuickSwipeDelegateAttached *qmlAttachedProperties(QObject *object);
-
-protected:
- bool childMouseEventFilter(QQuickItem *child, QEvent *event) override;
- void mousePressEvent(QMouseEvent *event) override;
- void mouseMoveEvent(QMouseEvent *event) override;
- void mouseReleaseEvent(QMouseEvent *event) override;
- void mouseUngrabEvent() override;
- void touchEvent(QTouchEvent *event) override;
-
- void componentComplete() override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
-
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickSwipeDelegate)
- Q_DECLARE_PRIVATE(QQuickSwipeDelegate)
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSwipeDelegateAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(bool pressed READ isPressed NOTIFY pressedChanged FINAL)
-
-public:
- explicit QQuickSwipeDelegateAttached(QObject *object = nullptr);
-
- bool isPressed() const;
- void setPressed(bool pressed);
-
-Q_SIGNALS:
- void pressedChanged();
- void clicked();
-
-private:
- Q_DISABLE_COPY(QQuickSwipeDelegateAttached)
- Q_DECLARE_PRIVATE(QQuickSwipeDelegateAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickSwipeDelegate)
-QML_DECLARE_TYPEINFO(QQuickSwipeDelegate, QML_HAS_ATTACHED_PROPERTIES)
-Q_DECLARE_METATYPE(QQuickSwipeDelegate::Side)
-
-#endif // QQUICKSWIPEDELEGATE_P_H
diff --git a/src/quicktemplates2/qquickswipedelegate_p_p.h b/src/quicktemplates2/qquickswipedelegate_p_p.h
deleted file mode 100644
index 46e47eb6..00000000
--- a/src/quicktemplates2/qquickswipedelegate_p_p.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSWIPEDELEGATE_P_P_H
-#define QQUICKSWIPEDELEGATE_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickitemdelegate_p_p.h>
-#include <QtQuickTemplates2/private/qquickswipe_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickSwipeDelegate;
-
-class QQuickSwipeDelegatePrivate : public QQuickItemDelegatePrivate
-{
- Q_DECLARE_PUBLIC(QQuickSwipeDelegate)
-
-public:
- QQuickSwipeDelegatePrivate(QQuickSwipeDelegate *control);
-
- bool handleMousePressEvent(QQuickItem *item, QMouseEvent *event);
- bool handleMouseMoveEvent(QQuickItem *item, QMouseEvent *event);
- bool handleMouseReleaseEvent(QQuickItem *item, QMouseEvent *event);
- void forwardMouseEvent(QMouseEvent *event, QQuickItem *destination, QPointF localPos);
- bool attachedObjectsSetPressed(QQuickItem *item, QPointF scenePos, bool pressed, bool cancel = false);
-
- void resizeContent() override;
- void resizeBackground() override;
-
- QPalette defaultPalette() const override;
-
- QQuickSwipe swipe;
- QQuickItem *pressedItem = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKSWIPEDELEGATE_P_P_H
diff --git a/src/quicktemplates2/qquickswipeview.cpp b/src/quicktemplates2/qquickswipeview.cpp
deleted file mode 100644
index b9cc68d2..00000000
--- a/src/quicktemplates2/qquickswipeview.cpp
+++ /dev/null
@@ -1,478 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickswipeview_p.h"
-
-#include <QtQml/qqmlinfo.h>
-#include <QtQuickTemplates2/private/qquickcontainer_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype SwipeView
- \inherits Container
-//! \instantiates QQuickSwipeView
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-navigation
- \ingroup qtquickcontrols2-containers
- \ingroup qtquickcontrols2-focusscopes
- \brief Enables the user to navigate pages by swiping sideways.
-
- SwipeView provides a swipe-based navigation model.
-
- \image qtquickcontrols2-swipeview.gif
-
- SwipeView is populated with a set of pages. One page is visible at a time.
- The user can navigate between the pages by swiping sideways. Notice that
- SwipeView itself is entirely non-visual. It is recommended to combine it
- with PageIndicator, to give the user a visual clue that there are multiple
- pages.
-
- \snippet qtquickcontrols2-swipeview-indicator.qml 1
-
- As shown above, SwipeView is typically populated with a static set of
- pages that are defined inline as children of the view. It is also possible
- to \l {Container::addItem()}{add}, \l {Container::insertItem()}{insert},
- \l {Container::moveItem()}{move}, and \l {Container::removeItem()}{remove}
- pages dynamically at run time.
-
- It is generally not advisable to add excessive amounts of pages to a
- SwipeView. However, when the amount of pages grows larger, or individual
- pages are relatively complex, it may be desirable to free up resources by
- unloading pages that are outside the immediate reach of the user.
- The following example presents how to use \l Loader to keep a maximum of
- three pages simultaneously instantiated.
-
- \code
- SwipeView {
- Repeater {
- model: 6
- Loader {
- active: SwipeView.isCurrentItem || SwipeView.isNextItem || SwipeView.isPreviousItem
- sourceComponent: Text {
- text: index
- Component.onCompleted: console.log("created:", index)
- Component.onDestruction: console.log("destroyed:", index)
- }
- }
- }
- }
- \endcode
-
- \note SwipeView takes over the geometry management of items added to the
- view. Using anchors on the items is not supported, and any \c width
- or \c height assignment will be overridden by the view. Notice that
- this only applies to the root of the item. Specifying width and height,
- or using anchors for its children works as expected.
-
- \sa TabBar, PageIndicator, {Customizing SwipeView}, {Navigation Controls}, {Container Controls},
- {Focus Management in Qt Quick Controls}
-*/
-
-class QQuickSwipeViewPrivate : public QQuickContainerPrivate
-{
- Q_DECLARE_PUBLIC(QQuickSwipeView)
-
-public:
- void resizeItem(QQuickItem *item);
- void resizeItems();
-
- static QQuickSwipeViewPrivate *get(QQuickSwipeView *view);
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- qreal getContentWidth() const override;
- qreal getContentHeight() const override;
-
- bool interactive = true;
- Qt::Orientation orientation = Qt::Horizontal;
-};
-
-class QQuickSwipeViewAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickSwipeViewAttached)
-
-public:
- static QQuickSwipeViewAttachedPrivate *get(QQuickSwipeViewAttached *attached)
- {
- return attached->d_func();
- }
-
- void update(QQuickSwipeView *newView, int newIndex);
- void updateCurrentIndex();
- void setCurrentIndex(int i);
-
- QQuickSwipeView *swipeView = nullptr;
- int index = -1;
- int currentIndex = -1;
-};
-
-void QQuickSwipeViewPrivate::resizeItems()
-{
- Q_Q(QQuickSwipeView);
- const int count = q->count();
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = itemAt(i);
- if (item) {
- QQuickAnchors *anchors = QQuickItemPrivate::get(item)->_anchors;
- // TODO: expose QQuickAnchorLine so we can test for other conflicting anchors
- if (anchors && (anchors->fill() || anchors->centerIn()) && !item->property("_q_QQuickSwipeView_warned").toBool()) {
- qmlWarning(item) << "SwipeView has detected conflicting anchors. Unable to layout the item.";
- item->setProperty("_q_QQuickSwipeView_warned", true);
- }
-
- if (orientation == Qt::Horizontal)
- item->setY(0);
- else
- item->setX(0);
- item->setSize(QSizeF(contentItem->width(), contentItem->height()));
- }
- }
-}
-
-QQuickSwipeViewPrivate *QQuickSwipeViewPrivate::get(QQuickSwipeView *view)
-{
- return view->d_func();
-}
-
-void QQuickSwipeViewPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_Q(QQuickSwipeView);
- QQuickContainerPrivate::itemImplicitWidthChanged(item);
- if (item == q->currentItem())
- updateImplicitContentWidth();
-}
-
-void QQuickSwipeViewPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_Q(QQuickSwipeView);
- QQuickContainerPrivate::itemImplicitHeightChanged(item);
- if (item == q->currentItem())
- updateImplicitContentHeight();
-}
-
-qreal QQuickSwipeViewPrivate::getContentWidth() const
-{
- Q_Q(const QQuickSwipeView);
- QQuickItem *currentItem = q->currentItem();
- return currentItem ? currentItem->implicitWidth() : 0;
-}
-
-qreal QQuickSwipeViewPrivate::getContentHeight() const
-{
- Q_Q(const QQuickSwipeView);
- QQuickItem *currentItem = q->currentItem();
- return currentItem ? currentItem->implicitHeight() : 0;
-}
-
-QQuickSwipeView::QQuickSwipeView(QQuickItem *parent)
- : QQuickContainer(*(new QQuickSwipeViewPrivate), parent)
-{
- Q_D(QQuickSwipeView);
- d->changeTypes |= QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight;
- setFlag(ItemIsFocusScope);
- setActiveFocusOnTab(true);
- QObjectPrivate::connect(this, &QQuickContainer::currentItemChanged, d, &QQuickControlPrivate::updateImplicitContentSize);
-}
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlproperty bool QtQuick.Controls::SwipeView::interactive
-
- This property describes whether the user can interact with the SwipeView.
- The user cannot swipe a view that is not interactive.
-
- The default value is \c true.
-*/
-bool QQuickSwipeView::isInteractive() const
-{
- Q_D(const QQuickSwipeView);
- return d->interactive;
-}
-
-void QQuickSwipeView::setInteractive(bool interactive)
-{
- Q_D(QQuickSwipeView);
- if (d->interactive == interactive)
- return;
-
- d->interactive = interactive;
- emit interactiveChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty enumeration QtQuick.Controls::SwipeView::orientation
-
- This property holds the orientation.
-
- Possible values:
- \value Qt.Horizontal Horizontal (default)
- \value Qt.Vertical Vertical
-
- \sa horizontal, vertical
-*/
-Qt::Orientation QQuickSwipeView::orientation() const
-{
- Q_D(const QQuickSwipeView);
- return d->orientation;
-}
-
-void QQuickSwipeView::setOrientation(Qt::Orientation orientation)
-{
- Q_D(QQuickSwipeView);
- if (d->orientation == orientation)
- return;
-
- d->orientation = orientation;
- if (isComponentComplete())
- d->resizeItems();
- emit orientationChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::SwipeView::horizontal
- \readonly
-
- This property holds whether the swipe view is horizontal.
-
- \sa orientation
-*/
-bool QQuickSwipeView::isHorizontal() const
-{
- Q_D(const QQuickSwipeView);
- return d->orientation == Qt::Horizontal;
-}
-
-/*!
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \qmlproperty bool QtQuick.Controls::SwipeView::vertical
- \readonly
-
- This property holds whether the swipe view is vertical.
-
- \sa orientation
-*/
-bool QQuickSwipeView::isVertical() const
-{
- Q_D(const QQuickSwipeView);
- return d->orientation == Qt::Vertical;
-}
-
-QQuickSwipeViewAttached *QQuickSwipeView::qmlAttachedProperties(QObject *object)
-{
- return new QQuickSwipeViewAttached(object);
-}
-
-void QQuickSwipeView::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickSwipeView);
- QQuickContainer::geometryChange(newGeometry, oldGeometry);
- d->resizeItems();
-}
-
-void QQuickSwipeView::itemAdded(int index, QQuickItem *item)
-{
- Q_D(QQuickSwipeView);
- QQuickItemPrivate::get(item)->setCulled(true); // QTBUG-51078, QTBUG-51669
- if (isComponentComplete())
- item->setSize(QSizeF(d->contentItem->width(), d->contentItem->height()));
- QQuickSwipeViewAttached *attached = qobject_cast<QQuickSwipeViewAttached *>(qmlAttachedPropertiesObject<QQuickSwipeView>(item));
- if (attached)
- QQuickSwipeViewAttachedPrivate::get(attached)->update(this, index);
-}
-
-void QQuickSwipeView::itemMoved(int index, QQuickItem *item)
-{
- QQuickSwipeViewAttached *attached = qobject_cast<QQuickSwipeViewAttached *>(qmlAttachedPropertiesObject<QQuickSwipeView>(item));
- if (attached)
- QQuickSwipeViewAttachedPrivate::get(attached)->update(this, index);
-}
-
-void QQuickSwipeView::itemRemoved(int, QQuickItem *item)
-{
- QQuickSwipeViewAttached *attached = qobject_cast<QQuickSwipeViewAttached *>(qmlAttachedPropertiesObject<QQuickSwipeView>(item));
- if (attached)
- QQuickSwipeViewAttachedPrivate::get(attached)->update(nullptr, -1);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickSwipeView::accessibleRole() const
-{
- return QAccessible::PageTabList;
-}
-#endif
-
-/*!
- \qmlattachedproperty int QtQuick.Controls::SwipeView::index
- \readonly
-
- This attached property holds the index of each child item in the SwipeView.
-
- It is attached to each child item of the SwipeView.
-*/
-
-/*!
- \qmlattachedproperty bool QtQuick.Controls::SwipeView::isCurrentItem
- \readonly
-
- This attached property is \c true if this child is the current item.
-
- It is attached to each child item of the SwipeView.
-*/
-
-/*!
- \qmlattachedproperty bool QtQuick.Controls::SwipeView::isNextItem
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \readonly
-
- This attached property is \c true if this child is the next item.
-
- It is attached to each child item of the SwipeView.
-*/
-
-/*!
- \qmlattachedproperty bool QtQuick.Controls::SwipeView::isPreviousItem
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \readonly
-
- This attached property is \c true if this child is the previous item.
-
- It is attached to each child item of the SwipeView.
-*/
-
-/*!
- \qmlattachedproperty SwipeView QtQuick.Controls::SwipeView::view
- \readonly
-
- This attached property holds the view that manages this child item.
-
- It is attached to each child item of the SwipeView.
-*/
-
-void QQuickSwipeViewAttachedPrivate::updateCurrentIndex()
-{
- setCurrentIndex(swipeView ? swipeView->currentIndex() : -1);
-}
-
-void QQuickSwipeViewAttachedPrivate::setCurrentIndex(int i)
-{
- if (i == currentIndex)
- return;
-
- Q_Q(QQuickSwipeViewAttached);
- const bool wasCurrent = q->isCurrentItem();
- const bool wasNext = q->isNextItem();
- const bool wasPrevious = q->isPreviousItem();
-
- currentIndex = i;
- if (wasCurrent != q->isCurrentItem())
- emit q->isCurrentItemChanged();
- if (wasNext != q->isNextItem())
- emit q->isNextItemChanged();
- if (wasPrevious != q->isPreviousItem())
- emit q->isPreviousItemChanged();
-}
-
-void QQuickSwipeViewAttachedPrivate::update(QQuickSwipeView *newView, int newIndex)
-{
- Q_Q(QQuickSwipeViewAttached);
- int oldIndex = index;
- QQuickSwipeView *oldView = swipeView;
-
- index = newIndex;
- swipeView = newView;
-
- if (oldView != newView) {
- if (oldView) {
- disconnect(oldView, &QQuickSwipeView::currentIndexChanged,
- this, &QQuickSwipeViewAttachedPrivate::updateCurrentIndex);
- }
- if (newView) {
- connect(newView, &QQuickSwipeView::currentIndexChanged,
- this, &QQuickSwipeViewAttachedPrivate::updateCurrentIndex);
- }
- emit q->viewChanged();
- }
- if (oldIndex != newIndex)
- emit q->indexChanged();
-
- updateCurrentIndex();
-}
-
-QQuickSwipeViewAttached::QQuickSwipeViewAttached(QObject *parent)
- : QObject(*(new QQuickSwipeViewAttachedPrivate), parent)
-{
- if (!qobject_cast<QQuickItem *>(parent))
- qmlWarning(parent) << "SwipeView: attached properties must be accessed from within a child item";
-}
-
-int QQuickSwipeViewAttached::index() const
-{
- Q_D(const QQuickSwipeViewAttached);
- return d->index;
-}
-
-bool QQuickSwipeViewAttached::isCurrentItem() const
-{
- Q_D(const QQuickSwipeViewAttached);
- return d->index != -1 && d->currentIndex != -1 && d->index == d->currentIndex;
-}
-
-QQuickSwipeView *QQuickSwipeViewAttached::view() const
-{
- Q_D(const QQuickSwipeViewAttached);
- return d->swipeView;
-}
-
-bool QQuickSwipeViewAttached::isNextItem() const
-{
- Q_D(const QQuickSwipeViewAttached);
- return d->index != -1 && d->currentIndex != -1 && d->index == d->currentIndex + 1;
-}
-
-bool QQuickSwipeViewAttached::isPreviousItem() const
-{
- Q_D(const QQuickSwipeViewAttached);
- return d->index != -1 && d->currentIndex != -1 && d->index == d->currentIndex - 1;
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquickswipeview_p.cpp"
diff --git a/src/quicktemplates2/qquickswipeview_p.h b/src/quicktemplates2/qquickswipeview_p.h
deleted file mode 100644
index 8a09a37e..00000000
--- a/src/quicktemplates2/qquickswipeview_p.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSWIPEVIEW_P_H
-#define QQUICKSWIPEVIEW_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontainer_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickSwipeViewAttached;
-class QQuickSwipeViewPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSwipeView : public QQuickContainer
-{
- Q_OBJECT
- // 2.1 (Qt 5.8)
- Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive NOTIFY interactiveChanged FINAL REVISION(2, 1))
- // 2.2 (Qt 5.9)
- Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged FINAL REVISION(2, 2))
- // 2.3 (Qt 5.10)
- Q_PROPERTY(bool horizontal READ isHorizontal NOTIFY orientationChanged FINAL REVISION(2, 3))
- Q_PROPERTY(bool vertical READ isVertical NOTIFY orientationChanged FINAL REVISION(2, 3))
- QML_NAMED_ELEMENT(SwipeView)
- QML_ATTACHED(QQuickSwipeViewAttached)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickSwipeView(QQuickItem *parent = nullptr);
-
- static QQuickSwipeViewAttached *qmlAttachedProperties(QObject *object);
-
- // 2.1 (Qt 5.8)
- bool isInteractive() const;
- void setInteractive(bool interactive);
-
- // 2.2 (Qt 5.9)
- Qt::Orientation orientation() const;
- void setOrientation(Qt::Orientation orientation);
-
- // 2.3 (Qt 5.10)
- bool isHorizontal() const;
- bool isVertical() const;
-
-Q_SIGNALS:
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) void interactiveChanged();
- // 2.2 (Qt 5.9)
- Q_REVISION(2, 2) void orientationChanged();
-
-protected:
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- void itemAdded(int index, QQuickItem *item) override;
- void itemMoved(int index, QQuickItem *item) override;
- void itemRemoved(int index, QQuickItem *item) override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickSwipeView)
- Q_DECLARE_PRIVATE(QQuickSwipeView)
-};
-
-class QQuickSwipeViewAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSwipeViewAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(int index READ index NOTIFY indexChanged FINAL)
- Q_PROPERTY(bool isCurrentItem READ isCurrentItem NOTIFY isCurrentItemChanged FINAL)
- Q_PROPERTY(QQuickSwipeView *view READ view NOTIFY viewChanged FINAL)
- // 2.1 (Qt 5.8)
- Q_PROPERTY(bool isNextItem READ isNextItem NOTIFY isNextItemChanged FINAL REVISION(2, 1))
- Q_PROPERTY(bool isPreviousItem READ isPreviousItem NOTIFY isPreviousItemChanged FINAL REVISION(2, 1))
-
-public:
- explicit QQuickSwipeViewAttached(QObject *parent = nullptr);
-
- int index() const;
- bool isCurrentItem() const;
- QQuickSwipeView *view() const;
-
- // 2.1 (Qt 5.8)
- bool isNextItem() const;
- bool isPreviousItem() const;
-
-Q_SIGNALS:
- void indexChanged();
- void isCurrentItemChanged();
- void viewChanged();
- // 2.1 (Qt 5.8)
- /*Q_REVISION(2, 1)*/ void isNextItemChanged();
- /*Q_REVISION(2, 1)*/ void isPreviousItemChanged();
-
-private:
- Q_DISABLE_COPY(QQuickSwipeViewAttached)
- Q_DECLARE_PRIVATE(QQuickSwipeViewAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickSwipeView)
-QML_DECLARE_TYPEINFO(QQuickSwipeView, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKSWIPEVIEW_P_H
diff --git a/src/quicktemplates2/qquickswitch.cpp b/src/quicktemplates2/qquickswitch.cpp
deleted file mode 100644
index e9fef6c8..00000000
--- a/src/quicktemplates2/qquickswitch.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickswitch_p.h"
-#include "qquickabstractbutton_p_p.h"
-
-#include <QtGui/qstylehints.h>
-#include <QtGui/qguiapplication.h>
-#include <QtQuick/private/qquickwindow_p.h>
-#include <QtQuick/private/qquickevents_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype Switch
- \inherits AbstractButton
-//! \instantiates QQuickSwitch
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-buttons
- \brief Switch button that can be toggled on or off.
-
- \image qtquickcontrols2-switch.gif
-
- Switch is an option button that can be dragged or toggled on (checked) or
- off (unchecked). Switches are typically used to select between two states.
- For larger sets of options, such as those in a list, consider using
- \l SwitchDelegate instead.
-
- Switch inherits its API from \l AbstractButton. For instance, the state
- of the switch can be set with the \l {AbstractButton::}{checked} property.
-
- \code
- ColumnLayout {
- Switch {
- text: qsTr("Wi-Fi")
- }
- Switch {
- text: qsTr("Bluetooth")
- }
- }
- \endcode
-
- \sa {Customizing Switch}, {Button Controls}
-*/
-
-class QQuickSwitchPrivate : public QQuickAbstractButtonPrivate
-{
- Q_DECLARE_PUBLIC(QQuickSwitch)
-
-public:
- qreal positionAt(const QPointF &point) const;
-
- bool canDrag(const QPointF &movePoint) const;
- void handleMove(const QPointF &point, ulong timestamp) override;
- void handleRelease(const QPointF &point, ulong timestamp) override;
-
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::Switch); }
-
- qreal position = 0;
-};
-
-qreal QQuickSwitchPrivate::positionAt(const QPointF &point) const
-{
- Q_Q(const QQuickSwitch);
- qreal pos = 0.0;
- if (indicator)
- pos = indicator->mapFromItem(q, point).x() / indicator->width();
- if (q->isMirrored())
- return 1.0 - pos;
- return pos;
-}
-
-bool QQuickSwitchPrivate::canDrag(const QPointF &movePoint) const
-{
- // don't start dragging the handle unless the initial press was at the indicator,
- // or the drag has reached the indicator area. this prevents unnatural jumps when
- // dragging far outside the indicator.
- const qreal pressPos = positionAt(pressPoint);
- const qreal movePos = positionAt(movePoint);
- return (pressPos >= 0.0 && pressPos <= 1.0) || (movePos >= 0.0 && movePos <= 1.0);
-}
-
-void QQuickSwitchPrivate::handleMove(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSwitch);
- QQuickAbstractButtonPrivate::handleMove(point, timestamp);
- if (q->keepMouseGrab() || q->keepTouchGrab())
- q->setPosition(positionAt(point));
-}
-
-void QQuickSwitchPrivate::handleRelease(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSwitch);
- QQuickAbstractButtonPrivate::handleRelease(point, timestamp);
- q->setKeepMouseGrab(false);
- q->setKeepTouchGrab(false);
-}
-
-QQuickSwitch::QQuickSwitch(QQuickItem *parent)
- : QQuickAbstractButton(*(new QQuickSwitchPrivate), parent)
-{
- Q_D(QQuickSwitch);
- d->keepPressed = true;
- setCheckable(true);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Switch::position
- \readonly
-
- \input includes/qquickswitch.qdocinc position
-*/
-qreal QQuickSwitch::position() const
-{
- Q_D(const QQuickSwitch);
- return d->position;
-}
-
-void QQuickSwitch::setPosition(qreal position)
-{
- Q_D(QQuickSwitch);
- position = qBound<qreal>(0.0, position, 1.0);
- if (qFuzzyCompare(d->position, position))
- return;
-
- d->position = position;
- emit positionChanged();
- emit visualPositionChanged();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Switch::visualPosition
- \readonly
-
- \input includes/qquickswitch.qdocinc visualPosition
-*/
-qreal QQuickSwitch::visualPosition() const
-{
- Q_D(const QQuickSwitch);
- if (isMirrored())
- return 1.0 - d->position;
- return d->position;
-}
-
-void QQuickSwitch::mouseMoveEvent(QMouseEvent *event)
-{
- Q_D(QQuickSwitch);
- if (!keepMouseGrab()) {
- const QPointF movePoint = event->position();
- if (d->canDrag(movePoint))
- setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(movePoint.x() - d->pressPoint.x(), Qt::XAxis, event));
- }
- QQuickAbstractButton::mouseMoveEvent(event);
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickSwitch::touchEvent(QTouchEvent *event)
-{
- Q_D(QQuickSwitch);
- if (!keepTouchGrab() && event->type() == QEvent::TouchUpdate) {
- for (const QTouchEvent::TouchPoint &point : event->points()) {
- if (point.id() != d->touchId || point.state() != QEventPoint::Updated)
- continue;
- if (d->canDrag(point.position()))
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().x() - d->pressPoint.x(), Qt::XAxis, &point));
- }
- }
- QQuickAbstractButton::touchEvent(event);
-}
-#endif
-
-void QQuickSwitch::mirrorChange()
-{
- QQuickAbstractButton::mirrorChange();
- emit visualPositionChanged();
-}
-
-void QQuickSwitch::nextCheckState()
-{
- Q_D(QQuickSwitch);
- if (keepMouseGrab() || keepTouchGrab()) {
- d->toggle(d->position > 0.5);
- // the checked state might not change => force a position update to
- // avoid that the handle is left somewhere in the middle (QTBUG-57944)
- setPosition(d->checked ? 1.0 : 0.0);
- } else {
- QQuickAbstractButton::nextCheckState();
- }
-}
-
-void QQuickSwitch::buttonChange(ButtonChange change)
-{
- Q_D(QQuickSwitch);
- if (change == ButtonCheckedChange)
- setPosition(d->checked ? 1.0 : 0.0);
- else
- QQuickAbstractButton::buttonChange(change);
-}
-
-QFont QQuickSwitch::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::Switch);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickswitch_p.h b/src/quicktemplates2/qquickswitch_p.h
deleted file mode 100644
index b3df0299..00000000
--- a/src/quicktemplates2/qquickswitch_p.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSWITCH_P_H
-#define QQUICKSWITCH_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickSwitchPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSwitch : public QQuickAbstractButton
-{
- Q_OBJECT
- Q_PROPERTY(qreal position READ position WRITE setPosition NOTIFY positionChanged FINAL)
- Q_PROPERTY(qreal visualPosition READ visualPosition NOTIFY visualPositionChanged FINAL)
- QML_NAMED_ELEMENT(Switch)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickSwitch(QQuickItem *parent = nullptr);
-
- qreal position() const;
- void setPosition(qreal position);
-
- qreal visualPosition() const;
-
-Q_SIGNALS:
- void positionChanged();
- void visualPositionChanged();
-
-protected:
- void mouseMoveEvent(QMouseEvent *event) override;
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
-#endif
-
- void mirrorChange() override;
-
- void nextCheckState() override;
- void buttonChange(ButtonChange change) override;
-
- QFont defaultFont() const override;
-
-private:
- Q_DISABLE_COPY(QQuickSwitch)
- Q_DECLARE_PRIVATE(QQuickSwitch)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickSwitch)
-
-#endif // QQUICKSWITCH_P_H
diff --git a/src/quicktemplates2/qquickswitchdelegate.cpp b/src/quicktemplates2/qquickswitchdelegate.cpp
deleted file mode 100644
index e0f1636c..00000000
--- a/src/quicktemplates2/qquickswitchdelegate.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickswitchdelegate_p.h"
-
-#include "qquickitemdelegate_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype SwitchDelegate
- \inherits ItemDelegate
-//! \instantiates QQuickSwitchDelegate
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-delegates
- \brief Item delegate with a switch indicator that can be toggled on or off.
-
- \image qtquickcontrols2-switchdelegate.gif
-
- SwitchDelegate presents an item delegate that can be toggled on (checked) or
- off (unchecked). Switch delegates are typically used to select one or more
- options from a set of options. For smaller sets of options, or for options
- that need to be uniquely identifiable, consider using \l Switch instead.
-
- SwitchDelegate inherits its API from \l ItemDelegate, which is inherited
- from \l AbstractButton. For instance, you can set \l {AbstractButton::text}{text},
- and react to \l {AbstractButton::clicked}{clicks} using the \l AbstractButton
- API. The state of the switch delegate can be set with the
- \l {AbstractButton::}{checked} property.
-
- \code
- ListView {
- model: ["Option 1", "Option 2", "Option 3"]
- delegate: SwitchDelegate {
- text: modelData
- }
- }
- \endcode
-
- \sa {Customizing SwitchDelegate}, {Delegate Controls}
-*/
-
-class QQuickSwitchDelegatePrivate : public QQuickItemDelegatePrivate
-{
- Q_DECLARE_PUBLIC(QQuickSwitchDelegate)
-
-public:
- qreal positionAt(const QPointF &point) const;
-
- bool canDrag(const QPointF &movePoint) const;
- void handleMove(const QPointF &point, ulong timestamp) override;
- void handleRelease(const QPointF &point, ulong timestamp) override;
-
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::ListView); }
-
- qreal position = 0;
-};
-
-qreal QQuickSwitchDelegatePrivate::positionAt(const QPointF &point) const
-{
- Q_Q(const QQuickSwitchDelegate);
- qreal pos = 0.0;
- if (indicator)
- pos = indicator->mapFromItem(q, point).x() / indicator->width();
- if (q->isMirrored())
- return 1.0 - pos;
- return pos;
-}
-
-bool QQuickSwitchDelegatePrivate::canDrag(const QPointF &movePoint) const
-{
- // don't start dragging the handle unless the initial press was at the indicator,
- // or the drag has reached the indicator area. this prevents unnatural jumps when
- // dragging far outside the indicator.
- const qreal pressPos = positionAt(pressPoint);
- const qreal movePos = positionAt(movePoint);
- return (pressPos >= 0.0 && pressPos <= 1.0) || (movePos >= 0.0 && movePos <= 1.0);
-}
-
-void QQuickSwitchDelegatePrivate::handleMove(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSwitchDelegate);
- QQuickItemDelegatePrivate::handleMove(point, timestamp);
- if (q->keepMouseGrab() || q->keepTouchGrab())
- q->setPosition(positionAt(point));
-}
-
-void QQuickSwitchDelegatePrivate::handleRelease(const QPointF &point, ulong timestamp)
-{
- Q_Q(QQuickSwitchDelegate);
- QQuickItemDelegatePrivate::handleRelease(point, timestamp);
- q->setKeepMouseGrab(false);
- q->setKeepTouchGrab(false);
-}
-
-QQuickSwitchDelegate::QQuickSwitchDelegate(QQuickItem *parent)
- : QQuickItemDelegate(*(new QQuickSwitchDelegatePrivate), parent)
-{
- Q_D(QQuickSwitchDelegate);
- d->keepPressed = true;
- setCheckable(true);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::SwitchDelegate::position
- \readonly
-
- \input includes/qquickswitch.qdocinc position
-*/
-qreal QQuickSwitchDelegate::position() const
-{
- Q_D(const QQuickSwitchDelegate);
- return d->position;
-}
-
-void QQuickSwitchDelegate::setPosition(qreal position)
-{
- Q_D(QQuickSwitchDelegate);
- position = qBound<qreal>(0.0, position, 1.0);
- if (qFuzzyCompare(d->position, position))
- return;
-
- d->position = position;
- emit positionChanged();
- emit visualPositionChanged();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::SwitchDelegate::visualPosition
- \readonly
-
- \input includes/qquickswitch.qdocinc visualPosition
-*/
-qreal QQuickSwitchDelegate::visualPosition() const
-{
- Q_D(const QQuickSwitchDelegate);
- if (isMirrored())
- return 1.0 - d->position;
- return d->position;
-}
-
-void QQuickSwitchDelegate::mouseMoveEvent(QMouseEvent *event)
-{
- Q_D(QQuickSwitchDelegate);
- if (!keepMouseGrab()) {
- const QPointF movePoint = event->position();
- if (d->canDrag(movePoint))
- setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(movePoint.x() - d->pressPoint.x(), Qt::XAxis, event));
- }
- QQuickItemDelegate::mouseMoveEvent(event);
-}
-
-#if QT_CONFIG(quicktemplates2_multitouch)
-void QQuickSwitchDelegate::touchEvent(QTouchEvent *event)
-{
- Q_D(QQuickSwitchDelegate);
- if (!keepTouchGrab() && event->type() == QEvent::TouchUpdate) {
- for (const QTouchEvent::TouchPoint &point : event->points()) {
- if (point.id() != d->touchId || point.state() != QEventPoint::Updated)
- continue;
- if (d->canDrag(point.position()))
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().x() - d->pressPoint.x(), Qt::XAxis, &point));
- }
- }
- QQuickItemDelegate::touchEvent(event);
-}
-#endif
-
-QFont QQuickSwitchDelegate::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::ListView);
-}
-
-void QQuickSwitchDelegate::mirrorChange()
-{
- QQuickItemDelegate::mirrorChange();
- emit visualPositionChanged();
-}
-
-void QQuickSwitchDelegate::nextCheckState()
-{
- Q_D(QQuickSwitchDelegate);
- if (keepMouseGrab() || keepTouchGrab()) {
- d->toggle(d->position > 0.5);
- // the checked state might not change => force a position update to
- // avoid that the handle is left somewhere in the middle (QTBUG-57944)
- setPosition(d->checked ? 1.0 : 0.0);
- } else {
- QQuickItemDelegate::nextCheckState();
- }
-}
-
-void QQuickSwitchDelegate::buttonChange(ButtonChange change)
-{
- Q_D(QQuickSwitchDelegate);
- if (change == ButtonCheckedChange)
- setPosition(d->checked ? 1.0 : 0.0);
- else
- QQuickAbstractButton::buttonChange(change);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickswitchdelegate_p.h b/src/quicktemplates2/qquickswitchdelegate_p.h
deleted file mode 100644
index a2eb6f62..00000000
--- a/src/quicktemplates2/qquickswitchdelegate_p.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKSWITCHDELEGATE_P_H
-#define QQUICKSWITCHDELEGATE_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickitemdelegate_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickSwitchDelegatePrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickSwitchDelegate : public QQuickItemDelegate
-{
- Q_OBJECT
- Q_PROPERTY(qreal position READ position WRITE setPosition NOTIFY positionChanged FINAL)
- Q_PROPERTY(qreal visualPosition READ visualPosition NOTIFY visualPositionChanged FINAL)
- QML_NAMED_ELEMENT(SwitchDelegate)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickSwitchDelegate(QQuickItem *parent = nullptr);
-
- qreal position() const;
- void setPosition(qreal position);
-
- qreal visualPosition() const;
-
-Q_SIGNALS:
- void positionChanged();
- void visualPositionChanged();
-
-protected:
- void mouseMoveEvent(QMouseEvent *event) override;
-#if QT_CONFIG(quicktemplates2_multitouch)
- void touchEvent(QTouchEvent *event) override;
-#endif
-
- QFont defaultFont() const override;
-
- void mirrorChange() override;
-
- void nextCheckState() override;
- void buttonChange(ButtonChange change) override;
-
-private:
- Q_DISABLE_COPY(QQuickSwitchDelegate)
- Q_DECLARE_PRIVATE(QQuickSwitchDelegate)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickSwitchDelegate)
-
-#endif // QQUICKSWITCHDELEGATE_P_H
diff --git a/src/quicktemplates2/qquicktabbar.cpp b/src/quicktemplates2/qquicktabbar.cpp
deleted file mode 100644
index f8810581..00000000
--- a/src/quicktemplates2/qquicktabbar.cpp
+++ /dev/null
@@ -1,481 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktabbar_p.h"
-#include "qquicktabbutton_p.h"
-#include "qquickcontainer_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype TabBar
- \inherits Container
-//! \instantiates QQuickTabBar
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-navigation
- \ingroup qtquickcontrols2-containers
- \ingroup qtquickcontrols2-focusscopes
- \brief Allows the user to switch between different views or subtasks.
-
- TabBar provides a tab-based navigation model.
-
- \image qtquickcontrols2-tabbar-wireframe.png
-
- TabBar is populated with TabButton controls, and can be used together with
- any layout or container control that provides \c currentIndex -property,
- such as \l StackLayout or \l SwipeView
-
- \snippet qtquickcontrols2-tabbar.qml 1
-
- As shown above, TabBar is typically populated with a static set of tab buttons
- that are defined inline as children of the tab bar. It is also possible to
- \l {Container::addItem()}{add}, \l {Container::insertItem()}{insert},
- \l {Container::moveItem()}{move}, and \l {Container::removeItem()}{remove}
- items dynamically at run time. The items can be accessed using
- \l {Container::}{itemAt()} or \l {Container::}{contentChildren}.
-
- \section2 Resizing Tabs
-
- By default, TabBar resizes its buttons to fit the width of the control.
- The available space is distributed equally to each button. The default
- resizing behavior can be overridden by setting an explicit width for the
- buttons.
-
- The following example illustrates how to keep each tab button at their
- implicit size instead of being resized to fit the tabbar:
-
- \borderedimage qtquickcontrols2-tabbar-explicit.png
-
- \snippet qtquickcontrols2-tabbar-explicit.qml 1
-
- \section2 Flickable Tabs
-
- If the total width of the buttons exceeds the available width of the tab bar,
- it automatically becomes flickable.
-
- \image qtquickcontrols2-tabbar-flickable.png
-
- \snippet qtquickcontrols2-tabbar-flickable.qml 1
-
- \sa TabButton, {Customizing TabBar}, {Navigation Controls}, {Container Controls},
- {Focus Management in Qt Quick Controls}
-*/
-
-class QQuickTabBarPrivate : public QQuickContainerPrivate
-{
- Q_DECLARE_PUBLIC(QQuickTabBar)
-
-public:
- void updateCurrentItem();
- void updateCurrentIndex();
- void updateLayout();
-
- qreal getContentWidth() const override;
- qreal getContentHeight() const override;
-
- void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override;
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
-
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::TabBar); }
-
- bool updatingLayout = false;
- QQuickTabBar::Position position = QQuickTabBar::Header;
-};
-
-class QQuickTabBarAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickTabBarAttached)
-
-public:
- static QQuickTabBarAttachedPrivate *get(QQuickTabBarAttached *attached)
- {
- return attached->d_func();
- }
-
- void update(QQuickTabBar *tabBar, int index);
-
- int index = -1;
- QQuickTabBar *tabBar = nullptr;
-};
-
-void QQuickTabBarPrivate::updateCurrentItem()
-{
- QQuickTabButton *button = qobject_cast<QQuickTabButton *>(contentModel->get(currentIndex));
- if (button)
- button->setChecked(true);
-}
-
-void QQuickTabBarPrivate::updateCurrentIndex()
-{
- Q_Q(QQuickTabBar);
- QQuickTabButton *button = qobject_cast<QQuickTabButton *>(q->sender());
- if (button && button->isChecked())
- q->setCurrentIndex(contentModel->indexOf(button, nullptr));
-}
-
-void QQuickTabBarPrivate::updateLayout()
-{
- Q_Q(QQuickTabBar);
- const int count = contentModel->count();
- if (count <= 0 || !contentItem)
- return;
-
- qreal reservedWidth = 0;
- int resizableCount = 0;
-
- QList<QQuickItem *> allItems;
- allItems.reserve(count);
-
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = q->itemAt(i);
- if (item) {
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- if (!p->widthValid())
- ++resizableCount;
- else
- reservedWidth += item->width();
- allItems += item;
- }
- }
-
- const qreal totalSpacing = qMax(0, count - 1) * spacing;
- const qreal itemWidth = (contentItem->width() - reservedWidth - totalSpacing) / qMax(1, resizableCount);
-
- updatingLayout = true;
- for (QQuickItem *item : qAsConst(allItems)) {
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- if (!p->widthValid()) {
- item->setWidth(itemWidth);
- p->widthValidFlag = false;
- }
- if (!p->heightValid()) {
- item->setHeight(contentHeight);
- p->heightValidFlag = false;
- } else {
- item->setY((contentHeight - item->height()) / 2);
- }
- }
- updatingLayout = false;
-}
-
-qreal QQuickTabBarPrivate::getContentWidth() const
-{
- Q_Q(const QQuickTabBar);
- const int count = contentModel->count();
- qreal totalWidth = qMax(0, count - 1) * spacing;
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = q->itemAt(i);
- if (item) {
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- if (!p->widthValid())
- totalWidth += item->implicitWidth();
- else
- totalWidth += item->width();
- }
- }
- return totalWidth;
-}
-
-qreal QQuickTabBarPrivate::getContentHeight() const
-{
- Q_Q(const QQuickTabBar);
- const int count = contentModel->count();
- qreal maxHeight = 0;
- for (int i = 0; i < count; ++i) {
- QQuickItem *item = q->itemAt(i);
- if (item)
- maxHeight = qMax(maxHeight, item->implicitHeight());
- }
- return maxHeight;
-}
-
-void QQuickTabBarPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff)
-{
- QQuickContainerPrivate::itemGeometryChanged(item, change, diff);
- if (!updatingLayout) {
- if (change.sizeChange())
- updateImplicitContentSize();
- updateLayout();
- }
-}
-
-void QQuickTabBarPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- QQuickContainerPrivate::itemImplicitWidthChanged(item);
- if (item != contentItem)
- updateImplicitContentWidth();
-}
-
-void QQuickTabBarPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- QQuickContainerPrivate::itemImplicitHeightChanged(item);
- if (item != contentItem)
- updateImplicitContentHeight();
-}
-
-QQuickTabBar::QQuickTabBar(QQuickItem *parent)
- : QQuickContainer(*(new QQuickTabBarPrivate), parent)
-{
- Q_D(QQuickTabBar);
- d->changeTypes |= QQuickItemPrivate::Geometry | QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight;
- setFlag(ItemIsFocusScope);
- QObjectPrivate::connect(this, &QQuickTabBar::currentIndexChanged, d, &QQuickTabBarPrivate::updateCurrentItem);
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::TabBar::position
-
- This property holds the position of the tab bar.
-
- \note If the tab bar is assigned as a header or footer of \l ApplicationWindow
- or \l Page, the appropriate position is set automatically.
-
- Possible values:
- \value TabBar.Header The tab bar is at the top, as a window or page header.
- \value TabBar.Footer The tab bar is at the bottom, as a window or page footer.
-
- The default value is style-specific.
-
- \sa ApplicationWindow::header, ApplicationWindow::footer, Page::header, Page::footer
-*/
-QQuickTabBar::Position QQuickTabBar::position() const
-{
- Q_D(const QQuickTabBar);
- return d->position;
-}
-
-void QQuickTabBar::setPosition(Position position)
-{
- Q_D(QQuickTabBar);
- if (d->position == position)
- return;
-
- d->position = position;
- emit positionChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty real QtQuick.Controls::TabBar::contentWidth
-
- This property holds the content width. It is used for calculating the total
- implicit width of the tab bar.
-
- \note This property is available in TabBar since QtQuick.Controls 2.2 (Qt 5.9),
- but it was promoted to the Container base type in QtQuick.Controls 2.5 (Qt 5.12).
-
- \sa Container::contentWidth
-*/
-
-/*!
- \since QtQuick.Controls 2.2 (Qt 5.9)
- \qmlproperty real QtQuick.Controls::TabBar::contentHeight
-
- This property holds the content height. It is used for calculating the total
- implicit height of the tab bar.
-
- \note This property is available in TabBar since QtQuick.Controls 2.2 (Qt 5.9),
- but it was promoted to the Container base type in QtQuick.Controls 2.5 (Qt 5.12).
-
- \sa Container::contentHeight
-*/
-
-QQuickTabBarAttached *QQuickTabBar::qmlAttachedProperties(QObject *object)
-{
- return new QQuickTabBarAttached(object);
-}
-
-void QQuickTabBar::updatePolish()
-{
- Q_D(QQuickTabBar);
- QQuickContainer::updatePolish();
- d->updateLayout();
-}
-
-void QQuickTabBar::componentComplete()
-{
- Q_D(QQuickTabBar);
- QQuickContainer::componentComplete();
- d->updateCurrentItem();
- d->updateLayout();
-}
-
-void QQuickTabBar::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickTabBar);
- QQuickContainer::geometryChange(newGeometry, oldGeometry);
- d->updateLayout();
-}
-
-bool QQuickTabBar::isContent(QQuickItem *item) const
-{
- return qobject_cast<QQuickTabButton *>(item);
-}
-
-void QQuickTabBar::itemAdded(int index, QQuickItem *item)
-{
- Q_D(QQuickTabBar);
- Q_UNUSED(index);
- QQuickItemPrivate::get(item)->setCulled(true); // QTBUG-55129
- if (QQuickTabButton *button = qobject_cast<QQuickTabButton *>(item))
- QObjectPrivate::connect(button, &QQuickTabButton::checkedChanged, d, &QQuickTabBarPrivate::updateCurrentIndex);
- QQuickTabBarAttached *attached = qobject_cast<QQuickTabBarAttached *>(qmlAttachedPropertiesObject<QQuickTabBar>(item));
- if (attached)
- QQuickTabBarAttachedPrivate::get(attached)->update(this, index);
- d->updateImplicitContentSize();
- if (isComponentComplete())
- polish();
-}
-
-void QQuickTabBar::itemMoved(int index, QQuickItem *item)
-{
- QQuickTabBarAttached *attached = qobject_cast<QQuickTabBarAttached *>(qmlAttachedPropertiesObject<QQuickTabBar>(item));
- if (attached)
- QQuickTabBarAttachedPrivate::get(attached)->update(this, index);
-}
-
-void QQuickTabBar::itemRemoved(int index, QQuickItem *item)
-{
- Q_D(QQuickTabBar);
- Q_UNUSED(index);
- if (QQuickTabButton *button = qobject_cast<QQuickTabButton *>(item))
- QObjectPrivate::disconnect(button, &QQuickTabButton::checkedChanged, d, &QQuickTabBarPrivate::updateCurrentIndex);
- QQuickTabBarAttached *attached = qobject_cast<QQuickTabBarAttached *>(qmlAttachedPropertiesObject<QQuickTabBar>(item));
- if (attached)
- QQuickTabBarAttachedPrivate::get(attached)->update(nullptr, -1);
- d->updateImplicitContentSize();
- if (isComponentComplete())
- polish();
-}
-
-QFont QQuickTabBar::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::TabBar);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickTabBar::accessibleRole() const
-{
- return QAccessible::PageTabList;
-}
-#endif
-
-/*!
- \qmlattachedproperty int QtQuick.Controls::TabBar::index
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \readonly
-
- This attached property holds the index of each tab button in the TabBar.
-
- It is attached to each tab button of the TabBar.
-*/
-
-/*!
- \qmlattachedproperty TabBar QtQuick.Controls::TabBar::tabBar
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \readonly
-
- This attached property holds the tab bar that manages this tab button.
-
- It is attached to each tab button of the TabBar.
-*/
-
-/*!
- \qmlattachedproperty enumeration QtQuick.Controls::TabBar::position
- \since QtQuick.Controls 2.3 (Qt 5.10)
- \readonly
-
- This attached property holds the position of the tab bar.
-
- It is attached to each tab button of the TabBar.
-
- Possible values:
- \value TabBar.Header The tab bar is at the top, as a window or page header.
- \value TabBar.Footer The tab bar is at the bottom, as a window or page footer.
-*/
-
-void QQuickTabBarAttachedPrivate::update(QQuickTabBar *newTabBar, int newIndex)
-{
- Q_Q(QQuickTabBarAttached);
- const int oldIndex = index;
- const QQuickTabBar *oldTabBar = tabBar;
- const QQuickTabBar::Position oldPos = q->position();
-
- index = newIndex;
- tabBar = newTabBar;
-
- if (oldTabBar != newTabBar) {
- if (oldTabBar)
- QObject::disconnect(oldTabBar, &QQuickTabBar::positionChanged, q, &QQuickTabBarAttached::positionChanged);
- if (newTabBar)
- QObject::connect(newTabBar, &QQuickTabBar::positionChanged, q, &QQuickTabBarAttached::positionChanged);
- emit q->tabBarChanged();
- }
-
- if (oldIndex != newIndex)
- emit q->indexChanged();
- if (oldPos != q->position())
- emit q->positionChanged();
-}
-
-QQuickTabBarAttached::QQuickTabBarAttached(QObject *parent)
- : QObject(*(new QQuickTabBarAttachedPrivate), parent)
-{
-}
-
-int QQuickTabBarAttached::index() const
-{
- Q_D(const QQuickTabBarAttached);
- return d->index;
-}
-
-QQuickTabBar *QQuickTabBarAttached::tabBar() const
-{
- Q_D(const QQuickTabBarAttached);
- return d->tabBar;
-}
-
-QQuickTabBar::Position QQuickTabBarAttached::position() const
-{
- Q_D(const QQuickTabBarAttached);
- if (!d->tabBar)
- return QQuickTabBar::Header;
- return d->tabBar->position();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktabbar_p.h b/src/quicktemplates2/qquicktabbar_p.h
deleted file mode 100644
index 755fdd8f..00000000
--- a/src/quicktemplates2/qquicktabbar_p.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTABBAR_P_H
-#define QQUICKTABBAR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontainer_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTabBarPrivate;
-class QQuickTabBarAttached;
-class QQuickTabBarAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTabBar : public QQuickContainer
-{
- Q_OBJECT
- Q_PROPERTY(Position position READ position WRITE setPosition NOTIFY positionChanged FINAL)
- QML_NAMED_ELEMENT(TabBar)
- QML_ATTACHED(QQuickTabBarAttached)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickTabBar(QQuickItem *parent = nullptr);
-
- enum Position {
- Header,
- Footer
- };
- Q_ENUM(Position)
-
- Position position() const;
- void setPosition(Position position);
-
- static QQuickTabBarAttached *qmlAttachedProperties(QObject *object);
-
-Q_SIGNALS:
- void positionChanged();
-
-protected:
- void updatePolish() override;
- void componentComplete() override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- bool isContent(QQuickItem *item) const override;
- void itemAdded(int index, QQuickItem *item) override;
- void itemMoved(int index, QQuickItem *item) override;
- void itemRemoved(int index, QQuickItem *item) override;
-
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickTabBar)
- Q_DECLARE_PRIVATE(QQuickTabBar)
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTabBarAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(int index READ index NOTIFY indexChanged FINAL)
- Q_PROPERTY(QQuickTabBar *tabBar READ tabBar NOTIFY tabBarChanged FINAL)
- Q_PROPERTY(QQuickTabBar::Position position READ position NOTIFY positionChanged FINAL)
-
-public:
- explicit QQuickTabBarAttached(QObject *parent = nullptr);
-
- int index() const;
- QQuickTabBar *tabBar() const;
- QQuickTabBar::Position position() const;
-
-Q_SIGNALS:
- void indexChanged();
- void tabBarChanged();
- void positionChanged();
-
-private:
- Q_DISABLE_COPY(QQuickTabBarAttached)
- Q_DECLARE_PRIVATE(QQuickTabBarAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickTabBar)
-QML_DECLARE_TYPEINFO(QQuickTabBar, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKTABBAR_P_H
diff --git a/src/quicktemplates2/qquicktabbutton.cpp b/src/quicktemplates2/qquicktabbutton.cpp
deleted file mode 100644
index 540f1280..00000000
--- a/src/quicktemplates2/qquicktabbutton.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktabbutton_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickabstractbutton_p_p.h"
-
-#include <QtGui/qpa/qplatformtheme.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype TabButton
- \inherits AbstractButton
-//! \instantiates QQuickTabButton
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-navigation
- \brief Button with a look suitable for a TabBar.
-
- \image qtquickcontrols2-tabbutton.png
-
- TabButton is used in conjunction with a \l TabBar.
-
- \snippet qtquickcontrols2-tabbutton.qml 1
-
- TabButton inherits its API from AbstractButton. For instance, you can set
- \l {AbstractButton::text}{text}, and react to \l {AbstractButton::clicked}{clicks}
- using the AbstractButton API.
-
- \sa TabBar, {Customizing TabButton}, {Button Controls}, {Navigation Controls}
-*/
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTabButtonPrivate : public QQuickAbstractButtonPrivate
-{
- Q_DECLARE_PUBLIC(QQuickTabButton)
-
-public:
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::TabBar); }
-};
-
-QQuickTabButton::QQuickTabButton(QQuickItem *parent)
- : QQuickAbstractButton(*(new QQuickTabButtonPrivate), parent)
-{
- setCheckable(true);
- setAutoExclusive(true);
-}
-
-QFont QQuickTabButton::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::TabBar);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickTabButton::accessibleRole() const
-{
- return QAccessible::PageTab;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktabbutton_p.h b/src/quicktemplates2/qquicktabbutton_p.h
deleted file mode 100644
index 302180c4..00000000
--- a/src/quicktemplates2/qquicktabbutton_p.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTABBUTTON_P_H
-#define QQUICKTABBUTTON_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickabstractbutton_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTabButtonPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTabButton : public QQuickAbstractButton
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(TabButton)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickTabButton(QQuickItem *parent = nullptr);
-
-protected:
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DECLARE_PRIVATE(QQuickTabButton)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickTabButton)
-
-#endif // QQUICKTABBUTTON_P_H
diff --git a/src/quicktemplates2/qquicktextarea.cpp b/src/quicktemplates2/qquicktextarea.cpp
deleted file mode 100644
index f1ea24d8..00000000
--- a/src/quicktemplates2/qquicktextarea.cpp
+++ /dev/null
@@ -1,1176 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktextarea_p.h"
-#include "qquicktextarea_p_p.h"
-#include "qquickcontrol_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickscrollview_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtQml/qqmlinfo.h>
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qquickclipnode_p.h>
-#include <QtQuick/private/qquickflickable_p.h>
-
-#if QT_CONFIG(accessibility)
-#include <QtQuick/private/qquickaccessibleattached_p.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype TextArea
- \inherits TextEdit
-//! \instantiates QQuickTextArea
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-input
- \brief Multi-line text input area.
-
- TextArea is a multi-line text editor. TextArea extends TextEdit with
- a \l {placeholderText}{placeholder text} functionality, and adds decoration.
-
- \image qtquickcontrols2-textarea.png
-
- \code
- TextArea {
- placeholderText: qsTr("Enter description")
- }
- \endcode
-
- TextArea is not scrollable by itself. Especially on screen-size constrained
- platforms, it is often preferable to make entire application pages scrollable.
- On such a scrollable page, a non-scrollable TextArea might behave better than
- nested scrollable controls. Notice, however, that in such a scenario, the background
- decoration of the TextArea scrolls together with the rest of the scrollable
- content.
-
- \section2 Scrollable TextArea
-
- If you want to make a TextArea scrollable, for example, when it covers
- an entire application page, it can be placed inside a \l ScrollView.
-
- \image qtquickcontrols2-textarea-scrollable.png
-
- \snippet qtquickcontrols2-textarea-scrollable.qml 1
-
- A TextArea that is placed inside a \l ScrollView does the following:
-
- \list
- \li Sets the content size automatically
- \li Ensures that the background decoration stays in place
- \li Clips the content
- \endlist
-
- \section2 Tab Focus
-
- By default, pressing the tab key while TextArea has
- \l {Item::activeFocus}{active focus} results in a tab character being input
- into the control itself. To make tab pass active focus onto another item,
- use the attached \l KeyNavigation properties:
-
- \code
- TextField {
- id: textField
- }
-
- TextArea {
- KeyNavigation.priority: KeyNavigation.BeforeItem
- KeyNavigation.tab: textField
- }
- \endcode
-
- \sa TextField, {Customizing TextArea}, {Input Controls}
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::TextArea::pressAndHold(MouseEvent event)
-
- This signal is emitted when there is a long press (the delay depends on the platform plugin).
- The \a event parameter provides information about the press, including the x and y
- coordinates of the press, and which button is pressed.
-
- \sa pressed, released
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::TextArea::pressed(MouseEvent event)
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This signal is emitted when the text area is pressed by the user.
- The \a event parameter provides information about the press,
- including the x and y coordinates of the press, and which button is pressed.
-
- \sa released, pressAndHold
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::TextArea::released(MouseEvent event)
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This signal is emitted when the text area is released by the user.
- The \a event parameter provides information about the release,
- including the x and y coordinates of the press, and which button
- is pressed.
-
- \sa pressed, pressAndHold
-*/
-
-QQuickTextAreaPrivate::QQuickTextAreaPrivate()
-{
-#if QT_CONFIG(accessibility)
- QAccessible::installActivationObserver(this);
-#endif
-}
-
-QQuickTextAreaPrivate::~QQuickTextAreaPrivate()
-{
-#if QT_CONFIG(accessibility)
- QAccessible::removeActivationObserver(this);
-#endif
-}
-
-void QQuickTextAreaPrivate::setTopInset(qreal value, bool reset)
-{
- Q_Q(QQuickTextArea);
- const QMarginsF oldInset = getInset();
- extra.value().topInset = value;
- extra.value().hasTopInset = !reset;
- if (!qFuzzyCompare(oldInset.top(), value)) {
- emit q->topInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickTextAreaPrivate::setLeftInset(qreal value, bool reset)
-{
- Q_Q(QQuickTextArea);
- const QMarginsF oldInset = getInset();
- extra.value().leftInset = value;
- extra.value().hasLeftInset = !reset;
- if (!qFuzzyCompare(oldInset.left(), value)) {
- emit q->leftInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickTextAreaPrivate::setRightInset(qreal value, bool reset)
-{
- Q_Q(QQuickTextArea);
- const QMarginsF oldInset = getInset();
- extra.value().rightInset = value;
- extra.value().hasRightInset = !reset;
- if (!qFuzzyCompare(oldInset.right(), value)) {
- emit q->rightInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickTextAreaPrivate::setBottomInset(qreal value, bool reset)
-{
- Q_Q(QQuickTextArea);
- const QMarginsF oldInset = getInset();
- extra.value().bottomInset = value;
- extra.value().hasBottomInset = !reset;
- if (!qFuzzyCompare(oldInset.bottom(), value)) {
- emit q->bottomInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickTextAreaPrivate::resizeBackground()
-{
- if (!background)
- return;
-
- resizingBackground = true;
-
- // When using the attached property TextArea.flickable, we reparent the background out
- // of TextArea and into the Flickable since we don't want the background to move while
- // flicking. This means that the size of the background should also follow the size of
- // the Flickable rather than the size of the TextArea.
- const auto flickable = qobject_cast<QQuickFlickable *>(background->parentItem());
-
- QQuickItemPrivate *p = QQuickItemPrivate::get(background);
- if (((!p->widthValid() || !extra.isAllocated() || !extra->hasBackgroundWidth) && qFuzzyIsNull(background->x()))
- || (extra.isAllocated() && (extra->hasLeftInset || extra->hasRightInset))) {
- const qreal bgWidth = flickable ? flickable->width() : width;
- background->setX(getLeftInset());
- background->setWidth(bgWidth - getLeftInset() - getRightInset());
- }
-
- if (((!p->heightValid() || !extra.isAllocated() || !extra->hasBackgroundHeight) && qFuzzyIsNull(background->y()))
- || (extra.isAllocated() && (extra->hasTopInset || extra->hasBottomInset))) {
- const qreal bgHeight = flickable ? flickable->height() : height;
- background->setY(getTopInset());
- background->setHeight(bgHeight - getTopInset() - getBottomInset());
- }
-
- resizingBackground = false;
-}
-
-/*!
- \internal
-
- Determine which font is implicitly imposed on this control by its ancestors
- and QGuiApplication::font, resolve this against its own font (attributes from
- the implicit font are copied over). Then propagate this font to this
- control's children.
-*/
-void QQuickTextAreaPrivate::resolveFont()
-{
- Q_Q(QQuickTextArea);
- inheritFont(QQuickControlPrivate::parentFont(q));
-}
-
-void QQuickTextAreaPrivate::inheritFont(const QFont &font)
-{
- QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
- parentFont.setResolveMask(extra.isAllocated() ? extra->requestedFont.resolveMask() | font.resolveMask() : font.resolveMask());
-
- const QFont defaultFont = QQuickTheme::font(QQuickTheme::TextArea);
- QFont resolvedFont = parentFont.resolve(defaultFont);
-
- setFont_helper(resolvedFont);
-}
-
-/*!
- \internal
-
- Assign \a font to this control, and propagate it to all children.
-*/
-void QQuickTextAreaPrivate::updateFont(const QFont &font)
-{
- Q_Q(QQuickTextArea);
- QFont oldFont = sourceFont;
- q->QQuickTextEdit::setFont(font);
-
- QQuickControlPrivate::updateFontRecur(q, font);
-
- if (oldFont != font)
- emit q->fontChanged();
-}
-
-#if QT_CONFIG(quicktemplates2_hover)
-void QQuickTextAreaPrivate::updateHoverEnabled(bool enabled, bool xplicit)
-{
- Q_Q(QQuickTextArea);
- if (!xplicit && explicitHoverEnabled)
- return;
-
- bool wasEnabled = q->isHoverEnabled();
- explicitHoverEnabled = xplicit;
- if (wasEnabled != enabled) {
- q->setAcceptHoverEvents(enabled);
- QQuickControlPrivate::updateHoverEnabledRecur(q, enabled);
- emit q->hoverEnabledChanged();
- }
-}
-#endif
-
-void QQuickTextAreaPrivate::attachFlickable(QQuickFlickable *item)
-{
- Q_Q(QQuickTextArea);
- flickable = item;
- q->setParentItem(flickable->contentItem());
-
- if (background)
- background->setParentItem(flickable);
-
- QObjectPrivate::connect(q, &QQuickTextArea::contentSizeChanged, this, &QQuickTextAreaPrivate::resizeFlickableContent);
- QObjectPrivate::connect(q, &QQuickTextEdit::cursorRectangleChanged, this, &QQuickTextAreaPrivate::ensureCursorVisible);
-
- QObject::connect(flickable, &QQuickFlickable::contentXChanged, q, &QQuickItem::update);
- QObject::connect(flickable, &QQuickFlickable::contentYChanged, q, &QQuickItem::update);
-
- QQuickItemPrivate::get(flickable)->updateOrAddGeometryChangeListener(this, QQuickGeometryChange::Size);
- QQuickItemPrivate::get(flickable)->addItemChangeListener(this, QQuickItemPrivate::Destroyed);
- QObjectPrivate::connect(flickable, &QQuickFlickable::contentWidthChanged, this, &QQuickTextAreaPrivate::resizeFlickableControl);
- QObjectPrivate::connect(flickable, &QQuickFlickable::contentHeightChanged, this, &QQuickTextAreaPrivate::resizeFlickableControl);
-
- resizeFlickableControl();
-}
-
-void QQuickTextAreaPrivate::detachFlickable()
-{
- Q_Q(QQuickTextArea);
- q->setParentItem(nullptr);
- if (background && background->parentItem() == flickable)
- background->setParentItem(q);
-
- QObjectPrivate::disconnect(q, &QQuickTextArea::contentSizeChanged, this, &QQuickTextAreaPrivate::resizeFlickableContent);
- QObjectPrivate::disconnect(q, &QQuickTextEdit::cursorRectangleChanged, this, &QQuickTextAreaPrivate::ensureCursorVisible);
-
- QObject::disconnect(flickable, &QQuickFlickable::contentXChanged, q, &QQuickItem::update);
- QObject::disconnect(flickable, &QQuickFlickable::contentYChanged, q, &QQuickItem::update);
-
- QQuickItemPrivate::get(flickable)->updateOrRemoveGeometryChangeListener(this, QQuickGeometryChange::Nothing);
- QQuickItemPrivate::get(flickable)->removeItemChangeListener(this, QQuickItemPrivate::Destroyed);
- QObjectPrivate::disconnect(flickable, &QQuickFlickable::contentWidthChanged, this, &QQuickTextAreaPrivate::resizeFlickableControl);
- QObjectPrivate::disconnect(flickable, &QQuickFlickable::contentHeightChanged, this, &QQuickTextAreaPrivate::resizeFlickableControl);
-
- flickable = nullptr;
-
- resizeBackground();
-}
-
-void QQuickTextAreaPrivate::ensureCursorVisible()
-{
- Q_Q(QQuickTextArea);
- if (!flickable)
- return;
-
- const qreal cx = flickable->contentX();
- const qreal cy = flickable->contentY();
- const qreal w = flickable->width();
- const qreal h = flickable->height();
-
- const qreal tp = q->topPadding();
- const qreal lp = q->leftPadding();
- const QRectF cr = q->cursorRectangle();
-
- if (cr.left() <= cx + lp) {
- flickable->setContentX(cr.left() - lp);
- } else {
- // calculate the rectangle of the next character and ensure that
- // it's visible if it's on the same line with the cursor
- const qreal rp = q->rightPadding();
- const QRectF nr = q->cursorPosition() < q->length() ? q->positionToRectangle(q->cursorPosition() + 1) : QRectF();
- if (qFuzzyCompare(nr.y(), cr.y()) && nr.right() >= cx + lp + w - rp)
- flickable->setContentX(nr.right() - w + rp);
- else if (cr.right() >= cx + lp + w - rp)
- flickable->setContentX(cr.right() - w + rp);
- }
-
- if (cr.top() <= cy + tp) {
- flickable->setContentY(cr.top() - tp);
- } else {
- const qreal bp = q->bottomPadding();
- if (cr.bottom() >= cy + tp + h - bp)
- flickable->setContentY(cr.bottom() - h + bp);
- }
-}
-
-void QQuickTextAreaPrivate::resizeFlickableControl()
-{
- Q_Q(QQuickTextArea);
- if (!flickable)
- return;
-
- const qreal w = wrapMode == QQuickTextArea::NoWrap ? qMax(flickable->width(), flickable->contentWidth()) : flickable->width();
- const qreal h = qMax(flickable->height(), flickable->contentHeight());
- q->setSize(QSizeF(w, h));
-
- resizeBackground();
-}
-
-void QQuickTextAreaPrivate::resizeFlickableContent()
-{
- Q_Q(QQuickTextArea);
- if (!flickable)
- return;
-
- flickable->setContentWidth(q->contentWidth() + q->leftPadding() + q->rightPadding());
- flickable->setContentHeight(q->contentHeight() + q->topPadding() + q->bottomPadding());
-}
-
-void QQuickTextAreaPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff)
-{
- Q_UNUSED(diff);
- if (!resizingBackground && item == background) {
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- // Only set hasBackgroundWidth/Height if it was a width/height change,
- // otherwise we're prevented from setting a width/height in the future.
- if (change.widthChange())
- extra.value().hasBackgroundWidth = p->widthValid();
- if (change.heightChange())
- extra.value().hasBackgroundHeight = p->heightValid();
- }
-
- if (flickable)
- resizeFlickableControl();
- else
- resizeBackground();
-}
-
-qreal QQuickTextAreaPrivate::getImplicitWidth() const
-{
- return QQuickItemPrivate::getImplicitWidth();
-}
-
-qreal QQuickTextAreaPrivate::getImplicitHeight() const
-{
- return QQuickItemPrivate::getImplicitHeight();
-}
-
-void QQuickTextAreaPrivate::implicitWidthChanged()
-{
- Q_Q(QQuickTextArea);
- QQuickItemPrivate::implicitWidthChanged();
- emit q->implicitWidthChanged3();
-}
-
-void QQuickTextAreaPrivate::implicitHeightChanged()
-{
- Q_Q(QQuickTextArea);
- QQuickItemPrivate::implicitHeightChanged();
- emit q->implicitHeightChanged3();
-}
-
-void QQuickTextAreaPrivate::readOnlyChanged(bool isReadOnly)
-{
- Q_UNUSED(isReadOnly);
-#if QT_CONFIG(accessibility)
- if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(q_func()))
- accessibleAttached->set_readOnly(isReadOnly);
-#endif
-#if QT_CONFIG(cursor)
- q_func()->setCursor(isReadOnly ? Qt::ArrowCursor : Qt::IBeamCursor);
-#endif
-}
-
-#if QT_CONFIG(accessibility)
-void QQuickTextAreaPrivate::accessibilityActiveChanged(bool active)
-{
- if (!active)
- return;
-
- Q_Q(QQuickTextArea);
- QQuickAccessibleAttached *accessibleAttached = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(q, true));
- Q_ASSERT(accessibleAttached);
- accessibleAttached->setRole(accessibleRole());
- accessibleAttached->set_readOnly(q->isReadOnly());
- accessibleAttached->setDescription(placeholder);
-}
-
-QAccessible::Role QQuickTextAreaPrivate::accessibleRole() const
-{
- return QAccessible::EditableText;
-}
-#endif
-
-static inline QString backgroundName() { return QStringLiteral("background"); }
-
-void QQuickTextAreaPrivate::cancelBackground()
-{
- Q_Q(QQuickTextArea);
- quickCancelDeferred(q, backgroundName());
-}
-
-void QQuickTextAreaPrivate::executeBackground(bool complete)
-{
- Q_Q(QQuickTextArea);
- if (background.wasExecuted())
- return;
-
- if (!background || complete)
- quickBeginDeferred(q, backgroundName(), background);
- if (complete)
- quickCompleteDeferred(q, backgroundName(), background);
-}
-
-void QQuickTextAreaPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_Q(QQuickTextArea);
- if (item == background)
- emit q->implicitBackgroundWidthChanged();
-}
-
-void QQuickTextAreaPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_Q(QQuickTextArea);
- if (item == background)
- emit q->implicitBackgroundHeightChanged();
-}
-
-void QQuickTextAreaPrivate::itemDestroyed(QQuickItem *item)
-{
- Q_Q(QQuickTextArea);
- if (item == background) {
- background = nullptr;
- emit q->implicitBackgroundWidthChanged();
- emit q->implicitBackgroundHeightChanged();
- } else if (item == flickable) {
- detachFlickable();
- }
-}
-
-QPalette QQuickTextAreaPrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::TextArea);
-}
-
-QQuickTextArea::QQuickTextArea(QQuickItem *parent)
- : QQuickTextEdit(*(new QQuickTextAreaPrivate), parent)
-{
- Q_D(QQuickTextArea);
- setActiveFocusOnTab(true);
- setAcceptedMouseButtons(Qt::AllButtons);
- d->setImplicitResizeEnabled(false);
- d->pressHandler.control = this;
-#if QT_CONFIG(cursor)
- setCursor(Qt::IBeamCursor);
-#endif
- QObjectPrivate::connect(this, &QQuickTextEdit::readOnlyChanged,
- d, &QQuickTextAreaPrivate::readOnlyChanged);
-}
-
-QQuickTextArea::~QQuickTextArea()
-{
- Q_D(QQuickTextArea);
- if (d->flickable)
- d->detachFlickable();
- QQuickControlPrivate::removeImplicitSizeListener(d->background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
-}
-
-QQuickTextAreaAttached *QQuickTextArea::qmlAttachedProperties(QObject *object)
-{
- return new QQuickTextAreaAttached(object);
-}
-
-QFont QQuickTextArea::font() const
-{
- return QQuickTextEdit::font();
-}
-
-void QQuickTextArea::setFont(const QFont &font)
-{
- Q_D(QQuickTextArea);
- if (d->extra.value().requestedFont.resolveMask() == font.resolveMask() && d->extra.value().requestedFont == font)
- return;
-
- d->extra.value().requestedFont = font;
- d->resolveFont();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::TextArea::background
-
- This property holds the background item.
-
- \input qquickcontrol-background.qdocinc notes
-
- \sa {Customizing TextArea}
-*/
-QQuickItem *QQuickTextArea::background() const
-{
- QQuickTextAreaPrivate *d = const_cast<QQuickTextAreaPrivate *>(d_func());
- if (!d->background)
- d->executeBackground();
- return d->background;
-}
-
-void QQuickTextArea::setBackground(QQuickItem *background)
-{
- Q_D(QQuickTextArea);
- if (d->background == background)
- return;
-
- if (!d->background.isExecuting())
- d->cancelBackground();
-
- const qreal oldImplicitBackgroundWidth = implicitBackgroundWidth();
- const qreal oldImplicitBackgroundHeight = implicitBackgroundHeight();
-
- if (d->extra.isAllocated()) {
- d->extra.value().hasBackgroundWidth = false;
- d->extra.value().hasBackgroundHeight = false;
- }
-
- QQuickControlPrivate::removeImplicitSizeListener(d->background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
- QQuickControlPrivate::hideOldItem(d->background);
- d->background = background;
-
- if (background) {
- QQuickItemPrivate *p = QQuickItemPrivate::get(background);
- if (p->widthValid() || p->heightValid()) {
- d->extra.value().hasBackgroundWidth = p->widthValid();
- d->extra.value().hasBackgroundHeight = p->heightValid();
- }
- if (d->flickable)
- background->setParentItem(d->flickable);
- else
- background->setParentItem(this);
- if (qFuzzyIsNull(background->z()))
- background->setZ(-1);
- if (isComponentComplete())
- d->resizeBackground();
- QQuickControlPrivate::addImplicitSizeListener(background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
- }
-
- if (!qFuzzyCompare(oldImplicitBackgroundWidth, implicitBackgroundWidth()))
- emit implicitBackgroundWidthChanged();
- if (!qFuzzyCompare(oldImplicitBackgroundHeight, implicitBackgroundHeight()))
- emit implicitBackgroundHeightChanged();
- if (!d->background.isExecuting())
- emit backgroundChanged();
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::TextArea::placeholderText
-
- This property holds the short hint that is displayed in the text area before
- the user enters a value.
-*/
-QString QQuickTextArea::placeholderText() const
-{
- Q_D(const QQuickTextArea);
- return d->placeholder;
-}
-
-void QQuickTextArea::setPlaceholderText(const QString &text)
-{
- Q_D(QQuickTextArea);
- if (d->placeholder == text)
- return;
-
- d->placeholder = text;
-#if QT_CONFIG(accessibility)
- if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this))
- accessibleAttached->setDescription(text);
-#endif
- emit placeholderTextChanged();
-}
-
-/*!
- \qmlproperty color QtQuick.Controls::TextArea::placeholderTextColor
- \since QtQuick.Controls 2.5 (Qt 5.12)
-
- This property holds the color of placeholderText.
-
- \sa placeholderText
-*/
-QColor QQuickTextArea::placeholderTextColor() const
-{
- Q_D(const QQuickTextArea);
- return d->placeholderColor;
-}
-
-void QQuickTextArea::setPlaceholderTextColor(const QColor &color)
-{
- Q_D(QQuickTextArea);
- if (d->placeholderColor == color)
- return;
-
- d->placeholderColor = color;
- emit placeholderTextColorChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::TextArea::focusReason
-
- \include qquickcontrol-focusreason.qdocinc
-*/
-Qt::FocusReason QQuickTextArea::focusReason() const
-{
- Q_D(const QQuickTextArea);
- return d->focusReason;
-}
-
-void QQuickTextArea::setFocusReason(Qt::FocusReason reason)
-{
- Q_D(QQuickTextArea);
- if (d->focusReason == reason)
- return;
-
- d->focusReason = reason;
- emit focusReasonChanged();
-}
-
-bool QQuickTextArea::contains(const QPointF &point) const
-{
- Q_D(const QQuickTextArea);
- if (d->flickable && !d->flickable->contains(d->flickable->mapFromItem(this, point)))
- return false;
- return QQuickTextEdit::contains(point);
-}
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlproperty bool QtQuick.Controls::TextArea::hovered
- \readonly
-
- This property holds whether the text area is hovered.
-
- \sa hoverEnabled
-*/
-bool QQuickTextArea::isHovered() const
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(const QQuickTextArea);
- return d->hovered;
-#else
- return false;
-#endif
-}
-
-void QQuickTextArea::setHovered(bool hovered)
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(QQuickTextArea);
- if (hovered == d->hovered)
- return;
-
- d->hovered = hovered;
- emit hoveredChanged();
-#else
- Q_UNUSED(hovered);
-#endif
-}
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlproperty bool QtQuick.Controls::TextArea::hoverEnabled
-
- This property determines whether the text area accepts hover events. The default value is \c true.
-
- \sa hovered
-*/
-bool QQuickTextArea::isHoverEnabled() const
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(const QQuickTextArea);
- return d->hoverEnabled;
-#else
- return false;
-#endif
-}
-
-void QQuickTextArea::setHoverEnabled(bool enabled)
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(QQuickTextArea);
- if (d->explicitHoverEnabled && enabled == d->hoverEnabled)
- return;
-
- d->updateHoverEnabled(enabled, true); // explicit=true
-#else
- Q_UNUSED(enabled);
-#endif
-}
-
-void QQuickTextArea::resetHoverEnabled()
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(QQuickTextArea);
- if (!d->explicitHoverEnabled)
- return;
-
- d->explicitHoverEnabled = false;
- d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false
-#endif
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextArea::implicitBackgroundWidth
- \readonly
-
- This property holds the implicit background width.
-
- The value is equal to \c {background ? background.implicitWidth : 0}.
-
- \sa implicitBackgroundHeight
-*/
-qreal QQuickTextArea::implicitBackgroundWidth() const
-{
- Q_D(const QQuickTextArea);
- if (!d->background)
- return 0;
- return d->background->implicitWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextArea::implicitBackgroundHeight
- \readonly
-
- This property holds the implicit background height.
-
- The value is equal to \c {background ? background.implicitHeight : 0}.
-
- \sa implicitBackgroundWidth
-*/
-qreal QQuickTextArea::implicitBackgroundHeight() const
-{
- Q_D(const QQuickTextArea);
- if (!d->background)
- return 0;
- return d->background->implicitHeight();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextArea::topInset
-
- This property holds the top inset for the background.
-
- \sa {Control Layout}, bottomInset
-*/
-qreal QQuickTextArea::topInset() const
-{
- Q_D(const QQuickTextArea);
- return d->getTopInset();
-}
-
-void QQuickTextArea::setTopInset(qreal inset)
-{
- Q_D(QQuickTextArea);
- d->setTopInset(inset);
-}
-
-void QQuickTextArea::resetTopInset()
-{
- Q_D(QQuickTextArea);
- d->setTopInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextArea::leftInset
-
- This property holds the left inset for the background.
-
- \sa {Control Layout}, rightInset
-*/
-qreal QQuickTextArea::leftInset() const
-{
- Q_D(const QQuickTextArea);
- return d->getLeftInset();
-}
-
-void QQuickTextArea::setLeftInset(qreal inset)
-{
- Q_D(QQuickTextArea);
- d->setLeftInset(inset);
-}
-
-void QQuickTextArea::resetLeftInset()
-{
- Q_D(QQuickTextArea);
- d->setLeftInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextArea::rightInset
-
- This property holds the right inset for the background.
-
- \sa {Control Layout}, leftInset
-*/
-qreal QQuickTextArea::rightInset() const
-{
- Q_D(const QQuickTextArea);
- return d->getRightInset();
-}
-
-void QQuickTextArea::setRightInset(qreal inset)
-{
- Q_D(QQuickTextArea);
- d->setRightInset(inset);
-}
-
-void QQuickTextArea::resetRightInset()
-{
- Q_D(QQuickTextArea);
- d->setRightInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextArea::bottomInset
-
- This property holds the bottom inset for the background.
-
- \sa {Control Layout}, topInset
-*/
-qreal QQuickTextArea::bottomInset() const
-{
- Q_D(const QQuickTextArea);
- return d->getBottomInset();
-}
-
-void QQuickTextArea::setBottomInset(qreal inset)
-{
- Q_D(QQuickTextArea);
- d->setBottomInset(inset);
-}
-
-void QQuickTextArea::resetBottomInset()
-{
- Q_D(QQuickTextArea);
- d->setBottomInset(0, true);
-}
-
-void QQuickTextArea::classBegin()
-{
- Q_D(QQuickTextArea);
- QQuickTextEdit::classBegin();
- d->resolveFont();
-}
-
-void QQuickTextArea::componentComplete()
-{
- Q_D(QQuickTextArea);
- d->executeBackground(true);
- QQuickTextEdit::componentComplete();
- d->resizeBackground();
-#if QT_CONFIG(quicktemplates2_hover)
- if (!d->explicitHoverEnabled)
- setAcceptHoverEvents(QQuickControlPrivate::calcHoverEnabled(d->parentItem));
-#endif
-#if QT_CONFIG(accessibility)
- if (QAccessible::isActive())
- d->accessibilityActiveChanged(true);
-#endif
-}
-
-void QQuickTextArea::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value)
-{
- Q_D(QQuickTextArea);
- QQuickTextEdit::itemChange(change, value);
- switch (change) {
- case ItemEnabledHasChanged:
- break;
- case ItemSceneChange:
- case ItemParentHasChanged:
- if ((change == ItemParentHasChanged && value.item) || (change == ItemSceneChange && value.window)) {
- d->resolveFont();
-#if QT_CONFIG(quicktemplates2_hover)
- if (!d->explicitHoverEnabled)
- d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false
-#endif
- if (change == ItemParentHasChanged) {
- QQuickFlickable *flickable = qobject_cast<QQuickFlickable *>(value.item->parentItem());
- if (flickable) {
- QQuickScrollView *scrollView = qobject_cast<QQuickScrollView *>(flickable->parentItem());
- if (scrollView)
- d->attachFlickable(flickable);
- }
- }
- }
- break;
- default:
- break;
- }
-}
-
-void QQuickTextArea::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickTextArea);
- QQuickTextEdit::geometryChange(newGeometry, oldGeometry);
- d->resizeBackground();
-}
-
-void QQuickTextArea::insetChange(const QMarginsF &newInset, const QMarginsF &oldInset)
-{
- Q_D(QQuickTextArea);
- Q_UNUSED(newInset);
- Q_UNUSED(oldInset);
- d->resizeBackground();
-}
-
-QSGNode *QQuickTextArea::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data)
-{
- Q_D(QQuickTextArea);
- QQuickDefaultClipNode *clipNode = static_cast<QQuickDefaultClipNode *>(oldNode);
- if (!clipNode)
- clipNode = new QQuickDefaultClipNode(QRectF());
-
- QQuickItem *clipper = this;
- if (d->flickable)
- clipper = d->flickable;
-
- const QRectF cr = clipper->clipRect().adjusted(leftPadding(), topPadding(), -rightPadding(), -bottomPadding());
- clipNode->setRect(!d->flickable ? cr : cr.translated(d->flickable->contentX(), d->flickable->contentY()));
- clipNode->update();
-
- QSGNode *textNode = QQuickTextEdit::updatePaintNode(clipNode->firstChild(), data);
- if (!textNode->parent())
- clipNode->appendChildNode(textNode);
-
- if (d->cursorItem) {
- QQuickDefaultClipNode *cursorNode = QQuickItemPrivate::get(d->cursorItem)->clipNode();
- if (cursorNode)
- cursorNode->setClipRect(d->cursorItem->mapRectFromItem(clipper, cr));
- }
-
- return clipNode;
-}
-
-void QQuickTextArea::focusInEvent(QFocusEvent *event)
-{
- QQuickTextEdit::focusInEvent(event);
- setFocusReason(event->reason());
-}
-
-void QQuickTextArea::focusOutEvent(QFocusEvent *event)
-{
- QQuickTextEdit::focusOutEvent(event);
- setFocusReason(event->reason());
-}
-
-#if QT_CONFIG(quicktemplates2_hover)
-void QQuickTextArea::hoverEnterEvent(QHoverEvent *event)
-{
- Q_D(QQuickTextArea);
- QQuickTextEdit::hoverEnterEvent(event);
- setHovered(d->hoverEnabled);
- event->setAccepted(d->hoverEnabled);
-}
-
-void QQuickTextArea::hoverLeaveEvent(QHoverEvent *event)
-{
- Q_D(QQuickTextArea);
- QQuickTextEdit::hoverLeaveEvent(event);
- setHovered(false);
- event->setAccepted(d->hoverEnabled);
-}
-#endif
-
-void QQuickTextArea::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickTextArea);
- d->pressHandler.mousePressEvent(event);
- if (d->pressHandler.isActive()) {
- if (d->pressHandler.delayedMousePressEvent) {
- QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent);
- d->pressHandler.clearDelayedMouseEvent();
- }
- // Calling the base class implementation will result in QQuickTextControl's
- // press handler being called, which ignores events that aren't Qt::LeftButton.
- const bool wasAccepted = event->isAccepted();
- QQuickTextEdit::mousePressEvent(event);
- if (wasAccepted)
- event->accept();
- }
-}
-
-void QQuickTextArea::mouseMoveEvent(QMouseEvent *event)
-{
- Q_D(QQuickTextArea);
- d->pressHandler.mouseMoveEvent(event);
- if (d->pressHandler.isActive()) {
- if (d->pressHandler.delayedMousePressEvent) {
- QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent);
- d->pressHandler.clearDelayedMouseEvent();
- }
- QQuickTextEdit::mouseMoveEvent(event);
- }
-}
-
-void QQuickTextArea::mouseReleaseEvent(QMouseEvent *event)
-{
- Q_D(QQuickTextArea);
- d->pressHandler.mouseReleaseEvent(event);
- if (d->pressHandler.isActive()) {
- if (d->pressHandler.delayedMousePressEvent) {
- QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent);
- d->pressHandler.clearDelayedMouseEvent();
- }
- QQuickTextEdit::mouseReleaseEvent(event);
- }
-}
-
-void QQuickTextArea::mouseDoubleClickEvent(QMouseEvent *event)
-{
- Q_D(QQuickTextArea);
- if (d->pressHandler.delayedMousePressEvent) {
- QQuickTextEdit::mousePressEvent(d->pressHandler.delayedMousePressEvent);
- d->pressHandler.clearDelayedMouseEvent();
- }
- QQuickTextEdit::mouseDoubleClickEvent(event);
-}
-
-void QQuickTextArea::timerEvent(QTimerEvent *event)
-{
- Q_D(QQuickTextArea);
- if (event->timerId() == d->pressHandler.timer.timerId())
- d->pressHandler.timerEvent(event);
- else
- QQuickTextEdit::timerEvent(event);
-}
-
-class QQuickTextAreaAttachedPrivate : public QObjectPrivate
-{
-public:
- QQuickTextArea *control = nullptr;
-};
-
-QQuickTextAreaAttached::QQuickTextAreaAttached(QObject *parent)
- : QObject(*(new QQuickTextAreaAttachedPrivate), parent)
-{
-}
-
-/*!
- \qmlattachedproperty TextArea QtQuick.Controls::TextArea::flickable
-
- This property attaches a text area to a \l Flickable.
-
- \sa ScrollBar, ScrollIndicator, {Scrollable TextArea}
-*/
-QQuickTextArea *QQuickTextAreaAttached::flickable() const
-{
- Q_D(const QQuickTextAreaAttached);
- return d->control;
-}
-
-void QQuickTextAreaAttached::setFlickable(QQuickTextArea *control)
-{
- Q_D(QQuickTextAreaAttached);
- QQuickFlickable *flickable = qobject_cast<QQuickFlickable *>(parent());
- if (!flickable) {
- qmlWarning(parent()) << "TextArea must be attached to a Flickable";
- return;
- }
-
- if (d->control == control)
- return;
-
- if (d->control)
- QQuickTextAreaPrivate::get(d->control)->detachFlickable();
-
- d->control = control;
-
- if (control)
- QQuickTextAreaPrivate::get(control)->attachFlickable(flickable);
-
- emit flickableChanged();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktextarea_p.h b/src/quicktemplates2/qquicktextarea_p.h
deleted file mode 100644
index e9812f19..00000000
--- a/src/quicktemplates2/qquicktextarea_p.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTEXTAREA_P_H
-#define QQUICKTEXTAREA_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpalette.h>
-#include <QtQuick/private/qquicktextedit_p.h>
-#include <QtQuick/private/qquickevents_p_p.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickText;
-class QQuickTextAreaPrivate;
-class QQuickTextAreaAttached;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTextArea : public QQuickTextEdit
-{
- Q_OBJECT
- Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged) // override
- Q_PROPERTY(qreal implicitWidth READ implicitWidth WRITE setImplicitWidth NOTIFY implicitWidthChanged3 FINAL)
- Q_PROPERTY(qreal implicitHeight READ implicitHeight WRITE setImplicitHeight NOTIFY implicitHeightChanged3 FINAL)
- Q_PROPERTY(QQuickItem *background READ background WRITE setBackground NOTIFY backgroundChanged FINAL)
- Q_PROPERTY(QString placeholderText READ placeholderText WRITE setPlaceholderText NOTIFY placeholderTextChanged FINAL)
- Q_PROPERTY(Qt::FocusReason focusReason READ focusReason WRITE setFocusReason NOTIFY focusReasonChanged FINAL)
- // 2.1 (Qt 5.8)
- Q_PROPERTY(bool hovered READ isHovered NOTIFY hoveredChanged FINAL REVISION(2, 1))
- Q_PROPERTY(bool hoverEnabled READ isHoverEnabled WRITE setHoverEnabled RESET resetHoverEnabled NOTIFY hoverEnabledChanged FINAL REVISION(2, 1))
- // 2.5 (Qt 5.12)
- Q_PROPERTY(QColor placeholderTextColor READ placeholderTextColor WRITE setPlaceholderTextColor NOTIFY placeholderTextColorChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitBackgroundWidth READ implicitBackgroundWidth NOTIFY implicitBackgroundWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitBackgroundHeight READ implicitBackgroundHeight NOTIFY implicitBackgroundHeightChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal topInset READ topInset WRITE setTopInset RESET resetTopInset NOTIFY topInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal leftInset READ leftInset WRITE setLeftInset RESET resetLeftInset NOTIFY leftInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal rightInset READ rightInset WRITE setRightInset RESET resetRightInset NOTIFY rightInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal bottomInset READ bottomInset WRITE setBottomInset RESET resetBottomInset NOTIFY bottomInsetChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "background")
- QML_NAMED_ELEMENT(TextArea)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickTextArea(QQuickItem *parent = nullptr);
- ~QQuickTextArea();
-
- static QQuickTextAreaAttached *qmlAttachedProperties(QObject *object);
-
- QFont font() const;
- void setFont(const QFont &font);
-
- QQuickItem *background() const;
- void setBackground(QQuickItem *background);
-
- QString placeholderText() const;
- void setPlaceholderText(const QString &text);
-
- Qt::FocusReason focusReason() const;
- void setFocusReason(Qt::FocusReason reason);
-
- bool contains(const QPointF &point) const override;
-
- // 2.1 (Qt 5.8)
- bool isHovered() const;
- void setHovered(bool hovered);
-
- bool isHoverEnabled() const;
- void setHoverEnabled(bool enabled);
- void resetHoverEnabled();
-
- // 2.5 (Qt 5.12)
- QColor placeholderTextColor() const;
- void setPlaceholderTextColor(const QColor &color);
-
- qreal implicitBackgroundWidth() const;
- qreal implicitBackgroundHeight() const;
-
- qreal topInset() const;
- void setTopInset(qreal inset);
- void resetTopInset();
-
- qreal leftInset() const;
- void setLeftInset(qreal inset);
- void resetLeftInset();
-
- qreal rightInset() const;
- void setRightInset(qreal inset);
- void resetRightInset();
-
- qreal bottomInset() const;
- void setBottomInset(qreal inset);
- void resetBottomInset();
-
-Q_SIGNALS:
- void fontChanged();
- void implicitWidthChanged3();
- void implicitHeightChanged3();
- void backgroundChanged();
- void placeholderTextChanged();
- void focusReasonChanged();
- void pressAndHold(QQuickMouseEvent *event);
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) void pressed(QQuickMouseEvent *event);
- Q_REVISION(2, 1) void released(QQuickMouseEvent *event);
- Q_REVISION(2, 1) void hoveredChanged();
- Q_REVISION(2, 1) void hoverEnabledChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void placeholderTextColorChanged();
- Q_REVISION(2, 5) void implicitBackgroundWidthChanged();
- Q_REVISION(2, 5) void implicitBackgroundHeightChanged();
- Q_REVISION(2, 5) void topInsetChanged();
- Q_REVISION(2, 5) void leftInsetChanged();
- Q_REVISION(2, 5) void rightInsetChanged();
- Q_REVISION(2, 5) void bottomInsetChanged();
-
-protected:
- friend struct QQuickPressHandler;
-
- void classBegin() override;
- void componentComplete() override;
-
- void itemChange(ItemChange change, const ItemChangeData &value) override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- virtual void insetChange(const QMarginsF &newInset, const QMarginsF &oldInset);
-
- QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data) override;
-
- void focusInEvent(QFocusEvent *event) override;
- void focusOutEvent(QFocusEvent *event) override;
-#if QT_CONFIG(quicktemplates2_hover)
- void hoverEnterEvent(QHoverEvent *event) override;
- void hoverLeaveEvent(QHoverEvent *event) override;
-#endif
- void mousePressEvent(QMouseEvent *event) override;
- void mouseMoveEvent(QMouseEvent *event) override;
- void mouseReleaseEvent(QMouseEvent *event) override;
- void mouseDoubleClickEvent(QMouseEvent *event) override;
- void timerEvent(QTimerEvent *event) override;
-
-private:
- Q_DISABLE_COPY(QQuickTextArea)
- Q_DECLARE_PRIVATE(QQuickTextArea)
-};
-
-class QQuickTextAreaAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTextAreaAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickTextArea *flickable READ flickable WRITE setFlickable NOTIFY flickableChanged FINAL)
-
-public:
- explicit QQuickTextAreaAttached(QObject *parent);
-
- QQuickTextArea *flickable() const;
- void setFlickable(QQuickTextArea *control);
-
-Q_SIGNALS:
- void flickableChanged();
-
-private:
- Q_DISABLE_COPY(QQuickTextAreaAttached)
- Q_DECLARE_PRIVATE(QQuickTextAreaAttached)
-};
-
-struct QQuickTextEditForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickTextEdit)
- QML_ADDED_IN_VERSION(2, 3)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickTextArea)
-QML_DECLARE_TYPEINFO(QQuickTextArea, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKTEXTAREA_P_H
diff --git a/src/quicktemplates2/qquicktextarea_p_p.h b/src/quicktemplates2/qquicktextarea_p_p.h
deleted file mode 100644
index 2ed2b44f..00000000
--- a/src/quicktemplates2/qquicktextarea_p_p.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTEXTAREA_P_P_H
-#define QQUICKTEXTAREA_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQml/private/qlazilyallocated_p.h>
-#include <QtQuick/private/qquicktextedit_p_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-#include <QtQuickTemplates2/private/qquickpresshandler_p_p.h>
-#include <QtQuickTemplates2/private/qquickdeferredpointer_p_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-#include <QtQuickTemplates2/private/qquicktextarea_p.h>
-
-#if QT_CONFIG(accessibility)
-#include <QtGui/qaccessible.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-class QQuickFlickable;
-
-class QQuickTextAreaPrivate : public QQuickTextEditPrivate, public QQuickItemChangeListener
-#if QT_CONFIG(accessibility)
- , public QAccessible::ActivationObserver
-#endif
-{
- Q_DECLARE_PUBLIC(QQuickTextArea)
-
-public:
- QQuickTextAreaPrivate();
- ~QQuickTextAreaPrivate();
-
- static QQuickTextAreaPrivate *get(QQuickTextArea *item)
- {
- return static_cast<QQuickTextAreaPrivate *>(QObjectPrivate::get(item));
- }
-
- inline QMarginsF getInset() const { return QMarginsF(getLeftInset(), getTopInset(), getRightInset(), getBottomInset()); }
- inline qreal getTopInset() const { return extra.isAllocated() ? extra->topInset : 0; }
- inline qreal getLeftInset() const { return extra.isAllocated() ? extra->leftInset : 0; }
- inline qreal getRightInset() const { return extra.isAllocated() ? extra->rightInset : 0; }
- inline qreal getBottomInset() const { return extra.isAllocated() ? extra->bottomInset : 0; }
-
- void setTopInset(qreal value, bool reset = false);
- void setLeftInset(qreal value, bool reset = false);
- void setRightInset(qreal value, bool reset = false);
- void setBottomInset(qreal value, bool reset = false);
-
- void resizeBackground();
-
- void resolveFont();
- void inheritFont(const QFont &font);
- void updateFont(const QFont &font);
- inline void setFont_helper(const QFont &font) {
- if (sourceFont.resolveMask() == font.resolveMask() && sourceFont == font)
- return;
- updateFont(font);
- }
-
-#if QT_CONFIG(quicktemplates2_hover)
- void updateHoverEnabled(bool h, bool e);
-#endif
-
- void attachFlickable(QQuickFlickable *flickable);
- void detachFlickable();
- void ensureCursorVisible();
- void resizeFlickableControl();
- void resizeFlickableContent();
-
- void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override;
-
- qreal getImplicitWidth() const override;
- qreal getImplicitHeight() const override;
-
- void implicitWidthChanged() override;
- void implicitHeightChanged() override;
-
- void readOnlyChanged(bool isReadOnly);
-
-#if QT_CONFIG(accessibility)
- void accessibilityActiveChanged(bool active) override;
- QAccessible::Role accessibleRole() const override;
-#endif
-
- void cancelBackground();
- void executeBackground(bool complete = false);
-
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
- void itemDestroyed(QQuickItem *item) override;
-
- QPalette defaultPalette() const override;
-
-#if QT_CONFIG(quicktemplates2_hover)
- bool hovered = false;
- bool explicitHoverEnabled = false;
-#endif
-
- struct ExtraData {
- bool hasTopInset = false;
- bool hasLeftInset = false;
- bool hasRightInset = false;
- bool hasBottomInset = false;
- bool hasBackgroundWidth = false;
- bool hasBackgroundHeight = false;
- qreal topInset = 0;
- qreal leftInset = 0;
- qreal rightInset = 0;
- qreal bottomInset = 0;
- QFont requestedFont;
- QPalette requestedPalette;
- };
- QLazilyAllocated<ExtraData> extra;
-
- bool resizingBackground = false;
- QPalette resolvedPalette;
- QQuickDeferredPointer<QQuickItem> background;
- QString placeholder;
- QColor placeholderColor;
- Qt::FocusReason focusReason = Qt::OtherFocusReason;
- QQuickPressHandler pressHandler;
- QQuickFlickable *flickable = nullptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKTEXTAREA_P_P_H
diff --git a/src/quicktemplates2/qquicktextfield.cpp b/src/quicktemplates2/qquicktextfield.cpp
deleted file mode 100644
index 32e447d7..00000000
--- a/src/quicktemplates2/qquicktextfield.cpp
+++ /dev/null
@@ -1,952 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktextfield_p.h"
-#include "qquicktextfield_p_p.h"
-#include "qquickcontrol_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickdeferredexecute_p_p.h"
-
-#include <QtQuick/private/qquickitem_p.h>
-#include <QtQuick/private/qquicktextinput_p.h>
-#include <QtQuick/private/qquickclipnode_p.h>
-
-#if QT_CONFIG(accessibility)
-#include <QtQuick/private/qquickaccessibleattached_p.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype TextField
- \inherits TextInput
-//! \instantiates QQuickTextField
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-input
- \brief Single-line text input field.
-
- TextField is a single line text editor. TextField extends TextInput with
- a \l {placeholderText}{placeholder text} functionality, and adds decoration.
-
- \table
- \row \li \image qtquickcontrols2-textfield-normal.png
- \li A text field in its normal state.
- \row \li \image qtquickcontrols2-textfield-focused.png
- \li A text field that has active focus.
- \row \li \image qtquickcontrols2-textfield-disabled.png
- \li A text field that is disabled.
- \endtable
-
- \code
- TextField {
- placeholderText: qsTr("Enter name")
- }
- \endcode
-
- \sa TextArea, {Customizing TextField}, {Input Controls}
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::TextField::pressAndHold(MouseEvent event)
-
- This signal is emitted when there is a long press (the delay depends on the platform plugin).
- The \a event parameter provides information about the press, including the x and y
- coordinates of the press, and which button is pressed.
-
- \sa pressed, released
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::TextField::pressed(MouseEvent event)
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This signal is emitted when the text field is pressed by the user.
- The \a event parameter provides information about the press,
- including the x and y coordinates of the press, and which button
- is pressed.
-
- \sa released, pressAndHold
-*/
-
-/*!
- \qmlsignal QtQuick.Controls::TextField::released(MouseEvent event)
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This signal is emitted when the text field is released by the user.
- The \a event parameter provides information about the release,
- including the x and y coordinates of the press, and which button
- is pressed.
-
- \sa pressed, pressAndHold
-*/
-
-QQuickTextFieldPrivate::QQuickTextFieldPrivate()
-{
-#if QT_CONFIG(accessibility)
- QAccessible::installActivationObserver(this);
-#endif
-}
-
-QQuickTextFieldPrivate::~QQuickTextFieldPrivate()
-{
-#if QT_CONFIG(accessibility)
- QAccessible::removeActivationObserver(this);
-#endif
-}
-
-void QQuickTextFieldPrivate::setTopInset(qreal value, bool reset)
-{
- Q_Q(QQuickTextField);
- const QMarginsF oldInset = getInset();
- extra.value().topInset = value;
- extra.value().hasTopInset = !reset;
- if (!qFuzzyCompare(oldInset.top(), value)) {
- emit q->topInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickTextFieldPrivate::setLeftInset(qreal value, bool reset)
-{
- Q_Q(QQuickTextField);
- const QMarginsF oldInset = getInset();
- extra.value().leftInset = value;
- extra.value().hasLeftInset = !reset;
- if (!qFuzzyCompare(oldInset.left(), value)) {
- emit q->leftInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickTextFieldPrivate::setRightInset(qreal value, bool reset)
-{
- Q_Q(QQuickTextField);
- const QMarginsF oldInset = getInset();
- extra.value().rightInset = value;
- extra.value().hasRightInset = !reset;
- if (!qFuzzyCompare(oldInset.right(), value)) {
- emit q->rightInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickTextFieldPrivate::setBottomInset(qreal value, bool reset)
-{
- Q_Q(QQuickTextField);
- const QMarginsF oldInset = getInset();
- extra.value().bottomInset = value;
- extra.value().hasBottomInset = !reset;
- if (!qFuzzyCompare(oldInset.bottom(), value)) {
- emit q->bottomInsetChanged();
- q->insetChange(getInset(), oldInset);
- }
-}
-
-void QQuickTextFieldPrivate::resizeBackground()
-{
- if (!background)
- return;
-
- resizingBackground = true;
-
- QQuickItemPrivate *p = QQuickItemPrivate::get(background);
- if (((!p->widthValid() || !extra.isAllocated() || !extra->hasBackgroundWidth) && qFuzzyIsNull(background->x()))
- || (extra.isAllocated() && (extra->hasLeftInset || extra->hasRightInset))) {
- const bool wasWidthValid = p->widthValid();
- background->setX(getLeftInset());
- background->setWidth(width - getLeftInset() - getRightInset());
- // If the user hadn't previously set the width, that shouldn't change when we set it for them.
- if (!wasWidthValid)
- p->widthValidFlag = false;
- }
- if (((!p->heightValid() || !extra.isAllocated() || !extra->hasBackgroundHeight) && qFuzzyIsNull(background->y()))
- || (extra.isAllocated() && (extra->hasTopInset || extra->hasBottomInset))) {
- const bool wasHeightValid = p->heightValid();
- background->setY(getTopInset());
- background->setHeight(height - getTopInset() - getBottomInset());
- if (!wasHeightValid)
- p->heightValidFlag = false;
- }
-
- resizingBackground = false;
-}
-
-/*!
- \internal
-
- Determine which font is implicitly imposed on this control by its ancestors
- and QGuiApplication::font, resolve this against its own font (attributes from
- the implicit font are copied over). Then propagate this font to this
- control's children.
-*/
-void QQuickTextFieldPrivate::resolveFont()
-{
- Q_Q(QQuickTextField);
- inheritFont(QQuickControlPrivate::parentFont(q));
-}
-
-void QQuickTextFieldPrivate::inheritFont(const QFont &font)
-{
- QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
- parentFont.setResolveMask(extra.isAllocated() ? extra->requestedFont.resolveMask() | font.resolveMask() : font.resolveMask());
-
- const QFont defaultFont = QQuickTheme::font(QQuickTheme::TextField);
- QFont resolvedFont = parentFont.resolve(defaultFont);
-
- setFont_helper(resolvedFont);
-}
-
-/*!
- \internal
-
- Assign \a font to this control, and propagate it to all children.
-*/
-void QQuickTextFieldPrivate::updateFont(const QFont &font)
-{
- Q_Q(QQuickTextField);
- QFont oldFont = sourceFont;
- q->QQuickTextInput::setFont(font);
-
- QQuickControlPrivate::updateFontRecur(q, font);
-
- if (oldFont != font)
- emit q->fontChanged();
-}
-
-#if QT_CONFIG(quicktemplates2_hover)
-void QQuickTextFieldPrivate::updateHoverEnabled(bool enabled, bool xplicit)
-{
- Q_Q(QQuickTextField);
- if (!xplicit && explicitHoverEnabled)
- return;
-
- bool wasEnabled = q->isHoverEnabled();
- explicitHoverEnabled = xplicit;
- if (wasEnabled != enabled) {
- q->setAcceptHoverEvents(enabled);
- QQuickControlPrivate::updateHoverEnabledRecur(q, enabled);
- emit q->hoverEnabledChanged();
- }
-}
-#endif
-
-qreal QQuickTextFieldPrivate::getImplicitWidth() const
-{
- return QQuickItemPrivate::getImplicitWidth();
-}
-
-qreal QQuickTextFieldPrivate::getImplicitHeight() const
-{
- return QQuickItemPrivate::getImplicitHeight();
-}
-
-void QQuickTextFieldPrivate::implicitWidthChanged()
-{
- Q_Q(QQuickTextField);
- QQuickItemPrivate::implicitWidthChanged();
- emit q->implicitWidthChanged3();
-}
-
-void QQuickTextFieldPrivate::implicitHeightChanged()
-{
- Q_Q(QQuickTextField);
- QQuickItemPrivate::implicitHeightChanged();
- emit q->implicitHeightChanged3();
-}
-
-void QQuickTextFieldPrivate::readOnlyChanged(bool isReadOnly)
-{
- Q_UNUSED(isReadOnly);
-#if QT_CONFIG(accessibility)
- if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(q_func()))
- accessibleAttached->set_readOnly(isReadOnly);
-#endif
-#if QT_CONFIG(cursor)
- q_func()->setCursor(isReadOnly ? Qt::ArrowCursor : Qt::IBeamCursor);
-#endif
-}
-
-void QQuickTextFieldPrivate::echoModeChanged(QQuickTextField::EchoMode echoMode)
-{
-#if QT_CONFIG(accessibility)
- if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(q_func()))
- accessibleAttached->set_passwordEdit((echoMode == QQuickTextField::Password || echoMode == QQuickTextField::PasswordEchoOnEdit) ? true : false);
-#else
- Q_UNUSED(echoMode);
-#endif
-}
-
-#if QT_CONFIG(accessibility)
-void QQuickTextFieldPrivate::accessibilityActiveChanged(bool active)
-{
- if (!active)
- return;
-
- Q_Q(QQuickTextField);
- QQuickAccessibleAttached *accessibleAttached = qobject_cast<QQuickAccessibleAttached *>(qmlAttachedPropertiesObject<QQuickAccessibleAttached>(q, true));
- Q_ASSERT(accessibleAttached);
- accessibleAttached->setRole(accessibleRole());
- accessibleAttached->set_readOnly(m_readOnly);
- accessibleAttached->set_passwordEdit((m_echoMode == QQuickTextField::Password || m_echoMode == QQuickTextField::PasswordEchoOnEdit) ? true : false);
- accessibleAttached->setDescription(placeholder);
-}
-
-QAccessible::Role QQuickTextFieldPrivate::accessibleRole() const
-{
- return QAccessible::EditableText;
-}
-#endif
-
-static inline QString backgroundName() { return QStringLiteral("background"); }
-
-void QQuickTextFieldPrivate::cancelBackground()
-{
- Q_Q(QQuickTextField);
- quickCancelDeferred(q, backgroundName());
-}
-
-void QQuickTextFieldPrivate::executeBackground(bool complete)
-{
- Q_Q(QQuickTextField);
- if (background.wasExecuted())
- return;
-
- if (!background || complete)
- quickBeginDeferred(q, backgroundName(), background);
- if (complete)
- quickCompleteDeferred(q, backgroundName(), background);
-}
-
-void QQuickTextFieldPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff)
-{
- Q_UNUSED(diff);
- if (resizingBackground || item != background || !change.sizeChange())
- return;
-
- QQuickItemPrivate *p = QQuickItemPrivate::get(item);
- // QTBUG-71875: only allocate the extra data if we have to.
- // resizeBackground() relies on the value of extra.isAllocated()
- // as part of its checks to see whether it should resize the background or not.
- if (p->widthValid() || extra.isAllocated())
- extra.value().hasBackgroundWidth = p->widthValid();
- if (p->heightValid() || extra.isAllocated())
- extra.value().hasBackgroundHeight = p->heightValid();
- resizeBackground();
-}
-
-void QQuickTextFieldPrivate::itemImplicitWidthChanged(QQuickItem *item)
-{
- Q_Q(QQuickTextField);
- if (item == background)
- emit q->implicitBackgroundWidthChanged();
-}
-
-void QQuickTextFieldPrivate::itemImplicitHeightChanged(QQuickItem *item)
-{
- Q_Q(QQuickTextField);
- if (item == background)
- emit q->implicitBackgroundHeightChanged();
-}
-
-void QQuickTextFieldPrivate::itemDestroyed(QQuickItem *item)
-{
- Q_Q(QQuickTextField);
- if (item == background) {
- background = nullptr;
- emit q->implicitBackgroundWidthChanged();
- emit q->implicitBackgroundHeightChanged();
- }
-}
-
-QPalette QQuickTextFieldPrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::TextField);
-}
-
-QQuickTextField::QQuickTextField(QQuickItem *parent)
- : QQuickTextInput(*(new QQuickTextFieldPrivate), parent)
-{
- Q_D(QQuickTextField);
- d->pressHandler.control = this;
- d->setImplicitResizeEnabled(false);
- setAcceptedMouseButtons(Qt::AllButtons);
- setActiveFocusOnTab(true);
-#if QT_CONFIG(cursor)
- setCursor(Qt::IBeamCursor);
-#endif
- QObjectPrivate::connect(this, &QQuickTextInput::readOnlyChanged, d, &QQuickTextFieldPrivate::readOnlyChanged);
- QObjectPrivate::connect(this, &QQuickTextInput::echoModeChanged, d, &QQuickTextFieldPrivate::echoModeChanged);
-}
-
-QQuickTextField::~QQuickTextField()
-{
- Q_D(QQuickTextField);
- QQuickControlPrivate::removeImplicitSizeListener(d->background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
-}
-
-QFont QQuickTextField::font() const
-{
- return QQuickTextInput::font();
-}
-
-void QQuickTextField::setFont(const QFont &font)
-{
- Q_D(QQuickTextField);
- if (d->extra.value().requestedFont.resolveMask() == font.resolveMask() && d->extra.value().requestedFont == font)
- return;
-
- d->extra.value().requestedFont = font;
- d->resolveFont();
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::TextField::background
-
- This property holds the background item.
-
- \input qquickcontrol-background.qdocinc notes
-
- \sa {Customizing TextField}
-*/
-QQuickItem *QQuickTextField::background() const
-{
- QQuickTextFieldPrivate *d = const_cast<QQuickTextFieldPrivate *>(d_func());
- if (!d->background)
- d->executeBackground();
- return d->background;
-}
-
-void QQuickTextField::setBackground(QQuickItem *background)
-{
- Q_D(QQuickTextField);
- if (d->background == background)
- return;
-
- if (!d->background.isExecuting())
- d->cancelBackground();
-
- const qreal oldImplicitBackgroundWidth = implicitBackgroundWidth();
- const qreal oldImplicitBackgroundHeight = implicitBackgroundHeight();
-
- if (d->extra.isAllocated()) {
- d->extra.value().hasBackgroundWidth = false;
- d->extra.value().hasBackgroundHeight = false;
- }
-
- QQuickControlPrivate::removeImplicitSizeListener(d->background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
- QQuickControlPrivate::hideOldItem(d->background);
- d->background = background;
-
- if (background) {
- background->setParentItem(this);
- if (qFuzzyIsNull(background->z()))
- background->setZ(-1);
- QQuickItemPrivate *p = QQuickItemPrivate::get(background);
- if (p->widthValid() || p->heightValid()) {
- d->extra.value().hasBackgroundWidth = p->widthValid();
- d->extra.value().hasBackgroundHeight = p->heightValid();
- }
- if (isComponentComplete())
- d->resizeBackground();
- QQuickControlPrivate::addImplicitSizeListener(background, d, QQuickControlPrivate::ImplicitSizeChanges | QQuickItemPrivate::Geometry);
- }
-
- if (!qFuzzyCompare(oldImplicitBackgroundWidth, implicitBackgroundWidth()))
- emit implicitBackgroundWidthChanged();
- if (!qFuzzyCompare(oldImplicitBackgroundHeight, implicitBackgroundHeight()))
- emit implicitBackgroundHeightChanged();
- if (!d->background.isExecuting())
- emit backgroundChanged();
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::TextField::placeholderText
-
- This property holds the hint that is displayed in the TextField before the user
- enters text.
-*/
-QString QQuickTextField::placeholderText() const
-{
- Q_D(const QQuickTextField);
- return d->placeholder;
-}
-
-void QQuickTextField::setPlaceholderText(const QString &text)
-{
- Q_D(QQuickTextField);
- if (d->placeholder == text)
- return;
-
- d->placeholder = text;
-#if QT_CONFIG(accessibility)
- if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this))
- accessibleAttached->setDescription(text);
-#endif
- emit placeholderTextChanged();
-}
-
-/*!
- \qmlproperty color QtQuick.Controls::TextField::placeholderTextColor
- \since QtQuick.Controls 2.5 (Qt 5.12)
-
- This property holds the color of placeholderText.
-
- \sa placeholderText
-*/
-QColor QQuickTextField::placeholderTextColor() const
-{
- Q_D(const QQuickTextField);
- return d->placeholderColor;
-}
-
-void QQuickTextField::setPlaceholderTextColor(const QColor &color)
-{
- Q_D(QQuickTextField);
- if (d->placeholderColor == color)
- return;
-
- d->placeholderColor = color;
- emit placeholderTextColorChanged();
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::TextField::focusReason
-
- \include qquickcontrol-focusreason.qdocinc
-*/
-Qt::FocusReason QQuickTextField::focusReason() const
-{
- Q_D(const QQuickTextField);
- return d->focusReason;
-}
-
-void QQuickTextField::setFocusReason(Qt::FocusReason reason)
-{
- Q_D(QQuickTextField);
- if (d->focusReason == reason)
- return;
-
- d->focusReason = reason;
- emit focusReasonChanged();
-}
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlproperty bool QtQuick.Controls::TextField::hovered
- \readonly
-
- This property holds whether the text field is hovered.
-
- \sa hoverEnabled
-*/
-bool QQuickTextField::isHovered() const
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(const QQuickTextField);
- return d->hovered;
-#else
- return false;
-#endif
-}
-
-void QQuickTextField::setHovered(bool hovered)
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(QQuickTextField);
- if (hovered == d->hovered)
- return;
-
- d->hovered = hovered;
- emit hoveredChanged();
-#else
- Q_UNUSED(hovered);
-#endif
-}
-
-/*!
- \since QtQuick.Controls 2.1 (Qt 5.8)
- \qmlproperty bool QtQuick.Controls::TextField::hoverEnabled
-
- This property determines whether the text field accepts hover events. The default value is \c false.
-
- \sa hovered
-*/
-bool QQuickTextField::isHoverEnabled() const
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(const QQuickTextField);
- return d->hoverEnabled;
-#else
- return false;
-#endif
-}
-
-void QQuickTextField::setHoverEnabled(bool enabled)
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(QQuickTextField);
- if (d->explicitHoverEnabled && enabled == d->hoverEnabled)
- return;
-
- d->updateHoverEnabled(enabled, true); // explicit=true
-#else
- Q_UNUSED(enabled);
-#endif
-}
-
-void QQuickTextField::resetHoverEnabled()
-{
-#if QT_CONFIG(quicktemplates2_hover)
- Q_D(QQuickTextField);
- if (!d->explicitHoverEnabled)
- return;
-
- d->explicitHoverEnabled = false;
- d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false
-#endif
-}
-
-void QQuickTextField::classBegin()
-{
- Q_D(QQuickTextField);
- QQuickTextInput::classBegin();
- d->resolveFont();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextField::implicitBackgroundWidth
- \readonly
-
- This property holds the implicit background width.
-
- The value is equal to \c {background ? background.implicitWidth : 0}.
-
- \sa implicitBackgroundHeight
-*/
-qreal QQuickTextField::implicitBackgroundWidth() const
-{
- Q_D(const QQuickTextField);
- if (!d->background)
- return 0;
- return d->background->implicitWidth();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextField::implicitBackgroundHeight
- \readonly
-
- This property holds the implicit background height.
-
- The value is equal to \c {background ? background.implicitHeight : 0}.
-
- \sa implicitBackgroundWidth
-*/
-qreal QQuickTextField::implicitBackgroundHeight() const
-{
- Q_D(const QQuickTextField);
- if (!d->background)
- return 0;
- return d->background->implicitHeight();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextField::topInset
-
- This property holds the top inset for the background.
-
- \sa {Control Layout}, bottomInset
-*/
-qreal QQuickTextField::topInset() const
-{
- Q_D(const QQuickTextField);
- return d->getTopInset();
-}
-
-void QQuickTextField::setTopInset(qreal inset)
-{
- Q_D(QQuickTextField);
- d->setTopInset(inset);
-}
-
-void QQuickTextField::resetTopInset()
-{
- Q_D(QQuickTextField);
- d->setTopInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextField::leftInset
-
- This property holds the left inset for the background.
-
- \sa {Control Layout}, rightInset
-*/
-qreal QQuickTextField::leftInset() const
-{
- Q_D(const QQuickTextField);
- return d->getLeftInset();
-}
-
-void QQuickTextField::setLeftInset(qreal inset)
-{
- Q_D(QQuickTextField);
- d->setLeftInset(inset);
-}
-
-void QQuickTextField::resetLeftInset()
-{
- Q_D(QQuickTextField);
- d->setLeftInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextField::rightInset
-
- This property holds the right inset for the background.
-
- \sa {Control Layout}, leftInset
-*/
-qreal QQuickTextField::rightInset() const
-{
- Q_D(const QQuickTextField);
- return d->getRightInset();
-}
-
-void QQuickTextField::setRightInset(qreal inset)
-{
- Q_D(QQuickTextField);
- d->setRightInset(inset);
-}
-
-void QQuickTextField::resetRightInset()
-{
- Q_D(QQuickTextField);
- d->setRightInset(0, true);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlproperty real QtQuick.Controls::TextField::bottomInset
-
- This property holds the bottom inset for the background.
-
- \sa {Control Layout}, topInset
-*/
-qreal QQuickTextField::bottomInset() const
-{
- Q_D(const QQuickTextField);
- return d->getBottomInset();
-}
-
-void QQuickTextField::setBottomInset(qreal inset)
-{
- Q_D(QQuickTextField);
- d->setBottomInset(inset);
-}
-
-void QQuickTextField::resetBottomInset()
-{
- Q_D(QQuickTextField);
- d->setBottomInset(0, true);
-}
-
-void QQuickTextField::componentComplete()
-{
- Q_D(QQuickTextField);
- d->executeBackground(true);
- QQuickTextInput::componentComplete();
- d->resizeBackground();
-#if QT_CONFIG(quicktemplates2_hover)
- if (!d->explicitHoverEnabled)
- setAcceptHoverEvents(QQuickControlPrivate::calcHoverEnabled(d->parentItem));
-#endif
-#if QT_CONFIG(accessibility)
- if (QAccessible::isActive())
- d->accessibilityActiveChanged(true);
-#endif
-}
-
-void QQuickTextField::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value)
-{
- Q_D(QQuickTextField);
- QQuickTextInput::itemChange(change, value);
- switch (change) {
- case ItemEnabledHasChanged:
- break;
- case ItemSceneChange:
- case ItemParentHasChanged:
- if ((change == ItemParentHasChanged && value.item) || (change == ItemSceneChange && value.window)) {
- d->resolveFont();
-#if QT_CONFIG(quicktemplates2_hover)
- if (!d->explicitHoverEnabled)
- d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false
-#endif
- }
- break;
- default:
- break;
- }
-}
-
-void QQuickTextField::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickTextField);
- QQuickTextInput::geometryChange(newGeometry, oldGeometry);
- d->resizeBackground();
-}
-
-void QQuickTextField::insetChange(const QMarginsF &newInset, const QMarginsF &oldInset)
-{
- Q_D(QQuickTextField);
- Q_UNUSED(newInset);
- Q_UNUSED(oldInset);
- d->resizeBackground();
-}
-QSGNode *QQuickTextField::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data)
-{
- QQuickDefaultClipNode *clipNode = static_cast<QQuickDefaultClipNode *>(oldNode);
- if (!clipNode)
- clipNode = new QQuickDefaultClipNode(QRectF());
-
- clipNode->setRect(clipRect().adjusted(leftPadding(), topPadding(), -rightPadding(), -bottomPadding()));
- clipNode->update();
-
- QSGNode *textNode = QQuickTextInput::updatePaintNode(clipNode->firstChild(), data);
- if (!textNode->parent())
- clipNode->appendChildNode(textNode);
-
- return clipNode;
-}
-
-void QQuickTextField::focusInEvent(QFocusEvent *event)
-{
- QQuickTextInput::focusInEvent(event);
- setFocusReason(event->reason());
-}
-
-void QQuickTextField::focusOutEvent(QFocusEvent *event)
-{
- QQuickTextInput::focusOutEvent(event);
- setFocusReason(event->reason());
-}
-
-#if QT_CONFIG(quicktemplates2_hover)
-void QQuickTextField::hoverEnterEvent(QHoverEvent *event)
-{
- Q_D(QQuickTextField);
- QQuickTextInput::hoverEnterEvent(event);
- setHovered(d->hoverEnabled);
- event->setAccepted(d->hoverEnabled);
-}
-
-void QQuickTextField::hoverLeaveEvent(QHoverEvent *event)
-{
- Q_D(QQuickTextField);
- QQuickTextInput::hoverLeaveEvent(event);
- setHovered(false);
- event->setAccepted(d->hoverEnabled);
-}
-#endif
-
-void QQuickTextField::mousePressEvent(QMouseEvent *event)
-{
- Q_D(QQuickTextField);
- d->pressHandler.mousePressEvent(event);
- if (d->pressHandler.isActive()) {
- if (d->pressHandler.delayedMousePressEvent) {
- QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent);
- d->pressHandler.clearDelayedMouseEvent();
- }
- if (event->buttons() != Qt::RightButton)
- QQuickTextInput::mousePressEvent(event);
- }
-}
-
-void QQuickTextField::mouseMoveEvent(QMouseEvent *event)
-{
- Q_D(QQuickTextField);
- d->pressHandler.mouseMoveEvent(event);
- if (d->pressHandler.isActive()) {
- if (d->pressHandler.delayedMousePressEvent) {
- QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent);
- d->pressHandler.clearDelayedMouseEvent();
- }
- if (event->buttons() != Qt::RightButton)
- QQuickTextInput::mouseMoveEvent(event);
- }
-}
-
-void QQuickTextField::mouseReleaseEvent(QMouseEvent *event)
-{
- Q_D(QQuickTextField);
- d->pressHandler.mouseReleaseEvent(event);
- if (d->pressHandler.isActive()) {
- if (d->pressHandler.delayedMousePressEvent) {
- QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent);
- d->pressHandler.clearDelayedMouseEvent();
- }
- if (event->buttons() != Qt::RightButton)
- QQuickTextInput::mouseReleaseEvent(event);
- }
-}
-
-void QQuickTextField::mouseDoubleClickEvent(QMouseEvent *event)
-{
- Q_D(QQuickTextField);
- if (d->pressHandler.delayedMousePressEvent) {
- QQuickTextInput::mousePressEvent(d->pressHandler.delayedMousePressEvent);
- d->pressHandler.clearDelayedMouseEvent();
- }
- if (event->buttons() != Qt::RightButton)
- QQuickTextInput::mouseDoubleClickEvent(event);
-}
-
-void QQuickTextField::timerEvent(QTimerEvent *event)
-{
- Q_D(QQuickTextField);
- if (event->timerId() == d->pressHandler.timer.timerId())
- d->pressHandler.timerEvent(event);
- else
- QQuickTextInput::timerEvent(event);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktextfield_p.h b/src/quicktemplates2/qquicktextfield_p.h
deleted file mode 100644
index a1d433c0..00000000
--- a/src/quicktemplates2/qquicktextfield_p.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTEXTFIELD_P_H
-#define QQUICKTEXTFIELD_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtGui/qpalette.h>
-#include <QtQuick/private/qquicktextinput_p.h>
-#include <QtQuick/private/qquickevents_p_p.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTextFieldPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTextField : public QQuickTextInput
-{
- Q_OBJECT
- Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged) // override
- Q_PROPERTY(qreal implicitWidth READ implicitWidth WRITE setImplicitWidth NOTIFY implicitWidthChanged3 FINAL)
- Q_PROPERTY(qreal implicitHeight READ implicitHeight WRITE setImplicitHeight NOTIFY implicitHeightChanged3 FINAL)
- Q_PROPERTY(QQuickItem *background READ background WRITE setBackground NOTIFY backgroundChanged FINAL)
- Q_PROPERTY(QString placeholderText READ placeholderText WRITE setPlaceholderText NOTIFY placeholderTextChanged FINAL)
- Q_PROPERTY(Qt::FocusReason focusReason READ focusReason WRITE setFocusReason NOTIFY focusReasonChanged FINAL)
- // 2.1 (Qt 5.8)
- Q_PROPERTY(bool hovered READ isHovered NOTIFY hoveredChanged FINAL REVISION(2, 1))
- Q_PROPERTY(bool hoverEnabled READ isHoverEnabled WRITE setHoverEnabled RESET resetHoverEnabled NOTIFY hoverEnabledChanged FINAL REVISION(2, 1))
- // 2.5 (Qt 5.12)
- Q_PROPERTY(QColor placeholderTextColor READ placeholderTextColor WRITE setPlaceholderTextColor NOTIFY placeholderTextColorChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitBackgroundWidth READ implicitBackgroundWidth NOTIFY implicitBackgroundWidthChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal implicitBackgroundHeight READ implicitBackgroundHeight NOTIFY implicitBackgroundHeightChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal topInset READ topInset WRITE setTopInset RESET resetTopInset NOTIFY topInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal leftInset READ leftInset WRITE setLeftInset RESET resetLeftInset NOTIFY leftInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal rightInset READ rightInset WRITE setRightInset RESET resetRightInset NOTIFY rightInsetChanged FINAL REVISION(2, 5))
- Q_PROPERTY(qreal bottomInset READ bottomInset WRITE setBottomInset RESET resetBottomInset NOTIFY bottomInsetChanged FINAL REVISION(2, 5))
- Q_CLASSINFO("DeferredPropertyNames", "background")
- QML_NAMED_ELEMENT(TextField)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickTextField(QQuickItem *parent = nullptr);
- ~QQuickTextField();
-
- QFont font() const;
- void setFont(const QFont &font);
-
- QQuickItem *background() const;
- void setBackground(QQuickItem *background);
-
- QString placeholderText() const;
- void setPlaceholderText(const QString &text);
-
- Qt::FocusReason focusReason() const;
- void setFocusReason(Qt::FocusReason reason);
-
- // 2.1 (Qt 5.8)
- bool isHovered() const;
- void setHovered(bool hovered);
-
- bool isHoverEnabled() const;
- void setHoverEnabled(bool enabled);
- void resetHoverEnabled();
-
- // 2.5 (Qt 5.12)
- QColor placeholderTextColor() const;
- void setPlaceholderTextColor(const QColor &color);
-
- qreal implicitBackgroundWidth() const;
- qreal implicitBackgroundHeight() const;
-
- qreal topInset() const;
- void setTopInset(qreal inset);
- void resetTopInset();
-
- qreal leftInset() const;
- void setLeftInset(qreal inset);
- void resetLeftInset();
-
- qreal rightInset() const;
- void setRightInset(qreal inset);
- void resetRightInset();
-
- qreal bottomInset() const;
- void setBottomInset(qreal inset);
- void resetBottomInset();
-
-Q_SIGNALS:
- void fontChanged();
- void implicitWidthChanged3();
- void implicitHeightChanged3();
- void backgroundChanged();
- void placeholderTextChanged();
- void focusReasonChanged();
- void pressAndHold(QQuickMouseEvent *event);
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) void pressed(QQuickMouseEvent *event);
- Q_REVISION(2, 1) void released(QQuickMouseEvent *event);
- Q_REVISION(2, 1) void hoveredChanged();
- Q_REVISION(2, 1) void hoverEnabledChanged();
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) void placeholderTextColorChanged();
- Q_REVISION(2, 5) void implicitBackgroundWidthChanged();
- Q_REVISION(2, 5) void implicitBackgroundHeightChanged();
- Q_REVISION(2, 5) void topInsetChanged();
- Q_REVISION(2, 5) void leftInsetChanged();
- Q_REVISION(2, 5) void rightInsetChanged();
- Q_REVISION(2, 5) void bottomInsetChanged();
-
-protected:
- friend struct QQuickPressHandler;
-
- void classBegin() override;
- void componentComplete() override;
-
- void itemChange(ItemChange change, const ItemChangeData &value) override;
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- virtual void insetChange(const QMarginsF &newInset, const QMarginsF &oldInset);
-
- QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *data) override;
-
- void focusInEvent(QFocusEvent *event) override;
- void focusOutEvent(QFocusEvent *event) override;
-#if QT_CONFIG(quicktemplates2_hover)
- void hoverEnterEvent(QHoverEvent *event) override;
- void hoverLeaveEvent(QHoverEvent *event) override;
-#endif
- void mousePressEvent(QMouseEvent *event) override;
- void mouseMoveEvent(QMouseEvent *event) override;
- void mouseReleaseEvent(QMouseEvent *event) override;
- void mouseDoubleClickEvent(QMouseEvent *event) override;
- void timerEvent(QTimerEvent *event) override;
-
-private:
- Q_DISABLE_COPY(QQuickTextField)
- Q_DECLARE_PRIVATE(QQuickTextField)
-};
-
-struct QQuickTextFieldForeign
-{
- Q_GADGET
- QML_ANONYMOUS
- QML_FOREIGN(QQuickTextInput)
- QML_ADDED_IN_VERSION(2, 2)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickTextField)
-
-#endif // QQUICKTEXTFIELD_P_H
diff --git a/src/quicktemplates2/qquicktextfield_p_p.h b/src/quicktemplates2/qquicktextfield_p_p.h
deleted file mode 100644
index d8128972..00000000
--- a/src/quicktemplates2/qquicktextfield_p_p.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTEXTFIELD_P_P_H
-#define QQUICKTEXTFIELD_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQml/private/qlazilyallocated_p.h>
-#include <QtQuick/private/qquicktextinput_p_p.h>
-#include <QtQuick/private/qquickitemchangelistener_p.h>
-#include <QtQuickTemplates2/private/qquickpresshandler_p_p.h>
-#include <QtQuickTemplates2/private/qquickdeferredpointer_p_p.h>
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-#include <QtQuickTemplates2/private/qquicktextfield_p.h>
-
-#if QT_CONFIG(accessibility)
-#include <QtGui/qaccessible.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTextFieldPrivate : public QQuickTextInputPrivate, public QQuickItemChangeListener
-#if QT_CONFIG(accessibility)
- , public QAccessible::ActivationObserver
-#endif
-{
- Q_DECLARE_PUBLIC(QQuickTextField)
-
-public:
- QQuickTextFieldPrivate();
- ~QQuickTextFieldPrivate();
-
- static QQuickTextFieldPrivate *get(QQuickTextField *item) {
- return static_cast<QQuickTextFieldPrivate *>(QObjectPrivate::get(item)); }
-
- inline QMarginsF getInset() const { return QMarginsF(getLeftInset(), getTopInset(), getRightInset(), getBottomInset()); }
- inline qreal getTopInset() const { return extra.isAllocated() ? extra->topInset : 0; }
- inline qreal getLeftInset() const { return extra.isAllocated() ? extra->leftInset : 0; }
- inline qreal getRightInset() const { return extra.isAllocated() ? extra->rightInset : 0; }
- inline qreal getBottomInset() const { return extra.isAllocated() ? extra->bottomInset : 0; }
-
- void setTopInset(qreal value, bool reset = false);
- void setLeftInset(qreal value, bool reset = false);
- void setRightInset(qreal value, bool reset = false);
- void setBottomInset(qreal value, bool reset = false);
-
- void resizeBackground();
-
- void resolveFont();
- void inheritFont(const QFont &font);
- void updateFont(const QFont &font);
- inline void setFont_helper(const QFont &font) {
- if (sourceFont.resolveMask() == font.resolveMask() && sourceFont == font)
- return;
- updateFont(font);
- }
-
-#if QT_CONFIG(quicktemplates2_hover)
- void updateHoverEnabled(bool h, bool e);
-#endif
-
- qreal getImplicitWidth() const override;
- qreal getImplicitHeight() const override;
-
- void implicitWidthChanged() override;
- void implicitHeightChanged() override;
-
- void readOnlyChanged(bool isReadOnly);
- void echoModeChanged(QQuickTextField::EchoMode echoMode);
-
-#if QT_CONFIG(accessibility)
- void accessibilityActiveChanged(bool active) override;
- QAccessible::Role accessibleRole() const override;
-#endif
-
- void cancelBackground();
- void executeBackground(bool complete = false);
-
- void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override;
- void itemImplicitWidthChanged(QQuickItem *item) override;
- void itemImplicitHeightChanged(QQuickItem *item) override;
- void itemDestroyed(QQuickItem *item) override;
-
- QPalette defaultPalette() const override;
-
-#if QT_CONFIG(quicktemplates2_hover)
- bool hovered = false;
- bool explicitHoverEnabled = false;
-#endif
-
- struct ExtraData {
- bool hasTopInset = false;
- bool hasLeftInset = false;
- bool hasRightInset = false;
- bool hasBottomInset = false;
- bool hasBackgroundWidth = false;
- bool hasBackgroundHeight = false;
- qreal topInset = 0;
- qreal leftInset = 0;
- qreal rightInset = 0;
- qreal bottomInset = 0;
- QFont requestedFont;
- };
- QLazilyAllocated<ExtraData> extra;
-
- bool resizingBackground = false;
- QQuickDeferredPointer<QQuickItem> background;
- QString placeholder;
- QColor placeholderColor;
- Qt::FocusReason focusReason = Qt::OtherFocusReason;
- QQuickPressHandler pressHandler;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKTEXTFIELD_P_P_H
diff --git a/src/quicktemplates2/qquicktheme.cpp b/src/quicktemplates2/qquicktheme.cpp
deleted file mode 100644
index b94b4198..00000000
--- a/src/quicktemplates2/qquicktheme.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktheme_p.h"
-#include "qquicktheme_p_p.h"
-
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtGui/private/qguiapplication_p.h>
-
-QT_BEGIN_NAMESPACE
-
-std::unique_ptr<QQuickTheme> QQuickThemePrivate::instance;
-
-static void cleanup_instance()
-{
- QQuickThemePrivate::instance.reset();
-}
-
-static void install_instance_cleanuper()
-{
- qAddPostRoutine(cleanup_instance);
-}
-
-Q_COREAPP_STARTUP_FUNCTION(install_instance_cleanuper)
-
-static QPlatformTheme::Font platformFont(QQuickTheme::Scope scope)
-{
- switch (scope) {
- case QQuickTheme::Button: return QPlatformTheme::PushButtonFont;
- case QQuickTheme::CheckBox: return QPlatformTheme::CheckBoxFont;
- case QQuickTheme::ComboBox: return QPlatformTheme::ComboMenuItemFont;
- case QQuickTheme::GroupBox: return QPlatformTheme::GroupBoxTitleFont;
- case QQuickTheme::ItemView: return QPlatformTheme::ItemViewFont;
- case QQuickTheme::Label: return QPlatformTheme::LabelFont;
- case QQuickTheme::ListView: return QPlatformTheme::ListViewFont;
- case QQuickTheme::Menu: return QPlatformTheme::MenuFont;
- case QQuickTheme::MenuBar: return QPlatformTheme::MenuBarFont;
- case QQuickTheme::RadioButton: return QPlatformTheme::RadioButtonFont;
- case QQuickTheme::SpinBox: return QPlatformTheme::EditorFont;
- case QQuickTheme::Switch: return QPlatformTheme::CheckBoxFont;
- case QQuickTheme::TabBar: return QPlatformTheme::TabButtonFont;
- case QQuickTheme::TextArea: return QPlatformTheme::EditorFont;
- case QQuickTheme::TextField: return QPlatformTheme::EditorFont;
- case QQuickTheme::ToolBar: return QPlatformTheme::ToolButtonFont;
- case QQuickTheme::ToolTip: return QPlatformTheme::TipLabelFont;
- case QQuickTheme::Tumbler: return QPlatformTheme::ItemViewFont;
- default: return QPlatformTheme::SystemFont;
- }
-}
-
-static QPlatformTheme::Palette platformPalette(QQuickTheme::Scope scope)
-{
- switch (scope) {
- case QQuickTheme::Button: return QPlatformTheme::ButtonPalette;
- case QQuickTheme::CheckBox: return QPlatformTheme::CheckBoxPalette;
- case QQuickTheme::ComboBox: return QPlatformTheme::ComboBoxPalette;
- case QQuickTheme::GroupBox: return QPlatformTheme::GroupBoxPalette;
- case QQuickTheme::ItemView: return QPlatformTheme::ItemViewPalette;
- case QQuickTheme::Label: return QPlatformTheme::LabelPalette;
- case QQuickTheme::ListView: return QPlatformTheme::ItemViewPalette;
- case QQuickTheme::Menu: return QPlatformTheme::MenuPalette;
- case QQuickTheme::MenuBar: return QPlatformTheme::MenuBarPalette;
- case QQuickTheme::RadioButton: return QPlatformTheme::RadioButtonPalette;
- case QQuickTheme::SpinBox: return QPlatformTheme::TextLineEditPalette;
- case QQuickTheme::Switch: return QPlatformTheme::CheckBoxPalette;
- case QQuickTheme::TabBar: return QPlatformTheme::TabBarPalette;
- case QQuickTheme::TextArea: return QPlatformTheme::TextEditPalette;
- case QQuickTheme::TextField: return QPlatformTheme::TextLineEditPalette;
- case QQuickTheme::ToolBar: return QPlatformTheme::ToolButtonPalette;
- case QQuickTheme::ToolTip: return QPlatformTheme::ToolTipPalette;
- case QQuickTheme::Tumbler: return QPlatformTheme::ItemViewPalette;
- default: return QPlatformTheme::SystemPalette;
- }
-}
-
-QQuickTheme::QQuickTheme()
- : d_ptr(new QQuickThemePrivate)
-{
-}
-
-QQuickTheme::~QQuickTheme()
-{
-}
-
-QQuickTheme *QQuickTheme::instance()
-{
- return QQuickThemePrivate::instance.get();
-}
-
-QFont QQuickTheme::font(Scope scope)
-{
- const QFont *font = nullptr;
- if (QQuickTheme *theme = instance())
- font = QQuickThemePrivate::get(theme)->fonts[scope].data();
- else if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
- font = theme->font(platformFont(scope));
-
- if (font) {
- QFont f = *font;
- if (scope == System)
- f.setResolveMask(0);
- return f;
- }
-
- if (scope != System)
- return QQuickTheme::font(System);
-
- return QFont();
-}
-
-QPalette QQuickTheme::palette(Scope scope)
-{
- const QPalette *palette = nullptr;
- if (QQuickTheme *theme = instance())
- palette = QQuickThemePrivate::get(theme)->palettes[scope].data();
- else if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
- palette = theme->palette(platformPalette(scope));
-
- if (palette) {
- QPalette f = *palette;
- if (scope == System)
- f.setResolveMask(0);
- return f;
- }
-
- if (scope != System)
- return QQuickTheme::palette(System);
-
- return QPalette();
-}
-
-void QQuickTheme::setFont(Scope scope, const QFont &font)
-{
- Q_D(QQuickTheme);
- d->fonts[scope] = QSharedPointer<QFont>::create(d->defaultFont ? d->defaultFont->resolve(font) : font);
-}
-
-void QQuickTheme::setPalette(Scope scope, const QPalette &palette)
-{
- Q_D(QQuickTheme);
- d->palettes[scope] = QSharedPointer<QPalette>::create(d->defaultPalette ? d->defaultPalette->resolve(palette) : palette);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktheme_p.h b/src/quicktemplates2/qquicktheme_p.h
deleted file mode 100644
index d51cc5b6..00000000
--- a/src/quicktemplates2/qquicktheme_p.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTHEME_P_H
-#define QQUICKTHEME_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-#include <QtCore/qscopedpointer.h>
-#include <QtGui/qfont.h>
-#include <QtGui/qpalette.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickThemePrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTheme
-{
-public:
- QQuickTheme();
- ~QQuickTheme();
-
- static QQuickTheme *instance();
-
- enum Scope {
- System,
- Button,
- CheckBox,
- ComboBox,
- GroupBox,
- ItemView,
- Label,
- ListView,
- Menu,
- MenuBar,
- RadioButton,
- SpinBox,
- Switch,
- TabBar,
- TextArea,
- TextField,
- ToolBar,
- ToolTip,
- Tumbler
- };
-
- static QFont font(Scope scope);
- static QPalette palette(Scope scope);
-
- void setFont(Scope scope, const QFont &font);
- void setPalette(Scope scope, const QPalette &palette);
-
-private:
- Q_DISABLE_COPY(QQuickTheme)
- Q_DECLARE_PRIVATE(QQuickTheme)
- QScopedPointer<QQuickThemePrivate> d_ptr;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKTHEME_P_H
diff --git a/src/quicktemplates2/qquicktheme_p_p.h b/src/quicktemplates2/qquicktheme_p_p.h
deleted file mode 100644
index b2c40eeb..00000000
--- a/src/quicktemplates2/qquicktheme_p_p.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTHEME_P_P_H
-#define QQUICKTHEME_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquicktheme_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickThemePrivate
-{
-public:
- static QQuickThemePrivate *get(QQuickTheme *theme)
- {
- return theme->d_func();
- }
-
- static std::unique_ptr<QQuickTheme> instance;
-
- static const int NScopes = QQuickTheme::Tumbler + 1;
-
- QScopedPointer<const QFont> defaultFont;
- QScopedPointer<const QPalette> defaultPalette;
- QSharedPointer<QFont> fonts[NScopes];
- QSharedPointer<QPalette> palettes[NScopes];
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKTHEME_P_P_H
diff --git a/src/quicktemplates2/qquicktoolbar.cpp b/src/quicktemplates2/qquicktoolbar.cpp
deleted file mode 100644
index f77bf3e8..00000000
--- a/src/quicktemplates2/qquicktoolbar.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktoolbar_p.h"
-#include "qquickpane_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ToolBar
- \inherits Pane
-//! \instantiates QQuickToolBar
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-containers
- \brief Container for context-sensitive controls.
-
- ToolBar is a container of application-wide and context sensitive
- actions and controls, such as navigation buttons and search fields.
- ToolBar is commonly used as a \l {ApplicationWindow::header}{header}
- or a \l {ApplicationWindow::footer}{footer} of an \l ApplicationWindow.
-
- ToolBar does not provide a layout of its own, but requires you to
- position its contents, for instance by creating a \l RowLayout. If only
- a single item is used within the ToolBar, it will resize to fit the
- implicit size of its contained item. This makes it particularly suitable
- for use together with layouts.
-
- \image qtquickcontrols2-toolbar.png
-
- \code
- ApplicationWindow {
- visible:true
-
- header: ToolBar {
- RowLayout {
- anchors.fill: parent
- ToolButton {
- text: qsTr("‹")
- onClicked: stack.pop()
- }
- Label {
- text: "Title"
- elide: Label.ElideRight
- horizontalAlignment: Qt.AlignHCenter
- verticalAlignment: Qt.AlignVCenter
- Layout.fillWidth: true
- }
- ToolButton {
- text: qsTr("â‹®")
- onClicked: menu.open()
- }
- }
- }
-
- StackView {
- id: stack
- anchors.fill: parent
- }
- }
- \endcode
-
- \sa ApplicationWindow, ToolButton, {Customizing ToolBar}, {Container Controls}
-*/
-
-class QQuickToolBarPrivate : public QQuickPanePrivate
-{
-public:
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::ToolBar); }
-
- QQuickToolBar::Position position = QQuickToolBar::Header;
-};
-
-QQuickToolBar::QQuickToolBar(QQuickItem *parent)
- : QQuickPane(*(new QQuickToolBarPrivate), parent)
-{
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::ToolBar::position
-
- This property holds the position of the toolbar.
-
- \note If the toolbar is assigned as a header or footer of \l ApplicationWindow
- or \l Page, the appropriate position is set automatically.
-
- Possible values:
- \value ToolBar.Header The toolbar is at the top, as a window or page header.
- \value ToolBar.Footer The toolbar is at the bottom, as a window or page footer.
-
- The default value is style-specific.
-
- \sa ApplicationWindow::header, ApplicationWindow::footer, Page::header, Page::footer
-*/
-QQuickToolBar::Position QQuickToolBar::position() const
-{
- Q_D(const QQuickToolBar);
- return d->position;
-}
-
-void QQuickToolBar::setPosition(Position position)
-{
- Q_D(QQuickToolBar);
- if (d->position == position)
- return;
-
- d->position = position;
- emit positionChanged();
-}
-
-QFont QQuickToolBar::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::ToolBar);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickToolBar::accessibleRole() const
-{
- return QAccessible::ToolBar;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktoolbar_p.h b/src/quicktemplates2/qquicktoolbar_p.h
deleted file mode 100644
index cefdeaa1..00000000
--- a/src/quicktemplates2/qquicktoolbar_p.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTOOLBAR_P_H
-#define QQUICKTOOLBAR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpane_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickToolBarPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickToolBar : public QQuickPane
-{
- Q_OBJECT
- Q_PROPERTY(Position position READ position WRITE setPosition NOTIFY positionChanged FINAL)
- QML_NAMED_ELEMENT(ToolBar)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickToolBar(QQuickItem *parent = nullptr);
-
- enum Position {
- Header,
- Footer
- };
- Q_ENUM(Position)
-
- Position position() const;
- void setPosition(Position position);
-
-Q_SIGNALS:
- void positionChanged();
-
-protected:
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickToolBar)
- Q_DECLARE_PRIVATE(QQuickToolBar)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickToolBar)
-
-#endif // QQUICKTOOLBAR_P_H
diff --git a/src/quicktemplates2/qquicktoolbutton.cpp b/src/quicktemplates2/qquicktoolbutton.cpp
deleted file mode 100644
index 80987887..00000000
--- a/src/quicktemplates2/qquicktoolbutton.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktoolbutton_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquickbutton_p_p.h"
-
-#include <QtGui/qpa/qplatformtheme.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ToolButton
- \inherits Button
-//! \instantiates QQuickToolButton
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-buttons
- \brief Button with a look suitable for a ToolBar.
-
- ToolButton is functionally similar to \l Button, but provides a look that
- is more suitable within a \l ToolBar.
-
- \image qtquickcontrols2-toolbar.png
-
- \snippet qtquickcontrols2-toolbar.qml 1
-
- ToolButton inherits its API from AbstractButton. For instance, you can set
- \l {AbstractButton::text}{text}, display an \l {Icons in Qt Quick Controls}{icon},
- and react to \l {AbstractButton::clicked}{clicks} using the AbstractButton API.
-
- \sa ToolBar, {Customizing ToolButton}, {Button Controls}
-*/
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickToolPrivate : public QQuickButtonPrivate
-{
- Q_DECLARE_PUBLIC(QQuickToolButton)
-
-public:
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::ToolBar); }
-};
-
-QQuickToolButton::QQuickToolButton(QQuickItem *parent)
- : QQuickButton(*(new QQuickToolPrivate), parent)
-{
-}
-
-QFont QQuickToolButton::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::ToolBar);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktoolbutton_p.h b/src/quicktemplates2/qquicktoolbutton_p.h
deleted file mode 100644
index 2db052f6..00000000
--- a/src/quicktemplates2/qquicktoolbutton_p.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTOOLBUTTON_P_H
-#define QQUICKTOOLBUTTON_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickbutton_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickToolButtonPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickToolButton : public QQuickButton
-{
- Q_OBJECT
- QML_NAMED_ELEMENT(ToolButton)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickToolButton(QQuickItem *parent = nullptr);
-
-protected:
- QFont defaultFont() const override;
-
-private:
- Q_DECLARE_PRIVATE(QQuickToolButton)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickToolButton)
-
-#endif // QQUICKTOOLBUTTON_P_H
diff --git a/src/quicktemplates2/qquicktoolseparator.cpp b/src/quicktemplates2/qquicktoolseparator.cpp
deleted file mode 100644
index ae2f7f19..00000000
--- a/src/quicktemplates2/qquicktoolseparator.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktoolseparator_p.h"
-
-#include "qquickcontrol_p_p.h"
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ToolSeparator
- \inherits Control
-//! \instantiates QQuickToolSeparator
- \inqmlmodule QtQuick.Controls
- \since 5.8
- \ingroup qtquickcontrols2-separators
- \brief Separates a group of items in a toolbar from adjacent items.
-
- ToolSeparator is used to visually distinguish between groups of items in a
- toolbar by separating them with a line. It can be used in horizontal or
- vertical toolbars by setting the \l orientation property to \c Qt.Vertical
- or \c Qt.Horizontal, respectively.
-
- \image qtquickcontrols2-toolseparator.png
-
- \snippet qtquickcontrols2-toolseparator.qml 1
-
- \sa {Customizing ToolSeparator}, {Separator Controls}
-*/
-
-class QQuickToolSeparatorPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickToolSeparator)
-
-public:
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::ToolBar); }
-
- Qt::Orientation orientation = Qt::Vertical;
-};
-
-QQuickToolSeparator::QQuickToolSeparator(QQuickItem *parent)
- : QQuickControl(*(new QQuickToolSeparatorPrivate), parent)
-{
-}
-
-/*!
- \qmlproperty enumeration QtQuick.Controls::ToolSeparator::orientation
-
- This property holds the orientation of the tool separator.
-
- Possible values:
- \value Qt.Horizontal A horizontal separator is used in a vertical toolbar.
- \value Qt.Vertical A vertical separator is used in a horizontal toolbar. (default)
-*/
-Qt::Orientation QQuickToolSeparator::orientation() const
-{
- Q_D(const QQuickToolSeparator);
- return d->orientation;
-}
-
-void QQuickToolSeparator::setOrientation(Qt::Orientation orientation)
-{
- Q_D(QQuickToolSeparator);
- if (d->orientation == orientation)
- return;
-
- d->orientation = orientation;
- emit orientationChanged();
-}
-
-/*!
- \readonly
- \qmlproperty bool QtQuick.Controls::ToolSeparator::horizontal
-
- This property holds whether \l orientation is equal to \c Qt.Horizontal.
-
- It is useful for \l {Customizing ToolSeparator}{customizing ToolSeparator}.
-
- \sa orientation, vertical
-*/
-bool QQuickToolSeparator::isHorizontal() const
-{
- Q_D(const QQuickToolSeparator);
- return d->orientation == Qt::Horizontal;
-}
-
-/*!
- \readonly
- \qmlproperty bool QtQuick.Controls::ToolSeparator::vertical
-
- This property holds whether \l orientation is equal to \c Qt.Vertical.
-
- It is useful for \l {Customizing ToolSeparator}{customizing ToolSeparator}.
-
- \sa orientation, horizontal
-*/
-bool QQuickToolSeparator::isVertical() const
-{
- Q_D(const QQuickToolSeparator);
- return d->orientation == Qt::Vertical;
-}
-
-QFont QQuickToolSeparator::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::ToolBar);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickToolSeparator::accessibleRole() const
-{
- return QAccessible::Separator;
-}
-#endif
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktoolseparator_p.h b/src/quicktemplates2/qquicktoolseparator_p.h
deleted file mode 100644
index e4692154..00000000
--- a/src/quicktemplates2/qquicktoolseparator_p.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTOOLSEPARATOR_P_H
-#define QQUICKTOOLSEPARATOR_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickToolSeparatorPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickToolSeparator : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged FINAL)
- Q_PROPERTY(bool horizontal READ isHorizontal NOTIFY orientationChanged FINAL)
- Q_PROPERTY(bool vertical READ isVertical NOTIFY orientationChanged FINAL)
- QML_NAMED_ELEMENT(ToolSeparator)
- QML_ADDED_IN_VERSION(2, 1)
-
-public:
- explicit QQuickToolSeparator(QQuickItem *parent = nullptr);
-
- Qt::Orientation orientation() const;
- void setOrientation(Qt::Orientation orientation);
-
- bool isHorizontal() const;
- bool isVertical() const;
-
-Q_SIGNALS:
- void orientationChanged();
-
-protected:
- QFont defaultFont() const override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickToolSeparator)
- Q_DECLARE_PRIVATE(QQuickToolSeparator)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickToolSeparator)
-
-#endif // QQUICKTOOLSEPARATOR_P_H
diff --git a/src/quicktemplates2/qquicktooltip.cpp b/src/quicktemplates2/qquicktooltip.cpp
deleted file mode 100644
index a6ad371a..00000000
--- a/src/quicktemplates2/qquicktooltip.cpp
+++ /dev/null
@@ -1,585 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktooltip_p.h"
-#include "qquickpopup_p_p.h"
-#include "qquickpopupitem_p_p.h"
-#include "qquickcontrol_p_p.h"
-#include "qquicktooltippopupitem_p_p.h"
-
-#include <QtCore/qbasictimer.h>
-#include <QtQml/qqmlinfo.h>
-#include <QtQml/qqmlengine.h>
-#include <QtQml/qqmlcontext.h>
-#include <QtQml/qqmlcomponent.h>
-#include <QtQuick/qquickwindow.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \qmltype ToolTip
- \inherits Popup
-//! \instantiates QQuickToolTip
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-popups
- \brief Provides tool tips for any control.
-
- A tool tip is a short piece of text that informs the user of a control's
- function. It is typically placed above or below the parent control. The
- tip text can be any \l{Rich Text Processing}{rich text} formatted string.
-
- \image qtquickcontrols2-tooltip.png
-
- \section2 Attached Tool Tips
-
- The most straight-forward way to setup tool tips for controls is to
- specify \l text and \l {visible}{visibility} via attached properties.
- The following example illustrates this approach:
-
- \snippet qtquickcontrols2-tooltip.qml 1
-
- Under normal circumstances, there is only one tool tip visible at a time.
- In order to save resources, all items that use the ToolTip attached property
- share the same visual tool tip label instance. Even though the visuals are
- shared, \c text, \c timeout and \c delay are stored individually for each item
- that uses the respective attached property. However, multiple items cannot
- make the shared tool tip visible at the same time. The shared tool tip is only
- shown for the last item that made it visible. The position of the shared tool
- tip is determined by the framework.
-
- \section2 Delay and Timeout
-
- Tool tips are typically transient in a sense that they are shown as a
- result of a certain external event or user interaction, and they usually
- hide after a certain timeout. It is possible to control the delay when
- a tool tip is shown, and the timeout when it is hidden. This makes it
- possible to implement varying strategies for showing and hiding tool tips.
-
- For example, on touch screens, it is a common pattern to show a tool tip
- as a result of pressing and holding down a button. The following example
- demonstrates how to delay showing a tool tip until the press-and-hold
- interval is reached. In this example, the tool tip hides as soon as the
- button is released.
-
- \snippet qtquickcontrols2-tooltip-pressandhold.qml 1
-
- With pointer devices, however, it might be desired to show a tool tip as
- a result of hovering a button for a while. The following example presents
- how to show a tool tip after hovering a button for a second, and hide it
- after a timeout of five seconds.
-
- \snippet qtquickcontrols2-tooltip-hover.qml 1
-
- \section2 Custom Tool Tips
-
- Should one need more fine-grained control over the tool tip position, or
- multiple simultaneous tool tip instances are needed, it is also possible
- to create local tool tip instances. This way, it is possible to
- \l {Customizing ToolTip}{customize} the tool tip, and the whole \l Popup
- API is available. The following example presents a tool tip that presents
- the value of a slider when the handle is dragged.
-
- \image qtquickcontrols2-tooltip-slider.png
-
- \snippet qtquickcontrols2-tooltip-slider.qml 1
-
- \sa {Customizing ToolTip}, {Popup Controls}
-*/
-
-class QQuickToolTipPrivate : public QQuickPopupPrivate
-{
- Q_DECLARE_PUBLIC(QQuickToolTip)
-
-public:
- void init() override;
-
- void startDelay();
- void stopDelay();
-
- void startTimeout();
- void stopTimeout();
-
- void opened() override;
-
- QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::ToolTip); }
-
- int delay = 0;
- int timeout = -1;
- QString text;
- QBasicTimer delayTimer;
- QBasicTimer timeoutTimer;
-};
-
-void QQuickToolTipPrivate::init()
-{
- Q_Q(QQuickToolTip);
- popupItem = new QQuickToolTipPopupItem(q);
- popupItem->setVisible(false);
- q->setParentItem(qobject_cast<QQuickItem *>(parent));
- connectToPopupItem();
-
- allowVerticalFlip = true;
- allowHorizontalFlip = true;
- popupItem->setHoverEnabled(false); // QTBUG-63644
-}
-
-void QQuickToolTipPrivate::startDelay()
-{
- Q_Q(QQuickToolTip);
- if (delay > 0)
- delayTimer.start(delay, q);
-}
-
-void QQuickToolTipPrivate::stopDelay()
-{
- delayTimer.stop();
-}
-
-void QQuickToolTipPrivate::startTimeout()
-{
- Q_Q(QQuickToolTip);
- if (timeout > 0)
- timeoutTimer.start(timeout, q);
-}
-
-void QQuickToolTipPrivate::stopTimeout()
-{
- timeoutTimer.stop();
-}
-
-void QQuickToolTipPrivate::opened()
-{
- QQuickPopupPrivate::opened();
- startTimeout();
-}
-
-QQuickToolTip::QQuickToolTip(QQuickItem *parent)
- : QQuickPopup(*(new QQuickToolTipPrivate), parent)
-{
- Q_D(QQuickToolTip);
- d->init();
-}
-
-/*!
- \qmlproperty string QtQuick.Controls::ToolTip::text
-
- This property holds the text shown on the tool tip.
-*/
-QString QQuickToolTip::text() const
-{
- Q_D(const QQuickToolTip);
- return d->text;
-}
-
-void QQuickToolTip::setText(const QString &text)
-{
- Q_D(QQuickToolTip);
- if (d->text == text)
- return;
-
- d->text = text;
- maybeSetAccessibleName(text);
- emit textChanged();
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::ToolTip::delay
-
- This property holds the delay (milliseconds) after which the tool tip is
- shown. A tooltip with a negative delay is shown immediately. The default
- value is \c 0.
-
- \sa {Delay and Timeout}
-*/
-int QQuickToolTip::delay() const
-{
- Q_D(const QQuickToolTip);
- return d->delay;
-}
-
-void QQuickToolTip::setDelay(int delay)
-{
- Q_D(QQuickToolTip);
- if (d->delay == delay)
- return;
-
- d->delay = delay;
- emit delayChanged();
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::ToolTip::timeout
-
- This property holds the timeout (milliseconds) after which the tool tip is
- hidden. A tooltip with a negative timeout does not hide automatically. The
- default value is \c -1.
-
- \sa {Delay and Timeout}
-*/
-int QQuickToolTip::timeout() const
-{
- Q_D(const QQuickToolTip);
- return d->timeout;
-}
-
-void QQuickToolTip::setTimeout(int timeout)
-{
- Q_D(QQuickToolTip);
- if (d->timeout == timeout)
- return;
-
- d->timeout = timeout;
-
- if (timeout <= 0)
- d->stopTimeout();
- else if (isOpened())
- d->startTimeout();
-
- emit timeoutChanged();
-}
-
-void QQuickToolTip::setVisible(bool visible)
-{
- Q_D(QQuickToolTip);
- if (visible) {
- if (!d->visible) {
- // We are being made visible, and we weren't before.
- if (d->delay > 0) {
- d->startDelay();
- return;
- }
- }
- } else {
- d->stopDelay();
- }
- QQuickPopup::setVisible(visible);
-}
-
-QQuickToolTipAttached *QQuickToolTip::qmlAttachedProperties(QObject *object)
-{
- QQuickItem *item = qobject_cast<QQuickItem *>(object);
- if (!item)
- qmlWarning(object) << "ToolTip must be attached to an Item";
-
- return new QQuickToolTipAttached(object);
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlmethod void QtQuick.Controls::ToolTip::show(string text, int timeout)
-
- This method shows the \a text as a tooltip, which times out in
- \a timeout (milliseconds).
-*/
-void QQuickToolTip::show(const QString &text, int ms)
-{
- if (ms >= 0)
- setTimeout(ms);
- setText(text);
- open();
-}
-
-/*!
- \since QtQuick.Controls 2.5 (Qt 5.12)
- \qmlmethod void QtQuick.Controls::ToolTip::hide()
-
- This method hides the tooltip.
-*/
-void QQuickToolTip::hide()
-{
- close();
-}
-
-QFont QQuickToolTip::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::ToolTip);
-}
-
-void QQuickToolTip::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
-{
- Q_D(QQuickToolTip);
- QQuickPopup::itemChange(change, data);
- if (change == QQuickItem::ItemVisibleHasChanged) {
- if (!data.boolValue)
- d->stopTimeout();
-
- QQuickToolTipAttached *attached = qobject_cast<QQuickToolTipAttached *>(qmlAttachedPropertiesObject<QQuickToolTip>(d->parentItem, false));
- if (attached)
- emit attached->visibleChanged();
- }
-}
-
-void QQuickToolTip::timerEvent(QTimerEvent *event)
-{
- Q_D(QQuickToolTip);
- if (event->timerId() == d->timeoutTimer.timerId()) {
- d->stopTimeout();
- QQuickPopup::setVisible(false);
- return;
- }
- if (event->timerId() == d->delayTimer.timerId()) {
- d->stopDelay();
- QQuickPopup::setVisible(true);
- return;
- }
- QQuickPopup::timerEvent(event);
-}
-
-#if QT_CONFIG(accessibility)
-QAccessible::Role QQuickToolTip::accessibleRole() const
-{
- return QAccessible::ToolTip;
-}
-
-void QQuickToolTip::accessibilityActiveChanged(bool active)
-{
- Q_D(QQuickToolTip);
- QQuickPopup::accessibilityActiveChanged(active);
-
- if (active)
- maybeSetAccessibleName(d->text);
-}
-#endif
-
-class QQuickToolTipAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickToolTipAttached)
-
-public:
- QQuickToolTip *instance(bool create) const;
-
- int delay = 0;
- int timeout = -1;
- QString text;
-};
-
-QQuickToolTip *QQuickToolTipAttachedPrivate::instance(bool create) const
-{
- QQmlEngine *engine = qmlEngine(parent);
- if (!engine)
- return nullptr;
-
- static const char *name = "_q_QQuickToolTip";
-
- QQuickToolTip *tip = engine->property(name).value<QQuickToolTip *>();
- if (!tip && create) {
- // TODO: a cleaner way to create the instance? QQml(Meta)Type?
- QQmlComponent component(engine);
- component.setData("import QtQuick.Controls; ToolTip { }", QUrl());
-
- QObject *object = component.create();
- if (object)
- object->setParent(engine);
-
- tip = qobject_cast<QQuickToolTip *>(object);
- if (!tip)
- delete object;
- else
- engine->setProperty(name, QVariant::fromValue(object));
- }
- return tip;
-}
-
-QQuickToolTipAttached::QQuickToolTipAttached(QObject *parent)
- : QObject(*(new QQuickToolTipAttachedPrivate), parent)
-{
-}
-
-/*!
- \qmlattachedproperty string QtQuick.Controls::ToolTip::text
-
- This attached property holds the text of the shared tool tip.
- The property can be attached to any item.
-
- \sa {Attached Tool Tips}
-*/
-QString QQuickToolTipAttached::text() const
-{
- Q_D(const QQuickToolTipAttached);
- return d->text;
-}
-
-void QQuickToolTipAttached::setText(const QString &text)
-{
- Q_D(QQuickToolTipAttached);
- if (d->text == text)
- return;
-
- d->text = text;
- emit textChanged();
-
- if (isVisible())
- d->instance(true)->setText(text);
-}
-
-/*!
- \qmlattachedproperty int QtQuick.Controls::ToolTip::delay
-
- This attached property holds the delay (milliseconds) of the shared tool tip.
- The property can be attached to any item.
-
- \sa {Attached Tool Tips}, {Delay and Timeout}
-*/
-int QQuickToolTipAttached::delay() const
-{
- Q_D(const QQuickToolTipAttached);
- return d->delay;
-}
-
-void QQuickToolTipAttached::setDelay(int delay)
-{
- Q_D(QQuickToolTipAttached);
- if (d->delay == delay)
- return;
-
- d->delay = delay;
- emit delayChanged();
-
- if (isVisible())
- d->instance(true)->setDelay(delay);
-}
-
-/*!
- \qmlattachedproperty int QtQuick.Controls::ToolTip::timeout
-
- This attached property holds the timeout (milliseconds) of the shared tool tip.
- The property can be attached to any item.
-
- \sa {Attached Tool Tips}, {Delay and Timeout}
-*/
-int QQuickToolTipAttached::timeout() const
-{
- Q_D(const QQuickToolTipAttached);
- return d->timeout;
-}
-
-void QQuickToolTipAttached::setTimeout(int timeout)
-{
- Q_D(QQuickToolTipAttached);
- if (d->timeout == timeout)
- return;
-
- d->timeout = timeout;
- emit timeoutChanged();
-
- if (isVisible())
- d->instance(true)->setTimeout(timeout);
-}
-
-/*!
- \qmlattachedproperty bool QtQuick.Controls::ToolTip::visible
-
- This attached property holds whether the shared tool tip is visible.
- The property can be attached to any item.
-
- \sa {Attached Tool Tips}
-*/
-bool QQuickToolTipAttached::isVisible() const
-{
- Q_D(const QQuickToolTipAttached);
- QQuickToolTip *tip = d->instance(false);
- if (!tip)
- return false;
-
- return tip->isVisible() && tip->parentItem() == parent();
-}
-
-void QQuickToolTipAttached::setVisible(bool visible)
-{
- Q_D(QQuickToolTipAttached);
- if (visible)
- show(d->text);
- else
- hide();
-}
-
-/*!
- \qmlattachedproperty ToolTip QtQuick.Controls::ToolTip::toolTip
-
- This attached property holds the shared tool tip instance. The property
- can be attached to any item.
-
- \sa {Attached Tool Tips}
-*/
-QQuickToolTip *QQuickToolTipAttached::toolTip() const
-{
- Q_D(const QQuickToolTipAttached);
- return d->instance(true);
-}
-
-/*!
- \qmlattachedmethod void QtQuick.Controls::ToolTip::show(string text, int timeout = -1)
-
- This attached method shows the shared tooltip with \a text and \a timeout (milliseconds).
- The method can be attached to any item.
-
- \sa {Attached Tool Tips}
-*/
-void QQuickToolTipAttached::show(const QString &text, int ms)
-{
- Q_D(QQuickToolTipAttached);
- QQuickToolTip *tip = d->instance(true);
- if (!tip)
- return;
-
- tip->resetWidth();
- tip->resetHeight();
- tip->setParentItem(qobject_cast<QQuickItem *>(parent()));
- tip->setDelay(d->delay);
- tip->setTimeout(ms >= 0 ? ms : d->timeout);
- tip->show(text);
-}
-
-/*!
- \qmlattachedmethod void QtQuick.Controls::ToolTip::hide()
-
- This attached method hides the shared tooltip. The method can be attached to any item.
-
- \sa {Attached Tool Tips}
-*/
-void QQuickToolTipAttached::hide()
-{
- Q_D(QQuickToolTipAttached);
- QQuickToolTip *tip = d->instance(false);
- if (!tip)
- return;
- // check the parent item to prevent unexpectedly closing tooltip by new created invisible tooltip
- if (parent() == tip->parentItem())
- tip->close();
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktooltip_p.h b/src/quicktemplates2/qquicktooltip_p.h
deleted file mode 100644
index 5be22fd8..00000000
--- a/src/quicktemplates2/qquicktooltip_p.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTOOLTIP_P_H
-#define QQUICKTOOLTIP_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpopup_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickToolTipPrivate;
-class QQuickToolTipAttached;
-class QQuickToolTipAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickToolTip : public QQuickPopup
-{
- Q_OBJECT
- Q_PROPERTY(int delay READ delay WRITE setDelay NOTIFY delayChanged FINAL)
- Q_PROPERTY(int timeout READ timeout WRITE setTimeout NOTIFY timeoutChanged FINAL)
- Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged FINAL)
- QML_NAMED_ELEMENT(ToolTip)
- QML_ATTACHED(QQuickToolTipAttached)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickToolTip(QQuickItem *parent = nullptr);
-
- QString text() const;
- void setText(const QString &text);
-
- int delay() const;
- void setDelay(int delay);
-
- int timeout() const;
- void setTimeout(int timeout);
-
- void setVisible(bool visible) override;
-
- static QQuickToolTipAttached *qmlAttachedProperties(QObject *object);
-
-Q_SIGNALS:
- void textChanged();
- void delayChanged();
- void timeoutChanged();
-
-public Q_SLOTS:
- Q_REVISION(2, 5) void show(const QString &text, int ms = -1);
- Q_REVISION(2, 5) void hide();
-
-protected:
- QFont defaultFont() const override;
-
- void itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data) override;
- void timerEvent(QTimerEvent *event) override;
-
-#if QT_CONFIG(accessibility)
- QAccessible::Role accessibleRole() const override;
- void accessibilityActiveChanged(bool active) override;
-#endif
-
-private:
- Q_DISABLE_COPY(QQuickToolTip)
- Q_DECLARE_PRIVATE(QQuickToolTip)
-};
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickToolTipAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged FINAL)
- Q_PROPERTY(int delay READ delay WRITE setDelay NOTIFY delayChanged FINAL)
- Q_PROPERTY(int timeout READ timeout WRITE setTimeout NOTIFY timeoutChanged FINAL)
- Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
- Q_PROPERTY(QQuickToolTip *toolTip READ toolTip CONSTANT FINAL)
-
-public:
- explicit QQuickToolTipAttached(QObject *parent = nullptr);
-
- QString text() const;
- void setText(const QString &text);
-
- int delay() const;
- void setDelay(int delay);
-
- int timeout() const;
- void setTimeout(int timeout);
-
- bool isVisible() const;
- void setVisible(bool visible);
-
- QQuickToolTip *toolTip() const;
-
-Q_SIGNALS:
- void textChanged();
- void delayChanged();
- void timeoutChanged();
- void visibleChanged();
-
-public Q_SLOTS:
- void show(const QString &text, int ms = -1);
- void hide();
-
-private:
- Q_DISABLE_COPY(QQuickToolTipAttached)
- Q_DECLARE_PRIVATE(QQuickToolTipAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickToolTip)
-QML_DECLARE_TYPEINFO(QQuickToolTip, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKTOOLTIP_P_H
diff --git a/src/quicktemplates2/qquicktooltippopupitem.cpp b/src/quicktemplates2/qquicktooltippopupitem.cpp
deleted file mode 100644
index c3a48f6f..00000000
--- a/src/quicktemplates2/qquicktooltippopupitem.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktooltippopupitem_p_p.h"
-
-#include <QtQuickTemplates2/private/qquickpopup_p.h>
-
-QT_BEGIN_NAMESPACE
-
-QQuickToolTipPopupItemPrivate::QQuickToolTipPopupItemPrivate(QQuickPopup *popup)
- : QQuickPopupItemPrivate(popup)
-{
-}
-
-qreal QQuickToolTipPopupItemPrivate::getContentWidth() const
-{
- auto textItem = qobject_cast<QQuickText*>(contentItem);
- if (textItem)
- return textItem->contentWidth();
-
- return contentItem ? contentItem->implicitWidth() : 0;
-}
-
-void QQuickToolTipPopupItemPrivate::updateContentWidth()
-{
- Q_Q(QQuickToolTipPopupItem);
- // Don't need to calculate the implicit contentWidth if an explicit one was set.
- if (hasContentWidth)
- return;
-
- auto textItem = qobject_cast<QQuickText*>(contentItem);
- if (!textItem) {
- // It's not a Text item, so use the base contentWidth logic (i.e. use implicitWidth).
- QQuickPopupItemPrivate::updateContentWidth();
- return;
- }
-
- const qreal oldContentWidth = contentWidth;
- const qreal newContentWidth = textItem->contentWidth();
- if (qFuzzyCompare(oldContentWidth, newContentWidth))
- return;
-
- contentWidth = newContentWidth;
- q->contentSizeChange(QSizeF(contentWidth, contentHeight), QSizeF(oldContentWidth, contentHeight));
- emit q->contentWidthChanged();
-}
-
-QQuickToolTipPopupItem::QQuickToolTipPopupItem(QQuickPopup *popup)
- : QQuickPopupItem(*(new QQuickToolTipPopupItemPrivate(popup)))
-{
-}
-
-void QQuickToolTipPopupItem::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_D(QQuickToolTipPopupItem);
- QQuickPopupItem::contentItemChange(newItem, oldItem);
-
- // Text's implicitWidth does not account for newlines and hence is too large,
- // so we need to listen to contentWidth's change signals.
- auto oldTextItem = qobject_cast<QQuickText*>(oldItem);
- if (oldTextItem) {
- QObjectPrivate::disconnect(oldTextItem, &QQuickText::contentWidthChanged,
- d, &QQuickToolTipPopupItemPrivate::updateContentWidth);
- }
-
- auto newTextItem = qobject_cast<QQuickText*>(newItem);
- if (newTextItem) {
- QObjectPrivate::connect(newTextItem, &QQuickText::contentWidthChanged,
- d, &QQuickToolTipPopupItemPrivate::updateContentWidth);
- }
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktooltippopupitem_p_p.h b/src/quicktemplates2/qquicktooltippopupitem_p_p.h
deleted file mode 100644
index d81c309d..00000000
--- a/src/quicktemplates2/qquicktooltippopupitem_p_p.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTOOLTIPPOPUPITEM_P_P_H
-#define QQUICKTOOLTIPPOPUPITEM_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickpopupitem_p.h>
-#include <QtQuickTemplates2/private/qquickpopupitem_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickPopup;
-class QQuickToolTipPopupItemPrivate;
-
-class QQuickToolTipPopupItem : public QQuickPopupItem
-{
- Q_OBJECT
-
-public:
- explicit QQuickToolTipPopupItem(QQuickPopup *popup);
-
-protected:
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
-
-private:
- Q_DISABLE_COPY(QQuickToolTipPopupItem)
- Q_DECLARE_PRIVATE(QQuickToolTipPopupItem)
-};
-
-class QQuickToolTipPopupItemPrivate : public QQuickPopupItemPrivate
-{
- Q_DECLARE_PUBLIC(QQuickToolTipPopupItem)
-
-public:
- QQuickToolTipPopupItemPrivate(QQuickPopup *popup);
-
- qreal getContentWidth() const override;
- void updateContentWidth() override;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKTOOLTIPPOPUPITEM_P_P_H
diff --git a/src/quicktemplates2/qquicktumbler.cpp b/src/quicktemplates2/qquicktumbler.cpp
deleted file mode 100644
index 4f7d3487..00000000
--- a/src/quicktemplates2/qquicktumbler.cpp
+++ /dev/null
@@ -1,1046 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquicktumbler_p.h"
-
-#include <QtCore/qloggingcategory.h>
-#include <QtGui/qpa/qplatformtheme.h>
-#include <QtQml/qqmlinfo.h>
-#include <QtQuick/private/qquickflickable_p.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
-#include <QtQuickTemplates2/private/qquicktumbler_p_p.h>
-
-QT_BEGIN_NAMESPACE
-
-Q_LOGGING_CATEGORY(lcTumbler, "qt.quick.controls.tumbler")
-
-/*!
- \qmltype Tumbler
- \inherits Control
-//! \instantiates QQuickTumbler
- \inqmlmodule QtQuick.Controls
- \since 5.7
- \ingroup qtquickcontrols2-input
- \brief Spinnable wheel of items that can be selected.
-
- \image qtquickcontrols2-tumbler-wrap.gif
-
- \code
- Tumbler {
- model: 5
- // ...
- }
- \endcode
-
- Tumbler allows the user to select an option from a spinnable \e "wheel" of
- items. It is useful for when there are too many options to use, for
- example, a RadioButton, and too few options to require the use of an
- editable SpinBox. It is convenient in that it requires no keyboard usage
- and wraps around at each end when there are a large number of items.
-
- The API is similar to that of views like \l ListView and \l PathView; a
- \l model and \l delegate can be set, and the \l count and \l currentItem
- properties provide read-only access to information about the view. To
- position the view at a certain index, use \l positionViewAtIndex().
-
- Unlike views like \l PathView and \l ListView, however, there is always a
- current item (when the model isn't empty). This means that when \l count is
- equal to \c 0, \l currentIndex will be \c -1. In all other cases, it will
- be greater than or equal to \c 0.
-
- By default, Tumbler \l {wrap}{wraps} when it reaches the top and bottom, as
- long as there are more items in the model than there are visible items;
- that is, when \l count is greater than \l visibleItemCount:
-
- \snippet qtquickcontrols2-tumbler-timePicker.qml tumbler
-
- \sa {Customizing Tumbler}, {Input Controls}
-*/
-
-namespace {
- static inline qreal delegateHeight(const QQuickTumbler *tumbler)
- {
- return tumbler->availableHeight() / tumbler->visibleItemCount();
- }
-}
-
-/*
- Finds the contentItem of the view that is a child of the control's \a contentItem.
- The type is stored in \a type.
-*/
-QQuickItem *QQuickTumblerPrivate::determineViewType(QQuickItem *contentItem)
-{
- if (!contentItem) {
- resetViewData();
- return nullptr;
- }
-
- if (contentItem->inherits("QQuickPathView")) {
- view = contentItem;
- viewContentItem = contentItem;
- viewContentItemType = PathViewContentItem;
- viewOffset = 0;
-
- return contentItem;
- } else if (contentItem->inherits("QQuickListView")) {
- view = contentItem;
- viewContentItem = qobject_cast<QQuickFlickable*>(contentItem)->contentItem();
- viewContentItemType = ListViewContentItem;
- viewContentY = 0;
-
- return contentItem;
- } else {
- const auto childItems = contentItem->childItems();
- for (QQuickItem *childItem : childItems) {
- QQuickItem *item = determineViewType(childItem);
- if (item)
- return item;
- }
- }
-
- resetViewData();
- viewContentItemType = UnsupportedContentItemType;
- return nullptr;
-}
-
-void QQuickTumblerPrivate::resetViewData()
-{
- view = nullptr;
- viewContentItem = nullptr;
- if (viewContentItemType == PathViewContentItem)
- viewOffset = 0;
- else if (viewContentItemType == ListViewContentItem)
- viewContentY = 0;
- viewContentItemType = NoContentItem;
-}
-
-QList<QQuickItem *> QQuickTumblerPrivate::viewContentItemChildItems() const
-{
- if (!viewContentItem)
- return QList<QQuickItem *>();
-
- return viewContentItem->childItems();
-}
-
-QQuickTumblerPrivate *QQuickTumblerPrivate::get(QQuickTumbler *tumbler)
-{
- return tumbler->d_func();
-}
-
-void QQuickTumblerPrivate::_q_updateItemHeights()
-{
- if (ignoreSignals)
- return;
-
- // Can't use our own private padding members here, as the padding property might be set,
- // which doesn't affect them, only their getters.
- Q_Q(const QQuickTumbler);
- const qreal itemHeight = delegateHeight(q);
- const auto items = viewContentItemChildItems();
- for (QQuickItem *childItem : items)
- childItem->setHeight(itemHeight);
-}
-
-void QQuickTumblerPrivate::_q_updateItemWidths()
-{
- if (ignoreSignals)
- return;
-
- Q_Q(const QQuickTumbler);
- const qreal availableWidth = q->availableWidth();
- const auto items = viewContentItemChildItems();
- for (QQuickItem *childItem : items)
- childItem->setWidth(availableWidth);
-}
-
-void QQuickTumblerPrivate::_q_onViewCurrentIndexChanged()
-{
- Q_Q(QQuickTumbler);
- if (!view || ignoreCurrentIndexChanges || currentIndexSetDuringModelChange) {
- // If the user set currentIndex in the onModelChanged handler,
- // we have to respect that currentIndex by ignoring changes in the view
- // until the model has finished being set.
- qCDebug(lcTumbler).nospace() << "view currentIndex changed to "
- << (view ? view->property("currentIndex").toString() : QStringLiteral("unknown index (no view)"))
- << ", but we're ignoring it because one or more of the following conditions are true:"
- << "\n- !view: " << !view
- << "\n- ignoreCurrentIndexChanges: " << ignoreCurrentIndexChanges
- << "\n- currentIndexSetDuringModelChange: " << currentIndexSetDuringModelChange;
- return;
- }
-
- const int oldCurrentIndex = currentIndex;
- currentIndex = view->property("currentIndex").toInt();
-
- qCDebug(lcTumbler).nospace() << "view currentIndex changed to "
- << (view ? view->property("currentIndex").toString() : QStringLiteral("unknown index (no view)"))
- << ", our old currentIndex was " << oldCurrentIndex;
-
- if (oldCurrentIndex != currentIndex)
- emit q->currentIndexChanged();
-}
-
-void QQuickTumblerPrivate::_q_onViewCountChanged()
-{
- Q_Q(QQuickTumbler);
- qCDebug(lcTumbler) << "view count changed - ignoring signals?" << ignoreSignals;
- if (ignoreSignals)
- return;
-
- setCount(view->property("count").toInt());
-
- if (count > 0) {
- if (pendingCurrentIndex != -1) {
- // If there was an attempt to set currentIndex at creation, try to finish that attempt now.
- // componentComplete() is too early, because the count might only be known sometime after completion.
- setCurrentIndex(pendingCurrentIndex);
- // If we could successfully set the currentIndex, consider it done.
- // Otherwise, we'll try again later in updatePolish().
- if (currentIndex == pendingCurrentIndex)
- setPendingCurrentIndex(-1);
- else
- q->polish();
- } else if (currentIndex == -1) {
- // If new items were added and our currentIndex was -1, we must
- // enforce our rule of a non-negative currentIndex when count > 0.
- setCurrentIndex(0);
- }
- } else {
- setCurrentIndex(-1);
- }
-}
-
-void QQuickTumblerPrivate::_q_onViewOffsetChanged()
-{
- viewOffset = view->property("offset").toReal();
- calculateDisplacements();
-}
-
-void QQuickTumblerPrivate::_q_onViewContentYChanged()
-{
- viewContentY = view->property("contentY").toReal();
- calculateDisplacements();
-}
-
-void QQuickTumblerPrivate::calculateDisplacements()
-{
- const auto items = viewContentItemChildItems();
- for (QQuickItem *childItem : items) {
- QQuickTumblerAttached *attached = qobject_cast<QQuickTumblerAttached *>(qmlAttachedPropertiesObject<QQuickTumbler>(childItem, false));
- if (attached)
- QQuickTumblerAttachedPrivate::get(attached)->calculateDisplacement();
- }
-}
-
-void QQuickTumblerPrivate::itemChildAdded(QQuickItem *, QQuickItem *)
-{
- _q_updateItemWidths();
- _q_updateItemHeights();
-}
-
-void QQuickTumblerPrivate::itemChildRemoved(QQuickItem *, QQuickItem *)
-{
- _q_updateItemWidths();
- _q_updateItemHeights();
-}
-
-void QQuickTumblerPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff)
-{
- QQuickControlPrivate::itemGeometryChanged(item, change, diff);
- if (change.sizeChange())
- calculateDisplacements();
-}
-
-QPalette QQuickTumblerPrivate::defaultPalette() const
-{
- return QQuickTheme::palette(QQuickTheme::Tumbler);
-}
-
-QQuickTumbler::QQuickTumbler(QQuickItem *parent)
- : QQuickControl(*(new QQuickTumblerPrivate), parent)
-{
- setActiveFocusOnTab(true);
-
- connect(this, SIGNAL(leftPaddingChanged()), this, SLOT(_q_updateItemWidths()));
- connect(this, SIGNAL(rightPaddingChanged()), this, SLOT(_q_updateItemWidths()));
- connect(this, SIGNAL(topPaddingChanged()), this, SLOT(_q_updateItemHeights()));
- connect(this, SIGNAL(bottomPaddingChanged()), this, SLOT(_q_updateItemHeights()));
-}
-
-QQuickTumbler::~QQuickTumbler()
-{
- Q_D(QQuickTumbler);
- // Ensure that the item change listener is removed.
- d->disconnectFromView();
-}
-
-/*!
- \qmlproperty variant QtQuick.Controls::Tumbler::model
-
- This property holds the model that provides data for this tumbler.
-*/
-QVariant QQuickTumbler::model() const
-{
- Q_D(const QQuickTumbler);
- return d->model;
-}
-
-void QQuickTumbler::setModel(const QVariant &model)
-{
- Q_D(QQuickTumbler);
- if (model == d->model)
- return;
-
- d->beginSetModel();
-
- d->model = model;
- emit modelChanged();
-
- d->endSetModel();
-
- d->currentIndexSetDuringModelChange = false;
-
- // Don't try to correct the currentIndex if count() isn't known yet.
- // We can check in setupViewData() instead.
- if (isComponentComplete() && d->view && count() == 0)
- d->setCurrentIndex(-1);
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::Tumbler::count
- \readonly
-
- This property holds the number of items in the model.
-*/
-int QQuickTumbler::count() const
-{
- Q_D(const QQuickTumbler);
- return d->count;
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::Tumbler::currentIndex
-
- This property holds the index of the current item.
-
- The value of this property is \c -1 when \l count is equal to \c 0. In all
- other cases, it will be greater than or equal to \c 0.
-
- \sa currentItem, positionViewAtIndex()
-*/
-int QQuickTumbler::currentIndex() const
-{
- Q_D(const QQuickTumbler);
- return d->currentIndex;
-}
-
-void QQuickTumbler::setCurrentIndex(int currentIndex)
-{
- Q_D(QQuickTumbler);
- if (d->modelBeingSet)
- d->currentIndexSetDuringModelChange = true;
- d->setCurrentIndex(currentIndex, QQuickTumblerPrivate::UserChange);
-}
-
-/*!
- \qmlproperty Item QtQuick.Controls::Tumbler::currentItem
- \readonly
-
- This property holds the item at the current index.
-
- \sa currentIndex, positionViewAtIndex()
-*/
-QQuickItem *QQuickTumbler::currentItem() const
-{
- Q_D(const QQuickTumbler);
- return d->view ? d->view->property("currentItem").value<QQuickItem*>() : nullptr;
-}
-
-/*!
- \qmlproperty Component QtQuick.Controls::Tumbler::delegate
-
- This property holds the delegate used to display each item.
-*/
-QQmlComponent *QQuickTumbler::delegate() const
-{
- Q_D(const QQuickTumbler);
- return d->delegate;
-}
-
-void QQuickTumbler::setDelegate(QQmlComponent *delegate)
-{
- Q_D(QQuickTumbler);
- if (delegate == d->delegate)
- return;
-
- d->delegate = delegate;
- emit delegateChanged();
-}
-
-/*!
- \qmlproperty int QtQuick.Controls::Tumbler::visibleItemCount
-
- This property holds the number of items visible in the tumbler. It must be
- an odd number, as the current item is always vertically centered.
-*/
-int QQuickTumbler::visibleItemCount() const
-{
- Q_D(const QQuickTumbler);
- return d->visibleItemCount;
-}
-
-void QQuickTumbler::setVisibleItemCount(int visibleItemCount)
-{
- Q_D(QQuickTumbler);
- if (visibleItemCount == d->visibleItemCount)
- return;
-
- d->visibleItemCount = visibleItemCount;
- d->_q_updateItemHeights();
- emit visibleItemCountChanged();
-}
-
-QQuickTumblerAttached *QQuickTumbler::qmlAttachedProperties(QObject *object)
-{
- return new QQuickTumblerAttached(object);
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Tumbler::wrap
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This property determines whether or not the tumbler wraps around when it
- reaches the top or bottom.
-
- The default value is \c false when \l count is less than
- \l visibleItemCount, as it is simpler to interact with a non-wrapping Tumbler
- when there are only a few items. To override this behavior, explicitly set
- the value of this property. To return to the default behavior, set this
- property to \c undefined.
-*/
-bool QQuickTumbler::wrap() const
-{
- Q_D(const QQuickTumbler);
- return d->wrap;
-}
-
-void QQuickTumbler::setWrap(bool wrap)
-{
- Q_D(QQuickTumbler);
- d->setWrap(wrap, true);
-}
-
-void QQuickTumbler::resetWrap()
-{
- Q_D(QQuickTumbler);
- d->explicitWrap = false;
- d->setWrapBasedOnCount();
-}
-
-/*!
- \qmlproperty bool QtQuick.Controls::Tumbler::moving
- \since QtQuick.Controls 2.2 (Qt 5.9)
-
- This property describes whether the tumbler is currently moving, due to
- the user either dragging or flicking it.
-*/
-bool QQuickTumbler::isMoving() const
-{
- Q_D(const QQuickTumbler);
- return d->view && d->view->property("moving").toBool();
-}
-
-/*!
- \qmlmethod void QtQuick.Controls::Tumbler::positionViewAtIndex(int index, PositionMode mode)
- \since QtQuick.Controls 2.5 (Qt 5.12)
-
- Positions the view so that the \a index is at the position specified by \a mode.
-
- For example:
-
- \code
- positionViewAtIndex(10, Tumbler.Center)
- \endcode
-
- If \l wrap is true (the default), the modes available to \l {PathView}'s
- \l {PathView::}{positionViewAtIndex()} function
- are available, otherwise the modes available to \l {ListView}'s
- \l {ListView::}{positionViewAtIndex()} function
- are available.
-
- \note There is a known limitation that using \c Tumbler.Beginning when \l
- wrap is \c true will result in the wrong item being positioned at the top
- of view. As a workaround, pass \c {index - 1}.
-
- \sa currentIndex
-*/
-void QQuickTumbler::positionViewAtIndex(int index, QQuickTumbler::PositionMode mode)
-{
- Q_D(QQuickTumbler);
- if (!d->view) {
- d->warnAboutIncorrectContentItem();
- return;
- }
-
- QMetaObject::invokeMethod(d->view, "positionViewAtIndex", Q_ARG(int, index), Q_ARG(int, mode));
-}
-
-void QQuickTumbler::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
-{
- Q_D(QQuickTumbler);
-
- QQuickControl::geometryChange(newGeometry, oldGeometry);
-
- d->_q_updateItemHeights();
-
- if (newGeometry.width() != oldGeometry.width())
- d->_q_updateItemWidths();
-}
-
-void QQuickTumbler::componentComplete()
-{
- Q_D(QQuickTumbler);
- qCDebug(lcTumbler) << "componentComplete()";
- QQuickControl::componentComplete();
-
- if (!d->view) {
- // Force the view to be created.
- qCDebug(lcTumbler) << "emitting wrapChanged() to force view to be created";
- emit wrapChanged();
- // Determine the type of view for attached properties, etc.
- d->setupViewData(d->contentItem);
- }
-
- // If there was no contentItem or it was of an unsupported type,
- // we don't have anything else to do.
- if (!d->view)
- return;
-
- // Update item heights after we've populated the model,
- // otherwise ignoreSignals will cause these functions to return early.
- d->_q_updateItemHeights();
- d->_q_updateItemWidths();
- d->_q_onViewCountChanged();
-
- qCDebug(lcTumbler) << "componentComplete() is done";
-}
-
-void QQuickTumbler::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- Q_D(QQuickTumbler);
-
- QQuickControl::contentItemChange(newItem, oldItem);
-
- if (oldItem)
- d->disconnectFromView();
-
- if (newItem) {
- // We wait until wrap is set to that we know which type of view to create.
- // If we try to set up the view too early, we'll issue warnings about it not existing.
- if (isComponentComplete()) {
- // Make sure we use the new content item and not the current one, as that won't
- // be changed until after contentItemChange() has finished.
- d->setupViewData(newItem);
-
- d->_q_updateItemHeights();
- d->_q_updateItemWidths();
- }
- }
-}
-
-void QQuickTumblerPrivate::disconnectFromView()
-{
- Q_Q(QQuickTumbler);
- if (!view) {
- // If a custom content item is declared, it can happen that
- // the original contentItem exists without the view etc. having been
- // determined yet, and then this is called when the custom content item
- // is eventually set.
- return;
- }
-
- QObject::disconnect(view, SIGNAL(currentIndexChanged()), q, SLOT(_q_onViewCurrentIndexChanged()));
- QObject::disconnect(view, SIGNAL(currentItemChanged()), q, SIGNAL(currentItemChanged()));
- QObject::disconnect(view, SIGNAL(countChanged()), q, SLOT(_q_onViewCountChanged()));
- QObject::disconnect(view, SIGNAL(movingChanged()), q, SIGNAL(movingChanged()));
-
- if (viewContentItemType == PathViewContentItem)
- QObject::disconnect(view, SIGNAL(offsetChanged()), q, SLOT(_q_onViewOffsetChanged()));
- else
- QObject::disconnect(view, SIGNAL(contentYChanged()), q, SLOT(_q_onViewContentYChanged()));
-
- QQuickItemPrivate *oldViewContentItemPrivate = QQuickItemPrivate::get(viewContentItem);
- oldViewContentItemPrivate->removeItemChangeListener(this, QQuickItemPrivate::Children | QQuickItemPrivate::Geometry);
-
- resetViewData();
-}
-
-void QQuickTumblerPrivate::setupViewData(QQuickItem *newControlContentItem)
-{
- // Don't do anything if we've already set up.
- if (view)
- return;
-
- determineViewType(newControlContentItem);
-
- if (viewContentItemType == QQuickTumblerPrivate::NoContentItem)
- return;
-
- if (viewContentItemType == QQuickTumblerPrivate::UnsupportedContentItemType) {
- warnAboutIncorrectContentItem();
- return;
- }
-
- Q_Q(QQuickTumbler);
- QObject::connect(view, SIGNAL(currentIndexChanged()), q, SLOT(_q_onViewCurrentIndexChanged()));
- QObject::connect(view, SIGNAL(currentItemChanged()), q, SIGNAL(currentItemChanged()));
- QObject::connect(view, SIGNAL(countChanged()), q, SLOT(_q_onViewCountChanged()));
- QObject::connect(view, SIGNAL(movingChanged()), q, SIGNAL(movingChanged()));
-
- if (viewContentItemType == PathViewContentItem) {
- QObject::connect(view, SIGNAL(offsetChanged()), q, SLOT(_q_onViewOffsetChanged()));
- _q_onViewOffsetChanged();
- } else {
- QObject::connect(view, SIGNAL(contentYChanged()), q, SLOT(_q_onViewContentYChanged()));
- _q_onViewContentYChanged();
- }
-
- QQuickItemPrivate *viewContentItemPrivate = QQuickItemPrivate::get(viewContentItem);
- viewContentItemPrivate->addItemChangeListener(this, QQuickItemPrivate::Children | QQuickItemPrivate::Geometry);
-
- // Sync the view's currentIndex with ours.
- syncCurrentIndex();
-
- calculateDisplacements();
-}
-
-void QQuickTumblerPrivate::warnAboutIncorrectContentItem()
-{
- Q_Q(QQuickTumbler);
- qmlWarning(q) << "Tumbler: contentItem must contain either a PathView or a ListView";
-}
-
-void QQuickTumblerPrivate::syncCurrentIndex()
-{
- const int actualViewIndex = view->property("currentIndex").toInt();
- Q_Q(QQuickTumbler);
-
- const bool isPendingCurrentIndex = pendingCurrentIndex != -1;
- const int indexToSet = isPendingCurrentIndex ? pendingCurrentIndex : currentIndex;
-
- // Nothing to do.
- if (actualViewIndex == indexToSet) {
- setPendingCurrentIndex(-1);
- return;
- }
-
- // actualViewIndex might be 0 or -1 for PathView and ListView respectively,
- // but we always use -1 for that.
- if (q->count() == 0 && actualViewIndex <= 0)
- return;
-
- ignoreCurrentIndexChanges = true;
- view->setProperty("currentIndex", QVariant(indexToSet));
- ignoreCurrentIndexChanges = false;
-
- if (view->property("currentIndex").toInt() == indexToSet)
- setPendingCurrentIndex(-1);
- else if (isPendingCurrentIndex)
- q->polish();
-}
-
-void QQuickTumblerPrivate::setPendingCurrentIndex(int index)
-{
- qCDebug(lcTumbler) << "setting pendingCurrentIndex to" << index;
- pendingCurrentIndex = index;
-}
-
-QString QQuickTumblerPrivate::propertyChangeReasonToString(
- QQuickTumblerPrivate::PropertyChangeReason changeReason)
-{
- return changeReason == UserChange ? QStringLiteral("UserChange") : QStringLiteral("InternalChange");
-}
-
-void QQuickTumblerPrivate::setCurrentIndex(int newCurrentIndex,
- QQuickTumblerPrivate::PropertyChangeReason changeReason)
-{
- Q_Q(QQuickTumbler);
- qCDebug(lcTumbler).nospace() << "setting currentIndex to " << newCurrentIndex
- << ", old currentIndex was " << currentIndex
- << ", changeReason is " << propertyChangeReasonToString(changeReason);
- if (newCurrentIndex == currentIndex || newCurrentIndex < -1)
- return;
-
- if (!q->isComponentComplete()) {
- // Views can't set currentIndex until they're ready.
- qCDebug(lcTumbler) << "we're not complete; setting pendingCurrentIndex instead";
- setPendingCurrentIndex(newCurrentIndex);
- return;
- }
-
- if (modelBeingSet && changeReason == UserChange) {
- // If modelBeingSet is true and the user set the currentIndex,
- // the model is in the process of being set and the user has set
- // the currentIndex in onModelChanged. We have to queue the currentIndex
- // change until we're ready.
- qCDebug(lcTumbler) << "a model is being set; setting pendingCurrentIndex instead";
- setPendingCurrentIndex(newCurrentIndex);
- return;
- }
-
- // -1 doesn't make sense for a non-empty Tumbler, because unlike
- // e.g. ListView, there's always one item selected.
- // Wait until the component has finished before enforcing this rule, though,
- // because the count might not be known yet.
- if ((count > 0 && newCurrentIndex == -1) || (newCurrentIndex >= count)) {
- return;
- }
-
- // The view might not have been created yet, as is the case
- // if you create a Tumbler component and pass e.g. { currentIndex: 2 }
- // to createObject().
- if (view) {
- // Only actually set our currentIndex if the view was able to set theirs.
- bool couldSet = false;
- if (count == 0 && newCurrentIndex == -1) {
- // PathView insists on using 0 as the currentIndex when there are no items.
- couldSet = true;
- } else {
- ignoreCurrentIndexChanges = true;
- ignoreSignals = true;
- view->setProperty("currentIndex", newCurrentIndex);
- ignoreSignals = false;
- ignoreCurrentIndexChanges = false;
-
- couldSet = view->property("currentIndex").toInt() == newCurrentIndex;
- }
-
- if (couldSet) {
- // The view's currentIndex might not have actually changed, but ours has,
- // and that's what user code sees.
- currentIndex = newCurrentIndex;
- emit q->currentIndexChanged();
- }
-
- qCDebug(lcTumbler) << "view's currentIndex is now" << view->property("currentIndex").toInt()
- << "and ours is" << currentIndex;
- }
-}
-
-void QQuickTumblerPrivate::setCount(int newCount)
-{
- qCDebug(lcTumbler).nospace() << "setting count to " << newCount
- << ", old count was " << count;
- if (newCount == count)
- return;
-
- count = newCount;
-
- Q_Q(QQuickTumbler);
- setWrapBasedOnCount();
-
- emit q->countChanged();
-}
-
-void QQuickTumblerPrivate::setWrapBasedOnCount()
-{
- if (count == 0 || explicitWrap || modelBeingSet)
- return;
-
- setWrap(count >= visibleItemCount, false);
-}
-
-void QQuickTumblerPrivate::setWrap(bool shouldWrap, bool isExplicit)
-{
- qCDebug(lcTumbler) << "setting wrap to" << shouldWrap << "- exlicit?" << isExplicit;
- if (isExplicit)
- explicitWrap = true;
-
- Q_Q(QQuickTumbler);
- if (q->isComponentComplete() && shouldWrap == wrap)
- return;
-
- // Since we use the currentIndex of the contentItem directly, we must
- // ensure that we keep track of the currentIndex so it doesn't get lost
- // between view changes.
- const int oldCurrentIndex = currentIndex;
-
- disconnectFromView();
-
- wrap = shouldWrap;
-
- // New views will set their currentIndex upon creation, which we'd otherwise
- // take as the correct one, so we must ignore them.
- ignoreCurrentIndexChanges = true;
-
- // This will cause the view to be created if our contentItem is a TumblerView.
- emit q->wrapChanged();
-
- ignoreCurrentIndexChanges = false;
-
- // If isComponentComplete() is true, we require a contentItem. If it's not
- // true, it might not have been created yet, so we wait until
- // componentComplete() is called.
- //
- // When the contentItem (usually QQuickTumblerView) has been created, we
- // can start determining its type, etc. If the delegates use attached
- // properties, this will have already been called, in which case it will
- // return early. If the delegate doesn't use attached properties, we need
- // to call it here.
- if (q->isComponentComplete() || contentItem)
- setupViewData(contentItem);
-
- setCurrentIndex(oldCurrentIndex);
-}
-
-void QQuickTumblerPrivate::beginSetModel()
-{
- modelBeingSet = true;
-}
-
-void QQuickTumblerPrivate::endSetModel()
-{
- modelBeingSet = false;
- setWrapBasedOnCount();
-}
-
-void QQuickTumbler::keyPressEvent(QKeyEvent *event)
-{
- QQuickControl::keyPressEvent(event);
-
- Q_D(QQuickTumbler);
- if (event->isAutoRepeat() || !d->view)
- return;
-
- if (event->key() == Qt::Key_Up) {
- QMetaObject::invokeMethod(d->view, "decrementCurrentIndex");
- } else if (event->key() == Qt::Key_Down) {
- QMetaObject::invokeMethod(d->view, "incrementCurrentIndex");
- }
-}
-
-void QQuickTumbler::updatePolish()
-{
- Q_D(QQuickTumbler);
- if (d->pendingCurrentIndex != -1) {
- // Update our count, as ignoreSignals might have been true
- // when _q_onViewCountChanged() was last called.
- d->setCount(d->view->property("count").toInt());
-
- // If the count is still 0, it's not going to happen.
- if (d->count == 0) {
- d->setPendingCurrentIndex(-1);
- return;
- }
-
- // If there is a pending currentIndex at this stage, it means that
- // the view wouldn't set our currentIndex in _q_onViewCountChanged
- // because it wasn't ready. Try one last time here.
- d->setCurrentIndex(d->pendingCurrentIndex);
-
- if (d->currentIndex != d->pendingCurrentIndex && d->currentIndex == -1) {
- // If we *still* couldn't set it, it's probably invalid.
- // See if we can at least enforce our rule of "non-negative currentIndex when count > 0" instead.
- d->setCurrentIndex(0);
- }
-
- d->setPendingCurrentIndex(-1);
- }
-}
-
-QFont QQuickTumbler::defaultFont() const
-{
- return QQuickTheme::font(QQuickTheme::Tumbler);
-}
-
-void QQuickTumblerAttachedPrivate::init(QQuickItem *delegateItem)
-{
- if (!delegateItem->parentItem()) {
- qWarning() << "Tumbler: attached properties must be accessed through a delegate item that has a parent";
- return;
- }
-
- QVariant indexContextProperty = qmlContext(delegateItem)->contextProperty(QStringLiteral("index"));
- if (!indexContextProperty.isValid()) {
- qWarning() << "Tumbler: attempting to access attached property on item without an \"index\" property";
- return;
- }
-
- index = indexContextProperty.toInt();
-
- QQuickItem *parentItem = delegateItem;
- while ((parentItem = parentItem->parentItem())) {
- if ((tumbler = qobject_cast<QQuickTumbler*>(parentItem)))
- break;
- }
-}
-
-void QQuickTumblerAttachedPrivate::calculateDisplacement()
-{
- const qreal previousDisplacement = displacement;
- displacement = 0;
-
- if (!tumbler) {
- // Can happen if the attached properties are accessed on the wrong type of item or the tumbler was destroyed.
- // We don't want to emit the change signal though, as this could cause warnings about Tumbler.tumbler being null.
- return;
- }
-
- // Can happen if there is no ListView or PathView within the contentItem.
- QQuickTumblerPrivate *tumblerPrivate = QQuickTumblerPrivate::get(tumbler);
- if (!tumblerPrivate->viewContentItem) {
- emitIfDisplacementChanged(previousDisplacement, displacement);
- return;
- }
-
- // The attached property gets created before our count is updated, so just cheat here
- // to avoid having to listen to count changes.
- const int count = tumblerPrivate->view->property("count").toInt();
- // This can happen in tests, so it may happen in normal usage too.
- if (count == 0) {
- emitIfDisplacementChanged(previousDisplacement, displacement);
- return;
- }
-
- if (tumblerPrivate->viewContentItemType == QQuickTumblerPrivate::PathViewContentItem) {
- const qreal offset = tumblerPrivate->viewOffset;
-
- displacement = count > 1 ? count - index - offset : 0;
- // Don't add 1 if count <= visibleItemCount
- const int visibleItems = tumbler->visibleItemCount();
- const int halfVisibleItems = visibleItems / 2 + (visibleItems < count ? 1 : 0);
- if (displacement > halfVisibleItems)
- displacement -= count;
- else if (displacement < -halfVisibleItems)
- displacement += count;
- } else {
- const qreal contentY = tumblerPrivate->viewContentY;
- const qreal delegateH = delegateHeight(tumbler);
- const qreal preferredHighlightBegin = tumblerPrivate->view->property("preferredHighlightBegin").toReal();
- const qreal itemY = qobject_cast<QQuickItem*>(parent)->y();
- qreal currentItemY = 0;
- auto currentItem = tumblerPrivate->view->property("currentItem").value<QQuickItem*>();
- if (currentItem)
- currentItemY = currentItem->y();
- // Start from the y position of the current item.
- const qreal topOfCurrentItemInViewport = currentItemY - contentY;
- // Then, calculate the distance between it and the preferredHighlightBegin.
- const qreal relativePositionToPreferredHighlightBegin = topOfCurrentItemInViewport - preferredHighlightBegin;
- // Next, calculate the distance between us and the current item.
- const qreal distanceFromCurrentItem = currentItemY - itemY;
- const qreal displacementInPixels = distanceFromCurrentItem - relativePositionToPreferredHighlightBegin;
- // Convert it from pixels to a floating point index.
- displacement = displacementInPixels / delegateH;
- }
-
- emitIfDisplacementChanged(previousDisplacement, displacement);
-}
-
-void QQuickTumblerAttachedPrivate::emitIfDisplacementChanged(qreal oldDisplacement, qreal newDisplacement)
-{
- Q_Q(QQuickTumblerAttached);
- if (newDisplacement != oldDisplacement)
- emit q->displacementChanged();
-}
-
-QQuickTumblerAttached::QQuickTumblerAttached(QObject *parent)
- : QObject(*(new QQuickTumblerAttachedPrivate), parent)
-{
- Q_D(QQuickTumblerAttached);
- QQuickItem *delegateItem = qobject_cast<QQuickItem *>(parent);
- if (delegateItem)
- d->init(delegateItem);
- else if (parent)
- qmlWarning(parent) << "Tumbler: attached properties of Tumbler must be accessed through a delegate item";
-
- if (d->tumbler) {
- // When the Tumbler is completed, wrapChanged() is emitted to let QQuickTumblerView
- // know that it can create the view. The view itself might instantiate delegates
- // that use attached properties. At this point, setupViewData() hasn't been called yet
- // (it's called on the next line in componentComplete()), so we call it here so that
- // we have access to the view.
- QQuickTumblerPrivate *tumblerPrivate = QQuickTumblerPrivate::get(d->tumbler);
- tumblerPrivate->setupViewData(tumblerPrivate->contentItem);
-
- if (delegateItem && delegateItem->parentItem() == tumblerPrivate->viewContentItem) {
- // This item belongs to the "new" view, meaning that the tumbler's contentItem
- // was probably assigned declaratively. If they're not equal, calling
- // calculateDisplacement() would use the old contentItem data, which is bad.
- d->calculateDisplacement();
- }
- }
-}
-
-/*!
- \qmlattachedproperty Tumbler QtQuick.Controls::Tumbler::tumbler
- \readonly
-
- This attached property holds the tumbler. The property can be attached to
- a tumbler delegate. The value is \c null if the item is not a tumbler delegate.
-*/
-QQuickTumbler *QQuickTumblerAttached::tumbler() const
-{
- Q_D(const QQuickTumblerAttached);
- return d->tumbler;
-}
-
-/*!
- \qmlattachedproperty real QtQuick.Controls::Tumbler::displacement
- \readonly
-
- This attached property holds a value from \c {-visibleItemCount / 2} to
- \c {visibleItemCount / 2}, which represents how far away this item is from
- being the current item, with \c 0 being completely current.
-
- For example, the item below will be 40% opaque when it is not the current item,
- and transition to 100% opacity when it becomes the current item:
-
- \code
- delegate: Text {
- text: modelData
- opacity: 0.4 + Math.max(0, 1 - Math.abs(Tumbler.displacement)) * 0.6
- }
- \endcode
-*/
-qreal QQuickTumblerAttached::displacement() const
-{
- Q_D(const QQuickTumblerAttached);
- return d->displacement;
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qquicktumbler_p.cpp"
diff --git a/src/quicktemplates2/qquicktumbler_p.h b/src/quicktemplates2/qquicktumbler_p.h
deleted file mode 100644
index f9d5a13b..00000000
--- a/src/quicktemplates2/qquicktumbler_p.h
+++ /dev/null
@@ -1,179 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTUMBLER_P_H
-#define QQUICKTUMBLER_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qvariant.h>
-#include <QtQml/qqmlcomponent.h>
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickTumblerAttached;
-class QQuickTumblerPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTumbler : public QQuickControl
-{
- Q_OBJECT
- Q_PROPERTY(QVariant model READ model WRITE setModel NOTIFY modelChanged FINAL)
- Q_PROPERTY(int count READ count NOTIFY countChanged FINAL)
- Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged FINAL)
- Q_PROPERTY(QQuickItem *currentItem READ currentItem NOTIFY currentItemChanged FINAL)
- Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged FINAL)
- Q_PROPERTY(int visibleItemCount READ visibleItemCount WRITE setVisibleItemCount NOTIFY visibleItemCountChanged FINAL)
- // 2.1 (Qt 5.8)
- Q_PROPERTY(bool wrap READ wrap WRITE setWrap RESET resetWrap NOTIFY wrapChanged FINAL REVISION(2, 1))
- // 2.2 (Qt 5.9)
- Q_PROPERTY(bool moving READ isMoving NOTIFY movingChanged FINAL REVISION(2, 2))
- QML_NAMED_ELEMENT(Tumbler)
- QML_ATTACHED(QQuickTumblerAttached)
- QML_ADDED_IN_VERSION(2, 0)
-
-public:
- explicit QQuickTumbler(QQuickItem *parent = nullptr);
- ~QQuickTumbler();
-
- QVariant model() const;
- void setModel(const QVariant &model);
-
- int count() const;
-
- int currentIndex() const;
- void setCurrentIndex(int currentIndex);
- QQuickItem *currentItem() const;
-
- QQmlComponent *delegate() const;
- void setDelegate(QQmlComponent *delegate);
-
- int visibleItemCount() const;
- void setVisibleItemCount(int visibleItemCount);
-
- static QQuickTumblerAttached *qmlAttachedProperties(QObject *object);
-
- // 2.1 (Qt 5.8)
- bool wrap() const;
- void setWrap(bool wrap);
- void resetWrap();
-
- // 2.2 (Qt 5.9)
- bool isMoving() const;
-
- enum PositionMode {
- Beginning,
- Center,
- End,
- Visible, // ListView-only
- Contain,
- SnapPosition
- };
- Q_ENUM(PositionMode)
-
- // 2.5 (Qt 5.12)
- Q_REVISION(2, 5) Q_INVOKABLE void positionViewAtIndex(int index, PositionMode mode);
-
-Q_SIGNALS:
- void modelChanged();
- void countChanged();
- void currentIndexChanged();
- void currentItemChanged();
- void delegateChanged();
- void visibleItemCountChanged();
- // 2.1 (Qt 5.8)
- Q_REVISION(2, 1) void wrapChanged();
- // 2.2 (Qt 5.9)
- Q_REVISION(2, 2) void movingChanged();
-
-protected:
- void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override;
- void componentComplete() override;
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
- void keyPressEvent(QKeyEvent *event) override;
- void updatePolish() override;
-
- QFont defaultFont() const override;
-
-private:
- Q_DISABLE_COPY(QQuickTumbler)
- Q_DECLARE_PRIVATE(QQuickTumbler)
-
- Q_PRIVATE_SLOT(d_func(), void _q_updateItemWidths())
- Q_PRIVATE_SLOT(d_func(), void _q_updateItemHeights())
- Q_PRIVATE_SLOT(d_func(), void _q_onViewCurrentIndexChanged())
- Q_PRIVATE_SLOT(d_func(), void _q_onViewCountChanged())
- Q_PRIVATE_SLOT(d_func(), void _q_onViewOffsetChanged())
- Q_PRIVATE_SLOT(d_func(), void _q_onViewContentYChanged())
-};
-
-class QQuickTumblerAttachedPrivate;
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTumblerAttached : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QQuickTumbler *tumbler READ tumbler CONSTANT FINAL)
- Q_PROPERTY(qreal displacement READ displacement NOTIFY displacementChanged FINAL)
-
-public:
- explicit QQuickTumblerAttached(QObject *parent = nullptr);
-
- QQuickTumbler *tumbler() const;
- qreal displacement() const;
-
-Q_SIGNALS:
- void displacementChanged();
-
-private:
- Q_DISABLE_COPY(QQuickTumblerAttached)
- Q_DECLARE_PRIVATE(QQuickTumblerAttached)
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QQuickTumbler)
-QML_DECLARE_TYPEINFO(QQuickTumbler, QML_HAS_ATTACHED_PROPERTIES)
-
-#endif // QQUICKTUMBLER_P_H
diff --git a/src/quicktemplates2/qquicktumbler_p_p.h b/src/quicktemplates2/qquicktumbler_p_p.h
deleted file mode 100644
index aa5d58c0..00000000
--- a/src/quicktemplates2/qquicktumbler_p_p.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKTUMBLER_P_P_H
-#define QQUICKTUMBLER_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
-#include <QtQuickTemplates2/private/qquicktumbler_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTumblerPrivate : public QQuickControlPrivate
-{
- Q_DECLARE_PUBLIC(QQuickTumbler)
-
-public:
- enum ContentItemType {
- NoContentItem,
- UnsupportedContentItemType,
- PathViewContentItem,
- ListViewContentItem
- };
-
- QQuickItem *determineViewType(QQuickItem *contentItem);
- void resetViewData();
- QList<QQuickItem *> viewContentItemChildItems() const;
-
- static QQuickTumblerPrivate *get(QQuickTumbler *tumbler);
-
- QPalette defaultPalette() const override;
-
- QVariant model;
- QQmlComponent *delegate = nullptr;
- int visibleItemCount = 5;
- bool wrap = true;
- bool explicitWrap = false;
- bool modelBeingSet = false;
- bool currentIndexSetDuringModelChange = false;
- QQuickItem *view = nullptr;
- QQuickItem *viewContentItem = nullptr;
- ContentItemType viewContentItemType = UnsupportedContentItemType;
- union {
- qreal viewOffset; // PathView
- qreal viewContentY; // ListView
- };
- int currentIndex = -1;
- int pendingCurrentIndex = -1;
- bool ignoreCurrentIndexChanges = false;
- int count = 0;
- bool ignoreSignals = false;
-
- void _q_updateItemHeights();
- void _q_updateItemWidths();
- void _q_onViewCurrentIndexChanged();
- void _q_onViewCountChanged();
- void _q_onViewOffsetChanged();
- void _q_onViewContentYChanged();
-
- void calculateDisplacements();
-
- void disconnectFromView();
- void setupViewData(QQuickItem *newControlContentItem);
- void warnAboutIncorrectContentItem();
- void syncCurrentIndex();
- void setPendingCurrentIndex(int index);
-
- enum PropertyChangeReason {
- UserChange,
- InternalChange
- };
-
- static QString propertyChangeReasonToString(PropertyChangeReason changeReason);
-
- void setCurrentIndex(int newCurrentIndex, PropertyChangeReason changeReason = InternalChange);
- void setCount(int newCount);
- void setWrapBasedOnCount();
- void setWrap(bool shouldWrap, bool isExplicit);
- void beginSetModel();
- void endSetModel();
-
- void itemChildAdded(QQuickItem *, QQuickItem *) override;
- void itemChildRemoved(QQuickItem *, QQuickItem *) override;
- void itemGeometryChanged(QQuickItem *, QQuickGeometryChange , const QRectF &) override;
-};
-
-class QQuickTumblerAttachedPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QQuickTumblerAttached)
-
-public:
- static QQuickTumblerAttachedPrivate *get(QQuickTumblerAttached *attached)
- {
- return attached->d_func();
- }
-
- void init(QQuickItem *delegateItem);
-
- void calculateDisplacement();
- void emitIfDisplacementChanged(qreal oldDisplacement, qreal newDisplacement);
-
- // The Tumbler that contains the delegate. Required to calculated the displacement.
- QPointer<QQuickTumbler> tumbler;
- // The index of the delegate. Used to calculate the displacement.
- int index = -1;
- // The displacement for our delegate.
- qreal displacement = 0;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKTUMBLER_P_P_H
diff --git a/src/quicktemplates2/qquickvelocitycalculator.cpp b/src/quicktemplates2/qquickvelocitycalculator.cpp
deleted file mode 100644
index a0c5ec0d..00000000
--- a/src/quicktemplates2/qquickvelocitycalculator.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qquickvelocitycalculator_p_p.h"
-
-#include <QtCore/qdebug.h>
-
-QT_BEGIN_NAMESPACE
-
-/*
- Usage:
-
- QQuickVelocityCalculator velocityCalculator;
-
- // ...
-
- velocityCalcular.startMeasuring(event->pos(), event->timestamp());
- velocityCalcular.stopMeasuring(event->pos(), event->timestamp());
-
- // ...
-
- if (velocityCalculator.velocity().x() > someAmount)
- doSomething();
- else if (velocityCalculator.velocity().x() < -someAmount)
- doSomethingElse();
-*/
-
-void QQuickVelocityCalculator::startMeasuring(const QPointF &point1, qint64 timestamp)
-{
- m_point1 = point1;
-
- if (timestamp != 0)
- m_point1Timestamp = timestamp;
- else
- m_timer.start();
-}
-
-void QQuickVelocityCalculator::stopMeasuring(const QPointF &point2, qint64 timestamp)
-{
- if (timestamp == 0 && !m_timer.isValid()) {
- qWarning() << "QQuickVelocityCalculator: a call to stopMeasuring() must be preceded by a call to startMeasuring()";
- return;
- }
-
- m_point2 = point2;
- m_point2Timestamp = timestamp != 0 ? timestamp : m_timer.elapsed();
- m_timer.invalidate();
-}
-
-void QQuickVelocityCalculator::reset()
-{
- m_point1 = QPointF();
- m_point2 = QPointF();
- m_point1Timestamp = 0;
- m_point2Timestamp = 0;
- m_timer.invalidate();
-}
-
-QPointF QQuickVelocityCalculator::velocity() const
-{
- if ((m_point2Timestamp == 0 || m_point1Timestamp == m_point2Timestamp) && !m_timer.isValid())
- return QPointF();
-
- const qreal secondsElapsed = (m_point2Timestamp != 0 ? m_point2Timestamp - m_point1Timestamp : m_timer.elapsed()) / 1000.0;
- const QPointF distance = m_point2 - m_point1;
- return distance / secondsElapsed;
-}
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickvelocitycalculator_p_p.h b/src/quicktemplates2/qquickvelocitycalculator_p_p.h
deleted file mode 100644
index 2b13ff07..00000000
--- a/src/quicktemplates2/qquickvelocitycalculator_p_p.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QQUICKVELOCITYCALCULATOR_P_P_H
-#define QQUICKVELOCITYCALCULATOR_P_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qpoint.h>
-#include <QtCore/qelapsedtimer.h>
-
-QT_BEGIN_NAMESPACE
-
-class QQuickVelocityCalculator
-{
-public:
- void startMeasuring(const QPointF &point1, qint64 timestamp = 0);
- void stopMeasuring(const QPointF &m_point2, qint64 timestamp = 0);
- void reset();
- QPointF velocity() const;
-
-private:
- QPointF m_point1;
- QPointF m_point2;
- qint64 m_point1Timestamp = 0;
- qint64 m_point2Timestamp = 0;
- // When a timestamp isn't available, we must use a timer.
- // When stopMeasuring() has been called, we store the elapsed time in point2timestamp.
- QElapsedTimer m_timer;
-};
-
-QT_END_NAMESPACE
-
-#endif // QQUICKVELOCITYCALCULATOR_P_P_H
diff --git a/src/quicktemplates2/qt_cmdline.cmake b/src/quicktemplates2/qt_cmdline.cmake
deleted file mode 100644
index e69de29b..00000000
--- a/src/quicktemplates2/qt_cmdline.cmake
+++ /dev/null
diff --git a/src/quicktemplates2/qtquicktemplates2global.cpp b/src/quicktemplates2/qtquicktemplates2global.cpp
deleted file mode 100644
index 5d7816b4..00000000
--- a/src/quicktemplates2/qtquicktemplates2global.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtQuick module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "qquickpage_p.h"
-#include "accessible/qaccessiblequickpage_p.h"
-
-QT_BEGIN_NAMESPACE
-
-#if QT_CONFIG(accessibility)
-static QAccessibleInterface *qQuickAccessibleFactory(const QString &classname, QObject *object)
-{
- if (classname == u"QQuickPage") {
- return new QAccessibleQuickPage(qobject_cast<QQuickPage *>(object));
- }
- return nullptr;
-}
-#endif
-
-void QQuickTemplates_initializeModule()
-{
-#if QT_CONFIG(accessibility)
- QAccessible::installFactory(&qQuickAccessibleFactory);
-#endif
-}
-
-Q_CONSTRUCTOR_FUNCTION(QQuickTemplates_initializeModule)
-
-QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qtquicktemplates2global_p.h b/src/quicktemplates2/qtquicktemplates2global_p.h
deleted file mode 100644
index db848229..00000000
--- a/src/quicktemplates2/qtquicktemplates2global_p.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2021 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QTQUICKTEMPLATES2GLOBAL_P_H
-#define QTQUICKTEMPLATES2GLOBAL_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include <QtCore/qglobal.h>
-#include <QtQml/private/qqmlglobal_p.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2-config_p.h>
-
-QT_BEGIN_NAMESPACE
-
-#ifndef QT_STATIC
-# if defined(QT_BUILD_QUICKTEMPLATES2_LIB)
-# define Q_QUICKTEMPLATES2_PRIVATE_EXPORT Q_DECL_EXPORT
-# else
-# define Q_QUICKTEMPLATES2_PRIVATE_EXPORT Q_DECL_IMPORT
-# endif
-#else
-# define Q_QUICKTEMPLATES2_PRIVATE_EXPORT
-#endif
-
-Q_QUICKTEMPLATES2_PRIVATE_EXPORT void QQuickTemplates_initializeModule();
-
-QT_END_NAMESPACE
-
-Q_QUICKTEMPLATES2_PRIVATE_EXPORT void qml_register_types_QtQuick_Templates();
-
-#endif // QTQUICKTEMPLATES2GLOBAL_P_H
diff --git a/src/quicktemplates2/qtquicktemplates2plugin.cpp b/src/quicktemplates2/qtquicktemplates2plugin.cpp
deleted file mode 100644
index 644d7dce..00000000
--- a/src/quicktemplates2/qtquicktemplates2plugin.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL3$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPLv3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or later as published by the Free
-** Software Foundation and appearing in the file LICENSE.GPL included in
-** the packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 2.0 requirements will be
-** met: http://www.gnu.org/licenses/gpl-2.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtQml/qqmlextensionplugin.h>
-#include <QtQml/private/qqmlglobal_p.h>
-#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
-
-#if QT_CONFIG(shortcut)
-#include <QtQuickTemplates2/private/qquickshortcutcontext_p_p.h>
-
-// qtdeclarative/src/quick/util/qquickshortcut.cpp
-typedef bool (*ShortcutContextMatcher)(QObject *, Qt::ShortcutContext);
-extern ShortcutContextMatcher qt_quick_shortcut_context_matcher();
-extern void qt_quick_set_shortcut_context_matcher(ShortcutContextMatcher matcher);
-#endif
-
-QT_BEGIN_NAMESPACE
-
-class QtQuickTemplates2Plugin : public QQmlExtensionPlugin
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
-
-public:
- QtQuickTemplates2Plugin(QObject *parent = nullptr);
- ~QtQuickTemplates2Plugin();
-
- void registerTypes(const char *uri) override;
- void unregisterTypes() override;
-
-private:
- bool registered;
-#if QT_CONFIG(shortcut)
- ShortcutContextMatcher originalContextMatcher;
-#endif
-};
-
-QtQuickTemplates2Plugin::QtQuickTemplates2Plugin(QObject *parent)
- : QQmlExtensionPlugin(parent), registered(false)
-{
- volatile auto registration = &qml_register_types_QtQuick_Templates;
- volatile auto initialization = &QQuickTemplates_initializeModule;
-
- Q_UNUSED(registration)
- Q_UNUSED(initialization)
-}
-
-QtQuickTemplates2Plugin::~QtQuickTemplates2Plugin()
-{
- // Intentionally empty: we use register/unregisterTypes() to do
- // initialization and cleanup, as plugins are not unloaded on macOS.
-}
-
-void QtQuickTemplates2Plugin::registerTypes(const char * /*uri*/)
-{
-#if QT_CONFIG(shortcut)
- originalContextMatcher = qt_quick_shortcut_context_matcher();
- qt_quick_set_shortcut_context_matcher(QQuickShortcutContext::matcher);
-#endif
-
- registered = true;
-}
-
-void QtQuickTemplates2Plugin::unregisterTypes()
-{
-#if QT_CONFIG(shortcut)
- qt_quick_set_shortcut_context_matcher(originalContextMatcher);
-#endif
-}
-
-QT_END_NAMESPACE
-
-#include "qtquicktemplates2plugin.moc"
diff --git a/src/quicktemplates2/quicktemplates2.pri b/src/quicktemplates2/quicktemplates2.pri
deleted file mode 100644
index 0f19de5e..00000000
--- a/src/quicktemplates2/quicktemplates2.pri
+++ /dev/null
@@ -1,182 +0,0 @@
-INCLUDEPATH += $$PWD
-
-HEADERS += \
- $$PWD/qquickabstractbutton_p.h \
- $$PWD/qquickabstractbutton_p_p.h \
- $$PWD/qquickaction_p.h \
- $$PWD/qquickactiongroup_p.h \
- $$PWD/qquickapplicationwindow_p.h \
- $$PWD/qquickbusyindicator_p.h \
- $$PWD/qquickbutton_p.h \
- $$PWD/qquickbutton_p_p.h \
- $$PWD/qquickbuttongroup_p.h \
- $$PWD/qquickcheckbox_p.h \
- $$PWD/qquickcheckdelegate_p.h \
- $$PWD/qquickcombobox_p.h \
- $$PWD/qquickcontainer_p.h \
- $$PWD/qquickcontainer_p_p.h \
- $$PWD/qquickcontentitem_p.h \
- $$PWD/qquickcontrol_p.h \
- $$PWD/qquickcontrol_p_p.h \
- $$PWD/qquickdeferredexecute_p_p.h \
- $$PWD/qquickdeferredpointer_p_p.h \
- $$PWD/qquickdelaybutton_p.h \
- $$PWD/qquickdial_p.h \
- $$PWD/qquickdialog_p.h \
- $$PWD/qquickdialog_p_p.h \
- $$PWD/qquickdialogbuttonbox_p.h \
- $$PWD/qquickdialogbuttonbox_p_p.h \
- $$PWD/qquickdrawer_p.h \
- $$PWD/qquickdrawer_p_p.h \
- $$PWD/qquickframe_p.h \
- $$PWD/qquickframe_p_p.h \
- $$PWD/qquickgroupbox_p.h \
- $$PWD/qquickheaderview_p.h \
- $$PWD/qquickheaderview_p_p.h \
- $$PWD/qquickicon_p.h \
- $$PWD/qquickindicatorbutton_p.h \
- $$PWD/qquickitemdelegate_p.h \
- $$PWD/qquickitemdelegate_p_p.h \
- $$PWD/qquicklabel_p.h \
- $$PWD/qquicklabel_p_p.h \
- $$PWD/qquickmenu_p.h \
- $$PWD/qquickmenu_p_p.h \
- $$PWD/qquickmenubar_p.h \
- $$PWD/qquickmenubar_p_p.h \
- $$PWD/qquickmenubaritem_p.h \
- $$PWD/qquickmenubaritem_p_p.h \
- $$PWD/qquickmenuitem_p.h \
- $$PWD/qquickmenuitem_p_p.h \
- $$PWD/qquickmenuseparator_p.h \
- $$PWD/qquickoverlay_p.h \
- $$PWD/qquickoverlay_p_p.h \
- $$PWD/qquickpage_p.h \
- $$PWD/qquickpage_p_p.h \
- $$PWD/qquickpageindicator_p.h \
- $$PWD/qquickpane_p.h \
- $$PWD/qquickpane_p_p.h \
- $$PWD/qquickpopup_p.h \
- $$PWD/qquickpopup_p_p.h \
- $$PWD/qquickpopupanchors_p.h \
- $$PWD/qquickpopupanchors_p_p.h \
- $$PWD/qquickpopupitem_p_p.h \
- $$PWD/qquickpopuppositioner_p_p.h \
- $$PWD/qquickpresshandler_p_p.h \
- $$PWD/qquickprogressbar_p.h \
- $$PWD/qquickradiobutton_p.h \
- $$PWD/qquickradiodelegate_p.h \
- $$PWD/qquickrangeslider_p.h \
- $$PWD/qquickroundbutton_p.h \
- $$PWD/qquickscrollbar_p.h \
- $$PWD/qquickscrollbar_p_p.h \
- $$PWD/qquickscrollindicator_p.h \
- $$PWD/qquickscrollview_p.h \
- $$PWD/qquickselectionrectangle_p.h \
- $$PWD/qquickselectionrectangle_p_p.h \
- $$PWD/qquickshortcutcontext_p_p.h \
- $$PWD/qquickslider_p.h \
- $$PWD/qquickspinbox_p.h \
- $$PWD/qquicksplitview_p.h \
- $$PWD/qquickstackelement_p_p.h \
- $$PWD/qquickstacktransition_p_p.h \
- $$PWD/qquickstackview_p.h \
- $$PWD/qquickstackview_p_p.h \
- $$PWD/qquickswipe_p.h \
- $$PWD/qquickswipedelegate_p.h \
- $$PWD/qquickswipedelegate_p_p.h \
- $$PWD/qquickswipeview_p.h \
- $$PWD/qquickswitch_p.h \
- $$PWD/qquickswitchdelegate_p.h \
- $$PWD/qquicktabbar_p.h \
- $$PWD/qquicktabbutton_p.h \
- $$PWD/qquicktextarea_p.h \
- $$PWD/qquicktextarea_p_p.h \
- $$PWD/qquicktextfield_p.h \
- $$PWD/qquicktextfield_p_p.h \
- $$PWD/qquicktheme_p.h \
- $$PWD/qquicktheme_p_p.h \
- $$PWD/qquicktoolbar_p.h \
- $$PWD/qquicktoolbutton_p.h \
- $$PWD/qquicktoolseparator_p.h \
- $$PWD/qquicktooltip_p.h \
- $$PWD/qquickvelocitycalculator_p_p.h
-
-SOURCES += \
- $$PWD/qquickabstractbutton.cpp \
- $$PWD/qquickaction.cpp \
- $$PWD/qquickactiongroup.cpp \
- $$PWD/qquickapplicationwindow.cpp \
- $$PWD/qquickbusyindicator.cpp \
- $$PWD/qquickbutton.cpp \
- $$PWD/qquickbuttongroup.cpp \
- $$PWD/qquickcheckbox.cpp \
- $$PWD/qquickcheckdelegate.cpp \
- $$PWD/qquickcombobox.cpp \
- $$PWD/qquickcontainer.cpp \
- $$PWD/qquickcontentitem.cpp \
- $$PWD/qquickcontrol.cpp \
- $$PWD/qquickdeferredexecute.cpp \
- $$PWD/qquickdelaybutton.cpp \
- $$PWD/qquickdial.cpp \
- $$PWD/qquickdialog.cpp \
- $$PWD/qquickdialogbuttonbox.cpp \
- $$PWD/qquickdrawer.cpp \
- $$PWD/qquickframe.cpp \
- $$PWD/qquickgroupbox.cpp \
- $$PWD/qquickheaderview.cpp \
- $$PWD/qquickicon.cpp \
- $$PWD/qquickindicatorbutton_p.cpp \
- $$PWD/qquickitemdelegate.cpp \
- $$PWD/qquicklabel.cpp \
- $$PWD/qquickmenu.cpp \
- $$PWD/qquickmenubar.cpp \
- $$PWD/qquickmenubaritem.cpp \
- $$PWD/qquickmenuitem.cpp \
- $$PWD/qquickmenuseparator.cpp \
- $$PWD/qquickoverlay.cpp \
- $$PWD/qquickpage.cpp \
- $$PWD/qquickpageindicator.cpp \
- $$PWD/qquickpane.cpp \
- $$PWD/qquickpopup.cpp \
- $$PWD/qquickpopupanchors.cpp \
- $$PWD/qquickpopupitem.cpp \
- $$PWD/qquickpopuppositioner.cpp \
- $$PWD/qquickpresshandler.cpp \
- $$PWD/qquickprogressbar.cpp \
- $$PWD/qquickradiobutton.cpp \
- $$PWD/qquickradiodelegate.cpp \
- $$PWD/qquickrangeslider.cpp \
- $$PWD/qquickroundbutton.cpp \
- $$PWD/qquickscrollbar.cpp \
- $$PWD/qquickscrollindicator.cpp \
- $$PWD/qquickscrollview.cpp \
- $$PWD/qquickshortcutcontext.cpp \
- $$PWD/qquickslider.cpp \
- $$PWD/qquickspinbox.cpp \
- $$PWD/qquicksplitview.cpp \
- $$PWD/qquickstackelement.cpp \
- $$PWD/qquickstacktransition.cpp \
- $$PWD/qquickstackview.cpp \
- $$PWD/qquickstackview_p.cpp \
- $$PWD/qquickswipedelegate.cpp \
- $$PWD/qquickswipeview.cpp \
- $$PWD/qquickswitch.cpp \
- $$PWD/qquickswitchdelegate.cpp \
- $$PWD/qquicktabbar.cpp \
- $$PWD/qquicktabbutton.cpp \
- $$PWD/qquicktextarea.cpp \
- $$PWD/qquicktextfield.cpp \
- $$PWD/qquicktheme.cpp \
- $$PWD/qquicktoolbar.cpp \
- $$PWD/qquicktoolbutton.cpp \
- $$PWD/qquicktoolseparator.cpp \
- $$PWD/qquicktooltip.cpp \
- $$PWD/qquickvelocitycalculator.cpp
-
-qtConfig(quick-listview):qtConfig(quick-pathview) {
- HEADERS += \
- $$PWD/qquicktumbler_p.h \
- $$PWD/qquicktumbler_p_p.h
- SOURCES += \
- $$PWD/qquicktumbler.cpp
-}