diff options
Diffstat (limited to 'share')
60 files changed, 1190 insertions, 250 deletions
diff --git a/share/qtcreator/android/sdk_definitions.json b/share/qtcreator/android/sdk_definitions.json index 7bce8d6658..6588d81b8a 100644 --- a/share/qtcreator/android/sdk_definitions.json +++ b/share/qtcreator/android/sdk_definitions.json @@ -9,7 +9,7 @@ "mac_sha256": "ecb29358bc0f13d7c2fa0f9290135a5b608e38434aad9bf7067d0252c160853e" }, "sdk_essential_packages": { - "default": ["platform-tools", "platforms;android-29"], + "default": ["platform-tools", "platforms;android-29", "lldb;3.1"], "linux": [], "mac": [], "windows": ["extras;google;usb_driver"] diff --git a/share/qtcreator/debugger/creatortypes.py b/share/qtcreator/debugger/creatortypes.py index 0bb0be0699..07e124f877 100644 --- a/share/qtcreator/debugger/creatortypes.py +++ b/share/qtcreator/debugger/creatortypes.py @@ -23,6 +23,8 @@ # ############################################################################ +from dumper import Children + def typeTarget(type): target = type.target() @@ -242,6 +244,39 @@ def qdump__Utils__Port(d, value): d.putPlainChildren(value) + +def qdump__Utils__Environment(d, value): + qdump__Utils__NameValueDictionary(d, value) + + +def qdump__Utils__NameValueDictionary(d, value): + dptr = d.extractPointer(value["m_values"]) + (ref, n) = d.split('ii', dptr) + d.check(0 <= n and n <= 100 * 1000 * 1000) + d.check(-1 <= ref and ref < 100000) + + d.putItemCount(n) + if d.isExpanded(): + if n > 10000: + n = 10000 + + typeCode = 'ppp@{%s}@{%s}' % ("Utils::DictKey", "QString") + + def helper(node): + (p, left, right, padding1, key, padding2, value) = d.split(typeCode, node) + if left: + for res in helper(left): + yield res + yield (key["name"], value) + if right: + for res in helper(right): + yield res + + with Children(d, n): + for (pair, i) in zip(helper(dptr + 8), range(n)): + d.putPairItem(i, pair, 'key', 'value') + + def qdump__Utf8String(d, value): d.putByteArrayValue(value['byteArray']) d.putPlainChildren(value) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index e3d9196345..f0083be012 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -891,14 +891,20 @@ class Dumper(DumperBase): if (self.startMode_ == DebuggerStartMode.AttachToRemoteServer or self.startMode_ == DebuggerStartMode.AttachToRemoteProcess): - - remote_channel = 'connect://' + self.remoteChannel_ + # For some reason, 127.0.0.1 doesn't work with Android. + remote_channel = ('connect://' + + self.remoteChannel_.replace('127.0.0.1', 'localhost')) connect_options = lldb.SBPlatformConnectOptions(remote_channel) res = self.target.GetPlatform().ConnectRemote(connect_options) - DumperBase.warn("CONNECT: %s %s %s" % (res, + DumperBase.warn("CONNECT: %s %s %s %s" % (res, + remote_channel, self.target.GetPlatform().GetName(), self.target.GetPlatform().IsConnected())) + if not res.Success(): + self.report(self.describeError(error)) + self.reportState('enginerunfailed') + return broadcaster = self.target.GetBroadcaster() @@ -928,7 +934,7 @@ class Dumper(DumperBase): def prepare(self, args): error = lldb.SBError() - if self.attachPid_ > 0: + if self.attachPid_ > 0 and self.platform_ != "remote-linux": attachInfo = lldb.SBAttachInfo(self.attachPid_) self.process = self.target.Attach(attachInfo, error) if not error.Success(): @@ -944,6 +950,7 @@ class Dumper(DumperBase): self.reportState('enginerunandinferiorstopok') else: self.reportState('enginerunandinferiorrunok') + elif (self.startMode_ == DebuggerStartMode.AttachToRemoteServer or self.startMode_ == DebuggerStartMode.AttachToRemoteProcess): @@ -953,6 +960,9 @@ class Dumper(DumperBase): launchInfo = lldb.SBLaunchInfo(self.processArgs_) #launchInfo.SetWorkingDirectory(self.workingDirectory_) launchInfo.SetWorkingDirectory('/tmp') + if self.platform_ == 'remote-android': + launchInfo.SetWorkingDirectory('/data/local/tmp') + launchInfo.SetEnvironmentEntries(self.environment_, False) launchInfo.SetExecutableFile(f, True) DumperBase.warn("TARGET: %s" % self.target) diff --git a/share/qtcreator/modeleditor/standard.def b/share/qtcreator/modeleditor/standard.def index af6c08a035..34249aa515 100644 --- a/share/qtcreator/modeleditor/standard.def +++ b/share/qtcreator/modeleditor/standard.def @@ -42,6 +42,10 @@ // ArcTo { x: <center_x>; y: <center_y>; radiusX: <radius_x>; radiusY: <radius_y>; start: <start_angle>; span: <span_angle> } // Close // } +// Outline { +// // same as in Shape to define the geometrical ouline of the icon +// // if the outline is not defined it defaults to the shape +// } // } // // @@ -165,6 +169,10 @@ Icon { Line { x0: 0.0; y0: 0.0; x1: 0.0; y1: 20.0 } Line { x0: 0.0; y0: 10.0; x1: 4.0; y1: 10.0 } } + Outline { + Circle { x: 14.0; y: 10.0; radius: 10.0 } + Rect { x: 0; y: 0; width: 14; height: 20 } + } } Icon { @@ -178,6 +186,9 @@ Icon { Line { x0: 10.0; y0: 0.0; x1: 14.0; y1: -2.0 } Line { x0: 10.0; y0: 0.0; x1: 14.0; y1: 4.0 } } + Outline { + Circle { x: 10.0; y: 10.0; radius: 10.0 } + } } Icon { @@ -190,6 +201,10 @@ Icon { Circle { x: 10.0; y: 10.0; radius: 10.0 } Line { x0: 0.0; y0: 20.0; x1: 20.0; y1: 20.0 } } + Outline { + Circle { x: 10.0; y: 10.0; radius: 10.0 } + Rect { x: 0; y: 10; width: 20; height: 10 } + } } Association { @@ -313,6 +328,10 @@ Icon { Line { x0: 10; y0: 25; x1: 3; y1: 40 } Line { x0: 10; y0: 25; x1: 17; y1: 40 } } + Outline { + Circle { x: 10; y: 5; radius: 5 } + Rect { x: 3; y: 5; width: 14; height: 35 } + } } Relation { @@ -522,6 +541,9 @@ Icon { Line { x0: 0; y0: 0; x1: 10; y1: 10 } Line { x0: 0; y0: 10; x1: 10; y1: 0 } } + Outline { + Circle { x: 5; y: 5; radius: 2 } + } } Icon { diff --git a/share/qtcreator/qml-type-descriptions/builtins.qmltypes b/share/qtcreator/qml-type-descriptions/builtins.qmltypes index ec31791827..a7c009027c 100644 --- a/share/qtcreator/qml-type-descriptions/builtins.qmltypes +++ b/share/qtcreator/qml-type-descriptions/builtins.qmltypes @@ -3223,15 +3223,15 @@ Module { Method { name: "deleteLater" } } Component { - name: "QRegExpValidator" + name: "QRegularExpressionValidator" prototype: "QValidator" exports: [ - "QtQuick/RegExpValidator 1.0" + "QtQuick/RegularExpressionValidator 2.14" ] exportMetaObjectRevisions: [ 0 ] - Property { name: "regExp"; type: "QRegExp" } + Property { name: "regularExpression"; type: "QRegularExpression" } } Component { name: "QValidator"; prototype: "QObject" } Component { diff --git a/share/qtcreator/qml/qmlpuppet/commands/inputeventcommand.cpp b/share/qtcreator/qml/qmlpuppet/commands/inputeventcommand.cpp index 73a68b0620..4eb4f3380a 100644 --- a/share/qtcreator/qml/qmlpuppet/commands/inputeventcommand.cpp +++ b/share/qtcreator/qml/qmlpuppet/commands/inputeventcommand.cpp @@ -55,9 +55,9 @@ InputEventCommand::InputEventCommand(QInputEvent *e) QDataStream &operator<<(QDataStream &out, const InputEventCommand &command) { - out << command.type(); + out << int(command.type()); out << command.pos(); - out << command.button(); + out << int(command.button()); out << command.buttons(); out << command.modifiers(); out << command.angleDelta(); diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/AxisHelper.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/AxisHelper.qml index 7481d24225..7ae7bd44d9 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/AxisHelper.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/AxisHelper.qml @@ -121,7 +121,7 @@ View3D { pick(mouse); if (pickObj) { axisHelperView.editCameraCtrl.focusObject(axisHelperView.selectedNode, - pickObj.cameraRotation, false); + pickObj.cameraRotation, false, false); } else { mouse.accepted = false; } diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/EditCameraController.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/EditCameraController.qml index 207dc94199..20dd112d61 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/EditCameraController.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/EditCameraController.qml @@ -87,14 +87,15 @@ Item { } - function focusObject(targetObject, rotation, updateZoom) + function focusObject(targetObject, rotation, updateZoom, closeUp) { if (!camera) return; camera.eulerRotation = rotation; var newLookAtAndZoom = _generalHelper.focusObjectToCamera( - camera, _defaultCameraLookAtDistance, targetObject, view3d, _zoomFactor, updateZoom); + camera, _defaultCameraLookAtDistance, targetObject, view3d, _zoomFactor, + updateZoom, closeUp); _lookAtPoint = newLookAtAndZoom.toVector3d(); _zoomFactor = newLookAtAndZoom.w; storeCameraState(0); diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml index db8d4fb4ea..6527d06e6e 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/EditView3D.qml @@ -146,7 +146,7 @@ Item { if (editView) { var targetNode = selectionBoxes.length > 0 ? selectionBoxes[0].model : null; - cameraControl.focusObject(targetNode, editView.camera.eulerRotation, true); + cameraControl.focusObject(targetNode, editView.camera.eulerRotation, true, false); } } diff --git a/share/qtcreator/qml/qmlpuppet/mockfiles/IconRenderer3D.qml b/share/qtcreator/qml/qmlpuppet/mockfiles/IconRenderer3D.qml index b16b27406d..afaf8481ca 100644 --- a/share/qtcreator/qml/qmlpuppet/mockfiles/IconRenderer3D.qml +++ b/share/qtcreator/qml/qmlpuppet/mockfiles/IconRenderer3D.qml @@ -42,7 +42,7 @@ Item { function fitAndHideBox() : bool { - cameraControl.focusObject(selectionBox.model, viewCamera.eulerRotation, true); + cameraControl.focusObject(selectionBox.model, viewCamera.eulerRotation, true, true); if (cameraControl._zoomFactor < 0.1) { view3D.importScene.scale = view3D.importScene.scale.times(10); return false; diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.cpp index f99d219c5c..f62a7e5173 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.cpp @@ -148,7 +148,7 @@ float GeneralHelper::zoomCamera(QQuick3DCamera *camera, float distance, float de // Return value contains new lookAt point (xyz) and zoom factor (w) QVector4D GeneralHelper::focusObjectToCamera(QQuick3DCamera *camera, float defaultLookAtDistance, QQuick3DNode *targetObject, QQuick3DViewport *viewPort, - float oldZoom, bool updateZoom) + float oldZoom, bool updateZoom, bool closeUp) { if (!camera) return QVector4D(0.f, 0.f, 0.f, 1.f); @@ -200,7 +200,9 @@ QVector4D GeneralHelper::focusObjectToCamera(QQuick3DCamera *camera, float defau camera->setPosition(lookAt + newLookVector); - float newZoomFactor = updateZoom ? qBound(.01f, float(maxExtent / 900.), 100.f) : oldZoom; + qreal divisor = closeUp ? 900. : 725.; + + float newZoomFactor = updateZoom ? qBound(.01f, float(maxExtent / divisor), 100.f) : oldZoom; float cameraZoomFactor = zoomCamera(camera, 0, defaultLookAtDistance, lookAt, newZoomFactor, false); return QVector4D(lookAt, cameraZoomFactor); diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.h index e9d8e52545..15795ac28b 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.h +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/generalhelper.h @@ -66,8 +66,9 @@ public: float defaultLookAtDistance, const QVector3D &lookAt, float zoomFactor, bool relative); Q_INVOKABLE QVector4D focusObjectToCamera(QQuick3DCamera *camera, float defaultLookAtDistance, - QQuick3DNode *targetObject, QQuick3DViewport *viewPort, - float oldZoom, bool updateZoom = true); + QQuick3DNode *targetObject, QQuick3DViewport *viewPort, + float oldZoom, bool updateZoom = true, + bool closeUp = false); Q_INVOKABLE void delayedPropertySet(QObject *obj, int delay, const QString &property, const QVariant& value); Q_INVOKABLE QQuick3DNode *resolvePick(QQuick3DNode *pickNode); diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/icongizmoimageprovider.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/icongizmoimageprovider.cpp index 2e5a2b0d0a..cf2be48316 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/icongizmoimageprovider.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/editor3d/icongizmoimageprovider.cpp @@ -35,6 +35,9 @@ IconGizmoImageProvider::IconGizmoImageProvider() QImage IconGizmoImageProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize) { + Q_UNUSED(size) + Q_UNUSED(requestedSize) + // id format: <file name>:<color name> QStringList parts = id.split(':'); if (parts.size() == 2) { diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/iconrenderer/iconrenderer.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/iconrenderer/iconrenderer.cpp index 48830caee6..9f9b7736d7 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/iconrenderer/iconrenderer.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/iconrenderer/iconrenderer.cpp @@ -108,7 +108,7 @@ void IconRenderer::setupRender() if (m_contentItem->height() > containerItem->height()) containerItem->setHeight(m_contentItem->height()); - QTimer::singleShot(0, this, [this, containerItem, is3D]() { + QTimer::singleShot(0, this, [this, is3D, containerItem]() { m_designerSupport.refFromEffectItem(m_quickView->rootObject(), false); QQuickDesignerSupportItems::disableNativeTextRendering(m_quickView->rootObject()); diff --git a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml index 37f9712678..cd3ddef34d 100644 --- a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml +++ b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml @@ -47,6 +47,8 @@ Item { width: itemLibraryIconWidth // to be set in Qml context height: itemLibraryIconHeight // to be set in Qml context source: itemLibraryIconPath // to be set by model + + cache: false // Allow thumbnail to be dynamically updated } Text { diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml index 4eb7420d74..5434e4705b 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AdvancedSection.qml @@ -100,14 +100,17 @@ Section { } Label { - text: "State" + text: qsTr("State") } SecondColumnLayout { - LineEdit { + + ComboBox { + Layout.fillWidth: true backendValue: backendValues.state - showTranslateCheckBox: false - enabled: anchorBackend.hasParent || isBaseState + model: allStateNames + valueType: ComboBox.String } + ExpandingSpacer { } } @@ -158,5 +161,56 @@ Section { } } + Label { + text: qsTr("Focus") + tooltip: qsTr("Holds whether the item has focus within the enclosing FocusScope.") + disabledState: !backendValues.focus.isAvailable + } + SecondColumnLayout { + CheckBox { + backendValue: backendValues.focus + text: backendValues.focus.valueToString + enabled: backendValues.focus.isAvailable + implicitWidth: 180 + } + ExpandingSpacer { + } + } + + Label { + text: qsTr("Active focus on tab") + tooltip: qsTr("Holds whether the item wants to be in the tab focus chain.") + disabledState: !backendValues.activeFocusOnTab.isAvailable + } + SecondColumnLayout { + CheckBox { + backendValue: backendValues.activeFocusOnTab + text: backendValues.activeFocusOnTab.valueToString + enabled: backendValues.activeFocusOnTab.isAvailable + implicitWidth: 180 + } + ExpandingSpacer { + } + } + + Label { + text: qsTr("Baseline offset") + tooltip: qsTr("Specifies the position of the item's baseline in local coordinates.") + disabledState: !backendValues.baselineOffset.isAvailable + } + SecondColumnLayout { + SpinBox { + sliderIndicatorVisible: true + backendValue: backendValues.baselineOffset + hasSlider: true + decimals: 0 + minimumValue: -1000 + maximumValue: 1000 + Layout.preferredWidth: 140 + enabled: backendValues.baselineOffset.isAvailable + } + ExpandingSpacer { + } + } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AnimatedImageSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AnimatedImageSpecifics.qml new file mode 100644 index 0000000000..787e390cbd --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/AnimatedImageSpecifics.qml @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** 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 The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +import QtQuick 2.1 +import HelperWidgets 2.0 +import QtQuick.Layouts 1.0 + +Column { + anchors.left: parent.left + anchors.right: parent.right + + ImageSpecifics { + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Animated Image") + + SectionLayout { + Label { + text: qsTr("Speed") + disabledState: !backendValues.speed.isAvailable + } + SecondColumnLayout { + SpinBox { + sliderIndicatorVisible: true + backendValue: backendValues.speed + hasSlider: true + decimals: 2 + minimumValue: 0 + maximumValue: 100 + Layout.preferredWidth: 140 + enabled: backendValues.speed.isAvailable + } + ExpandingSpacer { + } + } + + Label { + text: qsTr("Paused") + tooltip: qsTr("Holds whether the animated image is paused.") + disabledState: !backendValues.paused.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.paused.isAvailable + text: backendValues.paused.valueToString + backendValue: backendValues.paused + implicitWidth: 180 + } + ExpandingSpacer {} + } + + Label { + text: qsTr("Playing") + tooltip: qsTr("Holds whether the animated image is playing.") + disabledState: !backendValues.playing.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.playing.isAvailable + text: backendValues.playing.valueToString + backendValue: backendValues.playing + implicitWidth: 180 + } + ExpandingSpacer {} + } + } + } +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/BorderImageSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/BorderImageSpecifics.qml index 3d39d44e8f..362ba144c5 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/BorderImageSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/BorderImageSpecifics.qml @@ -124,7 +124,7 @@ Column { } Label { - text: qsTr("Horizontal Fill mode") + text: qsTr("Horizontal Tile mode") } SecondColumnLayout { @@ -138,7 +138,7 @@ Column { } Label { - text: qsTr("Vertical Fill mode") + text: qsTr("Vertical Tile mode") } SecondColumnLayout { @@ -186,6 +186,70 @@ Column { } } + + Label { + text: qsTr("Mirror") + tooltip: qsTr("Specifies whether the image should be horizontally inverted.") + disabledState: !backendValues.mirror.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.mirror.isAvailable + text: backendValues.mirror.valueToString + backendValue: backendValues.mirror + implicitWidth: 180 + } + ExpandingSpacer {} + } + + Label { + text: qsTr("Smooth") + tooltip: qsTr("Specifies whether the image is smoothly filtered when scaled or transformed.") + disabledState: !backendValues.smooth.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.smooth.isAvailable + text: backendValues.smooth.valueToString + backendValue: backendValues.smooth + implicitWidth: 180 + } + ExpandingSpacer {} + } + + Label { + text: qsTr("Cache") + tooltip: qsTr("Specifies whether the image should be cached.") + disabledState: !backendValues.cache.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.cache.isAvailable + text: backendValues.cache.valueToString + backendValue: backendValues.cache + implicitWidth: 180 + } + ExpandingSpacer {} + } + + Label { + text: qsTr("Asynchronous") + tooltip: qsTr("Specifies that images on the local filesystem should be loaded asynchronously in a separate thread.") + disabledState: !backendValues.asynchronous.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.asynchronous.isAvailable + text: backendValues.asynchronous.valueToString + backendValue: backendValues.asynchronous + implicitWidth: 180 + } + ExpandingSpacer {} + } } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridSpecifics.qml index 37be5e5770..284849a415 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridSpecifics.qml @@ -95,7 +95,32 @@ Column { Layout.fillWidth: true scope: "Qt" } + } + Label { + text: qsTr("Horizontal item alignment") + } + + SecondColumnLayout { + ComboBox { + model: ["AlignLeft", "AlignRight" ,"AlignHCenter"] + backendValue: backendValues.horizontalItemAlignment + Layout.fillWidth: true + scope: "Grid" + } + } + + Label { + text: qsTr("Vertical item alignment") + } + + SecondColumnLayout { + ComboBox { + model: ["AlignTop", "AlignBottom" ,"AlignVCenter"] + backendValue: backendValues.verticalItemAlignment + Layout.fillWidth: true + scope: "Grid" + } } Label { diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml index 8f742f06e2..60b97a1179 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml @@ -58,7 +58,7 @@ Column { SecondColumnLayout { ComboBox { scope: "Image" - model: ["Stretch", "PreserveAspectFit", "PreserveAspectCrop", "Tile", "TileVertically", "TileHorizontally"] + model: ["Stretch", "PreserveAspectFit", "PreserveAspectCrop", "Tile", "TileVertically", "TileHorizontally", "Pad"] backendValue: backendValues.fillMode implicitWidth: 180 Layout.fillWidth: true @@ -105,6 +105,136 @@ Column { ExpandingSpacer { } } + + Label { + text: qsTr("Horizontal alignment") + } + + SecondColumnLayout { + ComboBox { + scope: "Image" + model: ["AlignLeft", "AlignRight", "AlignHCenter"] + backendValue: backendValues.horizontalAlignment + implicitWidth: 180 + Layout.fillWidth: true + } + + ExpandingSpacer { + } + } + + Label { + text: qsTr("Vertical alignment") + } + + SecondColumnLayout { + ComboBox { + scope: "Image" + model: ["AlignTop", "AlignBottom", "AlignVCenter"] + backendValue: backendValues.verticalAlignment + implicitWidth: 180 + Layout.fillWidth: true + } + + ExpandingSpacer { + } + } + + Label { + text: qsTr("Asynchronous") + tooltip: qsTr("Specifies that images on the local filesystem should be loaded asynchronously in a separate thread.") + disabledState: !backendValues.asynchronous.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.asynchronous.isAvailable + text: backendValues.asynchronous.valueToString + backendValue: backendValues.asynchronous + implicitWidth: 180 + } + ExpandingSpacer {} + } + + Label { + text: qsTr("Auto transform") + tooltip: qsTr("Specifies whether the image should automatically apply image transformation metadata such as EXIF orientation.") + disabledState: !backendValues.autoTransform.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.autoTransform.isAvailable + text: backendValues.autoTransform.valueToString + backendValue: backendValues.autoTransform + implicitWidth: 180 + } + ExpandingSpacer {} + } + + Label { + text: qsTr("Cache") + tooltip: qsTr("Specifies whether the image should be cached.") + disabledState: !backendValues.cache.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.cache.isAvailable + text: backendValues.cache.valueToString + backendValue: backendValues.cache + implicitWidth: 180 + } + ExpandingSpacer {} + } + + Label { + text: qsTr("Mipmap") + tooltip: qsTr("Specifies whether the image uses mipmap filtering when scaled or transformed.") + disabledState: !backendValues.mipmap.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.mipmap.isAvailable + text: backendValues.mipmap.valueToString + backendValue: backendValues.mipmap + implicitWidth: 180 + } + ExpandingSpacer {} + } + + Label { + text: qsTr("Mirror") + tooltip: qsTr("Specifies whether the image should be horizontally inverted.") + disabledState: !backendValues.mirror.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.mirror.isAvailable + text: backendValues.mirror.valueToString + backendValue: backendValues.mirror + implicitWidth: 180 + } + ExpandingSpacer {} + } + + Label { + text: qsTr("Smooth") + tooltip: qsTr("Specifies whether the image is smoothly filtered when scaled or transformed.") + disabledState: !backendValues.smooth.isAvailable + } + + SecondColumnLayout { + CheckBox { + enabled: backendValues.smooth.isAvailable + text: backendValues.smooth.valueToString + backendValue: backendValues.smooth + implicitWidth: 180 + } + ExpandingSpacer {} + } } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/MouseAreaSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/MouseAreaSpecifics.qml index 71ff0260ba..0ca7f3d888 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/MouseAreaSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/MouseAreaSpecifics.qml @@ -54,7 +54,7 @@ Column { } Label { - text: qsTr("Hover Enabled") + text: qsTr("Hover enabled") tooltip: qsTr("This property holds whether hover events are handled.") } @@ -68,6 +68,197 @@ Column { ExpandingSpacer { } } + + Label { + text: qsTr("Accepted buttons") + tooltip: qsTr("This property holds the mouse buttons that the mouse area reacts to.") + } + + SecondColumnLayout { + ComboBox { + backendValue: backendValues.acceptedButtons + model: ["LeftButton", "RightButton", "MiddleButton", "BackButton", "ForwardButton", "AllButtons"] + Layout.fillWidth: true + scope: "Qt" + } + ExpandingSpacer { + } + } + + Label { + text: qsTr("Press and hold interval") + tooltip: qsTr("This property overrides the elapsed time in milliseconds before pressAndHold is emitted.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.pressAndHoldInterval + minimumValue: 0 + maximumValue: 2000 + decimals: 0 + } + ExpandingSpacer { + } + } + + Label { + text: qsTr("Scroll gesture enabled") + tooltip: qsTr("This property controls whether this MouseArea responds to scroll gestures from non-mouse devices.") + } + + SecondColumnLayout { + CheckBox { + Layout.fillWidth: true + backendValue: backendValues.scrollGestureEnabled + text: backendValues.scrollGestureEnabled.valueToString + } + + ExpandingSpacer { + } + } + + Label { + text: qsTr("Cursor shape") + tooltip: qsTr("This property holds the cursor shape for this mouse area.") + } + + SecondColumnLayout { + ComboBox { + backendValue: backendValues.cursorShape + model: ["ArrowCursor", "UpArrowCursor", "CrossCursor", "WaitCursor", + "IBeamCursor", "SizeVerCursor", "SizeHorCursor", "SizeBDiagCursor", + "SizeFDiagCursor", "SizeAllCursor", "BlankCursor", "SplitVCursor", + "SplitHCursor", "PointingHandCursor", "ForbiddenCursor", "WhatsThisCursor", + "BusyCursor", "OpenHandCursor", "ClosedHandCursor", "DragCopyCursor", + "DragMoveCursor", "DragLinkCursor"] + Layout.fillWidth: true + scope: "Qt" + } + ExpandingSpacer { + } + } + + Label { + text: qsTr("Prevent stealing") + tooltip: qsTr("This property controls whether the mouse events may be stolen from this MouseArea.") + } + + SecondColumnLayout { + CheckBox { + Layout.fillWidth: true + backendValue: backendValues.preventStealing + text: backendValues.preventStealing.valueToString + } + + ExpandingSpacer { + } + } + + Label { + text: qsTr("Propagate composed events") + tooltip: qsTr("This property controls whether composed mouse events will automatically propagate to other MouseAreas.") + } + + SecondColumnLayout { + CheckBox { + Layout.fillWidth: true + backendValue: backendValues.propagateComposedEvents + text: backendValues.propagateComposedEvents.valueToString + } + + ExpandingSpacer { + } + } + } + } + + Section { + anchors.left: parent.left + anchors.right: parent.right + caption: qsTr("Drag") + + SectionLayout { + Label { + text: qsTr("Target") + tooltip: qsTr("Sets the id of the item to drag.") + } + SecondColumnLayout { + ItemFilterComboBox { + typeFilter: "QtQuick.QtObject" + validator: RegExpValidator { regExp: /(^$|^[a-z_]\w*)/ } + backendValue: backendValues.drag_target + Layout.fillWidth: true + } + + ExpandingSpacer { + } + } + + Label { + text: qsTr("Axis") + tooltip: qsTr("Specifies whether dragging can be done horizontally, vertically, or both.") + } + SecondColumnLayout { + ComboBox { + scope: "Drag" + model: ["XAxis", "YAxis", "XAndYAxis"] + backendValue: backendValues.drag_axis + Layout.fillWidth: true + } + + ExpandingSpacer { + } + } + + Label { + text: qsTr("Filter children") + tooltip: qsTr("Specifies whether a drag overrides descendant MouseAreas.") + } + + SecondColumnLayout { + CheckBox { + Layout.fillWidth: true + backendValue: backendValues.drag_filterChildren + text: backendValues.drag_filterChildren.valueToString + } + + ExpandingSpacer { + } + } + + Label { + text: qsTr("Threshold") + tooltip: qsTr("Determines the threshold in pixels of when the drag operation should start.") + } + + SecondColumnLayout { + SpinBox { + backendValue: backendValues.drag_threshold + minimumValue: 0 + maximumValue: 5000 + decimals: 0 + } + + ExpandingSpacer { + } + } + + Label { + text: qsTr("Smoothed") + tooltip: qsTr("If set to true, the target will be moved only after the drag operation has started.\n" + + "If set to false, the target will be moved straight to the current mouse position.") + } + + SecondColumnLayout { + CheckBox { + Layout.fillWidth: true + backendValue: backendValues.drag_smoothed + text: backendValues.drag_smoothed.valueToString + } + + ExpandingSpacer { + } + } } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/TextInputSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/TextInputSection.qml index cfd972b085..5c0e84d039 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/TextInputSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/TextInputSection.qml @@ -114,6 +114,19 @@ Section { } Label { + visible: textInputSection.isTextInput + text: qsTr("Maximum length") + tooltip: qsTr("Sets the maximum permitted length of the text in the TextInput.") + } + SpinBox { + visible: textInputSection.isTextInput + Layout.fillWidth: true + backendValue: backendValues.maximumLength + minimumValue: 0 + maximumValue: 32767 + } + + Label { text: qsTr("Flags") Layout.alignment: Qt.AlignTop } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml index 2b97df0646..11f46d29c5 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml @@ -47,7 +47,7 @@ Section { SecondColumnLayout { ComboBox { backendValue: backendValues.flickableDirection - model: ["AutoFlickDirection", "HorizontalFlick", "VerticalFlick", "HorizontalAndVerticalFlick"] + model: ["AutoFlickDirection", "AutoFlickIfNeeded", "HorizontalFlick", "VerticalFlick", "HorizontalAndVerticalFlick"] Layout.fillWidth: true scope: "Flickable" } @@ -63,7 +63,7 @@ Section { SecondColumnLayout { ComboBox { backendValue: backendValues.boundsBehavior - model: ["StopAtBounds", "DragOverBounds", "DragAndOvershootBounds"] + model: ["StopAtBounds", "DragOverBounds", "OvershootBounds", "DragAndOvershootBounds"] Layout.fillWidth: true scope: "Flickable" } @@ -167,6 +167,23 @@ Section { } Label { + text: qsTr("Synchronous drag") + tooltip: qsTr("If set to true, then when the mouse or touchpoint moves far enough to begin dragging\n" + + "the content, the content will jump, such that the content pixel which was under the\n" + + "cursor or touchpoint when pressed remains under that point.") + } + + SecondColumnLayout { + CheckBox { + Layout.fillWidth: true + backendValue: backendValues.synchronousDrag + text: backendValues.synchronousDrag.valueToString + } + ExpandingSpacer { + } + } + + Label { text: qsTr("Content size") } @@ -247,6 +264,45 @@ Section { } Label { + text: qsTr("Origin") + } + + SecondColumnLayout { + Label { + text: "X" + width: root.labelWidth + } + + SpinBox { + backendValue: backendValues.originX + minimumValue: -8000 + maximumValue: 8000 + implicitWidth: root.spinBoxWidth + Layout.fillWidth: true + } + + Item { + width: 4 + height: 4 + } + + Label { + text: "Y" + width: root.labelWidth + } + + SpinBox { + backendValue: backendValues.originY + minimumValue: -8000 + maximumValue: 8000 + implicitWidth: root.spinBoxWidth + Layout.fillWidth: true + } + ExpandingSpacer { + } + } + + Label { text: qsTr("Margins") } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml index a97923a032..94a43424da 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml @@ -68,9 +68,12 @@ Section { text: qsTr("Font") } FontComboBox { + id: fontComboBox backendValue: fontSection.fontFamily Layout.fillWidth: true width: 160 + property string familyName: backendValue.value + onFamilyNameChanged: print(styleNamesForFamily(familyName)) } Label { @@ -151,6 +154,7 @@ Section { italic: fontSection.italicStyle underline: fontSection.underlineStyle strikeout: fontSection.strikeoutStyle + enabled: !styleComboBox.styleSet } Label { @@ -175,6 +179,21 @@ Section { backendValue: getBackendValue("weight") model: ["Normal", "Light", "ExtraLight", "Thin", "Medium", "DemiBold", "Bold", "ExtraBold", "Black"] scope: "Font" + enabled: !styleComboBox.styleSet + } + + Label { + text: qsTr("Style name") + toolTip: qsTr("Sets the font's style.") + } + + ComboBox { + id: styleComboBox + property bool styleSet: backendValue.isInModel + Layout.fillWidth: true + backendValue: getBackendValue("styleName") + model: styleNamesForFamily(fontComboBox.familyName) + useString: true } Label { @@ -257,5 +276,17 @@ Section { "Latin script,\n it is merely a cosmetic feature. Setting the preferShaping property to false will disable all such features\nwhen they are not required, which will improve performance in most cases.") } } + + Label { + text: qsTr("Hinting preference") + toolTip: qsTr("Sets the preferred hinting on the text.") + } + + ComboBox { + Layout.fillWidth: true + backendValue: getBackendValue("hintingPreference") + model: ["PreferDefaultHinting", "PreferNoHinting", "PreferVerticalHinting", "PreferFullHinting"] + scope: "Font" + } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml index 6ecc8d525c..6c5e6fde86 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml @@ -61,7 +61,7 @@ Section { Layout.fillWidth: true backendValue: backendValues.wrapMode scope: "Text" - model: ["NoWrap", "WordWrap", "WrapAnywhere", "WrapAtWordBoundaryOrAnywhere"] + model: ["NoWrap", "WordWrap", "WrapAnywhere", "Wrap"] } Label { @@ -78,6 +78,21 @@ Section { } Label { + visible: showElide + text: qsTr("Maximum line count") + tooltip: qsTr("Limits the number of lines that the text item will show.") + } + + SpinBox { + visible: showElide + Layout.fillWidth: true + backendValue: backendValues.maximumLineCount + minimumValue: 0 + maximumValue: 10000 + decimals: 0 + } + + Label { text: qsTr("Alignment") } @@ -124,6 +139,7 @@ Section { toolTip: qsTr("Specifies how the font size of the displayed text is determined.") } ComboBox { + id: fontSizeMode visible: showFontSizeMode scope: "Text" model: ["FixedSize", "HorizontalFit", "VerticalFit", "Fit"] @@ -131,6 +147,48 @@ Section { Layout.fillWidth: true } + Label { + visible: showFontSizeMode + text: qsTr("Minimum size") + } + SecondColumnLayout { + visible: showFontSizeMode + + SpinBox { + enabled: fontSizeMode.currentIndex !== 0 + minimumValue: 0 + maximumValue: 500 + decimals: 0 + backendValue: backendValues.minimumPixelSize + Layout.fillWidth: true + Layout.minimumWidth: 60 + } + Label { + text: qsTr("Pixel") + tooltip: qsTr("Specifies the minimum font pixel size of scaled text.") + width: 42 + } + + Item { + width: 4 + height: 4 + } + + SpinBox { + enabled: fontSizeMode.currentIndex !== 0 + minimumValue: 0 + maximumValue: 500 + decimals: 0 + backendValue: backendValues.minimumPointSize + Layout.fillWidth: true + Layout.minimumWidth: 60 + } + Label { + text: qsTr("Point") + tooltip: qsTr("Specifies the minimum font point size of scaled text.") + width: 42 + } + } Label { visible: showLineHeight @@ -148,5 +206,17 @@ Section { stepSize: 0.1 } + Label { + visible: showLineHeight + text: qsTr("Line height mode") + toolTip: qsTr("Determines how the line height is specified.") + } + ComboBox { + visible: showLineHeight + scope: "Text" + model: ["ProportionalHeight", "FixedHeight"] + backendValue: backendValues.lineHeightMode + Layout.fillWidth: true + } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Constants.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Constants.qml index 3d692af671..74edf9ccee 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Constants.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Constants.qml @@ -26,98 +26,4 @@ pragma Singleton import QtQuick 2.10 -QtObject { - readonly property int width: 1920 - readonly property int height: 1080 - readonly property FontLoader mySystemFont: FontLoader { - name: "Arial" - } - readonly property FontLoader controlIcons: FontLoader { - source: "icons.ttf" - } - - readonly property string actionIcon: "\u0021" - readonly property string actionIconBinding: "\u0022" - readonly property string addColumnAfter: "\u0023" - readonly property string addColumnBefore: "\u0024" - readonly property string addFile: "\u0025" - readonly property string addRowAfter: "\u0026" - readonly property string addRowBefore: "\u0027" - readonly property string addTable: "\u0028" - readonly property string alignBottom: "\u0029" - readonly property string alignCenterHorizontal: "\u002A" - readonly property string alignCenterVertical: "\u002B" - readonly property string alignLeft: "\u002C" - readonly property string alignRight: "\u002D" - readonly property string alignTo: "\u002E" - readonly property string alignTop: "\u002F" - readonly property string anchorBaseline: "\u0030" - readonly property string anchorBottom: "\u0031" - readonly property string anchorFill: "\u0032" - readonly property string anchorLeft: "\u0033" - readonly property string anchorRight: "\u0034" - readonly property string anchorTop: "\u0035" - readonly property string annotationBubble: "\u0036" - readonly property string annotationDecal: "\u0037" - readonly property string centerHorizontal: "\u0038" - readonly property string centerVertical: "\u0039" - readonly property string closeCross: "\u003A" - readonly property string deleteColumn: "\u003B" - readonly property string deleteRow: "\u003C" - readonly property string deleteTable: "\u003D" - readonly property string distributeBottom: "\u003E" - readonly property string distributeCenterHorizontal: "\u003F" - readonly property string distributeCenterVertical: "\u0040" - readonly property string distributeLeft: "\u0041" - readonly property string distributeOriginBottomRight: "\u0042" - readonly property string distributeOriginCenter: "\u0043" - readonly property string distributeOriginNone: "\u0044" - readonly property string distributeOriginTopLeft: "\u0045" - readonly property string distributeRight: "\u0046" - readonly property string distributeSpacingHorizontal: "\u0047" - readonly property string distributeSpacingVertical: "\u0048" - readonly property string distributeTop: "\u0049" - readonly property string edit: "\u004A" - readonly property string fontStyleBold: "\u004B" - readonly property string fontStyleItalic: "\u004C" - readonly property string fontStyleStrikethrough: "\u004D" - readonly property string fontStyleUnderline: "\u004E" - readonly property string mergeCells: "\u004F" - readonly property string redo: "\u0050" - readonly property string splitColumns: "\u0051" - readonly property string splitRows: "\u0052" - readonly property string testIcon: "\u0053" - readonly property string textAlignBottom: "\u0054" - readonly property string textAlignCenter: "\u0055" - readonly property string textAlignLeft: "\u0056" - readonly property string textAlignMiddle: "\u0057" - readonly property string textAlignRight: "\u0058" - readonly property string textAlignTop: "\u0059" - readonly property string textBulletList: "\u005A" - readonly property string textFullJustification: "\u005B" - readonly property string textNumberedList: "\u005C" - readonly property string tickIcon: "\u005D" - readonly property string triState: "\u005E" - readonly property string undo: "\u005F" - readonly property string upDownIcon: "\u0060" - readonly property string upDownSquare2: "\u0061" - - readonly property font iconFont: Qt.font({ - "family": controlIcons.name, - "pixelSize": 12 - }) - - readonly property font font: Qt.font({ - "family": mySystemFont.name, - "pointSize": Qt.application.font.pixelSize - }) - - readonly property font largeFont: Qt.font({ - "family": mySystemFont.name, - "pointSize": Qt.application.font.pixelSize * 1.6 - }) - - readonly property color backgroundColor: "#c2c2c2" - - readonly property bool showActionIndicatorBackground: false -} +InternalConstants {} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml new file mode 100644 index 0000000000..4d45032eae --- /dev/null +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/InternalConstants.qml @@ -0,0 +1,131 @@ +/**************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** 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 The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +import QtQuick 2.10 + +QtObject { + readonly property int width: 1920 + readonly property int height: 1080 + readonly property FontLoader mySystemFont: FontLoader { + name: "Arial" + } + readonly property FontLoader controlIcons: FontLoader { + source: "icons.ttf" + } + + objectName: "internalConstantsObject" + + readonly property string actionIcon: "\u0021" + readonly property string actionIconBinding: "\u0022" + readonly property string addColumnAfter: "\u0023" + readonly property string addColumnBefore: "\u0024" + readonly property string addFile: "\u0025" + readonly property string addRowAfter: "\u0026" + readonly property string addRowBefore: "\u0027" + readonly property string addTable: "\u0028" + readonly property string adsClose: "\u0029" + readonly property string adsDetach: "\u002A" + readonly property string adsDropDown: "\u002B" + readonly property string alignBottom: "\u002C" + readonly property string alignCenterHorizontal: "\u002D" + readonly property string alignCenterVertical: "\u002E" + readonly property string alignLeft: "\u002F" + readonly property string alignRight: "\u0030" + readonly property string alignTo: "\u0031" + readonly property string alignTop: "\u0032" + readonly property string anchorBaseline: "\u0033" + readonly property string anchorBottom: "\u0034" + readonly property string anchorFill: "\u0035" + readonly property string anchorLeft: "\u0036" + readonly property string anchorRight: "\u0037" + readonly property string anchorTop: "\u0038" + readonly property string annotationBubble: "\u0039" + readonly property string annotationDecal: "\u003A" + readonly property string centerHorizontal: "\u003B" + readonly property string centerVertical: "\u003C" + readonly property string closeCross: "\u003D" + readonly property string decisionNode: "\u003E" + readonly property string deleteColumn: "\u003F" + readonly property string deleteRow: "\u0040" + readonly property string deleteTable: "\u0041" + readonly property string detach: "\u0042" + readonly property string distributeBottom: "\u0043" + readonly property string distributeCenterHorizontal: "\u0044" + readonly property string distributeCenterVertical: "\u0045" + readonly property string distributeLeft: "\u0046" + readonly property string distributeOriginBottomRight: "\u0047" + readonly property string distributeOriginCenter: "\u0048" + readonly property string distributeOriginNone: "\u0049" + readonly property string distributeOriginTopLeft: "\u004A" + readonly property string distributeRight: "\u004B" + readonly property string distributeSpacingHorizontal: "\u004C" + readonly property string distributeSpacingVertical: "\u004D" + readonly property string distributeTop: "\u004E" + readonly property string edit: "\u004F" + readonly property string fontStyleBold: "\u0050" + readonly property string fontStyleItalic: "\u0051" + readonly property string fontStyleStrikethrough: "\u0052" + readonly property string fontStyleUnderline: "\u0053" + readonly property string mergeCells: "\u0054" + readonly property string redo: "\u0055" + readonly property string splitColumns: "\u0056" + readonly property string splitRows: "\u0057" + readonly property string startNode: "\u0058" + readonly property string testIcon: "\u0059" + readonly property string textAlignBottom: "\u005A" + readonly property string textAlignCenter: "\u005B" + readonly property string textAlignLeft: "\u005C" + readonly property string textAlignMiddle: "\u005D" + readonly property string textAlignRight: "\u005E" + readonly property string textAlignTop: "\u005F" + readonly property string textBulletList: "\u0060" + readonly property string textFullJustification: "\u0061" + readonly property string textNumberedList: "\u0062" + readonly property string tickIcon: "\u0063" + readonly property string triState: "\u0064" + readonly property string undo: "\u0065" + readonly property string upDownIcon: "\u0066" + readonly property string upDownSquare2: "\u0067" + readonly property string wildcard: "\u0068" + + readonly property font iconFont: Qt.font({ + "family": controlIcons.name, + "pixelSize": 12 + }) + + readonly property font font: Qt.font({ + "family": mySystemFont.name, + "pointSize": Qt.application.font.pixelSize + }) + + readonly property font largeFont: Qt.font({ + "family": mySystemFont.name, + "pointSize": Qt.application.font.pixelSize * 1.6 + }) + + readonly property color backgroundColor: "#c2c2c2" + + readonly property bool showActionIndicatorBackground: false +} diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf Binary files differindex d65b065195..9e3ed42406 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/qmldir b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/qmldir index b768fe63a2..4f689f9f63 100755 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/qmldir +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/qmldir @@ -1,2 +1,4 @@ singleton Values 1.0 Values.qml singleton Constants 1.0 Constants.qml +InternalConstants 1.0 InternalConstants.qml + diff --git a/share/qtcreator/qmldesigner/statesEditorQmlSources/StatesDelegate.qml b/share/qtcreator/qmldesigner/statesEditorQmlSources/StatesDelegate.qml index 1d1d65bed7..0e94897d5a 100644 --- a/share/qtcreator/qmldesigner/statesEditorQmlSources/StatesDelegate.qml +++ b/share/qtcreator/qmldesigner/statesEditorQmlSources/StatesDelegate.qml @@ -220,6 +220,24 @@ Rectangle { } } + Text { + id: stateDefaultIndicator + anchors.left: whenButton.left + anchors.leftMargin: 0 + anchors.right: removeStateButton.left + anchors.rightMargin: 4 + anchors.bottom: parent.bottom + anchors.bottomMargin: 4 + + color: Theme.color(Theme.PanelTextColorLight) + font.italic: true + font.pixelSize: Theme.smallFontPixelSize() + + visible: expanded && (isDefaultState || (isBaseState && !modelHasDefaultState)) + + text: ("* " + qsTr("Default")) + } + BindingEditor { property string newWhenCondition diff --git a/share/qtcreator/templates/wizards/autotest/files/catch2_tst.cpp b/share/qtcreator/templates/wizards/autotest/files/catch2_tst.cpp new file mode 100644 index 0000000000..604b339e1c --- /dev/null +++ b/share/qtcreator/templates/wizards/autotest/files/catch2_tst.cpp @@ -0,0 +1,6 @@ +#include <catch2/catch.hpp> + +TEST_CASE("My first test with Catch2", "[fancy]") +{ + REQUIRE(0 == 0); +} diff --git a/share/qtcreator/templates/wizards/autotest/files/tst.pro b/share/qtcreator/templates/wizards/autotest/files/tst.pro index 1d59f9c05f..a92e58f06e 100644 --- a/share/qtcreator/templates/wizards/autotest/files/tst.pro +++ b/share/qtcreator/templates/wizards/autotest/files/tst.pro @@ -64,3 +64,30 @@ isEmpty(BOOST_INCLUDE_DIR): { SOURCES += \\ %{MainCppName} @endif +@if "%{TestFrameWork}" == "Catch2" +TEMPLATE = app +@if "%{Catch2NeedsQt}" == "true" +QT += gui +@else +CONFIG -= qt +CONFIG -= app_bundle +CONFIG += console +@endif + +CONFIG += c++11 + +isEmpty(CATCH_INCLUDE_DIR): CATCH_INCLUDE_DIR=$$(CATCH_INCLUDE_DIR) +@if "%{CatchIncDir}" != "" +# set by Qt Creator wizard +isEmpty(CATCH_INCLUDE_DIR): CATCH_INCLUDE_DIR="%{CatchIncDir}" +@endif +!isEmpty(CATCH_INCLUDE_DIR): INCLUDEPATH *= $${CATCH_INCLUDE_DIR} + +isEmpty(CATCH_INCLUDE_DIR): { + message("CATCH_INCLUDE_DIR is not set, assuming Catch2 can be found automatically in your system") +} + +SOURCES += \ + main.cpp \ + %{TestCaseFileWithCppSuffix} +@endif diff --git a/share/qtcreator/templates/wizards/autotest/files/tst.qbs b/share/qtcreator/templates/wizards/autotest/files/tst.qbs index e66605f0a5..a33cecd599 100644 --- a/share/qtcreator/templates/wizards/autotest/files/tst.qbs +++ b/share/qtcreator/templates/wizards/autotest/files/tst.qbs @@ -7,6 +7,10 @@ import "googlecommon.js" as googleCommon import qbs.Environment import qbs.File @endif +@if "%{TestFrameWork}" == "Catch2" +import qbs.Environment +import qbs.File +@endif CppApplication { @if "%{TestFrameWork}" == "QtTest" @@ -104,4 +108,35 @@ CppApplication { files: [ "%{MainCppName}" ] @endif +@if "%{TestFrameWork}" == "Catch2" + type: "application" + +@if "%{Catch2NeedsQt}" == "true" + Depends { name: "Qt.gui" } +@endif + + property string catchIncDir: { + if (typeof Environment.getEnv("CATCH_INCLUDE_DIR") !== 'undefined') + return Environment.getEnv("CATCH_INCLUDE_DIR"); + return "%{CatchIncDir}"; // set by Qt Creator wizard + } + + Properties { + condition: catchIncDir && File.exists(catchIncDir) + cpp.includePaths: [catchIncDir]; + } + + condition: { + if (!catchIncDir) + console.log("CATCH_INCLUDE_DIR is not set, assuming Catch2 can be " + + "found automatically in your system"); + return true; + } + + files: [ + "%{MainCppName}", + "%{TestCaseFileWithCppSuffix}", + ] +@endif + } diff --git a/share/qtcreator/templates/wizards/autotest/files/tst.txt b/share/qtcreator/templates/wizards/autotest/files/tst.txt index 93e51d3695..569bf4d01d 100644 --- a/share/qtcreator/templates/wizards/autotest/files/tst.txt +++ b/share/qtcreator/templates/wizards/autotest/files/tst.txt @@ -116,3 +116,27 @@ elseif (EXISTS ${BOOST_INCLUDE_DIR}) include_directories(${BOOST_INCLUDE_DIR}) endif () @endif +@if "%{TestFrameWork}" == "Catch2" +SET(CMAKE_CXX_STANDARD 11) + +@if "%{Catch2NeedsQt}" == "true" +find_package(Qt5Gui REQUIRED) +@endif + +add_executable(${PROJECT_NAME} %{TestCaseFileWithCppSuffix} main.cpp) + +@if "%{Catch2NeedsQt}" == "true" +target_link_libraries(%{TestCaseName} PRIVATE Qt5::Gui) +@endif + +if (DEFINED ENV{CATCH_INCLUDE_DIR}) + set(CATCH_INCLUDE_DIR $ENV{CATCH_INCLUDE_DIR}) +else () + set(CATCH_INCLUDE_DIR "%{CatchIncDir}") # set by Qt Creator wizard +endif () +if (CATCH_INCLUDE_DIR STREQUAL "") + message("CATCH_INCLUDE_DIR is not set, assuming Catch2 can be found automatically in your system") +elseif (EXISTS ${CATCH_INCLUDE_DIR}) + include_directories(${CATCH_INCLUDE_DIR}) +endif () +@endif diff --git a/share/qtcreator/templates/wizards/autotest/files/tst_main.cpp b/share/qtcreator/templates/wizards/autotest/files/tst_main.cpp index 923fad9f9b..e4f33d2716 100644 --- a/share/qtcreator/templates/wizards/autotest/files/tst_main.cpp +++ b/share/qtcreator/templates/wizards/autotest/files/tst_main.cpp @@ -24,3 +24,20 @@ BOOST_AUTO_TEST_CASE( %{TestCaseName} ) BOOST_TEST( true /* test assertion */ ); } @endif +@if "%{TestFrameWork}" == "Catch2" +@if "%{Catch2NeedsQt}" == "true" +#define CATCH_CONFIG_RUNNER +@else +#define CATCH_CONFIG_MAIN +@endif +#include <catch2/catch.hpp> +@if "%{Catch2NeedsQt}" == "true" +#include <QtGui/QGuiApplication> + +int main(int argc, char** argv) +{ + QGuiApplication app(argc, argv); + return Catch::Session().run(argc, argv); +} +@endif +@endif diff --git a/share/qtcreator/templates/wizards/autotest/wizard.json b/share/qtcreator/templates/wizards/autotest/wizard.json index e35f9cd980..1ba0101a09 100644 --- a/share/qtcreator/templates/wizards/autotest/wizard.json +++ b/share/qtcreator/templates/wizards/autotest/wizard.json @@ -91,6 +91,10 @@ { "trKey": "Boost Test", "value": "BoostTest" + }, + { + "trKey": "Catch2", + "value": "Catch2" } ] @@ -168,6 +172,25 @@ } }, { + "name": "CatchIncDir", + "trDisplayName": "Catch2 include directory (optional):", + "visible": "%{JS: value('TestFrameWork') === 'Catch2'}", + "mandatory": false, + "type": "PathChooser", + "data": { + "kind": "existingDirectory" + } + }, + { + "name": "Catch2NeedsQt", + "trDisplayName": "Use Qt libraries", + "visible": "%{JS: '%{TestFrameWork}' === 'Catch2'}", + "type": "CheckBox", + "data": { + "checked": true + } + }, + { "name": "BuildSystem", "trDisplayName": "Build system:", "type": "ComboBox", @@ -267,7 +290,7 @@ { "source": "files/tst_main.cpp", "target": "%{MainCppName}", - "condition": "%{JS: ['GTest', 'QtQuickTest', 'BoostTest'].indexOf(value('TestFrameWork')) >= 0}", + "condition": "%{JS: ['GTest', 'QtQuickTest', 'BoostTest', 'Catch2'].indexOf(value('TestFrameWork')) >= 0}", "openInEditor": true }, { @@ -277,6 +300,12 @@ "openInEditor": true }, { + "source": "files/catch2_tst.cpp", + "target": "%{TestCaseFileWithCppSuffix}", + "condition": "%{JS: '%{TestFrameWork}' === 'Catch2'}", + "openInEditor": true + }, + { "source": "../projects/git.ignore", "target": ".gitignore", "condition": "%{JS: ( %{IsTopLevelProject} && value('VersionControl') === 'G.Git' )}" diff --git a/share/qtcreator/templates/wizards/classes/cpp/file.h b/share/qtcreator/templates/wizards/classes/cpp/file.h index aa2fa7faaf..67e4dfd4d1 100644 --- a/share/qtcreator/templates/wizards/classes/cpp/file.h +++ b/share/qtcreator/templates/wizards/classes/cpp/file.h @@ -6,6 +6,7 @@ #define %{GUARD} @endif +%{JS: Cpp.includeStatement('%{Base}', Util.preferredSuffix('text/x-c++hdr'), ['QObject', 'QWidget', 'QMainWindow', 'QQuickItem', 'QSharedData'], '%{TargetPath}')}\ %{JS: QtSupport.qtIncludes([ ( '%{IncludeQObject}' ) ? 'QtCore/%{IncludeQObject}' : '', ( '%{IncludeQWidget}' ) ? 'QtGui/%{IncludeQWidget}' : '', ( '%{IncludeQMainWindow}' ) ? 'QtGui/%{IncludeQMainWindow}' : '', diff --git a/share/qtcreator/templates/wizards/classes/cpp/wizard.json b/share/qtcreator/templates/wizards/classes/cpp/wizard.json index bb8a1f9fef..117139ed82 100644 --- a/share/qtcreator/templates/wizards/classes/cpp/wizard.json +++ b/share/qtcreator/templates/wizards/classes/cpp/wizard.json @@ -5,7 +5,7 @@ "category": "O.C++", "trDescription": "Creates a C++ header and a source file for a new class that you can add to a C++ project.", "trDisplayName": "C++ Class", - "trDisplayCategory": "C++", + "trDisplayCategory": "C/C++", "iconText": "h/cpp", "enabled": "%{JS: value('Plugins').indexOf('CppEditor') >= 0}", diff --git a/share/qtcreator/templates/wizards/files/cppheader/wizard.json b/share/qtcreator/templates/wizards/files/cppheader/wizard.json index efb0ea8119..36956636a3 100644 --- a/share/qtcreator/templates/wizards/files/cppheader/wizard.json +++ b/share/qtcreator/templates/wizards/files/cppheader/wizard.json @@ -3,13 +3,16 @@ "supportedProjectTypes": [ ], "id": "C.Header", "category": "O.C++", - "trDescription": "Creates a C++ header file that you can add to a C++ project.", - "trDisplayName": "C++ Header File", - "trDisplayCategory": "C++", + "trDescription": "Creates a header file that you can add to a C/C++ project.", + "trDisplayName": "C/C++ Header File", + "trDisplayCategory": "C/C++", "iconText": "h", "enabled": "%{JS: value('Plugins').indexOf('CppEditor') >= 0}", - "options": { "key": "FileName", "value": "%{JS: Util.fileName(value('TargetPath'), Util.preferredSuffix('text/x-c++hdr'))}" }, + "options": [ + { "key": "DefaultSuffix", "value": "%{JS: Util.preferredSuffix('text/x-c++hdr')}" }, + { "key": "FileName", "value": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}" } + ], "pages" : [ diff --git a/share/qtcreator/templates/wizards/files/cppsource/wizard.json b/share/qtcreator/templates/wizards/files/cppsource/wizard.json index 775cd892ab..c75600ff8a 100644 --- a/share/qtcreator/templates/wizards/files/cppsource/wizard.json +++ b/share/qtcreator/templates/wizards/files/cppsource/wizard.json @@ -3,13 +3,16 @@ "supportedProjectTypes": [ ], "id": "B.Source", "category": "O.C++", - "trDescription": "Creates a C++ source file that you can add to a C++ project.", - "trDisplayName": "C++ Source File", - "trDisplayCategory": "C++", + "trDescription": "Creates a source file that you can add to a C/C++ project.", + "trDisplayName": "C/C++ Source File", + "trDisplayCategory": "C/C++", "iconText": "cpp", "enabled": "%{JS: value('Plugins').indexOf('CppEditor') >= 0}", - "options": { "key": "FileName", "value": "%{JS: Util.fileName(value('TargetPath'), Util.preferredSuffix('text/x-c++src'))}" }, + "options": [ + { "key": "FileName", "value": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}" }, + { "key": "DefaultSuffix", "value": "%{JS: Util.preferredSuffix('text/x-c++src')}" } + ], "pages" : [ diff --git a/share/qtcreator/templates/wizards/files/glsl/gl/fragment/wizard.json b/share/qtcreator/templates/wizards/files/glsl/gl/fragment/wizard.json index 900e4f8f68..28a018945b 100644 --- a/share/qtcreator/templates/wizards/files/glsl/gl/fragment/wizard.json +++ b/share/qtcreator/templates/wizards/files/glsl/gl/fragment/wizard.json @@ -10,6 +10,8 @@ "platformIndependent": true, "enabled": "%{JS: value('Plugins').indexOf('GLSLEditor') >= 0}", + "options": { "key": "DefaultSuffix", "value": "%{JS: Util.preferredSuffix('text/x-glsl-frag')}" }, + "pages" : [ { @@ -30,7 +32,7 @@ "data": { "source": "file.frag", - "target": "%{JS: Util.fileName(value('TargetPath'), Util.preferredSuffix('text/x-glsl-frag'))}", + "target": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}", "openInEditor": true } } diff --git a/share/qtcreator/templates/wizards/files/glsl/gl/vertex/wizard.json b/share/qtcreator/templates/wizards/files/glsl/gl/vertex/wizard.json index 38d2df2947..48f1f68afd 100644 --- a/share/qtcreator/templates/wizards/files/glsl/gl/vertex/wizard.json +++ b/share/qtcreator/templates/wizards/files/glsl/gl/vertex/wizard.json @@ -10,6 +10,8 @@ "platformIndependent": true, "enabled": "%{JS: value('Plugins').indexOf('GLSLEditor') >= 0}", + "options": { "key": "DefaultSuffix", "value": "%{JS: Util.preferredSuffix('text/x-glsl-vert')}" }, + "pages" : [ { @@ -30,7 +32,7 @@ "data": { "source": "file.vert", - "target": "%{JS: Util.fileName(value('TargetPath'), Util.preferredSuffix('text/x-glsl-vert'))}", + "target": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}", "openInEditor": true } } diff --git a/share/qtcreator/templates/wizards/files/glsl/gles/fragment/wizard.json b/share/qtcreator/templates/wizards/files/glsl/gles/fragment/wizard.json index a993a3cfce..d636d0eb21 100644 --- a/share/qtcreator/templates/wizards/files/glsl/gles/fragment/wizard.json +++ b/share/qtcreator/templates/wizards/files/glsl/gles/fragment/wizard.json @@ -10,6 +10,8 @@ "platformIndependent": true, "enabled": "%{JS: value('Plugins').indexOf('GLSLEditor') >= 0}", + "options": { "key": "DefaultSuffix", "value": "%{JS: Util.preferredSuffix('text/x-glsl-es-frag')}" }, + "pages" : [ { @@ -30,7 +32,7 @@ "data": { "source": "file.fsh", - "target": "%{JS: Util.fileName(value('TargetPath'), Util.preferredSuffix('text/x-glsl-es-frag'))}", + "target": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}", "openInEditor": true } } diff --git a/share/qtcreator/templates/wizards/files/glsl/gles/vertex/wizard.json b/share/qtcreator/templates/wizards/files/glsl/gles/vertex/wizard.json index 54231aadd5..83a042d91b 100644 --- a/share/qtcreator/templates/wizards/files/glsl/gles/vertex/wizard.json +++ b/share/qtcreator/templates/wizards/files/glsl/gles/vertex/wizard.json @@ -10,6 +10,8 @@ "platformIndependent": true, "enabled": "%{JS: value('Plugins').indexOf('GLSLEditor') >= 0}", + "options": { "key": "DefaultSuffix", "value": "%{JS: Util.preferredSuffix('text/x-glsl-es-vert')}" }, + "pages" : [ { @@ -30,7 +32,7 @@ "data": { "source": "file.vsh", - "target": "%{JS: Util.fileName(value('TargetPath'), Util.preferredSuffix('text/x-glsl-es-vert'))}", + "target": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}", "openInEditor": true } } diff --git a/share/qtcreator/templates/wizards/files/java/wizard.json b/share/qtcreator/templates/wizards/files/java/wizard.json index 5a8fae5dc1..ec1da4e164 100644 --- a/share/qtcreator/templates/wizards/files/java/wizard.json +++ b/share/qtcreator/templates/wizards/files/java/wizard.json @@ -9,7 +9,10 @@ "iconText": "java", "enabled": "%{JS: value('Plugins').indexOf('Android') >= 0}", - "options": [ { "key": "ClassName", "value": "%{JS: value('FileName').charAt(0).toUpperCase() + value('FileName').substr(1).replace(/[.]java$/,'')}" } ], + "options": [ + { "key": "ClassName", "value": "%{JS: value('FileName').charAt(0).toUpperCase() + value('FileName').substr(1).replace(/[.]java$/,'')}" }. + { "key": "DefaultSuffix", "value": "%{JS: Util.preferredSuffix('text/x-java')}" } + ], "pages" : [ @@ -31,7 +34,7 @@ "data": { "source": "source.java", - "target": "%{JS: Util.fileName(value('Path') + '/' + value('ClassName'), Util.preferredSuffix('text/x-java'))}", + "target": "%{JS: Util.fileName(value('Path') + '/' + value('ClassName'), value('DefaultSuffix'))}", "openInEditor": true } } diff --git a/share/qtcreator/templates/wizards/files/js/wizard.json b/share/qtcreator/templates/wizards/files/js/wizard.json index d47721bb46..505ca57817 100644 --- a/share/qtcreator/templates/wizards/files/js/wizard.json +++ b/share/qtcreator/templates/wizards/files/js/wizard.json @@ -9,6 +9,8 @@ "iconText": "js", "enabled": "%{JS: value('Plugins').indexOf('QmlJSEditor') >= 0}", + "options": { "key": "DefaultSuffix", "value": "%{JS: Util.preferredSuffix('application/javascript')}" }, + "pages" : [ { @@ -47,7 +49,7 @@ "data": { "source": "file.js", - "target": "%{JS: Util.fileName(value('TargetPath'), Util.preferredSuffix('application/javascript'))}", + "target": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}", "openInEditor": true } } diff --git a/share/qtcreator/templates/wizards/files/nim/wizard.json b/share/qtcreator/templates/wizards/files/nim/wizard.json index 723531ced5..1baf376aa4 100644 --- a/share/qtcreator/templates/wizards/files/nim/wizard.json +++ b/share/qtcreator/templates/wizards/files/nim/wizard.json @@ -9,6 +9,8 @@ "icon": "../../projects/nim/icon.png", "enabled": "%{JS: value('Plugins').indexOf('Nim') >= 0}", + "options": { "key": "DefaultSuffix", "value": "nim" }, + "pages" : [ { @@ -29,7 +31,7 @@ "data": { "source": "file.nim", - "target": "%{JS: Util.fileName(value('TargetPath'), 'nim')}", + "target": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}", "openInEditor": true } } diff --git a/share/qtcreator/templates/wizards/files/nimscript/wizard.json b/share/qtcreator/templates/wizards/files/nimscript/wizard.json index 15f366773b..94012a7167 100644 --- a/share/qtcreator/templates/wizards/files/nimscript/wizard.json +++ b/share/qtcreator/templates/wizards/files/nimscript/wizard.json @@ -9,6 +9,8 @@ "icon": "../../projects/nim/icon.png", "enabled": "%{JS: value('Plugins').indexOf('Nim') >= 0}", + "options": { "key": "DefaultSuffix", "value": "nims" }, + "pages" : [ { @@ -29,7 +31,7 @@ "data": { "source": "file.nims", - "target": "%{JS: Util.fileName(value('TargetPath'), 'nims')}", + "target": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}", "openInEditor": true } } diff --git a/share/qtcreator/templates/wizards/files/python/wizard.json b/share/qtcreator/templates/wizards/files/python/wizard.json index f3bff037b5..a01e32bf4a 100644 --- a/share/qtcreator/templates/wizards/files/python/wizard.json +++ b/share/qtcreator/templates/wizards/files/python/wizard.json @@ -9,6 +9,8 @@ "icon": "icon.png", "enabled": "%{JS: value('Plugins').indexOf('Python') >= 0}", + "options": { "key": "DefaultSuffix", "value": "%{JS: Util.preferredSuffix('text/x-python')}" }, + "pages" : [ { @@ -29,7 +31,7 @@ "data": { "source": "file.py", - "target": "%{JS: Util.fileName(value('TargetPath'), Util.preferredSuffix('text/x-python'))}", + "target": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}", "openInEditor": true } } diff --git a/share/qtcreator/templates/wizards/files/qrc/wizard.json b/share/qtcreator/templates/wizards/files/qrc/wizard.json index 578eed58a1..fe8ea73d17 100644 --- a/share/qtcreator/templates/wizards/files/qrc/wizard.json +++ b/share/qtcreator/templates/wizards/files/qrc/wizard.json @@ -9,6 +9,8 @@ "iconText": "qrc", "enabled": "%{JS: value('Plugins').indexOf('ResourceEditor') >= 0}", + "options": { "key": "DefaultSuffix", "value": "%{JS: Util.preferredSuffix('application/vnd.qt.xml.resource')}" }, + "pages" : [ { @@ -29,7 +31,7 @@ "data": { "source": "file.qrc", - "target": "%{JS: Util.fileName(value('TargetPath'), Util.preferredSuffix('application/vnd.qt.xml.resource'))}", + "target": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}", "openInEditor": true } } diff --git a/share/qtcreator/templates/wizards/files/qtquick2/wizard.json b/share/qtcreator/templates/wizards/files/qtquick2/wizard.json index ead52b1687..0fa070cf93 100644 --- a/share/qtcreator/templates/wizards/files/qtquick2/wizard.json +++ b/share/qtcreator/templates/wizards/files/qtquick2/wizard.json @@ -9,6 +9,8 @@ "iconText": "qml", "enabled": "%{JS: value('Plugins').indexOf('QmlJSEditor') >= 0}", + "options": { "key": "DefaultSuffix", "value": "%{JS: Util.preferredSuffix('text/x-qml')}" }, + "pages" : [ { @@ -29,7 +31,7 @@ "data": { "source": "file.qml.tpl", - "target": "%{JS: Util.fileName(value('TargetPath'), Util.preferredSuffix('text/x-qml'))}", + "target": "%{JS: Util.fileName(value('TargetPath'), value('DefaultSuffix'))}", "openInEditor": true } } diff --git a/share/qtcreator/templates/wizards/files/scratch/wizard.json b/share/qtcreator/templates/wizards/files/scratch/wizard.json index aa0efb0e10..7dcaf0ec23 100644 --- a/share/qtcreator/templates/wizards/files/scratch/wizard.json +++ b/share/qtcreator/templates/wizards/files/scratch/wizard.json @@ -21,7 +21,8 @@ "source": "file.txt", "target": "%{TargetPath}", "overwrite": true, - "openInEditor": true + "openInEditor": true, + "temporary": true } } ] diff --git a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/qtquickapplication/main.qml.tpl b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/qtquickapplication/main.qml.tpl index 6f9e90d517..5d6951fb6f 100644 --- a/share/qtcreator/templates/wizards/projects/qtforpythonapplication/qtquickapplication/main.qml.tpl +++ b/share/qtcreator/templates/wizards/projects/qtforpythonapplication/qtquickapplication/main.qml.tpl @@ -2,8 +2,8 @@ import QtQuick %{QtQuickVersion} import QtQuick.Window %{QtQuickWindowVersion} Window { - title: qsTr("Hello World") width: 640 height: 480 visible: true + title: qsTr("Hello World") } diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/main.qml.tpl b/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/main.qml.tpl index 6d8fab6a21..f915cf35dc 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/main.qml.tpl +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/main.qml.tpl @@ -8,9 +8,9 @@ Window { @if %{UseVirtualKeyboard} id: window @endif - visible: true width: 640 height: 480 + visible: true title: qsTr("Hello World") @if %{UseVirtualKeyboard} diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/scroll/main.qml.tpl b/share/qtcreator/templates/wizards/projects/qtquickapplication/scroll/main.qml.tpl index da4fdc8c2c..0ee9d19083 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/scroll/main.qml.tpl +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/scroll/main.qml.tpl @@ -8,9 +8,9 @@ ApplicationWindow { @if %{UseVirtualKeyboard} id: window @endif - visible: true width: 640 height: 480 + visible: true title: qsTr("Scroll") ScrollView { diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/stack/main.qml.tpl b/share/qtcreator/templates/wizards/projects/qtquickapplication/stack/main.qml.tpl index b6505572c3..f2285c512d 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/stack/main.qml.tpl +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/stack/main.qml.tpl @@ -6,9 +6,9 @@ import %{QtQuickVirtualKeyboardImport} ApplicationWindow { id: window - visible: true width: 640 height: 480 + visible: true title: qsTr("Stack") header: ToolBar { diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/swipe/main.qml.tpl b/share/qtcreator/templates/wizards/projects/qtquickapplication/swipe/main.qml.tpl index bf0da44833..e7f201ccab 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/swipe/main.qml.tpl +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/swipe/main.qml.tpl @@ -8,9 +8,9 @@ ApplicationWindow { @if %{UseVirtualKeyboard} id: window @endif - visible: true width: 640 height: 480 + visible: true title: qsTr("Tabs") SwipeView { diff --git a/share/qtcreator/templates/wizards/projects/vcs/git/wizard.json b/share/qtcreator/templates/wizards/projects/vcs/git/wizard.json index 401be45a75..62bad7ee12 100644 --- a/share/qtcreator/templates/wizards/projects/vcs/git/wizard.json +++ b/share/qtcreator/templates/wizards/projects/vcs/git/wizard.json @@ -41,7 +41,11 @@ "trDisplayName": "Repository:", "type": "LineEdit", "isComplete": "%{JS: Vcs.isValidRepoUrl('%{vcsId}', '%{Repo}')}", - "trIncompleteMessage": "Repository URL is not valid" + "trIncompleteMessage": "Repository URL is not valid", + "data": + { + "historyId": "Git.RemoteUrls" + } }, { "name": "Branch", diff --git a/share/qtcreator/welcomescreen/welcomescreen.qml b/share/qtcreator/welcomescreen/welcomescreen.qml deleted file mode 100644 index 36489f8e13..0000000000 --- a/share/qtcreator/welcomescreen/welcomescreen.qml +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -import QtQuick 2.1 -import widgets 1.0 - -Item { - id: root - - property var fonts: CustomFonts {} - - property int screenDependHeightDistance: Math.min(50, Math.max(16, height / 30)) - - DropArea { - anchors.fill: parent - keys: ["text/uri-list"] - onDropped: { - if ((drop.supportedActions & Qt.CopyAction != 0) - && welcomeMode.openDroppedFiles(drop.urls)) - drop.accept(Qt.CopyAction); - } - } - - SideBar { - id: sideBar - model: pagesModel - anchors.top: parent.top - anchors.bottom: parent.bottom - } - - Rectangle { - id: splitter - color: creatorTheme.Welcome_DividerColor // divider between left and right pane - width: 1 - anchors.top: parent.top - anchors.bottom: parent.bottom - - anchors.left: sideBar.right - - } - - PageLoader { - id: loader - - model: pagesModel - currentIndex: sideBar.currentIndex - - anchors.top: parent.top - anchors.left: splitter.right - anchors.right: parent.right - anchors.bottom: parent.bottom - - color: creatorTheme.Welcome_BackgroundColor - } -} diff --git a/share/qtcreator/welcomescreen/welcomescreen.qmlproject b/share/qtcreator/welcomescreen/welcomescreen.qmlproject deleted file mode 100644 index 0f74672546..0000000000 --- a/share/qtcreator/welcomescreen/welcomescreen.qmlproject +++ /dev/null @@ -1,18 +0,0 @@ -import QmlProject 1.1 - -Project { - mainFile: "welcomescreen.qml" - - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - - importPaths: [ "." ] -} |