diff options
author | Shawn Rutledge <shawn.rutledge@digia.com> | 2013-08-26 10:31:54 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 13:53:34 +0200 |
commit | a25b1fdf7d642d9f252fbfa1789efaa32e03b994 (patch) | |
tree | e13f4255693049d4133fc96e0e5236fbd3c9f43a /examples | |
parent | 607f2db351edf4b0f677c302fa37733596abe024 (diff) |
Adding QtQuick.Dialogs.MessageDialog
Change-Id: Ifa3de21e6f611c24742118d6d178edbe14f243be
Reviewed-by: Liang Qi <liang.qi@digia.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/quick/dialogs/systemdialogs/MessageDialogs.qml | 307 | ||||
-rw-r--r-- | examples/quick/dialogs/systemdialogs/systemdialogs.pro | 3 | ||||
-rw-r--r-- | examples/quick/dialogs/systemdialogs/systemdialogs.qml | 6 | ||||
-rw-r--r-- | examples/quick/dialogs/systemdialogs/systemdialogs.qrc | 1 | ||||
-rw-r--r-- | examples/quick/shared/CheckBox.qml | 1 | ||||
-rw-r--r-- | examples/quick/shared/TextField.qml | 80 | ||||
-rw-r--r-- | examples/quick/shared/qmldir | 1 | ||||
-rw-r--r-- | examples/quick/shared/quick_shared.qrc | 1 | ||||
-rw-r--r-- | examples/quick/shared/shared.qrc | 1 |
9 files changed, 400 insertions, 1 deletions
diff --git a/examples/quick/dialogs/systemdialogs/MessageDialogs.qml b/examples/quick/dialogs/systemdialogs/MessageDialogs.qml new file mode 100644 index 0000000000..e6fdf57e0d --- /dev/null +++ b/examples/quick/dialogs/systemdialogs/MessageDialogs.qml @@ -0,0 +1,307 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.1 +import QtQuick.Dialogs 1.1 +import QtQuick.Window 2.0 +import "../../shared" + +Rectangle { + width: 580 + height: 400 + color: palette.window + SystemPalette { id: palette } + clip: true + + //! [messagedialog] + MessageDialog { + id: messageDialog + visible: messageDialogVisible.checked + modality: messageDialogModal.checked ? Qt.WindowModal : Qt.NonModal + title: windowTitleField.text + text: customizeText.checked ? textField.text : "" + informativeText: customizeInformativeText.checked ? informativeTextField.text : "" + detailedText: customizeDetailedText.checked ? detailedTextField.text : "" + onButtonClicked: console.log("clicked button " + clickedButton) + onAccepted: lastChosen.text = "Accepted " + + (clickedButton == Message.Ok ? "(OK)" : (clickedButton == Message.Retry ? "(Retry)" : "(Ignore)")) + onRejected: lastChosen.text = "Rejected " + + (clickedButton == Message.Close ? "(Close)" : (clickedButton == Message.Abort ? "(Abort)" : "(Cancel)")) + onHelp: lastChosen.text = "Yelped for help!" + onYes: lastChosen.text = (clickedButton == Message.Yes ? "Yeessss!!" : "Yes, now and always") + onNo: lastChosen.text = (clickedButton == Message.No ? "Oh No." : "No, no, a thousand times no!") + onApply: lastChosen.text = "Apply" + onReset: lastChosen.text = "Reset" + } + //! [messagedialog] + + Column { + anchors.fill: parent + anchors.margins: 12 + spacing: 8 + Text { + color: palette.windowText + font.bold: true + text: "Message dialog properties:" + } + CheckBox { + id: messageDialogModal + text: "Modal" + checked: true + Binding on checked { value: messageDialog.modality != Qt.NonModal } + } + CheckBox { + id: customizeTitle + text: "Window Title" + checked: true + width: parent.width + TextField { + id: windowTitleField + anchors.right: parent.right + width: informativeTextField.width + text: "Alert" + } + } + Row { + spacing: 8 + property bool updating: false + function updateIcon(icon, checked) { + if (updating) return + updating = true + messageDialog.icon = (checked ? icon : Message.NoIcon) + for (var i = 0; i < children.length; ++i) + if (children[i].icon !== icon) + children[i].checked = false + updating = false + } + + CheckBox { + id: iconInformation + text: "Information" + property int icon: Message.Information + onCheckedChanged: parent.updateIcon(icon, checked) + } + + CheckBox { + id: iconWarning + text: "Warning" + checked: true + property int icon: Message.Warning + onCheckedChanged: parent.updateIcon(icon, checked) + Component.onCompleted: parent.updateIcon(icon, true) + } + + CheckBox { + id: iconCritical + text: "Critical" + property int icon: Message.Critical + onCheckedChanged: parent.updateIcon(icon, checked) + } + + CheckBox { + id: iconQuestion + text: "Question" + property int icon: Message.Question + onCheckedChanged: parent.updateIcon(icon, checked) + } + } + + CheckBox { + id: customizeText + text: "Primary Text" + checked: true + width: parent.width + TextField { + id: textField + anchors.right: parent.right + width: informativeTextField.width + text: "Attention Please" + } + } + CheckBox { + id: customizeInformativeText + text: "Informative Text" + checked: true + width: parent.width + TextField { + id: informativeTextField + anchors.right: parent.right + width: parent.width - parent.row.spacing - parent.row.width + text: "Be alert!" + } + } + Text { + text: "Buttons:" + } + Flow { + spacing: 8 + width: parent.width + property bool updating: false + function updateButtons(button, checked) { + if (updating) return + updating = true + var buttons = 0 + for (var i = 0; i < children.length; ++i) + if (children[i].checked) + buttons |= children[i].button + if (!buttons) + buttons = Message.Ok + messageDialog.standardButtons = buttons + updating = false + } + + CheckBox { + text: "Help" + property int button: Message.Help + onCheckedChanged: parent.updateButtons(button, checked) + } + + CheckBox { + text: "Abort" + property int button: Message.Abort + onCheckedChanged: parent.updateButtons(button, checked) + } + + CheckBox { + text: "Close" + property int button: Message.Close + onCheckedChanged: parent.updateButtons(button, checked) + } + + CheckBox { + text: "Cancel" + property int button: Message.Cancel + onCheckedChanged: parent.updateButtons(button, checked) + } + + CheckBox { + text: "NoToAll" + property int button: Message.NoToAll + onCheckedChanged: parent.updateButtons(button, checked) + } + + CheckBox { + text: "No" + property int button: Message.No + onCheckedChanged: parent.updateButtons(button, checked) + } + + CheckBox { + text: "YesToAll" + property int button: Message.YesToAll + onCheckedChanged: parent.updateButtons(button, checked) + } + + CheckBox { + text: "Yes" + property int button: Message.Yes + onCheckedChanged: parent.updateButtons(button, checked) + } + + CheckBox { + text: "Ignore" + property int button: Message.Ignore + onCheckedChanged: parent.updateButtons(button, checked) + } + + CheckBox { + text: "Retry" + property int button: Message.Retry + onCheckedChanged: parent.updateButtons(button, checked) + } + + CheckBox { + text: "OK" + checked: true + property int button: Message.Ok + onCheckedChanged: parent.updateButtons(button, checked) + } + } + CheckBox { + id: customizeDetailedText + text: "Detailed Text" + checked: true + width: parent.width + TextField { + id: detailedTextField + anchors.right: parent.right + width: informativeTextField.width + text: "The world needs more lerts." + } + } + CheckBox { + id: messageDialogVisible + text: "Visible" + Binding on checked { value: messageDialog.visible } + } + Text { + id: lastChosen + } + } + + Rectangle { + anchors { + left: parent.left + right: parent.right + bottom: parent.bottom + } + height: buttonRow.height * 1.2 + color: Qt.darker(palette.window, 1.1) + border.color: Qt.darker(palette.window, 1.3) + Row { + id: buttonRow + spacing: 6 + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.leftMargin: 12 + width: parent.width + Button { + text: "Open" + anchors.verticalCenter: parent.verticalCenter + onClicked: messageDialog.open() + } + Button { + text: "Close" + anchors.verticalCenter: parent.verticalCenter + onClicked: messageDialog.close() + } + } + } +} diff --git a/examples/quick/dialogs/systemdialogs/systemdialogs.pro b/examples/quick/dialogs/systemdialogs/systemdialogs.pro index 4f1f71e389..323ea2fac7 100644 --- a/examples/quick/dialogs/systemdialogs/systemdialogs.pro +++ b/examples/quick/dialogs/systemdialogs/systemdialogs.pro @@ -8,7 +8,8 @@ OTHER_FILES += \ systemdialogs.qml \ FileDialogs.qml \ ColorDialogs.qml \ - FontDialogs.qml + FontDialogs.qml \ + MessageDialogs.qml target.path = $$[QT_INSTALL_EXAMPLES]/quick/dialogs/systemdialogs INSTALLS += target diff --git a/examples/quick/dialogs/systemdialogs/systemdialogs.qml b/examples/quick/dialogs/systemdialogs/systemdialogs.qml index 167df94c40..1600e88812 100644 --- a/examples/quick/dialogs/systemdialogs/systemdialogs.qml +++ b/examples/quick/dialogs/systemdialogs/systemdialogs.qml @@ -62,4 +62,10 @@ TabSet { anchors.fill: parent color: "#e3e3e3" // to match tab.png } + + MessageDialogs { + property string title: "Message Dialog" + anchors.fill: parent + color: "#e3e3e3" // to match tab.png + } } diff --git a/examples/quick/dialogs/systemdialogs/systemdialogs.qrc b/examples/quick/dialogs/systemdialogs/systemdialogs.qrc index df576577af..2193088cb9 100644 --- a/examples/quick/dialogs/systemdialogs/systemdialogs.qrc +++ b/examples/quick/dialogs/systemdialogs/systemdialogs.qrc @@ -4,5 +4,6 @@ <file>FileDialogs.qml</file> <file>ColorDialogs.qml</file> <file>FontDialogs.qml</file> + <file>MessageDialogs.qml</file> </qresource> </RCC> diff --git a/examples/quick/shared/CheckBox.qml b/examples/quick/shared/CheckBox.qml index a3a22b7723..16ad2adba8 100644 --- a/examples/quick/shared/CheckBox.qml +++ b/examples/quick/shared/CheckBox.qml @@ -49,6 +49,7 @@ Item { property alias text: label.text property bool checked property alias pressed: mouseArea.pressed + property alias row: row signal clicked SystemPalette { id: palette } diff --git a/examples/quick/shared/TextField.qml b/examples/quick/shared/TextField.qml new file mode 100644 index 0000000000..9a6427a105 --- /dev/null +++ b/examples/quick/shared/TextField.qml @@ -0,0 +1,80 @@ +/***************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtQuick.Dialogs module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +*****************************************************************************/ + +import QtQuick 2.1 + +Item { + id: root + + property alias textInput: textInput + property alias text: textInput.text + signal accepted + signal downPressed + implicitWidth: textInput.implicitWidth + rect.radius * 2 + implicitHeight: textInput.implicitHeight + + function copyAll() { + textInput.selectAll() + textInput.copy() + } + + SystemPalette { id: palette } + height: textInput.implicitHeight + 8 + clip: true + + Rectangle { + id: rect + anchors.fill: parent + radius: height / 4 + color: palette.button + border.color: Qt.darker(palette.button, 1.5) + } + + TextInput { + id: textInput + color: palette.text + anchors.fill: parent + anchors.leftMargin: rect.radius + anchors.rightMargin: rect.radius + verticalAlignment: Text.AlignVCenter + onAccepted: root.accepted() + Keys.onDownPressed: root.downPressed() + } +} diff --git a/examples/quick/shared/qmldir b/examples/quick/shared/qmldir index 4f7c50540d..b539191fec 100644 --- a/examples/quick/shared/qmldir +++ b/examples/quick/shared/qmldir @@ -4,3 +4,4 @@ LauncherList 2.0 LauncherList.qml SimpleLauncherDelegate 2.0 SimpleLauncherDelegate.qml Slider 2.0 Slider.qml TabSet 2.1 TabSet.qml +TextField 2.1 TextField.qml diff --git a/examples/quick/shared/quick_shared.qrc b/examples/quick/shared/quick_shared.qrc index ee706712dd..015a1f99d5 100644 --- a/examples/quick/shared/quick_shared.qrc +++ b/examples/quick/shared/quick_shared.qrc @@ -4,6 +4,7 @@ <file>SimpleLauncherDelegate.qml</file> <file>Button.qml</file> <file>CheckBox.qml</file> + <file>TextField.qml</file> <file>images/back.png</file> <file>images/next.png</file> </qresource> diff --git a/examples/quick/shared/shared.qrc b/examples/quick/shared/shared.qrc index 6aaeca5211..7e0c66c34b 100644 --- a/examples/quick/shared/shared.qrc +++ b/examples/quick/shared/shared.qrc @@ -7,6 +7,7 @@ <file>images/slider_handle.png</file> <file>CheckBox.qml</file> <file>TabSet.qml</file> + <file>TextField.qml</file> <file>images/back.png</file> <file>images/next.png</file> <file>images/qt-logo.png</file> |