From 79c0a29deae622239cd0d57dfbe8c10d4e5be68b Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 9 Sep 2014 10:04:23 +0200 Subject: QmlDesigner: Adding a manual test for plugin integration Because we had a couple of regressions in this area, I add this project for manual testing. In this project we have a qmlproject with a plugin that contains a .metainfo file and a custom property sheet. We define two items in the item library: MyComponent and MyComponent2. While MyComponent has a custom property sheet the property sheet for MyComponent2 is auto generated. Change-Id: I8d5ade43f648354175587c0a3e989bad87149298 Reviewed-by: Tim Jenssen --- .../plugins/imports/MyPlugin/MyComponent.qml | 42 +++++++++++ .../plugins/imports/MyPlugin/MyComponent2.qml | 47 ++++++++++++ .../MyPlugin/designer/MyComponentSpecifics.qml | 88 ++++++++++++++++++++++ .../imports/MyPlugin/designer/MyPlugin.metainfo | 44 +++++++++++ .../testprojects/plugins/imports/MyPlugin/qmldir | 2 + tests/manual/qml/testprojects/plugins/plugins.qml | 44 +++++++++++ .../qml/testprojects/plugins/plugins.qmlproject | 20 +++++ 7 files changed, 287 insertions(+) create mode 100644 tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent.qml create mode 100644 tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent2.qml create mode 100644 tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyComponentSpecifics.qml create mode 100644 tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyPlugin.metainfo create mode 100644 tests/manual/qml/testprojects/plugins/imports/MyPlugin/qmldir create mode 100644 tests/manual/qml/testprojects/plugins/plugins.qml create mode 100644 tests/manual/qml/testprojects/plugins/plugins.qmlproject diff --git a/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent.qml b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent.qml new file mode 100644 index 0000000000..8f5b25fb6f --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent.qml @@ -0,0 +1,42 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import QtQuick 2.0 + +Rectangle { + width: 60 + height: 60 + color: "green" + property alias text: text.text + + Text { + id: text + anchors.centerIn: parent + } +} diff --git a/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent2.qml b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent2.qml new file mode 100644 index 0000000000..7a3bddeadc --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/MyComponent2.qml @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import QtQuick 2.0 + +Item { + property alias text: text.text + property alias color: rect.color + property alias radius: rect.radius + + Rectangle { + id: rect + anchors.fill: parent + color: "green" + + Text { + id: text + anchors.centerIn: parent + } + } +} diff --git a/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyComponentSpecifics.qml b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyComponentSpecifics.qml new file mode 100644 index 0000000000..d7aadd4d56 --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyComponentSpecifics.qml @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import QtQuick 2.0 +import HelperWidgets 2.0 +import QtQuick.Layouts 1.0 + +Column { + anchors.left: parent.left + anchors.right: parent.right + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Color") + + ColorEditor { + caption: qsTr("Color") + backendValue: backendValues.color + supportGradient: true + } + + + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: "Rectangle" + + SectionLayout { + rows: 2 + + Label { + text: qsTr("Text") + } + + SecondColumnLayout { + LineEdit { + backendValue: backendValues.text + Layout.fillWidth: true + } + } + + Label { + text: qsTr("Radius") + } + SecondColumnLayout { + SpinBox { + backendValue: backendValues.radius + hasSlider: true + Layout.preferredWidth: 80 + minimumValue: 0 + maximumValue: Math.min(backendValues.height.value, backendValues.width.value) / 2 + } + ExpandingSpacer { + + } + } + } + } +} diff --git a/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyPlugin.metainfo b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyPlugin.metainfo new file mode 100644 index 0000000000..52f783ff55 --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/designer/MyPlugin.metainfo @@ -0,0 +1,44 @@ +MetaInfo { + Type { + name: "MyPlugin.MyComponent" + icon: ":/qtquickplugin/images/item-icon16.png" + + ItemLibraryEntry { + name: "My Component" + category: "My Test Plugin" + libraryIcon: ":/qtquickplugin/images/item-icon.png" + version: "1.0" + requiredImport: "MyPlugin" + + Property { + name: "text" + type: "binding" + value: "qsTr(\"This is text\")" + } + } + } + + Type { + name: "MyPlugin.MyComponent2" + icon: ":/qtquickplugin/images/item-icon16.png" + + ItemLibraryEntry { + name: "My Component 2" + category: "My Test Plugin" + libraryIcon: ":/qtquickplugin/images/item-icon.png" + version: "1.0" + requiredImport: "MyPlugin" + + Property { + name: "text" + type: "binding" + value: "qsTr(\"This is text\")" + } + + Property { name: "width"; type: "int"; value: 200; } + Property { name: "height"; type: "int"; value: 200; } + Property { name: "color"; type: "QColor"; value: "red"; } + } + } + +} diff --git a/tests/manual/qml/testprojects/plugins/imports/MyPlugin/qmldir b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/qmldir new file mode 100644 index 0000000000..660f6d416b --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/imports/MyPlugin/qmldir @@ -0,0 +1,2 @@ +MyComponent 1.0 MyComponent.qml +MyComponent2 1.0 MyComponent2.qml diff --git a/tests/manual/qml/testprojects/plugins/plugins.qml b/tests/manual/qml/testprojects/plugins/plugins.qml new file mode 100644 index 0000000000..dd25598fe1 --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/plugins.qml @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import QtQuick 2.3 +import QtQuick.Controls 1.2 +import QtQuick.Window 2.2 +import MyPlugin 1.0 + +ApplicationWindow { + title: qsTr("Hello World") + width: 640 + height: 480 + + MyComponent { + text: qsTr("Some Text") + + } +} diff --git a/tests/manual/qml/testprojects/plugins/plugins.qmlproject b/tests/manual/qml/testprojects/plugins/plugins.qmlproject new file mode 100644 index 0000000000..0d3f618138 --- /dev/null +++ b/tests/manual/qml/testprojects/plugins/plugins.qmlproject @@ -0,0 +1,20 @@ +/* File generated by Qt Creator */ + +import QmlProject 1.1 + +Project { + mainFile: "plugins.qml" + + /* 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: [ "imports" ] +} -- cgit v1.2.1