From 37891d92bc1c13d035b6eaefac5e45d0ea638b0f Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 13 Feb 2017 14:58:27 +0100 Subject: [PATCH] Doc: Remove Qt Quick UI Forms example and tutorial It uses types that do not exist in Qt Quick Controls 2, and Qt Creator version 4.3 no longer has a wizard for using the older controls. Change-Id: I42884ca75eefe957493fcb47d6b243a93341b79c Reviewed-by: Thomas Hartmann --- .../uiforms/CustomerModelSingleton.qml | 140 ----- doc/examples/uiforms/CustomerTableView.qml | 78 --- doc/examples/uiforms/History.qml | 83 --- doc/examples/uiforms/HistoryTableView.qml | 82 --- doc/examples/uiforms/MainForm.ui.qml | 96 ---- doc/examples/uiforms/Notes.qml | 84 --- doc/examples/uiforms/NotesForm.ui.qml | 103 ---- doc/examples/uiforms/Settings.qml | 96 ---- doc/examples/uiforms/SettingsForm.ui.qml | 162 ------ doc/examples/uiforms/deployment.pri | 27 - doc/examples/uiforms/main.cpp | 66 --- doc/examples/uiforms/main.qml | 140 ----- doc/examples/uiforms/qml.qrc | 14 - doc/examples/uiforms/uiforms.pro | 15 - ...ldesigner-uiforms-example-about-dialog.png | Bin 6137 -> 0 bytes .../qmldesigner-uiforms-example-main-view.png | Bin 28914 -> 0 bytes ...ldesigner-uiforms-example-settings-tab.png | Bin 24326 -> 0 bytes doc/images/qmldesigner-uiforms-example.png | Bin 13441 -> 0 bytes .../qmldesigner-uiforms-reset-height.png | Bin 3095 -> 0 bytes .../projects/creator-projects-overview.qdoc | 2 +- doc/src/qtcreator.qdoc | 1 - .../qtquick/creator-mobile-app-tutorial.qdoc | 2 +- doc/src/qtquick/qtquick-uiforms-tutorial.qdoc | 488 ------------------ 23 files changed, 2 insertions(+), 1677 deletions(-) delete mode 100644 doc/examples/uiforms/CustomerModelSingleton.qml delete mode 100644 doc/examples/uiforms/CustomerTableView.qml delete mode 100644 doc/examples/uiforms/History.qml delete mode 100644 doc/examples/uiforms/HistoryTableView.qml delete mode 100644 doc/examples/uiforms/MainForm.ui.qml delete mode 100644 doc/examples/uiforms/Notes.qml delete mode 100644 doc/examples/uiforms/NotesForm.ui.qml delete mode 100644 doc/examples/uiforms/Settings.qml delete mode 100644 doc/examples/uiforms/SettingsForm.ui.qml delete mode 100644 doc/examples/uiforms/deployment.pri delete mode 100644 doc/examples/uiforms/main.cpp delete mode 100644 doc/examples/uiforms/main.qml delete mode 100644 doc/examples/uiforms/qml.qrc delete mode 100644 doc/examples/uiforms/uiforms.pro delete mode 100644 doc/images/qmldesigner-uiforms-example-about-dialog.png delete mode 100644 doc/images/qmldesigner-uiforms-example-main-view.png delete mode 100644 doc/images/qmldesigner-uiforms-example-settings-tab.png delete mode 100644 doc/images/qmldesigner-uiforms-example.png delete mode 100644 doc/images/qmldesigner-uiforms-reset-height.png delete mode 100644 doc/src/qtquick/qtquick-uiforms-tutorial.qdoc diff --git a/doc/examples/uiforms/CustomerModelSingleton.qml b/doc/examples/uiforms/CustomerModelSingleton.qml deleted file mode 100644 index e27bc0142fd..00000000000 --- a/doc/examples/uiforms/CustomerModelSingleton.qml +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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$ -** -****************************************************************************/ - -pragma Singleton - -import QtQuick 2.0 - -ListModel { - property QtObject selection - ListElement { - customerId: "15881123" - firstName: "Julia" - title: "Ms." - lastName: "Jefferson" - email: "Julia@example.com" - address: "Spandia Avenue, Suite 610" - city: "Toronto" - zipCode: "92334" - phoneNumber: "0803-033330" - notes: "Very demanding customer." - history: "21.4.2014|Order|coffee~23.4.2014|Order|poster~29.4.2014|Invoice|poster 40$~05.5.2014|Overdue Notice|poster 40$" - } - - ListElement { - customerId: "29993496" - firstName: "Tim" - lastName: "Northington" - title: "Mr." - email: "Northington@example.com" - address: "North Fifth Street 55" - city: "San Jose" - zipCode: "95112" - phoneNumber: "09000-3330" - notes: "Very good customer." - history: "18.4.2014|Order|orange juice~23.4.2014|Order|chair~24.4.2014|Complaint|Chair is broken." - } - - ListElement { - customerId: "37713567" - firstName: "Daniel" - lastName: "Krumm" - title: "Mr." - email: "Krumm@example.com" - address: "Waterfront 14" - city: "Berlin" - zipCode: "12334" - phoneNumber: "0708093330" - notes: "This customer has a lot of Complaints." - history: "15.4.2014|Order|table~25.4.2014|Return|table~28.4.2014|Complaint|Table had wrong color." - } - - ListElement { - customerId: "45817387" - firstName: "Sandra" - lastName: "Booth" - title: "Ms." - email: "Sandrab@example.com" - address: "Folsom Street 23" - city: "San Francisco" - zipCode: "94103" - phoneNumber: "0103436370" - notes: "This customer is not paying." - history: "22.4.2014|Order|coffee~23.4.2014|Order|smartphone~29.4.2014|Invoice|smartphone 200$~05.5.2014|Overdue Notice|smartphone 200$" - } - - ListElement { - customerId: "588902396" - firstName: "Lora" - lastName: "Beckner" - title: "Ms." - email: "LoraB@example.com" - address: " W Wilson Apt 3" - city: "Los Angeles" - zipCode: "90086" - phoneNumber: "0903436360" - notes: "This customer usually pays late." - history: "17.4.2014|Order|soft drink~23.4.2014|Order|computer~29.4.2014|Invoice|computer 1200$~07.5.2014|Overdue Notice|computer 1200$" - } - - ListElement { - customerId: "78885693" - firstName: "Vanessa" - lastName: "Newbury" - title: "Ms." - email: "VanessaN@example.com" - address: "Madison Ave. 277" - city: "New York" - zipCode: "10016" - phoneNumber: "0503053530" - notes: "Deliveries sometime do not arrive on time." - history: "19.4.2014|Order|coffee~23.4.2014|Order|bicycle~29.4.2014|Invoice|bicycle 500$~06.5.2014|Overdue Notice|bicycle 500$" - } -} diff --git a/doc/examples/uiforms/CustomerTableView.qml b/doc/examples/uiforms/CustomerTableView.qml deleted file mode 100644 index d4b0e14841a..00000000000 --- a/doc/examples/uiforms/CustomerTableView.qml +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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.4 -import QtQuick.Controls 1.3 -import QtQuick.Layouts 1.1 - -TableView { - id: tableView - - property int columnWidth: width / 3 - 1 - Layout.minimumWidth: splitView1.width * 2 / 5 - - TableViewColumn { - role: "customerId" - title: qsTr("Customer Id") - width: tableView.columnWidth - } - - TableViewColumn { - role: "firstName" - title: qsTr("First Name") - width: tableView.columnWidth - } - - TableViewColumn { - role: "lastName" - title: qsTr("Last Name") - width: tableView.columnWidth - } -} diff --git a/doc/examples/uiforms/History.qml b/doc/examples/uiforms/History.qml deleted file mode 100644 index 106a034951c..00000000000 --- a/doc/examples/uiforms/History.qml +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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.4 -import my.customermodel.singleton 1.0 - -HistoryTableView { - - function readData() { - CustomerModel.selection.forEach(function (rowIndex) { - - var history = CustomerModel.get(rowIndex).history - var entries = history.split("~") - - model.clear() - - var index - for (index = 0; index < entries.length; index++) { - var entry = entries[index] - var data = entry.split("|") - model.append({ - date: data[0], - type: data[1], - text: data[2] - }) - } - }) - } - - Connections { - target: CustomerModel.selection - onSelectionChanged: readData() - } - - Component.onCompleted: readData() -} diff --git a/doc/examples/uiforms/HistoryTableView.qml b/doc/examples/uiforms/HistoryTableView.qml deleted file mode 100644 index 07908281c0c..00000000000 --- a/doc/examples/uiforms/HistoryTableView.qml +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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.4 -import QtQuick.Controls 1.3 -import QtQuick.Layouts 1.1 - -TableView { - id: tableView - - property int columnWidth: width / 3 - - anchors.fill: parent - - TableViewColumn { - role: "date" - title: qsTr("Date") - width: tableView.columnWidth - } - - TableViewColumn { - role: "type" - title: qsTr("Type") - width: tableView.columnWidth - } - - TableViewColumn { - role: "text" - title: qsTr("Description") - width: tableView.columnWidth - } - - model: ListModel { - } -} diff --git a/doc/examples/uiforms/MainForm.ui.qml b/doc/examples/uiforms/MainForm.ui.qml deleted file mode 100644 index ecbc03f80ac..00000000000 --- a/doc/examples/uiforms/MainForm.ui.qml +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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.4 -import QtQuick.Controls 1.2 -import QtQuick.Layouts 1.1 - -Item { - property alias tableView1: tableView1 - - SplitView { - id: splitView1 - anchors.fill: parent - - CustomerTableView { - id: tableView1 - } - - TabView { - id: tabView1 - width: 360 - height: 300 - - Tab { - id: tab1 - source: "Settings.qml" - title: "Customer Settings" - } - - Tab { - id: tab2 - x: -3 - y: 5 - source: "Notes.qml" - title: "Customer Notes" - } - - Tab { - id: tab3 - x: -7 - y: -7 - source: "History.qml" - title: "Customer History" - } - } - } - -} - diff --git a/doc/examples/uiforms/Notes.qml b/doc/examples/uiforms/Notes.qml deleted file mode 100644 index be4c4ae0c96..00000000000 --- a/doc/examples/uiforms/Notes.qml +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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.4 -import my.customermodel.singleton 1.0 - -NotesForm { - id: form - - function readData() { - CustomerModel.selection.forEach(function (rowIndex) { - form.textArea1.text = CustomerModel.get(rowIndex).notes - }) - - save.enabled = true - cancel.enabled = true - form.textArea1.enabled = true - } - - function writeData() { - CustomerModel.selection.forEach(function (rowIndex) { - var data = CustomerModel.get(rowIndex) - data.notes = form.textArea1.text - CustomerModel.set(rowIndex, data) - }) - } - - cancel.onClicked: readData() - save.onClicked: writeData() - - Connections { - target: CustomerModel.selection - onSelectionChanged: form.readData() - } - - Component.onCompleted: readData() -} diff --git a/doc/examples/uiforms/NotesForm.ui.qml b/doc/examples/uiforms/NotesForm.ui.qml deleted file mode 100644 index 46c72cdc4b4..00000000000 --- a/doc/examples/uiforms/NotesForm.ui.qml +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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.4 -import QtQuick.Layouts 1.0 -import QtQuick.Controls 1.2 - -Item { - id: content - width: 400 - height: 400 - property alias textArea1: textArea1 - property alias cancel: cancel - property alias save: save - - ColumnLayout { - id: columnLayout1 - height: 100 - anchors.right: parent.right - anchors.rightMargin: 12 - anchors.left: parent.left - anchors.leftMargin: 12 - anchors.top: parent.top - anchors.topMargin: 12 - - TextArea { - id: textArea1 - Layout.fillHeight: true - Layout.fillWidth: true - } - } - - RowLayout { - id: rowLayout1 - width: 100 - anchors.right: parent.right - anchors.rightMargin: 12 - anchors.bottom: parent.bottom - anchors.bottomMargin: 12 - - Button { - id: save - text: qsTr("Save") - Layout.fillHeight: true - Layout.fillWidth: true - } - - Button { - id: cancel - text: qsTr("Cancel") - Layout.fillHeight: true - Layout.fillWidth: true - } - } -} - diff --git a/doc/examples/uiforms/Settings.qml b/doc/examples/uiforms/Settings.qml deleted file mode 100644 index 6240d75ef68..00000000000 --- a/doc/examples/uiforms/Settings.qml +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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.4 -import my.customermodel.singleton 1.0 - -SettingsForm { - id: form - anchors.fill: parent - - function readData() { - - form.title.model = ["Mr.", "Ms."] - - CustomerModel.selection.forEach(function (rowIndex) { - form.firstName.text = CustomerModel.get(rowIndex).firstName - form.lastName.text = CustomerModel.get(rowIndex).lastName - form.customerId.text = CustomerModel.get(rowIndex).customerId - form.title.currentIndex = form.title.find(CustomerModel.get(rowIndex).title) - }) - - save.enabled = true - cancel.enabled = true - gridLayout1.enabled = true - } - - function writeData() { - CustomerModel.selection.forEach(function (rowIndex) { - var notes = CustomerModel.get(rowIndex).notes - CustomerModel.set(rowIndex, { - firstName: form.firstName.text, - lastName: form.lastName.text, - customerId: form.customerId.text, - title: form.title.currentText, - notes: notes - }) - }) - } - - cancel.onClicked: readData() - save.onClicked: writeData() - - Connections { - target: CustomerModel.selection - onSelectionChanged: form.readData() - } - - Component.onCompleted: readData() -} diff --git a/doc/examples/uiforms/SettingsForm.ui.qml b/doc/examples/uiforms/SettingsForm.ui.qml deleted file mode 100644 index c5600440b5d..00000000000 --- a/doc/examples/uiforms/SettingsForm.ui.qml +++ /dev/null @@ -1,162 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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.4 -import QtQuick.Controls 1.2 -import QtQuick.Layouts 1.0 - -Item { - id: content - - property alias customerId: customerId - property alias lastName: lastName - property alias firstName: firstName - property alias gridLayout1: gridLayout1 - property alias rowLayout1: rowLayout1 - - property alias save: save - property alias cancel: cancel - property alias title: title - - GridLayout { - id: gridLayout1 - rows: 4 - columns: 3 - rowSpacing: 8 - columnSpacing: 8 - anchors.right: parent.right - anchors.rightMargin: 12 - anchors.left: parent.left - anchors.leftMargin: 12 - anchors.top: parent.top - anchors.topMargin: 12 - - Label { - id: label1 - text: qsTr("Title") - } - - Label { - id: label2 - text: qsTr("First Name") - } - - Label { - id: label3 - text: qsTr("Last Name") - } - - - ComboBox { - id: title - } - - - TextField { - id: firstName - text: "" - Layout.fillHeight: true - Layout.fillWidth: true - placeholderText: qsTr("First Name") - } - - - - TextField { - id: lastName - Layout.fillHeight: true - Layout.fillWidth: true - placeholderText: qsTr("Last Name") - } - - - - - Label { - id: label4 - text: qsTr("Customer Id") - Layout.fillWidth: true - Layout.fillHeight: true - } - - TextField { - id: customerId - width: 0 - height: 0 - Layout.fillHeight: true - Layout.fillWidth: true - Layout.columnSpan: 3 - placeholderText: qsTr("Customer Id") - } - } - - RowLayout { - id: rowLayout1 - anchors.right: parent.right - anchors.rightMargin: 12 - anchors.bottom: parent.bottom - anchors.bottomMargin: 12 - - Button { - id: save - text: qsTr("Save") - Layout.fillHeight: true - Layout.fillWidth: true - } - - Button { - id: cancel - text: qsTr("Cancel") - Layout.fillHeight: true - Layout.fillWidth: true - } - } -} - diff --git a/doc/examples/uiforms/deployment.pri b/doc/examples/uiforms/deployment.pri deleted file mode 100644 index 5441b63dc85..00000000000 --- a/doc/examples/uiforms/deployment.pri +++ /dev/null @@ -1,27 +0,0 @@ -android-no-sdk { - target.path = /data/user/qt - export(target.path) - INSTALLS += target -} else:android { - x86 { - target.path = /libs/x86 - } else: armeabi-v7a { - target.path = /libs/armeabi-v7a - } else { - target.path = /libs/armeabi - } - export(target.path) - INSTALLS += target -} else:unix { - isEmpty(target.path) { - qnx { - target.path = /tmp/$${TARGET}/bin - } else { - target.path = /opt/$${TARGET}/bin - } - export(target.path) - } - INSTALLS += target -} - -export(INSTALLS) diff --git a/doc/examples/uiforms/main.cpp b/doc/examples/uiforms/main.cpp deleted file mode 100644 index d43c2f0fb32..00000000000 --- a/doc/examples/uiforms/main.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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 -#include -#include - -int main(int argc, char *argv[]) -{ - QApplication app(argc, argv); - - QUrl resourceUrl(QStringLiteral("qrc:/CustomerModelSingleton.qml")); - qmlRegisterSingletonType(resourceUrl, "my.customermodel.singleton", 1, 0, "CustomerModel"); - - QQmlApplicationEngine engine; - engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); - - return app.exec(); -} diff --git a/doc/examples/uiforms/main.qml b/doc/examples/uiforms/main.qml deleted file mode 100644 index 7bba89e22be..00000000000 --- a/doc/examples/uiforms/main.qml +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, 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 The Qt Company Ltd 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.4 -import QtQuick.Controls 1.2 -import QtQuick.Dialogs 1.2 -import QtQuick.Layouts 1.1 -import my.customermodel.singleton 1.0 - -ApplicationWindow { - visible: true - width: 640 - height: 480 - title: qsTr("Qt Quick UI Forms") - - menuBar: MenuBar { - Menu { - title: qsTr("&File") - MenuItem { - text: qsTr("E&xit") - onTriggered: Qt.quit(); - } - } - Menu { - title: qsTr("&Edit") - MenuItem { - action: cutAction - } - MenuItem { - action: copyAction - } - MenuItem { - action: pasteAction - } - } - Menu { - title: qsTr("&Help") - MenuItem { - text: qsTr("About...") - onTriggered: aboutDialog.open() - } - } - } - - Action { - id: copyAction - text: qsTr("&Copy") - shortcut: StandardKey.Copy - iconName: "edit-copy" - enabled: (!!activeFocusItem && !!activeFocusItem["copy"]) - onTriggered: activeFocusItem.copy() - } - - Action { - id: cutAction - text: qsTr("Cu&t") - shortcut: StandardKey.Cut - iconName: "edit-cut" - enabled: (!!activeFocusItem && !!activeFocusItem["cut"]) - onTriggered: activeFocusItem.cut() - } - - Action { - id: pasteAction - text: qsTr("&Paste") - shortcut: StandardKey.Paste - iconName: "edit-paste" - enabled: (!!activeFocusItem && !!activeFocusItem["paste"]) - onTriggered: activeFocusItem.paste() - } - - MainForm { - anchors.fill: parent - Layout.minimumWidth: 800 - Layout.minimumHeight: 480 - Layout.preferredWidth: 768 - Layout.preferredHeight: 480 - tableView1.model: CustomerModel - - Component.onCompleted: CustomerModel.selection = tableView1.selection - } - - MessageDialog { - id: aboutDialog - icon: StandardIcon.Information - title: qsTr("About") - text: "Qt Quick UI Forms" - informativeText: qsTr("This example demonstrates how to separate the " - + "implementation of an application from the UI " - + "using ui.qml files.") - } -} - diff --git a/doc/examples/uiforms/qml.qrc b/doc/examples/uiforms/qml.qrc deleted file mode 100644 index a459cec0380..00000000000 --- a/doc/examples/uiforms/qml.qrc +++ /dev/null @@ -1,14 +0,0 @@ - - - main.qml - MainForm.ui.qml - CustomerModelSingleton.qml - Settings.qml - SettingsForm.ui.qml - Notes.qml - NotesForm.ui.qml - History.qml - HistoryTableView.qml - CustomerTableView.qml - - diff --git a/doc/examples/uiforms/uiforms.pro b/doc/examples/uiforms/uiforms.pro deleted file mode 100644 index d11099c2b53..00000000000 --- a/doc/examples/uiforms/uiforms.pro +++ /dev/null @@ -1,15 +0,0 @@ -TEMPLATE = app - -QT += qml quick widgets - -SOURCES += main.cpp - -RESOURCES += qml.qrc - -# Additional import path used to resolve QML modules in Qt Creator's code model -QML_IMPORT_PATH = - -# Default rules for deployment. -include(deployment.pri) - -DISTFILES += diff --git a/doc/images/qmldesigner-uiforms-example-about-dialog.png b/doc/images/qmldesigner-uiforms-example-about-dialog.png deleted file mode 100644 index 0cf6e33210ca928a69464eb9b43ecdfe6f86bf6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6137 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 diff --git a/doc/images/qmldesigner-uiforms-example-main-view.png b/doc/images/qmldesigner-uiforms-example-main-view.png deleted file mode 100644 index 9fc098b9feb281ccfbc4436827f5223f286e1219..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28914 zcmeAS@N?(olHy`uVBq!ia0y~yU^>IVz{JDB%)r2K?K#&R1_ow^0G|+7e}Dh~|Nr~> z`8hZ_ySTW-$H(8fbH~)w)Xv^stNzN{w{KHZQ}y)p7A#m`WMpJvVUeGouc@VNZEanD z$m!d+Z;_Fav9Ynge*NAFVXz0_YPu<+yf`WoeN=iO``gH&P{hFGZ z&0DrSdh}?*g#JT^4jFYAJb&?AR8%xGGwbZxv#(yi-m`b#wd>cDl2c~Qo?TH<+1c53 z?AWmj7cU;zw{QK1^@olgUA<<_^5x5?O`E=X&$)(%hTXe%9zS_%+x8u;ZEbr_J)6H| zlYdZJcW-Zg&D5OSyzl`3D_1TrTC`~P!u7k3t@00wo;Z2x)?Eu0O(?6IvL-I8xhX5L zvAHEb(tm10Zbp1eLeZ2N#WCv_G^f@sXo&ZVODWp6synl+J3hc~X--~of$=qo=@T|iDUVL9Ieuh^e{^xMt8-9l*WzO*&KzBySy;Db z=h4p6l+7y^T)y}5)UEq*VZr^&4wQAR=$W%*>W%}FeoeDh?%a9!QpbXgVX;}Nh5NFL zXYi=n&**GfGPS9%wc^OOnF}|Z*?eqgNp|$J=eI8%-&0c=5v3-U| z&RpAd_2Q%37j9lWR9)Kb;N*Yh>2q!clZFYiPoLkElhqv`oGqblK7aT6r5mPyc>AD# z`sV94Db1>xJGcA7+V;AJQ&%6Jd2zGTJ+fnaf5!a1 zH*=$l?>xO4R6IK}cJ|9VM;@PByZz?lDZPt7znJ~-Oi|rIM;A-ei~y_C*ADlsTC-&8 z)P`lpzr0)*X>GCWpR|RO&qX@k8Hg)&9FHgPjD@%T84#N#)PFqtm;TgMHfG z6~VXn`#a`3B&>P5bEfKy?#SNbF|`GD(X*Flhk3nbV8~tT>EaktaqG?OTp!_dnFHtT z*zepbEjfE?*Tq=rQ#mo-m4Ym%0t!7gE)IH{dR6IBOYbhea}TXA8=PHqW;?I0LX$zP zTGvILK0zO=&cvLSP5LR55_akOCj5T1kLNq%bAdic1AkQW9ObAaNy9nODYjF#r3`OrlmPQD=^q=5T~}WM8?4V z!H*>zGc*I{ludi~`;t+5SqdNX&(Le z2K_UZ8zrke@T^Exll#ZJr=|Oa&eX0uGiQkZVQNkLIcE){cJYD)kvhiwBjIVaYBK~S zPV}t3{_*FZ6v+k0wT=IM*myt3Dd9_;lJR1{}@H6fB|hJvfd>7;-gMNJVi zmv*6c^PmizrY2(MHQ6_ty<>^(6%yj0f^PYcxFVxWX>2e+OY#xgQ zhN&}`N^cF=`nB*y&WS&D>icKCYr3_?_38A$45pOpLurJ za)Is%le+3zv8L`WrOt?_1-MTZi?!Eq``QfJ-Tfg3$ zwoT01Q7=z`>-Mo=@s#$lWOdivJu2_d-~W=z_&@9GqZ z?LrC+A5vPQ+6*U0N{Wc6h<7~MskHsfLq(Mt{bz36?`PlOnJ=aC)zi;L=*Ksq?Pn(H z7sb~+Y+Y^psZd?G+kE~Sj@3RIzs-KfT#^bcy~f&T^w-1b==bH{K84qYge}ivE6C!o zuzs?=>ig9f`-)dJAAP-Rnc8LpzqKB02Xu{(UHtfX!^~APm)fNAyqj40T(;!-(oK8W zF1J-L4V&t9H77(hqU_MqxA|*LC;W|FuP)+WIn((k*U_qnZ%)q<6B7}c+;rr_;SYr~ z9i!Gv@O!rQNb{2=Oh49~`pbE-|?giD{l1w1>byw$Y1d4FY!U17@GQ*X|^-MIe#dAo3rh*D3f zyLabvce3wV(sV3%e(2OF-5t?sGFxOb+vXm+D|&my@?Zyz>khqljhG9&{H%-R8I~F* zJve(N_0N&lPmYR|gdY&yrWSWMzLYmk>&%&Dzw;;mjjp`iu~L22ji)zcrbucAbYGdW z;7ZEQikP&TO0KnM*sjc~m}nqxm=bcp&fxBTTLvbk#|GDIx%bP?I=TLE;9b{>vubx;n|Kyo zJJB8Rz`4EHhfRLw+3nsZ{K`M>zH(X9ajuxEaj5=bujFMZ%kuvHnkJclkXzyV_WC`| zQs3`2wTk#$UvlP;(T(fxS8A&qm~!x<<;t0@5^O;&1>dJgKHS7<^uHu#x8yPz$E&Au z4%PfVbS`?ynP&@w3~UY7&oos0a7ssnyU{(Z|7_jnlbnwjKFH6s{BdzH|G$+re=oAj z%?x~zbxhQ;_n7wQcPH9bJ-(SYbGP=sU32}|JZZS={@tM{JqyIkSJ>4$rT>$G_LavdlZP=NE&DtGxqkvr#@c{pR9nN&PZT6{o#laQOj&N?IJH|LKtAK;d2 zW2m30SeM%Ns(A@ZgylY^@AnoPn7_z>wJMeO!>rS(yey`&SAVe`x}$JSPRl-bom$z) zhdmQyi__=+y?yyv?K6v_CJBd=JtrPy8+J0x<(;`b)@`M=Y46$Q~JJYIW(%D4i0`gai7uU%ezI{&v3+~^|`1_@;FqhlqAvUAz(i< zF;A^Qd4rb7J|tnR#)}V$zdSo^>d^c$DgxmewS} z&W}Oae|oR!hab2wv*N_`K>z7Gb=!_}I~hJZz<5u|Aj-m!W%kUOr*$s6y1!nc(dwO+ z8j^L3>z+~Uk4+JwB@tV=Vr_P$=IQ^_db|46KBi*dYE8Qzv5&1JUhm$&KKHk|_B_4f z#|QQA?bxo$F#D_S`m!g9B@CDMGKD>3IK|W1rtf%ng3;n#sT-DlYY~+?TUGM$!L*z6 zz9+cW{#@A<+rFN&OJkFhSo8Z$x%nxt-uB|^ zu;_rtQCnL#d&Wjzm~kV=C-2sluQh#w$1eA;%AS2>szKkyi?V;`{tQ}V^?Od$>Waxx zu`yHPmfnlsq;2^9^*qsZ-rEmnu=Ji$?h_1qw*2ZDA^$kJ>6SW57Cf=jKFLg}JiGb4 z-YO&KQ%hecwC$9Ac8=-sv0D476O4ibHH^3K`?xsh@!B)f^#0Cfz4k~b`}4ac(lO$3 zGr8^UcCWWSn2@`7_qu<&j~e%8ZctL*ab=g{^5t9K%uZ;w*uF_=-SXrQQFVe9lg>O* z_@H{x(p2_#*%kg$wKcm~9^QQ6KGLE)7vr~2Ubp7?K)o-nN zY___g`&e^2e;Lmgw=2h%nQU>{8YLsjd~M%sy_wb=*(Hny-@klJelKyo(0Uew?2ueta;%j#0KRoku!j=zuFPg%6#jKTIjm$Eq7{` zA69&BIP57Wxy|x~g7#+lUE+z%!CxL7)-8_T{IWeLB5lT^9cA@1&rfNa{@r=z>#wu+ z#AOs#?_rcHJ>9c2W!nrTonsu_j186NJ*&CTocY$1(Cz)~-h)fq;||^a<32BxNGNHBfHG6FBeC1 zUXWgYgUgxgbUPR8+x;&Ro~l3I@3D6G=E~g7g>PTZGX8jU=F`xwTYF+7EiF$=Z_%J)4!*chz^)eP4lAlPbpE+jmZi{S$q17{qg-za}X*r#aCw(r)&9D36 z{VwH}?k~l4w!%^G&U-I8)8h~;-FB$Q(Q7X>8{WMNi2HoXEcU`^=g%B_6iFs#Mx~cfZd&*;oEKCC!8(Vy61R zQ#QFXCAWQ6pZ`yfoK=|V`}XfL2Gx@nRCco6jJ27c$~RTtCS}c;U=8C-*2NQgYX1J5 zI&1IhS(jIbNg7RDx!8UWf93wXtDR?4t50)H_<8E{i9^n3PT9E5EEko3oF0?&YVC!& zJLb(f9FVs6+w~`(BYl_oKg%sjOO4|)dfhLx|94#Cv)%db*IuowIp&j=>9#5DYyVN# z-J888RB~y54w@ioIQ8j!y)$q2{%B)#n{jfD{hazYLQ`&r%;`K69Ai}cA^m=3?!M3G zKF^pjwepnF>;I|O>*8j!9cJiL_kF_qHv3Y`zna~qFO5X+W~I+P%2`!7S+k@oZ$tXbY}CVirZF5_}IL#@p-YWdBtVfBU*ipav=go4<9-F;f4L9*;~$uZOwhgUA=qn z{Vo2pCp~We;Bd?ESRr$+?M#=~3Fi;|z1F$$X~Mqh7VBD7(?2QcuQj%sKVwQ0R9xb8 zDp;_IXLItIvhVlG(|)bkyLi%3o{4K)Umbq7#_-JPLp7`Bd;1r!-fQ!$m?LODtCVBg zOk2h^4VBz$dPBCP8FFWRb(MS;f0EH7`{;~(!JMwTGYq>{@p>LHbk^#ga+qh*vP`!> zZ88FiQ$>^O9-rwET+AW zlRrBK7P`FGW;pGlej`1JJKE&0NE z{QD%=|3CPfr=X{Ne{RLChQpgLJl6lQ#O}oNBpugoLQi{D&M?(yTqogPQfKp z)=2*Of81cb-~ypCYKGq64~=jH9|H_AE{(o%~IswWlr zoRp3mSRdOnPbcj|p`X>onzy0hW&fTPN*NZPDQ`P#+lXII`kZ9IAV@%>Cp6A$WK z3z(%A$+#_T%@b!~*GnpnlS~{hFdVoq5)jK%>=|_+dFjS>wKtp(v<{!S#?!WwDb4eG z>GTIhoQni5F0KkW!m0RYaYX7wqi~^PGJn2rG&7LC%l7;F9sh4{w=efq;Ct{x_U}|d zNg3t8huNAZuQT(#8TIRUo7tRS37HQZ<-h*jKTXzS`oo;uLaCYGzZO|a>#IGR{7n3! z@{E@TUB9v}Uv;&%m3H4)*9sPFCM>e@Sbt?THm&e z>`uM#7e;eWzep>*n%l0+d|&eJ%kXPI_elN7n3q#{eAnA@0g=v`kqPSpLeE@CiRL^t zBUfr?BIjogfA<~NyAaYdOJ!U?9%ygee^l;FR7EDU{~qK05@}Lx z4};=9{uN03Jva2snOv6NO%B(M&+JU>a<@9k=W^Y>;_^S{&k_5d&6s*q?z7i*&&HjO z9lH+kJ?WhJbE&~;*OQ88KAbycFn#i|f6t@8&pzF6|8(LWjyk3r_r)9&Vs*t9&R(M! z|2fQ{?9Ef9m!_$wu4l-w+|FRQ*sy=c)h3m;`neLuUb#Q~lhnTd&@*^0I^*=khjY37 zO{YKHDm>%-oS6?3)fA7kFl%l-{$C=^;1Q?I)wV;~>c@K0lhhQGby}FeN?ft|;<_@> zB|*OHiae?8YO{^r6eE7~K)CE`<21uG ziNzpUHZ8xZ;QlIZF2hj!*o<=x&mVrg6t7=9mG83R)el8dU)E=aE8i8pva#wf z=L#hQ`$);nvh0pI&S8C)X^CAkdo;~7?wgzl+qEM>oSS#Iz?WqGDKqUGt)?Y@Th)3Y z`@VCRgz>o}JnyFL3fS^WD^F-i?CDJ!_ay2Q{B%xVD_AV3!tjc9-ODd?65pAuzT);a zZRv#IxAP7gcDJiNPt?0E{jTh9!mrxxw@r^nS-pE>nE&@~pWpubDX$Z>uMko&NsA)%(nu^T+<&tCHEw{_4HjS-$s|GiTV_ z?D_uDtOUez-5{^~YK&+0QtX<{?}>!z(#N(&L(tS&k;=}g7u8T;qV{JUbe{`04H;+xe& zkMu0bnqm8r^UVGmyT8xaw#tIWtCKk#QV|Cu>b!v8NH`TzHPakQ8G zwhQ;fD(~uVwVhLVF80ah$?@m+=F0w$w=j8@dsId=gyGo*bxv7hA3COq3!WA<*@0>`fJ29hhhEm!Lr8JJVmqy9W9IlM)&36s9FSV`vv!Qs>uXEd8 z{d>(Dup#rZY|h?05BelUmG=FNJ8wZ=H7JzRI4ho(-g3Q!dgW^DR7l=0|RrC%j#K-s989gtQkl zBul*5`(U4ubLY*XGs_RpYI*2@-n(H^puhgcBt=fFmY5wGzaHE zNIg?Bb7Sa?>^8Tvsj+W4uYK13C3X77mE&BmE3bZNNYwbCy6b6cCsX+uAx`h3A9fn( z-}|%aU0eQ{t+J)Q?`CvXOq=w<_~h+p(us$80*~|rAK^KCFyUVRdnPZ*;!}^E-)M{e z+`iVGEvNU_wq0U(SL}P>axElywO+xQzv{DX4K`oxaoMQf{{CMj`<>iM!J7t(q!%>b>c=`Sa&olZm{zeJ10xS9#78*C|Sznf0dS z@Vgn6Em5a#URda%H2EaQH1=ne{%2&i&D#4>MZ&UEjFZ>6UFn&|45c(dpX+C$+a*_> zIz3ZU{+#jo*T3UW%=z^!r!UV^CqC#mMKkbvBB^bmS=kun;_}u%`hJKOn@Vf(Xt^P(+s@)cHk7Rec#oY^R|o~6U`Ty;!L z!ik9+FoRaY>J7i}ZeB@bc-6fXf%}#4({+vkOAt*?MOl^GR;|_F8p8--*;g~vxm=wkCBQ7&2wC~Y&YC5b?(B9m+B27LV9N&^7dAqwyU~vKbxVM zt9RzHH)rf_r%&@z*;Z|6dBc<&Ut{fj~K;k64wIs0eaWfy3&ds zS?-Wdz~Y6;&sMiOCg;7c)V^!4MBT%y zpPL=MlVRrhd(ryYGRc`|s@XOxSQt}BIiR-E)YxAMb*J9c+YUbq%-J~ckyzPjeYquGzm+CN@)&pz|2 zcvjEjV;hTSy?(Q4Vy{8-M)ngMPxU>%_G?YcN$vb8@$;4$wlf#kIyo)>B&)Gx3!m7Q zxcpP$<}7`Z20cEWM?KE0^IRbIAzom{QO<-(N{IzCvd_Pg<=&+Dxg*r}X8OO1a}^(p z)t_AydcE?M)ag&$XFpHt=6+tK=JRfbKTq!s@vB;=SL&tCJoac!*gL;JS7P>59m(1d zBl#oq#iVom&y4w(EZH+ZRa372{52h&{dR_CyT3F}v?%@hj%BY=JM(AbZc*LvrFVnO zc1Isb6LFaG>CAlJ^dh}2SJx)Hg+zYTIj?O$S#6%})R6M_&u_k3r?B%gJ6h(==$|RQ zU{#j+8J*N=lb$wCFHd{n7Jcl(S^ejEvfJwWZ>e(%eb!WeHuF(S=5h>-Qo@vhGw)(wXyn3ObI-@SXX2_}IHY+LLQ#-%EFk&J-2c`XzRTyy-QW zSbgIiULm?4b};>Xw)Los@}+9Voxhn6yy=pDHp!)Qqjj27>#7?*+Y4TGw}0x+Gg|+3 zg81{`I;ISUqUY0J`Pjxbzm+}PwyQtCbl%T1TiPm9U-2F&P5e1^@mFr|{|E2X9Xau% zwj}XMkL%I5movrY%*fvVuSX+p=T*+M7e8v&JbrO(hIZ~=)#+l>tiOCcKAqv&H+4JX zi!%-fr=3ZUS|2h+YL)+;Q>QbQ?JzNqTEAWW-o6KiVmhn#*1W&*^W2}?m9geC-^YFH zzNz*7z?o@_i}=sv9t-=Nz0;C;>B7Bi0ab>oPd9&459(WAw&YCNHv6BI@u$S+ZtWKR z+&t^i$EU%X@;n~<=gsy1owQ)%EtWjJGb+cw2i=phnfvL-l}p~9RUeW+PT#+iiOs8; z{l?zrwkcB<=KIO%`mgxV92uNG>D#hbVR2ely#4owe!C}rbwPVzb&$V3BMep>6mevK{x6jIpI^GkKc5;ta%OBUN`^=ti5H|K#5#id{d%CCMeALrh z{;m48yA~Yh4YN+WuCn`&(1l+gxul9C4CF7btY%-N9{)n>kA-od9dDp_{qc)`=AGyM z^FD3Ly&Yw{PM^p&DY|CR{rSM@@0$$&&!~N-U%Yo-Xe#Ub@Pzu+j2@15-6C&`&fF^g zaxG>?*t7djSLHPYYRbRK3tzb+NpI?m58uoc{?9mnrp#pflc%M!F7ND2>L$N=_}pb# z(z{f*eQOzB&2KY1$n&+)bD#7%izj!^oe+B4-2FN8jCJOGNkOjs0t3ZUjOB}@Q~2E% zaQ$1t$^KMf!MX>Wtv2rM5vsR7uQ#cD^R%G-*q(B~^xr4^j-Bb`EdO@z>V9ixvHIDg7ptFLGccZb_V7nO?vhOw_Z%H=6unZMAS zn0fA=|6i08E(%_m-1+8)!NR}OY`ZPZ&b{t#U%;@r+`K8l|Mp&^ zV!PfoXGZEb_JusGs8cn;B>ok;<&he+MiP4jP(p-Gem*Z2; z(}ctAF3u0!KlaW%%4jaeUbv-Dl10u^r->nU&R&J8?a9ZkUNkx*yE$O)oZjjLHIYaq z{xdggj9lN%u+Lq`KEvMj%RBL7KPS%L&Sxy9Kc(Yu^0f43kL!lhpZdvdoHS$qY^$H4 z*@78Ac<0N^e6dAF|H`M@glVZw($0znTT}&wKCGCqbm>VECRXOVe{a5>;mH1Ir%|*0 z_o$i4NlAANn(y!4Yd!mESXxbe-n+)%@>k+BFZTYkE&Tp(ZS+h@t$k5%4%IwZ*ltl+ z_=tVK8o6#H69iD^%clL!$Eb*^j+5^*?d6B`!K((7lI!QB#A#12A7jMR z1d0mla$*yg&1tvz{N^P0`ERP{a-9|r|Uryf(NHE>};LsBea?2&YT&l8ow1?6UBDTe#~y%{hr6cQ!U`ky~m4~j`Zw4 zc9VS*(}AAViY${oFMKs()}5>nq&nqP)N!4u$36ELDA!b)%~a|)a{lD?xpTkrzl@zr zYd&3AAN_+R;DnIkycv#5KW;gHwT~`>h zE6J%GI3@G{K&_=pn%?!+ncWLc3i20SygSD?EN#vq_Jg;XS${8_7RUZ1w@-5VGAE98 zstZcbR4n6}D7G?oM)H$Ry)*0X_GrxGxMNdhY&ZK_!=p!+AMJ1VVfgxgo9TA3`7`<> zT~BP@{`t$2)BLaR|J-1BaBtSKEvD_RE{hMW^%2X|H{KMiEXjAK=R^q8)4TC4?_T9J zNiOSC*9>Fk+`KN)uI-mI9$v8)Z^h6clYx%_SW*3Ig^dprE> z!rwa5iERm4GYUc7AwKPA5&i2e)YG<~+grz}kv>0_`HX-MuQ4B}HgBc zS({{A=9xsUcGtG!-1=!8%z|2*7dsu}N&I%;zkJ$@`eQmv4BL5)v-*XN&#A{h?QEX5 z<7pA|j`e%*=(5c{sLFRNL8SM*(xaH#q{bT;4;<7#{x%{-di~xSfu>b#T>rWy-QEhi zb>2yPWIcOnkY;k-1bM$RGBczgJ%!%NZUgzv#$8x8G0CZQIqRV92fN zxG$@1h~0Xr#3_(h!hY&a&m_C@@6A_#9$xyHo%y&Xz zTf$dv=GVLImD|@)=Vh}x&59i#%rJcO@y?ctX(w7Er>*t9YGt@xX675#ALmT&+uqvE zbW6L7XYsQiFU~9~_4(eXo_3~DvNZ9Tc;VHoYVG=uOe|BSx|UBnb7%5d*2IH4eINPs z4bGgAc+b)%+553?!Z8`OGhbIux8G^BbB7g&g!vY}^%G_|&YZY^My+Xw5%bfPO2Gwk z&kpryFHYSd{8_y__8MD2?40*fFSj;*TjBJb&tlr6smCub=c`I`tNf;rXS&%eR5$K$ z%)*+uw}h}XN;)rP-()DV z=8PTFsm^nsl*JEh^s7Jj-k0TVM#IjUvMsA03$Q%uyeX)2?RcKs%h(U%m)A^~akTa< ztI4y!a`|VL?w$KHb$XvooO#%_k3VvjFMIQ8MqtgYJ0bR$Wv_Tn)-d6^^ZQUu&b#W@ zF%Jc1tSkAK^>UBQ7U^y)E_;K0W*_cUw~DQwT6uV~+EQ_D?)GQlCAR#cv-scjf1kD3 zkiF+-y`EfaS&kQP`1iBY>X&95ZrHh(^VZIlbC(%jE=*jeZ&JkHTN&PV?2Wd`vsg)~ z&Fe4BC{NwSQk*kE(5bQIm{0OOwljr+j;ehi=FS<(Ni!U4ajRsoX*2xyT-AIls}ij{Q*?H+-ubJ>Cg09aDeoyNIk$94gj>cLYd&M+0|jrs z-|qftb09`(^VW3rBLDMJw@(ZCX18RWKBe~BSewV#>)ZR(Fr|5aclS>Caj@pJkI3tT zH(vg_6M8%1=7N=Wx2@ia7hhf5a?Z_oq2HFPWj*s(vmZWi!7ymkmQ6Vm0!}>+eRa_A zwMlQKc;d0GFTN$$*=qir`hNN@t6d`3F6T$aOVlr{Jp1YGy5()tjIFEJs7@DgO%HEZ z_xI1xn_ZK9ZLX|8Kl=Doj+1wk0P9Z8p%HtjoKhT7>(FP343Bj57-p*V%HfJJE0_ z_s9d6!Y;!Z? z_#F$=vlDLF%{$F}eCoH*&HkxTZVlg9q>5L}@b;Hl_`D=0GBq`Le^9FSi}fKlmu2fr ze(SsRt*>KZoABbNFRW7IcE01QsQ4CAba(EohtcA5{#q|hi+d&IXP1{#lmG1N_DOx$ z;v^+!=Y)UXJJrS{)~mPH`T#x78-&ZsAEY1i?dh11euUdPI$)MQe7=LwcxB31#J2oa87;~68uTte$cSdch zS5AvhQc{L5%WPkdR3mBTElZGse0JvEF^EDhXPgij2vBlcp6N zv{!P{n&@kMLr8i?%<8G0H)7a0eqMjjB+tOEdc)+|1cT<+9~hsB79ZX?>FMU3@;x)9 z7r5EJ$hq2U${r4C%`LjY`t9!Na)y`3&Sm#b|F`G!yZPm1e9su1Yv=!*@BZhBeAWC) zZ^Oy@_cBgOt=7(v4wLxZeXPV+CC%a2@|9f=3_kC;nRBjfhN08yt40yka-WsI|2nB` z@=W(APo~JsuGOL2ML3WBY&moDWcTBlD}VhHXWL~O>#O)Sjp59kRfj_toRP4s+??B# zqIasR$0zvWjLb99t&;3Zqa1Hf=#4#)zS%d)&XMCs!2Xp77U*-Zer~t7HMw2#>BH{r zlUKdpa`vuO&U=wG(Nz`I`_C*e4EFf(ZD#cPf9~)8SS!9a-XB|gcs2XAqHm68eUkr8 z-@BVPQ>pJU!@IX(J%X-gOIuA7U0rxjb;OCV2!3gpD!NZ#ib~fqTMNh2>`iCFCHW+E z)VG8bEjVZ1czAKPfm?HmyTPO`-uOG*@iC8Xbl>CpyY2SR>$Z36+l$xzyZ_nm;&1tV zKYl#jK6}?3&9myhcg|+C-Lu>NjN@6odUS`RhVU5{W3SExwf#)91UCzGAFW$2bmrs~ zwr8Jg7Hi$UrEsQ;X~t*ETHei5yWG{+Bp%z#bkOHtj+fZyYc7XmJ_UFFa285?<1KK8 zWwXw+Ra~koPvy^TnVFhZ8LsPEo67mjh2z#=+ zHcK?^EHQka{CGwwH;<%o09Q-o=lQC}&rWr1d64KAA3n3KGIYk*;3@4k3@(~H&prvy zp0#<_+j(bZ@a{Izcv}6SbKc&H8Rl!W+e_KC1ky}QxC72DnHk8{9J%=Jm6!$Ft2ZSq z3-*>0{`~Gr+5M?qkspq;9OR#I@=Q;V#hI!e-lk%)gljqPb$_4c?bbZ~`)S)zi6y0( zGc*mivKV_UGkeWvNFLwR3*X+&r@OX_GJd^O%iigtSOrdwSrE5zqP0Jkqz^4Hk^);`zW?3I8@Y1!cZDa)ZeTQa>Woo0+V0-MGSy_LCWn!lo{Js(@$j|fen@ZZt-<})J z-8{oK)#=PCku#hAv$Q4X#TgfWUEBO_!_C;-4T&b7kNtFF;+XM&Q~5vp+$n`J&o%e% z`m)As+1tR}g$H_RJ4+54V@c|N8oG`M&sW-F=_mh2GCMkNc}-$X5MqZTYkIy5AyYQtI~6tN*^e z%zc0Q{fc*r$NwDPbcX-m7KJ@~Lw3K|Z}}lqY39AOCA&B8a!3!$4Su%BW@ho^>=)ls zwn=nzh%VnYMP%yKSy$AyF7;Wr!Y5U%J4Q1w(kocB`{)WLkI*ZxCx^<^Na{{2aScrh z6fQc-V!lX3tK!6q+*cWE^Riauug$(IvdX-%PbY(G`UI^*DUWngBr_lSs4eQyQS9dE zW@QL}qPRjrw}p#8)qk3{nvF_$kBZzO(RD0sr+fl54?DM<)CkYJnUr4UvM4H7<%q#G zR<$W5IZKV-2hU2p=KL&3*t2YEflOh{-#5q2y}G?EKJAD)I`PTjSGzrhw>(>0o+kP+ z<|FH)3T_>{h&zX5b@nyf-_~Nm!7R?PX|;%3$L=VPN#6NKr@mir|MS9OU=e9}~92`1GS^ zpbS(?O| z!rcYw)85{_F>|W_+fOMit8(sM^M6`vu)J{d_p^qQ@9H%+XH^^BkJ@rOMeJIt*_8GA zizZC^BA|L*v+LCKnY#D=wj}*DOTJT-elD>3^!b^ef3K_w4+(bBS)v~|?effr(;|B{ z|7-7mEdJj!eP8Wvqt#`z&%B;nnHy7ogJ+u*kNuw<0||{9C5wkurt9Qer-z@n+Sk{1 zhK*V8@J7AjBROW-;u$ZM?lelYS2}O$UejDU^K7{DE#6ea(%Cb_Cw>@Fze+SRaxhwr&`sVbb^$Nuob*qh*3r|TkqGrE zn>>Hrtvh74s+AOX?qX@Z_@2 zg_9k&Rv(`@?`h{(6TdINX5u35pi4`S7Ivo_2 z+-$^SSKj!T`u6h*<-%{1mtMVA5&HSn%~$WfA3lBcBXePX@ukAWHzI=eZ>m}G``y*0 zt4`iL>}dajH~Zhrb9;n8o&V4GfN#3xmU}ao-#jW>So7t{@BH|0Jp7@3bN*C)I+b|# zk11E?%_Fb8a{gakn(>!CdHUMt;c@dm?S3!4?2^&-1H0$!nbUJ5ex}rnxjbuXE~xC2 z$jkj+UlM(K^}QKtMq(E1^)~A^?|Ogg;HLOAcB#cubN=Sl{QdM<;`g_U-nFaa`qNeH zEWSN@y7c9_=Xx^^EtWbPef`FdHw~YEowW16UE}S(X8+5%?jNMOl|KL1sWuXykuyEj zO}I(H?bk z@0k~SH~XcZe{=BJ%niD4=H$NR4%usH5E*{j$bDJ$Tm!T3$Mh4Uum1R$K1s)~wPpQ8 z<;3XP>Hk(_qOp-Ipyu|=%q0?#<#N!`-*DBG@|vVLJ^dB<~M zrTp)#nVK!)U1e&4mZu(T7_I)Fesl8911VMl)i3i^&0=@Y{qr@o`8r$hcO}y$6V8;s z34XutO~}m3aIG{|J=LhCtIlf8-h8T6P5bHLd@~an+1w0^tJg1FxG;zRa6Qj;hI#*1 zf4DK<;r6l*IZ|1Mb8@o-oj;`>TN9*((ojt<(6==0i1q=6RjZ7cqmBqGx@=8zZdu`Yg)!f(;E~l0!KWKD1yBDp z*dgGZcA!@ymaB=OO8gST0_Q6BhAC|74hpO$4mTRLE+qsxn@!z0tMh~6)?E_+#3%Bt z+pSw|BtGlTkB)Vh8kEcgB@H%ISsTe5N;v%B=!4Tu3=PMgEn_&fS&<{*bQ9O?DXeu3 zf4MF&{Lq`GL{mOC8VeiHF$| zo*S@ia!@fivHQ`MGfTGx^sWtAcf#oX>hy>d=7!|y-~=bz+pnN@Mq%x_Hi5H{t(P%54BXNjhmw`#4Ev}aafi(>P&t6*i&<7IMa4L@WUpsJ#p&|B20>g&p_tFkA?X!4(7)(ib^^5Pn{E?#HxO|R9*}Ef#%YEmuU4EEjFS~xVO*^*?OV$&x_@=P7;E*ULiheR zHZz@j*BhR=@Wj^dVJH{3Z_dm{8-=Dp{?(CV;Z)ZxkaV})P{d@nu?=iP8RPWtp z{PT8Cs=ck*8IL~`h4;p)SHypt;NiT7iCgEl)Ra-Z;yI$S=G9WoHyhwE*pK{f3fa-Mt*qo`tm2cm46x)-+BLL zZnjTQqQvodi%k)!k*|}o95(0hdIxGQj+9J@2~n8D<-4+AnJ8yPq~h5m-HmTnl^CAg zvi5e`*1XMIZ!UTr^)f7K_1asnlJEb%)PAp+&uLQXB)Rk5e_X!3`}*VU_H_L}^PkV@ z$@ac==~9%fQTJ8psaLNhzh1lNS9h^~M&ySd8`ow1V|_d8%w?}q(I%tA7g~Beo*4=p zRR0`tIR4oxua!H#?+ASLBs_fH%5@<^M%U$E*}h!Wll?FDS#Iwo>toivg(uy&&nSuZ zSmQuGnBfrl2&*6L{^;@n=Z;zD)-VWRs zdv^PGIS=buGs;YyL+ZYFc@(Pc6^#qjfAwVf_B@~G^>$IuT-IOAm}qo(^3(-R9?$j% zZPR=>tBm8mvAlo94%3KT&srWe8wfN;avJq?oH^sc@8ggx!0W3q*)p!PUCltr@tN`i zj}vFU*m20s=6m7o@yt=pcgnmADXh$bZcB{(J0CvsnO?-$%X!k~#FEZSX3iYWlb1yD zxJU@jT+G0JXv#5PMiVua&kB>(yh@yfFZ8durn65cVdl(>1+T3A4t6ocseOoOIC7CI z!_niJqh8n|=~)eRGd`!!;f#59V#`uPVX^gTzfzuYZ({9yVic~=T%w@zSz-J0pmj+L zq-HTRO%n;8w?uvE*|L*UKwmdrJ<1^9ah_S%I_%!#R)0$^(_ZYnoSS$7AM|#`y!H2US6`7< zk!@Y@oRM(*y5yviMMT$| znUy?_jb{uc+SZ*hKDzJ%i=@VcO18Fz+QnRknL@{t6`Vbu#Y@)C{Q1)2@=FC{!%U%h zVk`?!N-#{f>^aPN_*aAWe$}T&o0sa`xH3t^k$vXFC7jIns<Sl|BW|O_iHd%x@$vVlwaWez?ecM>`xidr-816Vz zmRsmwRaEBZ>AqZNvDzkw!UbDytXpAG=Q4fu3eBTTD!Qhop+|Uq($s1myKneuvn^fS zvbTM*%g!^LNk%4-M;uxwPPAbT@aq1_dkB@M@UCOR#Qkeax+WaR??G^0~|i({UBT+yy}_y!Z#!+(xxRa-14ALp6; zZsJCf`pEnhtL7bD&LQRfG1+b7(zhBhEGMokX*hpoPT^xURkt4R7~6IJX?n)h6B|x1 zjCt02qFs$S@tir&R#uZ9hN!oyhE1#M08BT0^ec**tSQ<~W+WfOMfB!g6e3e|M z8Ma5A|J0i4CTnliA!>vb1o|BiC#j=Q(*)|2VlZ+408ES>9C zv5+%>U$fZ0Yx|!({jWx!Su8sLSx<;?O7r>+iewp2sbqg&rTo7uzb;?Zv)k0P`W)lt zl`kuEzkXX&o8?}-SMz=4+qrKG5=~}=o{|c?cIh)$c|?GtUXSMoubU0J3oQOdJ1pHN7T{j`)N}Qr%=Yie)yhFHUMPO{ z5a{JqpAw#CWHNEF)T|l3yQQ=IH{Y`6m0wf3Wg`=}leXCck=1aLE z!KLNk=z4PDmAI{ImKg8k^Z2mXC}y>6f#T%@+OLCSZ#70cDAs2&>h4gl)-KuVxjv$0 z`LgUskFOq#o@qEGHO|Lp)`@0Clgyh8O>;CS*0;V?oaE;ctWmt@#vGKRqZmi$$~f^q+ON|2~zqO-XwkP`kRZxgulJ6!UqF9LkrOyrS7ATAHogf9C$3 z*jTxlo28!QZ)^I`ymj`01#+`^xC2XCjc1(kuK1h!?p;xRG<$)UkL9E=gRCDZVtvcI zE-c}^dEUqWpJSTfdF{`;%irbSefRF2d3@~okrVQ2cR2@6l=uqpNQoSCfFyZG^W`xARy4!)YabM4lGlg}J(eAr5L(hihmtEC6EL`3`ExJ^E{h4FZ(~8gQJI}P8Dw+Q)dh?U-w|e%R zd3R zkW+8`FK>VMuJ7CK)2HV@e|9P1Om;}05LUGn#PSyd%9WtA@8m@-q*&Bo;C$$K~1 zO=FK2{_(c@qLM5*TkSIMOo@lg0tN@4D5~)sYjU*VR@%XwcsW2WNnm-w5+TiLnNCeM zB8+o$m!}H0uhr;!-579s9rvp~Yn>-tE4HlOY`6cuTpinr!@f7d>-5$C{P@&tzbpLy z?_J-YfBu=;CSSi^bX#w<{)*l4R(+qywDM<*7>@0!EX~~ew)hpB ziR|0Ov-$#k(8mw(i>vLDSTkl70vMIPCbptc>0r`jXkJC|!=_c}Ws+BtXCTdf;2b;Htjd)rReS(=r1sQJNLjl7y| z)>~gW=*=iH7Mx{qVIk*JewnGJ{)cDoe82D7#lCBS7RLIS=l86S|6J|8eA)Y#R-yWH zX5N39a$R++mX+k=r?U-bu5?=L{cDxwNkRGf5+P^vEWcEHxxKBK7>dmvW z6%GVsl)PN?=hx3|ale0i%zS)VJ4^N8yRUa-e$0MyF4(KdbyC7o?%@4Fno9qaWPhCY zDVtSsVd2TQ2443wr_bE#s34HzR5f$|t}A9XHfAB_pn7-erQ?ni=NC47qq2G+ml-kvF&0nu$gkkR=&5lxA%az`sOFml^6Kt|Fv9Lvs1}D{=%`!jaDC=C(N9^ zt=XbNrZpwv$D|g%v+Bn~7PVLuMQ?;)j zKQ`^qxg5s+w3(fAEelqgx2RpS`6b^l?Zl;(B2tB^*VoT~|90>G?d9*@Oo>~taQf2H zWhei9JIr#8J9fgvGds>adtp+T_T#bqERTwf-#gBHFW#XdBb*wyCbzq|=&91<1Mz7u zOcEV3ln$7iG&Y_QT>AXVd)K?#M#^U8mIq7&pNZAyCVVh1t=}Ox zW77>T@na{?Of?I+=H6!6<~H@y49#UHa^63YHDI^ncjV1@lgstw7Q4wTkxz@FIoB(; zS(c|s_t~B?o%icp&SQ^5mrmYU|L?QE#<_2)=cQ(r&Q-f%lbzLcW|Fw{ejmPF0<-G> zBxU%{KEX1xvai@|V`tT~8Ibmd$03$ zuKAXw+po&)6S~^_ZRJB%kwd=Q)(de*PCV^9d1mh6$U_MV-=?ItS@9+ayQ^=mc>Q@J zzmBZsg1=Epv3CpnYNPg8ExTaMoMN`-!^4|m^OoGcaoVS3R!+fjOB2uR(|%zstM6L} zJ@{Bv*~MvO%skC{V?wguYgO|nyEdIODvha{ziYSZ=Jmms*9LxBDSY+rsz$LCZr`=K z+uq)NT20|0pXDZ?t)L`N#QtRz4?W#NF1I9OeFgtXPoon^AP4{H!IeFH-oX7y4Qm z>lg8)-fBAIST*yqX{`6FQ&9_Zvli@b-SOgDhDq&RuT4rK+j1=W_N4gB8UH$c>e-~& zkiV-M?M~KAPN|!4c!qU*>HS4d%N2~X539MHjInb%>0|RxS8vXWS(kfXEehN8RrJq| z(>cC<&!dii-hQZ+v)K4YyxQvS{U`1Bso&T2PwCsH`E-x#-wU6wZ{NFhbAI)sPwyg{ z&(!Yye9Lp@>o?E8PXB7V*4lV;sZsftZ>y(W=`EY7w)t=E>F4@0tKE&1#o8y${Qr$3 zvUJJ)nTr$Um!HzZ2hdwY}8Y^Qg<#>SGf48kui zJjr|Dubgn#CiYDy*>t)UisaL)w}D_@&6Z_FM@&$2HTOn`N@oA_g%V5Lla!q%PyDKQ=kVXM za+6E$k0d!f{MY)%yp^0->ej}yM0Lr6pE=S^u9vM?)bd1oe3v*2%NWc)W3ZF^Mf_0* zmZis)Tn<%DbiB3U#mUsV&&;Z)bY^IL{@A6#`Nx8FyGEqtUnAy{j3)lH$&q`eCWJSJ zJ#*P~F|^QcnT2@ti|=RSo^M{Gv|o01tN7hNMqGcDE}Xj~YuI)9s;=+V**h=&+3@1T z*E-1!FQ(2?)cNQUu-wg7-#z2G<=3MQ_LghRtDZNW$vima%w_3W7MB-t^3Cvmmg*~S zw(qB><419;nUh^_@mgx@yvWgEKUQ}1ZH3~-U9Y(-=ajOY`K0A%v32bmr;xB4)}Q9y z(@iwE=si&?R7UXTl)#X`ArC%YiAwyqaL*cpM|C?Q{nn_j4oYR4X&WY_vw3mEwo3c9yLl=j^Y-I!P(HiPR}a$sSWmj%3Sf>%*TDtVwp|ke_H^fbe z`IfoY?^&jfNtEg`XW<-!*=OqiOtiMx;jLf%QoU&62BS;=kDT7Uc&F>_Q->Bkeo%Ti zVOM|YD);$0YGn_W-I^=f-fb-6D|x9%bB3X}Zfxcol%n|0QI9(zB`o$z=$|MUa>+UH8wk_il%18(JToP2_v?oW#fN>P-|zG_b2f5b-pMOFD}jlx z)h$M>yF1MztuaD+RzmTq1*v9|ZM>b_%y)Iua?-)!aeZbbd*}4WJ4)ZAsvRrdd2u19 z+zjtD_P28?|5?o5IK49VL0H`fCJx^}YYZBv-3+PV{==~+rpdCSW%tpyF}Ay89Y1_{ zRBObd651u8b$5o-pBMc`Dr>x~CM0nhU0%rP=A-sGzW+|k{=ARZV#3`1uiyXgSBwU; zphwpyX0xLm6ZkYPIZU2dyhL-Sm*+J>)s8P;Jto;!YHT{VG$@7B=(Uq@P0X^?fA;-0 zCBkw$ThH9xFSKW~pLVgze-;U?LQ&6{ot|fIY}x*4$I>$is@IQAmE?|B_B06AEG!J1 zlv?C@rb?qLd6$M`8t3Gbliod_)Ae9S*Mlfd`CJzvvp+`R%X)1?GqyCP7#`gu$|e@D zn(xZ0uOfNN>Nan?oT4i`>p{cLl(=oT-aUAf{-#Wlt2gM&R!P~_EWhXd|1xz+^1lAl zSL0=BYqo!XoIW*k-@l?z$4V2;V!{6bQ?4}cU!|-4rl2$5)h)&@*+0&#Qg-9=Z=1K9 z?bm7lZ>#m=b^Vo-KIOA67~S`sd0$4x#;T(7!=|`rxok7Hn>-g3@4RZ%%CPFO(d;ba z;Kg>8kH4NjeaKHC=$Xa-W*1MlsAjD-ix=#C&^-5^?DEB%PrlxKX~txCev#wKdO6qC z(;d=Ym~8yG$XVFNVEP%>=IOO;?E0^`dqw^QPAF|STzK{3QvJFGN~@lwc$&txt=h>W z#=g({)Er*dd6F(Wi;PaxD0Us4IOT(|i$bwh3_EL^y{evn;)bPyGB5j$FJ(SrUFd0G zwwxy_&G^lk|Nkad2hRGvew{_UQf|x(vB^_r*XNXfXq(kCM{TE)`F=I0wUc*-?Yf;i zKknI?uL}co$`z-`Gav7Hl(k(#Bwe=u!HhtT>ocS6&)xZIct`BH=&o|*yO~KXXSzLd zGH1Szc*c6o_jTC1h@FQT7uM@#95@z{=jR~0`OC_Ns&mt{{DK@pyIPjl=kl!3O6?Lb zk7(OrDJ`2k`Of@RL0mJHc35+H-U*)Y&C35!Ppi1Og;?D~Yx{F9%Q?#ya<(^kpSB5n zHoyM&TXW?UzGuIG|Nbqs;X>@<47QZGp7@L;=LcS=ZQ`D-uW$ZuHNUR5dge}%7waY- zo>4b5(MG%^E&8#@tP4i|dd53=jQ0DVv{`({rTm-GA1C3cXP&A5u5?ZLdH43|GbKuu zliL5W|1)xS)_!w(Us&0VJ#!sT+pIhj|39hJ;Ecu0O7{C|5r%a(;@^y3J5LU%0qH-P zQulxPhUwjg=IdiPy^^^nEqF`ckK=Y+iah$4h9F-jlsL z&&94Ott***T7CTijtlQ+f8M7b9=++zh0I6qHyy}YYArh}!cOh9O`(nWR^#R~6Yu2( zUSbLJY|&W3c&b+#@5I2MOH&jrS*te3*RXQWG<;*SFm;}S@z=Iv*~d=oS@SHOvFG`!$d#{6 z8Z93l>aNTb)NePro_F&%m(S~4V!k?Trl(rO9~&2kSF0YF&h_YO>8+;JZz7Wyo=mbb zImn=#@~^XNv#;FwqrSKGFU1{L*6UopZT*i<({)T%CI_2tpWu0)zUTKk!B)4Na(7vo z5^j}N_jrehlRS@i#$3C!kWEK~Du{8@7#C>*JP5?E^WQ>9z@2ru%=(0i2B+9pJmd@r)%laj!_3vyu zV4&7gBg-XZ<;TZ|CtXp+^h+Sj)8%j&=ee3yrlXFgWm8aOJlP90no&PDTv?KZH&alKSRePBd`R2D} zJURZVR)5h=89V;xLfakK-`(ij&!d!(%)0I(>))R%Lpk(|o3fXCO7Z$~C`8Qsd%9S6 zw&1KQ`wmQ>yZY38#p0*z*ZcN8h)a56`}_PyO{e>&Z&vedwryB9SFNfjW|j={-Hu!O>ShezWv2A6p#pl<>0_p3`qZ6;* zX>;$3_6hahw(nOBv(zse`O`7g8awm;+&Nh)e#~0RY?bbB|1Z}pe&w$F$9~~w&3A(- zOQf@c;@7>f_#F~_Y}Y*Dg%c`$^>}?d6eVUp*FVo{ByTw9xY2i0{%H?d-FmyKA|g$G zc-;N5d-ji+KR+m@8;88!^mW^ToAtuSE>7F$zFR71UERx#wddm_?0M7$#q+Bk#kjif z?_JM)S#H*+m?~~w-xH9)`>AgdlvDYpIPTe>uN5=zJY3}5`)9doto!yU2My~Bg590N zW4F#(efPFaM)B8N*~9MlV#AgS*az;ZHMe8GaBTax3satNa>!V;d?6b}amN?&Hf&foXH&v}_` z$1J+5s$VpgZ{ZmRUf&ZB`}WTAwwykRVaMrW*|wmEs=rrd$FDcFDSuFq>Uy%j?eb4E ziJ1NW8Jx^Q?e<)*@YDKjc-r8^+vZErZO>N)zUBTo&+d=Ko;%IA%cSq!DLWQ-_T$=V z+`bu`dfL=d3ffbqMNPVU;=MjtedpGn?<97My34{YkD$GJ&_~i9e^_B~y0k)7#qjpLywOVWO#` zX|m9Wy>-3K_4jIqTp}HQhvL)9E7y4l8V1a4p8oUobH@D2b+PhK=h@Vr3TkZI(tmne z$lG6LcP}v=-t9kEXU&bERdVaLypvaPO3M~3T*x`q(j&x5UGKc+ z_1oE8fh_y#om{_8T)Vhq>DGlcU#8yU{?>Pl^~9bz>QOg7#heVZnmB2}g_ct?Ec-si z)cfn7Kf3+;Z68h3d0sIYkN5-`gCXwcIJQ<@IHna`S9_c;~d6S4@9?{%PO1 zyj@1E=kr0q$tV9D|LyjodD@?d^h+LGU!Jk7erg+v+>NV7&{Zi<4-4?togW| zli}Xk(*I=>Q)c=`q`moMeBXapYTV7Wrk2XPXPrUR}HCoT;s_Q3_-;{alryb8M9l4ph(@IY*JGW%sM#1YH z!ft;)?3u;=PvOUbe7#4`!mGVBm0AK$_Vn+6So`m#^P>4Pb+3IoxpL*g`ek`{s_!Nq zEh(FQOsL9gckkU}8|PgU-0|kkwO6y&T)P&yS~$K+`pg;I3l4Xml-`|Ix@+D>Ic<}; zwAJ!*Gh6RwE^4cs*`~IA(#`K{J}TZ^|4irAr<3t@KOY|Jm9Lvwvchn#u$cM|tHdy| z7Zo#gAFO@1=GH48jUCI`^=!|w6o2#Z5<1cISKhNTr|2|~^0l8%!j0v#jx6)e%n+J! zCOolhpU0P5JUXA3o_sxdhPU3#wNYEIvc#{wxq6fCNwpm<`y_8?#-+CG+kS9C>D1S9 zo2@ECx4m0)ZP77aw=0PX#&G@*m`p*S}o-xVH(r`WH zA~j2gZ|2d}m(Q>N9$C3ZV$Z8! zW^uwoPD}k+E6*f4I~Y|zdNY;j$jzN5CW>rMsbVF|JrifOwW+BT%(vMSaqi6VPZLh? zSo>}rtIzo=%Rvmyh^43kyXY6zJH{FDWo<$>j?z zEGy1z|HV9^P3?$6!x@>w6SOyLOowoa^7ZfCo?YIN`iK3Iv({!qu<(*I8ojekvzITF zygtdP^FF_L*tuyY%to~rjaHV$X3>N=5*SrH7B&sob2LXcqTg|!--Gf z^SOookJ<0tKD^`R4WWlG`E0lrbF&sY?D0=a@tA6`dBPH@3xABXtG3`9=ZN_`H z&h)s~vYFb(D|n40X1J#{{15msS4~W6mH@+vGdi8g_Z~g+e!?{^ak_!d?%=5ZnKJc} zi#jHsd=xQ_)9=}Vheo2t>?%{eXGC)BzRYrN)~OCJp^1l-rr(rre|q(7owL(Poz96r zdVlb9*co5G&?3RY;T!RcPx*~8DBm<*2rXus_PpxGj8zL4ata2_%*-gdzCo$a=20uJ zuaJvpP*F_W6(i+O35mIFZR*$BgC3{;D&oGM;q<_q`QFADnOP}Ej$OK-@+Y$K28Z~B zECr*4mwv)ppYIqQ-(V!UrJ}FfE#&~$?#nJy{hWo3A{wWyy0j=n%TT0eFTditeOv!G zFtwVmSzzs(k>SJ>k!HIiXL{FL1>;S*t6yfhJml5>;U{d(>+8Xga_sXaIrHgf-1kZ4 zZjcQL@2#Jbnfr3nwFMiRMJtw{jGF2;#o^4AJv&mvRz3;R%zHO;=VHH@xbH;|)sy?b z_14_EzDKrI+Ue9Eg%-6WsaX>kr&(UroBMM{;%nUta@Fa#pUKuZKWv*|q+MK?v1s8! zPR@oiD}PD$ODYt5M%z1CuQ=o21ZoB|rj*$xSKLeM`Fh=2y1Z1(q`s);Gv6Jt?PtDU zzR)5Qwjg8Wjo&jI*_ztbvNJQBSPYE4lO)2UyG}5KpNl^^`APE9evkhTBhB6KeM*~~ zzUGANtPGcy4J%U99@}o{;9;@5%yQ_>7mcK8#`<|PPdeYYybKg7AtwAb9Yw^rl-jNk>^q*AnNH|Gd{ zI+SZum!|jFOR(Ls(r#wrq%aMU54|!ogBRFL*DKWJ_4P>DcE%?&ZCS+BnUaRV&-R*f z*hX*LyWX(=aa6!f_qQvHO^YR`ANzD}6Wh7hMqXzlvm@tfsC%T9PSiFzxnSYR`Zsf9 zeWFt(j^8hC=;PrMy&aUZ@NE=d(&^)w;Z{*rFCw^~F223sT;dE34>Re4!1k0nox`m! zN`zxeoG0h1NuN`7OP(Xy<}z9JmCv5YN5@;kV|H(BY(Pxeh`%+?DuEq!`4#$ZKQ!JLBhck;&jKcD^X_*r0D<&n>ydn^C1 z`?zs=Ioommx%W*i%K8q(J*v!#=yp1)cB&_5--MkPpFZ@8$V!=Z@IuQx4x`mEe#Lt1<>f-=#m(;be`fvLJil(M z+@BxIMN^JF?{t|NIoUsd)#}$8fgi=DiOo#Ra0=XT#v<$9%b*1vXGG(6$A&-o7$Wlc ze3{(tA1|N0*zoUpc;}fPGcNvDEB|zodGY+1dAGmq`Tt11KF+2(k#(jhTj-=ST=AZp zHwUhJ{iy3*=(C2v6Mt(2ZO(b=H@#o*;;)T@an`i*g)7b|t`DEE)9FXfn=|~=+Yc?4 z?=n*U|NQgaALssja;%A}dmnZEWqEw`%NZA!dQXZ>erUthd@wIOGa{YNAT+`9ah2X57KO_k&ca+wM(HuQ~vwwCeiH_wKAE z(WiFb&6YpY{lL8Z-G)aCPo_!C3Yc)l=&|g=vtq6jTTjd>E3!?JlRdYK>DDcc<*S&w z=9_4OtoKyktay*Z_m1GI@AZ{0L-&7vWU1mJD>dKdRJIOa<$Cnd-JmBj;7n zipR%!zFeOw>@NFu_wjj>FMdCLQt;!c;-B09EC1%NUuK#1B3OGtRS@IW4N_I-&YX)g zGBKPU@VQQILgmvbrJ}C=l0QQjV~<-K^Z2gtRGWFaTbql!<$h}R+J-78r;1hI(RmI#pVI+R~x=@@{<+?|GdpY7H`@h_M_i?q`L#I>x*VF$VKISJeD`4{0lXpU6 zlv(zh?u$`9AA0BYjak|4>b@^d-bxAEpd~Xmu75(<+=ps;?*yE;o_XRaEY9Qm;)GP{ zwHE~f-NDW&?>b}be*ZRkwoUtT(Bo~tErjOJTppSB&{O!>9Uf<4t|Dq-%uXL7TzT`lys#Ij3)=RFqmIehIB zIFR7ea_h{6Evc#rml||L9iEw<=((}tjBW7$y27+mg{f6uXGNXSvE^#nEzyg-P(nx(Q9@ z9tRFy5zY{4NS-lGWJPeq%&Oh`OuQ`HToYFx;xbCtH%>}6I&Hmw&l9Wr4`HG!q)-U1kPvRhj47@&j`JIzJZQ1--{2H=&?3Qg(<=ZOphGm<dQ6&GzH`#~Gme$+s|%XTcCXxNeA?>!2_@&r$Ako_reB=H>6s>J!5EFz_NzLMy5@PJ-Nq`W4@RS=Yy@n8{8BW7|gbN z_8ydL7HBN1S**`KbMutQ*$SI$j{nw|Te)uT>{aX5?lZZZ@W(01cz)5D17bz%j_u;J zJ8}6lzr&t+t2Z4~2@kUh**bN$ElWxCk^|iWUTigg48qthHQRbPgk|a)#ZnZ;4C zPa;Is@q!#Q*J z88?Fxu7Vi{LRk7z8U8ages{T18OAmFUdk&F&m}NTz6tYf_9s3S_=2q7yeLw*mYd( zpTYC5T=F+ROr7u}@JUzu=5{r9w?qG!e}o&!c(vY?;Nj_!Q8FmHpHMW-A%g3l$bov% zhBG&h25r-vwaKSEO;74O^MsuN!3#7mh+WG_4wxXwb)CV~&>@O!?T!EJrRM=ZUkMZ-M!(=!-pSUuyz(MGl_QSJ|Pw`n=54+OUk*0XF7UM zt(kw++tEEr-)`&sC3~KWII-`Wdg9EqlBGF}ra$&naA$OACptchaCmm-WY3KmXDT#b zv}_P5`F6}Y-`2kG*t|;J)w&C^wzsm*T+BGLSj~84gIB-gU-{_N&p+ng`h9-BwBdZG zj~m#cKZyk}-($+kdvh_e>8wJrjzaOdl(fkyeDjZZJErfq+n#?t@wvjJ7Tt|Y?lNT= zSJZ0ho{-@_F-LhO_ZCj0*Z+5Y`WDz;n)Gec)m`5=|8hvsNaWV=y33SRe7ad|NuzPG zjY9FdlywtN)PzSnaGwwh_%Sb1Xo6+9@PR{bQlHsQ{9s@bX{u1%m$FVnw|iMhFx%sj zix~n;GsAgK$ed)m$Hc`r)A3omy+W~`_JaSm`<(tU&vZ;XrL~~newULR`%K4Y>~V}& zQ$rcQc3f;evzjHvO=G{-0{cGYFOy6+GQGOC(nCmlLCzEZ2_Q@VYc0qUk&`_a!pO@h z8UPmZ*IM9yPgbUIBA150)`Exo)Q!U&=Jx98uWM*Jv$5e!WiVr{Rv2UG{CT%mpI^lk z)uO#Xq1Z&BST58-_9B^lFv6!Pwzp(%=_^yGaaAV ztZrC!BxBQ*%FN2j%8#{eFF|1x6>pRt0>i%t9E?{M&Gs)cd$nJcG# zV)pIZuz}-#TEm$wr+s3=zJ0yBua-T9ZKme*pYm>J?9Cn1Cd|y5ncs9q;qzgo&zC+m z&3LK`GA8=j(G_R96^u{#Y(MiOJI&C$;0(jem(wJFol!78!2^yiV};LmS*9I$lIoDQ zipi+?jKb$OjuSqi4rvo4Q|<{c&itQ$zAsRstx=;xOzaJNvlvU8h~jtqv;%oOMGyU= z-tIB>F<&TPY$#mJ^=Wd4B}-CW^9*N&w4^xgw3+7*`s{s`EMdrAd~}Tw``>T#rW^i| z`#g=uP+#Wr#8b3=E#GelF{r5}E)d+!Q|m diff --git a/doc/images/qmldesigner-uiforms-example-settings-tab.png b/doc/images/qmldesigner-uiforms-example-settings-tab.png deleted file mode 100644 index 7c5319bc1c9bababcb655ac69d84729d9cc3b2e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24326 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 VDgJcn77J+mil?ie%Q~loCIB4M=OF+9 diff --git a/doc/images/qmldesigner-uiforms-reset-height.png b/doc/images/qmldesigner-uiforms-reset-height.png deleted file mode 100644 index 99d748a72db1447dfdf26ece0c73f1c3478389f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3095 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 U`68vuz`(%Z>FVdQ&MBb@0LJPoM*si- diff --git a/doc/src/projects/creator-projects-overview.qdoc b/doc/src/projects/creator-projects-overview.qdoc index 8bae3a6d9c9..acef8158ebe 100644 --- a/doc/src/projects/creator-projects-overview.qdoc +++ b/doc/src/projects/creator-projects-overview.qdoc @@ -31,7 +31,7 @@ /*! \contentspage {Qt Creator Manual} - \previouspage {Using Qt Quick UI Forms} + \previouspage accelbubble \page creator-project-managing.html \nextpage creator-project-creating.html diff --git a/doc/src/qtcreator.qdoc b/doc/src/qtcreator.qdoc index 4beb6d52bda..c16a79c430b 100644 --- a/doc/src/qtcreator.qdoc +++ b/doc/src/qtcreator.qdoc @@ -148,7 +148,6 @@ \li \l{Creating a Qt Quick Application} \li \l{Creating a Qt Widget Based Application} \li \l{Creating a Mobile Application} - \li \l{Using Qt Quick UI Forms} \endlist \endlist \li \l{Managing Projects} diff --git a/doc/src/qtquick/creator-mobile-app-tutorial.qdoc b/doc/src/qtquick/creator-mobile-app-tutorial.qdoc index dce24d6a8cf..ed7dbfc3c70 100644 --- a/doc/src/qtquick/creator-mobile-app-tutorial.qdoc +++ b/doc/src/qtquick/creator-mobile-app-tutorial.qdoc @@ -33,7 +33,7 @@ \contentspage {Qt Creator Manual} \previouspage creator-writing-program.html \example accelbubble - \nextpage {Using Qt Quick UI Forms} + \nextpage creator-project-managing.html \title Creating a Mobile Application diff --git a/doc/src/qtquick/qtquick-uiforms-tutorial.qdoc b/doc/src/qtquick/qtquick-uiforms-tutorial.qdoc deleted file mode 100644 index 6577787e876..00000000000 --- a/doc/src/qtquick/qtquick-uiforms-tutorial.qdoc +++ /dev/null @@ -1,488 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Creator documentation. -** -** 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 Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: https://www.gnu.org/licenses/fdl-1.3.html. -** -****************************************************************************/ - -/*! - \contentspage {Qt Creator Manual} - \previouspage {Creating a Mobile Application} - \example uiforms - \nextpage creator-project-managing.html - - \title Using Qt Quick UI Forms - - This tutorial describes how to develop an application that uses \e ui.qml - files to separate the application logic from the UI. The tutorial uses \QMLD - to implement a simplified version of the \l{Qt Quick Controls - UI Forms} - {UI Forms example}, which provides an interface to a customer database and - is purely written in QML and JavaScript. - For more information about the UI choices you have, see \l{User Interfaces}. - - \image qmldesigner-uiforms-example.png - - \e {UI forms} consist of \e .qml and \e .js files that implement the - business logic, and corresponding \e .ui.qml files that only contain the - purely declarative description of the UI. The \e .ui.qml files should be - edited only in the \uicontrol Design mode of \QC. However, \QMLD does not - fully support all QML controls, such as the TableView, so you sometimes need - to edit UI forms also in the \uicontrol Edit mode. You can keep this to the - minimum by creating custom QML types that you edit in the \uicontrol Edit - mode. - - \include creator-tutorial-create-qq-project.qdocinc - - \section1 Creating the UI Forms Main View - - The main view of the application displays a customer list in a table view - and detailed information about the selected customer in a tab view. - - \image qmldesigner-uiforms-example-main-view.png - - To create the main view: - - \list 1 - - \li In the \uicontrol Projects view (1), double-click the - \e MainForm.ui.qml file to open it in \QMLD. - - \li In the \uicontrol Navigator (2), select the \uicontrol RowLayout and - press \key Delete to delete it. - - \li In \uicontrol Library > \uicontrol {QML Types} (3), select - \uicontrol SplitView and drag and drop it to the \uicontrol Item in - the navigator. - - \li Select the split view in the navigator, then select the - \uicontrol Layout tab in \uicontrol Properties (4), and then click - the \inlineimage anchor_fill.png - (\uicontrol {Fill to Parent}) button to anchor the split view to the - item. - - \li Drag and drop a \uicontrol TableView and a \uicontrol {Tab View} - from the library to the split view in the navigator. - - \li Select the \inlineimage export_unchecked.png - (\uicontrol Export) button in the navigator to export the table view - as a property. - - \li Right-click \uicontrol TabView to open the context menu and select - \uicontrol {Add Tab} to create a Tab element. - - \QC creates the element as a separate QML file with the name that - you enter in the dialog. By default, the element is called - \uicontrol Tab. - - \li Select the tab in the navigator and enter \b {Customer Settings} in - the \uicontrol Title field in the properties. - - \li Press \key Ctrl+C to copy the tab to the clipboard, and then press - \key Ctrl+V twice to create two more tabs that you name - \b {Customer Notes} and \b {Customer History}. \QC uses the \l Tab - type in the \e MainForm.ui.qml file. You will create separate UI - forms for the tab contents later. - - \endlist - - \section2 Editing the Table View - - \QMLD does not support adding columns to TableView types, and therefore, you - must use the code editor to add them. To keep editing the \e MainForm.ui.qml - file in the \uicontrol Edit mode to the minimum, move the TableView type to - a separate QML file called \e CustomerTableView.qml: - - \list 1 - - \li Click \uicontrol Edit to open \e MainForm.ui.qml in \uicontrol Edit - mode. - - \li To move the TableView type to a separate QML file, right-click it - and select \uicontrol Refactoring > - \uicontrol {Move Component into Separate File}. - - \li Add the code from the \l {uiforms/CustomerTableView.qml} - {CustomerTableView.qml} example file to the file that \QC creates - for you. - - \endlist - - \section1 Implementing the Application Logic for the Main View - - The new project wizard adds boilerplate code to the \e main.qml file to - create menu items and push buttons. Modify the boilerplate code by removing - obsolete code and by adding new code. You removed the push buttons from the - UI Form, so you also need to remove the corresponding code from - \e main.qml (or the application cannot be built). - - You will want to keep the dialog box and menu bar, but change their - contents, as instructed later. - - Edit the \e main.qml file in the code editor, as described in the following - sections. - - \section2 Specifying Main View Size - - The wizard creates an ApplicationWindow type and a MainForm type that - specify the application main view. Enter the application name as the - value of the \c title property. - - Clean up the MainForm code by removing the obsolete lines that call - functions when buttons are clicked: - - \badcode - MainForm { - anchors.fill: parent - button1.onClicked: messageDialog.show(qsTr("Button 1 pressed")) - button2.onClicked: messageDialog.show(qsTr("Button 2 pressed")) - } - \endcode - - Remove the \c width and \c height properties from the ApplicationWindow - type and use a \l Layout type in the MainForm type to set the minimum and - preferred size of the main view. - - To use the Layout type, import Qt Quick Layouts: - - \quotefromfile uiforms/main.qml - \skipto QtQuick.Layouts - \printline Layouts - - Then specify the following properties for the MainForm: - - \skipto MainForm - \printuntil Layout.preferredHeight - - \section2 Creating the Table View Model - - Use a list model to display customer data in the table view. Because the - list model is accessed from several different \e .qml files, access it - through a singleton type defined in \e CustomerModelSingleton.qml and - registered in \e main.cpp. This way, you do not have to rely on the QML - context scoping rules to access the list model. - - \list 1 - - \li In the \uicontrol Projects view, right-click \uicontrol qml.qrc and - select \uicontrol {Add New} > \uicontrol Qt > - \uicontrol {QML File (Qt Quick 2)} to create the - \e CustomerModelSingleton.qml file and to add it to the project. - - \li Copy the implementation from \l{uiforms/CustomerModelSingleton.qml} - {CustomerModelSingleton.qml}. - - \li Add the following code to the MainForm in \e main.qml to access the - list model: - - \quotefromfile uiforms/main.qml - \skipto tableView1.model: CustomerModel - \printuntil tableView1.selection - - \li To register the singleton type in the \e main.cpp file, include the - Qt QML module and call the \c qmlRegisterSingletonType() function in - the initialization function: - - \quotefromfile uiforms/main.cpp - \dots - \skipto QtQml - \printuntil "CustomerModel"); - - \li To use the registered singleton type in \e main.qml, you must import - the singleton type: - - \quotefromfile uiforms/main.qml - \skipto my.customermodel.singleton - \printline 1.0 - - \endlist - - \section1 Creating Tabs - - You can use the new file wizard to create UI forms that specify tab - contents and functionality. You set the QML files as sources for the tabs - in the \e MainForm.ui.qml file and modify the corresponding UI forms in the - \uicontrol Design mode. - - \section2 Creating UI Forms for Tab Contents - - To create UI forms for the tab contents: - - \list 1 - - \li Select \uicontrol File > \uicontrol {New File or Project} > - \uicontrol Qt > \uicontrol {QtQuick UI File} > \uicontrol Choose. - - \li In the \uicontrol {Component name} field, enter \b Settings. - - \li Click \uicontrol Next. - - \li Click \uicontrol Finish to create the UI form, - \e SettingsForm.ui.qml, and a corresponding QML file, - \e Settings.qml. - - \endlist - - Create the UI form, \e NotesForm.ui.qml, and the corresponding QML file, - \e Notes.qml, for the notes tab in the same way. You will not need an - \e ui.qml file for the history tab, so you will create the QML file for it - later. - - \section2 Creating the Settings Tab - - The \uicontrol {Customer Settings} tab contains information about the - selected user. - - \image qmldesigner-uiforms-example-settings-tab.png - - To create the tab contents: - - \list 1 - - \li Double-click \e SettingsForm.ui.qml in the \uicontrol Projects - view to open it for editing in the \uicontrol Design mode. - - \li Select \uicontrol Item in the \uicontrol Navigator and enter - \b content in the \uicontrol Id field in \uicontrol Properties. - - \li In \uicontrol Library, select \uicontrol Imports > - \uicontrol {Add Import} and import Qt Quick Controls and Layouts to - make the QML types in those modules visible in the library. - - \li Drag and drop a \uicontrol {Grid Layout} from the library to the - \b content item in the navigator. - - \li Select \uicontrol Layout > \uicontrol Top, \uicontrol Left, and - \uicontrol Right buttons to anchor the grid layout to the parent. - - \li In the \uicontrol Margin fields for the anchors, set the margins - to \b 12. - - \li In \uicontrol Properties, set \uicontrol {Column spacing} and - \uicontrol {Row spacing} to \b 8, \uicontrol Columns to \b 3, and - \uicontrol Rows to \b 4. If you add more fields, add the necessary - amount of rows. - - \li Drag and drop four \uicontrol Label controls, a - \uicontrol {Combo Box}, and three \uicontrol {Text Field} controls - from the library to the navigator. - - \li Use the down arrow in the navigator to move one label down to the - position above the last text field. - - \li In the properties, change the label text for each field in the - \uicontrol Text field. You need the following labels: \b Title, - \b {First Name}, \b {Last Name}, and \b {Customer Id}. - - \li In the properties, change the placeholder text for each text field - in the \uicontrol {Placeholder text} field to be the same as the - field label. - - \li Select the customer ID text field, then select \uicontrol Layout - in properties and set \uicontrol {Column span} to 3 and check - \uicontrol {Fill width} to make the ID field span the length of - the grid layout. - - \li Drag and drop a \uicontrol {Row Layout} from the library to the - \b content item in the navigator and click on it. - - \li Reset the height of the row layout in properties. - - \image qmldesigner-uiforms-reset-height.png - - \li Select \uicontrol Layout > \uicontrol Bottom and \uicontrol Right - buttons to anchor the row layout to the parent. - - \li In the \uicontrol Margin fields for the anchors, set the margins - to \b 12. - - \li Drag and drop two \uicontrol Button controls from the library to the - row layout in the navigator. - - \li In the properties, change the button labels in the \uicontrol Text - field to \b Save and \b Cancel. - - \li Select \uicontrol Layout and > \uicontrol {Fill width} and - \uicontrol {Fill height} in properties for each button to have the - buttons fill the row layout. - - \li In the navigator, select \uicontrol Export for each field to export - the field IDs as properties. The following items should be exported, - so that they can be referred to in \e Settings.qml: - - \quotefromfile uiforms/SettingsForm.ui.qml - \skipto property - \printuntil title - - \endlist - - \section2 Creating the Notes Tab - - The \uicontrol {Customer Notes} tab contains a text area for entering notes - about the selected customer and buttons for saving or canceling the changes. - - To create the tab contents: - - \list 1 - - \li Double-click \e NotesForm.ui.qml in the \uicontrol Projects - view to open it for editing in the \uicontrol Design mode. - - \li Select \uicontrol Item in the \uicontrol Navigator and enter - \b content in the \uicontrol Id field in \uicontrol Properties. - - \li In \uicontrol Library, select \uicontrol Imports > - \uicontrol {Add Import} and import Qt Quick Controls and Layouts. - - \li Drag and drop a \uicontrol {Column Layout} from the library to the - \b content item in the navigator. - - \li Select \uicontrol Layout > \uicontrol Top, \uicontrol Left, and - \uicontrol Right buttons to anchor the grid layout to the parent - and set the margins to \b 12. - - \li Drag and drop a \uicontrol {Text Area} from the library to the - column layout. - - \li Select \uicontrol Layout and > \uicontrol {Fill width} and - \uicontrol {Fill height} in properties to have the text area fill - the column layout. - - \li Create the \uicontrol Save and \uicontrol Cancel buttons as - instructed in \l {Creating the Settings Tab}. You can also copy and - paste the row layout from SettingsForm.ui.qml. - - \li In the navigator, select \uicontrol Export for each field to export - the field IDs as properties. The following items should be exported, - so that they can be referred to in \e Notes.qml: - - \quotefromfile uiforms/NotesForm.ui.qml - \skipto property - \printuntil save - - \endlist - - \section2 Creating the History Tab - - The \uicontrol {Customer History} tab contains a table view that displays - the transactions performed by the customer. Create a custom HistoryTableView - type that you can edit in the \uicontrol Edit mode. For the history tab, you - do not need an \e ui.qml file at all. - - To create the history tab: - - \list 1 - - \li In the \uicontrol Projects view, right-click \uicontrol qml.qrc and - select \uicontrol {Add New} > \uicontrol Qt > - \uicontrol {QML File (Qt Quick 2)} to create the - \e HistoryTableView.qml file and to add it to the project. - - \li Copy the implementation from \l{uiforms/HistoryTableView.qml} - {HistoryTableView.qml}. - - \li Add the code from the example \l{uiforms/History.qml}{History.qml} - file to your \e History.qml file to access the code model. - - \endlist - - \section1 Adding Tab Functionality - - Add functions for displaying data from the customer model in the tabs. You - have already created the files that you need. You now need to copy the - implementation for the settings tab from the \l {uiforms/Settings.qml} - {Settings.qml} file and for the notes tab from the \l {uiforms/Notes.qml} - {Notes.qml} file. - - To display the tab contents in the main view, set the QML files as sources - for the tabs in the \uicontrol Design mode. Select the settings tab in the - \uicontrol Navigator and specify for example \e Settings.qml in the - \uicontrol Source field in the \uicontrol Properties view. Similarly, - specify the sources for the notes and history tabs. - - You can then remove the \e Tab.qml file that the wizard generated but that - you no longer need by selecting \uicontrol {Remove File} in the context - menu. - - \section1 Creating Menus - - The wizard adds a menu bar to the \e main.qml file that contains a - \uicontrol File menu with the \uicontrol Open and \uicontrol Exit menu - items. Keep the menu and the \uicontrol Exit menu item, and add the - \uicontrol Edit and \uicontrol Help menus with standard menu items. - - The wizard creates the following code: - - \badcode - menuBar: MenuBar { - Menu { - title: qsTr("&File") - MenuItem { - text: qsTr("&Open") - onTriggered: messageDialog.show(qsTr("Open action triggered")); - } - MenuItem { - text: qsTr("E&xit") - onTriggered: Qt.quit(); - } - } - } - \endcode - - Remove the \uicontrol Open menu item and add the following code to create - the new menus: - - \quotefromfile uiforms/main.qml - \skipto menuBar - \printuntil activeFocusItem.paste - \printuntil } - - \section1 Creating Dialogs - - \image qmldesigner-uiforms-example-about-dialog.png - - The wizard creates a message box in the \e main.qml file that you should - turn into an \uicontrol About dialog for the purpose of this example: - - \badcode - MessageDialog { - id: messageDialog - title: qsTr("May I have your attention, please?") - - function show(caption) { - messageDialog.text = caption; - messageDialog.open(); - } - \endcode - - Modify the code created by the wizard to add an icon and some text: - - \quotefromfile uiforms/main.qml - \skipto MessageDialog - \printuntil } - - Enable access to the \uicontrol About dialog from the \uicontrol Help menu - that you create next. - - \section1 Running the Application - - The application is complete and ready to be run on the desktop or deployed - to a device. To run the application, press \key {Ctrl+R}. -*/