From c16edb7a8453fc7b8994393b87bcdc6f46b4596f Mon Sep 17 00:00:00 2001 From: kelteseth Date: Thu, 18 Oct 2018 12:53:46 +0200 Subject: [PATCH 01/23] Fix error z level Fix conversion of file missinterpreted as an error --- .../CreateWallpaper/CreateWallpaperWizard.qml | 3 +++ ScreenPlay/src/create.cpp | 16 +++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperWizard.qml b/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperWizard.qml index 60dbc826..b0c791cc 100644 --- a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperWizard.qml +++ b/ScreenPlay/qml/Create/Wizards/CreateWallpaper/CreateWallpaperWizard.qml @@ -78,6 +78,7 @@ Item { Item { id: wrapperSteps + z:10 anchors.fill: parent Text { @@ -398,11 +399,13 @@ Item { PropertyChanges { target: wrapperSteps opacity: 0 + z:0 } PropertyChanges { target: wrapperError opacity: 1 } + } ] transitions: [ diff --git a/ScreenPlay/src/create.cpp b/ScreenPlay/src/create.cpp index 7e6550e6..6aa0594e 100644 --- a/ScreenPlay/src/create.cpp +++ b/ScreenPlay/src/create.cpp @@ -214,9 +214,12 @@ bool Create::createWallpaperVideoPreview(CreateWallpaperData& createWallpaperDat qDebug() << tmpErr; qDebug() << proConvertPreviewMP4.data()->readAllStandardOutput(); qDebug() << proConvertPreviewMP4.data()->readAll(); - emit processOutput(tmpErr); - emit createWallpaperStateChanged(Create::State::ConvertingPreviewVideoError); - return false; + QFile previewVideo(createWallpaperData.exportPath + "/preview.mp4"); + if (!previewVideo.exists() && !(previewVideo.size() > 0)) { + emit processOutput(tmpErr); + emit createWallpaperStateChanged(Create::State::ConvertingPreviewVideoError); + return false; + } } // qDebug() << proConvertPreviewMP4.data()->program() << proConvertPreviewMP4.data()->arguments(); // qDebug() << "Done converting video to preview" << proConvertPreviewMP4.data()->readAll() << "\n" @@ -251,8 +254,11 @@ bool Create::createWallpaperVideoPreview(CreateWallpaperData& createWallpaperDat proConvertGif.data()->start(); proConvertGif.data()->waitForFinished(-1); if (!proConvertGif.data()->readAllStandardError().isEmpty()) { - emit createWallpaperStateChanged(Create::State::ConvertingPreviewGifError); - return false; + QFile previewGif(createWallpaperData.exportPath + "/preview.gif"); + if (!previewGif.exists() && !(previewGif.size() > 0)) { + emit createWallpaperStateChanged(Create::State::ConvertingPreviewGifError); + return false; + } } // qDebug() << proConvertGif.data()->program() << proConvertGif.data()->arguments(); From 69385d76a10b390b781f135a05ff7610ef0a9182 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Fri, 19 Oct 2018 13:01:24 +0200 Subject: [PATCH 02/23] Add working video conversion --- .../Create/Wizards/CreateWallpaper/Page_1.qml | 132 ++++++++++++++++-- ScreenPlay/src/create.cpp | 91 +++++++++--- ScreenPlay/src/create.h | 22 +++ 3 files changed, 212 insertions(+), 33 deletions(-) diff --git a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/Page_1.qml b/ScreenPlay/qml/Create/Wizards/CreateWallpaper/Page_1.qml index 6f83c736..551b7225 100644 --- a/ScreenPlay/qml/Create/Wizards/CreateWallpaper/Page_1.qml +++ b/ScreenPlay/qml/Create/Wizards/CreateWallpaper/Page_1.qml @@ -1,16 +1,66 @@ import QtQuick 2.9 import QtQuick.Controls 2.3 +import QtQuick.Controls.Material 2.3 +import net.aimber.create 1.0 Item { id: root + Connections { + target: screenPlayCreate + onCreateWallpaperStateChanged: { + print(state) + if (state === Create.State.ConvertingVideoFinished) { + root.state = "finished" + } + } + } + Rectangle { - id: rectangle1 - color: "#eeeeee" - width: parent.width * .5 - radius: 3 + id: wrapperProgressbar + height: parent.height * .5 + z:1 anchors { top: parent.top + right: parent.right + left: parent.left + } + + Text { + id: txtProgress + text: Math.floor(screenPlayCreate.progress) + "%" + font.pixelSize: 42 + color: "#626262" + renderType: Text.NativeRendering + anchors { + horizontalCenter: parent.horizontalCenter + bottom: progressBar.top + bottomMargin: 30 + } + } + + ProgressBar { + id: progressBar + value: screenPlayCreate.progress + from: 0 + to: 100 + anchors { + horizontalCenter: parent.horizontalCenter + bottom: parent.bottom + bottomMargin: 30 + } + } + } + + Rectangle { + id: wrapperFFMPEGOutput + color: "#eeeeee" + radius: 3 + z:1 + anchors { + top: wrapperProgressbar.bottom + topMargin: 30 + right: parent.right bottom: parent.bottom left: parent.left } @@ -18,6 +68,7 @@ Item { Flickable { anchors.fill: parent focus: true + clip: true contentHeight: txtFFMPEG.paintedHeight ScrollBar.vertical: ScrollBar { snapMode: ScrollBar.SnapOnRelease @@ -33,26 +84,79 @@ Item { } wrapMode: Text.WordWrap color: "#626262" + text: "asasas" renderType: Text.NativeRendering height: txtFFMPEG.paintedHeight + } + } + } + + Item { + id: wrapperFinished + z:0 + anchors.fill: parent + opacity: 0 + + Text { + id: txtDone + text: qsTr("Video creation successful!") + font.pixelSize: 42 + color: Material.color(Material.Green) + renderType: Text.NativeRendering + anchors { + horizontalCenter: parent.horizontalCenter + top: parent.top + topMargin: 30 } } } + Connections { target: screenPlayCreate onProcessOutput: { - txtFFMPEG.text = text + txtFFMPEG.text += text } } - - Rectangle { - id: rectangle - width: parent.width * .5 - anchors { - top: parent.top - bottom: parent.bottom - right: parent.right + states: [ + State { + name: "finished" + PropertyChanges { + target: wrapperProgressbar + opacity:0 + } + PropertyChanges { + target: wrapperFFMPEGOutput + opacity:0 + } + PropertyChanges { + target: wrapperFinished + opacity:1 + } } - } + ] + transitions: [ + Transition { + from: "0" + to: "finished" + PropertyAnimation { + target: wrapperFFMPEGOutput + duration: 200 + property: "opacity" + easing.type: Easing.InOutQuad + } + PropertyAnimation { + target: wrapperProgressbar + duration: 200 + property: "opacity" + easing.type: Easing.InOutQuad + } + PropertyAnimation { + target: wrapperFinished + duration: 200 + property: "opacity" + easing.type: Easing.InOutQuad + } + } + ] } diff --git a/ScreenPlay/src/create.cpp b/ScreenPlay/src/create.cpp index 6aa0594e..554ac7cd 100644 --- a/ScreenPlay/src/create.cpp +++ b/ScreenPlay/src/create.cpp @@ -195,14 +195,6 @@ bool Create::createWallpaperVideoPreview(CreateWallpaperData& createWallpaperDat emit createWallpaperStateChanged(Create::State::ConvertingPreviewVideo); proConvertPreviewMP4.data()->start(); - - QScopedPointer processOutputTimer(new QTimer()); - - // connect(processOutputTimer.data(), &QTimer::timeout, [&]() { - // qDebug() << "### " << proConvertPreviewMP4.data()->readAll(); - // this->processOutput(proConvertPreviewMP4.data()->readAll()); - // }); - processOutputTimer.data()->start(100); proConvertPreviewMP4.data()->waitForFinished(-1); if (proConvertPreviewMP4.data()->exitStatus() == QProcess::NormalExit) { qDebug() << "normal exit"; @@ -211,9 +203,6 @@ bool Create::createWallpaperVideoPreview(CreateWallpaperData& createWallpaperDat } QString tmpErr = proConvertPreviewMP4.data()->readAllStandardError(); if (!tmpErr.isEmpty()) { - qDebug() << tmpErr; - qDebug() << proConvertPreviewMP4.data()->readAllStandardOutput(); - qDebug() << proConvertPreviewMP4.data()->readAll(); QFile previewVideo(createWallpaperData.exportPath + "/preview.mp4"); if (!previewVideo.exists() && !(previewVideo.size() > 0)) { emit processOutput(tmpErr); @@ -221,12 +210,10 @@ bool Create::createWallpaperVideoPreview(CreateWallpaperData& createWallpaperDat return false; } } - // qDebug() << proConvertPreviewMP4.data()->program() << proConvertPreviewMP4.data()->arguments(); - // qDebug() << "Done converting video to preview" << proConvertPreviewMP4.data()->readAll() << "\n" - // << proConvertPreviewMP4.data()->readAllStandardError(); + this->processOutput(proConvertPreviewMP4.data()->readAll()); proConvertPreviewMP4.data()->close(); - processOutputTimer.data()->stop(); + emit createWallpaperStateChanged(Create::State::ConvertingPreviewVideoFinished); /* @@ -253,7 +240,8 @@ bool Create::createWallpaperVideoPreview(CreateWallpaperData& createWallpaperDat #endif proConvertGif.data()->start(); proConvertGif.data()->waitForFinished(-1); - if (!proConvertGif.data()->readAllStandardError().isEmpty()) { + QString tmpErrGif = proConvertGif.data()->readAllStandardError(); + if (!tmpErrGif.isEmpty()) { QFile previewGif(createWallpaperData.exportPath + "/preview.gif"); if (!previewGif.exists() && !(previewGif.size() > 0)) { emit createWallpaperStateChanged(Create::State::ConvertingPreviewGifError); @@ -261,9 +249,6 @@ bool Create::createWallpaperVideoPreview(CreateWallpaperData& createWallpaperDat } } - // qDebug() << proConvertGif.data()->program() << proConvertGif.data()->arguments(); - // qDebug() << "Done converting video to preview" << proConvertGif.data()->readAll() << "\n" - // << proConvertGif.data()->readAllStandardError(); this->processOutput(proConvertPreviewMP4.data()->readAll()); proConvertGif.data()->close(); emit createWallpaperStateChanged(Create::State::ConvertingPreviewGifFinished); @@ -273,6 +258,74 @@ bool Create::createWallpaperVideoPreview(CreateWallpaperData& createWallpaperDat bool Create::createWallpaperVideo(CreateWallpaperData& createWallpaperData) { + emit createWallpaperStateChanged(Create::State::ConvertingVideo); + + QStringList args; + args.append("-hide_banner"); + args.append("-y"); + args.append("-stats"); + args.append("-i"); + args.append(createWallpaperData.videoPath); + args.append("-c:v"); + args.append("libvpx-vp9"); + args.append("-crf"); + args.append("30"); + args.append("-threads"); + args.append("16"); + args.append("-slices"); + args.append("16"); + args.append("-cpu-used"); + args.append("4"); + args.append("-pix_fmt"); + args.append("yuv420p"); + args.append("-b:v"); + args.append("0"); + args.append(createWallpaperData.exportPath + "/video.webm"); + + QScopedPointer proConvertVideo(new QProcess()); + proConvertVideo.data()->setArguments(args); + proConvertVideo.data()->setProcessChannelMode(QProcess::MergedChannels); + proConvertVideo.data()->setProgram(QApplication::applicationDirPath() + "/ffmpeg.exe"); + qDebug() << "Start converting video"; + + connect(proConvertVideo.data(), &QProcess::readyReadStandardOutput, this, [&]() { + QString tmpOut = proConvertVideo.data()->readAllStandardOutput(); + auto tmpList = tmpOut.split(QRegExp("\\s+"), QString::SkipEmptyParts); + if (tmpList.length() > 2) { + bool ok = false; + float currentFrame = QString(tmpList.at(1)).toFloat(&ok); + + if (!ok) + return; + + float progress = currentFrame / createWallpaperData.length; + + this->setProgress(progress); + } + this->processOutput(tmpOut); + }); + + // For some reason we only get output if we use execute instead of start....?! +#ifdef Q_OS_WIN + //proConvertVideo.data()->execute(QApplication::applicationDirPath() + "/ffmpeg.exe", args); +#endif + proConvertVideo.data()->start(QIODevice::ReadOnly); + proConvertVideo.data()->waitForFinished(-1); + QString out = proConvertVideo.data()->readAllStandardOutput(); + + this->processOutput(out); + QString tmpErrVideo = proConvertVideo.data()->readAllStandardError(); + if (!tmpErrVideo.isEmpty()) { + QFile video(createWallpaperData.exportPath + "/video.webm"); + if (!video.exists() && !(video.size() > 0)) { + emit createWallpaperStateChanged(Create::State::ConvertingVideoError); + return false; + } + } + + proConvertVideo.data()->close(); + emit createWallpaperStateChanged(Create::State::ConvertingVideoFinished); + return true; } diff --git a/ScreenPlay/src/create.h b/ScreenPlay/src/create.h index 19567163..c58a836d 100644 --- a/ScreenPlay/src/create.h +++ b/ScreenPlay/src/create.h @@ -36,6 +36,7 @@ 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() {} @@ -55,6 +56,9 @@ public: ConvertingPreviewGif, ConvertingPreviewGifFinished, ConvertingPreviewGifError, + ConvertingVideo, + ConvertingVideoFinished, + ConvertingVideoError, Finished, ErrorUnknown, }; @@ -66,11 +70,18 @@ public: return m_workingDir; } + float progress() const + { + return m_progress; + } + signals: void createWallpaperStateChanged(Create::State state); void processOutput(QString text); void workingDirChanged(QString workingDir); + void progressChanged(float progress); + public slots: void copyProject(QString relativeProjectPath, QString toPath); bool copyRecursively(const QString& srcFilePath, const QString& tgtFilePath); @@ -92,9 +103,20 @@ public slots: emit workingDirChanged(m_workingDir); } + void setProgress(float progress) + { + if (qFuzzyCompare(m_progress, progress)) + return; + + qDebug() << progress; + m_progress = progress; + emit progressChanged(m_progress); + } + private: Settings* m_settings; QMLUtilities* m_utils; QString m_workingDir; + float m_progress = 0.0f; }; From 972e7bcad5006d2c062149ffa7f9a58bc56c4cbc Mon Sep 17 00:00:00 2001 From: kelteseth Date: Fri, 26 Oct 2018 12:05:23 +0200 Subject: [PATCH 03/23] Add basic sysinfo structure --- ScreenPlaySysInfo/ScreenPlaySysInfo.pro | 8 ++- ScreenPlaySysInfo/cpu.cpp | 33 +++++++++++ ScreenPlaySysInfo/cpu.h | 56 +++++++++++++++++++ ScreenPlaySysInfo/ram.cpp | 8 +++ ScreenPlaySysInfo/ram.h | 39 +++++++++++++ .../screenplaysysinfo_plugin.cpp | 10 ++-- ScreenPlaySysInfo/sysinfo.cpp | 10 ++-- ScreenPlaySysInfo/sysinfo.h | 41 +++++++++++--- 8 files changed, 184 insertions(+), 21 deletions(-) create mode 100644 ScreenPlaySysInfo/cpu.cpp create mode 100644 ScreenPlaySysInfo/cpu.h create mode 100644 ScreenPlaySysInfo/ram.cpp create mode 100644 ScreenPlaySysInfo/ram.h diff --git a/ScreenPlaySysInfo/ScreenPlaySysInfo.pro b/ScreenPlaySysInfo/ScreenPlaySysInfo.pro index 77fdc807..6d6dfc15 100644 --- a/ScreenPlaySysInfo/ScreenPlaySysInfo.pro +++ b/ScreenPlaySysInfo/ScreenPlaySysInfo.pro @@ -9,11 +9,15 @@ uri = net.aimber.sysinfo # Input SOURCES += \ screenplaysysinfo_plugin.cpp \ - sysinfo.cpp + sysinfo.cpp \ + cpu.cpp \ + ram.cpp HEADERS += \ screenplaysysinfo_plugin.h \ - sysinfo.h + sysinfo.h \ + cpu.h \ + ram.h DISTFILES = qmldir diff --git a/ScreenPlaySysInfo/cpu.cpp b/ScreenPlaySysInfo/cpu.cpp new file mode 100644 index 00000000..da602d8e --- /dev/null +++ b/ScreenPlaySysInfo/cpu.cpp @@ -0,0 +1,33 @@ +#include "cpu.h" +#include + +#define STATUS_SUCCESS 0 +#define STATUS_INFO_LENGTH_MISMATCH 0xC0000004 + +CPU::CPU(QObject *parent) : QObject(parent) +{ + +} + + +void CPU::update() +{ +// long status = 0; +// unsigned long bufSize = c_BufferSize; +// byte* buf = (bufSize > 0) ? new BYTE[bufSize] : nullptr; + + + +// status = c_NtQuerySystemInformation(SystemProcessorPerformanceInformation, buf, bufSize, &size); + +// switch (status) { +// case STATUS_INFO_LENGTH_MISMATCH: +// qWarning() << "Warning: Status info length mismatch!"; +// break; +// case STATUS_SUCCESS: + +// break; +// default: +// break; +// } +} diff --git a/ScreenPlaySysInfo/cpu.h b/ScreenPlaySysInfo/cpu.h new file mode 100644 index 00000000..a730be0c --- /dev/null +++ b/ScreenPlaySysInfo/cpu.h @@ -0,0 +1,56 @@ +#pragma once + +#include +#include + +#ifdef Q_OS_WIN +#include +#endif + +// https://github.com/rainmeter/rainmeter/blob/master/Library/MeasureCPU.cpp + +typedef LONG(WINAPI* FPNTQSI)(UINT, PVOID, ULONG, PULONG); + +class CPU : public QObject { + Q_OBJECT + + Q_PROPERTY(float usage READ usage NOTIFY usageChanged) + +public: + explicit CPU(QObject* parent = nullptr); + + + float usage() const + { + return m_usage; + } + +signals: + + void usageChanged(float usage); + +public slots: + void update(); + + void setUsage(float usage) + { + qWarning("Floating point comparison needs context sanity check"); + if (qFuzzyCompare(m_usage, usage)) + return; + + m_usage = usage; + emit usageChanged(m_usage); + } + +private: + float m_usage = 42.0f; + + int m_Processor; + + double m_OldTime[2]; + + static FPNTQSI c_NtQuerySystemInformation; + + static int c_NumOfProcessors; + static ULONG c_BufferSize; +}; diff --git a/ScreenPlaySysInfo/ram.cpp b/ScreenPlaySysInfo/ram.cpp new file mode 100644 index 00000000..3f813dfc --- /dev/null +++ b/ScreenPlaySysInfo/ram.cpp @@ -0,0 +1,8 @@ +#include "ram.h" +#include +#include +RAM::RAM(QObject* parent) + : QObject(parent) +{ + +} diff --git a/ScreenPlaySysInfo/ram.h b/ScreenPlaySysInfo/ram.h new file mode 100644 index 00000000..f5fe98ae --- /dev/null +++ b/ScreenPlaySysInfo/ram.h @@ -0,0 +1,39 @@ +#pragma once + +#include +#include + +class RAM : public QObject { + Q_OBJECT + Q_PROPERTY(float usage READ usage NOTIFY usageChanged) + +public: + explicit RAM(QObject* parent = nullptr); + + float usage() const + { + return m_usage; + } + +signals: + + void usageChanged(float usage); + +public slots: + void exe(){ + qDebug() << "aa"; + } + void setUsage(float usage) + { + qWarning("Floating point comparison needs context sanity check"); + if (qFuzzyCompare(m_usage, usage)) + return; + + m_usage = usage; + emit usageChanged(m_usage); + } + +private: + float m_usage = 42.0f; +}; + diff --git a/ScreenPlaySysInfo/screenplaysysinfo_plugin.cpp b/ScreenPlaySysInfo/screenplaysysinfo_plugin.cpp index c7f1bec1..250b64ed 100644 --- a/ScreenPlaySysInfo/screenplaysysinfo_plugin.cpp +++ b/ScreenPlaySysInfo/screenplaysysinfo_plugin.cpp @@ -1,9 +1,9 @@ #include "screenplaysysinfo_plugin.h" #include "sysinfo.h" - +#include #include -QObject *ScreenPlaySysInfoSingleton(QQmlEngine *engine, QJSEngine *scriptEngine) +QObject* ScreenPlaySysInfoSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) { Q_UNUSED(engine) Q_UNUSED(scriptEngine) @@ -11,9 +11,9 @@ QObject *ScreenPlaySysInfoSingleton(QQmlEngine *engine, QJSEngine *scriptEngine) return new SysInfo(); } -void ScreenPlaySysInfoPlugin::registerTypes(const char *uri) +void ScreenPlaySysInfoPlugin::registerTypes(const char* uri) { // @uri net.aimber.sysinfo - qmlRegisterSingletonType(uri, 1, 0, "SysInfo",ScreenPlaySysInfoSingleton); -} + qmlRegisterSingletonType(uri, 1, 0, "SysInfo", ScreenPlaySysInfoSingleton); +} diff --git a/ScreenPlaySysInfo/sysinfo.cpp b/ScreenPlaySysInfo/sysinfo.cpp index b1dc6f68..9db4bcea 100644 --- a/ScreenPlaySysInfo/sysinfo.cpp +++ b/ScreenPlaySysInfo/sysinfo.cpp @@ -3,13 +3,13 @@ SysInfo::SysInfo(QQuickItem *parent): QQuickItem(parent) { - // By default, QQuickItem does not draw anything. If you subclass - // QQuickItem to create a visual item, you will need to uncomment the - // following line and re-implement updatePaintNode() - - // setFlag(ItemHasContents, true); + // FIXME Elias 2018 QQmlEngine cannot handle smartpointers yet.... + m_ram = new RAM(); + m_cpu = new CPU(); } SysInfo::~SysInfo() { + delete m_cpu; + delete m_ram; } diff --git a/ScreenPlaySysInfo/sysinfo.h b/ScreenPlaySysInfo/sysinfo.h index cf22e58a..27f8a7be 100644 --- a/ScreenPlaySysInfo/sysinfo.h +++ b/ScreenPlaySysInfo/sysinfo.h @@ -1,16 +1,39 @@ -#ifndef SYSINFO_H -#define SYSINFO_H +#pragma once +#include "cpu.h" +#include "ram.h" #include +#include +#include -class SysInfo : public QQuickItem -{ +class SysInfo : public QQuickItem { Q_OBJECT Q_DISABLE_COPY(SysInfo) -public: - SysInfo(QQuickItem *parent = nullptr); - ~SysInfo(); -}; + Q_PROPERTY(RAM* ram READ ram NOTIFY ramChanged) + Q_PROPERTY(CPU* cpu READ cpu NOTIFY cpuChanged) -#endif // SYSINFO_H +public: + SysInfo(QQuickItem* parent = nullptr); + ~SysInfo(); + + RAM* ram() const + { + return m_ram; + } + + CPU* cpu() const + { + return m_cpu; + } + +public slots: + +signals: + void ramChanged(RAM* ram); + void cpuChanged(CPU* cpu); + +private: + RAM* m_ram; + CPU* m_cpu; +}; From 92c09aa2bd64fdd00dc7dc555c8d66c0b6df1bef Mon Sep 17 00:00:00 2001 From: kelteseth Date: Fri, 26 Oct 2018 19:28:40 +0200 Subject: [PATCH 04/23] Add nice blurry background on windows 10 --- ScreenPlayWidget/SPWidgetResources.qrc | 1 + ScreenPlayWidget/ScreenPlayWidget.pro | 4 +- .../assets/image/noisy-texture-3.png | Bin 0 -> 9172 bytes ScreenPlayWidget/main.qml | 82 +++++++----------- ScreenPlayWidget/src/spwidgetmainwindow.cpp | 82 +++++++++++++++++- ScreenPlayWidget/src/spwidgetmainwindow.h | 16 +++- 6 files changed, 128 insertions(+), 57 deletions(-) create mode 100644 ScreenPlayWidget/assets/image/noisy-texture-3.png diff --git a/ScreenPlayWidget/SPWidgetResources.qrc b/ScreenPlayWidget/SPWidgetResources.qrc index 5f6483ac..466227d4 100644 --- a/ScreenPlayWidget/SPWidgetResources.qrc +++ b/ScreenPlayWidget/SPWidgetResources.qrc @@ -1,5 +1,6 @@ main.qml + assets/image/noisy-texture-3.png diff --git a/ScreenPlayWidget/ScreenPlayWidget.pro b/ScreenPlayWidget/ScreenPlayWidget.pro index c448b48b..76b3a4ed 100644 --- a/ScreenPlayWidget/ScreenPlayWidget.pro +++ b/ScreenPlayWidget/ScreenPlayWidget.pro @@ -1,5 +1,5 @@ -QT += quick -CONFIG += c++11 +QT += quick qml quickcontrols2 core charts widgets gui +CONFIG += c++17 CONFIG += qtquickcompiler # The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked deprecated (the exact warnings diff --git a/ScreenPlayWidget/assets/image/noisy-texture-3.png b/ScreenPlayWidget/assets/image/noisy-texture-3.png new file mode 100644 index 0000000000000000000000000000000000000000..3ef73675148575efb61b1adc02939822499820a8 GIT binary patch literal 9172 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 + Qt::WindowFlags flags = this->flags(); + this->setWidth(500); + this->setHeight(300); + this->setFlags(flags | Qt::FramelessWindowHint | Qt::NoDropShadowWindowHint | Qt::BypassWindowManagerHint | Qt::SplashScreen); + QFile configTmp; QJsonDocument configJsonDocument; QJsonParseError parseError; @@ -20,11 +27,80 @@ SPWidgetmainwindow::SPWidgetmainwindow(QString projectPath, QString appid, QScre m_project = configJsonDocument.object(); QString fullPath = projectPath + "/" + m_project.value("file").toString(); - m_quickRenderer = QSharedPointer(new QQmlApplicationEngine()); + m_quickRenderer = QSharedPointer(new QQuickView(this)); m_quickRenderer.data()->rootContext()->setContextProperty("backend", this); - m_quickRenderer.data()->load(QUrl("qrc:/main.qml")); + m_quickRenderer.data()->setColor(Qt::transparent); + m_quickRenderer.data()->setWidth(this->width()); + m_quickRenderer.data()->setHeight(this->height()); + m_quickRenderer.data()->setResizeMode(QQuickView::ResizeMode::SizeRootObjectToView); + + m_quickRenderer.data()->setSource(QUrl("qrc:/main.qml")); +#ifdef Q_OS_WIN + SetWindowBlur(m_hwnd); +#endif + show(); + m_quickRenderer.data()->show(); emit setWidgetSource(fullPath); - } +void SPWidgetmainwindow::setSize(QSize size) +{ + this->setWidth(size.width()); + this->setHeight(size.height()); + m_quickRenderer.data()->setWidth(size.width()); + m_quickRenderer.data()->setHeight(size.height()); +} + +void SPWidgetmainwindow::setPos(int xPos, int yPos) +{ + + QPoint delta((xPos - m_clickPos.x()), (yPos - m_clickPos.y())); + int new_x = x() + delta.x(); + int new_y = y() + delta.y(); + + setPosition(QPoint(new_x, new_y)); +} + +void SPWidgetmainwindow::setClickPos(const QPoint &clickPos) +{ + m_clickPos = clickPos; +} + +void SPWidgetmainwindow::SetWindowBlur(HWND hWnd) +{ +#ifdef Q_OS_WIN + + const HINSTANCE hModule = LoadLibrary(TEXT("user32.dll")); + if (hModule) { + struct ACCENTPOLICY { + int nAccentState; + int nFlags; + int nColor; + int nAnimationId; + }; + struct WINCOMPATTRDATA { + int nAttribute; + PVOID pData; + ULONG ulDataSize; + }; + enum class Accent { + DISABLED = 0, + GRADIENT = 1, + TRANSPARENTGRADIENT = 2, + BLURBEHIND = 3, + ACRYLIC = 4, + INVALID = 5 + }; + typedef BOOL(WINAPI * pSetWindowCompositionAttribute)(HWND, WINCOMPATTRDATA*); + const pSetWindowCompositionAttribute SetWindowCompositionAttribute = (pSetWindowCompositionAttribute)GetProcAddress(hModule, "SetWindowCompositionAttribute"); + if (SetWindowCompositionAttribute) { + ACCENTPOLICY policy = { (int)Accent::BLURBEHIND, 0, 0, 0 }; // ACCENT_ENABLE_BLURBEHIND=3... + WINCOMPATTRDATA data = { 19, &policy, sizeof(ACCENTPOLICY) }; // WCA_ACCENT_POLICY=19 + SetWindowCompositionAttribute(hWnd, &data); + } + FreeLibrary(hModule); + } + +#endif +} diff --git a/ScreenPlayWidget/src/spwidgetmainwindow.h b/ScreenPlayWidget/src/spwidgetmainwindow.h index 41f91c4f..1872ff1b 100644 --- a/ScreenPlayWidget/src/spwidgetmainwindow.h +++ b/ScreenPlayWidget/src/spwidgetmainwindow.h @@ -6,12 +6,15 @@ #include #include #include +#include #include -#include +#include +#include +#include #include #include #include -#include +#include class SPWidgetmainwindow : public QWindow { Q_OBJECT @@ -45,6 +48,7 @@ signals: void setWidgetSource(QString source); public slots: + void setSize(QSize size); void setAppID(QString appID) { if (m_appID == appID) @@ -70,11 +74,17 @@ public slots: emit projectConfigChanged(m_projectConfig); } + void setPos(int xPos, int yPos); + void setClickPos(const QPoint& clickPos); + void SetWindowBlur(HWND hWnd); + private: QString m_appID; QString m_type = "qmlWidget"; QString m_projectConfig; QJsonObject m_project; + HWND m_hwnd; + QPoint m_clickPos = { 0, 0 }; - QSharedPointer m_quickRenderer = nullptr; + QSharedPointer m_quickRenderer; }; From 10262a41be6cb895cd8218773f499cb14f78c116 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Sun, 4 Nov 2018 13:02:26 +0100 Subject: [PATCH 05/23] Use local path instead of appData --- ScreenPlay/src/settings.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ScreenPlay/src/settings.cpp b/ScreenPlay/src/settings.cpp index 8efb7fcb..6576c18c 100644 --- a/ScreenPlay/src/settings.cpp +++ b/ScreenPlay/src/settings.cpp @@ -1,4 +1,5 @@ #include "settings.h" +#include Settings::Settings(ProfileListModel* plm, MonitorListModel* mlm, InstalledListModel* ilm, SDKConnector* sdkc, AppId_t steamID, QGuiApplication* app, QObject* parent) : QObject(parent) @@ -12,7 +13,7 @@ Settings::Settings(ProfileListModel* plm, MonitorListModel* mlm, InstalledListMo m_qGuiApplication = app; QFile configTmp; - QString appConfigLocation = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation); + QString appConfigLocation = QGuiApplication::applicationDirPath(); m_localSettingsPath = QUrl(appConfigLocation); if (!QDir(appConfigLocation).exists()) { if (!QDir().mkdir(appConfigLocation)) { @@ -30,7 +31,7 @@ Settings::Settings(ProfileListModel* plm, MonitorListModel* mlm, InstalledListMo } QJsonDocument configJsonDocument; - QJsonParseError parseError{}; + QJsonParseError parseError {}; QJsonObject configObj; configTmp.open(QIODevice::ReadOnly | QIODevice::Text); @@ -150,7 +151,7 @@ void Settings::writeSingleSettingConfig(QString name, QVariant value) { QJsonDocument configJsonDocument; - QJsonParseError parseError{}; + QJsonParseError parseError {}; QJsonObject configObj; QFile configTmp; @@ -263,7 +264,7 @@ void Settings::setPlayAll(bool isPlaying) void Settings::createDefaultConfig() { - QFile file(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/settings.json"); + QFile file(QGuiApplication::applicationDirPath() + "/settings.json"); QFile defaultSettings(":/settings.json"); file.open(QIODevice::WriteOnly | QIODevice::Text); From 43328e810d8f1f38f61b097ebea253a4e614fe43 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Mon, 5 Nov 2018 11:37:45 +0100 Subject: [PATCH 06/23] Fix settings path not beign updated in the ui --- ScreenPlay/src/settings.h | 1 + 1 file changed, 1 insertion(+) diff --git a/ScreenPlay/src/settings.h b/ScreenPlay/src/settings.h index 586392df..866fc939 100644 --- a/ScreenPlay/src/settings.h +++ b/ScreenPlay/src/settings.h @@ -232,6 +232,7 @@ public slots: writeSingleSettingConfig("absoluteStoragePath", cleanedPath); m_ilm->setabsoluteStoragePath(cleanedPath.toString()); + m_localStoragePath = cleanedPath.toString(); emit localStoragePathChanged(cleanedPath.toString()); m_ilm->reset(); m_ilm->loadScreens(); From fe118766a341fad790cdf880144e3804ffbee148 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Mon, 5 Nov 2018 11:42:44 +0100 Subject: [PATCH 07/23] Fix layout --- ScreenPlay/qml/Settings/SettingsHeader.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ScreenPlay/qml/Settings/SettingsHeader.qml b/ScreenPlay/qml/Settings/SettingsHeader.qml index 879fc57e..2f2acd2a 100644 --- a/ScreenPlay/qml/Settings/SettingsHeader.qml +++ b/ScreenPlay/qml/Settings/SettingsHeader.qml @@ -71,7 +71,7 @@ Item { font.family: "Roboto" anchors{ top:parent.top - topMargin: 3 + topMargin: 0 left:parent.left leftMargin: 30 } @@ -104,7 +104,7 @@ Item { PropertyChanges { target: txtHeadline - anchors.topMargin: 3 + anchors.topMargin: 0 opacity: 1 } } From 5e69677cf57dd7229f56f862348d0f208ccc4f4c Mon Sep 17 00:00:00 2001 From: kelteseth Date: Tue, 6 Nov 2018 16:59:10 +0100 Subject: [PATCH 08/23] Add example for dani --- ScreenPlaySysInfo/cpu.cpp | 3 +++ ScreenPlaySysInfo/cpu.h | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/ScreenPlaySysInfo/cpu.cpp b/ScreenPlaySysInfo/cpu.cpp index da602d8e..072fae8a 100644 --- a/ScreenPlaySysInfo/cpu.cpp +++ b/ScreenPlaySysInfo/cpu.cpp @@ -7,6 +7,9 @@ CPU::CPU(QObject *parent) : QObject(parent) { + m_updateTimer.start(m_updateTimer); + // signal obj, signal function pointer, slot obj, slot function pointer + connect(&m_updateTimer,&QTimer::timeout,this,&CPU::update); } diff --git a/ScreenPlaySysInfo/cpu.h b/ScreenPlaySysInfo/cpu.h index a730be0c..82699a17 100644 --- a/ScreenPlaySysInfo/cpu.h +++ b/ScreenPlaySysInfo/cpu.h @@ -2,6 +2,7 @@ #include #include +#include #ifdef Q_OS_WIN #include @@ -15,6 +16,7 @@ class CPU : public QObject { Q_OBJECT Q_PROPERTY(float usage READ usage NOTIFY usageChanged) + Q_PROPERTY(int tickRate READ tickRate WRITE setTickRate NOTIFY tickRateChanged) public: explicit CPU(QObject* parent = nullptr); @@ -25,10 +27,17 @@ public: return m_usage; } + int tickRate() const + { + return m_tickRate; + } + signals: void usageChanged(float usage); + void tickRateChanged(int tickRate); + public slots: void update(); @@ -42,6 +51,17 @@ public slots: emit usageChanged(m_usage); } + void setTickRate(int tickRate) + { + if (m_tickRate == tickRate) + return; + + qDebug() << "hat sich was geƤndert"; + + m_tickRate = tickRate; + emit tickRateChanged(m_tickRate); + } + private: float m_usage = 42.0f; @@ -53,4 +73,5 @@ private: static int c_NumOfProcessors; static ULONG c_BufferSize; + int m_tickRate; }; From f91f8e8b92ec7e0b971ab64d83ddd6b8d4cdb604 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Tue, 6 Nov 2018 17:00:21 +0100 Subject: [PATCH 09/23] Fix example --- ScreenPlaySysInfo/cpu.cpp | 2 +- ScreenPlaySysInfo/cpu.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ScreenPlaySysInfo/cpu.cpp b/ScreenPlaySysInfo/cpu.cpp index 072fae8a..9cb13626 100644 --- a/ScreenPlaySysInfo/cpu.cpp +++ b/ScreenPlaySysInfo/cpu.cpp @@ -7,9 +7,9 @@ CPU::CPU(QObject *parent) : QObject(parent) { - m_updateTimer.start(m_updateTimer); // signal obj, signal function pointer, slot obj, slot function pointer connect(&m_updateTimer,&QTimer::timeout,this,&CPU::update); + m_updateTimer.start(m_tickRate); } diff --git a/ScreenPlaySysInfo/cpu.h b/ScreenPlaySysInfo/cpu.h index 82699a17..8484e43a 100644 --- a/ScreenPlaySysInfo/cpu.h +++ b/ScreenPlaySysInfo/cpu.h @@ -73,5 +73,6 @@ private: static int c_NumOfProcessors; static ULONG c_BufferSize; - int m_tickRate; + int m_tickRate = 500; + QTimer m_updateTimer; }; From 05af5e8f41c7b98eb0242aa0d744a124373dd1a7 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Wed, 7 Nov 2018 17:56:05 +0100 Subject: [PATCH 10/23] Fix setting not being overwritten by compiling --- ScreenPlay/ScreenPlay.pro | 1 - 1 file changed, 1 deletion(-) diff --git a/ScreenPlay/ScreenPlay.pro b/ScreenPlay/ScreenPlay.pro index 6ce00e08..188c5094 100644 --- a/ScreenPlay/ScreenPlay.pro +++ b/ScreenPlay/ScreenPlay.pro @@ -73,7 +73,6 @@ installOut.path = $${OUT_PWD}/ install_it.files += assets/templates/config.json \ assets/icons/favicon.ico \ - settings.json \ steam_appid.txt \ ThirdParty/ffmpeg/Windows/avcodec-58.dll \ ThirdParty/ffmpeg/Windows/avdevice-58.dll \ From 0fe9e65dd26aee6eb80c8e3a154e2a84a70749c7 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Thu, 8 Nov 2018 21:08:33 +0100 Subject: [PATCH 11/23] Add bsic ci --- .gitlab-ci.yml | 19 +++++++++++++++++++ scripts/build.bat | 15 +++++++++++++++ scripts/package.bat | 19 +++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 scripts/build.bat create mode 100644 scripts/package.bat diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000..1d815fc8 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,19 @@ +stages: + - build + +build:windows: + stage: build + tags: + - vs2017 + - windows + before_script: + - git clean -xdf + - git submodule sync --recursive + - git submodule update --init --recursive + script: + - call scripts/build.bat + - call scripts/package.bat + artifacts: + expire_in: '2 hrs' + paths: + - package/ diff --git a/scripts/build.bat b/scripts/build.bat new file mode 100644 index 00000000..aedb07dc --- /dev/null +++ b/scripts/build.bat @@ -0,0 +1,15 @@ +setlocal EnableExtensions + +set PATH=%PATH%;C:\Qt\Tools\QtCreator\bin +set PATH=%PATH%;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\Hostx64\x64 +set PATH=%PATH%;C:\Qt\5.11.2\msvc2017_64\bin +set root=%cd% + +call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat" + +echo "Begin build of ScreenPlay " +cd .. +qmake.exe ScreenPlay.pro -spec win32-msvc "CONFIG+=release" +jom.exe -j8 +echo "Build ScreenPlay finished!" + diff --git a/scripts/package.bat b/scripts/package.bat new file mode 100644 index 00000000..2ea44898 --- /dev/null +++ b/scripts/package.bat @@ -0,0 +1,19 @@ +setlocal EnableExtensions + +call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat" + +echo "Begin packaging" + + +mkdir package +cd package + +xcopy "Shared" "package\Launcher" /s /y + +C:\Qt\5.11.2\msvc2017_64\bin\windeployqt.exe --release --qmldir Launcher/qml package/Launcher/DC-Launcher.exe + + +del /f package\PatchFileGenerator\*.cpp +del /f package\PatchFileGenerator\*.h +del /f package\PatchFileGenerator\*.obj +del /f package\PatchFileGenerator\*.res \ No newline at end of file From 1c9d6ce6a6674b9b1316c72e3e50f8fdf094f633 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Thu, 8 Nov 2018 21:10:41 +0100 Subject: [PATCH 12/23] Test ci --- scripts/build.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build.bat b/scripts/build.bat index aedb07dc..f51a37a9 100644 --- a/scripts/build.bat +++ b/scripts/build.bat @@ -8,7 +8,7 @@ set root=%cd% call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat" echo "Begin build of ScreenPlay " -cd .. + qmake.exe ScreenPlay.pro -spec win32-msvc "CONFIG+=release" jom.exe -j8 echo "Build ScreenPlay finished!" From 1a368c64c4421ed8f7500cb5bbb5c194bf387465 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Thu, 8 Nov 2018 21:14:18 +0100 Subject: [PATCH 13/23] Test ci --- scripts/build.bat | 6 ++++-- scripts/package.bat | 4 ---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/scripts/build.bat b/scripts/build.bat index f51a37a9..6db8e6a3 100644 --- a/scripts/build.bat +++ b/scripts/build.bat @@ -7,9 +7,11 @@ set root=%cd% call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat" -echo "Begin build of ScreenPlay " +mkdir package +cd package -qmake.exe ScreenPlay.pro -spec win32-msvc "CONFIG+=release" +echo "Begin build of ScreenPlay " +../qmake.exe ScreenPlay.pro -spec win32-msvc "CONFIG+=release" jom.exe -j8 echo "Build ScreenPlay finished!" diff --git a/scripts/package.bat b/scripts/package.bat index 2ea44898..aeaa3e96 100644 --- a/scripts/package.bat +++ b/scripts/package.bat @@ -4,10 +4,6 @@ call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary echo "Begin packaging" - -mkdir package -cd package - xcopy "Shared" "package\Launcher" /s /y C:\Qt\5.11.2\msvc2017_64\bin\windeployqt.exe --release --qmldir Launcher/qml package/Launcher/DC-Launcher.exe From 96ac38359a9e9323621a20a1e1646ea22b54c77a Mon Sep 17 00:00:00 2001 From: kelteseth Date: Thu, 8 Nov 2018 21:16:16 +0100 Subject: [PATCH 14/23] Test ci --- scripts/build.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build.bat b/scripts/build.bat index 6db8e6a3..0465f0ba 100644 --- a/scripts/build.bat +++ b/scripts/build.bat @@ -11,7 +11,7 @@ mkdir package cd package echo "Begin build of ScreenPlay " -../qmake.exe ScreenPlay.pro -spec win32-msvc "CONFIG+=release" +qmake.exe ../ScreenPlay.pro -spec win32-msvc "CONFIG+=release" jom.exe -j8 echo "Build ScreenPlay finished!" From 114aebf8b5bd5356d5ccdd5396c7fd3a11b23be5 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Sun, 11 Nov 2018 15:51:28 +0100 Subject: [PATCH 15/23] Add qmake_all --- scripts/build.bat | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/build.bat b/scripts/build.bat index 0465f0ba..a5c2ebe7 100644 --- a/scripts/build.bat +++ b/scripts/build.bat @@ -1,7 +1,6 @@ setlocal EnableExtensions set PATH=%PATH%;C:\Qt\Tools\QtCreator\bin -set PATH=%PATH%;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\Hostx64\x64 set PATH=%PATH%;C:\Qt\5.11.2\msvc2017_64\bin set root=%cd% @@ -12,6 +11,9 @@ cd package echo "Begin build of ScreenPlay " qmake.exe ../ScreenPlay.pro -spec win32-msvc "CONFIG+=release" +jom.exe clean +jom.exe qmake_all jom.exe -j8 +jom.exe install echo "Build ScreenPlay finished!" From 7c8d1ccd0d541fa05a878c65ec479d278919f51f Mon Sep 17 00:00:00 2001 From: kelteseth Date: Sun, 11 Nov 2018 16:19:51 +0100 Subject: [PATCH 16/23] Test ci --- .gitlab-ci.yml | 2 +- scripts/build.bat | 5 ++--- scripts/package.bat | 27 +++++++++++++++++++++------ 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1d815fc8..a61f26a0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,4 +16,4 @@ build:windows: artifacts: expire_in: '2 hrs' paths: - - package/ + - PACKAGE/ diff --git a/scripts/build.bat b/scripts/build.bat index a5c2ebe7..38794df2 100644 --- a/scripts/build.bat +++ b/scripts/build.bat @@ -6,12 +6,11 @@ set root=%cd% call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat" -mkdir package -cd package +mkdir BUILD +cd BUILD echo "Begin build of ScreenPlay " qmake.exe ../ScreenPlay.pro -spec win32-msvc "CONFIG+=release" -jom.exe clean jom.exe qmake_all jom.exe -j8 jom.exe install diff --git a/scripts/package.bat b/scripts/package.bat index aeaa3e96..7a2d0c70 100644 --- a/scripts/package.bat +++ b/scripts/package.bat @@ -1,15 +1,30 @@ setlocal EnableExtensions +set PATH=%PATH%;C:\Qt\Tools\QtCreator\bin +set PATH=%PATH%;C:\Qt\5.11.2\msvc2017_64\bin +set root=%cd% + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsx86_amd64.bat" echo "Begin packaging" -xcopy "Shared" "package\Launcher" /s /y +mkdir PACKAGE +cd BUILD -C:\Qt\5.11.2\msvc2017_64\bin\windeployqt.exe --release --qmldir Launcher/qml package/Launcher/DC-Launcher.exe +xcopy /s ScreenPlay\release ..\PACKAGE +xcopy /s ScreenPlaySDK\release ..\PACKAGE +xcopy /s ScreenPlayWidget\release ..\PACKAGE +xcopy /s ScreenPlayWindow\release ..\PACKAGE +xcopy /s ScreenPlayWorkshop\release ..\PACKAGE +cd .. + +windeployqt.exe --release --qmldir ScreenPlay/qml PACKAGE/ScreenPlay.exe + +cd PACKAGE + +del /f *.cpp +del /f *.h +del /f *.obj +del /f *.res -del /f package\PatchFileGenerator\*.cpp -del /f package\PatchFileGenerator\*.h -del /f package\PatchFileGenerator\*.obj -del /f package\PatchFileGenerator\*.res \ No newline at end of file From e1ded161f9868876d9bbacc4a3c0da4db1702cf4 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Sun, 11 Nov 2018 16:25:01 +0100 Subject: [PATCH 17/23] Add steam dll to install --- ScreenPlay/ScreenPlay.pro | 1 + 1 file changed, 1 insertion(+) diff --git a/ScreenPlay/ScreenPlay.pro b/ScreenPlay/ScreenPlay.pro index 188c5094..38c8c160 100644 --- a/ScreenPlay/ScreenPlay.pro +++ b/ScreenPlay/ScreenPlay.pro @@ -74,6 +74,7 @@ installOut.path = $${OUT_PWD}/ install_it.files += assets/templates/config.json \ assets/icons/favicon.ico \ steam_appid.txt \ + ThirdParty\steam\redistributable_bin\steam_api.dll \ ThirdParty/ffmpeg/Windows/avcodec-58.dll \ ThirdParty/ffmpeg/Windows/avdevice-58.dll \ ThirdParty/ffmpeg/Windows/avfilter-7.dll \ From 402494178fcee1c4d99dcd1c01d4a9e5eb996612 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Sun, 11 Nov 2018 16:28:42 +0100 Subject: [PATCH 18/23] Fix steam lib --- ScreenPlay/ScreenPlay.pro | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ScreenPlay/ScreenPlay.pro b/ScreenPlay/ScreenPlay.pro index 38c8c160..8dec62e0 100644 --- a/ScreenPlay/ScreenPlay.pro +++ b/ScreenPlay/ScreenPlay.pro @@ -74,7 +74,6 @@ installOut.path = $${OUT_PWD}/ install_it.files += assets/templates/config.json \ assets/icons/favicon.ico \ steam_appid.txt \ - ThirdParty\steam\redistributable_bin\steam_api.dll \ ThirdParty/ffmpeg/Windows/avcodec-58.dll \ ThirdParty/ffmpeg/Windows/avdevice-58.dll \ ThirdParty/ffmpeg/Windows/avfilter-7.dll \ @@ -116,6 +115,8 @@ release { win32 { win32: LIBS += -L$$PWD/ThirdParty/Steam/redistributable_bin/win64/ -lsteam_api64 DEPENDPATH += $$PWD/ThirdParty/Steam/redistributable_bin/win64 + + install_it.files += ThirdParty\steam\redistributable_bin\win64\steam_api64.dll } unix { @@ -126,6 +127,8 @@ unix { DEPENDPATH += $$PWD/ThirdParty/steam/lib/linux64s LIBS += -L$$PWD/ThirdParty/steam/lib/linux64/ -lsdkencryptedappticket + + install_it.files += ThirdParty\steam\redistributable_bin\linux64\libsteam_api.so } DISTFILES += \ From f72abd6c6831d1a9c7b347a5eed5bd3562bc4256 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Sun, 11 Nov 2018 16:31:17 +0100 Subject: [PATCH 19/23] Remove hardcoded OpenGL Add nicer message pattern --- ScreenPlay/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ScreenPlay/main.cpp b/ScreenPlay/main.cpp index 10aa12f3..29b514a2 100644 --- a/ScreenPlay/main.cpp +++ b/ScreenPlay/main.cpp @@ -45,10 +45,10 @@ int main(int argc, char* argv[]) { QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QGuiApplication::setAttribute(Qt::AA_UseDesktopOpenGL); QGuiApplication app(argc, argv); app.setQuitOnLastWindowClosed(false); + qSetMessagePattern("%{if-category}%{category}: %{endif}%{message}\n Loc: [%{file}:%{line}]"); QTranslator trsl; From 8f20f7d0c2a6e1e1503410157e76e47cc330ebe0 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Sun, 11 Nov 2018 16:41:55 +0100 Subject: [PATCH 20/23] Add OpenSSL libs --- scripts/package.bat | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/package.bat b/scripts/package.bat index 7a2d0c70..9f046747 100644 --- a/scripts/package.bat +++ b/scripts/package.bat @@ -17,6 +17,10 @@ xcopy /s ScreenPlayWidget\release ..\PACKAGE xcopy /s ScreenPlayWindow\release ..\PACKAGE xcopy /s ScreenPlayWorkshop\release ..\PACKAGE +xcopy C:\Qt\Tools\QtCreator\bin\libeay32.dll ..\PACKAGE +xcopy C:\Qt\Tools\QtCreator\bin\ssleay32.dll ..\PACKAGE + + cd .. windeployqt.exe --release --qmldir ScreenPlay/qml PACKAGE/ScreenPlay.exe From 806a118b9cb208aa79533403421ae74552eace3c Mon Sep 17 00:00:00 2001 From: kelteseth Date: Sun, 11 Nov 2018 16:52:34 +0100 Subject: [PATCH 21/23] Add webengine as dep to fix ci --- ScreenPlay/ScreenPlay.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ScreenPlay/ScreenPlay.pro b/ScreenPlay/ScreenPlay.pro index 8dec62e0..3118e52c 100644 --- a/ScreenPlay/ScreenPlay.pro +++ b/ScreenPlay/ScreenPlay.pro @@ -1,5 +1,5 @@ TEMPLATE = app -QT += qml quick widgets quickcontrols2 core +QT += qml quick widgets quickcontrols2 core webengine CONFIG += c++17 CONFIG += qtquickcompiler #DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT From bdb46cc13a0b84da721f3c9237127464546f573e Mon Sep 17 00:00:00 2001 From: kelteseth Date: Sun, 11 Nov 2018 17:47:49 +0100 Subject: [PATCH 22/23] Remove moc files --- scripts/package.bat | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/package.bat b/scripts/package.bat index 9f046747..ee47f3ff 100644 --- a/scripts/package.bat +++ b/scripts/package.bat @@ -28,6 +28,7 @@ windeployqt.exe --release --qmldir ScreenPlay/qml PACKAGE/ScreenPlay.exe cd PACKAGE del /f *.cpp +del /f *.moc del /f *.h del /f *.obj del /f *.res From 79303414787998cc6b537ed6eb79a8b4df7eb891 Mon Sep 17 00:00:00 2001 From: kelteseth Date: Sun, 11 Nov 2018 17:52:04 +0100 Subject: [PATCH 23/23] Add echo --- scripts/package.bat | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/package.bat b/scripts/package.bat index ee47f3ff..1d7ef32c 100644 --- a/scripts/package.bat +++ b/scripts/package.bat @@ -11,11 +11,16 @@ echo "Begin packaging" mkdir PACKAGE cd BUILD -xcopy /s ScreenPlay\release ..\PACKAGE -xcopy /s ScreenPlaySDK\release ..\PACKAGE -xcopy /s ScreenPlayWidget\release ..\PACKAGE -xcopy /s ScreenPlayWindow\release ..\PACKAGE -xcopy /s ScreenPlayWorkshop\release ..\PACKAGE +echo "Copy ScreenPlay" +xcopy /s /y ScreenPlay\release ..\PACKAGE +echo "Copy ScreenPlaySDK" +xcopy /s /y ScreenPlaySDK\release ..\PACKAGE +echo "Copy ScreenPlayWidget" +xcopy /s /y ScreenPlayWidget\release ..\PACKAGE +echo "Copy ScreenPlayWindow" +xcopy /s /y ScreenPlayWindow\release ..\PACKAGE +echo "Copy ScreenPlayWorkshop" +xcopy /s /y ScreenPlayWorkshop\release ..\PACKAGE xcopy C:\Qt\Tools\QtCreator\bin\libeay32.dll ..\PACKAGE xcopy C:\Qt\Tools\QtCreator\bin\ssleay32.dll ..\PACKAGE