From cf56178df17db9a4840e52627ec89532c76c41e5 Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig <jens.bache-wiig@digia.com> Date: Mon, 2 Sep 2013 17:29:30 +0200 Subject: [PATCH] Port welcome screen to Qt Quick 2 This ports the welcome screen to use QtQuick 2.0. I have disabled the plugin on Qt4 builds. Change-Id: Ia921d0747c8f7d4441c88fc9fb77b822496091f4 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com> --- .../qml/qmlobserver/startup/Logo.qml | 2 +- share/qtcreator/welcomescreen/develop.qml | 2 +- .../welcomescreen/dummydata/examplesModel.qml | 2 +- .../welcomescreen/dummydata/pagesModel.qml | 2 +- .../welcomescreen/dummydata/projectList.qml | 2 +- .../welcomescreen/dummydata/sessionList.qml | 2 +- .../dummydata/tutorialsModel.qml | 2 +- share/qtcreator/welcomescreen/examples.qml | 4 +- .../welcomescreen/gettingstarted.qml | 2 +- share/qtcreator/welcomescreen/tutorials.qml | 2 +- .../qtcreator/welcomescreen/welcomescreen.qml | 8 +- .../welcomescreen/widgets/ComboBox.qml | 6 +- .../welcomescreen/widgets/CustomColors.qml | 2 +- .../welcomescreen/widgets/CustomFonts.qml | 2 +- .../welcomescreen/widgets/CustomTab.qml | 2 +- .../widgets/CustomizedGridView.qml | 86 +++++++------------ .../welcomescreen/widgets/Delegate.qml | 15 +--- .../widgets/GettingStartedItem.qml | 14 +-- .../welcomescreen/widgets/IconAndLink.qml | 2 +- .../welcomescreen/widgets/LinkedText.qml | 14 +-- .../welcomescreen/widgets/LinksBar.qml | 3 +- .../qtcreator/welcomescreen/widgets/Logo.qml | 2 +- .../welcomescreen/widgets/PageCaption.qml | 10 +-- .../welcomescreen/widgets/PageLoader.qml | 2 +- .../welcomescreen/widgets/ProjectItem.qml | 6 +- .../welcomescreen/widgets/RecentProjects.qml | 22 +++-- .../welcomescreen/widgets/SearchBar.qml | 33 ++++--- .../welcomescreen/widgets/SessionItem.qml | 13 +-- .../welcomescreen/widgets/Sessions.qml | 50 ++--------- .../welcomescreen/widgets/ToolTip.qml | 4 +- .../dummydata/context/ExampleDelegate.qml | 2 +- .../dummydata/context/ExampleGridView.qml | 2 +- .../widgets/dummydata/examplesModel.qml | 2 +- .../widgets/dummydata/mockupTags.qml | 2 +- .../widgets/dummydata/pagesModel.qml | 2 +- .../widgets/dummydata/tabsModel.qml | 2 +- src/libs/utils/iwelcomepage.h | 4 +- src/plugins/plugins.pro | 4 +- src/plugins/plugins.qbs | 8 +- .../projectexplorer/projectexplorer.cpp | 23 ++++- .../projectexplorer/projectexplorer.pro | 9 +- .../projectexplorer/projectexplorer.qbs | 12 ++- .../projectexplorer/projectwelcomepage.cpp | 8 +- .../projectexplorer/projectwelcomepage.h | 4 +- .../qtsupport/gettingstartedwelcomepage.cpp | 16 ++-- .../qtsupport/gettingstartedwelcomepage.h | 10 +-- src/plugins/qtsupport/qtsupport.pro | 10 ++- src/plugins/qtsupport/qtsupport.qbs | 13 ++- src/plugins/qtsupport/qtsupportplugin.cpp | 12 +-- src/plugins/welcome/welcome.pro | 2 +- src/plugins/welcome/welcome.qbs | 2 +- src/plugins/welcome/welcomeplugin.cpp | 70 ++++++++------- src/plugins/welcome/welcomeplugin.h | 2 +- 53 files changed, 243 insertions(+), 296 deletions(-) diff --git a/share/qtcreator/qml/qmlobserver/startup/Logo.qml b/share/qtcreator/qml/qmlobserver/startup/Logo.qml index dfe594e4998..2bd7051e110 100644 --- a/share/qtcreator/qml/qmlobserver/startup/Logo.qml +++ b/share/qtcreator/qml/qmlobserver/startup/Logo.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 Rectangle { id: myApp diff --git a/share/qtcreator/welcomescreen/develop.qml b/share/qtcreator/welcomescreen/develop.qml index c8f05a62688..e2a58eb9d83 100644 --- a/share/qtcreator/welcomescreen/develop.qml +++ b/share/qtcreator/welcomescreen/develop.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 +import QtQuick 2.1 import widgets 1.0 Rectangle { diff --git a/share/qtcreator/welcomescreen/dummydata/examplesModel.qml b/share/qtcreator/welcomescreen/dummydata/examplesModel.qml index c1c2beb0a33..a3cbf216c8b 100644 --- a/share/qtcreator/welcomescreen/dummydata/examplesModel.qml +++ b/share/qtcreator/welcomescreen/dummydata/examplesModel.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 ListModel { ListElement { diff --git a/share/qtcreator/welcomescreen/dummydata/pagesModel.qml b/share/qtcreator/welcomescreen/dummydata/pagesModel.qml index c97b256619d..ac9a6285939 100644 --- a/share/qtcreator/welcomescreen/dummydata/pagesModel.qml +++ b/share/qtcreator/welcomescreen/dummydata/pagesModel.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 ListModel { ListElement { diff --git a/share/qtcreator/welcomescreen/dummydata/projectList.qml b/share/qtcreator/welcomescreen/dummydata/projectList.qml index 8a806fe0133..75411e8d55e 100644 --- a/share/qtcreator/welcomescreen/dummydata/projectList.qml +++ b/share/qtcreator/welcomescreen/dummydata/projectList.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 ListModel { ListElement { diff --git a/share/qtcreator/welcomescreen/dummydata/sessionList.qml b/share/qtcreator/welcomescreen/dummydata/sessionList.qml index 1a6db9dbbc7..07352b21306 100644 --- a/share/qtcreator/welcomescreen/dummydata/sessionList.qml +++ b/share/qtcreator/welcomescreen/dummydata/sessionList.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 ListModel { ListElement { diff --git a/share/qtcreator/welcomescreen/dummydata/tutorialsModel.qml b/share/qtcreator/welcomescreen/dummydata/tutorialsModel.qml index 9bce3ea4231..c2930d980e7 100644 --- a/share/qtcreator/welcomescreen/dummydata/tutorialsModel.qml +++ b/share/qtcreator/welcomescreen/dummydata/tutorialsModel.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 ListModel { ListElement { diff --git a/share/qtcreator/welcomescreen/examples.qml b/share/qtcreator/welcomescreen/examples.qml index 868c6c9373f..ec6a9921c10 100644 --- a/share/qtcreator/welcomescreen/examples.qml +++ b/share/qtcreator/welcomescreen/examples.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 import widgets 1.0 Rectangle { @@ -82,6 +82,8 @@ Rectangle { anchors.rightMargin: 80 anchors.right: parent.right model: qtVersionModel + textRole: "text" + onCurrentIndexChanged: { if (comboBox.model === undefined) diff --git a/share/qtcreator/welcomescreen/gettingstarted.qml b/share/qtcreator/welcomescreen/gettingstarted.qml index 34697060293..cf77902554d 100644 --- a/share/qtcreator/welcomescreen/gettingstarted.qml +++ b/share/qtcreator/welcomescreen/gettingstarted.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 +import QtQuick 2.1 import widgets 1.0 Rectangle { diff --git a/share/qtcreator/welcomescreen/tutorials.qml b/share/qtcreator/welcomescreen/tutorials.qml index af2d3604183..b18bfbf625e 100644 --- a/share/qtcreator/welcomescreen/tutorials.qml +++ b/share/qtcreator/welcomescreen/tutorials.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 import widgets 1.0 Rectangle { diff --git a/share/qtcreator/welcomescreen/welcomescreen.qml b/share/qtcreator/welcomescreen/welcomescreen.qml index 308f9d75659..b6ef3a86f02 100644 --- a/share/qtcreator/welcomescreen/welcomescreen.qml +++ b/share/qtcreator/welcomescreen/welcomescreen.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 import widgets 1.0 Rectangle { @@ -36,13 +36,13 @@ Rectangle { color: "#edf0f2" id: root + property var fonts: CustomFonts {} + property var colors: CustomColors { } + Rectangle { id: canvas width: Math.min(1024, parent.width) - //this is a workaround for QTCREATORBUG-6803 - anchors.topMargin: (root.height > 700) ? 0 : 0 - anchors.top: parent.top anchors.bottom: parent.bottom anchors.horizontalCenter: parent.horizontalCenter diff --git a/share/qtcreator/welcomescreen/widgets/ComboBox.qml b/share/qtcreator/welcomescreen/widgets/ComboBox.qml index c68d3ff286e..544c3f498b9 100644 --- a/share/qtcreator/welcomescreen/widgets/ComboBox.qml +++ b/share/qtcreator/welcomescreen/widgets/ComboBox.qml @@ -27,8 +27,8 @@ ** ****************************************************************************/ -import QtQuick 1.0 -import qtcomponents 1.0 +import QtQuick 2.1 +import QtQuick.Controls 1.0 -ChoiceList { +ComboBox { } diff --git a/share/qtcreator/welcomescreen/widgets/CustomColors.qml b/share/qtcreator/welcomescreen/widgets/CustomColors.qml index df18527df5a..d4d85c347fc 100644 --- a/share/qtcreator/welcomescreen/widgets/CustomColors.qml +++ b/share/qtcreator/welcomescreen/widgets/CustomColors.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 QtObject { property color linkColor: "#445ba8" diff --git a/share/qtcreator/welcomescreen/widgets/CustomFonts.qml b/share/qtcreator/welcomescreen/widgets/CustomFonts.qml index 3b48a38bf38..9fa63913999 100644 --- a/share/qtcreator/welcomescreen/widgets/CustomFonts.qml +++ b/share/qtcreator/welcomescreen/widgets/CustomFonts.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 +import QtQuick 2.1 QtObject { property alias linkFont: linkText.font diff --git a/share/qtcreator/welcomescreen/widgets/CustomTab.qml b/share/qtcreator/welcomescreen/widgets/CustomTab.qml index a4ee1b6031f..b76cffedc6c 100644 --- a/share/qtcreator/welcomescreen/widgets/CustomTab.qml +++ b/share/qtcreator/welcomescreen/widgets/CustomTab.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 +import QtQuick 2.1 Row { id: customTab diff --git a/share/qtcreator/welcomescreen/widgets/CustomizedGridView.qml b/share/qtcreator/welcomescreen/widgets/CustomizedGridView.qml index d36b3f0a330..b022235e38f 100644 --- a/share/qtcreator/welcomescreen/widgets/CustomizedGridView.qml +++ b/share/qtcreator/welcomescreen/widgets/CustomizedGridView.qml @@ -27,64 +27,36 @@ ** ****************************************************************************/ -import QtQuick 1.0 -import qtcomponents 1.0 - -GridView { - id: gridView - interactive: false - clip: true - cellHeight: 240 - cellWidth: 216 - property int columns: Math.max(Math.floor(width / cellWidth), 1) - cacheBuffer: 1000 +import QtQuick 2.1 +import QtQuick.Controls 1.0 +ScrollView { x: Math.max((width - (cellWidth * columns)) / 2, 0); - - delegate: Delegate { - id: delegate - - property bool isHelpImage: model.imageUrl.search(/qthelp/) != -1 - property string sourcePrefix: isHelpImage ? "image://helpimage/" : "" - - property string mockupSource: model.imageSource - property string helpSource: model.imageUrl !== "" ? sourcePrefix + encodeURI(model.imageUrl) : "" - - imageSource: model.imageSource === undefined ? helpSource : mockupSource - videoSource: model.imageSource === undefined ? model.imageUrl : mockupSource - - caption: model.name; - description: model.description - isVideo: model.isVideo === true - videoLength: model.videoLength !== undefined ? model.videoLength : "" - tags: model.tags - } - - WheelArea { - id: wheelarea - anchors.fill: parent - verticalMinimumValue: vscrollbar.minimumValue - verticalMaximumValue: vscrollbar.maximumValue - - onVerticalValueChanged: gridView.contentY = verticalValue - verticalValue: gridView.contentY - - } - - ScrollBar { - id: vscrollbar - orientation: Qt.Vertical - property int availableHeight : gridView.height - visible: contentHeight > availableHeight - maximumValue: contentHeight > availableHeight ? gridView.contentHeight - availableHeight : 0 - minimumValue: 0 - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.topMargin: styleitem.style == "mac" ? 1 : 0 - onValueChanged: gridView.contentY = value - anchors.rightMargin: styleitem.frameoffset - anchors.bottomMargin: hscrollbar.visible ? hscrollbar.height : styleitem.frameoffset - value: gridView.contentY + property alias model: gridView.model + GridView { + id: gridView + interactive: false + cellHeight: 240 + cellWidth: 216 + property int columns: Math.max(Math.floor(width / cellWidth), 1) + + delegate: Delegate { + id: delegate + + property bool isHelpImage: model.imageUrl.search(/qthelp/) != -1 + property string sourcePrefix: isHelpImage ? "image://helpimage/" : "" + + property string mockupSource: model.imageSource + property string helpSource: model.imageUrl !== "" ? sourcePrefix + encodeURI(model.imageUrl) : "" + + imageSource: model.imageSource === undefined ? helpSource : mockupSource + videoSource: model.imageSource === undefined ? model.imageUrl : mockupSource + + caption: model.name; + description: model.description + isVideo: model.isVideo === true + videoLength: model.videoLength !== undefined ? model.videoLength : "" + tags: model.tags + } } } diff --git a/share/qtcreator/welcomescreen/widgets/Delegate.qml b/share/qtcreator/welcomescreen/widgets/Delegate.qml index ec76af2fd53..39936e0ce06 100644 --- a/share/qtcreator/welcomescreen/widgets/Delegate.qml +++ b/share/qtcreator/welcomescreen/widgets/Delegate.qml @@ -27,8 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 -import qtcomponents 1.0 +import QtQuick 2.1 Rectangle { id: delegate @@ -64,17 +63,6 @@ Rectangle { searchBar.text += " " + tagStr } - CustomColors { - id: colors - } - - CustomFonts { - id: fonts - } - - QStyleItem { cursor: "pointinghandcursor"; anchors.fill: parent } - - BorderImage { id: image1 x: 11 @@ -228,6 +216,7 @@ Rectangle { id: mousearea1 anchors.fill: parent hoverEnabled: true + cursorShape: Qt.PointingHandCursor onEntered: { delegate.state="hover" } diff --git a/share/qtcreator/welcomescreen/widgets/GettingStartedItem.qml b/share/qtcreator/welcomescreen/widgets/GettingStartedItem.qml index d48b4d199d8..00b4f404fb5 100644 --- a/share/qtcreator/welcomescreen/widgets/GettingStartedItem.qml +++ b/share/qtcreator/welcomescreen/widgets/GettingStartedItem.qml @@ -1,5 +1,4 @@ -import QtQuick 1.1 -import qtcomponents 1.0 +import QtQuick 2.1 Item { id: gettingStartedItem @@ -13,16 +12,6 @@ Item { signal clicked - CustomColors { - id: colors - } - - CustomFonts { - id: fonts - } - - QStyleItem { cursor: "pointinghandcursor"; anchors.fill: parent } - Rectangle { y: 170 width: 20 @@ -106,6 +95,7 @@ Item { MouseArea { anchors.fill: parent hoverEnabled: true + cursorShape: Qt.PointingHandCursor onEntered: { gettingStartedItem.state="hover" } diff --git a/share/qtcreator/welcomescreen/widgets/IconAndLink.qml b/share/qtcreator/welcomescreen/widgets/IconAndLink.qml index c9d934c276b..f865f1e4a7c 100644 --- a/share/qtcreator/welcomescreen/widgets/IconAndLink.qml +++ b/share/qtcreator/welcomescreen/widgets/IconAndLink.qml @@ -1,4 +1,4 @@ -import QtQuick 1.1 +import QtQuick 2.1 import widgets 1.0 Row { diff --git a/share/qtcreator/welcomescreen/widgets/LinkedText.qml b/share/qtcreator/welcomescreen/widgets/LinkedText.qml index e01388cfd46..fa47a67c700 100644 --- a/share/qtcreator/welcomescreen/widgets/LinkedText.qml +++ b/share/qtcreator/welcomescreen/widgets/LinkedText.qml @@ -27,8 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 -import qtcomponents 1.0 +import QtQuick 2.1 Text { id: root @@ -52,14 +51,6 @@ Text { property bool enlargeMouseArea: true - CustomFonts { - id: fonts - } - - CustomColors { - id: colors - } - Rectangle { color: "#909090" radius: 6 @@ -89,8 +80,7 @@ Text { anchors.margins: enlargeMouseArea ? -8 : 0 hoverEnabled: true - QStyleItem { cursor: "pointinghandcursor"; anchors.fill: parent } - + cursorShape: Qt.PointingHandCursor onEntered: { if (!root.active) mouseArea.state = "hovered" diff --git a/share/qtcreator/welcomescreen/widgets/LinksBar.qml b/share/qtcreator/welcomescreen/widgets/LinksBar.qml index 4fb39136ecf..8b0e7a66427 100644 --- a/share/qtcreator/welcomescreen/widgets/LinksBar.qml +++ b/share/qtcreator/welcomescreen/widgets/LinksBar.qml @@ -27,8 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 -import qtcomponents 1.0 as Components +import QtQuick 2.1 Item { id: tabBar diff --git a/share/qtcreator/welcomescreen/widgets/Logo.qml b/share/qtcreator/welcomescreen/widgets/Logo.qml index deaff82529b..080bb9c3616 100644 --- a/share/qtcreator/welcomescreen/widgets/Logo.qml +++ b/share/qtcreator/welcomescreen/widgets/Logo.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 Image { id: logo diff --git a/share/qtcreator/welcomescreen/widgets/PageCaption.qml b/share/qtcreator/welcomescreen/widgets/PageCaption.qml index 7e10e6fb83a..7a4ec89daa2 100644 --- a/share/qtcreator/welcomescreen/widgets/PageCaption.qml +++ b/share/qtcreator/welcomescreen/widgets/PageCaption.qml @@ -27,16 +27,16 @@ ** ****************************************************************************/ -import QtQuick 1.1 -import QtQuick 1.0 +import QtQuick 2.1 Item { id: pageCaption width: 960 height: 40 - property int textOffset: captionText.x + captionText.width + property int textOffset: captionText.x + captionText.width property alias caption: captionText.text + Text { id: captionText y: 9 @@ -55,8 +55,4 @@ Item { anchors.left: parent.left anchors.right: parent.right } - - CustomColors { - id: colors - } } diff --git a/share/qtcreator/welcomescreen/widgets/PageLoader.qml b/share/qtcreator/welcomescreen/widgets/PageLoader.qml index f720a06231f..c981e2b60b9 100644 --- a/share/qtcreator/welcomescreen/widgets/PageLoader.qml +++ b/share/qtcreator/welcomescreen/widgets/PageLoader.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 Item { id: pageLoader diff --git a/share/qtcreator/welcomescreen/widgets/ProjectItem.qml b/share/qtcreator/welcomescreen/widgets/ProjectItem.qml index b1ba42c46cd..9a60ea4385c 100644 --- a/share/qtcreator/welcomescreen/widgets/ProjectItem.qml +++ b/share/qtcreator/welcomescreen/widgets/ProjectItem.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 Item { id: projectItem @@ -48,10 +48,6 @@ Item { anchors.verticalCenter: projectNameText.verticalCenter } - CustomFonts { - id: fonts - } - LinkedText { id: projectNameText y: 2 diff --git a/share/qtcreator/welcomescreen/widgets/RecentProjects.qml b/share/qtcreator/welcomescreen/widgets/RecentProjects.qml index 9baaaa4086a..f2d72d0af31 100644 --- a/share/qtcreator/welcomescreen/widgets/RecentProjects.qml +++ b/share/qtcreator/welcomescreen/widgets/RecentProjects.qml @@ -27,23 +27,21 @@ ** ****************************************************************************/ -import QtQuick 1.0 -import qtcomponents 1.0 +import QtQuick 2.1 +import QtQuick.Controls 1.0 -ScrollArea { - property bool scrollBarVisible: projectList.verticalScrollBar.visible +ScrollView { id: projectList - property alias model: repeater.model - Behavior on verticalScrollBar.opacity { - PropertyAnimation { + property bool scrollBarVisible: false//projectList.verticalScrollBar.visible + property alias model: repeater.model +// Behavior on verticalScrollBar.opacity { +// PropertyAnimation { - } - } +// } +// } - frame: false - horizontalScrollBar.visible: false - clip: true +// frameVisible: false Column { id: column diff --git a/share/qtcreator/welcomescreen/widgets/SearchBar.qml b/share/qtcreator/welcomescreen/widgets/SearchBar.qml index 3eb11b36c27..ef8d23c1af3 100644 --- a/share/qtcreator/welcomescreen/widgets/SearchBar.qml +++ b/share/qtcreator/welcomescreen/widgets/SearchBar.qml @@ -27,35 +27,42 @@ ** ****************************************************************************/ -import QtQuick 1.0 -import qtcomponents 1.0 +import QtQuick 2.1 Rectangle { id: searchBar + width: 930 - height: 31 + height: 27 color: "#ffffff" radius: 6 border.color: "#cccccc" - property alias placeholderText: lineEdit.placeholderText - property alias text: lineEdit.text - CustomFonts { - id: fonts - } + property alias placeholderText: placeHolderText.text + property alias text: lineEdit.text - TextField { + TextInput { id: lineEdit - placeholderText: qsTr("Search...") + anchors.topMargin: 1 anchors.left: parent.left anchors.right: parent.right anchors.rightMargin: 12 anchors.leftMargin: 12 - anchors.verticalCenter: parent.verticalCenter - background: Item {} + anchors.fill: parent + verticalAlignment: Text.AlignVCenter + renderType: Text.NativeRendering font.pixelSize: 14 - font.bold: false font.family: "Helvetica" } + Text { + id: placeHolderText + visible: !lineEdit.text.length + text: qsTr("Search...") + anchors.fill: lineEdit + font: lineEdit.font + verticalAlignment: Text.AlignVCenter + renderType: Text.NativeRendering + color: "gray" + } } diff --git a/share/qtcreator/welcomescreen/widgets/SessionItem.qml b/share/qtcreator/welcomescreen/widgets/SessionItem.qml index c9d97460313..6835974e0fc 100644 --- a/share/qtcreator/welcomescreen/widgets/SessionItem.qml +++ b/share/qtcreator/welcomescreen/widgets/SessionItem.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 +import QtQuick 2.1 Item { x: 5 @@ -36,10 +36,6 @@ Item { height: column.height property alias name: text.text - CustomFonts { - id: fonts - } - Column { id: column spacing: 4 @@ -100,14 +96,13 @@ Item { Item { z: -1 property int margin: 6 - height: innerColumn.height + margin * 2 + height: expanded ? innerColumn.height + margin * 2 : 0 width: delegate.ListView.view.width - 8 - margin * 2 opacity: delegate.expanded ? 1 : 0 - Behavior on opacity { + Behavior on height { ParallelAnimation { - PauseAnimation { duration: delegate.expanded ? 100 : 0; } - PropertyAnimation { duration: 100; } + PropertyAnimation { duration: 160 ; easing.type: Easing.OutCubic } } } diff --git a/share/qtcreator/welcomescreen/widgets/Sessions.qml b/share/qtcreator/welcomescreen/widgets/Sessions.qml index ee66d45652a..d83243efd99 100644 --- a/share/qtcreator/welcomescreen/widgets/Sessions.qml +++ b/share/qtcreator/welcomescreen/widgets/Sessions.qml @@ -27,33 +27,25 @@ ** ****************************************************************************/ -import QtQuick 1.0 -import qtcomponents 1.0 +import QtQuick 2.1 +import widgets 1.0 Item { - property alias model: root.model + id: root + property var model property int topMargin: 6 - height: Math.min(root.contentHeight + topMargin, parent.height - 260) - - property alias scrollBarVisible: vscrollbar.visible + height: Math.min(content.contentHeight + topMargin, parent.height - 260) ListView { - id: root + id: content + model: root.model anchors.fill: parent anchors.topMargin: topMargin - snapMode: ListView.SnapToItem - property int delegateHeight: currentItem.height + spacing - //property int delegateHeight: 22 - - interactive: false - spacing: 4 - cacheBuffer: 800 //We need a big cache to avoid artefacts caused by delegate recreation clip: true - delegate: SessionItem { function fullSessionName() { @@ -64,35 +56,7 @@ Item { newSessionName = qsTr("%1 (current session)").arg(sessionName); return newSessionName; } - name: fullSessionName() } - - WheelArea { - id: wheelarea - anchors.fill: parent - verticalMinimumValue: vscrollbar.minimumValue - verticalMaximumValue: vscrollbar.maximumValue - onVerticalValueChanged: root.contentY = verticalValue - } - - ScrollBar { - id: vscrollbar - orientation: Qt.Vertical - property int availableHeight : root.height - visible: root.contentHeight > availableHeight - maximumValue: root.contentHeight > availableHeight ? root.contentHeight - availableHeight : 0 - minimumValue: 0 - anchors.right: parent.right - anchors.top: parent.top - anchors.bottom: parent.bottom - singleStep: root.delegateHeight - anchors.topMargin: styleitem.style === "mac" ? 1 : 0 - onValueChanged: root.contentY = value - anchors.rightMargin: styleitem.frameoffset - anchors.bottomMargin: styleitem.frameoffset - value: root.contentY - } } - } diff --git a/share/qtcreator/welcomescreen/widgets/ToolTip.qml b/share/qtcreator/welcomescreen/widgets/ToolTip.qml index 165dcb8ede4..24a3b9edd7d 100644 --- a/share/qtcreator/welcomescreen/widgets/ToolTip.qml +++ b/share/qtcreator/welcomescreen/widgets/ToolTip.qml @@ -27,14 +27,12 @@ ** ****************************************************************************/ -import QtQuick 1.1 +import QtQuick 2.1 Item { id: toolTip property alias text: text.text - - property int margin: 4 width: text.width + margin * 2 diff --git a/share/qtcreator/welcomescreen/widgets/dummydata/context/ExampleDelegate.qml b/share/qtcreator/welcomescreen/widgets/dummydata/context/ExampleDelegate.qml index 09f3ca0e3d2..cadd814b3d5 100644 --- a/share/qtcreator/welcomescreen/widgets/dummydata/context/ExampleDelegate.qml +++ b/share/qtcreator/welcomescreen/widgets/dummydata/context/ExampleDelegate.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 import QmlDesigner 1.0 DummyContextObject { diff --git a/share/qtcreator/welcomescreen/widgets/dummydata/context/ExampleGridView.qml b/share/qtcreator/welcomescreen/widgets/dummydata/context/ExampleGridView.qml index 6a0564b3cc0..6640143b751 100644 --- a/share/qtcreator/welcomescreen/widgets/dummydata/context/ExampleGridView.qml +++ b/share/qtcreator/welcomescreen/widgets/dummydata/context/ExampleGridView.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.1 import QmlDesigner 1.0 DummyContextObject { diff --git a/share/qtcreator/welcomescreen/widgets/dummydata/examplesModel.qml b/share/qtcreator/welcomescreen/widgets/dummydata/examplesModel.qml index beec98855dc..1e687236946 100644 --- a/share/qtcreator/welcomescreen/widgets/dummydata/examplesModel.qml +++ b/share/qtcreator/welcomescreen/widgets/dummydata/examplesModel.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 +import QtQuick 2.1 ListModel { ListElement { diff --git a/share/qtcreator/welcomescreen/widgets/dummydata/mockupTags.qml b/share/qtcreator/welcomescreen/widgets/dummydata/mockupTags.qml index 017d2b636a7..8b410ccda56 100644 --- a/share/qtcreator/welcomescreen/widgets/dummydata/mockupTags.qml +++ b/share/qtcreator/welcomescreen/widgets/dummydata/mockupTags.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 +import QtQuick 2.1 ListModel { ListElement { diff --git a/share/qtcreator/welcomescreen/widgets/dummydata/pagesModel.qml b/share/qtcreator/welcomescreen/widgets/dummydata/pagesModel.qml index c98b7f2c459..de41e0dbd09 100644 --- a/share/qtcreator/welcomescreen/widgets/dummydata/pagesModel.qml +++ b/share/qtcreator/welcomescreen/widgets/dummydata/pagesModel.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 +import QtQuick 2.1 ListModel { ListElement { diff --git a/share/qtcreator/welcomescreen/widgets/dummydata/tabsModel.qml b/share/qtcreator/welcomescreen/widgets/dummydata/tabsModel.qml index e575f6aaca1..c13d74b7428 100644 --- a/share/qtcreator/welcomescreen/widgets/dummydata/tabsModel.qml +++ b/share/qtcreator/welcomescreen/widgets/dummydata/tabsModel.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.1 +import QtQuick 2.1 ListModel { ListElement { diff --git a/src/libs/utils/iwelcomepage.h b/src/libs/utils/iwelcomepage.h index d05e8b95208..2a7db339749 100644 --- a/src/libs/utils/iwelcomepage.h +++ b/src/libs/utils/iwelcomepage.h @@ -35,7 +35,7 @@ #include <QObject> QT_FORWARD_DECLARE_CLASS(QUrl) -QT_FORWARD_DECLARE_CLASS(QDeclarativeEngine) +QT_FORWARD_DECLARE_CLASS(QQmlEngine) namespace Utils { @@ -63,7 +63,7 @@ public: virtual QUrl pageLocation() const = 0; virtual QString title() const = 0; virtual int priority() const { return 0; } - virtual void facilitateQml(QDeclarativeEngine *) {} + virtual void facilitateQml(QQmlEngine *) {} virtual bool hasSearchBar() const { return false; } virtual Id id() const = 0; }; diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro index 592481aac10..51cd8994d1d 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -4,7 +4,6 @@ TEMPLATE = subdirs SUBDIRS = \ coreplugin \ - welcome \ find \ texteditor \ cppeditor \ @@ -70,7 +69,8 @@ contains(QT_CONFIG, declarative)|!isEmpty(QT.declarative.name) { greaterThan(QT_MAJOR_VERSION, 4) { SUBDIRS += \ - qmldesigner + qmldesigner \ + welcome } else { include(../private_headers.pri) exists($${QT_PRIVATE_HEADERS}/QtDeclarative/private/qdeclarativecontext_p.h) { diff --git a/src/plugins/plugins.qbs b/src/plugins/plugins.qbs index 0f0d0441226..7c49ff9e2f3 100644 --- a/src/plugins/plugins.qbs +++ b/src/plugins/plugins.qbs @@ -2,6 +2,7 @@ import qbs Project { name: "Plugins" + references: [ "analyzerbase/analyzerbase.qbs", "android/android.qbs", @@ -56,6 +57,11 @@ Project { "updateinfo/updateinfo.qbs", "valgrind/valgrind.qbs", "vcsbase/vcsbase.qbs", - "welcome/welcome.qbs" ] + + Group { + condition: qtcore.versionMajor >= 5 + references: [ "welcome/welcome.qbs" ] + } + } diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 7f1644ad4c9..93a7950966f 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -70,7 +70,6 @@ #include "projectnodes.h" #include "sessiondialog.h" #include "projectexplorersettingspage.h" -#include "projectwelcomepage.h" #include "corelistenercheckingforrunningbuild.h" #include "buildconfiguration.h" #include "miniprojecttargetselector.h" @@ -90,6 +89,10 @@ # include "wincetoolchain.h" #endif +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#include "projectwelcomepage.h" +#endif + #include <extensionsystem/pluginspec.h> #include <coreplugin/icore.h> #include <coreplugin/editormanager/ieditor.h> @@ -228,8 +231,11 @@ struct ProjectExplorerPluginPrivate { QString m_projectFilterString; Internal::MiniProjectTargetSelector * m_targetSelector; Internal::ProjectExplorerSettings m_projectExplorerSettings; - Internal::ProjectWelcomePage *m_welcomePage; + +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) + Internal::ProjectWelcomePage *m_welcomePage; +#endif IMode *m_projectsMode; TaskHub *m_taskHub; @@ -284,8 +290,10 @@ ProjectExplorerPlugin::ProjectExplorerPlugin() ProjectExplorerPlugin::~ProjectExplorerPlugin() { +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) removeObject(d->m_welcomePage); delete d->m_welcomePage; +#endif removeObject(this); // Force sequence of deletion: delete d->m_kitManager; // remove all the profile informations @@ -348,9 +356,11 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er connect(ICore::instance(), SIGNAL(newItemsDialogRequested()), this, SLOT(loadCustomWizards())); +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) d->m_welcomePage = new ProjectWelcomePage; connect(d->m_welcomePage, SIGNAL(manageSessions()), this, SLOT(showSessionManager())); addObject(d->m_welcomePage); +#endif connect(DocumentManager::instance(), SIGNAL(currentFileChanged(QString)), this, SLOT(setCurrentFile(QString))); @@ -1085,7 +1095,9 @@ void ProjectExplorerPlugin::closeAllProjects() SessionManager::closeAllProjects(); updateActions(); +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) ModeManager::activateMode(Core::Constants::MODE_WELCOME); +#endif } void ProjectExplorerPlugin::extensionsInitialized() @@ -1212,9 +1224,11 @@ void ProjectExplorerPlugin::showSessionManager() updateActions(); +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) IMode *welcomeMode = ModeManager::mode(Core::Constants::MODE_WELCOME); if (ModeManager::currentMode() == welcomeMode) updateWelcomePage(); +#endif } void ProjectExplorerPlugin::setStartupProject(Project *project) @@ -1443,7 +1457,9 @@ void ProjectExplorerPlugin::setCurrentNode(Node *node) void ProjectExplorerPlugin::updateWelcomePage() { +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) d->m_welcomePage->reloadWelcomeScreenData(); +#endif } void ProjectExplorerPlugin::currentModeChanged(IMode *mode, IMode *oldMode) @@ -1564,9 +1580,10 @@ void ProjectExplorerPlugin::restoreSession() connect(ModeManager::instance(), SIGNAL(currentModeChanged(Core::IMode*,Core::IMode*)), SLOT(currentModeChanged(Core::IMode*,Core::IMode*))); +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) connect(d->m_welcomePage, SIGNAL(requestSession(QString)), this, SLOT(loadSession(QString))); connect(d->m_welcomePage, SIGNAL(requestProject(QString)), this, SLOT(openProjectWelcomePage(QString))); - +#endif d->m_arguments = arguments; QTimer::singleShot(0, this, SLOT(restoreSession2())); updateActions(); diff --git a/src/plugins/projectexplorer/projectexplorer.pro b/src/plugins/projectexplorer/projectexplorer.pro index 324d8c2d2ec..0c0eae361d3 100644 --- a/src/plugins/projectexplorer/projectexplorer.pro +++ b/src/plugins/projectexplorer/projectexplorer.pro @@ -1,4 +1,4 @@ -QT += xml script declarative +QT += xml script include(../../qtcreatorplugin.pri) include(customwizard/customwizard.pri) @@ -84,7 +84,6 @@ HEADERS += projectexplorer.h \ cesdkhandler.h \ gccparser.h \ projectexplorersettingspage.h \ - projectwelcomepage.h \ baseprojectwizarddialog.h \ miniprojecttargetselector.h \ targetselector.h \ @@ -214,7 +213,6 @@ SOURCES += projectexplorer.cpp \ cesdkhandler.cpp \ gccparser.cpp \ projectexplorersettingspage.cpp \ - projectwelcomepage.cpp \ corelistenercheckingforrunningbuild.cpp \ baseprojectwizarddialog.cpp \ miniprojecttargetselector.cpp \ @@ -302,6 +300,11 @@ equals(TEST, 1) { outputparser_test.h } +greaterThan(QT_MAJOR_VERSION, 4) { + QT += quick + HEADERS += projectwelcomepage.h + SOURCES += projectwelcomepage.cpp +} macx:LIBS += -framework Carbon RESOURCES += projectexplorer.qrc diff --git a/src/plugins/projectexplorer/projectexplorer.qbs b/src/plugins/projectexplorer/projectexplorer.qbs index 449e3975c0c..3faba5ea1aa 100644 --- a/src/plugins/projectexplorer/projectexplorer.qbs +++ b/src/plugins/projectexplorer/projectexplorer.qbs @@ -5,7 +5,7 @@ import "../QtcPlugin.qbs" as QtcPlugin QtcPlugin { name: "ProjectExplorer" - Depends { name: "Qt"; submodules: ["widgets", "xml", "network", "script", "declarative"] } + Depends { name: "Qt"; submodules: ["widgets", "xml", "network", "script", "quick"] } Depends { name: "Core" } Depends { name: "Locator" } Depends { name: "Find" } @@ -109,7 +109,6 @@ QtcPlugin { "projectmodels.cpp", "projectmodels.h", "projectnodes.cpp", "projectnodes.h", "projecttreewidget.cpp", "projecttreewidget.h", - "projectwelcomepage.cpp", "projectwelcomepage.h", "projectwindow.cpp", "projectwindow.h", "projectwizardpage.cpp", "projectwizardpage.h", "projectwizardpage.ui", "removetaskhandler.cpp", "removetaskhandler.h", @@ -136,6 +135,15 @@ QtcPlugin { "toolchainoptionspage.cpp", "toolchainoptionspage.h", "vcsannotatetaskhandler.cpp", "vcsannotatetaskhandler.h", ] + + Group { + condition: qtcore.versionMajor >= 5 + references: [ + "projectwelcomepage.cpp", + "projectwelcomepage.h" + ] + } + } Group { diff --git a/src/plugins/projectexplorer/projectwelcomepage.cpp b/src/plugins/projectexplorer/projectwelcomepage.cpp index 9578c88df92..db71fccfa86 100644 --- a/src/plugins/projectexplorer/projectwelcomepage.cpp +++ b/src/plugins/projectexplorer/projectwelcomepage.cpp @@ -31,8 +31,8 @@ #include <utils/stringutils.h> -#include <QDeclarativeEngine> -#include <QDeclarativeContext> +#include <QQmlContext> +#include <QQmlEngine> #include <QFileInfo> #include <QDir> @@ -212,12 +212,12 @@ ProjectWelcomePage::ProjectWelcomePage() : { } -void ProjectWelcomePage::facilitateQml(QDeclarativeEngine *engine) +void ProjectWelcomePage::facilitateQml(QQmlEngine *engine) { m_sessionModel = new SessionModel(this); m_projectModel = new ProjectModel(ProjectExplorerPlugin::instance(), this); - QDeclarativeContext *ctx = engine->rootContext(); + QQmlContext *ctx = engine->rootContext(); ctx->setContextProperty(QLatin1String("sessionList"), m_sessionModel); ctx->setContextProperty(QLatin1String("projectList"), m_projectModel); ctx->setContextProperty(QLatin1String("projectWelcomePage"), this); diff --git a/src/plugins/projectexplorer/projectwelcomepage.h b/src/plugins/projectexplorer/projectwelcomepage.h index 6ce2f856e35..96a6f6c0278 100644 --- a/src/plugins/projectexplorer/projectwelcomepage.h +++ b/src/plugins/projectexplorer/projectwelcomepage.h @@ -35,7 +35,7 @@ #include <utils/iwelcomepage.h> QT_BEGIN_NAMESPACE -class QDeclarativeEngine; +class QQmlEngine; QT_END_NAMESPACE namespace ProjectExplorer { @@ -87,7 +87,7 @@ class ProjectWelcomePage : public Utils::IWelcomePage public: ProjectWelcomePage(); - void facilitateQml(QDeclarativeEngine *engine); + void facilitateQml(QQmlEngine *engine); QUrl pageLocation() const; QWidget *page() { return 0; } QString title() const { return tr("Develop"); } diff --git a/src/plugins/qtsupport/gettingstartedwelcomepage.cpp b/src/plugins/qtsupport/gettingstartedwelcomepage.cpp index d6cbedb306e..71286c838ea 100644 --- a/src/plugins/qtsupport/gettingstartedwelcomepage.cpp +++ b/src/plugins/qtsupport/gettingstartedwelcomepage.cpp @@ -61,9 +61,9 @@ #include <QPushButton> #include <QMessageBox> #include <QApplication> -#include <QDeclarativeImageProvider> -#include <QDeclarativeEngine> -#include <QDeclarativeContext> +#include <QQuickImageProvider> +#include <QQmlEngine> +#include <QQmlContext> #include <QDesktopServices> using namespace Utils; @@ -170,11 +170,11 @@ public: bool m_shutdown; }; -class HelpImageProvider : public QDeclarativeImageProvider +class HelpImageProvider : public QQuickImageProvider { public: HelpImageProvider() - : QDeclarativeImageProvider(QDeclarativeImageProvider::Image) + : QQuickImageProvider(QQuickImageProvider::Image) { } @@ -231,7 +231,7 @@ int GettingStartedWelcomePage::priority() const return 4; } -void GettingStartedWelcomePage::facilitateQml(QDeclarativeEngine *engine) +void GettingStartedWelcomePage::facilitateQml(QQmlEngine *engine) { m_engine = engine; } @@ -288,7 +288,7 @@ QUrl ExamplesWelcomePage::pageLocation() const return QUrl::fromLocalFile(resourcePath + QLatin1String("/welcomescreen/tutorials.qml")); } -void ExamplesWelcomePage::facilitateQml(QDeclarativeEngine *engine) +void ExamplesWelcomePage::facilitateQml(QQmlEngine *engine) { m_engine = engine; m_engine->addImageProvider(QLatin1String("helpimage"), new HelpImageProvider); @@ -299,7 +299,7 @@ void ExamplesWelcomePage::facilitateQml(QDeclarativeEngine *engine) proxy->sort(0); proxy->setFilterCaseSensitivity(Qt::CaseInsensitive); - QDeclarativeContext *rootContenxt = m_engine->rootContext(); + QQmlContext *rootContenxt = m_engine->rootContext(); if (m_showExamples) { proxy->setShowTutorialsOnly(false); rootContenxt->setContextProperty(QLatin1String("examplesModel"), proxy); diff --git a/src/plugins/qtsupport/gettingstartedwelcomepage.h b/src/plugins/qtsupport/gettingstartedwelcomepage.h index b35a4cd6d54..515cac9b5d0 100644 --- a/src/plugins/qtsupport/gettingstartedwelcomepage.h +++ b/src/plugins/qtsupport/gettingstartedwelcomepage.h @@ -35,7 +35,7 @@ #include <QStringList> QT_BEGIN_NAMESPACE -class QDeclarativeEngine; +class QQmlEngine; class QFileInfo; QT_END_NAMESPACE @@ -54,11 +54,11 @@ public: QUrl pageLocation() const; QString title() const; int priority() const; - void facilitateQml(QDeclarativeEngine *); + void facilitateQml(QQmlEngine *); Id id() const; private: - QDeclarativeEngine *m_engine; + QQmlEngine *m_engine; }; @@ -74,7 +74,7 @@ public: QString title() const; int priority() const; bool hasSearchBar() const; - void facilitateQml(QDeclarativeEngine *); + void facilitateQml(QQmlEngine *); Id id() const; Q_INVOKABLE QStringList tagList() const; Q_INVOKABLE void openUrl(const QUrl &url); @@ -92,7 +92,7 @@ public slots: private: ExamplesListModel *examplesModel() const; QString copyToAlternativeLocation(const QFileInfo &fileInfo, QStringList &filesToOpen, const QStringList &dependencies); - QDeclarativeEngine *m_engine; + QQmlEngine *m_engine; bool m_showExamples; }; diff --git a/src/plugins/qtsupport/qtsupport.pro b/src/plugins/qtsupport/qtsupport.pro index d98993eddde..af48b82a6f2 100644 --- a/src/plugins/qtsupport/qtsupport.pro +++ b/src/plugins/qtsupport/qtsupport.pro @@ -1,5 +1,5 @@ DEFINES += QTSUPPORT_LIBRARY -QT += network declarative +QT += network include(../../qtcreatorplugin.pri) @@ -27,7 +27,6 @@ HEADERS += \ qtsupportconstants.h \ profilereader.h \ qtparser.h \ - gettingstartedwelcomepage.h \ exampleslistmodel.h \ screenshotcropper.h \ qtconfigwidget.h \ @@ -52,11 +51,16 @@ SOURCES += \ debugginghelperbuildtask.cpp \ profilereader.cpp \ qtparser.cpp \ - gettingstartedwelcomepage.cpp \ exampleslistmodel.cpp \ screenshotcropper.cpp \ qtconfigwidget.cpp +greaterThan(QT_MAJOR_VERSION, 4) { + QT += quick + HEADERS += gettingstartedwelcomepage.h + SOURCES += gettingstartedwelcomepage.cpp +} + FORMS += \ showbuildlog.ui \ qtversioninfo.ui \ diff --git a/src/plugins/qtsupport/qtsupport.qbs b/src/plugins/qtsupport/qtsupport.qbs index e09ef1d726b..74924118c0e 100644 --- a/src/plugins/qtsupport/qtsupport.qbs +++ b/src/plugins/qtsupport/qtsupport.qbs @@ -5,7 +5,7 @@ import "../QtcPlugin.qbs" as QtcPlugin QtcPlugin { name: "QtSupport" - Depends { name: "Qt"; submodules: ["widgets", "declarative"] } + Depends { name: "Qt"; submodules: ["widgets", "quick"] } Depends { name: "Core" } Depends { name: "ProjectExplorer" } Depends { name: "TextEditor" } @@ -70,8 +70,6 @@ QtcPlugin { "debugginghelperbuildtask.h", "exampleslistmodel.cpp", "exampleslistmodel.h", - "gettingstartedwelcomepage.cpp", - "gettingstartedwelcomepage.h", "profilereader.cpp", "profilereader.h", "qmldebugginglibrary.cpp", @@ -112,6 +110,15 @@ QtcPlugin { "images/qt_qrc.png", ] + Group { + condition: qtcore.versionMajor >= 5 + files: [ + "gettingstartedwelcomepage.cpp", + "gettingstartedwelcomepage.h" + ] + } + + Export { Depends { name: "cpp" } cpp.includePaths: "../../shared" diff --git a/src/plugins/qtsupport/qtsupportplugin.cpp b/src/plugins/qtsupport/qtsupportplugin.cpp index ac2bccae381..ada53bc6144 100644 --- a/src/plugins/qtsupport/qtsupportplugin.cpp +++ b/src/plugins/qtsupport/qtsupportplugin.cpp @@ -38,8 +38,6 @@ #include "profilereader.h" -#include "gettingstartedwelcomepage.h" - #include <coreplugin/icore.h> #include <coreplugin/mimedatabase.h> #include <coreplugin/variablemanager.h> @@ -47,6 +45,10 @@ #include <projectexplorer/projectexplorer.h> #include <projectexplorer/target.h> +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#include "gettingstartedwelcomepage.h" +#endif + #include <QtPlugin> static const char kHostBins[] = "CurrentProject:QT_HOST_BINS"; @@ -75,18 +77,16 @@ bool QtSupportPlugin::initialize(const QStringList &arguments, QString *errorMes addAutoReleasedObject(new QtOptionsPage); +#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) ExamplesWelcomePage *welcomePage; welcomePage = new ExamplesWelcomePage; addAutoReleasedObject(welcomePage); - - welcomePage = new ExamplesWelcomePage; welcomePage->setShowExamples(true); - addAutoReleasedObject(welcomePage); GettingStartedWelcomePage *gettingStartedWelcomePage = new GettingStartedWelcomePage; addAutoReleasedObject(gettingStartedWelcomePage); - addAutoReleasedObject(new CustomExecutableRunConfigurationFactory); +#endif ProjectExplorer::KitManager::registerKitInformation(new QtKitInformation); diff --git a/src/plugins/welcome/welcome.pro b/src/plugins/welcome/welcome.pro index 9920c75f683..b201120c74a 100644 --- a/src/plugins/welcome/welcome.pro +++ b/src/plugins/welcome/welcome.pro @@ -1,4 +1,4 @@ -QT += network declarative +QT += network quick include(../../qtcreatorplugin.pri) diff --git a/src/plugins/welcome/welcome.qbs b/src/plugins/welcome/welcome.qbs index 20b0400f548..93ca3f4e61b 100644 --- a/src/plugins/welcome/welcome.qbs +++ b/src/plugins/welcome/welcome.qbs @@ -5,7 +5,7 @@ import "../QtcPlugin.qbs" as QtcPlugin QtcPlugin { name: "Welcome" - Depends { name: "Qt"; submodules: ["widgets", "network", "declarative"] } + Depends { name: "Qt"; submodules: ["widgets", "network", "quick"] } Depends { name: "Core" } Depends { name: "ProjectExplorer" } diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp index befdf9d5dc8..3ade9ca0531 100644 --- a/src/plugins/welcome/welcomeplugin.cpp +++ b/src/plugins/welcome/welcomeplugin.cpp @@ -61,10 +61,10 @@ #include <QUrl> #include <QtPlugin> -#include <QDeclarativeView> -#include <QDeclarativeContext> -#include <QDeclarativeEngine> -#include <QDeclarativeNetworkAccessManagerFactory> +#include <QtQuick/QQuickView> +#include <QtQml/QQmlContext> +#include <QtQml/QQmlEngine> +#include <QtQml/QQmlNetworkAccessManagerFactory> enum { debug = 0 }; @@ -76,10 +76,10 @@ static const char currentPageSettingsKeyC[] = "WelcomeTab"; namespace Welcome { namespace Internal { -class NetworkAccessManagerFactory : public QDeclarativeNetworkAccessManagerFactory +class NetworkAccessManagerFactory : public QQmlNetworkAccessManagerFactory { public: - NetworkAccessManagerFactory(): QDeclarativeNetworkAccessManagerFactory() {} + NetworkAccessManagerFactory(): QQmlNetworkAccessManagerFactory() {} QNetworkAccessManager* create(QObject *parent) { return new Utils::NetworkAccessManager(parent); } }; @@ -103,7 +103,7 @@ public: Q_SCRIPTABLE QString platform() const; - bool eventFilter(QObject *, QEvent *); +// bool eventFilter(QObject *, QEvent *); public slots: void setActivePlugin(int pos) @@ -121,10 +121,10 @@ private slots: void welcomePluginAdded(QObject*); private: - void facilitateQml(QDeclarativeEngine *engine); + void facilitateQml(QQmlEngine *engine); QWidget *m_modeWidget; - QDeclarativeView *m_welcomePage; + QQuickView *m_welcomePage; QList<QObject*> m_pluginList; int m_activePlugin; NetworkAccessManagerFactory *m_networkAccessManagerFactory; @@ -146,40 +146,46 @@ WelcomeMode::WelcomeMode() : setContextHelpId(QLatin1String("Qt Creator Manual")); setContext(Core::Context(Core::Constants::C_WELCOME_MODE)); - m_welcomePage = new QDeclarativeView; - m_welcomePage->setResizeMode(QDeclarativeView::SizeRootObjectToView); - // filter to forward dragEnter events - m_welcomePage->installEventFilter(this); - m_welcomePage->viewport()->installEventFilter(this); + m_welcomePage = new QQuickView; + m_welcomePage->setResizeMode(QQuickView::SizeRootObjectToView); + +// filter to forward dragEnter events +// m_welcomePage->installEventFilter(this); +// m_welcomePage->viewport()->installEventFilter(this); m_modeWidget = new QWidget; QVBoxLayout *layout = new QVBoxLayout; layout->setMargin(0); layout->setSpacing(0); - m_modeWidget->setLayout(layout); Utils::StyledBar* styledBar = new Utils::StyledBar(m_modeWidget); layout->addWidget(styledBar); - QScrollArea *scrollArea = new QScrollArea(m_modeWidget); - scrollArea->setFrameShape(QFrame::NoFrame); - layout->addWidget(scrollArea); - scrollArea->setWidget(m_welcomePage); - scrollArea->setWidgetResizable(true); + + // QScrollArea *scrollArea = new QScrollArea(m_modeWidget); + // scrollArea->setFrameShape(QFrame::NoFrame); + // layout->addWidget(scrollArea); + // scrollArea->setWidget(m_welcomePage); + // scrollArea->setWidgetResizable(true); + m_welcomePage->setMinimumWidth(880); m_welcomePage->setMinimumHeight(548); + QWidget *container = QWidget::createWindowContainer(m_welcomePage, m_modeWidget); + layout->addWidget(container); + m_modeWidget->setLayout(layout); + connect(PluginManager::instance(), SIGNAL(objectAdded(QObject*)), SLOT(welcomePluginAdded(QObject*))); setWidget(m_modeWidget); } -bool WelcomeMode::eventFilter(QObject *, QEvent *e) -{ - if (e->type() == QEvent::DragEnter) { - e->ignore(); - return true; - } - return false; -} +//bool WelcomeMode::eventFilter(QObject *, QEvent *e) +//{ +// if (e->type() == QEvent::DragEnter) { +// e->ignore(); +// return true; +// } +// return false; +//} WelcomeMode::~WelcomeMode() { @@ -194,7 +200,7 @@ bool sortFunction(Utils::IWelcomePage * a, Utils::IWelcomePage *b) return a->priority() < b->priority(); } -void WelcomeMode::facilitateQml(QDeclarativeEngine * /*engine*/) +void WelcomeMode::facilitateQml(QQmlEngine * /*engine*/) { } @@ -227,7 +233,7 @@ void WelcomeMode::initPlugins() if (activePlugin() > 1) setActivePlugin(1); - QDeclarativeContext *ctx = m_welcomePage->rootContext(); + QQmlContext *ctx = m_welcomePage->rootContext(); ctx->setContextProperty(QLatin1String("welcomeMode"), this); QList<Utils::IWelcomePage*> duplicatePlugins = PluginManager::getObjects<Utils::IWelcomePage>(); @@ -255,7 +261,7 @@ void WelcomeMode::initPlugins() } - QDeclarativeEngine *engine = m_welcomePage->engine(); + QQmlEngine *engine = m_welcomePage->engine(); QStringList importPathList = engine->importPathList(); importPathList << resourcePath() + QLatin1String("/welcomescreen"); engine->setImportPathList(importPathList); @@ -322,7 +328,7 @@ void WelcomeMode::welcomePluginAdded(QObject *obj) } m_pluginList.insert(insertPos, plugin); // update model through reset - QDeclarativeContext *ctx = m_welcomePage->rootContext(); + QQmlContext *ctx = m_welcomePage->rootContext(); ctx->setContextProperty(QLatin1String("pagesModel"), QVariant::fromValue(m_pluginList)); } } diff --git a/src/plugins/welcome/welcomeplugin.h b/src/plugins/welcome/welcomeplugin.h index c320d1f7115..c69eff7f385 100644 --- a/src/plugins/welcome/welcomeplugin.h +++ b/src/plugins/welcome/welcomeplugin.h @@ -33,7 +33,7 @@ #include <extensionsystem/iplugin.h> QT_BEGIN_NAMESPACE -class QDeclarativeEngine; +class QQmlEngine; QT_END_NAMESPACE namespace Welcome { -- GitLab