diff options
Diffstat (limited to 'src/plugins/qmldesigner')
7 files changed, 266 insertions, 62 deletions
diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/OrientationCombobox.qml b/src/plugins/qmldesigner/componentsplugin/Controls/OrientationCombobox.qml new file mode 100644 index 0000000000..9428b090bf --- /dev/null +++ b/src/plugins/qmldesigner/componentsplugin/Controls/OrientationCombobox.qml @@ -0,0 +1,39 @@ +/**************************************************************************** +** +** 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.1 +import HelperWidgets 2.0 +import QtQuick.Layouts 1.0 + +ComboBox { + backendValue: backendValues.orientation + implicitWidth: 180 + model: [ "Horizontal", "Vertical" ] + scope: "Qt" +} diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml b/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml new file mode 100644 index 0000000000..936d0c42e1 --- /dev/null +++ b/src/plugins/qmldesigner/componentsplugin/Controls/SliderSpecifics.qml @@ -0,0 +1,147 @@ +/**************************************************************************** +** +** 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 HelperWidgets 2.0 +import QtQuick 2.1 +import QtQuick.Layouts 1.1 +Section { + caption: "Slider" + SectionLayout { + Label { + text: qsTr("Value") + toolTip: qsTr("Current value of the Slider. The default value is 0.0.") + } + SecondColumnLayout { + SpinBox { + maximumValue: backendValues.maximumValue.value + minimumValue: backendValues.minimumValue.value + decimals: 2 + stepSize: backendValues.stepSize.value + backendValue: backendValues.value + implicitWidth: 180 + } + ExpandingSpacer {} + } + Label { + text: qsTr("Maximum Value") + toolTip: qsTr("This property holds the maximum value of the Slider The default value is 1.0.") + } + SecondColumnLayout { + SpinBox { + maximumValue: 9999999 + minimumValue: -9999999 + decimals: 2 + backendValue: backendValues.maximumValue + implicitWidth: 180 + } + ExpandingSpacer { + + } + } + Label { + text: qsTr("Minimum Value") + toolTip: qsTr("This property holds the minimum value of the Slider. The default value is 0.0.") + } + SecondColumnLayout { + SpinBox { + maximumValue: 9999999 + minimumValue: -9999999 + decimals: 2 + backendValue: backendValues.minimumValue + implicitWidth: 180 + } + ExpandingSpacer { + + } + } + Label { + text: qsTr("Orientation") + toolTip: qsTr("This property holds the layout orientation of the Slider.") + } + SecondColumnLayout { + OrientationCombobox { + } + ExpandingSpacer { + + } + } + Label { + text: qsTr("Step Size") + toolTip: qsTr("This property indicates the Slider step size.") + } + SecondColumnLayout { + SpinBox { + maximumValue: 9999999 + minimumValue: -9999999 + decimals: 2 + backendValue: backendValues.stepSize + implicitWidth: 180 + } + ExpandingSpacer {} + } + + Label { + text: qsTr("Active Focus On Press") + toolTip: qsTr("This property indicates whether the Slider should receive active focus when pressed.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.activeFocusOnPress.valueToString + backendValue: backendValues.activeFocusOnPress + implicitWidth: 180 + } + ExpandingSpacer {} + } + Label { + text: qsTr("Tickmarks Enabled") + toolTip: qsTr("TIndicates whether the Slider should display tickmarks at step intervals.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.tickmarksEnabled.valueToString + backendValue: backendValues.tickmarksEnabled + implicitWidth: 180 + } + ExpandingSpacer {} + } + Label { + text: qsTr("Update Value While Dragging") + toolTip: qsTr("Current value should be updated while the user is moving the Slider handle, or only when the button has been released.") + } + + SecondColumnLayout { + CheckBox { + text: backendValues.updateValueWhileDragging.valueToString + backendValue: backendValues.updateValueWhileDragging + implicitWidth: 180 + } + } + } +} diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/SplitViewSpecifics.qml b/src/plugins/qmldesigner/componentsplugin/Controls/SplitViewSpecifics.qml new file mode 100644 index 0000000000..a21372b159 --- /dev/null +++ b/src/plugins/qmldesigner/componentsplugin/Controls/SplitViewSpecifics.qml @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** 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.1 +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("Split View") + + SectionLayout { + Label { + text: qsTr("Orientation") + toolTip: qsTr("This property holds the orientation of the SplitView.") + } + + SecondColumnLayout { + OrientationCombobox { + } + + ExpandingSpacer { + + } + } + + } + } +} diff --git a/src/plugins/qmldesigner/componentsplugin/components.metainfo b/src/plugins/qmldesigner/componentsplugin/components.metainfo index 052fe68da3..701b453c39 100644 --- a/src/plugins/qmldesigner/componentsplugin/components.metainfo +++ b/src/plugins/qmldesigner/componentsplugin/components.metainfo @@ -171,7 +171,7 @@ MetaInfo { libraryIcon: ":/componentsplugin/images/sliderh.png" version: "1.0" requiredImport: "QtQuick.Controls" - Property { name: "orientation"; type: "int"; value: "0"; } + Property { name: "orientation"; type: "Enumeration"; value: "Qt.Vertical"; } } } diff --git a/src/plugins/qmldesigner/componentsplugin/componentsplugin.qrc b/src/plugins/qmldesigner/componentsplugin/componentsplugin.qrc index 37a76389a1..9183872a84 100644 --- a/src/plugins/qmldesigner/componentsplugin/componentsplugin.qrc +++ b/src/plugins/qmldesigner/componentsplugin/componentsplugin.qrc @@ -46,5 +46,8 @@ <file>Controls/TabViewSpecifics.qml</file> <file>Controls/TabPositionComboBox.qml</file> <file>Controls/CurrentIndexComboBox.qml</file> + <file>Controls/SplitViewSpecifics.qml</file> + <file>Controls/SliderSpecifics.qml</file> + <file>Controls/OrientationCombobox.qml</file> </qresource> </RCC> diff --git a/src/plugins/qmldesigner/designercore/include/propertyparser.h b/src/plugins/qmldesigner/designercore/include/propertyparser.h index 58940ae12e..d8a1c6b3b1 100644 --- a/src/plugins/qmldesigner/designercore/include/propertyparser.h +++ b/src/plugins/qmldesigner/designercore/include/propertyparser.h @@ -41,7 +41,6 @@ namespace PropertyParser { QVariant read(const QString &typeStr, const QString &str, const MetaInfo &metaInfo); QVariant read(const QString &typeStr, const QString &str); QVariant read(int variantType, const QString &str); -QString write(const QVariant &variant, const MetaInfo &metaInfo); QVariant variantFromString(const QString &s); } // namespace PropertyParser diff --git a/src/plugins/qmldesigner/designercore/model/propertyparser.cpp b/src/plugins/qmldesigner/designercore/model/propertyparser.cpp index 9f1aee3769..e74fe98ecd 100644 --- a/src/plugins/qmldesigner/designercore/model/propertyparser.cpp +++ b/src/plugins/qmldesigner/designercore/model/propertyparser.cpp @@ -28,6 +28,7 @@ ****************************************************************************/ #include "propertyparser.h" +#include "enumeration.h" #include <modelnode.h> #include <metainfo.h> @@ -178,6 +179,15 @@ QVector3D vector3DFromString(const QString &s, bool *ok) return QVector3D(xCoord, yCoord, zCoord); } +QmlDesigner::Enumeration enumerationFromString(const QString &string, bool *ok) +{ + QmlDesigner::Enumeration tEnumeration(string); + if (ok) + *ok = !tEnumeration.scope().isEmpty() && !tEnumeration.name().isEmpty(); + return tEnumeration; +} + + } //namespace namespace QmlDesigner { @@ -238,8 +248,12 @@ QVariant read(int variantType, const QString &str) value = vector3DFromString(str, &conversionOk); break; default: { - value = QVariant(str); - value.convert(static_cast<QVariant::Type>(variantType)); + if (variantType == QMetaType::type("Enumeration")) { + value = QVariant::fromValue<Enumeration>(enumerationFromString(str, &conversionOk)); + } else { + value = QVariant(str); + value.convert(static_cast<QVariant::Type>(variantType)); + } break; } } @@ -251,7 +265,6 @@ QVariant read(int variantType, const QString &str) } return value; - return QVariant(); } QVariant variantFromString(const QString &s) @@ -273,63 +286,6 @@ QVariant variantFromString(const QString &s) return QVariant(s); } -QString write(const QVariant &variant) -{ - if (!variant.isValid()) { - qWarning() << "Trying to serialize invalid QVariant"; - return QString(); - } - QString value; - switch (variant.type()) { - case QMetaType::QPoint: - { - QPoint p = variant.toPoint(); - value = QString("%1,%2").arg(QString::number(p.x()), QString::number(p.y())); - break; - } - case QMetaType::QPointF: - { - QPointF p = variant.toPointF(); - value = QString("%1,%2").arg(QString::number(p.x(), 'f'), QString::number(p.y(), 'f')); - break; - } - case QMetaType::QSize: - { - QSize s = variant.toSize(); - value = QString("%1x%2").arg(QString::number(s.width()), QString::number(s.height())); - break; - } - case QMetaType::QSizeF: - { - QSizeF s = variant.toSizeF(); - value = QString("%1x%2").arg(QString::number(s.width(), 'f'), QString::number(s.height(), 'f')); - break; - } - case QMetaType::QRect: - { - QRect r = variant.toRect(); - value = QString("%1,%2,%3x%4").arg(QString::number(r.x()), QString::number(r.y()), - QString::number(r.width()), QString::number(r.height())); - break; - } - case QMetaType::QRectF: - { - QRectF r = variant.toRectF(); - value = QString("%1,%2,%3x%4").arg(QString::number(r.x(), 'f'), QString::number(r.y(), 'f'), - QString::number(r.width(), 'f'), QString::number(r.height(), 'f')); - break; - } - default: - QVariant strVariant = variant; - strVariant.convert(QVariant::String); - if (!strVariant.isValid()) - qWarning() << Q_FUNC_INFO << "cannot serialize type " << QMetaType::typeName(variant.type()); - value = strVariant.toString(); - } - - return value; -} - } // namespace PropertyParser } // namespace Internal } // namespace Designer |