diff --git a/.qmake.conf b/.qmake.conf
new file mode 100644
index 0000000000000000000000000000000000000000..42ba8e45fb1fbff3ff9c88e788a4470fd72ce478
--- /dev/null
+++ b/.qmake.conf
@@ -0,0 +1 @@
+load(qt_build_config)
diff --git a/README b/README
index 911a04fcf7bc9e29433326804dd894cf55499258..f0294c0138ee7e54f264a0b4349986f9e5208b17 100644
--- a/README
+++ b/README
@@ -18,14 +18,14 @@ You can also contact the maintainer at: jens.bache-wiig (at) digia (dot) com
 
 INSTALLATION
 
-Note the MINIMUM REQUIREMENT for this project is that you have Qt 4.7.4. (Qt Quick 1.1)
+Note the MINIMUM REQUIREMENT for this project is that you have Qt 5.0. (Qt Quick 2)
 
 The components rely on several C++ plugins in order to integrate with the desktop. To install the
 components into your Qt directory, simply enter the root directory and do:
 
 'qmake && make install'
 
-This will compile and copy the plugins and components into your QTDIR/imports folder.
+This will compile and copy the plugins and components into your QTDIR/qml folder.
 If you are compiling against a system Qt on linux, you might have to do a 'sudo make install'
 in order to install the project.
 
diff --git a/desktop.pro b/desktop.pro
deleted file mode 100644
index 9d7cc0958cf4f18f2185764bfaa9022ea74df093..0000000000000000000000000000000000000000
--- a/desktop.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-TEMPLATE = subdirs
-
-contains(QT_CONFIG, accessibility) {
-    SUBDIRS = imports/QtDesktop/components.pro src
-} else {
-    message("Building Qt without accessibility is not supported for desktop components.")
-}
-
diff --git a/desktop.qmlproject b/desktop.qmlproject
deleted file mode 100644
index 961602a92d2f5d84e55f9fb2e866d233e45a2400..0000000000000000000000000000000000000000
--- a/desktop.qmlproject
+++ /dev/null
@@ -1,18 +0,0 @@
-/* File generated by QtCreator */
-
-import QmlProject 1.0
-
-Project {
-    /* Include .qml, .js, and image files from current directory and subdirectories */
-    QmlFiles {
-        directory: "."
-    }
-    JavaScriptFiles {
-        directory: "."
-    }/*
-    ImageFiles {
-        directory: "."
-    }*/
-    /* List of plugin directories passed to QML runtime */
-    // importPaths: [ "../exampleplugin" ]
-}
diff --git a/imports/QtDesktop/components.pro b/imports/QtDesktop/components.pro
deleted file mode 100644
index d22667b1a73706f23026b52f3ca4a188f97ca6c6..0000000000000000000000000000000000000000
--- a/imports/QtDesktop/components.pro
+++ /dev/null
@@ -1,85 +0,0 @@
-TEMPLATE = subdirs # XXX: Avoid calling the linker
-TARGETPATH = QtDesktop
-
-QML_FILES = \
-            plugins.qmltypes \
-            qmldir \
-            Label.qml \
-            Button.qml \
-            ComboBox.qml \
-            Dial.qml \
-            Dialog.qml \
-            ProgressBar.qml \
-            ScrollBar.qml \
-            Switch.qml \
-            TableView.qml \
-            ToolBar.qml \
-            ButtonRow.qml \
-            ButtonColumn.qml \
-            Frame.qml \
-            Slider.qml \
-            TabBar.qml \
-            Tab.qml \
-            ToolButton.qml \
-            CheckBox.qml \
-            ContextMenu.qml \
-            GroupBox.qml \
-            RadioButton.qml \
-            SpinBox.qml \
-            TabFrame.qml \
-            TextArea.qml \
-            ScrollArea.qml \
-            SplitterRow.qml \
-            SplitterColumn.qml \
-            StatusBar.qml \
-            TableColumn.qml \
-            TextField.qml \
-            ApplicationWindow.qml \
-            Styles/ToolButtonStyle.qml \
-            Styles/ToolBarStyle.qml \
-            Styles/TextFieldStyle.qml \
-            Styles/TabBarStyle.qml \
-            Styles/TabFrameStyle.qml \
-            Styles/SpinBoxStyle.qml \
-            Styles/SliderStyle.qml \
-            Styles/ScrollBarStyle.qml \
-            Styles/ScrollAreaStyle.qml \
-            Styles/RadioButtonStyle.qml \
-            Styles/ProgressBarStyle.qml \
-            Styles/GroupBoxStyle.qml \
-            Styles/FrameStyle.qml \
-            Styles/ComboBoxStyle.qml \
-            Styles/CheckBoxStyle.qml \
-            Styles/ButtonStyle.qml \
-            Styles/Desktop/ToolButtonStyle.qml \
-            Styles/Desktop/ToolBarStyle.qml \
-            Styles/Desktop/TextFieldStyle.qml \
-            Styles/Desktop/TabBarStyle.qml \
-            Styles/Desktop/TabFrameStyle.qml \
-            Styles/Desktop/SpinBoxStyle.qml \
-            Styles/Desktop/SliderStyle.qml \
-            Styles/Desktop/ScrollBarStyle.qml \
-            Styles/Desktop/ScrollAreaStyle.qml \
-            Styles/Desktop/RadioButtonStyle.qml \
-            Styles/Desktop/ProgressBarStyle.qml \
-            Styles/Desktop/GroupBoxStyle.qml \
-            Styles/Desktop/FrameStyle.qml \
-            Styles/Desktop/ComboBoxStyle.qml \
-            Styles/Desktop/CheckBoxStyle.qml \
-            Styles/Desktop/ButtonStyle.qml
-
-QML_DIRS = \
-        custom \
-        private \
-        Styles \
-        images 
-
-qmlfiles.files = $$QML_FILES
-qmlfiles.sources = $$QML_FILES
-qmlfiles.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
-
-qmldirs.files = $$QML_DIRS
-qmldirs.sources = $$QML_DIRS
-qmldirs.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
-
-INSTALLS += qmlfiles qmldirs
diff --git a/qtdesktopcomponents.pro b/qtdesktopcomponents.pro
new file mode 100644
index 0000000000000000000000000000000000000000..289b018109fefdd30299b0c2e2c9d23df4c5e80e
--- /dev/null
+++ b/qtdesktopcomponents.pro
@@ -0,0 +1,6 @@
+load(qt_parts)
+
+# We need accessibility
+!contains(QT_CONFIG, accessibility) {
+    error("Building Qt without accessibility is not supported for desktop components.")
+}
diff --git a/imports/QtDesktop/ApplicationWindow.qml b/src/qtdesktop/ApplicationWindow.qml
similarity index 100%
rename from imports/QtDesktop/ApplicationWindow.qml
rename to src/qtdesktop/ApplicationWindow.qml
diff --git a/imports/QtDesktop/Button.qml b/src/qtdesktop/Button.qml
similarity index 100%
rename from imports/QtDesktop/Button.qml
rename to src/qtdesktop/Button.qml
diff --git a/imports/QtDesktop/ButtonColumn.qml b/src/qtdesktop/ButtonColumn.qml
similarity index 100%
rename from imports/QtDesktop/ButtonColumn.qml
rename to src/qtdesktop/ButtonColumn.qml
diff --git a/imports/QtDesktop/ButtonRow.qml b/src/qtdesktop/ButtonRow.qml
similarity index 100%
rename from imports/QtDesktop/ButtonRow.qml
rename to src/qtdesktop/ButtonRow.qml
diff --git a/imports/QtDesktop/CheckBox.qml b/src/qtdesktop/CheckBox.qml
similarity index 100%
rename from imports/QtDesktop/CheckBox.qml
rename to src/qtdesktop/CheckBox.qml
diff --git a/imports/QtDesktop/ComboBox.qml b/src/qtdesktop/ComboBox.qml
similarity index 100%
rename from imports/QtDesktop/ComboBox.qml
rename to src/qtdesktop/ComboBox.qml
diff --git a/imports/QtDesktop/ContextMenu.qml b/src/qtdesktop/ContextMenu.qml
similarity index 100%
rename from imports/QtDesktop/ContextMenu.qml
rename to src/qtdesktop/ContextMenu.qml
diff --git a/imports/QtDesktop/Dial.qml b/src/qtdesktop/Dial.qml
similarity index 100%
rename from imports/QtDesktop/Dial.qml
rename to src/qtdesktop/Dial.qml
diff --git a/imports/QtDesktop/Dialog.qml b/src/qtdesktop/Dialog.qml
similarity index 100%
rename from imports/QtDesktop/Dialog.qml
rename to src/qtdesktop/Dialog.qml
diff --git a/imports/QtDesktop/Frame.qml b/src/qtdesktop/Frame.qml
similarity index 100%
rename from imports/QtDesktop/Frame.qml
rename to src/qtdesktop/Frame.qml
diff --git a/imports/QtDesktop/GroupBox.qml b/src/qtdesktop/GroupBox.qml
similarity index 100%
rename from imports/QtDesktop/GroupBox.qml
rename to src/qtdesktop/GroupBox.qml
diff --git a/imports/QtDesktop/Label.qml b/src/qtdesktop/Label.qml
similarity index 100%
rename from imports/QtDesktop/Label.qml
rename to src/qtdesktop/Label.qml
diff --git a/imports/QtDesktop/ProgressBar.qml b/src/qtdesktop/ProgressBar.qml
similarity index 100%
rename from imports/QtDesktop/ProgressBar.qml
rename to src/qtdesktop/ProgressBar.qml
diff --git a/imports/QtDesktop/RadioButton.qml b/src/qtdesktop/RadioButton.qml
similarity index 100%
rename from imports/QtDesktop/RadioButton.qml
rename to src/qtdesktop/RadioButton.qml
diff --git a/imports/QtDesktop/ScrollArea.qml b/src/qtdesktop/ScrollArea.qml
similarity index 100%
rename from imports/QtDesktop/ScrollArea.qml
rename to src/qtdesktop/ScrollArea.qml
diff --git a/imports/QtDesktop/ScrollBar.qml b/src/qtdesktop/ScrollBar.qml
similarity index 100%
rename from imports/QtDesktop/ScrollBar.qml
rename to src/qtdesktop/ScrollBar.qml
diff --git a/imports/QtDesktop/Slider.qml b/src/qtdesktop/Slider.qml
similarity index 100%
rename from imports/QtDesktop/Slider.qml
rename to src/qtdesktop/Slider.qml
diff --git a/imports/QtDesktop/SpinBox.qml b/src/qtdesktop/SpinBox.qml
similarity index 100%
rename from imports/QtDesktop/SpinBox.qml
rename to src/qtdesktop/SpinBox.qml
diff --git a/imports/QtDesktop/SplitterColumn.qml b/src/qtdesktop/SplitterColumn.qml
similarity index 100%
rename from imports/QtDesktop/SplitterColumn.qml
rename to src/qtdesktop/SplitterColumn.qml
diff --git a/imports/QtDesktop/SplitterRow.qml b/src/qtdesktop/SplitterRow.qml
similarity index 100%
rename from imports/QtDesktop/SplitterRow.qml
rename to src/qtdesktop/SplitterRow.qml
diff --git a/imports/QtDesktop/StatusBar.qml b/src/qtdesktop/StatusBar.qml
similarity index 100%
rename from imports/QtDesktop/StatusBar.qml
rename to src/qtdesktop/StatusBar.qml
diff --git a/imports/QtDesktop/Tab.qml b/src/qtdesktop/Tab.qml
similarity index 100%
rename from imports/QtDesktop/Tab.qml
rename to src/qtdesktop/Tab.qml
diff --git a/imports/QtDesktop/TabBar.qml b/src/qtdesktop/TabBar.qml
similarity index 100%
rename from imports/QtDesktop/TabBar.qml
rename to src/qtdesktop/TabBar.qml
diff --git a/imports/QtDesktop/TabFrame.qml b/src/qtdesktop/TabFrame.qml
similarity index 100%
rename from imports/QtDesktop/TabFrame.qml
rename to src/qtdesktop/TabFrame.qml
diff --git a/imports/QtDesktop/TableColumn.qml b/src/qtdesktop/TableColumn.qml
similarity index 100%
rename from imports/QtDesktop/TableColumn.qml
rename to src/qtdesktop/TableColumn.qml
diff --git a/imports/QtDesktop/TableView.qml b/src/qtdesktop/TableView.qml
similarity index 100%
rename from imports/QtDesktop/TableView.qml
rename to src/qtdesktop/TableView.qml
diff --git a/imports/QtDesktop/TextArea.qml b/src/qtdesktop/TextArea.qml
similarity index 100%
rename from imports/QtDesktop/TextArea.qml
rename to src/qtdesktop/TextArea.qml
diff --git a/imports/QtDesktop/TextField.qml b/src/qtdesktop/TextField.qml
similarity index 100%
rename from imports/QtDesktop/TextField.qml
rename to src/qtdesktop/TextField.qml
diff --git a/imports/QtDesktop/ToolBar.qml b/src/qtdesktop/ToolBar.qml
similarity index 100%
rename from imports/QtDesktop/ToolBar.qml
rename to src/qtdesktop/ToolBar.qml
diff --git a/imports/QtDesktop/ToolButton.qml b/src/qtdesktop/ToolButton.qml
similarity index 100%
rename from imports/QtDesktop/ToolButton.qml
rename to src/qtdesktop/ToolButton.qml
diff --git a/imports/QtDesktop/plugins.qmltypes b/src/qtdesktop/plugins.qmltypes
similarity index 100%
rename from imports/QtDesktop/plugins.qmltypes
rename to src/qtdesktop/plugins.qmltypes
diff --git a/imports/QtDesktop/private/BasicButton.qml b/src/qtdesktop/private/BasicButton.qml
similarity index 100%
rename from imports/QtDesktop/private/BasicButton.qml
rename to src/qtdesktop/private/BasicButton.qml
diff --git a/imports/QtDesktop/private/ButtonBehavior.qml b/src/qtdesktop/private/ButtonBehavior.qml
similarity index 100%
rename from imports/QtDesktop/private/ButtonBehavior.qml
rename to src/qtdesktop/private/ButtonBehavior.qml
diff --git a/imports/QtDesktop/private/ButtonGroup.js b/src/qtdesktop/private/ButtonGroup.js
similarity index 100%
rename from imports/QtDesktop/private/ButtonGroup.js
rename to src/qtdesktop/private/ButtonGroup.js
diff --git a/imports/QtDesktop/private/ModalPopupBehavior.qml b/src/qtdesktop/private/ModalPopupBehavior.qml
similarity index 100%
rename from imports/QtDesktop/private/ModalPopupBehavior.qml
rename to src/qtdesktop/private/ModalPopupBehavior.qml
diff --git a/imports/QtDesktop/private/ScrollAreaHelper.qml b/src/qtdesktop/private/ScrollAreaHelper.qml
similarity index 100%
rename from imports/QtDesktop/private/ScrollAreaHelper.qml
rename to src/qtdesktop/private/ScrollAreaHelper.qml
diff --git a/imports/QtDesktop/private/Splitter.qml b/src/qtdesktop/private/Splitter.qml
similarity index 100%
rename from imports/QtDesktop/private/Splitter.qml
rename to src/qtdesktop/private/Splitter.qml
diff --git a/src/qdesktopitem.cpp b/src/qtdesktop/qdesktopitem.cpp
similarity index 100%
rename from src/qdesktopitem.cpp
rename to src/qtdesktop/qdesktopitem.cpp
diff --git a/src/qdesktopitem.h b/src/qtdesktop/qdesktopitem.h
similarity index 100%
rename from src/qdesktopitem.h
rename to src/qtdesktop/qdesktopitem.h
diff --git a/src/qfiledialogitem.cpp b/src/qtdesktop/qfiledialogitem.cpp
similarity index 100%
rename from src/qfiledialogitem.cpp
rename to src/qtdesktop/qfiledialogitem.cpp
diff --git a/src/qfiledialogitem.h b/src/qtdesktop/qfiledialogitem.h
similarity index 100%
rename from src/qfiledialogitem.h
rename to src/qtdesktop/qfiledialogitem.h
diff --git a/imports/QtDesktop/qmldir b/src/qtdesktop/qmldir
similarity index 100%
rename from imports/QtDesktop/qmldir
rename to src/qtdesktop/qmldir
diff --git a/src/qquickcomponentsprivate.cpp b/src/qtdesktop/qquickcomponentsprivate.cpp
similarity index 100%
rename from src/qquickcomponentsprivate.cpp
rename to src/qtdesktop/qquickcomponentsprivate.cpp
diff --git a/src/qquickcomponentsprivate.h b/src/qtdesktop/qquickcomponentsprivate.h
similarity index 100%
rename from src/qquickcomponentsprivate.h
rename to src/qtdesktop/qquickcomponentsprivate.h
diff --git a/src/qquicklayout.cpp b/src/qtdesktop/qquicklayout.cpp
similarity index 100%
rename from src/qquicklayout.cpp
rename to src/qtdesktop/qquicklayout.cpp
diff --git a/src/qquicklayout.h b/src/qtdesktop/qquicklayout.h
similarity index 100%
rename from src/qquicklayout.h
rename to src/qtdesktop/qquicklayout.h
diff --git a/src/qquicklayoutengine.cpp b/src/qtdesktop/qquicklayoutengine.cpp
similarity index 100%
rename from src/qquicklayoutengine.cpp
rename to src/qtdesktop/qquicklayoutengine.cpp
diff --git a/src/qquicklayoutengine_p.h b/src/qtdesktop/qquicklayoutengine_p.h
similarity index 100%
rename from src/qquicklayoutengine_p.h
rename to src/qtdesktop/qquicklayoutengine_p.h
diff --git a/src/qquicklinearlayout.cpp b/src/qtdesktop/qquicklinearlayout.cpp
similarity index 100%
rename from src/qquicklinearlayout.cpp
rename to src/qtdesktop/qquicklinearlayout.cpp
diff --git a/src/qquicklinearlayout.h b/src/qtdesktop/qquicklinearlayout.h
similarity index 100%
rename from src/qquicklinearlayout.h
rename to src/qtdesktop/qquicklinearlayout.h
diff --git a/src/qrangemodel.cpp b/src/qtdesktop/qrangemodel.cpp
similarity index 100%
rename from src/qrangemodel.cpp
rename to src/qtdesktop/qrangemodel.cpp
diff --git a/src/qrangemodel.h b/src/qtdesktop/qrangemodel.h
similarity index 100%
rename from src/qrangemodel.h
rename to src/qtdesktop/qrangemodel.h
diff --git a/src/qrangemodel_p.h b/src/qtdesktop/qrangemodel_p.h
similarity index 100%
rename from src/qrangemodel_p.h
rename to src/qtdesktop/qrangemodel_p.h
diff --git a/src/qstyleitem.cpp b/src/qtdesktop/qstyleitem.cpp
similarity index 100%
rename from src/qstyleitem.cpp
rename to src/qtdesktop/qstyleitem.cpp
diff --git a/src/qstyleitem.h b/src/qtdesktop/qstyleitem.h
similarity index 100%
rename from src/qstyleitem.h
rename to src/qtdesktop/qstyleitem.h
diff --git a/src/qstyleplugin.cpp b/src/qtdesktop/qstyleplugin.cpp
similarity index 100%
rename from src/qstyleplugin.cpp
rename to src/qtdesktop/qstyleplugin.cpp
diff --git a/src/qstyleplugin.h b/src/qtdesktop/qstyleplugin.h
similarity index 100%
rename from src/qstyleplugin.h
rename to src/qtdesktop/qstyleplugin.h
diff --git a/src/qtdesktop/qtdesktop.pro b/src/qtdesktop/qtdesktop.pro
new file mode 100644
index 0000000000000000000000000000000000000000..d348cd71f9b19117a947df80fb88c40d508aac60
--- /dev/null
+++ b/src/qtdesktop/qtdesktop.pro
@@ -0,0 +1,58 @@
+QT += qml quick widgets
+
+TARGETPATH = QtDesktop
+
+QML_FILES = \
+    ApplicationWindow.qml \
+    Button.qml \
+    ButtonColumn.qml \
+    ButtonRow.qml \
+    CheckBox.qml \
+    ComboBox.qml \
+    ContextMenu.qml \
+    Dial.qml \
+    Dialog.qml \
+    Frame.qml \
+    GroupBox.qml \
+    Label.qml \
+    ProgressBar.qml \
+    RadioButton.qml \
+    ScrollArea.qml \
+    ScrollBar.qml \
+    Slider.qml \
+    SpinBox.qml \
+    SplitterColumn.qml \
+    SplitterRow.qml \
+    StatusBar.qml \
+    Tab.qml \
+    TabBar.qml \
+    TabFrame.qml \
+    TableColumn.qml \
+    TableView.qml \
+    TextArea.qml \
+    TextField.qml \
+    ToolBar.qml \
+    ToolButton.qml
+
+# private qml files
+QML_FILES += \
+    private/BasicButton.qml \
+    private/ButtonBehavior.qml \
+    private/ButtonGroup.js \
+    private/ModalPopupBehavior.qml \
+    private/ScrollAreaHelper.qml \
+    private/Splitter.qml
+
+include(styleplugin.pri)
+
+DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
+
+mac {
+    LIBS += -framework Carbon
+}
+
+load(qml_plugin)
+
+#tmp solution for QTBUG-28200
+TARGET = $$qtLibraryTarget(styleplugin)
+DESTDIR = $$QT.core.qml/QtDesktop/plugin
diff --git a/src/qtmenu.cpp b/src/qtdesktop/qtmenu.cpp
similarity index 100%
rename from src/qtmenu.cpp
rename to src/qtdesktop/qtmenu.cpp
diff --git a/src/qtmenu.h b/src/qtdesktop/qtmenu.h
similarity index 100%
rename from src/qtmenu.h
rename to src/qtdesktop/qtmenu.h
diff --git a/src/qtmenubar.cpp b/src/qtdesktop/qtmenubar.cpp
similarity index 100%
rename from src/qtmenubar.cpp
rename to src/qtdesktop/qtmenubar.cpp
diff --git a/src/qtmenubar.h b/src/qtdesktop/qtmenubar.h
similarity index 100%
rename from src/qtmenubar.h
rename to src/qtdesktop/qtmenubar.h
diff --git a/src/qtmenuitem.cpp b/src/qtdesktop/qtmenuitem.cpp
similarity index 100%
rename from src/qtmenuitem.cpp
rename to src/qtdesktop/qtmenuitem.cpp
diff --git a/src/qtmenuitem.h b/src/qtdesktop/qtmenuitem.h
similarity index 100%
rename from src/qtmenuitem.h
rename to src/qtdesktop/qtmenuitem.h
diff --git a/src/qtsplitterbase.cpp b/src/qtdesktop/qtsplitterbase.cpp
similarity index 100%
rename from src/qtsplitterbase.cpp
rename to src/qtdesktop/qtsplitterbase.cpp
diff --git a/src/qtsplitterbase.h b/src/qtdesktop/qtsplitterbase.h
similarity index 100%
rename from src/qtsplitterbase.h
rename to src/qtdesktop/qtsplitterbase.h
diff --git a/src/qwheelarea.cpp b/src/qtdesktop/qwheelarea.cpp
similarity index 100%
rename from src/qwheelarea.cpp
rename to src/qtdesktop/qwheelarea.cpp
diff --git a/src/qwheelarea.h b/src/qtdesktop/qwheelarea.h
similarity index 100%
rename from src/qwheelarea.h
rename to src/qtdesktop/qwheelarea.h
diff --git a/src/styleplugin.json b/src/qtdesktop/styleplugin.json
similarity index 100%
rename from src/styleplugin.json
rename to src/qtdesktop/styleplugin.json
diff --git a/src/qtdesktop/styleplugin.pri b/src/qtdesktop/styleplugin.pri
new file mode 100644
index 0000000000000000000000000000000000000000..5083a873ee6381ba3cdccaf1024403be5676b5dc
--- /dev/null
+++ b/src/qtdesktop/styleplugin.pri
@@ -0,0 +1,35 @@
+HEADERS += \
+    qdesktopitem.h \
+    qfiledialogitem.h \
+    qquickcomponentsprivate.h \
+    qquicklayout.h \
+    qquicklayoutengine_p.h \
+    qquicklinearlayout.h \
+    qrangemodel.h \
+    qrangemodel_p.h \
+    qstyleitem.h \
+    qstyleplugin.h \
+    qtmenu.h \
+    qtmenubar.h \
+    qtmenuitem.h \
+    qtsplitterbase.h \
+    qwheelarea.h
+
+SOURCES += \
+    qdesktopitem.cpp \
+    qfiledialogitem.cpp \
+    qquickcomponentsprivate.cpp \
+    qquicklayout.cpp \
+    qquicklayoutengine.cpp \
+    qquicklinearlayout.cpp \
+    qrangemodel.cpp \
+    qstyleitem.cpp \
+    qstyleplugin.cpp \
+    qtmenu.cpp \
+    qtmenubar.cpp \
+    qtmenuitem.cpp \
+    qtsplitterbase.cpp \
+    qwheelarea.cpp
+
+OTHER_FILES += \
+    styleplugin.json
diff --git a/src/src.pro b/src/src.pro
index 2114df7811bc04291ae99377e0c1b139cb799bb1..3b0d512ec29cc5abbf77698c1457d8eeef8c6cbf 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -1,58 +1,3 @@
-TEMPLATE = lib
-CONFIG += qt plugin
-QT += qml
-QT += quick
-QT += widgets
+TEMPLATE = subdirs
 
-TARGET  = styleplugin
-
-DESTDIR = ../imports/QtDesktop/plugin
-OBJECTS_DIR = obj
-MOC_DIR = moc
-
-HEADERS += qtmenu.h \
-           qtmenubar.h \
-           qrangemodel_p.h \
-           qrangemodel.h \
-           qstyleplugin.h \
-           qstyleitem.h \
-           qwheelarea.h \
-           qtmenuitem.h \
-           qdesktopitem.h \
-           qquicklayoutengine_p.h \
-           qquicklayout.h \
-           qquicklinearlayout.h \
-           qquickcomponentsprivate.h \
-           qtsplitterbase.h \
-           qfiledialogitem.h
-
-SOURCES += qtmenu.cpp \
-           qtmenubar.cpp \
-           qrangemodel.cpp \
-           qstyleplugin.cpp \
-           qstyleitem.cpp \
-           qwheelarea.cpp \
-           qtmenuitem.cpp \
-           qdesktopitem.cpp \
-           qquicklayout.cpp \
-           qquicklayoutengine.cpp \
-           qquicklinearlayout.cpp \
-           qquickcomponentsprivate.cpp \
-           qtsplitterbase.cpp \
-           qfiledialogitem.cpp
-
-TARGETPATH = QtDesktop/plugin
-
-target.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH
-
-win32 {
-    CONFIG(debug, debug|release) {
-        TARGET = $$member(TARGET, 0)d
-    }
-}
-
-mac {
-    LIBS += -framework Carbon
-}
-
-INSTALLS += target
+SUBDIRS += qtdesktop styles
diff --git a/imports/QtDesktop/Styles/ButtonStyle.qml b/src/styles/ButtonStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/ButtonStyle.qml
rename to src/styles/ButtonStyle.qml
diff --git a/imports/QtDesktop/Styles/CheckBoxStyle.qml b/src/styles/CheckBoxStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/CheckBoxStyle.qml
rename to src/styles/CheckBoxStyle.qml
diff --git a/imports/QtDesktop/Styles/ComboBoxStyle.qml b/src/styles/ComboBoxStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/ComboBoxStyle.qml
rename to src/styles/ComboBoxStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/ButtonStyle.qml b/src/styles/Desktop/ButtonStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/ButtonStyle.qml
rename to src/styles/Desktop/ButtonStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/CheckBoxStyle.qml b/src/styles/Desktop/CheckBoxStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/CheckBoxStyle.qml
rename to src/styles/Desktop/CheckBoxStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/ComboBoxStyle.qml b/src/styles/Desktop/ComboBoxStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/ComboBoxStyle.qml
rename to src/styles/Desktop/ComboBoxStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/FrameStyle.qml b/src/styles/Desktop/FrameStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/FrameStyle.qml
rename to src/styles/Desktop/FrameStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/GroupBoxStyle.qml b/src/styles/Desktop/GroupBoxStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/GroupBoxStyle.qml
rename to src/styles/Desktop/GroupBoxStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/ProgressBarStyle.qml b/src/styles/Desktop/ProgressBarStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/ProgressBarStyle.qml
rename to src/styles/Desktop/ProgressBarStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/RadioButtonStyle.qml b/src/styles/Desktop/RadioButtonStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/RadioButtonStyle.qml
rename to src/styles/Desktop/RadioButtonStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/ScrollAreaStyle.qml b/src/styles/Desktop/ScrollAreaStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/ScrollAreaStyle.qml
rename to src/styles/Desktop/ScrollAreaStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/ScrollBarStyle.qml b/src/styles/Desktop/ScrollBarStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/ScrollBarStyle.qml
rename to src/styles/Desktop/ScrollBarStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/SliderStyle.qml b/src/styles/Desktop/SliderStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/SliderStyle.qml
rename to src/styles/Desktop/SliderStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/SpinBoxStyle.qml b/src/styles/Desktop/SpinBoxStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/SpinBoxStyle.qml
rename to src/styles/Desktop/SpinBoxStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/TabBarStyle.qml b/src/styles/Desktop/TabBarStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/TabBarStyle.qml
rename to src/styles/Desktop/TabBarStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/TabFrameStyle.qml b/src/styles/Desktop/TabFrameStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/TabFrameStyle.qml
rename to src/styles/Desktop/TabFrameStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/TextFieldStyle.qml b/src/styles/Desktop/TextFieldStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/TextFieldStyle.qml
rename to src/styles/Desktop/TextFieldStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/ToolBarStyle.qml b/src/styles/Desktop/ToolBarStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/ToolBarStyle.qml
rename to src/styles/Desktop/ToolBarStyle.qml
diff --git a/imports/QtDesktop/Styles/Desktop/ToolButtonStyle.qml b/src/styles/Desktop/ToolButtonStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/Desktop/ToolButtonStyle.qml
rename to src/styles/Desktop/ToolButtonStyle.qml
diff --git a/imports/QtDesktop/Styles/FrameStyle.qml b/src/styles/FrameStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/FrameStyle.qml
rename to src/styles/FrameStyle.qml
diff --git a/imports/QtDesktop/Styles/GroupBoxStyle.qml b/src/styles/GroupBoxStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/GroupBoxStyle.qml
rename to src/styles/GroupBoxStyle.qml
diff --git a/imports/QtDesktop/Styles/ProgressBarStyle.qml b/src/styles/ProgressBarStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/ProgressBarStyle.qml
rename to src/styles/ProgressBarStyle.qml
diff --git a/imports/QtDesktop/Styles/RadioButtonStyle.qml b/src/styles/RadioButtonStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/RadioButtonStyle.qml
rename to src/styles/RadioButtonStyle.qml
diff --git a/imports/QtDesktop/Styles/ScrollAreaStyle.qml b/src/styles/ScrollAreaStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/ScrollAreaStyle.qml
rename to src/styles/ScrollAreaStyle.qml
diff --git a/imports/QtDesktop/Styles/ScrollBarStyle.qml b/src/styles/ScrollBarStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/ScrollBarStyle.qml
rename to src/styles/ScrollBarStyle.qml
diff --git a/imports/QtDesktop/Styles/Settings.js b/src/styles/Settings.js
similarity index 100%
rename from imports/QtDesktop/Styles/Settings.js
rename to src/styles/Settings.js
diff --git a/imports/QtDesktop/Styles/SliderStyle.qml b/src/styles/SliderStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/SliderStyle.qml
rename to src/styles/SliderStyle.qml
diff --git a/imports/QtDesktop/Styles/SpinBoxStyle.qml b/src/styles/SpinBoxStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/SpinBoxStyle.qml
rename to src/styles/SpinBoxStyle.qml
diff --git a/imports/QtDesktop/Styles/TabBarStyle.qml b/src/styles/TabBarStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/TabBarStyle.qml
rename to src/styles/TabBarStyle.qml
diff --git a/imports/QtDesktop/Styles/TabFrameStyle.qml b/src/styles/TabFrameStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/TabFrameStyle.qml
rename to src/styles/TabFrameStyle.qml
diff --git a/imports/QtDesktop/Styles/TextFieldStyle.qml b/src/styles/TextFieldStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/TextFieldStyle.qml
rename to src/styles/TextFieldStyle.qml
diff --git a/imports/QtDesktop/Styles/ToolBarStyle.qml b/src/styles/ToolBarStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/ToolBarStyle.qml
rename to src/styles/ToolBarStyle.qml
diff --git a/imports/QtDesktop/Styles/ToolButtonStyle.qml b/src/styles/ToolButtonStyle.qml
similarity index 100%
rename from imports/QtDesktop/Styles/ToolButtonStyle.qml
rename to src/styles/ToolButtonStyle.qml
diff --git a/imports/QtDesktop/Styles/qmldir b/src/styles/qmldir
similarity index 100%
rename from imports/QtDesktop/Styles/qmldir
rename to src/styles/qmldir
diff --git a/src/styles/styles.pro b/src/styles/styles.pro
new file mode 100644
index 0000000000000000000000000000000000000000..23dd37f119aca8688a70338925ab630220e53580
--- /dev/null
+++ b/src/styles/styles.pro
@@ -0,0 +1,41 @@
+TARGETPATH = QtDesktop/Styles
+
+QML_FILES = \
+    ButtonStyle.qml \
+    CheckBoxStyle.qml \
+    ComboBoxStyle.qml \
+    FrameStyle.qml \
+    GroupBoxStyle.qml \
+    ProgressBarStyle.qml \
+    RadioButtonStyle.qml \
+    ScrollAreaStyle.qml \
+    ScrollBarStyle.qml \
+    Settings.js \
+    SliderStyle.qml \
+    SpinBoxStyle.qml \
+    TabBarStyle.qml \
+    TabFrameStyle.qml \
+    TextFieldStyle.qml \
+    ToolBarStyle.qml \
+    ToolButtonStyle.qml
+
+# Desktop
+QML_FILES += \
+    Desktop/ButtonStyle.qml \
+    Desktop/CheckBoxStyle.qml \
+    Desktop/ComboBoxStyle.qml \
+    Desktop/FrameStyle.qml \
+    Desktop/GroupBoxStyle.qml \
+    Desktop/ProgressBarStyle.qml \
+    Desktop/RadioButtonStyle.qml \
+    Desktop/ScrollAreaStyle.qml \
+    Desktop/ScrollBarStyle.qml \
+    Desktop/SliderStyle.qml \
+    Desktop/SpinBoxStyle.qml \
+    Desktop/TabBarStyle.qml \
+    Desktop/TabFrameStyle.qml \
+    Desktop/TextFieldStyle.qml \
+    Desktop/ToolBarStyle.qml \
+    Desktop/ToolButtonStyle.qml
+
+load(qml_module)
diff --git a/sync.profile b/sync.profile
index 28dcdcba98af25939f34163c9c3df4c031ed47a5..169a092fd4029c8e2002bbb5606547b2cd4baffb 100644
--- a/sync.profile
+++ b/sync.profile
@@ -1,5 +1,4 @@
 %modules = ( # path to module name map
-    "QtDesktopComponents" => "$basedir",
 );
 %moduleheaders = ( # restrict the module headers to those found in relative path
 );
diff --git a/qmlwidget/main.cpp b/tools/qmlwidget/main.cpp
similarity index 100%
rename from qmlwidget/main.cpp
rename to tools/qmlwidget/main.cpp
diff --git a/qmlwidget/qmlwidget.pro b/tools/qmlwidget/qmlwidget.pro
similarity index 100%
rename from qmlwidget/qmlwidget.pro
rename to tools/qmlwidget/qmlwidget.pro