diff options
author | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2017-09-20 10:37:06 +0200 |
---|---|---|
committer | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2017-10-05 11:03:27 +0000 |
commit | 951393508a5068bd999c3225158cbb06872d881c (patch) | |
tree | 989c3dc9c9323b3be83755c2adb9cf3877b0ef78 | |
parent | 41ef172d1cee40c42d14ff7824baedf11060b987 (diff) | |
download | qtmultimedia-951393508a5068bd999c3225158cbb06872d881c.tar.gz |
Modernize the Declarative Radio example
Added responsive UI.
Added Button type.
Task-number: QTBUG-60627
Change-Id: I69d10ad735706538b31c7bf1810e90d5a884a382
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
-rw-r--r-- | examples/multimedia/declarative-radio/Button.qml | 71 | ||||
-rw-r--r-- | examples/multimedia/declarative-radio/declarative-radio.qrc | 1 | ||||
-rw-r--r-- | examples/multimedia/declarative-radio/main.cpp | 3 | ||||
-rw-r--r-- | examples/multimedia/declarative-radio/view.qml | 142 |
4 files changed, 116 insertions, 101 deletions
diff --git a/examples/multimedia/declarative-radio/Button.qml b/examples/multimedia/declarative-radio/Button.qml new file mode 100644 index 000000000..c01c9d388 --- /dev/null +++ b/examples/multimedia/declarative-radio/Button.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** 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 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.0 + +Rectangle { + id: button + border.color: "black" + border.width: 1 + radius: 5 + + property string text + signal clicked + + width: d.buttonWidth + height: d.buttonHeight + + anchors { + margins: root.margins + top: parent.top + } + + Text { + anchors.fill: parent + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + text: button.text + } + + MouseArea { + anchors.fill: parent + onClicked: button.clicked(); + } +} diff --git a/examples/multimedia/declarative-radio/declarative-radio.qrc b/examples/multimedia/declarative-radio/declarative-radio.qrc index ed01a64f6..0f7859d78 100644 --- a/examples/multimedia/declarative-radio/declarative-radio.qrc +++ b/examples/multimedia/declarative-radio/declarative-radio.qrc @@ -1,6 +1,7 @@ <!DOCTYPE RCC><RCC version="1.0"> <qresource> <file>view.qml</file> +<file>Button.qml</file> </qresource> </RCC> diff --git a/examples/multimedia/declarative-radio/main.cpp b/examples/multimedia/declarative-radio/main.cpp index 0dfd4d2c9..6d7771e60 100644 --- a/examples/multimedia/declarative-radio/main.cpp +++ b/examples/multimedia/declarative-radio/main.cpp @@ -50,7 +50,8 @@ int main(int argc, char ** argv) QQuickView view; - view.setSource(QUrl("qrc:view.qml")); + view.setSource(QUrl("qrc:/view.qml")); + view.setMinimumSize(QSize(400, 100)); view.show(); return app.exec(); diff --git a/examples/multimedia/declarative-radio/view.qml b/examples/multimedia/declarative-radio/view.qml index 7ab35260a..4bc3fbc4a 100644 --- a/examples/multimedia/declarative-radio/view.qml +++ b/examples/multimedia/declarative-radio/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** - ** Copyright (C) 2015 The Qt Company Ltd. + ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: http://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Toolkit. @@ -42,7 +42,16 @@ import QtQuick 2.0 import QtMultimedia 5.0 Rectangle { - width: 400; height: 300; + anchors.fill: parent + id: root + property int margins: 5 + property int spacing: 10 + + QtObject { + id: d + property int buttonHeight: root.height > root.width ? root.width / 3 : root.height / 3 + property int buttonWidth: (root.width - spacing * 4) / 4 + } Radio { id: radio @@ -51,25 +60,30 @@ Rectangle { Column { anchors.fill: parent - anchors.margins: 5 - spacing: 5 + anchors.margins: root.margins - Row { + Rectangle { + color: root.color + width: parent.width + height: root.height - d.buttonHeight - 40 Text { id: freq - - width: 150 - height: 200 - verticalAlignment: Text.AlignVCenter text: "" + radio.frequency / 1000 + " kHz" + anchors { + bottom: parent.bottom + margins: root.margins + } } Text { id: sig + anchors { + bottom: parent.bottom + right: parent.right + margins: root.margins - width: 200 - height: 200 + } verticalAlignment: Text.AlignVCenter text: (radio.availability == Radio.Available ? "No Signal " : "No Radio Found") @@ -80,112 +94,40 @@ Rectangle { spacing: 5 Rectangle { - width: 350 - height: 10 - + width: root.width - 10 + height: 20 color: "black" Rectangle { width: 5 - height: 10 + height: 20 color: "red" y: 0 x: (parent.width - 5) * ((radio.frequency - radio.minimumFrequency) / (radio.maximumFrequency - radio.minimumFrequency)) - } } } - - Row { - spacing: 5 - - Rectangle { - id: scanDownButton - border.color: "black" - border.width: 1 - radius: 2 - - width: 90 - height: 40 - - Text { - anchors.fill: parent - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - text: "Scan Down" - } - - MouseArea { - anchors.fill: parent - onClicked: radio.scanDown(); - } + spacing: root.spacing + Button { + text: "Scan Down" + onClicked: radio.scanDown() } - Rectangle { - id: freqDownButton - border.color: "black" - border.width: 1 - radius: 2 - - width: 90 - height: 40 - - Text { - anchors.fill: parent - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - text: "Freq Down" - } - - MouseArea { - anchors.fill: parent - onClicked: radio.tuneDown(); - } + Button { + text: "Freq Down" + onClicked: radio.tuneDown() } - Rectangle { - id: freqUpButton - border.color: "black" - border.width: 1 - radius: 2 - - width: 90 - height: 40 - - Text { - anchors.fill: parent - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - text: "Freq Up" - } - - MouseArea { - anchors.fill: parent - onClicked: radio.tuneUp(); - } + Button { + text: "Freq Up" + onClicked: radio.tuneUp() } - Rectangle { - id: scanUpButton - border.color: "black" - border.width: 1 - radius: 2 - - width: 90 - height: 40 - - Text { - anchors.fill: parent - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - text: "Scan Up" - } - - MouseArea { - anchors.fill: parent - onClicked: radio.scanUp(); - } + Button { + text: "Scan Up" + onClicked: radio.scanUp() } } } } + |