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
URI tangraplay
URI TangraPlay
VERSION 1.0
RESOURCE_PREFIX /bpetrov.tangraplay/imports
QML_FILES ui/main.qml
ui/AboutProgram.qml
ui/AudioPlayer.qml

4
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)

13
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

6
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"
}

2
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"
}
}

2
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
}

38
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
}
}
}
}
}
}

4
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 {

14
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 {}

Loading…
Cancel
Save