diff options
Diffstat (limited to 'tests/manual')
| -rw-r--r-- | tests/manual/texthandles/main.cpp | 49 | ||||
| -rw-r--r-- | tests/manual/texthandles/main.qml | 169 | ||||
| -rw-r--r-- | tests/manual/texthandles/texthandles.pro | 11 | ||||
| -rw-r--r-- | tests/manual/texthandles/texthandles.qmlproject | 16 | ||||
| -rw-r--r-- | tests/manual/texthandles/texthandles.qrc | 5 |
5 files changed, 250 insertions, 0 deletions
diff --git a/tests/manual/texthandles/main.cpp b/tests/manual/texthandles/main.cpp new file mode 100644 index 000000000..210d777ec --- /dev/null +++ b/tests/manual/texthandles/main.cpp @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Quick Controls module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QGuiApplication> +#include <QQmlApplicationEngine> + +int main(int argc, char *argv[]) +{ + QGuiApplication app(argc, argv); + QQmlApplicationEngine engine(QUrl("qrc:/main.qml")); + return app.exec(); +} diff --git a/tests/manual/texthandles/main.qml b/tests/manual/texthandles/main.qml new file mode 100644 index 000000000..e5b8b3db1 --- /dev/null +++ b/tests/manual/texthandles/main.qml @@ -0,0 +1,169 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt Quick Controls module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 2.1 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 1.1 +import QtQuick.Controls.Styles 1.1 + +ApplicationWindow { + id: window + + width: 800 + height: 480 + visible: true + + toolBar: ToolBar { + RowLayout { + anchors.fill: parent + anchors.margins: window.spacing + CheckBox { + id: handleBox + text: "Handles" + checked: true + } + CheckBox { + id: outlineBox + text: "Outlines" + checked: false + enabled: handleBox.checked + } + Item { width: 1; height: 1; Layout.fillWidth: true } + CheckBox { + id: wrapBox + text: "Wrap" + checked: true + } + } + } + + property int spacing: edit.font.pixelSize / 2 + + property string loremIpsum: "Lorem ipsum dolor sit amet, <a href='http://qt.digia.com'>consectetur</a> adipiscing elit. " + + "Morbi varius a lorem ac blandit. Donec eu nisl eu nisi consectetur commodo. " + + "Vestibulum tincidunt <img src='http://qt.digia.com/Static/Images/QtLogo.png'>ornare</img> tempor. " + + "Nulla dolor dui, vehicula quis tempor quis, ullamcorper vel dui. " + + "Integer semper suscipit ante, et luctus magna malesuada sed. " + + "Sed ipsum velit, pellentesque non aliquam eu, bibendum ac magna. " + + "Donec et luctus dolor. Nulla semper quis neque vitae cursus. " + + "Etiam auctor, ipsum vel varius tincidunt, erat lacus pulvinar sem, eu egestas leo nulla non felis. " + + "Maecenas hendrerit commodo turpis, ac convallis leo congue id. " + + "Donec et egestas ante, a dictum sapien." + + ColumnLayout { + spacing: window.spacing + anchors.margins: window.spacing + anchors.fill: parent + + TextField { + id: field + z: 1 + text: loremIpsum + Layout.fillWidth: true + + style: TextFieldStyle { + cursorHandle: handleBox.checked ? cursorDelegate : null + selectionHandle: handleBox.checked ? selectionDelegate : null + } + } + + TextArea { + id: edit + Layout.fillWidth: true + Layout.fillHeight: true + + textFormat: Qt.RichText + wrapMode: wrapBox.checked ? Text.Wrap : Text.NoWrap + text: loremIpsum + "<p>" + loremIpsum + "<p>" + loremIpsum + "<p>" + loremIpsum + + style: TextAreaStyle { + cursorHandle: handleBox.checked ? cursorDelegate : null + selectionHandle: handleBox.checked ? selectionDelegate : null + } + } + } + + Component { + id: selectionDelegate + Rectangle { + x: -width + edit.font.pixelSize / 2 + y: (styleData.lineHeight - height) / 2 + width: edit.font.pixelSize * 2.5 + height: edit.font.pixelSize * 2.5 + border.width: outlineBox.checked ? 1 : 0 + radius: width / 4 + color: "transparent" + Rectangle { + color: "white" + border.width: 1 + radius: width / 2 + width: height + height: edit.font.pixelSize / 2 + anchors.right: parent.right + anchors.rightMargin: width / 2 + anchors.verticalCenter: parent.verticalCenter + visible: control.activeFocus && control.selectionStart !== control.selectionEnd + } + } + } + + Component { + id: cursorDelegate + Rectangle { + x: control.selectionStart !== control.selectionEnd ? -edit.font.pixelSize / 2 : -width / 2 + y: (styleData.lineHeight - height) / 2 + width: edit.font.pixelSize * 2.5 + height: edit.font.pixelSize * 2.5 + border.width: outlineBox.checked ? 1 : 0 + radius: width / 4 + color: "transparent" + Rectangle { + color: "white" + border.width: 1 + radius: width / 2 + width: height + height: edit.font.pixelSize / 2 + anchors.left: parent.left + anchors.leftMargin: width / 2 + anchors.verticalCenter: parent.verticalCenter + visible: control.activeFocus && control.selectionStart !== control.selectionEnd + } + } + } +} diff --git a/tests/manual/texthandles/texthandles.pro b/tests/manual/texthandles/texthandles.pro new file mode 100644 index 000000000..0c7c00d84 --- /dev/null +++ b/tests/manual/texthandles/texthandles.pro @@ -0,0 +1,11 @@ +TARGET = texthandles +QT += qml quick + +SOURCES += \ + $$PWD/main.cpp + +OTHER_FILES += \ + $$PWD/main.qml + +RESOURCES += \ + texthandles.qrc diff --git a/tests/manual/texthandles/texthandles.qmlproject b/tests/manual/texthandles/texthandles.qmlproject new file mode 100644 index 000000000..e5a8bf02c --- /dev/null +++ b/tests/manual/texthandles/texthandles.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.1 + +Project { + mainFile: "main.qml" + + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "." + } + JavaScriptFiles { + directory: "." + } + ImageFiles { + directory: "." + } +} diff --git a/tests/manual/texthandles/texthandles.qrc b/tests/manual/texthandles/texthandles.qrc new file mode 100644 index 000000000..5f6483ac3 --- /dev/null +++ b/tests/manual/texthandles/texthandles.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/"> + <file>main.qml</file> + </qresource> +</RCC> |
