some basic ui pieces

This commit is contained in:
Chris Cochrun 2022-02-08 10:14:00 -06:00
parent 9c73c8c567
commit 8f4c2a4e94
52 changed files with 1251 additions and 1906 deletions

View file

@ -0,0 +1,133 @@
import QtQuick 2.13
import QtQuick.Dialogs 1.0
import QtQuick.Controls 2.0 as Controls
import QtQuick.Window 2.13
import QtQuick.Layouts 1.2
import QtMultimedia 5.15
import QtAudioEngine 1.15
import org.kde.kirigami 2.13 as Kirigami
Component {
id: root
Kirigami.ScrollablePage {
id: mainPage
title: "Presenter"
actions {
main: Kirigami.Action {
icon.name: "fileopen"
text: "VideoBG"
onTriggered: {
print("Action button in buttons page clicked");
fileDialog.open()
}
}
right: Kirigami.Action {
icon.name: "view-presentation"
text: "Go Live"
onTriggered: {
print("Window is loading")
presentLoader.active = true
}
}
}
/* Kirigami.OverlaySheet { */
/* id: sheet */
/* onSheetOpenChanged: page.actions.main.checked = sheetOpen */
/* Controls.Label { */
/* wrapMode: Text.WordWrap */
/* text: "Lorem ipsum dolor sit amet" */
/* } */
/* } */
//Page contents...
Rectangle {
id: bg
anchors.fill: parent
color: "blue"
}
FileDialog {
id: fileDialog
title: "Please choose a video"
folder: shortcuts.home
selectMultiple: false
onAccepted: {
print("You chose: " + fileDialog.fileUrls)
video = fileDialog.fileUrl
}
onRejected: {
print("Canceled")
/* Qt.quit() */
}
}
Loader {
id: presentLoader
active: false
sourceComponent: Window {
id: presentWindow
title: "presentation-window"
height: maximumHeight
width: maximumWidth
visible: true
onClosing: presentLoader.active = false
Component.onCompleted: {
presentWindow.showFullScreen();
}
Item {
id: basePresentationLayer
anchors.fill: parent
Rectangle {
id: basePrColor
anchors.fill: parent
color: "black"
MediaPlayer {
id: videoPlayer
source: video
loops: MediaPlayer.Infinite
autoPlay: true
notifyInterval: 100
}
VideoOutput {
id: videoOutput
anchors.fill: parent
source: videoPlayer
}
MouseArea {
id: playArea
anchors.fill: parent
onPressed: videoPlayer.play();
}
Controls.ProgressBar {
id: progressBar
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
anchors.margins: 100
from: 0
to: videoPlayer.duraion
value: videoPlayer.position/videoPlayer.duration
height: 30
MouseArea {
anchors.fill: parent
onClicked: {
if (videoPlayer.seekable) {
videoPlayer.seek(videoPlayer.duration * mouse.x/width);
}
}
}
}
}
}
}
}
}
}