mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-11-07 03:22:33 +01:00
Add not yet working import
This commit is contained in:
parent
8b727d6c1b
commit
6c71f8bc86
5
ScreenPlay/qml/Controls/Tag.qml
Normal file
5
ScreenPlay/qml/Controls/Tag.qml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import QtQuick 2.0
|
||||||
|
|
||||||
|
Item {
|
||||||
|
|
||||||
|
}
|
5
ScreenPlay/qml/Controls/TagField.qml
Normal file
5
ScreenPlay/qml/Controls/TagField.qml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import QtQuick 2.0
|
||||||
|
|
||||||
|
Item {
|
||||||
|
|
||||||
|
}
|
@ -6,6 +6,8 @@ import QtGraphicalEffects 1.0
|
|||||||
|
|
||||||
import net.aimber.create 1.0
|
import net.aimber.create 1.0
|
||||||
|
|
||||||
|
import "Wizards/CreateWallpaper"
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: create
|
id: create
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
@ -19,15 +21,28 @@ Item {
|
|||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: createWallpaper
|
target: createWallpaper
|
||||||
onVideoFileSelected: {
|
onVideoImportConvertFileSelected: {
|
||||||
create.state = "import"
|
create.state = "import"
|
||||||
|
|
||||||
activeVideoFile = videoFile
|
activeVideoFile = videoFile
|
||||||
loader.setSource(
|
loader.setSource(
|
||||||
"Wizards/CreateWallpaper/CreateWallpaperWizard.qml", {
|
"Wizards/CreateWallpaper/CreateWallpaperWizard.qml", {
|
||||||
"filePath": activeVideoFile
|
"filePath": activeVideoFile,
|
||||||
|
"importState": CreateWallpaperWizard.ImportState.Convert
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
onVideoImportFileSelected: {
|
||||||
|
create.state = "import"
|
||||||
|
|
||||||
|
|
||||||
|
activeVideoFile = videoFile
|
||||||
|
loader.setSource(
|
||||||
|
"Wizards/CreateWallpaper/CreateWallpaperWizard.qml", {
|
||||||
|
"filePath": activeVideoFile,
|
||||||
|
"importState": CreateWallpaperWizard.ImportState.Import
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
onProjectFileSelected: {
|
onProjectFileSelected: {
|
||||||
create.state = "import"
|
create.state = "import"
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ import QtQuick.Controls.Styles 1.4
|
|||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
import RemoteWorkshopCreationStatus 1.0
|
import RemoteWorkshopCreationStatus 1.0
|
||||||
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: createUpload
|
id: createUpload
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
@ -18,6 +19,8 @@ Item {
|
|||||||
property string projectFile
|
property string projectFile
|
||||||
property var jsonProjectFile
|
property var jsonProjectFile
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// First we parse the content of the project file
|
// First we parse the content of the project file
|
||||||
// TODO: Implement parse error
|
// TODO: Implement parse error
|
||||||
onProjectFileChanged: {
|
onProjectFileChanged: {
|
||||||
@ -527,3 +530,8 @@ Item {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*##^## Designer {
|
||||||
|
D{i:0;autoSize:true;height:480;width:640}
|
||||||
|
}
|
||||||
|
##^##*/
|
||||||
|
@ -4,15 +4,21 @@ import QtQuick.Controls 2.3
|
|||||||
import Qt.labs.platform 1.0
|
import Qt.labs.platform 1.0
|
||||||
import QtQuick.Controls.Material 2.2
|
import QtQuick.Controls.Material 2.2
|
||||||
|
|
||||||
|
import "../Workshop"
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: createWallpaper
|
id: createWallpaper
|
||||||
state: "out"
|
state: "out"
|
||||||
|
|
||||||
Component.onCompleted: createWallpaper.state = "in"
|
Component.onCompleted: createWallpaper.state = "in"
|
||||||
|
|
||||||
signal videoFileSelected(var videoFile)
|
signal videoImportConvertFileSelected(var videoFile)
|
||||||
signal projectFileSelected(var projectFile)
|
signal videoImportFileSelected(var videoFile)
|
||||||
|
|
||||||
|
signal projectFileSelected(var projectFile)
|
||||||
|
WorkshopLoader {
|
||||||
|
id: wl
|
||||||
|
}
|
||||||
Text {
|
Text {
|
||||||
id: txtHeadline
|
id: txtHeadline
|
||||||
text: qsTr("Import Video Wallpaper")
|
text: qsTr("Import Video Wallpaper")
|
||||||
@ -68,7 +74,7 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
text: qsTr("Select File")
|
text: qsTr("Import video")
|
||||||
anchors {
|
anchors {
|
||||||
horizontalCenter: parent.horizontalCenter
|
horizontalCenter: parent.horizontalCenter
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
@ -87,7 +93,7 @@ Item {
|
|||||||
id: fileDialogImportVideo
|
id: fileDialogImportVideo
|
||||||
// nameFilters: ["Video files (*.mp4)"]
|
// nameFilters: ["Video files (*.mp4)"]
|
||||||
onAccepted: {
|
onAccepted: {
|
||||||
videoFileSelected(fileDialogImportVideo.currentFile)
|
videoImportConvertFileSelected(fileDialogImportVideo.currentFile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -148,7 +154,7 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
text: qsTr("Select File")
|
text: qsTr("Convert Video")
|
||||||
anchors {
|
anchors {
|
||||||
horizontalCenter: parent.horizontalCenter
|
horizontalCenter: parent.horizontalCenter
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
@ -167,7 +173,7 @@ Item {
|
|||||||
id: fileDialogImportVideo2
|
id: fileDialogImportVideo2
|
||||||
// nameFilters: ["Video files (*.mp4)"]
|
// nameFilters: ["Video files (*.mp4)"]
|
||||||
onAccepted: {
|
onAccepted: {
|
||||||
videoFileSelected(fileDialogImportVideo.currentFile)
|
videoImportConvertFileSelected(fileDialogImportVideo.currentFile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -194,6 +200,7 @@ Item {
|
|||||||
id: wrapperUploadProject
|
id: wrapperUploadProject
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: 120
|
height: 120
|
||||||
|
visible: wl.available
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
top: wrapperConvertVideo.bottom
|
top: wrapperConvertVideo.bottom
|
||||||
@ -217,9 +224,11 @@ Item {
|
|||||||
opacity: 0
|
opacity: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: importVideoBg3
|
id: importVideoBg3
|
||||||
radius: 3
|
radius: 3
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
fill: parent
|
fill: parent
|
||||||
margins: 10
|
margins: 10
|
||||||
@ -375,6 +384,20 @@ Item {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1,87 @@
|
|||||||
|
import QtQuick 2.9
|
||||||
|
import QtGraphicalEffects 1.0
|
||||||
|
import QtQuick.Controls 2.2
|
||||||
|
import QtQuick.Controls.Material 2.3
|
||||||
|
import Qt.labs.platform 1.0
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
import net.aimber.create 1.0
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: wrapperError
|
||||||
|
opacity: 0
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: txtErrorHeadline
|
||||||
|
text: qsTr("An error occurred!")
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
topMargin: 30
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
|
height: 40
|
||||||
|
font.family: "Segoe UI, Roboto"
|
||||||
|
font.weight: Font.Light
|
||||||
|
color: Material.color(Material.Red)
|
||||||
|
renderType: Text.NativeRendering
|
||||||
|
font.pixelSize: 32
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: rectangle1
|
||||||
|
color: "#eeeeee"
|
||||||
|
radius: 3
|
||||||
|
anchors {
|
||||||
|
top: txtErrorHeadline.bottom
|
||||||
|
right: parent.right
|
||||||
|
bottom: btnBack.top
|
||||||
|
left: parent.left
|
||||||
|
margins: 30
|
||||||
|
bottomMargin: 10
|
||||||
|
}
|
||||||
|
|
||||||
|
Flickable {
|
||||||
|
anchors.fill: parent
|
||||||
|
clip: true
|
||||||
|
contentHeight: txtFFMPEGDebug.paintedHeight
|
||||||
|
ScrollBar.vertical: ScrollBar {
|
||||||
|
snapMode: ScrollBar.SnapOnRelease
|
||||||
|
policy: ScrollBar.AlwaysOn
|
||||||
|
}
|
||||||
|
Text {
|
||||||
|
id: txtFFMPEGDebug
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
right: parent.right
|
||||||
|
left: parent.left
|
||||||
|
margins: 20
|
||||||
|
}
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
color: "#626262"
|
||||||
|
renderType: Text.NativeRendering
|
||||||
|
height: txtFFMPEGDebug.paintedHeight
|
||||||
|
}
|
||||||
|
Connections {
|
||||||
|
target: screenPlayCreate
|
||||||
|
onProcessOutput: {
|
||||||
|
txtFFMPEGDebug.text = text
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
id: btnBack
|
||||||
|
text: qsTr("Back to create and send an error report!")
|
||||||
|
Material.background: Material.Orange
|
||||||
|
Material.foreground: "white"
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
bottom: parent.bottom
|
||||||
|
margins: 10
|
||||||
|
}
|
||||||
|
onClicked: {
|
||||||
|
utility.setNavigationActive(true)
|
||||||
|
utility.setNavigation("Create")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,58 @@
|
|||||||
|
import QtQuick 2.9
|
||||||
|
import QtGraphicalEffects 1.0
|
||||||
|
import QtQuick.Controls 2.2
|
||||||
|
import QtQuick.Controls.Material 2.3
|
||||||
|
import Qt.labs.platform 1.0
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
import net.aimber.create 1.0
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: wrapperSuccess
|
||||||
|
opacity: 0
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: txtSuccessHeadline
|
||||||
|
text: qsTr("Video creation success!")
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
topMargin: 30
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
}
|
||||||
|
height: 40
|
||||||
|
font.family: "Segoe UI, Roboto"
|
||||||
|
font.weight: Font.Light
|
||||||
|
color: Material.color(Material.Green)
|
||||||
|
renderType: Text.NativeRendering
|
||||||
|
font.pixelSize: 32
|
||||||
|
}
|
||||||
|
|
||||||
|
AnimatedImage {
|
||||||
|
id: imgSuccess
|
||||||
|
asynchronous: true
|
||||||
|
playing: true
|
||||||
|
anchors.centerIn: parent
|
||||||
|
width: 600
|
||||||
|
height: 400
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
id: btnSuccessBack
|
||||||
|
text: qsTr("Back to create!")
|
||||||
|
Material.background: Material.Orange
|
||||||
|
Material.foreground: "white"
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
bottom: parent.bottom
|
||||||
|
margins: 10
|
||||||
|
}
|
||||||
|
onClicked: {
|
||||||
|
utility.setNavigationActive(true)
|
||||||
|
utility.setNavigation("Create")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*##^## Designer {
|
||||||
|
D{i:0;autoSize:true;height:768;width:1366}
|
||||||
|
}
|
||||||
|
##^##*/
|
@ -0,0 +1,245 @@
|
|||||||
|
import QtQuick 2.9
|
||||||
|
import QtGraphicalEffects 1.0
|
||||||
|
import QtQuick.Controls 2.2
|
||||||
|
import QtQuick.Controls.Material 2.3
|
||||||
|
import Qt.labs.platform 1.0
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
import net.aimber.create 1.0
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: wrapperContent
|
||||||
|
Text {
|
||||||
|
id: txtHeadline
|
||||||
|
text: qsTr("Import a video to a wallpaper")
|
||||||
|
height: 40
|
||||||
|
font.family: "Roboto"
|
||||||
|
font.weight: Font.Light
|
||||||
|
color: "#757575"
|
||||||
|
renderType: Text.NativeRendering
|
||||||
|
font.pixelSize: 23
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
left: parent.left
|
||||||
|
margins: 40
|
||||||
|
bottomMargin: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: wrapperLeft
|
||||||
|
width: parent.width * .5
|
||||||
|
anchors {
|
||||||
|
left: parent.left
|
||||||
|
top: txtHeadline.bottom
|
||||||
|
margins: 30
|
||||||
|
bottom: parent.bottom
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: imgWrapper
|
||||||
|
width: 425
|
||||||
|
height: 247
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
left: parent.left
|
||||||
|
}
|
||||||
|
|
||||||
|
color: Material.color(Material.Grey)
|
||||||
|
|
||||||
|
AnimatedImage {
|
||||||
|
id: imgPreview
|
||||||
|
asynchronous: true
|
||||||
|
playing: true
|
||||||
|
visible: false
|
||||||
|
anchors.fill: parent
|
||||||
|
}
|
||||||
|
|
||||||
|
BusyIndicator {
|
||||||
|
id: busyIndicator
|
||||||
|
anchors.centerIn: parent
|
||||||
|
running: true
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: txtConvertNumber
|
||||||
|
color: "white"
|
||||||
|
text: qsTr("")
|
||||||
|
font.pixelSize: 21
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
bottom: parent.bottom
|
||||||
|
bottomMargin: 40
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: txtConvert
|
||||||
|
color: "white"
|
||||||
|
text: qsTr("Generating preview video...")
|
||||||
|
font.pixelSize: 14
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
bottom: parent.bottom
|
||||||
|
bottomMargin: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
RowLayout {
|
||||||
|
id: row
|
||||||
|
height: 50
|
||||||
|
anchors {
|
||||||
|
top: imgWrapper.bottom
|
||||||
|
topMargin: 20
|
||||||
|
|
||||||
|
right: parent.right
|
||||||
|
rightMargin: 30
|
||||||
|
left: parent.left
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
height: 50
|
||||||
|
color: "#eeeeee"
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: txtCustomPreviewPath
|
||||||
|
color: "#333333"
|
||||||
|
text: qsTr("Add custom preview image")
|
||||||
|
anchors {
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
left: parent.left
|
||||||
|
leftMargin: 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
id: button
|
||||||
|
Material.background: Material.Orange
|
||||||
|
Material.foreground: "white"
|
||||||
|
text: qsTr("Choose Image")
|
||||||
|
anchors {
|
||||||
|
right: parent.right
|
||||||
|
rightMargin: 10
|
||||||
|
}
|
||||||
|
onClicked: fileDialogOpenFile.open()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FileDialog {
|
||||||
|
id: fileDialogOpenFile
|
||||||
|
nameFilters: ["*.png *.jpg"]
|
||||||
|
onAccepted: {
|
||||||
|
var file = fileDialogOpenFile.file.toString()
|
||||||
|
|
||||||
|
txtCustomPreviewPath.text = fileDialogOpenFile.file
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Item {
|
||||||
|
id: wrapperRight
|
||||||
|
width: parent.width * .5
|
||||||
|
anchors {
|
||||||
|
top: txtHeadline.bottom
|
||||||
|
topMargin: 30
|
||||||
|
bottom: parent.bottom
|
||||||
|
right: parent.right
|
||||||
|
}
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
id: column
|
||||||
|
spacing: 0
|
||||||
|
anchors {
|
||||||
|
|
||||||
|
right: parent.right
|
||||||
|
left: parent.left
|
||||||
|
margins: 30
|
||||||
|
top:parent.top
|
||||||
|
topMargin: 0
|
||||||
|
bottom: column1.top
|
||||||
|
bottomMargin: 50
|
||||||
|
}
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: textField
|
||||||
|
placeholderText: qsTr("Name")
|
||||||
|
width:parent.width
|
||||||
|
Layout.fillWidth: true
|
||||||
|
onTextChanged: {
|
||||||
|
if (textField.text.length >= 3) {
|
||||||
|
canNext = true
|
||||||
|
} else {
|
||||||
|
canNext = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: textField1
|
||||||
|
placeholderText: qsTr("Description")
|
||||||
|
width:parent.width
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: textField2
|
||||||
|
placeholderText: qsTr("Youtube URL")
|
||||||
|
width:parent.width
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: textField3
|
||||||
|
width:parent.width
|
||||||
|
placeholderText: qsTr("Tags")
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
id: column1
|
||||||
|
height: 80
|
||||||
|
width: childrenRect.width
|
||||||
|
spacing: 10
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
bottom: parent.bottom
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
id: btnExit
|
||||||
|
text: qsTr("Abort")
|
||||||
|
Material.background: Material.Gray
|
||||||
|
Material.foreground: "white"
|
||||||
|
onClicked: {
|
||||||
|
screenPlayCreate.abort()
|
||||||
|
utility.setNavigationActive(true)
|
||||||
|
utility.setNavigation("Create")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
NextButton {
|
||||||
|
id: btnFinish
|
||||||
|
onClicked: {
|
||||||
|
if (btnFinish.state === "enabled" && canNext) {
|
||||||
|
screenPlayCreate.createWallpaperProjectFile(
|
||||||
|
textField.text, textField1.text)
|
||||||
|
utility.setNavigationActive(true)
|
||||||
|
createNew.state = "success"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: screenPlayCreate
|
||||||
|
onCreateWallpaperStateChanged: {
|
||||||
|
if (state === Create.State.ConvertingVideoFinished) {
|
||||||
|
btnFinish.state = "enabled"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,292 @@
|
|||||||
|
import QtQuick 2.9
|
||||||
|
import QtGraphicalEffects 1.0
|
||||||
|
import QtQuick.Controls 2.2
|
||||||
|
import QtQuick.Controls.Material 2.3
|
||||||
|
import Qt.labs.platform 1.0
|
||||||
|
import QtQuick.Layouts 1.3
|
||||||
|
import net.aimber.create 1.0
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: wrapperContent
|
||||||
|
Text {
|
||||||
|
id: txtHeadline
|
||||||
|
text: qsTr("Convert a video to a wallpaper")
|
||||||
|
height: 40
|
||||||
|
font.family: "Roboto"
|
||||||
|
font.weight: Font.Light
|
||||||
|
color: "#757575"
|
||||||
|
renderType: Text.NativeRendering
|
||||||
|
font.pixelSize: 23
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
left: parent.left
|
||||||
|
margins: 40
|
||||||
|
bottomMargin: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: wrapperLeft
|
||||||
|
width: parent.width * .5
|
||||||
|
anchors {
|
||||||
|
left: parent.left
|
||||||
|
top: txtHeadline.bottom
|
||||||
|
margins: 30
|
||||||
|
bottom: parent.bottom
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: imgWrapper
|
||||||
|
width: 425
|
||||||
|
height: 247
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
left: parent.left
|
||||||
|
}
|
||||||
|
|
||||||
|
color: Material.color(Material.Grey)
|
||||||
|
|
||||||
|
AnimatedImage {
|
||||||
|
id: imgPreview
|
||||||
|
asynchronous: true
|
||||||
|
playing: true
|
||||||
|
visible: false
|
||||||
|
anchors.fill: parent
|
||||||
|
}
|
||||||
|
|
||||||
|
BusyIndicator {
|
||||||
|
id: busyIndicator
|
||||||
|
anchors.centerIn: parent
|
||||||
|
running: true
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: txtConvertNumber
|
||||||
|
color: "white"
|
||||||
|
text: qsTr("")
|
||||||
|
font.pixelSize: 21
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
bottom: parent.bottom
|
||||||
|
bottomMargin: 40
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: txtConvert
|
||||||
|
color: "white"
|
||||||
|
text: qsTr("Generating preview video...")
|
||||||
|
font.pixelSize: 14
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
bottom: parent.bottom
|
||||||
|
bottomMargin: 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: screenPlayCreate
|
||||||
|
|
||||||
|
onCreateWallpaperStateChanged: {
|
||||||
|
if (state === Create.State.ConvertingPreviewImageFinished) {
|
||||||
|
imgPreview.source = "file:///"
|
||||||
|
+ screenPlayCreate.workingDir + "/preview.png"
|
||||||
|
imgPreview.visible = true
|
||||||
|
txtConvert.text = qsTr(
|
||||||
|
"Converting Video preview mp4")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state === Create.State.ConvertingPreviewVideo) {
|
||||||
|
txtConvert.text = qsTr(
|
||||||
|
"Generating preview video...")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state === Create.State.ConvertingPreviewGif) {
|
||||||
|
txtConvert.text = qsTr(
|
||||||
|
"Generating preview gif...")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state === Create.State.ConvertingPreviewGifFinished) {
|
||||||
|
imgPreview.source = "file:///"
|
||||||
|
+ screenPlayCreate.workingDir + "/preview.gif"
|
||||||
|
imgPreview.visible = true
|
||||||
|
imgPreview.playing = true
|
||||||
|
}
|
||||||
|
if (state === Create.State.ConvertingAudio) {
|
||||||
|
txtConvert.text = qsTr("Converting Audio...")
|
||||||
|
}
|
||||||
|
if (state === Create.State.ConvertingVideo) {
|
||||||
|
txtConvert.text = qsTr("Converting Video...")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state === Create.State.Finished) {
|
||||||
|
imgSuccess.source = "file:///"
|
||||||
|
+ screenPlayCreate.workingDir + "/preview.gif"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
onProgressChanged: {
|
||||||
|
var percentage = Math.floor(progress * 100)
|
||||||
|
if (percentage > 100)
|
||||||
|
percentage = 100
|
||||||
|
txtConvertNumber.text = percentage + "%"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
RowLayout {
|
||||||
|
id: row
|
||||||
|
height: 50
|
||||||
|
anchors {
|
||||||
|
top: imgWrapper.bottom
|
||||||
|
topMargin: 20
|
||||||
|
|
||||||
|
right: parent.right
|
||||||
|
rightMargin: 30
|
||||||
|
left: parent.left
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
height: 50
|
||||||
|
color: "#eeeeee"
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: txtCustomPreviewPath
|
||||||
|
color: "#333333"
|
||||||
|
text: qsTr("Add custom preview image")
|
||||||
|
anchors {
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
left: parent.left
|
||||||
|
leftMargin: 10
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
id: button
|
||||||
|
Material.background: Material.Orange
|
||||||
|
Material.foreground: "white"
|
||||||
|
text: qsTr("Choose Image")
|
||||||
|
anchors {
|
||||||
|
right: parent.right
|
||||||
|
rightMargin: 10
|
||||||
|
}
|
||||||
|
onClicked: fileDialogOpenFile.open()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FileDialog {
|
||||||
|
id: fileDialogOpenFile
|
||||||
|
nameFilters: ["*.png *.jpg"]
|
||||||
|
onAccepted: {
|
||||||
|
var file = fileDialogOpenFile.file.toString()
|
||||||
|
|
||||||
|
txtCustomPreviewPath.text = fileDialogOpenFile.file
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Item {
|
||||||
|
id: wrapperRight
|
||||||
|
width: parent.width * .5
|
||||||
|
anchors {
|
||||||
|
top: txtHeadline.bottom
|
||||||
|
topMargin: 30
|
||||||
|
bottom: parent.bottom
|
||||||
|
right: parent.right
|
||||||
|
}
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
id: column
|
||||||
|
spacing: 0
|
||||||
|
anchors {
|
||||||
|
|
||||||
|
right: parent.right
|
||||||
|
left: parent.left
|
||||||
|
margins: 30
|
||||||
|
top:parent.top
|
||||||
|
topMargin: 0
|
||||||
|
bottom: column1.top
|
||||||
|
bottomMargin: 50
|
||||||
|
}
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: textField
|
||||||
|
placeholderText: qsTr("Name")
|
||||||
|
width:parent.width
|
||||||
|
Layout.fillWidth: true
|
||||||
|
onTextChanged: {
|
||||||
|
if (textField.text.length >= 3) {
|
||||||
|
canNext = true
|
||||||
|
} else {
|
||||||
|
canNext = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: textField1
|
||||||
|
placeholderText: qsTr("Description")
|
||||||
|
width:parent.width
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: textField2
|
||||||
|
placeholderText: qsTr("Youtube URL")
|
||||||
|
width:parent.width
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: textField3
|
||||||
|
width:parent.width
|
||||||
|
placeholderText: qsTr("Tags")
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
id: column1
|
||||||
|
height: 80
|
||||||
|
width: childrenRect.width
|
||||||
|
spacing: 10
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
bottom: parent.bottom
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
id: btnExit
|
||||||
|
text: qsTr("Abort")
|
||||||
|
Material.background: Material.Gray
|
||||||
|
Material.foreground: "white"
|
||||||
|
onClicked: {
|
||||||
|
screenPlayCreate.abort()
|
||||||
|
utility.setNavigationActive(true)
|
||||||
|
utility.setNavigation("Create")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
NextButton {
|
||||||
|
id: btnFinish
|
||||||
|
onClicked: {
|
||||||
|
if (btnFinish.state === "enabled" && canNext) {
|
||||||
|
screenPlayCreate.createWallpaperProjectFile(
|
||||||
|
textField.text, textField1.text)
|
||||||
|
utility.setNavigationActive(true)
|
||||||
|
createNew.state = "success"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: screenPlayCreate
|
||||||
|
onCreateWallpaperStateChanged: {
|
||||||
|
if (state === Create.State.ConvertingVideoFinished) {
|
||||||
|
btnFinish.state = "enabled"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -13,10 +13,23 @@ Item {
|
|||||||
|
|
||||||
property string filePath
|
property string filePath
|
||||||
property bool canNext: false
|
property bool canNext: false
|
||||||
|
property int importState: CreateWallpaperWizard.ImportState.Import
|
||||||
|
|
||||||
|
enum ImportState {
|
||||||
|
Create,
|
||||||
|
Import
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
state = "in"
|
state = "in"
|
||||||
|
print(importState)
|
||||||
utility.setNavigationActive(false)
|
utility.setNavigationActive(false)
|
||||||
|
if (importState === CreateWallpaperWizard.ImportState.Import) {
|
||||||
|
loader_wrapperContent.source = "qrc:/qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImport.qml"
|
||||||
|
} else {
|
||||||
|
loader_wrapperContent.source = "qrc:/qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImportConvert.qml"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Blocks some MouseArea from create page
|
//Blocks some MouseArea from create page
|
||||||
@ -80,292 +93,11 @@ Item {
|
|||||||
radius: 4
|
radius: 4
|
||||||
height: 460
|
height: 460
|
||||||
|
|
||||||
Item {
|
Loader {
|
||||||
id: wrapperContent
|
id: loader_wrapperContent
|
||||||
z: 10
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
z: 10
|
||||||
Text {
|
|
||||||
id: txtHeadline
|
|
||||||
text: qsTr("Convert a video to a wallpaper")
|
|
||||||
height: 40
|
|
||||||
font.family: "Roboto"
|
|
||||||
font.weight: Font.Light
|
|
||||||
color: "#757575"
|
|
||||||
renderType: Text.NativeRendering
|
|
||||||
font.pixelSize: 23
|
|
||||||
anchors {
|
|
||||||
top: parent.top
|
|
||||||
left: parent.left
|
|
||||||
margins: 40
|
|
||||||
bottomMargin: 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Item {
|
|
||||||
id: wrapperLeft
|
|
||||||
width: parent.width * .5
|
|
||||||
anchors {
|
|
||||||
left: parent.left
|
|
||||||
top: txtHeadline.bottom
|
|
||||||
margins: 30
|
|
||||||
bottom: parent.bottom
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
id: imgWrapper
|
|
||||||
width: 425
|
|
||||||
height: 247
|
|
||||||
anchors {
|
|
||||||
top: parent.top
|
|
||||||
left: parent.left
|
|
||||||
}
|
|
||||||
|
|
||||||
color: Material.color(Material.Grey)
|
|
||||||
|
|
||||||
AnimatedImage {
|
|
||||||
id: imgPreview
|
|
||||||
asynchronous: true
|
|
||||||
playing: true
|
|
||||||
visible: false
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
|
||||||
|
|
||||||
BusyIndicator {
|
|
||||||
id: busyIndicator
|
|
||||||
anchors.centerIn: parent
|
|
||||||
running: true
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: txtConvertNumber
|
|
||||||
color: "white"
|
|
||||||
text: qsTr("")
|
|
||||||
font.pixelSize: 21
|
|
||||||
anchors {
|
|
||||||
horizontalCenter: parent.horizontalCenter
|
|
||||||
bottom: parent.bottom
|
|
||||||
bottomMargin: 40
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: txtConvert
|
|
||||||
color: "white"
|
|
||||||
text: qsTr("Generating preview video...")
|
|
||||||
font.pixelSize: 14
|
|
||||||
anchors {
|
|
||||||
horizontalCenter: parent.horizontalCenter
|
|
||||||
bottom: parent.bottom
|
|
||||||
bottomMargin: 20
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: screenPlayCreate
|
|
||||||
|
|
||||||
onCreateWallpaperStateChanged: {
|
|
||||||
if (state === Create.State.ConvertingPreviewImageFinished) {
|
|
||||||
imgPreview.source = "file:///"
|
|
||||||
+ screenPlayCreate.workingDir + "/preview.png"
|
|
||||||
imgPreview.visible = true
|
|
||||||
txtConvert.text = qsTr(
|
|
||||||
"Converting Video preview mp4")
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state === Create.State.ConvertingPreviewVideo) {
|
|
||||||
txtConvert.text = qsTr(
|
|
||||||
"Generating preview video...")
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state === Create.State.ConvertingPreviewGif) {
|
|
||||||
txtConvert.text = qsTr(
|
|
||||||
"Generating preview gif...")
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state === Create.State.ConvertingPreviewGifFinished) {
|
|
||||||
imgPreview.source = "file:///"
|
|
||||||
+ screenPlayCreate.workingDir + "/preview.gif"
|
|
||||||
imgPreview.visible = true
|
|
||||||
imgPreview.playing = true
|
|
||||||
}
|
|
||||||
if (state === Create.State.ConvertingAudio) {
|
|
||||||
txtConvert.text = qsTr("Converting Audio...")
|
|
||||||
}
|
|
||||||
if (state === Create.State.ConvertingVideo) {
|
|
||||||
txtConvert.text = qsTr("Converting Video...")
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state === Create.State.Finished) {
|
|
||||||
imgSuccess.source = "file:///"
|
|
||||||
+ screenPlayCreate.workingDir + "/preview.gif"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onProgressChanged: {
|
|
||||||
var percentage = Math.floor(progress * 100)
|
|
||||||
if (percentage > 100)
|
|
||||||
percentage = 100
|
|
||||||
txtConvertNumber.text = percentage + "%"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
RowLayout {
|
|
||||||
id: row
|
|
||||||
height: 50
|
|
||||||
anchors {
|
|
||||||
top: imgWrapper.bottom
|
|
||||||
topMargin: 20
|
|
||||||
|
|
||||||
right: parent.right
|
|
||||||
rightMargin: 30
|
|
||||||
left: parent.left
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
height: 50
|
|
||||||
color: "#eeeeee"
|
|
||||||
Layout.fillWidth: true
|
|
||||||
|
|
||||||
Text {
|
|
||||||
id: txtCustomPreviewPath
|
|
||||||
color: "#333333"
|
|
||||||
text: qsTr("Add custom preview image")
|
|
||||||
anchors {
|
|
||||||
verticalCenter: parent.verticalCenter
|
|
||||||
left: parent.left
|
|
||||||
leftMargin: 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Button {
|
|
||||||
id: button
|
|
||||||
Material.background: Material.Orange
|
|
||||||
Material.foreground: "white"
|
|
||||||
text: qsTr("Choose Image")
|
|
||||||
anchors {
|
|
||||||
right: parent.right
|
|
||||||
rightMargin: 10
|
|
||||||
}
|
|
||||||
onClicked: fileDialogOpenFile.open()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
FileDialog {
|
|
||||||
id: fileDialogOpenFile
|
|
||||||
nameFilters: ["*.png *.jpg"]
|
|
||||||
onAccepted: {
|
|
||||||
var file = fileDialogOpenFile.file.toString()
|
|
||||||
|
|
||||||
txtCustomPreviewPath.text = fileDialogOpenFile.file
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Item {
|
|
||||||
id: wrapperRight
|
|
||||||
width: parent.width * .5
|
|
||||||
anchors {
|
|
||||||
top: txtHeadline.bottom
|
|
||||||
topMargin: 30
|
|
||||||
bottom: parent.bottom
|
|
||||||
right: parent.right
|
|
||||||
}
|
|
||||||
|
|
||||||
ColumnLayout {
|
|
||||||
id: column
|
|
||||||
spacing: 0
|
|
||||||
anchors {
|
|
||||||
|
|
||||||
right: parent.right
|
|
||||||
left: parent.left
|
|
||||||
margins: 30
|
|
||||||
top:parent.top
|
|
||||||
topMargin: 0
|
|
||||||
bottom: column1.top
|
|
||||||
bottomMargin: 50
|
|
||||||
}
|
|
||||||
|
|
||||||
TextField {
|
|
||||||
id: textField
|
|
||||||
placeholderText: qsTr("Name")
|
|
||||||
width:parent.width
|
|
||||||
Layout.fillWidth: true
|
|
||||||
onTextChanged: {
|
|
||||||
if (textField.text.length >= 3) {
|
|
||||||
canNext = true
|
|
||||||
} else {
|
|
||||||
canNext = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
TextField {
|
|
||||||
id: textField1
|
|
||||||
placeholderText: qsTr("Description")
|
|
||||||
width:parent.width
|
|
||||||
Layout.fillWidth: true
|
|
||||||
}
|
|
||||||
|
|
||||||
TextField {
|
|
||||||
id: textField2
|
|
||||||
placeholderText: qsTr("Youtube URL")
|
|
||||||
width:parent.width
|
|
||||||
Layout.fillWidth: true
|
|
||||||
}
|
|
||||||
|
|
||||||
TextField {
|
|
||||||
id: textField3
|
|
||||||
width:parent.width
|
|
||||||
placeholderText: qsTr("Tags")
|
|
||||||
Layout.fillWidth: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Row {
|
|
||||||
id: column1
|
|
||||||
height: 80
|
|
||||||
width: childrenRect.width
|
|
||||||
spacing: 10
|
|
||||||
anchors {
|
|
||||||
horizontalCenter: parent.horizontalCenter
|
|
||||||
bottom: parent.bottom
|
|
||||||
}
|
|
||||||
|
|
||||||
Button {
|
|
||||||
id: btnExit
|
|
||||||
text: qsTr("Abort")
|
|
||||||
Material.background: Material.Gray
|
|
||||||
Material.foreground: "white"
|
|
||||||
onClicked: {
|
|
||||||
screenPlayCreate.abort()
|
|
||||||
utility.setNavigationActive(true)
|
|
||||||
utility.setNavigation("Create")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
NextButton {
|
|
||||||
id: btnFinish
|
|
||||||
onClicked: {
|
|
||||||
if (btnFinish.state === "enabled" && canNext) {
|
|
||||||
screenPlayCreate.createWallpaperProjectFile(
|
|
||||||
textField.text, textField1.text)
|
|
||||||
utility.setNavigationActive(true)
|
|
||||||
createNew.state = "success"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Connections {
|
|
||||||
target: screenPlayCreate
|
|
||||||
onCreateWallpaperStateChanged: {
|
|
||||||
if (state === Create.State.ConvertingVideoFinished) {
|
|
||||||
btnFinish.state = "enabled"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateWallpaperError {
|
CreateWallpaperError {
|
||||||
@ -609,18 +341,8 @@ Item {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*##^## Designer {
|
/*##^## Designer {
|
||||||
D{i:0;autoSize:true;height:480;width:640}
|
D{i:0;autoSize:true;height:480;width:640}
|
||||||
}
|
}
|
||||||
##^##*/
|
##^##*/
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user