aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
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
-}