1
0
mirror of https://gitlab.com/kelteseth/ScreenPlay.git synced 2024-09-15 06:52:34 +02:00

Add widget base path, qml and exe widget comparison

This commit is contained in:
kelteseth 2018-03-21 18:59:43 +01:00
parent 8ff938e145
commit d99cec2b3b
6 changed files with 65 additions and 10 deletions

View File

@ -3,6 +3,7 @@ SUBDIRS = \
ScreenPlay/ScreenPlay.pro \
ScreenPlaySDK/Screenplaysdk.pro \
ScreenPlayWindow/ScreenPlayWindow.pro \
ScreenPlayWidget/
ScreenPlayWidget/ScreenPlayWidget.pro
ScreenPlayWindow.depends = ScreenPlaySDK
ScreenPlayWidget.depends = ScreenPlaySDK

View File

@ -43,8 +43,8 @@
int main(int argc, char* argv[])
{
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication::setAttribute(Qt::AA_UseOpenGLES);
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication::setAttribute(Qt::AA_UseOpenGLES);
QGuiApplication app(argc, argv);
app.setQuitOnLastWindowClosed(false);
@ -105,7 +105,10 @@ int main(int argc, char* argv[])
#ifdef QT_DEBUG
if (SPWorkingDir.cdUp()) {
settings.setScreenPlayWindowPath(QUrl(SPWorkingDir.path() + "/ScreenPlayWindow/debug/ScreenPlayWindow.exe"));
settings.setScreenPlayWidgetPath(QUrl(SPWorkingDir.path() + "/ScreenPlayWidget/debug/ScreenPlayWidget.exe"));
}
// We need to detect the right base path so we can copy later the example projects
SPBaseDir.cdUp();
SPBaseDir.cdUp();
SPBaseDir.cd("ScreenPlay");
@ -126,9 +129,15 @@ int main(int argc, char* argv[])
// If started by QtCreator
SPWorkingDir.cd("release");
settings.setScreenPlayWindowPath(QUrl(SPWorkingDir.path() + "/ScreenPlayWindow.exe"));
SPWorkingDir.cdUp();
SPWorkingDir.cdUp();
SPWorkingDir.cd("ScreenPlayWidget");
SPWorkingDir.cd("release");
settings.setScreenPlayWidgetPath(QUrl(SPWorkingDir.path() + "/ScreenPlayWidget.exe"));
} else {
// If started by Steam
settings.setScreenPlayWindowPath(QUrl("ScreenPlayWindow.exe"));
settings.setScreenPlayWindowPath(QUrl("ScreenPlayWidget.exe"));
}
#endif

View File

@ -20,7 +20,7 @@ ProjectFile::ProjectFile(QJsonObject obj, QString folderName, QUrl absolutePath)
tmp = tmp.toLower();
if (tmp == "video") {
m_type = "video";
} else if (tmp == "widget") {
} else if (tmp == "qmlwidget" || tmp == "standalonewidget") {
m_type = "widget";
} else if (tmp == "qmlscene") {
m_type = "qmlScene";

View File

@ -1,13 +1,13 @@
#pragma once
#include <QCryptographicHash>
#include <QGuiApplication>
#include <QObject>
#include <QPoint>
#include <QProcess>
#include <QRandomGenerator>
#include <QSharedPointer>
#include <QVector>
#include <QGuiApplication>
#include "installedlistmodel.h"
#include "monitorlistmodel.h"
@ -53,7 +53,6 @@ public slots:
private:
QVector<QSharedPointer<ScreenPlayWallpaper>> m_screenPlayWallpaperList;
QVector<QSharedPointer<ScreenPlayWidget>> m_screenPlayWidgetList;
};
class ScreenPlayWallpaper : public QObject {
@ -86,7 +85,7 @@ public:
QStringList proArgs;
proArgs.append(QString::number(m_screenNumber.at(0)));
proArgs.append(m_projectPath);
m_appID = parent->generateID();
m_appID = parent->generateID();
proArgs.append(m_appID);
proArgs.append(parent->m_settings->decoder());
proArgs.append(QString::number(volume));
@ -155,7 +154,6 @@ public slots:
emit previewImageChanged(m_previewImage);
}
void setAppID(QString appID)
{
if (m_appID == appID)
@ -182,13 +180,29 @@ class ScreenPlayWidget : public QObject {
Q_PROPERTY(QString fullPath READ fullPath WRITE setFullPath NOTIFY fullPathChanged)
Q_PROPERTY(QString previewImage READ previewImage WRITE setPreviewImage NOTIFY previewImageChanged)
Q_PROPERTY(QPoint position READ position WRITE setPosition NOTIFY positionChanged)
Q_PROPERTY(QString appID READ appID WRITE setAppID NOTIFY appIDChanged)
public:
explicit ScreenPlayWidget(QString projectPath, QString previewImage, QString fullPath, ScreenPlay* parent)
ScreenPlayWidget(QString projectPath, QString previewImage, QString fullPath, ScreenPlay* parent)
{
m_projectPath = projectPath;
m_fullPath = fullPath;
m_previewImage = previewImage;
m_process = new QProcess(this);
m_process->setProgram(fullPath);
QStringList proArgs;
proArgs.append(m_projectPath);
m_appID = parent->generateID();
proArgs.append(m_appID);
m_process->setArguments(proArgs);
if (fullPath.endsWith(".exe")) {
m_process->setProgram(fullPath);
} else if (fullPath.endsWith(".qml")) {
m_process->setProgram(parent->m_settings->getScreenPlayWidgetPath().toString());
}
qDebug() << m_process->program();
m_process->start();
}
@ -212,6 +226,11 @@ public:
return m_fullPath;
}
QString appID() const
{
return m_appID;
}
signals:
void projectPathChanged(QString projectPath);
@ -222,6 +241,8 @@ signals:
void fullPathChanged(QString fullPath);
void appIDChanged(QString appID);
public slots:
void setProjectPath(QString projectPath)
@ -260,10 +281,20 @@ public slots:
emit fullPathChanged(m_fullPath);
}
void setAppID(QString appID)
{
if (m_appID == appID)
return;
m_appID = appID;
emit appIDChanged(m_appID);
}
private:
QString m_projectPath;
QString m_previewImage;
QPoint m_position;
QProcess* m_process;
QString m_fullPath;
QString m_appID;
};

View File

@ -222,6 +222,16 @@ void Settings::createDefaultConfig()
defaultSettings.close();
}
QUrl Settings::getScreenPlayWidgetPath() const
{
return m_screenPlayWidgetPath;
}
void Settings::setScreenPlayWidgetPath(const QUrl &screenPlayWidgetPath)
{
m_screenPlayWidgetPath = screenPlayWidgetPath;
}
QUrl Settings::getScreenPlayBasePath() const
{
return m_screenPlayBasePath;

View File

@ -121,6 +121,9 @@ public:
QUrl getScreenPlayBasePath() const;
void setScreenPlayBasePath(QUrl screenPlayBasePath);
QUrl getScreenPlayWidgetPath() const;
void setScreenPlayWidgetPath(const QUrl &screenPlayWidgetPath);
signals:
void autostartChanged(bool autostart);
void highPriorityStartChanged(bool highPriorityStart);
@ -299,6 +302,7 @@ private:
QUrl m_localStoragePath;
QUrl m_localSettingsPath;
QUrl m_screenPlayWindowPath;
QUrl m_screenPlayWidgetPath;
QUrl m_screenPlayBasePath;
bool m_hasWorkshopBannerSeen = false;