Browse Source

First working version with Qt6

Signed-off-by: Blagovest Petrov <blagovest@petrovs.info>
qt6
Blagovest Petrov 1 year ago
parent
commit
ff618cc828
  1. 3
      CMakeLists.txt
  2. 4
      main.cpp
  3. 13
      ui/AboutProgram.qml
  4. 6
      ui/AudioPlayer.qml
  5. 2
      ui/MediaButton.qml
  6. 2
      ui/MenuButton.qml
  7. 38
      ui/MenuToolbar.qml
  8. 4
      ui/PgLive.qml
  9. 14
      ui/main.qml

3
CMakeLists.txt

@ -46,8 +46,9 @@ qt_add_executable(apptangraplay
) )
qt_add_qml_module(apptangraplay qt_add_qml_module(apptangraplay
URI tangraplay URI TangraPlay
VERSION 1.0 VERSION 1.0
RESOURCE_PREFIX /bpetrov.tangraplay/imports
QML_FILES ui/main.qml QML_FILES ui/main.qml
ui/AboutProgram.qml ui/AboutProgram.qml
ui/AudioPlayer.qml ui/AudioPlayer.qml

4
main.cpp

@ -10,11 +10,13 @@ int main(int argc, char *argv[])
QApplication app(argc, argv); QApplication app(argc, argv);
QQmlApplicationEngine engine; QQmlApplicationEngine engine;
engine.addImportPath(":/bpetrov.tangraplay/imports");
TangraTray * tangratray = new TangraTray(); TangraTray * tangratray = new TangraTray();
QQmlContext *context = engine.rootContext(); QQmlContext *context = engine.rootContext();
context->setContextProperty("tangraTray", tangratray); 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, QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
&app, [url](QObject *obj, const QUrl &objUrl) { &app, [url](QObject *obj, const QUrl &objUrl) {
if (!obj && url == objUrl) if (!obj && url == objUrl)

13
ui/AboutProgram.qml

@ -1,11 +1,12 @@
import QtQuick 2.0 import QtQuick
import QtQuick.Dialogs 1.2 import QtQuick.Controls
import QtQuick.Dialogs
Dialog { Dialog {
id: aboutDialog id: aboutDialo
standardButtons: StandardButton.Ok
height: 500 height: 500
width: 400 width: 400
title: "About"
Image { Image {
id: image id: image
@ -14,7 +15,7 @@ Dialog {
width: 100 width: 100
height: 100 height: 100
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
source: "../Resources/blago.png" source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/blago.png"
} }
Text { Text {
@ -46,7 +47,7 @@ Dialog {
y: 172 y: 172
width: 354 width: 354
height: 74 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 font.family: mainfont.name
wrapMode: Text.WrapAtWordBoundaryOrAnywhere wrapMode: Text.WrapAtWordBoundaryOrAnywhere
font.pixelSize: 12 font.pixelSize: 12

6
ui/AudioPlayer.qml

@ -1,11 +1,13 @@
import QtQuick 2.0 import QtQuick 2.0
import QtMultimedia 5.15 import QtMultimedia
Audio { MediaPlayer {
property variant quality: { property variant quality: {
"low" : "http://stream-bg-01.radiotangra.com/Tangra-middle.m3u", "low" : "http://stream-bg-01.radiotangra.com/Tangra-middle.m3u",
"high" : "http://stream-bg-01.radiotangra.com/Tangra-high.m3u" "high" : "http://stream-bg-01.radiotangra.com/Tangra-high.m3u"
} }
audioOutput: AudioOutput {}
source: "http://stream-bg-01.radiotangra.com:8000/Tangra-high" source: "http://stream-bg-01.radiotangra.com:8000/Tangra-high"
} }

2
ui/MediaButton.qml

@ -12,7 +12,7 @@ Item {
width: 64 width: 64
anchors.centerIn: parent anchors.centerIn: parent
fillMode: Image.PreserveAspectFit 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"
} }
} }

2
ui/MenuButton.qml

@ -10,7 +10,7 @@ Rectangle {
Image { Image {
id: menuButtonBackground id: menuButtonBackground
source: "../Resources/menubtn-background.png" source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/menubtn-background.png"
anchors.fill: parent anchors.fill: parent
} }

38
ui/MenuToolbar.qml

@ -8,7 +8,7 @@ Item {
height: 32 height: 32
Image { Image {
source: "../Resources/menu-background.png" source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/menu-background.png"
fillMode: Image.Tile fillMode: Image.Tile
anchors.fill: parent anchors.fill: parent
@ -17,7 +17,7 @@ Item {
MouseArea { MouseArea {
anchors.fill: parent; anchors.fill: parent;
property variant clickPos: "1,1" property string clickPos: "1,1"
onPressed: { onPressed: {
clickPos = Qt.point(mouse.x,mouse.y) clickPos = Qt.point(mouse.x,mouse.y)
@ -63,24 +63,24 @@ Item {
color: "#f9c620" color: "#f9c620"
} }
// Image { Image {
// id: buttonLive id: buttonLive
// source: "Resources/live.png" source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/live.png"
// anchors.left: appTitle.left anchors.left: appTitle.left
// anchors.leftMargin: 128 anchors.leftMargin: 128
// width: 32 width: 32
// height: 32 height: 32
// MouseArea { MouseArea {
// anchors.fill: parent anchors.fill: parent
// hoverEnabled: true hoverEnabled: true
// onClicked: { onClicked: {
// pgLive1.visible = false; pgLive1.visible = false;
// pgnews1.visible = true; pgnews1.visible = true;
//// contentLoader.sourceComponent = PgNews // contentLoader.sourceComponent = PgNews
// } }
// } }
// } }
} }
} }
} }

4
ui/PgLive.qml

@ -14,7 +14,7 @@ Item {
width: 260 width: 260
height: 175 height: 175
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
source: "../Resources/logo.png" source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/logo.png"
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
@ -59,7 +59,7 @@ Item {
y: 259 y: 259
width: 629 width: 629
height: 127 height: 127
source: "../Resources/playbtn-frame.png" source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/playbtn-frame.png"
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
Text { Text {

14
ui/main.qml

@ -2,6 +2,7 @@ import QtQuick 2.12
import QtQuick.Window 2.12 import QtQuick.Window 2.12
import Qt.labs.platform 1.1 import Qt.labs.platform 1.1
import QtMultimedia 5.15 import QtMultimedia 5.15
//import TangraPlay
Window { Window {
title: qsTr("Tangra Mega Rock") title: qsTr("Tangra Mega Rock")
@ -13,7 +14,8 @@ Window {
maximumHeight: 480 maximumHeight: 480
flags: Qt.FramelessWindowHint 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 { Connections {
target: tangraTray target: tangraTray
@ -34,15 +36,15 @@ Window {
} }
AudioPlayer { AudioPlayer {
id: tangraplay id: thePlayer
} }
function mediaControl() { function mediaControl() {
if (tangraplay.playbackState != Audio.PlayingState) { if (thePlayer.playbackState != thePlayer.PlayingState) {
tangraplay.play(); thePlayer.play();
} }
else { else {
tangraplay.stop(); thePlayer.stop();
} }
return 0; return 0;
} }
@ -52,7 +54,7 @@ Window {
anchors.fill: parent anchors.fill: parent
visible: true visible: true
fillMode: Image.Tile fillMode: Image.Tile
source: "../Resources/dark_leather.png" source: "qrc:/bpetrov.tangraplay/imports/TangraPlay/Assets/dark_leather.png"
MenuToolbar {} MenuToolbar {}

Loading…
Cancel
Save