From 5483ccd3547dcb3edbe4c50d70e6921ee5c5cb7a Mon Sep 17 00:00:00 2001
From: Caroline Chao <caroline.chao@digia.com>
Date: Wed, 31 Jul 2013 13:38:35 +0200
Subject: [PATCH] Move Styles and Private under controls

Register the C++ private API from the controls plugin. The
private plugin is not needed anymore.

The Controls "submodules" Styles and Private are moved to
the controls subfolder in the sources tree.

Change-Id: I98358227c945b6cd1a8dbff9d07e6cad4f044277
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
---
 .../Private}/AbstractCheckable.qml            |   0
 .../Private}/BasicButton.qml                  |   0
 src/{private => controls/Private}/Control.qml |   0
 .../Private}/FocusFrame.qml                   |   0
 .../Private}/ModalPopupBehavior.qml           |   0
 .../Private}/ScrollBar.qml                    |   0
 .../Private}/ScrollViewHelper.qml             |   0
 .../Private}/StackView.js                     |   0
 .../Private}/StackViewSlideDelegate.qml       |   0
 src/{private => controls/Private}/Style.qml   |   0
 src/{private => controls/Private}/TabBar.qml  |   0
 src/{private => controls/Private}/private.pri |  18 +++++
 src/{private => controls/Private}/qmldir      |   1 -
 .../Private}/qquickabstractstyle.cpp          |   0
 .../Private}/qquickabstractstyle_p.h          |   0
 .../Private}/qquickcontrolsettings.cpp        |   0
 .../Private}/qquickcontrolsettings_p.h        |   0
 .../Private}/qquickcontrolsprivate_p.h        |   0
 .../Private}/qquickpadding_p.h                |   0
 .../Private}/qquickrangemodel.cpp             |   0
 .../Private}/qquickrangemodel_p.h             |   0
 .../Private}/qquickrangemodel_p_p.h           |   0
 .../Private}/qquickspinboxvalidator.cpp       |   0
 .../Private}/qquickspinboxvalidator_p.h       |   0
 .../Private}/qquickstyleitem.cpp              |   0
 .../Private}/qquickstyleitem_p.h              |   0
 .../Private}/qquicktooltip.cpp                |   0
 .../Private}/qquicktooltip_p.h                |   0
 .../Private}/qquickwheelarea.cpp              |   0
 .../Private}/qquickwheelarea_p.h              |   0
 src/{private => controls/Private}/style.js    |   0
 .../Styles}/Base/ButtonStyle.qml              |   0
 .../Styles}/Base/CheckBoxStyle.qml            |   0
 .../Styles}/Base/ComboBoxStyle.qml            |   0
 .../Styles}/Base/FocusFrameStyle.qml          |   0
 .../Styles}/Base/GroupBoxStyle.qml            |   0
 .../Styles}/Base/MenuBarStyle.qml             |   0
 .../Styles}/Base/MenuStyle.qml                |   0
 .../Styles}/Base/ProgressBarStyle.qml         |   0
 .../Styles}/Base/RadioButtonStyle.qml         |   0
 .../Styles}/Base/ScrollViewStyle.qml          |   0
 .../Styles}/Base/SliderStyle.qml              |   0
 .../Styles}/Base/SpinBoxStyle.qml             |   0
 .../Styles}/Base/StatusBarStyle.qml           |   0
 .../Styles}/Base/TabViewStyle.qml             |   0
 .../Styles}/Base/TableViewStyle.qml           |   0
 .../Styles}/Base/TextFieldStyle.qml           |   0
 .../Styles}/Base/ToolBarStyle.qml             |   0
 .../Styles}/Base/ToolButtonStyle.qml          |   0
 .../Styles}/Base/images/arrow-down.png        | Bin
 .../Styles}/Base/images/arrow-down@2x.png     | Bin
 .../Styles}/Base/images/arrow-left.png        | Bin
 .../Styles}/Base/images/arrow-left@2x.png     | Bin
 .../Styles}/Base/images/arrow-right.png       | Bin
 .../Styles}/Base/images/arrow-right@2x.png    | Bin
 .../Styles}/Base/images/arrow-up.png          | Bin
 .../Styles}/Base/images/arrow-up@2x.png       | Bin
 .../Styles}/Base/images/button.png            | Bin
 .../Styles}/Base/images/button_down.png       | Bin
 .../Styles}/Base/images/editbox.png           | Bin
 .../Styles}/Base/images/focusframe.png        | Bin
 .../Styles}/Base/images/groupbox.png          | Bin
 .../Styles}/Base/images/header.png            | Bin
 .../Base/images/progress-indeterminate.png    | Bin
 .../images/scrollbar-handle-horizontal.png    | Bin
 .../Base/images/scrollbar-handle-vertical.png | Bin
 .../Styles}/Base/images/tab.png               | Bin
 .../Styles}/Base/images/tab_selected.png      | Bin
 .../Styles}/Desktop/ButtonStyle.qml           |   0
 .../Styles}/Desktop/CheckBoxStyle.qml         |   0
 .../Styles}/Desktop/ComboBoxStyle.qml         |   0
 .../Styles}/Desktop/FocusFrameStyle.qml       |   0
 .../Styles}/Desktop/GroupBoxStyle.qml         |   0
 .../Styles}/Desktop/MenuBarStyle.qml          |   0
 .../Styles}/Desktop/MenuStyle.qml             |   0
 .../Styles}/Desktop/ProgressBarStyle.qml      |   0
 .../Styles}/Desktop/RadioButtonStyle.qml      |   0
 .../Styles}/Desktop/ScrollViewStyle.qml       |   0
 .../Styles}/Desktop/SliderStyle.qml           |   0
 .../Styles}/Desktop/SpinBoxStyle.qml          |   0
 .../Styles}/Desktop/StatusBarStyle.qml        |   0
 .../Styles}/Desktop/TabViewStyle.qml          |   0
 .../Styles}/Desktop/TableViewStyle.qml        |   0
 .../Styles}/Desktop/TextFieldStyle.qml        |   0
 .../Styles}/Desktop/ToolBarStyle.qml          |   0
 .../Styles}/Desktop/ToolButtonStyle.qml       |   0
 src/{styles => controls/Styles}/qmldir        |   0
 src/controls/Styles/styles.pri                |  69 ++++++++++++++++++
 src/controls/controls.pro                     |   9 ++-
 src/controls/doc/qtquickcontrols.qdocconf     |  43 +++++++----
 src/controls/doc/src/qtquickcontrols.qdoc     |   2 +
 .../doc/src/qtquickcontrolsstyles-index.qdoc  |  14 ++++
 src/controls/plugin.cpp                       |  43 +++++++----
 src/{private/plugin.cpp => controls/plugin.h} |  38 ++--------
 src/private/private.pro                       |  28 -------
 src/src.pro                                   |   2 +-
 src/styles/doc/qtquickcontrolsstyles.qdocconf |  43 -----------
 src/styles/styles.pro                         |  69 ------------------
 98 files changed, 174 insertions(+), 205 deletions(-)
 rename src/{private => controls/Private}/AbstractCheckable.qml (100%)
 rename src/{private => controls/Private}/BasicButton.qml (100%)
 rename src/{private => controls/Private}/Control.qml (100%)
 rename src/{private => controls/Private}/FocusFrame.qml (100%)
 rename src/{private => controls/Private}/ModalPopupBehavior.qml (100%)
 rename src/{private => controls/Private}/ScrollBar.qml (100%)
 rename src/{private => controls/Private}/ScrollViewHelper.qml (100%)
 rename src/{private => controls/Private}/StackView.js (100%)
 rename src/{private => controls/Private}/StackViewSlideDelegate.qml (100%)
 rename src/{private => controls/Private}/Style.qml (100%)
 rename src/{private => controls/Private}/TabBar.qml (100%)
 rename src/{private => controls/Private}/private.pri (60%)
 rename src/{private => controls/Private}/qmldir (94%)
 rename src/{private => controls/Private}/qquickabstractstyle.cpp (100%)
 rename src/{private => controls/Private}/qquickabstractstyle_p.h (100%)
 rename src/{private => controls/Private}/qquickcontrolsettings.cpp (100%)
 rename src/{private => controls/Private}/qquickcontrolsettings_p.h (100%)
 rename src/{private => controls/Private}/qquickcontrolsprivate_p.h (100%)
 rename src/{private => controls/Private}/qquickpadding_p.h (100%)
 rename src/{private => controls/Private}/qquickrangemodel.cpp (100%)
 rename src/{private => controls/Private}/qquickrangemodel_p.h (100%)
 rename src/{private => controls/Private}/qquickrangemodel_p_p.h (100%)
 rename src/{private => controls/Private}/qquickspinboxvalidator.cpp (100%)
 rename src/{private => controls/Private}/qquickspinboxvalidator_p.h (100%)
 rename src/{private => controls/Private}/qquickstyleitem.cpp (100%)
 rename src/{private => controls/Private}/qquickstyleitem_p.h (100%)
 rename src/{private => controls/Private}/qquicktooltip.cpp (100%)
 rename src/{private => controls/Private}/qquicktooltip_p.h (100%)
 rename src/{private => controls/Private}/qquickwheelarea.cpp (100%)
 rename src/{private => controls/Private}/qquickwheelarea_p.h (100%)
 rename src/{private => controls/Private}/style.js (100%)
 rename src/{styles => controls/Styles}/Base/ButtonStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/CheckBoxStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/ComboBoxStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/FocusFrameStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/GroupBoxStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/MenuBarStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/MenuStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/ProgressBarStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/RadioButtonStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/ScrollViewStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/SliderStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/SpinBoxStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/StatusBarStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/TabViewStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/TableViewStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/TextFieldStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/ToolBarStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/ToolButtonStyle.qml (100%)
 rename src/{styles => controls/Styles}/Base/images/arrow-down.png (100%)
 rename src/{styles => controls/Styles}/Base/images/arrow-down@2x.png (100%)
 rename src/{styles => controls/Styles}/Base/images/arrow-left.png (100%)
 rename src/{styles => controls/Styles}/Base/images/arrow-left@2x.png (100%)
 rename src/{styles => controls/Styles}/Base/images/arrow-right.png (100%)
 rename src/{styles => controls/Styles}/Base/images/arrow-right@2x.png (100%)
 rename src/{styles => controls/Styles}/Base/images/arrow-up.png (100%)
 rename src/{styles => controls/Styles}/Base/images/arrow-up@2x.png (100%)
 rename src/{styles => controls/Styles}/Base/images/button.png (100%)
 rename src/{styles => controls/Styles}/Base/images/button_down.png (100%)
 rename src/{styles => controls/Styles}/Base/images/editbox.png (100%)
 rename src/{styles => controls/Styles}/Base/images/focusframe.png (100%)
 rename src/{styles => controls/Styles}/Base/images/groupbox.png (100%)
 rename src/{styles => controls/Styles}/Base/images/header.png (100%)
 rename src/{styles => controls/Styles}/Base/images/progress-indeterminate.png (100%)
 rename src/{styles => controls/Styles}/Base/images/scrollbar-handle-horizontal.png (100%)
 rename src/{styles => controls/Styles}/Base/images/scrollbar-handle-vertical.png (100%)
 rename src/{styles => controls/Styles}/Base/images/tab.png (100%)
 rename src/{styles => controls/Styles}/Base/images/tab_selected.png (100%)
 rename src/{styles => controls/Styles}/Desktop/ButtonStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/CheckBoxStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/ComboBoxStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/FocusFrameStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/GroupBoxStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/MenuBarStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/MenuStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/ProgressBarStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/RadioButtonStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/ScrollViewStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/SliderStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/SpinBoxStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/StatusBarStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/TabViewStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/TableViewStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/TextFieldStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/ToolBarStyle.qml (100%)
 rename src/{styles => controls/Styles}/Desktop/ToolButtonStyle.qml (100%)
 rename src/{styles => controls/Styles}/qmldir (100%)
 create mode 100644 src/controls/Styles/styles.pri
 rename src/{styles => controls}/doc/src/qtquickcontrolsstyles-index.qdoc (89%)
 rename src/{private/plugin.cpp => controls/plugin.h} (65%)
 delete mode 100644 src/private/private.pro
 delete mode 100644 src/styles/doc/qtquickcontrolsstyles.qdocconf
 delete mode 100644 src/styles/styles.pro

diff --git a/src/private/AbstractCheckable.qml b/src/controls/Private/AbstractCheckable.qml
similarity index 100%
rename from src/private/AbstractCheckable.qml
rename to src/controls/Private/AbstractCheckable.qml
diff --git a/src/private/BasicButton.qml b/src/controls/Private/BasicButton.qml
similarity index 100%
rename from src/private/BasicButton.qml
rename to src/controls/Private/BasicButton.qml
diff --git a/src/private/Control.qml b/src/controls/Private/Control.qml
similarity index 100%
rename from src/private/Control.qml
rename to src/controls/Private/Control.qml
diff --git a/src/private/FocusFrame.qml b/src/controls/Private/FocusFrame.qml
similarity index 100%
rename from src/private/FocusFrame.qml
rename to src/controls/Private/FocusFrame.qml
diff --git a/src/private/ModalPopupBehavior.qml b/src/controls/Private/ModalPopupBehavior.qml
similarity index 100%
rename from src/private/ModalPopupBehavior.qml
rename to src/controls/Private/ModalPopupBehavior.qml
diff --git a/src/private/ScrollBar.qml b/src/controls/Private/ScrollBar.qml
similarity index 100%
rename from src/private/ScrollBar.qml
rename to src/controls/Private/ScrollBar.qml
diff --git a/src/private/ScrollViewHelper.qml b/src/controls/Private/ScrollViewHelper.qml
similarity index 100%
rename from src/private/ScrollViewHelper.qml
rename to src/controls/Private/ScrollViewHelper.qml
diff --git a/src/private/StackView.js b/src/controls/Private/StackView.js
similarity index 100%
rename from src/private/StackView.js
rename to src/controls/Private/StackView.js
diff --git a/src/private/StackViewSlideDelegate.qml b/src/controls/Private/StackViewSlideDelegate.qml
similarity index 100%
rename from src/private/StackViewSlideDelegate.qml
rename to src/controls/Private/StackViewSlideDelegate.qml
diff --git a/src/private/Style.qml b/src/controls/Private/Style.qml
similarity index 100%
rename from src/private/Style.qml
rename to src/controls/Private/Style.qml
diff --git a/src/private/TabBar.qml b/src/controls/Private/TabBar.qml
similarity index 100%
rename from src/private/TabBar.qml
rename to src/controls/Private/TabBar.qml
diff --git a/src/private/private.pri b/src/controls/Private/private.pri
similarity index 60%
rename from src/private/private.pri
rename to src/controls/Private/private.pri
index 94d313c31..bd001c0ab 100644
--- a/src/private/private.pri
+++ b/src/controls/Private/private.pri
@@ -22,3 +22,21 @@ qtHaveModule(widgets) {
     HEADERS += $$PWD/qquickstyleitem_p.h
     SOURCES += $$PWD/qquickstyleitem.cpp
 }
+
+# private qml files
+PRIVATE_QML_FILES += \
+    $$PWD/AbstractCheckable.qml \
+    $$PWD/TabBar.qml \
+    $$PWD/BasicButton.qml \
+    $$PWD/Control.qml \
+    $$PWD/Style.qml \
+    $$PWD/style.js \
+    $$PWD/ModalPopupBehavior.qml \
+    $$PWD/StackViewSlideDelegate.qml \
+    $$PWD/StackView.js \
+    $$PWD/ScrollViewHelper.qml \
+    $$PWD/ScrollBar.qml \
+    $$PWD/FocusFrame.qml \
+    $$PWD/qmldir
+
+QML_FILES += $$PRIVATE_QML_FILES
diff --git a/src/private/qmldir b/src/controls/Private/qmldir
similarity index 94%
rename from src/private/qmldir
rename to src/controls/Private/qmldir
index 817e88a0f..1ee66461b 100644
--- a/src/private/qmldir
+++ b/src/controls/Private/qmldir
@@ -1,5 +1,4 @@
 module QtQuick.Controls.Private
-plugin qtquickcontrolsprivateplugin
 AbstractCheckable 1.0 AbstractCheckable.qml
 Control 1.0 Control.qml
 FocusFrame 1.0 FocusFrame.qml
diff --git a/src/private/qquickabstractstyle.cpp b/src/controls/Private/qquickabstractstyle.cpp
similarity index 100%
rename from src/private/qquickabstractstyle.cpp
rename to src/controls/Private/qquickabstractstyle.cpp
diff --git a/src/private/qquickabstractstyle_p.h b/src/controls/Private/qquickabstractstyle_p.h
similarity index 100%
rename from src/private/qquickabstractstyle_p.h
rename to src/controls/Private/qquickabstractstyle_p.h
diff --git a/src/private/qquickcontrolsettings.cpp b/src/controls/Private/qquickcontrolsettings.cpp
similarity index 100%
rename from src/private/qquickcontrolsettings.cpp
rename to src/controls/Private/qquickcontrolsettings.cpp
diff --git a/src/private/qquickcontrolsettings_p.h b/src/controls/Private/qquickcontrolsettings_p.h
similarity index 100%
rename from src/private/qquickcontrolsettings_p.h
rename to src/controls/Private/qquickcontrolsettings_p.h
diff --git a/src/private/qquickcontrolsprivate_p.h b/src/controls/Private/qquickcontrolsprivate_p.h
similarity index 100%
rename from src/private/qquickcontrolsprivate_p.h
rename to src/controls/Private/qquickcontrolsprivate_p.h
diff --git a/src/private/qquickpadding_p.h b/src/controls/Private/qquickpadding_p.h
similarity index 100%
rename from src/private/qquickpadding_p.h
rename to src/controls/Private/qquickpadding_p.h
diff --git a/src/private/qquickrangemodel.cpp b/src/controls/Private/qquickrangemodel.cpp
similarity index 100%
rename from src/private/qquickrangemodel.cpp
rename to src/controls/Private/qquickrangemodel.cpp
diff --git a/src/private/qquickrangemodel_p.h b/src/controls/Private/qquickrangemodel_p.h
similarity index 100%
rename from src/private/qquickrangemodel_p.h
rename to src/controls/Private/qquickrangemodel_p.h
diff --git a/src/private/qquickrangemodel_p_p.h b/src/controls/Private/qquickrangemodel_p_p.h
similarity index 100%
rename from src/private/qquickrangemodel_p_p.h
rename to src/controls/Private/qquickrangemodel_p_p.h
diff --git a/src/private/qquickspinboxvalidator.cpp b/src/controls/Private/qquickspinboxvalidator.cpp
similarity index 100%
rename from src/private/qquickspinboxvalidator.cpp
rename to src/controls/Private/qquickspinboxvalidator.cpp
diff --git a/src/private/qquickspinboxvalidator_p.h b/src/controls/Private/qquickspinboxvalidator_p.h
similarity index 100%
rename from src/private/qquickspinboxvalidator_p.h
rename to src/controls/Private/qquickspinboxvalidator_p.h
diff --git a/src/private/qquickstyleitem.cpp b/src/controls/Private/qquickstyleitem.cpp
similarity index 100%
rename from src/private/qquickstyleitem.cpp
rename to src/controls/Private/qquickstyleitem.cpp
diff --git a/src/private/qquickstyleitem_p.h b/src/controls/Private/qquickstyleitem_p.h
similarity index 100%
rename from src/private/qquickstyleitem_p.h
rename to src/controls/Private/qquickstyleitem_p.h
diff --git a/src/private/qquicktooltip.cpp b/src/controls/Private/qquicktooltip.cpp
similarity index 100%
rename from src/private/qquicktooltip.cpp
rename to src/controls/Private/qquicktooltip.cpp
diff --git a/src/private/qquicktooltip_p.h b/src/controls/Private/qquicktooltip_p.h
similarity index 100%
rename from src/private/qquicktooltip_p.h
rename to src/controls/Private/qquicktooltip_p.h
diff --git a/src/private/qquickwheelarea.cpp b/src/controls/Private/qquickwheelarea.cpp
similarity index 100%
rename from src/private/qquickwheelarea.cpp
rename to src/controls/Private/qquickwheelarea.cpp
diff --git a/src/private/qquickwheelarea_p.h b/src/controls/Private/qquickwheelarea_p.h
similarity index 100%
rename from src/private/qquickwheelarea_p.h
rename to src/controls/Private/qquickwheelarea_p.h
diff --git a/src/private/style.js b/src/controls/Private/style.js
similarity index 100%
rename from src/private/style.js
rename to src/controls/Private/style.js
diff --git a/src/styles/Base/ButtonStyle.qml b/src/controls/Styles/Base/ButtonStyle.qml
similarity index 100%
rename from src/styles/Base/ButtonStyle.qml
rename to src/controls/Styles/Base/ButtonStyle.qml
diff --git a/src/styles/Base/CheckBoxStyle.qml b/src/controls/Styles/Base/CheckBoxStyle.qml
similarity index 100%
rename from src/styles/Base/CheckBoxStyle.qml
rename to src/controls/Styles/Base/CheckBoxStyle.qml
diff --git a/src/styles/Base/ComboBoxStyle.qml b/src/controls/Styles/Base/ComboBoxStyle.qml
similarity index 100%
rename from src/styles/Base/ComboBoxStyle.qml
rename to src/controls/Styles/Base/ComboBoxStyle.qml
diff --git a/src/styles/Base/FocusFrameStyle.qml b/src/controls/Styles/Base/FocusFrameStyle.qml
similarity index 100%
rename from src/styles/Base/FocusFrameStyle.qml
rename to src/controls/Styles/Base/FocusFrameStyle.qml
diff --git a/src/styles/Base/GroupBoxStyle.qml b/src/controls/Styles/Base/GroupBoxStyle.qml
similarity index 100%
rename from src/styles/Base/GroupBoxStyle.qml
rename to src/controls/Styles/Base/GroupBoxStyle.qml
diff --git a/src/styles/Base/MenuBarStyle.qml b/src/controls/Styles/Base/MenuBarStyle.qml
similarity index 100%
rename from src/styles/Base/MenuBarStyle.qml
rename to src/controls/Styles/Base/MenuBarStyle.qml
diff --git a/src/styles/Base/MenuStyle.qml b/src/controls/Styles/Base/MenuStyle.qml
similarity index 100%
rename from src/styles/Base/MenuStyle.qml
rename to src/controls/Styles/Base/MenuStyle.qml
diff --git a/src/styles/Base/ProgressBarStyle.qml b/src/controls/Styles/Base/ProgressBarStyle.qml
similarity index 100%
rename from src/styles/Base/ProgressBarStyle.qml
rename to src/controls/Styles/Base/ProgressBarStyle.qml
diff --git a/src/styles/Base/RadioButtonStyle.qml b/src/controls/Styles/Base/RadioButtonStyle.qml
similarity index 100%
rename from src/styles/Base/RadioButtonStyle.qml
rename to src/controls/Styles/Base/RadioButtonStyle.qml
diff --git a/src/styles/Base/ScrollViewStyle.qml b/src/controls/Styles/Base/ScrollViewStyle.qml
similarity index 100%
rename from src/styles/Base/ScrollViewStyle.qml
rename to src/controls/Styles/Base/ScrollViewStyle.qml
diff --git a/src/styles/Base/SliderStyle.qml b/src/controls/Styles/Base/SliderStyle.qml
similarity index 100%
rename from src/styles/Base/SliderStyle.qml
rename to src/controls/Styles/Base/SliderStyle.qml
diff --git a/src/styles/Base/SpinBoxStyle.qml b/src/controls/Styles/Base/SpinBoxStyle.qml
similarity index 100%
rename from src/styles/Base/SpinBoxStyle.qml
rename to src/controls/Styles/Base/SpinBoxStyle.qml
diff --git a/src/styles/Base/StatusBarStyle.qml b/src/controls/Styles/Base/StatusBarStyle.qml
similarity index 100%
rename from src/styles/Base/StatusBarStyle.qml
rename to src/controls/Styles/Base/StatusBarStyle.qml
diff --git a/src/styles/Base/TabViewStyle.qml b/src/controls/Styles/Base/TabViewStyle.qml
similarity index 100%
rename from src/styles/Base/TabViewStyle.qml
rename to src/controls/Styles/Base/TabViewStyle.qml
diff --git a/src/styles/Base/TableViewStyle.qml b/src/controls/Styles/Base/TableViewStyle.qml
similarity index 100%
rename from src/styles/Base/TableViewStyle.qml
rename to src/controls/Styles/Base/TableViewStyle.qml
diff --git a/src/styles/Base/TextFieldStyle.qml b/src/controls/Styles/Base/TextFieldStyle.qml
similarity index 100%
rename from src/styles/Base/TextFieldStyle.qml
rename to src/controls/Styles/Base/TextFieldStyle.qml
diff --git a/src/styles/Base/ToolBarStyle.qml b/src/controls/Styles/Base/ToolBarStyle.qml
similarity index 100%
rename from src/styles/Base/ToolBarStyle.qml
rename to src/controls/Styles/Base/ToolBarStyle.qml
diff --git a/src/styles/Base/ToolButtonStyle.qml b/src/controls/Styles/Base/ToolButtonStyle.qml
similarity index 100%
rename from src/styles/Base/ToolButtonStyle.qml
rename to src/controls/Styles/Base/ToolButtonStyle.qml
diff --git a/src/styles/Base/images/arrow-down.png b/src/controls/Styles/Base/images/arrow-down.png
similarity index 100%
rename from src/styles/Base/images/arrow-down.png
rename to src/controls/Styles/Base/images/arrow-down.png
diff --git a/src/styles/Base/images/arrow-down@2x.png b/src/controls/Styles/Base/images/arrow-down@2x.png
similarity index 100%
rename from src/styles/Base/images/arrow-down@2x.png
rename to src/controls/Styles/Base/images/arrow-down@2x.png
diff --git a/src/styles/Base/images/arrow-left.png b/src/controls/Styles/Base/images/arrow-left.png
similarity index 100%
rename from src/styles/Base/images/arrow-left.png
rename to src/controls/Styles/Base/images/arrow-left.png
diff --git a/src/styles/Base/images/arrow-left@2x.png b/src/controls/Styles/Base/images/arrow-left@2x.png
similarity index 100%
rename from src/styles/Base/images/arrow-left@2x.png
rename to src/controls/Styles/Base/images/arrow-left@2x.png
diff --git a/src/styles/Base/images/arrow-right.png b/src/controls/Styles/Base/images/arrow-right.png
similarity index 100%
rename from src/styles/Base/images/arrow-right.png
rename to src/controls/Styles/Base/images/arrow-right.png
diff --git a/src/styles/Base/images/arrow-right@2x.png b/src/controls/Styles/Base/images/arrow-right@2x.png
similarity index 100%
rename from src/styles/Base/images/arrow-right@2x.png
rename to src/controls/Styles/Base/images/arrow-right@2x.png
diff --git a/src/styles/Base/images/arrow-up.png b/src/controls/Styles/Base/images/arrow-up.png
similarity index 100%
rename from src/styles/Base/images/arrow-up.png
rename to src/controls/Styles/Base/images/arrow-up.png
diff --git a/src/styles/Base/images/arrow-up@2x.png b/src/controls/Styles/Base/images/arrow-up@2x.png
similarity index 100%
rename from src/styles/Base/images/arrow-up@2x.png
rename to src/controls/Styles/Base/images/arrow-up@2x.png
diff --git a/src/styles/Base/images/button.png b/src/controls/Styles/Base/images/button.png
similarity index 100%
rename from src/styles/Base/images/button.png
rename to src/controls/Styles/Base/images/button.png
diff --git a/src/styles/Base/images/button_down.png b/src/controls/Styles/Base/images/button_down.png
similarity index 100%
rename from src/styles/Base/images/button_down.png
rename to src/controls/Styles/Base/images/button_down.png
diff --git a/src/styles/Base/images/editbox.png b/src/controls/Styles/Base/images/editbox.png
similarity index 100%
rename from src/styles/Base/images/editbox.png
rename to src/controls/Styles/Base/images/editbox.png
diff --git a/src/styles/Base/images/focusframe.png b/src/controls/Styles/Base/images/focusframe.png
similarity index 100%
rename from src/styles/Base/images/focusframe.png
rename to src/controls/Styles/Base/images/focusframe.png
diff --git a/src/styles/Base/images/groupbox.png b/src/controls/Styles/Base/images/groupbox.png
similarity index 100%
rename from src/styles/Base/images/groupbox.png
rename to src/controls/Styles/Base/images/groupbox.png
diff --git a/src/styles/Base/images/header.png b/src/controls/Styles/Base/images/header.png
similarity index 100%
rename from src/styles/Base/images/header.png
rename to src/controls/Styles/Base/images/header.png
diff --git a/src/styles/Base/images/progress-indeterminate.png b/src/controls/Styles/Base/images/progress-indeterminate.png
similarity index 100%
rename from src/styles/Base/images/progress-indeterminate.png
rename to src/controls/Styles/Base/images/progress-indeterminate.png
diff --git a/src/styles/Base/images/scrollbar-handle-horizontal.png b/src/controls/Styles/Base/images/scrollbar-handle-horizontal.png
similarity index 100%
rename from src/styles/Base/images/scrollbar-handle-horizontal.png
rename to src/controls/Styles/Base/images/scrollbar-handle-horizontal.png
diff --git a/src/styles/Base/images/scrollbar-handle-vertical.png b/src/controls/Styles/Base/images/scrollbar-handle-vertical.png
similarity index 100%
rename from src/styles/Base/images/scrollbar-handle-vertical.png
rename to src/controls/Styles/Base/images/scrollbar-handle-vertical.png
diff --git a/src/styles/Base/images/tab.png b/src/controls/Styles/Base/images/tab.png
similarity index 100%
rename from src/styles/Base/images/tab.png
rename to src/controls/Styles/Base/images/tab.png
diff --git a/src/styles/Base/images/tab_selected.png b/src/controls/Styles/Base/images/tab_selected.png
similarity index 100%
rename from src/styles/Base/images/tab_selected.png
rename to src/controls/Styles/Base/images/tab_selected.png
diff --git a/src/styles/Desktop/ButtonStyle.qml b/src/controls/Styles/Desktop/ButtonStyle.qml
similarity index 100%
rename from src/styles/Desktop/ButtonStyle.qml
rename to src/controls/Styles/Desktop/ButtonStyle.qml
diff --git a/src/styles/Desktop/CheckBoxStyle.qml b/src/controls/Styles/Desktop/CheckBoxStyle.qml
similarity index 100%
rename from src/styles/Desktop/CheckBoxStyle.qml
rename to src/controls/Styles/Desktop/CheckBoxStyle.qml
diff --git a/src/styles/Desktop/ComboBoxStyle.qml b/src/controls/Styles/Desktop/ComboBoxStyle.qml
similarity index 100%
rename from src/styles/Desktop/ComboBoxStyle.qml
rename to src/controls/Styles/Desktop/ComboBoxStyle.qml
diff --git a/src/styles/Desktop/FocusFrameStyle.qml b/src/controls/Styles/Desktop/FocusFrameStyle.qml
similarity index 100%
rename from src/styles/Desktop/FocusFrameStyle.qml
rename to src/controls/Styles/Desktop/FocusFrameStyle.qml
diff --git a/src/styles/Desktop/GroupBoxStyle.qml b/src/controls/Styles/Desktop/GroupBoxStyle.qml
similarity index 100%
rename from src/styles/Desktop/GroupBoxStyle.qml
rename to src/controls/Styles/Desktop/GroupBoxStyle.qml
diff --git a/src/styles/Desktop/MenuBarStyle.qml b/src/controls/Styles/Desktop/MenuBarStyle.qml
similarity index 100%
rename from src/styles/Desktop/MenuBarStyle.qml
rename to src/controls/Styles/Desktop/MenuBarStyle.qml
diff --git a/src/styles/Desktop/MenuStyle.qml b/src/controls/Styles/Desktop/MenuStyle.qml
similarity index 100%
rename from src/styles/Desktop/MenuStyle.qml
rename to src/controls/Styles/Desktop/MenuStyle.qml
diff --git a/src/styles/Desktop/ProgressBarStyle.qml b/src/controls/Styles/Desktop/ProgressBarStyle.qml
similarity index 100%
rename from src/styles/Desktop/ProgressBarStyle.qml
rename to src/controls/Styles/Desktop/ProgressBarStyle.qml
diff --git a/src/styles/Desktop/RadioButtonStyle.qml b/src/controls/Styles/Desktop/RadioButtonStyle.qml
similarity index 100%
rename from src/styles/Desktop/RadioButtonStyle.qml
rename to src/controls/Styles/Desktop/RadioButtonStyle.qml
diff --git a/src/styles/Desktop/ScrollViewStyle.qml b/src/controls/Styles/Desktop/ScrollViewStyle.qml
similarity index 100%
rename from src/styles/Desktop/ScrollViewStyle.qml
rename to src/controls/Styles/Desktop/ScrollViewStyle.qml
diff --git a/src/styles/Desktop/SliderStyle.qml b/src/controls/Styles/Desktop/SliderStyle.qml
similarity index 100%
rename from src/styles/Desktop/SliderStyle.qml
rename to src/controls/Styles/Desktop/SliderStyle.qml
diff --git a/src/styles/Desktop/SpinBoxStyle.qml b/src/controls/Styles/Desktop/SpinBoxStyle.qml
similarity index 100%
rename from src/styles/Desktop/SpinBoxStyle.qml
rename to src/controls/Styles/Desktop/SpinBoxStyle.qml
diff --git a/src/styles/Desktop/StatusBarStyle.qml b/src/controls/Styles/Desktop/StatusBarStyle.qml
similarity index 100%
rename from src/styles/Desktop/StatusBarStyle.qml
rename to src/controls/Styles/Desktop/StatusBarStyle.qml
diff --git a/src/styles/Desktop/TabViewStyle.qml b/src/controls/Styles/Desktop/TabViewStyle.qml
similarity index 100%
rename from src/styles/Desktop/TabViewStyle.qml
rename to src/controls/Styles/Desktop/TabViewStyle.qml
diff --git a/src/styles/Desktop/TableViewStyle.qml b/src/controls/Styles/Desktop/TableViewStyle.qml
similarity index 100%
rename from src/styles/Desktop/TableViewStyle.qml
rename to src/controls/Styles/Desktop/TableViewStyle.qml
diff --git a/src/styles/Desktop/TextFieldStyle.qml b/src/controls/Styles/Desktop/TextFieldStyle.qml
similarity index 100%
rename from src/styles/Desktop/TextFieldStyle.qml
rename to src/controls/Styles/Desktop/TextFieldStyle.qml
diff --git a/src/styles/Desktop/ToolBarStyle.qml b/src/controls/Styles/Desktop/ToolBarStyle.qml
similarity index 100%
rename from src/styles/Desktop/ToolBarStyle.qml
rename to src/controls/Styles/Desktop/ToolBarStyle.qml
diff --git a/src/styles/Desktop/ToolButtonStyle.qml b/src/controls/Styles/Desktop/ToolButtonStyle.qml
similarity index 100%
rename from src/styles/Desktop/ToolButtonStyle.qml
rename to src/controls/Styles/Desktop/ToolButtonStyle.qml
diff --git a/src/styles/qmldir b/src/controls/Styles/qmldir
similarity index 100%
rename from src/styles/qmldir
rename to src/controls/Styles/qmldir
diff --git a/src/controls/Styles/styles.pri b/src/controls/Styles/styles.pri
new file mode 100644
index 000000000..10eb3e9b4
--- /dev/null
+++ b/src/controls/Styles/styles.pri
@@ -0,0 +1,69 @@
+
+# Base
+STYLES_QML_FILES = \
+    $$PWD/Base/ButtonStyle.qml \
+    $$PWD/Base/CheckBoxStyle.qml \
+    $$PWD/Base/ComboBoxStyle.qml \
+    $$PWD/Base/FocusFrameStyle.qml \
+    $$PWD/Base/GroupBoxStyle.qml \
+    $$PWD/Base/MenuBarStyle.qml \
+    $$PWD/Base/MenuStyle.qml \
+    $$PWD/Base/ProgressBarStyle.qml \
+    $$PWD/Base/RadioButtonStyle.qml \
+    $$PWD/Base/ScrollViewStyle.qml\
+    $$PWD/Base/SliderStyle.qml \
+    $$PWD/Base/SpinBoxStyle.qml \
+    $$PWD/Base/StatusBarStyle.qml \
+    $$PWD/Base/TableViewStyle.qml \
+    $$PWD/Base/TabViewStyle.qml \
+    $$PWD/Base/TextFieldStyle.qml \
+    $$PWD/Base/ToolBarStyle.qml \
+    $$PWD/Base/ToolButtonStyle.qml
+
+# Desktop
+STYLES_QML_FILES += \
+    $$PWD/Desktop/ButtonStyle.qml \
+    $$PWD/Desktop/CheckBoxStyle.qml \
+    $$PWD/Desktop/ComboBoxStyle.qml \
+    $$PWD/Desktop/FocusFrameStyle.qml \
+    $$PWD/Desktop/GroupBoxStyle.qml \
+    $$PWD/Desktop/MenuBarStyle.qml \
+    $$PWD/Desktop/MenuStyle.qml \
+    $$PWD/Desktop/ProgressBarStyle.qml \
+    $$PWD/Desktop/RadioButtonStyle.qml \
+    $$PWD/Desktop/ScrollViewStyle.qml \
+    $$PWD/Desktop/SliderStyle.qml \
+    $$PWD/Desktop/SpinBoxStyle.qml \
+    $$PWD/Desktop/StatusBarStyle.qml\
+    $$PWD/Desktop/TabViewStyle.qml \
+    $$PWD/Desktop/TableViewStyle.qml \
+    $$PWD/Desktop/TextFieldStyle.qml \
+    $$PWD/Desktop/ToolBarStyle.qml \
+    $$PWD/Desktop/ToolButtonStyle.qml
+
+# Images
+STYLES_QML_FILES += \
+    $$PWD/Base/images/button.png \
+    $$PWD/Base/images/button_down.png \
+    $$PWD/Base/images/tab.png \
+    $$PWD/Base/images/header.png \
+    $$PWD/Base/images/groupbox.png \
+    $$PWD/Base/images/focusframe.png \
+    $$PWD/Base/images/tab_selected.png \
+    $$PWD/Base/images/scrollbar-handle-horizontal.png \
+    $$PWD/Base/images/scrollbar-handle-vertical.png \
+    $$PWD/Base/images/progress-indeterminate.png \
+    $$PWD/Base/images/editbox.png \
+    $$PWD/Base/images/arrow-up.png \
+    $$PWD/Base/images/arrow-up@2x.png \
+    $$PWD/Base/images/arrow-down.png \
+    $$PWD/Base/images/arrow-down@2x.png \
+    $$PWD/Base/images/arrow-left.png \
+    $$PWD/Base/images/arrow-left@2x.png \
+    $$PWD/Base/images/arrow-right.png \
+    $$PWD/Base/images/arrow-right@2x.png
+
+STYLES_QML_FILES += $$PWD/qmldir
+
+QML_FILES += $$STYLES_QML_FILES
+
diff --git a/src/controls/controls.pro b/src/controls/controls.pro
index ba97663f2..0a9d42c00 100644
--- a/src/controls/controls.pro
+++ b/src/controls/controls.pro
@@ -5,7 +5,7 @@ QT += qml quick gui-private core-private
 
 QMAKE_DOCS = $$PWD/doc/qtquickcontrols.qdocconf
 
-QML_FILES = \
+CONTROLS_QML_FILES = \
     ApplicationWindow.qml \
     Button.qml \
     CheckBox.qml \
@@ -33,9 +33,16 @@ QML_FILES = \
     ToolBar.qml \
     ToolButton.qml
 
+QML_FILES += $$CONTROLS_QML_FILES
+
 SOURCES += $$PWD/plugin.cpp
+HEADERS += $$PWD/plugin.h
 
 include(plugin.pri)
+include(Private/private.pri)
+include(Styles/styles.pri)
+
+osx: LIBS += -framework Carbon
 
 CONFIG += no_cxx_module
 load(qml_plugin)
diff --git a/src/controls/doc/qtquickcontrols.qdocconf b/src/controls/doc/qtquickcontrols.qdocconf
index fe7770aa3..3a5662484 100644
--- a/src/controls/doc/qtquickcontrols.qdocconf
+++ b/src/controls/doc/qtquickcontrols.qdocconf
@@ -18,30 +18,41 @@ 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 = qtquickcontrolsqmltypes
-qhp.QtQuickControls.subprojects.qtquickcontrolsqmltypes.title = QML Types
+qhp.QtQuickControls.subprojects = qtquickcontrolsqmltypes qtquickcontrolsstyles
+
+qhp.QtQuickControls.subprojects.qtquickcontrolsqmltypes.title      = Controls QML Types
 qhp.QtQuickControls.subprojects.qtquickcontrolsqmltypes.indexTitle = Qt Quick Controls QML Types
-qhp.QtQuickControls.subprojects.qtquickcontrolsqmltypes.selectors = class fake:qmlclass
-qhp.QtQuickControls.subprojects.qtquickcontrolsqmltypes.sortPages = true
+qhp.QtQuickControls.subprojects.qtquickcontrolsqmltypes.selectors  = fake:qmlclass # cannot choose qmltypes from a specific group QTBUG-32985
+qhp.QtQuickControls.subprojects.qtquickcontrolsqmltypes.sortPages  = true
+
+qhp.QtQuickControls.subprojects.qtquickcontrolsstyles.title      = Qt Quick Controls Styles Structure
+qhp.QtQuickControls.subprojects.qtquickcontrolsstyles.indexTitle = Qt Quick Controls Styles Structure
+qhp.QtQuickControls.subprojects.qtquickcontrolsstyles.type       = manual
 
-depends = qtqml qtquick qtwidgets qtdoc qtquicklayouts qtquickcontrolsstyles
+depends = qtqml qtquick qtwidgets qtdoc qtquicklayouts
 
 exampledirs += ../../../examples/quick
 
 # Specify the install path under QT_INSTALL_EXAMPLES
 examplesinstallpath = quick/controls
 
-headerdirs += ../
-
-sourcedirs += ../
-
-sources += ../../private/AbstractCheckable.qml \
-           ../../private/BasicButton.qml \
-           ../../private/FocusFrame.qml \
-           ../../private/ModalPopupBehavior.qml \
-           ../../private/ScrollBar.qml \
-           ../../private/TabBar.qml \
-           ../../private/Control.qml \
+headerdirs += ../ \
+              Styles/Base
+
+sourcedirs += ../ \
+              Styles/Base
+
+sources += ../Private/AbstractCheckable.qml \
+           ../Private/BasicButton.qml \
+           ../Private/FocusFrame.qml \
+           ../Private/ModalPopupBehavior.qml \
+           ../Private/ScrollBar.qml \
+           ../Private/TabBar.qml \
+           ../Private/Control.qml \
+           ../Private/qquickstyleitem.cpp \
+           ../Private/Style.qml \
+           ../Private/qquickabstractstyle.h \
+           ../Private/qquickabstractstyle.cpp
 
 imagedirs += images
 
diff --git a/src/controls/doc/src/qtquickcontrols.qdoc b/src/controls/doc/src/qtquickcontrols.qdoc
index 731380866..746d7873f 100644
--- a/src/controls/doc/src/qtquickcontrols.qdoc
+++ b/src/controls/doc/src/qtquickcontrols.qdoc
@@ -35,6 +35,8 @@
     interfaces. These QML types work in conjunction with \l{Qt Quick} and
     \l{Qt Quick Layouts}.
 
+    Controls can be styled using the \l{Qt Quick Controls Styles QML Types}{Styles QML Types}.
+
     The QML types can be imported into your application using the
     following import statement in your .qml file.
 
diff --git a/src/styles/doc/src/qtquickcontrolsstyles-index.qdoc b/src/controls/doc/src/qtquickcontrolsstyles-index.qdoc
similarity index 89%
rename from src/styles/doc/src/qtquickcontrolsstyles-index.qdoc
rename to src/controls/doc/src/qtquickcontrolsstyles-index.qdoc
index ed4a00825..e035ddba9 100644
--- a/src/styles/doc/src/qtquickcontrolsstyles-index.qdoc
+++ b/src/controls/doc/src/qtquickcontrolsstyles-index.qdoc
@@ -83,6 +83,17 @@
 
 */
 
+/*!
+    \page qtquickcontrolsstyles-structure.html
+    \title Qt Quick Controls Styles Structure
+     \list
+      \li \l{Qt Quick Controls Styles}
+          \list
+          \li \l{Qt Quick Controls Styles QML Types}{Styles QMl Types}
+          \endlist
+     \endlist
+*/
+
 /*!
     \qmlmodule QtQuick.Controls.Styles 1
     \title Qt Quick Controls Styles QML Types
@@ -96,4 +107,7 @@
     A styling object is usually a collection of properties that control behavior and simple delegates
     that can be replaced with custom QML snippets.
 
+    \code
+    import QtQuick.Controls.Styles 1.0
+    \endcode
 */
diff --git a/src/controls/plugin.cpp b/src/controls/plugin.cpp
index 6b67c1b21..1e8422379 100644
--- a/src/controls/plugin.cpp
+++ b/src/controls/plugin.cpp
@@ -39,6 +39,8 @@
 **
 ****************************************************************************/
 
+#include "plugin.h"
+
 #include "qquickaction_p.h"
 #include "qquickexclusivegroup_p.h"
 #include "qquickmenu_p.h"
@@ -46,22 +48,19 @@
 #include "qquickstack_p.h"
 #include "qquickdesktopiconprovider_p.h"
 
-#include <qqml.h>
-#include <qqmlengine.h>
-#include <qqmlextensionplugin.h>
-#include <qquickwindow.h>
-
-QT_BEGIN_NAMESPACE
+#include "Private/qquickrangemodel_p.h"
+#include "Private/qquickwheelarea_p.h"
+#include "Private/qquicktooltip_p.h"
+#include "Private/qquickcontrolsettings_p.h"
+#include "Private/qquickspinboxvalidator_p.h"
+#include "Private/qquickabstractstyle_p.h"
+#include "Private/qquickcontrolsprivate_p.h"
 
-class QtQuickControlsPlugin : public QQmlExtensionPlugin
-{
-    Q_OBJECT
-    Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
+#ifndef QT_NO_WIDGETS
+#include "Private/qquickstyleitem_p.h"
+#endif
 
-public:
-    void registerTypes(const char *uri);
-    void initializeEngine(QQmlEngine *engine, const char *uri);
-};
+QT_BEGIN_NAMESPACE
 
 void QtQuickControlsPlugin::registerTypes(const char *uri)
 {
@@ -82,9 +81,21 @@ void QtQuickControlsPlugin::registerTypes(const char *uri)
 void QtQuickControlsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
 {
     Q_UNUSED(uri);
+
+    // Register private API
+    const char *private_uri = "QtQuick.Controls.Private";
+    qmlRegisterType<QQuickAbstractStyle>(private_uri, 1, 0, "AbstractStyle");
+    qmlRegisterType<QQuickPadding>();
+    qmlRegisterType<QQuickRangeModel>(private_uri, 1, 0, "RangeModel");
+    qmlRegisterType<QQuickWheelArea>(private_uri, 1, 0, "WheelArea");
+    qmlRegisterType<QQuickSpinBoxValidator>(private_uri, 1, 0, "SpinBoxValidator");
+    qmlRegisterSingletonType<QQuickTooltip>(private_uri, 1, 0, "Tooltip", QQuickControlsPrivate::registerTooltipModule);
+    qmlRegisterSingletonType<QQuickControlSettings>(private_uri, 1, 0, "Settings", QQuickControlsPrivate::registerSettingsModule);
+#ifndef QT_NO_WIDGETS
+    qmlRegisterType<QQuickStyleItem>(private_uri, 1, 0, "StyleItem");
+#endif
+
     engine->addImageProvider("desktoptheme", new QQuickDesktopIconProvider);
 }
 
 QT_END_NAMESPACE
-
-#include "plugin.moc"
diff --git a/src/private/plugin.cpp b/src/controls/plugin.h
similarity index 65%
rename from src/private/plugin.cpp
rename to src/controls/plugin.h
index 4a62c6a5b..fe06e8069 100644
--- a/src/private/plugin.cpp
+++ b/src/controls/plugin.h
@@ -39,46 +39,24 @@
 **
 ****************************************************************************/
 
-#include "qquickrangemodel_p.h"
-#include "qquickwheelarea_p.h"
-#include "qquicktooltip_p.h"
-#include "qquickcontrolsettings_p.h"
-#include "qquickspinboxvalidator_p.h"
-#include "qquickabstractstyle_p.h"
-#include "qquickcontrolsprivate_p.h"
+#ifndef PLUGIN_H
+#define PLUGIN_H
 
-#ifndef QT_NO_WIDGETS
-#include "qquickstyleitem_p.h"
-#endif
-
-#include <qqml.h>
-#include <qqmlextensionplugin.h>
+#include <QtQml/qqmlextensionplugin.h>
+#include <QtQml/qqml.h>
+#include <QtQml/qqmlengine.h>
 
 QT_BEGIN_NAMESPACE
 
-class QtQuickControlsPrivatePlugin : public QQmlExtensionPlugin
+class QtQuickControlsPlugin: public QQmlExtensionPlugin
 {
     Q_OBJECT
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
-
 public:
     void registerTypes(const char *uri);
+    void initializeEngine(QQmlEngine *engine, const char *uri);
 };
 
-void QtQuickControlsPrivatePlugin::registerTypes(const char *uri)
-{
-    qmlRegisterType<QQuickAbstractStyle>(uri, 1, 0, "AbstractStyle");
-    qmlRegisterType<QQuickPadding>();
-    qmlRegisterType<QQuickRangeModel>(uri, 1, 0, "RangeModel");
-    qmlRegisterType<QQuickWheelArea>(uri, 1, 0, "WheelArea");
-    qmlRegisterType<QQuickSpinBoxValidator>(uri, 1, 0, "SpinBoxValidator");
-    qmlRegisterSingletonType<QQuickTooltip>(uri, 1, 0, "Tooltip", QQuickControlsPrivate::registerTooltipModule);
-    qmlRegisterSingletonType<QQuickControlSettings>(uri, 1, 0, "Settings", QQuickControlsPrivate::registerSettingsModule);
-#ifndef QT_NO_WIDGETS
-    qmlRegisterType<QQuickStyleItem>(uri, 1, 0, "StyleItem");
-#endif
-}
-
 QT_END_NAMESPACE
 
-#include "plugin.moc"
+#endif // PLUGIN_H
diff --git a/src/private/private.pro b/src/private/private.pro
deleted file mode 100644
index 1c71d1d4b..000000000
--- a/src/private/private.pro
+++ /dev/null
@@ -1,28 +0,0 @@
-TARGET  = qtquickcontrolsprivateplugin
-TARGETPATH = QtQuick/Controls/Private
-
-QT += qml quick gui-private core-private
-
-include(private.pri)
-
-SOURCES += $$PWD/plugin.cpp
-
-# private qml files
-QML_FILES += \
-    AbstractCheckable.qml \
-    TabBar.qml \
-    BasicButton.qml \
-    Control.qml \
-    Style.qml \
-    style.js \
-    ModalPopupBehavior.qml \
-    StackViewSlideDelegate.qml \
-    StackView.js \
-    ScrollViewHelper.qml \
-    ScrollBar.qml \
-    FocusFrame.qml
-
-osx: LIBS += -framework Carbon
-
-CONFIG += no_cxx_module
-load(qml_plugin)
diff --git a/src/src.pro b/src/src.pro
index 2108ac7e6..a440948af 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -1,5 +1,5 @@
 TEMPLATE = subdirs
 
-SUBDIRS += controls styles private
+SUBDIRS += controls
 
 SUBDIRS += layouts
diff --git a/src/styles/doc/qtquickcontrolsstyles.qdocconf b/src/styles/doc/qtquickcontrolsstyles.qdocconf
deleted file mode 100644
index 6c1e51b1b..000000000
--- a/src/styles/doc/qtquickcontrolsstyles.qdocconf
+++ /dev/null
@@ -1,43 +0,0 @@
-include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
-
-project                 = QtQuickControlsStyles
-description             = Qt Quick Controls Styles Reference Documentation
-url                     = http://qt-project.org/doc/qt-$QT_VER/qtquickcontrolsstyles/
-version                 = $QT_VERSION
-
-qhp.projects            = QtQuickControlsStyles
-
-qhp.QtQuickControlsStyles.file          = qtquickcontrolsstyles.qhp
-qhp.QtQuickControlsStyles.namespace     = org.qt-project.qtquickcontrolsstyles.$QT_VERSION_TAG
-qhp.QtQuickControlsStyles.virtualFolder = qtquickcontrolsstyles
-qhp.QtQuickControlsStyles.indexTitle    = Qt Quick Controls Styles
-qhp.QtQuickControlsStyles.indexRoot     =
-#qhp.QtQuickControlsStyles.extraFiles = style/qtquickcontrolsstyles.css
-
-qhp.QtQuickControlsStyles.filterAttributes    = qtquickcontrolsstyles $QT_VERSION qtrefdoc
-qhp.QtQuickControlsStyles.customFilters.Qt.name = QtQuickControlsStyles $QT_VERSION
-qhp.QtQuickControlsStyles.customFilters.Qt.filterAttributes = qtquickcontrolsstyles $QT_VERSION
-
-qhp.QtQuickControlsStyles.subprojects = qtquickcontrolsstylesqmltypes
-qhp.QtQuickControlsStyles.subprojects.qtquickcontrolsstylesqmltypes.title = QML Types
-qhp.QtQuickControlsStyles.subprojects.qtquickcontrolsstylesqmltypes.indexTitle = Qt Quick Controls Styles QML Types
-qhp.QtQuickControlsStyles.subprojects.qtquickcontrolsstylesqmltypes.selectors = class fake:qmlclass
-qhp.QtQuickControlsStyles.subprojects.qtquickcontrolsstylesqmltypes.sortPages = true
-
-depends = qtqml qtquick qtwidgets qtdoc qtquicklayouts qtquickcontrols
-
-exampledirs += ../../../examples/quick/controlsstyles
-
-# Specify the install path under QT_INSTALL_EXAMPLES
-examplesinstallpath = quick/controlsstyles
-
-headerdirs += ../Base
-
-sourcedirs += ../Base
-
-sources += ../../private/qquickstyleitem.cpp \
-           ../../private/Style.qml \
-           ../../private/qquickabstractstyle.h \
-           ../../private/qquickabstractstyle.cpp
-
-imagedirs += images
diff --git a/src/styles/styles.pro b/src/styles/styles.pro
deleted file mode 100644
index 158c1dd13..000000000
--- a/src/styles/styles.pro
+++ /dev/null
@@ -1,69 +0,0 @@
-TARGETPATH = QtQuick/Controls/Styles
-
-QMAKE_DOCS = $$PWD/doc/qtquickcontrolsstyles.qdocconf
-
-# Base
-QML_FILES = \
-    Base/ButtonStyle.qml \
-    Base/CheckBoxStyle.qml \
-    Base/ComboBoxStyle.qml \
-    Base/FocusFrameStyle.qml \
-    Base/GroupBoxStyle.qml \
-    Base/MenuBarStyle.qml \
-    Base/MenuStyle.qml \
-    Base/ProgressBarStyle.qml \
-    Base/RadioButtonStyle.qml \
-    Base/ScrollViewStyle.qml\
-    Base/SliderStyle.qml \
-    Base/SpinBoxStyle.qml \
-    Base/StatusBarStyle.qml \
-    Base/TableViewStyle.qml \
-    Base/TabViewStyle.qml \
-    Base/TextFieldStyle.qml \
-    Base/ToolBarStyle.qml \
-    Base/ToolButtonStyle.qml
-
-# Desktop
-QML_FILES += \
-    Desktop/ButtonStyle.qml \
-    Desktop/CheckBoxStyle.qml \
-    Desktop/ComboBoxStyle.qml \
-    Desktop/FocusFrameStyle.qml \
-    Desktop/GroupBoxStyle.qml \
-    Desktop/MenuBarStyle.qml \
-    Desktop/MenuStyle.qml \
-    Desktop/ProgressBarStyle.qml \
-    Desktop/RadioButtonStyle.qml \
-    Desktop/ScrollViewStyle.qml \
-    Desktop/SliderStyle.qml \
-    Desktop/SpinBoxStyle.qml \
-    Desktop/StatusBarStyle.qml\
-    Desktop/TabViewStyle.qml \
-    Desktop/TableViewStyle.qml \
-    Desktop/TextFieldStyle.qml \
-    Desktop/ToolBarStyle.qml \
-    Desktop/ToolButtonStyle.qml
-
-# Images
-QML_FILES += \
-    Base/images/button.png \
-    Base/images/button_down.png \
-    Base/images/tab.png \
-    Base/images/header.png \
-    Base/images/groupbox.png \
-    Base/images/focusframe.png \
-    Base/images/tab_selected.png \
-    Base/images/scrollbar-handle-horizontal.png \
-    Base/images/scrollbar-handle-vertical.png \
-    Base/images/progress-indeterminate.png \
-    Base/images/editbox.png \
-    Base/images/arrow-up.png \
-    Base/images/arrow-up@2x.png \
-    Base/images/arrow-down.png \
-    Base/images/arrow-down@2x.png \
-    Base/images/arrow-left.png \
-    Base/images/arrow-left@2x.png \
-    Base/images/arrow-right.png \
-    Base/images/arrow-right@2x.png
-
-load(qml_module)
-- 
GitLab