diff --git a/CMakeLists.txt b/CMakeLists.txt index fee4b9a..fa11680 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,7 @@ qt_add_qml_module(apptangraplay ui/MenuToolbar.qml ui/PgLive.qml ui/PgNews.qml + ui/NewsDelegate.qml RESOURCES ${QML_ASSETS} ) diff --git a/ui/AudioPlayer.qml b/ui/AudioPlayer.qml index e0a6e95..84b318f 100644 --- a/ui/AudioPlayer.qml +++ b/ui/AudioPlayer.qml @@ -2,12 +2,6 @@ import QtQuick 2.0 import QtMultimedia MediaPlayer { - property variant quality: { - "low" : "http://stream-bg-01.radiotangra.com/Tangra-middle.m3u", - "high" : "http://stream-bg-01.radiotangra.com/Tangra-high.m3u" - } - audioOutput: AudioOutput {} - source: "http://stream-bg-01.radiotangra.com:8000/Tangra-high" } diff --git a/ui/MenuToolbar.qml b/ui/MenuToolbar.qml index b1bee40..98bc0c6 100644 --- a/ui/MenuToolbar.qml +++ b/ui/MenuToolbar.qml @@ -17,13 +17,13 @@ Item { MouseArea { anchors.fill: parent; - property string clickPos: "1,1" + property variant clickPos: "1,1" - onPressed: { - clickPos = Qt.point(mouse.x,mouse.y) + onPressed: (mouse)=> { + clickPos = Qt.point(mouse.x, mouse.y) } - onPositionChanged: { + onPositionChanged: (mouse)=> { var delta = Qt.point(mouse.x-clickPos.x, mouse.y-clickPos.y) var new_x = mainWindow.x + delta.x var new_y = mainWindow.y + delta.y @@ -75,9 +75,23 @@ Item { anchors.fill: parent hoverEnabled: true onClicked: { - pgLive1.visible = false; - pgnews1.visible = true; -// contentLoader.sourceComponent = PgNews + mainStack.push(stackLive) + } + } + } + Image { + id: buttonNews + source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/news.png" + anchors.left: buttonLive.left + anchors.leftMargin: 128 + width: 32 + height: 32 + + MouseArea { + anchors.fill: parent + hoverEnabled: true + onClicked: { + mainStack.push(stackNews) } } } diff --git a/ui/PgNews.qml b/ui/PgNews.qml index 4e74cf8..379b584 100644 --- a/ui/PgNews.qml +++ b/ui/PgNews.qml @@ -1,38 +1,35 @@ -import QtQuick 2.12 -import QtQuick.Window 2.12 -import Qt.labs.platform 1.1 -import QtMultimedia 5.15 +import QtQuick +import QtQuick.Controls +import QtQml.XmlListModel Item { x: 190 y: 51 - Row { - id: row - x: 8 - y: 50 - width: 624 - height: 400 - spacing: 2 - - Text { - id: text1 - x: 61 - y: 50 - text: qsTr("Гледайте първо видео от новия албум на GOJIRA - той излиза на 3 април") - font.pixelSize: 12 - font.family: mainfont.name - } - Text { - id: text2 - x: 61 - y: 50 - text: qsTr("Историята на BLONDIE в предаването 'РОКЕНДРОЛ' на МОНИ ПАНЧЕВ от 16:00") - font.pixelSize: 12 - font.family: mainfont.name - } - } + XmlListModel { + id: newsModel + + source: "http://www.radiotangra.com/news/rss.html" + query: "/rss/channel/item" + + XmlListModelRole { name: "title"; elementName: "title"; attributeName: ""} + XmlListModelRole { name: "link"; elementName: "link"; attributeName: "" } + } + + ListView { + id: newsList + anchors.fill: parent + anchors.topMargin: 38 + anchors.leftMargin: 39 + anchors.rightMargin: 27 + anchors.bottomMargin: 17 + model: newsModel + delegate: NewsDelegate {} + ScrollBar.vertical: ScrollBar { + policy: ScrollBar.AlwaysOn + } + } } diff --git a/ui/main.qml b/ui/main.qml index 0517286..93d95fb 100644 --- a/ui/main.qml +++ b/ui/main.qml @@ -1,10 +1,10 @@ import QtQuick 2.12 -import QtQuick.Window 2.12 +import QtQuick.Controls +import QtQuick.Layouts import Qt.labs.platform 1.1 -import QtMultimedia 5.15 -//import TangraPlay +import QtMultimedia -Window { +ApplicationWindow { title: qsTr("Tangra Mega Rock") id: mainWindow visible: true @@ -14,9 +14,10 @@ Window { maximumHeight: 480 flags: Qt.FramelessWindowHint -// FontLoader { id: mainfont; source: "../Resources/KellySlab-Regular.ttf" } FontLoader { id: mainfont; source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/KellySlab-Regular.ttf" } + header: MenuToolbar {} + Connections { target: tangraTray @@ -56,11 +57,23 @@ Window { fillMode: Image.Tile source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/dark_leather.png" - MenuToolbar {} - PgLive { - id: pgLive1 + + StackView { + id: mainStack + initialItem: stackLive + anchors.fill: parent + } + + Component { + id: stackLive + PgLive { id: pgLive } + } + Component { + id: stackNews + PgNews { id: pgNews } } + // PgNews { // id: pgNews1 // visible: false