1
0
mirror of https://gitlab.com/kelteseth/ScreenPlay.git synced 2024-09-18 16:32:33 +02:00

Add shadow

Fix spacing
Remove debugs
This commit is contained in:
kelteseth 2018-12-04 13:25:46 +01:00
parent 55a11b471a
commit 16fe2bde47
4 changed files with 425 additions and 399 deletions

View File

@ -27,7 +27,7 @@ Item {
id: btnCreateEmptyWidget id: btnCreateEmptyWidget
text: qsTr("Create Emtpy Widget") text: qsTr("Create Emtpy Widget")
anchors.top: txtCreate.bottom anchors.top: txtCreate.bottom
anchors.topMargin: 20 anchors.topMargin: 10
imgSource: "qrc:/assets/icons/icon_emptyWidget.svg" imgSource: "qrc:/assets/icons/icon_emptyWidget.svg"
onClicked: { onClicked: {
@ -59,7 +59,7 @@ Item {
Column { Column {
width: parent.width width: parent.width
spacing: 20 spacing: 5
anchors { anchors {
top: txtExamples.bottom top: txtExamples.bottom
topMargin: 10 topMargin: 10
@ -220,3 +220,10 @@ Item {
} }
] ]
} }
/*##^## Designer {
D{i:0;autoSize:true;height:480;width:640}
}
##^##*/

View File

@ -3,7 +3,7 @@ import QtGraphicalEffects 1.0
Item { Item {
id: btnEmpty id: btnEmpty
height: 63 height: 75
anchors { anchors {
right: parent.right right: parent.right
left: parent.left left: parent.left
@ -15,11 +15,34 @@ Item {
property string imgSource: "qrc:/assets/icons/icon_library_music.svg" property string imgSource: "qrc:/assets/icons/icon_library_music.svg"
RectangularGlow {
id: effect
anchors {
top: bg.top
topMargin: 3
left: bg.left
right: bg.right
}
height: bg.height
width: bg.width
glowRadius: 3
spread: 0.2
color: "black"
opacity: .4
cornerRadius: 15
}
Rectangle { Rectangle {
id:bg
width: parent.width width: parent.width
height: 60 anchors {
anchors.top: parent.top top:parent.top
right:parent.right
bottom:parent.bottom
left:parent.left
margins: 10
}
radius: 3 radius: 3
Image { Image {
id:imgIcon id:imgIcon

View File

@ -190,381 +190,348 @@ Item {
} }
} }
} }
Item {
id: wrapperRight
width: parent.width * .5
anchors {
top: txtHeadline.bottom
topMargin: 30
bottom: parent.bottom
right: parent.right
}
Column {
id: column
spacing: 20
anchors.fill: parent
anchors.margins: 30
anchors.topMargin: 0
TextField {
id: textField
placeholderText: qsTr("Name")
anchors.right: parent.right
anchors.left: parent.left
onTextChanged: {
if (textField.text.length >= 3) {
canNext = true
} else {
canNext = false
}
}
}
TextField {
id: textField1
placeholderText: qsTr("Description")
anchors.right: parent.right
anchors.left: parent.left
}
TextField {
id: textField2
placeholderText: qsTr("Youtube URL")
anchors.right: parent.right
anchors.left: parent.left
}
TextField {
id: textField3
placeholderText: qsTr("Tags")
anchors.right: parent.right
anchors.left: parent.left
}
}
Row {
id: column1
height: 100
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)
}
}
}
}
Connections {
target: screenPlayCreate
onCreateWallpaperStateChanged: {
if (state === Create.State.ConvertingVideoFinished) {
btnFinish.state = "enabled"
}
}
}
}
} }
Item { Item {
id: wrapperError id: wrapperRight
anchors.fill: parent width: parent.width * .5
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")
}
}
}
Item {
id: wrapperSuccess
anchors.fill: parent
opacity: 0
Text {
id: txtSuccessHeadline
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.Orange)
renderType: Text.NativeRendering
font.pixelSize: 32
}
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")
}
}
}
MouseArea {
anchors { anchors {
top: parent.top top: txtHeadline.bottom
topMargin: 30
bottom: parent.bottom
right: parent.right right: parent.right
margins: 5
}
width: 32
height: width
cursorShape: Qt.PointingHandCursor
onClicked: {
createNew.state = "out"
timerBack.start()
} }
Image { Column {
id: imgClose id: column
source: "qrc:/assets/icons/font-awsome/close.svg" spacing: 20
width: 16 anchors.fill: parent
height: 16 anchors.margins: 30
anchors.centerIn: parent anchors.topMargin: 0
sourceSize: Qt.size(width, width)
TextField {
id: textField
placeholderText: qsTr("Name")
anchors.right: parent.right
anchors.left: parent.left
onTextChanged: {
if (textField.text.length >= 3) {
canNext = true
} else {
canNext = false
}
}
}
TextField {
id: textField1
placeholderText: qsTr("Description")
anchors.right: parent.right
anchors.left: parent.left
}
TextField {
id: textField2
placeholderText: qsTr("Youtube URL")
anchors.right: parent.right
anchors.left: parent.left
}
TextField {
id: textField3
placeholderText: qsTr("Tags")
anchors.right: parent.right
anchors.left: parent.left
}
} }
ColorOverlay {
id: iconColorOverlay Row {
anchors.fill: imgClose id: column1
source: imgClose height: 100
color: "gray" 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)
}
}
}
} }
Timer {
id: timerBack Connections {
interval: 800 target: screenPlayCreate
onTriggered: { onCreateWallpaperStateChanged: {
screenPlayCreate.abort() if (state === Create.State.ConvertingVideoFinished) {
utility.setNavigationActive(true) btnFinish.state = "enabled"
utility.setNavigation("Create") }
} }
} }
} }
} }
states: [ Item {
State { id: wrapperError
name: "out" anchors.fill: parent
PropertyChanges { opacity: 0
target: wrapper
anchors.topMargin: 800 Text {
opacity: 0 id: txtErrorHeadline
text: qsTr("An error occurred!")
anchors {
top: parent.top
topMargin: 30
horizontalCenter: parent.horizontalCenter
} }
PropertyChanges { height: 40
target: effect font.family: "Segoe UI, Roboto"
opacity: 0 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
} }
PropertyChanges {
target: wrapperError Flickable {
opacity: 0 anchors.fill: parent
} clip: true
}, contentHeight: txtFFMPEGDebug.paintedHeight
State { ScrollBar.vertical: ScrollBar {
name: "in" snapMode: ScrollBar.SnapOnRelease
PropertyChanges { policy: ScrollBar.AlwaysOn
target: wrapper }
anchors.topMargin: 40 Text {
opacity: 1 id: txtFFMPEGDebug
} anchors {
PropertyChanges { top: parent.top
target: effect right: parent.right
opacity: .4 left: parent.left
} margins: 20
PropertyChanges { }
target: wrapperError wrapMode: Text.WordWrap
opacity: 0 color: "#626262"
} renderType: Text.NativeRendering
}, height: txtFFMPEGDebug.paintedHeight
State { }
name: "error" Connections {
PropertyChanges { target: screenPlayCreate
target: wrapper onProcessOutput: {
anchors.topMargin: 40 txtFFMPEGDebug.text = text
opacity: 1 }
} }
PropertyChanges {
target: effect
opacity: .4
}
PropertyChanges {
target: wrapperContent
opacity: 0
z: 0
}
PropertyChanges {
target: wrapperError
opacity: 1
}
},
State {
name: "success"
PropertyChanges {
target: wrapper
anchors.topMargin: 40
opacity: 1
}
PropertyChanges {
target: effect
opacity: .4
}
PropertyChanges {
target: wrapperContent
opacity: 0
z: 0
}
PropertyChanges {
target: wrapperError
opacity: 1
} }
} }
]
transitions: [
Transition {
from: "out"
to: "in"
SequentialAnimation {
PauseAnimation { Button {
duration: 400 id: btnBack
} text: qsTr("Back to create and send an error report!")
ParallelAnimation { Material.background: Material.Orange
Material.foreground: "white"
PropertyAnimation { anchors {
target: wrapper horizontalCenter: parent.horizontalCenter
duration: 600 bottom: parent.bottom
property: "anchors.topMargin" margins: 10
easing.type: Easing.InOutQuad
}
PropertyAnimation {
target: wrapper
duration: 600
property: "opacity"
easing.type: Easing.InOutQuad
}
SequentialAnimation {
PauseAnimation {
duration: 1000
}
PropertyAnimation {
target: effect
duration: 300
property: "opacity"
easing.type: Easing.InOutQuad
}
}
}
} }
}, onClicked: {
Transition { utility.setNavigationActive(true)
from: "in" utility.setNavigation("Create")
to: "out" }
}
}
Item {
id: wrapperSuccess
anchors.fill: parent
opacity: 0
Text {
id: txtSuccessHeadline
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.Orange)
renderType: Text.NativeRendering
font.pixelSize: 32
}
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")
}
}
}
MouseArea {
anchors {
top: parent.top
right: parent.right
margins: 5
}
width: 32
height: width
cursorShape: Qt.PointingHandCursor
onClicked: {
createNew.state = "out"
timerBack.start()
}
Image {
id: imgClose
source: "qrc:/assets/icons/font-awsome/close.svg"
width: 16
height: 16
anchors.centerIn: parent
sourceSize: Qt.size(width, width)
}
ColorOverlay {
id: iconColorOverlay
anchors.fill: imgClose
source: imgClose
color: "gray"
}
Timer {
id: timerBack
interval: 800
onTriggered: {
screenPlayCreate.abort()
utility.setNavigationActive(true)
utility.setNavigation("Create")
}
}
}
}
states: [
State {
name: "out"
PropertyChanges {
target: wrapper
anchors.topMargin: 800
opacity: 0
}
PropertyChanges {
target: effect
opacity: 0
}
PropertyChanges {
target: wrapperError
opacity: 0
}
},
State {
name: "in"
PropertyChanges {
target: wrapper
anchors.topMargin: 40
opacity: 1
}
PropertyChanges {
target: effect
opacity: .4
}
PropertyChanges {
target: wrapperError
opacity: 0
}
},
State {
name: "error"
PropertyChanges {
target: wrapper
anchors.topMargin: 40
opacity: 1
}
PropertyChanges {
target: effect
opacity: .4
}
PropertyChanges {
target: wrapperContent
opacity: 0
z: 0
}
PropertyChanges {
target: wrapperError
opacity: 1
}
},
State {
name: "success"
PropertyChanges {
target: wrapper
anchors.topMargin: 40
opacity: 1
}
PropertyChanges {
target: effect
opacity: .4
}
PropertyChanges {
target: wrapperContent
opacity: 0
z: 0
}
PropertyChanges {
target: wrapperError
opacity: 1
}
}
]
transitions: [
Transition {
from: "out"
to: "in"
SequentialAnimation {
PauseAnimation {
duration: 400
}
ParallelAnimation { ParallelAnimation {
PropertyAnimation { PropertyAnimation {
@ -582,7 +549,7 @@ Item {
SequentialAnimation { SequentialAnimation {
PauseAnimation { PauseAnimation {
duration: 500 duration: 1000
} }
PropertyAnimation { PropertyAnimation {
target: effect target: effect
@ -592,49 +559,81 @@ Item {
} }
} }
} }
}, }
Transition { },
from: "in" Transition {
to: "error" from: "in"
SequentialAnimation { to: "out"
PropertyAnimation {
target: wrapperContent ParallelAnimation {
duration: 600
property: "opacity" PropertyAnimation {
easing.type: Easing.InOutQuad target: wrapper
} duration: 600
PauseAnimation { property: "anchors.topMargin"
duration: 50 easing.type: Easing.InOutQuad
} }
PropertyAnimation { PropertyAnimation {
target: wrapperError target: wrapper
duration: 200 duration: 600
property: "opacity" property: "opacity"
easing.type: Easing.InOutQuad easing.type: Easing.InOutQuad
}
} }
},
Transition {
from: "in"
to: "success"
SequentialAnimation { SequentialAnimation {
PropertyAnimation {
target: wrapperContent
duration: 600
property: "opacity"
easing.type: Easing.InOutQuad
}
PauseAnimation { PauseAnimation {
duration: 50 duration: 500
} }
PropertyAnimation { PropertyAnimation {
target: wrapperSuccess target: effect
duration: 200 duration: 300
property: "opacity" property: "opacity"
easing.type: Easing.InOutQuad easing.type: Easing.InOutQuad
} }
} }
} }
] },
} Transition {
from: "in"
to: "error"
SequentialAnimation {
PropertyAnimation {
target: wrapperContent
duration: 600
property: "opacity"
easing.type: Easing.InOutQuad
}
PauseAnimation {
duration: 50
}
PropertyAnimation {
target: wrapperError
duration: 200
property: "opacity"
easing.type: Easing.InOutQuad
}
}
},
Transition {
from: "in"
to: "success"
SequentialAnimation {
PropertyAnimation {
target: wrapperContent
duration: 600
property: "opacity"
easing.type: Easing.InOutQuad
}
PauseAnimation {
duration: 50
}
PropertyAnimation {
target: wrapperSuccess
duration: 200
property: "opacity"
easing.type: Easing.InOutQuad
}
}
}
]
} }

View File

@ -190,7 +190,6 @@ bool Create::createWallpaperVideoPreview()
QScopedPointer<QProcess> proConvertImage(new QProcess()); QScopedPointer<QProcess> proConvertImage(new QProcess());
proConvertImage.data()->setArguments(args); proConvertImage.data()->setArguments(args);
qDebug() << "Start converting video to preview gif";
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
proConvertImage.data()->setProgram(QApplication::applicationDirPath() + "/ffmpeg.exe"); proConvertImage.data()->setProgram(QApplication::applicationDirPath() + "/ffmpeg.exe");
#endif #endif
@ -242,7 +241,6 @@ bool Create::createWallpaperVideoPreview()
QScopedPointer<QProcess> proConvertPreviewMP4(new QProcess()); QScopedPointer<QProcess> proConvertPreviewMP4(new QProcess());
proConvertPreviewMP4.data()->setArguments(args); proConvertPreviewMP4.data()->setArguments(args);
qDebug() << "Start converting video to preview mp4";
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
proConvertPreviewMP4.data()->setProgram(QApplication::applicationDirPath() + "/ffmpeg.exe"); proConvertPreviewMP4.data()->setProgram(QApplication::applicationDirPath() + "/ffmpeg.exe");
#endif #endif
@ -291,7 +289,6 @@ bool Create::createWallpaperVideoPreview()
QScopedPointer<QProcess> proConvertGif(new QProcess()); QScopedPointer<QProcess> proConvertGif(new QProcess());
proConvertGif.data()->setArguments(args); proConvertGif.data()->setArguments(args);
qDebug() << "Start converting video to preview gif";
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
proConvertGif.data()->setProgram(QApplication::applicationDirPath() + "/ffmpeg.exe"); proConvertGif.data()->setProgram(QApplication::applicationDirPath() + "/ffmpeg.exe");
#endif #endif