From ff618cc828db982d86f948a3b0caf97479ecf810 Mon Sep 17 00:00:00 2001 From: Blagovest Petrov Date: Sat, 22 Apr 2023 21:49:39 +0300 Subject: [PATCH] First working version with Qt6 Signed-off-by: Blagovest Petrov --- CMakeLists.txt | 3 ++- main.cpp | 4 +++- ui/AboutProgram.qml | 13 +++++++------ ui/AudioPlayer.qml | 6 ++++-- ui/MediaButton.qml | 2 +- ui/MenuButton.qml | 2 +- ui/MenuToolbar.qml | 38 +++++++++++++++++++------------------- ui/PgLive.qml | 4 ++-- ui/main.qml | 14 ++++++++------ 9 files changed, 47 insertions(+), 39 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 79d1b29..fee4b9a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,8 +46,9 @@ qt_add_executable(apptangraplay ) qt_add_qml_module(apptangraplay - URI tangraplay + URI TangraPlay VERSION 1.0 + RESOURCE_PREFIX /bpetrov.tangraplay/imports QML_FILES ui/main.qml ui/AboutProgram.qml ui/AudioPlayer.qml diff --git a/main.cpp b/main.cpp index 786ef5b..e29116d 100644 --- a/main.cpp +++ b/main.cpp @@ -10,11 +10,13 @@ int main(int argc, char *argv[]) QApplication app(argc, argv); QQmlApplicationEngine engine; + engine.addImportPath(":/bpetrov.tangraplay/imports"); + TangraTray * tangratray = new TangraTray(); QQmlContext *context = engine.rootContext(); context->setContextProperty("tangraTray", tangratray); - const QUrl url(u"qrc:/tangraplay/qml/main.qml"_qs); + const QUrl url(u"qrc:/bpetrov.tangraplay/imports/TangraPlay/ui/main.qml"_qs); QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, &app, [url](QObject *obj, const QUrl &objUrl) { if (!obj && url == objUrl) diff --git a/ui/AboutProgram.qml b/ui/AboutProgram.qml index baf3f18..7b0a4d8 100644 --- a/ui/AboutProgram.qml +++ b/ui/AboutProgram.qml @@ -1,11 +1,12 @@ -import QtQuick 2.0 -import QtQuick.Dialogs 1.2 +import QtQuick +import QtQuick.Controls +import QtQuick.Dialogs Dialog { - id: aboutDialog - standardButtons: StandardButton.Ok + id: aboutDialo height: 500 width: 400 + title: "About" Image { id: image @@ -14,7 +15,7 @@ Dialog { width: 100 height: 100 fillMode: Image.PreserveAspectFit - source: "../Resources/blago.png" + source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/blago.png" } Text { @@ -46,7 +47,7 @@ Dialog { y: 172 width: 354 height: 74 - text: qsTr("© 2020 Благовест Петров ( https://petrovs.info ) . Кодът е лиценциран под GNU GPL v3.0. \n Шрифтът е \"Kelly Slab\" и е взет от Google Fonts. Лицензиран е под OFL лиценз.") + text: qsTr("© 2023 Благовест Петров ( https://petrovs.info ) . Кодът е лиценциран под GNU GPL v3.0. \n Шрифтът е \"Kelly Slab\" и е взет от Google Fonts. Лицензиран е под OFL лиценз.") font.family: mainfont.name wrapMode: Text.WrapAtWordBoundaryOrAnywhere font.pixelSize: 12 diff --git a/ui/AudioPlayer.qml b/ui/AudioPlayer.qml index 273f1e4..e0a6e95 100644 --- a/ui/AudioPlayer.qml +++ b/ui/AudioPlayer.qml @@ -1,11 +1,13 @@ import QtQuick 2.0 -import QtMultimedia 5.15 +import QtMultimedia -Audio { +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/MediaButton.qml b/ui/MediaButton.qml index ebb439a..1d10510 100644 --- a/ui/MediaButton.qml +++ b/ui/MediaButton.qml @@ -12,7 +12,7 @@ Item { width: 64 anchors.centerIn: parent fillMode: Image.PreserveAspectFit - source: isClicked ? "../Resources/buuf-pause.png" : "../Resources/buuf-play.png" + source: isClicked ? "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/buuf-pause.png" : "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/buuf-play.png" } } diff --git a/ui/MenuButton.qml b/ui/MenuButton.qml index 05ac2d3..389e42a 100644 --- a/ui/MenuButton.qml +++ b/ui/MenuButton.qml @@ -10,7 +10,7 @@ Rectangle { Image { id: menuButtonBackground - source: "../Resources/menubtn-background.png" + source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/menubtn-background.png" anchors.fill: parent } diff --git a/ui/MenuToolbar.qml b/ui/MenuToolbar.qml index 2b31fbe..b1bee40 100644 --- a/ui/MenuToolbar.qml +++ b/ui/MenuToolbar.qml @@ -8,7 +8,7 @@ Item { height: 32 Image { - source: "../Resources/menu-background.png" + source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/menu-background.png" fillMode: Image.Tile anchors.fill: parent @@ -17,7 +17,7 @@ Item { MouseArea { anchors.fill: parent; - property variant clickPos: "1,1" + property string clickPos: "1,1" onPressed: { clickPos = Qt.point(mouse.x,mouse.y) @@ -63,24 +63,24 @@ Item { color: "#f9c620" } -// Image { -// id: buttonLive -// source: "Resources/live.png" -// anchors.left: appTitle.left -// anchors.leftMargin: 128 -// width: 32 -// height: 32 + Image { + id: buttonLive + source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/live.png" + anchors.left: appTitle.left + anchors.leftMargin: 128 + width: 32 + height: 32 -// MouseArea { -// anchors.fill: parent -// hoverEnabled: true -// onClicked: { -// pgLive1.visible = false; -// pgnews1.visible = true; -//// contentLoader.sourceComponent = PgNews -// } -// } -// } + MouseArea { + anchors.fill: parent + hoverEnabled: true + onClicked: { + pgLive1.visible = false; + pgnews1.visible = true; +// contentLoader.sourceComponent = PgNews + } + } + } } } } diff --git a/ui/PgLive.qml b/ui/PgLive.qml index 5049d4b..2c2a85c 100644 --- a/ui/PgLive.qml +++ b/ui/PgLive.qml @@ -14,7 +14,7 @@ Item { width: 260 height: 175 fillMode: Image.PreserveAspectFit - source: "../Resources/logo.png" + source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/logo.png" MouseArea { anchors.fill: parent cursorShape: Qt.PointingHandCursor @@ -59,7 +59,7 @@ Item { y: 259 width: 629 height: 127 - source: "../Resources/playbtn-frame.png" + source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/playbtn-frame.png" fillMode: Image.PreserveAspectFit Text { diff --git a/ui/main.qml b/ui/main.qml index a9dc314..0517286 100644 --- a/ui/main.qml +++ b/ui/main.qml @@ -2,6 +2,7 @@ import QtQuick 2.12 import QtQuick.Window 2.12 import Qt.labs.platform 1.1 import QtMultimedia 5.15 +//import TangraPlay Window { title: qsTr("Tangra Mega Rock") @@ -13,7 +14,8 @@ Window { maximumHeight: 480 flags: Qt.FramelessWindowHint - FontLoader { id: mainfont; source: "../Resources/KellySlab-Regular.ttf" } +// FontLoader { id: mainfont; source: "../Resources/KellySlab-Regular.ttf" } + FontLoader { id: mainfont; source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/KellySlab-Regular.ttf" } Connections { target: tangraTray @@ -34,15 +36,15 @@ Window { } AudioPlayer { - id: tangraplay + id: thePlayer } function mediaControl() { - if (tangraplay.playbackState != Audio.PlayingState) { - tangraplay.play(); + if (thePlayer.playbackState != thePlayer.PlayingState) { + thePlayer.play(); } else { - tangraplay.stop(); + thePlayer.stop(); } return 0; } @@ -52,7 +54,7 @@ Window { anchors.fill: parent visible: true fillMode: Image.Tile - source: "../Resources/dark_leather.png" + source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/dark_leather.png" MenuToolbar {}