aboutsummaryrefslogtreecommitdiffstats
path: root/tests/testapplications
diff options
context:
space:
mode:
authorDamian Jansen <damian.jansen@nokia.com>2011-10-25 13:39:44 +1000
committerQt by Nokia <qt-info@nokia.com>2011-10-28 03:04:20 +0200
commitf57967aa847ccd0abda13c538ed7e384e6540476 (patch)
tree2d70a18a8377e41c251731884d65748e015ba852 /tests/testapplications
parente7d9828cd905a1eb95afe5394c2bc3cbbcc5e0d4 (diff)
Text system tests
Basic tests for the QtQuick Text element Change-Id: I25156055867d9fd4aa6b0b1bad789444894b7960 Reviewed-by: Daniel Kovacic <daniel.kovacic@nokia.com> Reviewed-by: Natalia Shubina <natalia.shubina@nokia.com>
Diffstat (limited to 'tests/testapplications')
-rw-r--r--tests/testapplications/text/Button.qml59
-rw-r--r--tests/testapplications/text/ControlView.qml65
-rw-r--r--tests/testapplications/text/text.qml289
3 files changed, 413 insertions, 0 deletions
diff --git a/tests/testapplications/text/Button.qml b/tests/testapplications/text/Button.qml
new file mode 100644
index 0000000000..95252bfab2
--- /dev/null
+++ b/tests/testapplications/text/Button.qml
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** 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, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+MouseArea {
+ property string buttontext: ""
+ width: parent.width / 4
+ height: parent.height - 4
+ Rectangle {
+ anchors.fill: parent
+ radius: 5
+ color: "lightgray"
+ border.color: "black"
+ }
+ Text {
+ anchors.centerIn: parent
+ text: buttontext
+ color: "black"
+ }
+} \ No newline at end of file
diff --git a/tests/testapplications/text/ControlView.qml b/tests/testapplications/text/ControlView.qml
new file mode 100644
index 0000000000..a3a4a70507
--- /dev/null
+++ b/tests/testapplications/text/ControlView.qml
@@ -0,0 +1,65 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** 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, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+ListView {
+ id: controlviewitem
+ property string controlname: ""
+ property variant controlvalue
+ signal reset
+ height: 40; width: 200; highlightRangeMode: ListView.StrictlyEnforceRange
+ orientation: ListView.Horizontal; snapMode: ListView.SnapOneItem
+ preferredHighlightBegin: 50; preferredHighlightEnd: 150;
+ delegate: Rectangle { height: 40; width: 100; border.color: "black"
+ Text { anchors.centerIn: parent; width: parent.width; text: model.name; elide: Text.ElideRight; horizontalAlignment: Text.AlignHCenter } }
+ header: headfoot
+ footer: headfoot
+ Component {
+ id: headfoot
+ Rectangle {
+ MouseArea { id: resetbutton; anchors.fill: parent; onClicked: { reset(); } }
+ color: "lightgray"; height: 40; width: 50; border.color: "gray"
+ Text { id: headertext; anchors.centerIn: parent; wrapMode: Text.WrapAnywhere
+ rotation: -40; text: controlviewitem.controlname; font.pixelSize: 12; horizontalAlignment: Text.AlignHCenter }
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/testapplications/text/text.qml b/tests/testapplications/text/text.qml
new file mode 100644
index 0000000000..28166c962c
--- /dev/null
+++ b/tests/testapplications/text/text.qml
@@ -0,0 +1,289 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** 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, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Rectangle {
+ height: 360; width: 640
+
+ Connections { target: pointvalue; onReset: { textelement.font.pointSize = 12 } }
+
+ Item {
+ id: textpanel
+ height: 360
+ width: 440
+ Text {
+ id: textelement
+ height: parent.height - 20; width: parent.width - 20
+ anchors.centerIn: parent
+
+ text: { textvalue.model.get(textvalue.currentIndex).value }
+ textFormat: { formatvalue.model.get(formatvalue.currentIndex).value }
+ color: { colorvalue.model.get(colorvalue.currentIndex).value }
+ elide: { elidevalue.model.get(elidevalue.currentIndex).value }
+ font.bold: { boldvalue.model.get(boldvalue.currentIndex).value }
+ font.italic: { italicsvalue.model.get(italicsvalue.currentIndex).value }
+ font.capitalization: { capsvalue.model.get(capsvalue.currentIndex).value }
+ font.family: { familyvalue.model.get(familyvalue.currentIndex).value }
+ font.strikeout: strikeoutvalue.currentIndex
+ font.underline: underlinevalue.currentIndex
+ font.letterSpacing: { lspacingvalue.model.get(lspacingvalue.currentIndex).value }
+ font.wordSpacing: { wspacingvalue.model.get(wspacingvalue.currentIndex).value }
+ font.weight: { weightvalue.model.get(weightvalue.currentIndex).value }
+ font.pointSize: { pointvalue.model.get(pointvalue.currentIndex).value }
+ font.pixelSize: { pixelvalue.model.get(pixelvalue.currentIndex).value }
+ horizontalAlignment: { halignvalue.model.get(halignvalue.currentIndex).value }
+ verticalAlignment: { valignvalue.model.get(valignvalue.currentIndex).value }
+ wrapMode: { wrapvalue.model.get(wrapvalue.currentIndex).value }
+ maximumLineCount: { maxlinevalue.model.get(maxlinevalue.currentIndex).value }
+ lineHeight: { lineheightvalue.model.get(lineheightvalue.currentIndex).value }
+ lineHeightMode: { lineheightmodevalue.model.get(lineheightmodevalue.currentIndex).value }
+ smooth: { smoothvalue.model.get(smoothvalue.currentIndex).value }
+ style: { stylevalue.model.get(stylevalue.currentIndex).value }
+ styleColor: { stylecolorvalue.model.get(stylecolorvalue.currentIndex).value }
+
+ Rectangle{ color: "transparent"; border.color: "green"; anchors.fill: parent }
+ }
+
+ Text {
+ id: infopanel
+ anchors { left: parent.left; leftMargin: 10; bottom: parent.bottom }
+ height: 150; color: "black"; width: 150
+ function elidename() {
+ switch (textelement.elide) {
+ case Text.ElideNone: return "None";
+ case Text.ElideLeft: return "Left";
+ case Text.ElideMiddle: return "Middle";
+ case Text.ElideRight: return "Right";
+ }
+ }
+ text:
+ "LineCount: "+textelement.lineCount+" of "+textelement.maximumLineCount+
+ "\nPaintedHeight/Width: "+textelement.paintedHeight+"/"+textelement.paintedWidth+
+ "\nPointSize: "+textelement.font.pointSize+
+ "\nPixelSize: "+textelement.font.pixelSize+
+ "\nTruncated: "+textelement.truncated+
+ "\nElide: "+ elidename()
+
+ }
+ }
+
+ Item {
+ id: controlpanel
+ width: 200; height: parent.height
+ anchors.right: parent.right
+ Rectangle { anchors.fill: parent; color: "transparent"; border.color: "black" }
+ ListView { id: controls; model: controlsmodel; anchors.fill: parent; clip: true; cacheBuffer: 500 }
+ VisualItemModel {
+ id: controlsmodel
+ ControlView {
+ id: textvalue
+ controlname: "Text"
+ model: textmodel
+ ListModel { id: textmodel }
+ Component.onCompleted: {
+ textmodel.append({ "name": "Basic",
+ "value": "Qt Quick is a collection of technologies that are designed to help developers create the kind of intuitive, "+
+ "modern, fluid user interfaces that are increasingly used on mobile phones, media players, set-top boxes and other "+
+ "portable devices.\n"+
+ "Qt Quick consists of a rich set of user interface elements, a declarative language for describing user interfaces "+
+ "and a language runtime. "+
+ "A collection of C++ APIs is used to integrate these high level features with classic Qt applications."});
+ textmodel.append({ "name": "Short",
+ "value": "Button Text."});
+ textmodel.append({ "name": "Long",
+ "value": "QtQuickisacollectionoftechnologiesthataredesignedtohelpdeveloperscreatethekindofintuitive,"+
+ "modern,fluiduserinterfacesthatareincreasinglyusedonmobilephones,mediaplayers,set-topboxesandother"+
+ "portabledevices."});
+ textmodel.append({ "name": "Rich",
+ "value": "<b>Qt Quick</b> is a collection of technologies that are designed to help developers create the kind of <i>intuitive, "+
+ "modern, fluid</i> user interfaces that are increasingly used on mobile phones, media players, set-top boxes and other "+
+ "portable devices.<br>"+
+ "Qt Quick consists of a rich set of user interface elements, a declarative language for describing user interfaces "+
+ "and a language runtime. "+
+ "A collection of C++ APIs is used to integrate these high level features with classic Qt applications."});
+ }
+ }
+ ControlView {
+ id: formatvalue
+ controlname: "Format"
+ model: ListModel { ListElement { name: "Auto"; value: Text.AutoText } ListElement { name: "Plain"; value: Text.PlainText }
+ ListElement { name: "Rich"; value: Text.RichText } ListElement { name: "Styled"; value: Text.StyledText } } }
+ ControlView {
+ id: colorvalue
+ controlname: "Color"
+ model: ListModel { ListElement { name: "Red"; value: "red" }
+ ListElement { name: "Green"; value: "green" } ListElement { name: "Blue"; value: "blue" } }
+ }
+ ControlView {
+ id: elidevalue
+ controlname: "Elide"
+ model: ListModel { ListElement { name: "None"; value: Text.ElideNone } ListElement { name: "Left"; value: Text.ElideLeft }
+ ListElement { name: "Middle"; value: Text.ElideMiddle } ListElement { name: "Right"; value: Text.ElideRight } }
+ }
+ ControlView {
+ id: boldvalue
+ controlname: "Bold"
+ model: ListModel { ListElement { name: "Off"; value: false } ListElement { name: "On"; value: true } }
+ }
+ ControlView {
+ id: italicsvalue
+ controlname: "Italic"
+ model: ListModel { ListElement { name: "Off"; value: false } ListElement { name: "On"; value: true } }
+ }
+ ControlView {
+ id: capsvalue
+ controlname: "Cap10n"
+ model: ListModel {
+ ListElement { name: "Mixed"; value: Font.MixedCase } ListElement { name: "Upper"; value: Font.AllUppercase }
+ ListElement { name: "Lower"; value: Font.AllLowercase } ListElement { name: "SmallCaps"; value: Font.SmallCaps }
+ ListElement { name: "Capitals"; value: Font.Capitalize }
+ }
+ }
+ ControlView {
+ id: familyvalue
+ controlname: "Font"
+ property variant fontfamilies
+ function setModel() {
+ familiesmodel.clear();
+ for (var i = 0; i < fontfamilies.length; ++i) {
+ familiesmodel.append({ "name": fontfamilies[i], "value": fontfamilies[i] });
+ }
+ familyvalue.currentIndex = 0;
+ }
+ model: familiesmodel
+ ListModel { id: familiesmodel }
+ Component.onCompleted: { fontfamilies = Qt.fontFamilies(); setModel(); }
+ }
+ ControlView {
+ id: lspacingvalue
+ controlname: "LSpacing"
+ model: ListModel { ListElement { name: "0"; value: 0 } ListElement { name: "1"; value: 1 } ListElement { name: "2.5"; value: 2.5 } } }
+ ControlView {
+ id: wspacingvalue
+ controlname: "WSpacing"
+ model: ListModel { ListElement { name: "-1"; value: -1 } ListElement { name: "8"; value: 8 } ListElement { name: "20"; value: 20 } } }
+ ControlView {
+ id: pixelvalue
+ controlname: "Pixel"
+ model: ListModel { ListElement { name: "-1"; value: -1 } ListElement { name: "8"; value: 8 } ListElement { name: "20"; value: 20 } } }
+ ControlView {
+ id: pointvalue
+ controlname: "Point"
+ model: ListModel { ListElement { name: "-1"; value: -1 } ListElement { name: "8"; value: 8 } ListElement { name: "20"; value: 20 } } }
+ ControlView {
+ id: strikeoutvalue
+ controlname: "Strike"
+ model: ListModel { ListElement { name: "Off"; value: false } ListElement { name: "On"; value: true } } }
+ ControlView {
+ id: underlinevalue
+ controlname: "U_line"
+ model: ListModel { ListElement { name: "Off"; value: false } ListElement { name: "On"; value: true } } }
+ ControlView {
+ id: weightvalue
+ controlname: "Weight"
+ model: ListModel { ListElement { name: "Light"; value: Font.Light } ListElement { name: "Normal"; value: Font.Normal }
+ ListElement { name: "DemiBold"; value: Font.DemiBold } ListElement { name: "Bold"; value: Font.Bold }
+ ListElement { name: "Black"; value: Font.Black } }
+ Component.onCompleted: { currentIndex = 1 } // set to default
+ }
+ ControlView {
+ id: halignvalue
+ controlname: "HAlign"
+ model: ListModel { ListElement { name: "Left"; value: Text.AlignLeft } ListElement { name: "Right"; value: Text.AlignRight }
+ ListElement { name: "Center"; value: Text.AlignHCenter } ListElement { name: "Justify"; value: Text.AlignJustify } } }
+ ControlView {
+ id: valignvalue
+ controlname: "VAlign"
+ model: ListModel { ListElement { name: "Top"; value: Text.AlignTop } ListElement { name: "Bottom"; value: Text.AlignBottom }
+ ListElement { name: "Center"; value: Text.AlignVCenter } } }
+ ControlView {
+ id: maxlinevalue
+ controlname: "Lines"
+ model: ListModel { ListElement { name: "Max"; value: 2147483647 } ListElement { name: "1"; value: 1 }
+ ListElement { name: "2"; value: 2 } ListElement { name: "10"; value: 10 }} }
+ ControlView {
+ id: lineheightvalue
+ controlname: "LHeight"
+ model: ListModel { ListElement { name: "1"; value: 1.0 } ListElement { name: "2"; value: 2.0 } ListElement { name: "30"; value: 30.0 }} }
+ ControlView {
+ id: lineheightmodevalue
+ controlname: "LHMode"
+ model: ListModel {
+ ListElement { name: "Multiply"; value: Text.ProportionalHeight } ListElement { name: "Fixed"; value: Text.FixedHeight } } }
+ ControlView {
+ id: smoothvalue
+ controlname: "Smooth"
+ model: ListModel { ListElement { name: "Off"; value: false } ListElement { name: "On"; value: true } } }
+ ControlView {
+ id: stylevalue
+ controlname: "Style"
+ model: ListModel { ListElement { name: "Normal"; value: Text.Normal } ListElement { name: "Outline"; value: Text.Outline }
+ ListElement { name: "Raised"; value: Text.Raised } ListElement { name: "Sunken"; value: Text.Sunken } } }
+ ControlView {
+ id: stylecolorvalue
+ controlname: "SColor"
+ model: ListModel { ListElement { name: "Green"; value: "green" } ListElement { name: "Blue"; value: "blue" } } }
+ ControlView {
+ id: wrapvalue
+ controlname: "Wrap"
+ model: ListModel { ListElement { name: "None"; value: Text.NoWrap } ListElement { name: "Word"; value: Text.WordWrap }
+ ListElement { name: "Anywhere"; value: Text.WrapAnywhere } ListElement { name: "Wrap"; value: Text.Wrap } } }
+ }
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+