diff --git a/ScreenPlay/Resources.qrc b/ScreenPlay/Resources.qrc
index 180b827a..8046577f 100644
--- a/ScreenPlay/Resources.qrc
+++ b/ScreenPlay/Resources.qrc
@@ -122,9 +122,7 @@
qml/Community/XMLNewsfeed.qml
qml/Workshop/WorkshopAvailableTest.qml
qml/Workshop/WorkshopLoader.qml
- qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImport.qml
qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImportConvert.qml
- qml/Create/Wizards/CreateWallpaper/CreateWallpaperSuccess.qml
- qml/Create/Wizards/CreateWallpaper/CreateWallpaperError.qml
+ qml/Create/Wizards/CreateWallpaper/CreateWallpaperResult.qml
diff --git a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperError.qml b/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperResult.qml
similarity index 86%
rename from ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperError.qml
rename to ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperResult.qml
index cec527df..d50ceb77 100644
--- a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperError.qml
+++ b/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperResult.qml
@@ -84,4 +84,22 @@ Item {
utility.setNavigation("Create")
}
}
+ states: [
+ State {
+ name: "error"
+
+ PropertyChanges {
+ target: txtFFMPEGDebug
+ text: "Error!"
+ }
+ },
+ State {
+ name: "success"
+
+ PropertyChanges {
+ target: txtFFMPEGDebug
+ text: "Success!"
+ }
+ }
+ ]
}
diff --git a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperSuccess.qml b/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperSuccess.qml
deleted file mode 100644
index 85dda4da..00000000
--- a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperSuccess.qml
+++ /dev/null
@@ -1,58 +0,0 @@
-import QtQuick 2.12
-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)
-
- 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}
-}
- ##^##*/
diff --git a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImport.qml b/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImport.qml
deleted file mode 100644
index e8414bf4..00000000
--- a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImport.qml
+++ /dev/null
@@ -1,245 +0,0 @@
-import QtQuick 2.12
-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"
-
- 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 === CreateImportVideo.State.ConvertingVideoFinished) {
- btnFinish.state = "enabled"
- }
- }
- }
- }
-}
diff --git a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperWizard.qml b/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperWizard.qml
index e6fe9598..562dd0dc 100644
--- a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperWizard.qml
+++ b/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperWizard.qml
@@ -18,12 +18,8 @@ Item {
Component.onCompleted: {
state = "in"
utility.setNavigationActive(false)
- loader_wrapperContent.source = "qrc:/qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImportConvert.qml"
-// 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
@@ -88,18 +84,12 @@ Item {
Loader {
id: loader_wrapperContent
-
anchors.fill: parent
z: 10
}
- CreateWallpaperError {
- id: wrapperError
- anchors.fill: parent
- }
-
- CreateWallpaperSuccess {
- id: wrapperSuccess
+ CreateWallpaperResult {
+ id: wrapperResult
anchors.fill: parent
}
@@ -156,7 +146,7 @@ Item {
opacity: 0
}
PropertyChanges {
- target: wrapperError
+ target: wrapperResult
opacity: 0
}
},
@@ -172,7 +162,7 @@ Item {
opacity: .4
}
PropertyChanges {
- target: wrapperError
+ target: wrapperResult
opacity: 0
}
},
@@ -193,7 +183,7 @@ Item {
z: 0
}
PropertyChanges {
- target: wrapperError
+ target: wrapperResult
opacity: 1
}
},
@@ -213,10 +203,6 @@ Item {
opacity: 0
z: 0
}
- PropertyChanges {
- target: wrapperSuccess
- opacity: 1
- }
}
]
transitions: [
@@ -303,7 +289,7 @@ Item {
duration: 50
}
PropertyAnimation {
- target: wrapperError
+ target: wrapperResult
duration: 200
property: "opacity"
easing.type: Easing.OutQuart
@@ -323,12 +309,6 @@ Item {
PauseAnimation {
duration: 50
}
- PropertyAnimation {
- target: wrapperSuccess
- duration: 200
- property: "opacity"
- easing.type: Easing.OutQuart
- }
}
}
]
diff --git a/ScreenPlay/src/create.cpp b/ScreenPlay/src/create.cpp
index bfab73a6..e2f9771b 100644
--- a/ScreenPlay/src/create.cpp
+++ b/ScreenPlay/src/create.cpp
@@ -9,7 +9,7 @@ Create::Create(Settings* st, QMLUtilities* util, QObject* parent)
qRegisterMetaType();
qmlRegisterType("net.aimber.create", 1, 0, "Create");
- qmlRegisterType("net.aimber.create", 1, 0, "Create");
+ qmlRegisterType("net.aimber.create", 1, 0, "CreateImportVideo");
}
void Create::copyProject(QString relativeProjectPath, QString toPath)
@@ -57,8 +57,6 @@ void Create::createWallpaperStart(QString videoPath)
QDir dir;
dir.cd(this->m_settings->localStoragePath().toLocalFile());
- m_createWallpaperData.videoPath = videoPath;
-
// Create a temp dir so we can later alter it to the workshop id
auto folderName = QString("_tmp_" + QTime::currentTime().toString()).replace(":", "");
@@ -67,34 +65,35 @@ void Create::createWallpaperStart(QString videoPath)
return;
}
- m_createWallpaperData.exportPath = dir.path() + "/" + folderName;
- setWorkingDir(m_createWallpaperData.exportPath);
-
m_createImportVideoThread = new QThread;
- m_createImportVideo = new CreateImportVideo(videoPath, m_createWallpaperData.exportPath);
- //connect(m_createImportVideo, SIGNAL(error(QString)), this, SLOT(errorString(QString)));
+ m_createImportVideo = new CreateImportVideo(videoPath, dir.path() + "/" + folderName);
+
+ connect(m_createImportVideo, &CreateImportVideo::createWallpaperStateChanged, this, &Create::createWallpaperStateChanged);
connect(m_createImportVideoThread, &QThread::started, m_createImportVideo, &CreateImportVideo::process);
connect(m_createImportVideo, &CreateImportVideo::finished, m_createImportVideoThread, &QThread::quit);
connect(m_createImportVideo, &CreateImportVideo::finished, m_createImportVideo, &QObject::deleteLater);
connect(m_createImportVideoThread, &QThread::finished, m_createImportVideoThread, &QObject::deleteLater);
- connect(m_createImportVideoThread, &QThread::destroyed, this, [this]() {
- QDir exportPath(m_createWallpaperData.exportPath);
- if (exportPath.exists()) {
- if (!exportPath.removeRecursively()) {
- emit createWallpaperStateChanged(CreateImportVideo::State::AbortCleanupError);
- qWarning() << "Could not delete temp exportPath: " << exportPath;
- } else {
- qDebug() << "cleanup " << m_createWallpaperData.exportPath;
- }
- }
-
- });
m_createImportVideo->moveToThread(m_createImportVideoThread);
m_createImportVideoThread->start();
}
void Create::abortAndCleanup()
{
+ // Save to export path before aborting to be able to cleanup the tmp folder
+ QString tmpExportPath = m_createImportVideo->m_exportPath;
+
+ connect(m_createImportVideoThread, &QThread::destroyed, this, [=]() {
+ QDir exportPath(tmpExportPath);
+
+ if (exportPath.exists()) {
+ if (!exportPath.removeRecursively()) {
+ emit createWallpaperStateChanged(CreateImportVideo::State::AbortCleanupError);
+ qWarning() << "Could not delete temp exportPath: " << exportPath;
+ } else {
+ qDebug() << "cleanup " << tmpExportPath;
+ }
+ }
+ });
m_createImportVideoThread->requestInterruption();
}
diff --git a/ScreenPlay/src/create.h b/ScreenPlay/src/create.h
index 7e373586..1626357b 100644
--- a/ScreenPlay/src/create.h
+++ b/ScreenPlay/src/create.h
@@ -26,31 +26,16 @@
#include "qmlutilities.h"
#include "settings.h"
-struct CreateWallpaperData {
- CreateWallpaperData() {}
-
- QString videoPath = "";
- QString exportPath = "";
- int length = 0;
- int framerate = 0;
-};
-
class Create : public QObject {
Q_OBJECT
public:
explicit Create(Settings* st, QMLUtilities* util, QObject* parent = nullptr);
- Q_PROPERTY(QString workingDir READ workingDir WRITE setWorkingDir NOTIFY workingDirChanged)
Q_PROPERTY(float progress READ progress WRITE setProgress NOTIFY progressChanged)
Create() {}
~Create() {}
- QString workingDir() const
- {
- return m_workingDir;
- }
-
float progress() const
{
return m_progress;
@@ -59,7 +44,6 @@ public:
signals:
void createWallpaperStateChanged(CreateImportVideo::State state);
void processOutput(QString text);
- void workingDirChanged(QString workingDir);
void progressChanged(float progress);
void abortCreateWallpaper();
@@ -69,15 +53,6 @@ public slots:
void abortAndCleanup();
void createWallpaperStart(QString videoPath);
- void setWorkingDir(QString workingDir)
- {
- if (m_workingDir == workingDir)
- return;
-
- m_workingDir = workingDir;
- emit workingDirChanged(m_workingDir);
- }
-
void setProgress(float progress)
{
if (qFuzzyCompare(m_progress, progress))
@@ -92,8 +67,6 @@ private:
Settings* m_settings;
QThread* m_createImportVideoThread;
QMLUtilities* m_utils;
- CreateWallpaperData m_createWallpaperData;
- QString m_workingDir;
- float m_progress = 0.0f;
+ float m_progress = 0.0f;
};
diff --git a/ScreenPlay/src/createimportvideo.cpp b/ScreenPlay/src/createimportvideo.cpp
index e9c8206e..bf421055 100644
--- a/ScreenPlay/src/createimportvideo.cpp
+++ b/ScreenPlay/src/createimportvideo.cpp
@@ -134,8 +134,6 @@ bool CreateImportVideo::createWallpaperVideoPreview()
args.append(m_exportPath + "/preview.webm");
QScopedPointer proConvertPreviewWebM(new QProcess());
- qDebug() << args;
-
proConvertPreviewWebM.data()->setArguments(args);
#ifdef Q_OS_WIN
proConvertPreviewWebM.data()->setProgram(QApplication::applicationDirPath() + "/ffmpeg.exe");
diff --git a/ScreenPlay/src/createimportvideo.h b/ScreenPlay/src/createimportvideo.h
index 79a9ecaf..9c5cc57d 100644
--- a/ScreenPlay/src/createimportvideo.h
+++ b/ScreenPlay/src/createimportvideo.h
@@ -50,6 +50,12 @@ public:
};
Q_ENUM(State)
+ QProcess m_process;
+ QString m_videoPath;
+ QString m_exportPath;
+ int m_length = 0;
+ int m_framerate = 0;
+
signals:
void createWallpaperStateChanged(CreateImportVideo::State state);
void processOutput(QString text);
@@ -67,11 +73,4 @@ public slots:
bool createWallpaperImagePreview();
bool extractWallpaperAudio();
bool createWallpaperProjectFile(const QString title, const QString description);
-
-private:
- QProcess m_process;
- QString m_videoPath;
- QString m_exportPath;
- int m_length = 0;
- int m_framerate = 0;
};