1
0
mirror of https://gitlab.com/kelteseth/ScreenPlay.git synced 2024-11-25 12:13:00 +01:00

Refactor to use Qt6 style cmake/qml plugins

This commit is contained in:
Elias Steurer 2021-10-15 15:06:05 +02:00
parent 68851bafea
commit feb9648684
37 changed files with 293 additions and 347 deletions

View File

@ -1,4 +0,0 @@
---
BasedOnStyle: WebKit
...

View File

@ -4,16 +4,8 @@ set(CMAKE_CXX_STANDARD 20)
set(CMAKE_AUTORCC ON) set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
find_package(QT NAMES Qt6 Qt5 COMPONENTS Core) set(SOURCES
find_package(OpenSSL REQUIRED) # cmake-format: sortable
find_package(benchmark CONFIG REQUIRED)
find_package(doctest CONFIG REQUIRED)
# CURL must be included before sentry because sentry needs the module and does not include it itself on macos...
find_package(CURL CONFIG REQUIRED)
find_package(sentry CONFIG REQUIRED)
set(src
app.cpp app.cpp
src/globalvariables.cpp src/globalvariables.cpp
src/createimportvideo.cpp src/createimportvideo.cpp
@ -31,7 +23,8 @@ set(src
src/create.cpp src/create.cpp
src/wizards.cpp) src/wizards.cpp)
set(headers set(HEADER
# cmake-format: sortable
app.h app.h
src/globalvariables.h src/globalvariables.h
src/createimportvideo.h src/createimportvideo.h
@ -51,28 +44,128 @@ set(headers
src/create.h src/create.h
src/wizards.h) src/wizards.h)
set(QML
# cmake-format: sortable
main.qml
qml/Create/Create.qml
qml/Create/Wizard.qml
qml/Create/StartInfo.qml
qml/Installed/Installed.qml
qml/Installed/ScreenPlayItem.qml
qml/Installed/ScreenPlayItemImage.qml
qml/Installed/Sidebar.qml
qml/Installed/InstalledWelcomeScreen.qml
qml/Community/Community.qml
qml/Community/XMLNewsfeed.qml
qml/Settings/SettingBool.qml
qml/Settings/Settings.qml
qml/Settings/SettingsButton.qml
qml/Settings/SettingsComboBox.qml
qml/Settings/SettingsExpander.qml
qml/Settings/SettingsHeader.qml
qml/Settings/SettingsHorizontalSeperator.qml
qml/Workshop/Workshop.qml
qml/Monitors/Monitors.qml
qml/Monitors/MonitorSelection.qml
qml/Monitors/MonitorSelectionItem.qml
qml/Monitors/MonitorsProjectSettingItem.qml
qml/Navigation/Navigation.qml
qml/Navigation/NavigationItem.qml
qml/Navigation/NavigationWallpaperConfiguration.qml
qml/Monitors/DefaultVideoControls.qml
qml/Common/TagSelector.qml
qml/Common/Tag.qml
qml/Common/ImageSelector.qml
qml/Common/Slider.qml
qml/Common/RippleEffect.qml
qml/Common/Shake.qml
qml/Common/Grow.qml
qml/Common/GrowIconLink.qml
qml/Common/CloseIcon.qml
qml/Common/Headline.qml
qml/Settings/SettingsPage.qml
qml/Community/CommunityNavItem.qml
qml/Workshop/ScreenPlayItem.qml
qml/Workshop/ScreenPlayItemImage.qml
qml/Workshop/Background.qml
qml/Workshop/WorkshopInstalled.qml
qml/Workshop/WorkshopItem.qml
qml/Workshop/Sidebar.qml
qml/Workshop/Navigation.qml
qml/Workshop/PopupOffline.qml
qml/Workshop/upload/PopupSteamWorkshopAgreement.qml
qml/Workshop/upload/UploadProject.qml
qml/Workshop/upload/UploadProjectBigItem.qml
qml/Workshop/upload/UploadProjectItem.qml
qml/Monitors/SaveNotification.qml
qml/Common/TrayIcon.qml
qml/Installed/Navigation.qml
qml/Common/Search.qml
qml/Common/MouseHoverBlocker.qml
qml/Create/Wizards/HTMLWallpaper.qml
qml/Create/Wizards/HTMLWidget.qml
qml/Create/Wizards/QMLWidget.qml
qml/Create/Wizards/QMLWallpaper.qml
qml/Create/Wizards/ImportVideoAndConvert/CreateWallpaper.qml
qml/Create/Wizards/ImportVideoAndConvert/CreateWallpaperInit.qml
qml/Create/Wizards/ImportVideoAndConvert/CreateWallpaperResult.qml
qml/Create/Wizards/ImportVideoAndConvert/CreateWallpaperVideoImportConvert.qml
qml/Create/Sidebar.qml
qml/Create/Wizards/ImportWebm/ImportWebm.qml
qml/Create/Wizards/ImportWebm/ImportWebmConvert.qml
qml/Create/Wizards/ImportWebm/ImportWebmInit.qml
qml/Common/Dialogs/MonitorConfiguration.qml
qml/Common/Dialogs/SteamNotAvailable.qml
qml/Create/Wizards/WizardPage.qml
qml/Create/Wizards/GifWallpaper.qml
qml/Common/TextField.qml
qml/Common/HeadlineSection.qml
qml/Create/Wizards/WebsiteWallpaper.qml
qml/Common/FileSelector.qml
qml/Create/WizardsFiles/QMLWidgetMain.qml
qml/Create/WizardsFiles/QMLWallpaperMain.qml
qml/Common/LicenseSelector.qml
qml/Common/Util.js
qml/Common/Dialogs/CriticalError.qml
qml/Common/ColorPicker.qml
qml/Create/StartInfoLinkImage.qml
qml/Workshop/SteamProfile.qml
qml/Workshop/SteamWorkshop.qml
qml/Workshop/Forum.qml
qml/Workshop/SteamWorkshopStartPage.qml
qml/Create/Wizards/Importh264/Importh264.qml
qml/Create/Wizards/Importh264/Importh264Convert.qml
qml/Create/Wizards/Importh264/Importh264Init.qml)
list( list(
APPEND APPEND
L10N_LIST L10N_LIST
# cmake-format: sortable # cmake-format: sortable
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_.ts
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_tr_TR.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_tr_TR.ts
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_it_IT.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_it_IT.ts
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_nl_NL.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_nl_NL.ts
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_de_DE.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_de_DE.ts
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_zh_CN.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_zh_CN.ts
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_pt_BR.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_pt_BR.ts
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_es_ES.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_es_ES.ts
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_fr_FR.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_fr_FR.ts
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_ko_KR.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_ko_KR.ts
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_ru_RU.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_ru_RU.ts
${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_vi_VN.ts) ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_vi_VN.ts)
include(QtUpdateTranslations) include(QtUpdateTranslations)
qt_update_translations("${CMAKE_CURRENT_SOURCE_DIR}/qml" "${L10N_LIST}") qt_update_translations("${CMAKE_CURRENT_SOURCE_DIR}/qml" "${L10N_LIST}")
# Needed on macos # Needed on macos
find_package(Threads REQUIRED) find_package(Threads REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(benchmark CONFIG REQUIRED)
find_package(doctest CONFIG REQUIRED)
# CURL must be included before sentry because sentry needs the module and does not include it itself on macos...
find_package(CURL CONFIG REQUIRED)
find_package(sentry CONFIG REQUIRED)
find_package( find_package(
Qt6 Qt6
@ -87,10 +180,10 @@ find_package(
WebEngineCore WebEngineCore
Test) Test)
qt_add_resources(RESOURCES Resources.qrc)
qt_add_big_resources(FONTS fonts.qrc)
qt_add_resources(resources ScreenPlayAssets.qrc ScreenPlayQML.qrc) add_library(ScreenPlayLib ${SOURCES} ${HEADER} ${RESOURCES} ${FONTS})
add_library(ScreenPlayLib ${src} ${headers} ${resources} ${resources} ${fonts})
target_include_directories(ScreenPlayLib PUBLIC ./ src/) target_include_directories(ScreenPlayLib PUBLIC ./ src/)
@ -117,12 +210,20 @@ if(${TESTS_ENABLED})
target_link_libraries(tst_ScreenPlay PRIVATE ScreenPlayLib Qt6::Test) target_link_libraries(tst_ScreenPlay PRIVATE ScreenPlayLib Qt6::Test)
endif() endif()
add_executable(${PROJECT_NAME} main.cpp) qt_add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE ScreenPlayLib) target_link_libraries(${PROJECT_NAME} PRIVATE ScreenPlayLib)
qt_add_translation(qmFiles ${l10n}) target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
qt_add_big_resources(fonts fonts.qrc) qt_add_translation(qmFiles ${l10n})
qt_add_qml_module(
${PROJECT_NAME}
URI
${PROJECT_NAME}
VERSION
1.0
QML_FILES
${QML})
if(WIN32) if(WIN32)
# Icon # Icon

View File

@ -148,5 +148,7 @@
<file>translations/ScreenPlay_nl_NL.ts</file> <file>translations/ScreenPlay_nl_NL.ts</file>
<file>translations/ScreenPlay_it_IT.qm</file> <file>translations/ScreenPlay_it_IT.qm</file>
<file>translations/ScreenPlay_it_IT.ts</file> <file>translations/ScreenPlay_it_IT.ts</file>
<file>qml/Create/WizardsFiles/HTMLWallpaperMain.html</file>
<file>qml/Create/WizardsFiles/HTMLWidgetMain.html</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -1,101 +0,0 @@
<RCC>
<qresource prefix="/">
<file>main.qml</file>
<file>qml/Create/Create.qml</file>
<file>qml/Create/Wizard.qml</file>
<file>qml/Create/StartInfo.qml</file>
<file>qml/Installed/Installed.qml</file>
<file>qml/Installed/ScreenPlayItem.qml</file>
<file>qml/Installed/ScreenPlayItemImage.qml</file>
<file>qml/Installed/Sidebar.qml</file>
<file>qml/Installed/InstalledWelcomeScreen.qml</file>
<file>qml/Community/Community.qml</file>
<file>qml/Community/XMLNewsfeed.qml</file>
<file>qml/Settings/SettingBool.qml</file>
<file>qml/Settings/Settings.qml</file>
<file>qml/Settings/SettingsButton.qml</file>
<file>qml/Settings/SettingsComboBox.qml</file>
<file>qml/Settings/SettingsExpander.qml</file>
<file>qml/Settings/SettingsHeader.qml</file>
<file>qml/Settings/SettingsHorizontalSeperator.qml</file>
<file>qml/Workshop/Workshop.qml</file>
<file>qml/Monitors/Monitors.qml</file>
<file>qml/Monitors/MonitorSelection.qml</file>
<file>qml/Monitors/MonitorSelectionItem.qml</file>
<file>qml/Monitors/MonitorsProjectSettingItem.qml</file>
<file>qml/Navigation/Navigation.qml</file>
<file>qml/Navigation/NavigationItem.qml</file>
<file>qml/Navigation/NavigationWallpaperConfiguration.qml</file>
<file>qml/Monitors/DefaultVideoControls.qml</file>
<file>qml/Common/TagSelector.qml</file>
<file>qml/Common/Tag.qml</file>
<file>qml/Common/ImageSelector.qml</file>
<file>qml/Common/Slider.qml</file>
<file>qml/Common/RippleEffect.qml</file>
<file>qml/Common/Shake.qml</file>
<file>qml/Common/Grow.qml</file>
<file>qml/Common/GrowIconLink.qml</file>
<file>qml/Common/CloseIcon.qml</file>
<file>qml/Common/Headline.qml</file>
<file>qml/Settings/SettingsPage.qml</file>
<file>qml/Community/CommunityNavItem.qml</file>
<file>assets/icons/icon_supervisor_account.svg</file>
<file>assets/icons/icon_new_releases.svg</file>
<file>assets/icons/icon_report_problem.svg</file>
<file>assets/icons/icon_help_center.svg</file>
<file>assets/icons/icon_forum.svg</file>
<file>qml/Workshop/ScreenPlayItem.qml</file>
<file>qml/Workshop/ScreenPlayItemImage.qml</file>
<file>qml/Workshop/Background.qml</file>
<file>qml/Workshop/WorkshopInstalled.qml</file>
<file>qml/Workshop/WorkshopItem.qml</file>
<file>qml/Workshop/Sidebar.qml</file>
<file>qml/Workshop/Navigation.qml</file>
<file>qml/Workshop/PopupOffline.qml</file>
<file>qml/Workshop/upload/PopupSteamWorkshopAgreement.qml</file>
<file>qml/Workshop/upload/UploadProject.qml</file>
<file>qml/Workshop/upload/UploadProjectBigItem.qml</file>
<file>qml/Workshop/upload/UploadProjectItem.qml</file>
<file>qml/Monitors/SaveNotification.qml</file>
<file>qml/Common/TrayIcon.qml</file>
<file>qml/Installed/Navigation.qml</file>
<file>qml/Common/Search.qml</file>
<file>qml/Common/MouseHoverBlocker.qml</file>
<file>qml/Create/Wizards/HTMLWallpaper.qml</file>
<file>qml/Create/Wizards/HTMLWidget.qml</file>
<file>qml/Create/Wizards/QMLWidget.qml</file>
<file>qml/Create/Wizards/QMLWallpaper.qml</file>
<file>qml/Create/Wizards/ImportVideoAndConvert/CreateWallpaper.qml</file>
<file>qml/Create/Wizards/ImportVideoAndConvert/CreateWallpaperInit.qml</file>
<file>qml/Create/Wizards/ImportVideoAndConvert/CreateWallpaperResult.qml</file>
<file>qml/Create/Wizards/ImportVideoAndConvert/CreateWallpaperVideoImportConvert.qml</file>
<file>qml/Create/Sidebar.qml</file>
<file>qml/Create/Wizards/ImportWebm/ImportWebm.qml</file>
<file>qml/Create/Wizards/ImportWebm/ImportWebmConvert.qml</file>
<file>qml/Create/Wizards/ImportWebm/ImportWebmInit.qml</file>
<file>qml/Common/Dialogs/MonitorConfiguration.qml</file>
<file>qml/Common/Dialogs/SteamNotAvailable.qml</file>
<file>qml/Create/Wizards/WizardPage.qml</file>
<file>qml/Create/Wizards/GifWallpaper.qml</file>
<file>qml/Common/TextField.qml</file>
<file>qml/Common/HeadlineSection.qml</file>
<file>qml/Create/Wizards/WebsiteWallpaper.qml</file>
<file>qml/Common/FileSelector.qml</file>
<file>qml/Create/WizardsFiles/QMLWidgetMain.qml</file>
<file>qml/Create/WizardsFiles/QMLWallpaperMain.qml</file>
<file>qml/Create/WizardsFiles/HTMLWallpaperMain.html</file>
<file>qml/Create/WizardsFiles/HTMLWidgetMain.html</file>
<file>qml/Common/LicenseSelector.qml</file>
<file>qml/Common/Util.js</file>
<file>qml/Common/Dialogs/CriticalError.qml</file>
<file>qml/Common/ColorPicker.qml</file>
<file>qml/Create/StartInfoLinkImage.qml</file>
<file>qml/Workshop/SteamProfile.qml</file>
<file>qml/Workshop/SteamWorkshop.qml</file>
<file>qml/Workshop/Forum.qml</file>
<file>qml/Workshop/SteamWorkshopStartPage.qml</file>
<file>qml/Create/Wizards/Importh264/Importh264.qml</file>
<file>qml/Create/Wizards/Importh264/Importh264Convert.qml</file>
<file>qml/Create/Wizards/Importh264/Importh264Init.qml</file>
</qresource>
</RCC>

View File

@ -202,7 +202,7 @@ void App::init()
// Needed for macos .app files // Needed for macos .app files
m_mainWindowEngine->addPluginPath(QGuiApplication::instance()->applicationDirPath()); m_mainWindowEngine->addPluginPath(QGuiApplication::instance()->applicationDirPath());
#endif #endif
m_mainWindowEngine->load(QUrl(QStringLiteral("qrc:/main.qml"))); m_mainWindowEngine->load(QUrl(QStringLiteral("qrc:/ScreenPlay/main.qml")));
// Must be called last to display a error message on startup by the qml engine // Must be called last to display a error message on startup by the qml engine
m_screenPlayManager->init(m_globalVariables, m_monitorListModel, m_settings); m_screenPlayManager->init(m_globalVariables, m_monitorListModel, m_settings);

View File

@ -45,8 +45,7 @@
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
Q_INIT_RESOURCE(ScreenPlayQML); Q_INIT_RESOURCE(Resources);
Q_INIT_RESOURCE(ScreenPlayAssets);
QtWebEngineQuick::initialize(); QtWebEngineQuick::initialize();
QApplication::setAttribute(Qt::AA_ShareOpenGLContexts); QApplication::setAttribute(Qt::AA_ShareOpenGLContexts);

View File

@ -38,12 +38,12 @@ ApplicationWindow {
} }
if (name === "Installed") { if (name === "Installed") {
stackView.replace("qrc:/qml/" + name + "/" + name + ".qml", { stackView.replace("qrc:/ScreenPlay/qml/" + name + "/" + name + ".qml", {
"sidebar": sidebar "sidebar": sidebar
}) })
return return
} }
stackView.replace("qrc:/qml/" + name + "/" + name + ".qml") stackView.replace("qrc:/ScreenPlay/qml/" + name + "/" + name + ".qml")
sidebar.state = "inactive" sidebar.state = "inactive"
} }

View File

@ -14,7 +14,7 @@ Item {
Component.onCompleted: { Component.onCompleted: {
wizardContentWrapper.state = "in"; wizardContentWrapper.state = "in";
stackView.push("qrc:/qml/Create/StartInfo.qml"); stackView.push("qrc:/ScreenPlay/qml/Create/StartInfo.qml");
} }
Sidebar { Sidebar {

View File

@ -43,7 +43,7 @@ Rectangle {
function onWizardExited() { function onWizardExited() {
root.expanded = true root.expanded = true
stackView.clear(StackView.PushTransition) stackView.clear(StackView.PushTransition)
stackView.push("qrc:/qml/Create/StartInfo.qml") stackView.push("qrc:/ScreenPlay/qml/Create/StartInfo.qml")
listView.currentIndex = 0 listView.currentIndex = 0
ScreenPlay.util.setNavigationActive(true) ScreenPlay.util.setNavigationActive(true)
} }
@ -54,70 +54,70 @@ Rectangle {
model: ListModel { model: ListModel {
ListElement { ListElement {
headline: qsTr("Tools Overview") headline: qsTr("Tools Overview")
source: "qrc:/qml/Create/StartInfo.qml" source: "qrc:/ScreenPlay/qml/Create/StartInfo.qml"
category: "Home" category: "Home"
objectName: "" objectName: ""
} }
ListElement { ListElement {
headline: qsTr("Video Import h264 (.mp4)") headline: qsTr("Video Import h264 (.mp4)")
source: "qrc:/qml/Create/Wizards/Importh264/Importh264.qml" source: "qrc:/ScreenPlay/qml/Create/Wizards/Importh264/Importh264.qml"
category: "Video Wallpaper" category: "Video Wallpaper"
objectName: "" objectName: ""
} }
ListElement { ListElement {
headline: qsTr("Video Import VP8 & VP9 (.webm)") headline: qsTr("Video Import VP8 & VP9 (.webm)")
source: "qrc:/qml/Create/Wizards/ImportWebm/ImportWebm.qml" source: "qrc:/ScreenPlay/qml/Create/Wizards/ImportWebm/ImportWebm.qml"
category: "Video Wallpaper" category: "Video Wallpaper"
objectName: "" objectName: ""
} }
ListElement { ListElement {
headline: qsTr("Video import (all types)") headline: qsTr("Video import (all types)")
source: "qrc:/qml/Create/Wizards/ImportVideoAndConvert/CreateWallpaper.qml" source: "qrc:/ScreenPlay/qml/Create/Wizards/ImportVideoAndConvert/CreateWallpaper.qml"
category: "Video Wallpaper" category: "Video Wallpaper"
objectName: "videoImportConvert" objectName: "videoImportConvert"
} }
ListElement { ListElement {
headline: qsTr("GIF Wallpaper") headline: qsTr("GIF Wallpaper")
source: "qrc:/qml/Create/Wizards/GifWallpaper.qml" source: "qrc:/ScreenPlay/qml/Create/Wizards/GifWallpaper.qml"
category: "Video Wallpaper" category: "Video Wallpaper"
objectName: "" objectName: ""
} }
ListElement { ListElement {
headline: qsTr("QML Wallpaper") headline: qsTr("QML Wallpaper")
source: "qrc:/qml/Create/Wizards/QMLWallpaper.qml" source: "qrc:/ScreenPlay/qml/Create/Wizards/QMLWallpaper.qml"
category: "Code Wallpaper" category: "Code Wallpaper"
objectName: "" objectName: ""
} }
ListElement { ListElement {
headline: qsTr("HTML5 Wallpaper") headline: qsTr("HTML5 Wallpaper")
source: "qrc:/qml/Create/Wizards/HTMLWallpaper.qml" source: "qrc:/ScreenPlay/qml/Create/Wizards/HTMLWallpaper.qml"
category: "Code Wallpaper" category: "Code Wallpaper"
objectName: "" objectName: ""
} }
ListElement { ListElement {
headline: qsTr("Website Wallpaper") headline: qsTr("Website Wallpaper")
source: "qrc:/qml/Create/Wizards/WebsiteWallpaper.qml" source: "qrc:/ScreenPlay/qml/Create/Wizards/WebsiteWallpaper.qml"
category: "Code Wallpaper" category: "Code Wallpaper"
objectName: "" objectName: ""
} }
ListElement { ListElement {
headline: qsTr("QML Widget") headline: qsTr("QML Widget")
source: "qrc:/qml/Create/Wizards/QMLWidget.qml" source: "qrc:/ScreenPlay/qml/Create/Wizards/QMLWidget.qml"
category: "Code Widgets" category: "Code Widgets"
objectName: "" objectName: ""
} }
ListElement { ListElement {
headline: qsTr("HTML Widget") headline: qsTr("HTML Widget")
source: "qrc:/qml/Create/Wizards/HTMLWidget.qml" source: "qrc:/ScreenPlay/qml/Create/Wizards/HTMLWidget.qml"
category: "Code Widgets" category: "Code Widgets"
objectName: "" objectName: ""
} }

View File

@ -72,7 +72,7 @@ Item {
active: false active: false
z: 99 z: 99
anchors.fill: parent anchors.fill: parent
source: "qrc:/qml/Installed/InstalledWelcomeScreen.qml" source: "qrc:/ScreenPlay/qml/Installed/InstalledWelcomeScreen.qml"
} }
Connections { Connections {

View File

@ -14,7 +14,7 @@ Item {
id: screenPlayWorkshop id: screenPlayWorkshop
Component.onCompleted: { Component.onCompleted: {
if (screenPlayWorkshop.init()) { if (screenPlayWorkshop.init()) {
stackView.push("qrc:/qml/Workshop/SteamWorkshopStartPage.qml", { stackView.push("qrc:/ScreenPlay/qml/Workshop/SteamWorkshopStartPage.qml", {
"stackView": stackView, "stackView": stackView,
"screenPlayWorkshop": screenPlayWorkshop, "screenPlayWorkshop": screenPlayWorkshop,
"steamWorkshop": screenPlayWorkshop.steamWorkshop, "steamWorkshop": screenPlayWorkshop.steamWorkshop,

View File

@ -273,7 +273,7 @@ Item {
text: qsTr("Profile") text: qsTr("Profile")
onClicked: { onClicked: {
stackView.push( stackView.push(
"qrc:/qml/Workshop/SteamProfile.qml", { "qrc:/ScreenPlay/qml/Workshop/SteamProfile.qml", {
"screenPlayWorkshop": root.screenPlayWorkshop, "screenPlayWorkshop": root.screenPlayWorkshop,
"steamWorkshop": root.steamWorkshop "steamWorkshop": root.steamWorkshop
}) })
@ -292,7 +292,7 @@ Item {
text: qsTr("Upload") text: qsTr("Upload")
onClicked: { onClicked: {
stackView.push( stackView.push(
"qrc:/qml/Workshop/upload/UploadProject.qml", { "qrc:/ScreenPlay/qml/Workshop/upload/UploadProject.qml", {
"screenPlayWorkshop": root.screenPlayWorkshop, "screenPlayWorkshop": root.screenPlayWorkshop,
"steamWorkshop": root.steamWorkshop "steamWorkshop": root.steamWorkshop
}) })

View File

@ -11,9 +11,9 @@ Item {
Component.onCompleted: { Component.onCompleted: {
if (ScreenPlay.settings.steamVersion) { if (ScreenPlay.settings.steamVersion) {
workshopLoader.setSource("qrc:/qml/Workshop/SteamWorkshop.qml") workshopLoader.setSource("qrc:/ScreenPlay/qml/Workshop/SteamWorkshop.qml")
} else { } else {
workshopLoader.setSource("qrc:/qml/Workshop/Forum.qml") workshopLoader.setSource("qrc:/ScreenPlay/qml/Workshop/Forum.qml")
} }
} }

View File

@ -35,7 +35,7 @@ Item {
active: false active: false
z: 99 z: 99
anchors.fill: parent anchors.fill: parent
source: "qrc:/qml/Installed/InstalledUserHelper.qml" source: "qrc:/ScreenPlay/qml/Installed/InstalledUserHelper.qml"
} }
transitions: [ transitions: [

View File

@ -9,11 +9,13 @@ find_package(
COMPONENTS Quick Network Core COMPONENTS Quick Network Core
REQUIRED) REQUIRED)
set(src src/screenplay-sdk_plugin.cpp src/screenplaysdk.cpp) set(SOURCES # cmake-format: sortable
src/screenplay-sdk_plugin.cpp src/screenplaysdk.cpp)
set(headers inc/screenplay-sdk_plugin.h inc/screenplaysdk.h) set(HEADER # cmake-format: sortable
inc/screenplay-sdk_plugin.h inc/screenplaysdk.h)
add_library(${PROJECT_NAME} ${src} ${headers}) add_library(${PROJECT_NAME} ${SOURCES} ${HEADER})
target_include_directories(${PROJECT_NAME} PUBLIC inc) target_include_directories(${PROJECT_NAME} PUBLIC inc)

View File

@ -1,2 +0,0 @@
module ScreenPlay.screenplaysdk
plugin ScreenPlaySDK

View File

@ -9,48 +9,27 @@ find_package(
COMPONENTS Quick Core COMPONENTS Quick Core
REQUIRED) REQUIRED)
set(src screenplayshader_plugin.cpp shaderlibrary.cpp) set(SOURCES # cmake-format: sortable
screenplayshader_plugin.cpp shaderlibrary.cpp)
set(headers screenplayshader_plugin.h shaderlibrary.h) set(HEADER # cmake-format: sortable
screenplayshader_plugin.h shaderlibrary.h)
set(shader shader.qrc) qt_add_resources(RESOURCES Resources.qrc)
add_library(${PROJECT_NAME} SHARED ${src} ${headers} ${shader}) add_library(${PROJECT_NAME} SHARED ${SOURCES} ${HEADER} ${RESOURCES})
target_include_directories(${PROJECT_NAME} PUBLIC inc) qt_add_qml_module(
${PROJECT_NAME}
URI
${PROJECT_NAME}
VERSION
1.0
QML_FILES
ShadertoyShader.qml)
# QML module deployment target_include_directories(${PROJECT_NAME} PRIVATE inc)
set(URI "ScreenPlay/Shader")
string(REPLACE "." "/" TARGETPATH ${URI})
if(NOT DEFINED QT_QMAKE_EXECUTABLE)
get_target_property(QT_QMAKE_EXECUTABLE Qt6::qmake IMPORTED_LOCATION)
if(NOT QT_QMAKE_EXECUTABLE)
message(FATAL_ERROR "Cannot find qmake")
endif()
endif()
execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_QML OUTPUT_VARIABLE QT_INSTALL_QML_RAW) target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
string(STRIP ${QT_INSTALL_QML_RAW} QT_INSTALL_QML)
set(DESTDIR "${QT_INSTALL_QML}/${TARGETPATH}")
message("DESTDIR ${DESTDIR}")
file(MAKE_DIRECTORY ${DESTDIR})
configure_file(qmldir ${DESTDIR} COPYONLY)
if(APPLE)
add_custom_command(
TARGET ${PROJECT_NAME}
POST_BUILD
COMMENT "Copying into ScreenPlay.app bundle"
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/bin/$<TARGET_FILE_NAME:${PROJECT_NAME}>
${CMAKE_BINARY_DIR}/bin/ScreenPlay.app/Contents/MacOS/$<TARGET_FILE_NAME:${PROJECT_NAME}>)
else()
# Copies ScreenPlayShader.* into qt qml plugins folder
add_custom_command(
TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:ScreenPlayShader> ${DESTDIR}/$<TARGET_FILE_NAME:ScreenPlayShader>)
endif()
target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Quick Qt6::Gui) target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Quick Qt6::Gui)

View File

@ -1,2 +0,0 @@
module ScreenPlay.Shader
plugin ScreenPlayShader

View File

@ -11,7 +11,8 @@ find_package(
COMPONENTS Quick Core COMPONENTS Quick Core
REQUIRED) REQUIRED)
set(src set(SOURCES
# cmake-format: sortable
screenplaysysinfo_plugin.cpp screenplaysysinfo_plugin.cpp
sysinfo.cpp sysinfo.cpp
cpu.cpp cpu.cpp
@ -20,7 +21,8 @@ set(src
uptime.cpp uptime.cpp
gpu.cpp) gpu.cpp)
set(headers set(HEADER
# cmake-format: sortable
screenplaysysinfo_plugin.h screenplaysysinfo_plugin.h
sysinfo.h sysinfo.h
cpu.h cpu.h
@ -30,31 +32,10 @@ set(headers
uptime.h uptime.h
gpu.h) gpu.h)
add_library(${PROJECT_NAME} SHARED ${src} ${headers}) add_library(${PROJECT_NAME} SHARED ${SOURCES} ${HEADER})
# QML module deployment qt_add_qml_module(${PROJECT_NAME} URI ${PROJECT_NAME} VERSION 1.0)
set(URI "ScreenPlay/Sysinfo")
string(REPLACE "." "/" TARGETPATH ${URI})
if(NOT DEFINED QT_QMAKE_EXECUTABLE)
get_target_property(QT_QMAKE_EXECUTABLE Qt6::qmake IMPORTED_LOCATION)
if(NOT QT_QMAKE_EXECUTABLE)
message(FATAL_ERROR "Cannot find qmake")
endif()
endif()
execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_QML OUTPUT_VARIABLE QT_INSTALL_QML_RAW) target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
string(STRIP ${QT_INSTALL_QML_RAW} QT_INSTALL_QML)
set(DESTDIR "${QT_INSTALL_QML}/${TARGETPATH}")
message("DESTDIR ${DESTDIR}")
file(MAKE_DIRECTORY ${DESTDIR})
configure_file(qmldir ${DESTDIR} COPYONLY)
# Copies ScreenPlaySysInfo.* into qt qml plugins folder
add_custom_command(
TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:ScreenPlaySysInfo> ${DESTDIR}/$<TARGET_FILE_NAME:ScreenPlaySysInfo>)
target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Quick infoware) target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Quick infoware)

View File

@ -1,2 +0,0 @@
module ScreenPlay.Sysinfo
plugin ScreenPlaySysInfo

View File

@ -9,13 +9,17 @@ find_package(
COMPONENTS Core COMPONENTS Core
REQUIRED) REQUIRED)
set(SOURCES src/util.cpp src/contenttypes.cpp) set(SOURCES # cmake-format: sortable
src/util.cpp src/contenttypes.cpp)
set(HEADER inc/public/ScreenPlayUtil/util.h inc/public/ScreenPlayUtil/contenttypes.h inc/public/ScreenPlayUtil/projectfile.h) set(HEADER # cmake-format: sortable
inc/public/ScreenPlayUtil/util.h inc/public/ScreenPlayUtil/contenttypes.h inc/public/ScreenPlayUtil/projectfile.h)
add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADER}) add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADER})
target_include_directories( target_include_directories(
${PROJECT_NAME} ${PROJECT_NAME}
PUBLIC inc/public/ PUBLIC inc/public/
PRIVATE src/) PRIVATE src/)
target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core) target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core)

View File

@ -1,5 +0,0 @@
#include "util.h"
Util::Util()
{
}

View File

@ -1,9 +0,0 @@
#ifndef UTIL_H
#define UTIL_H
class Util {
public:
Util();
};
#endif // UTIL_H

View File

@ -4,8 +4,6 @@ set(CMAKE_CXX_STANDARD 20)
set(CMAKE_AUTORCC ON) set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
find_package(QT NAMES Qt6 COMPONENTS Core)
find_package( find_package(
Qt6 Qt6
COMPONENTS Core COMPONENTS Core
@ -21,30 +19,46 @@ find_package(
Positioning) Positioning)
if(WIN32) if(WIN32)
set(src_plattform src/windowsdesktopproperties.cpp src/winwindow.cpp) set(SOURCES # cmake-format: sortable
set(headers_plattform src/windowsdesktopproperties.h src/winwindow.h) src/windowsdesktopproperties.cpp src/winwindow.cpp)
set(HEADER # cmake-format: sortable
src/windowsdesktopproperties.h src/winwindow.h)
elseif(APPLE) elseif(APPLE)
set(src_plattform src/macintegration.cpp src/macwindow.cpp) set(SOURCES # cmake-format: sortable
set(headers_plattform src/macintegration.h src/macbridge.h src/macwindow.h src/MacBridge.mm) src/macintegration.cpp src/macwindow.cpp)
set(HEADER # cmake-format: sortable
src/macintegration.h src/macbridge.h src/macwindow.h src/MacBridge.mm)
elseif(UNIX) elseif(UNIX)
set(src_plattform main.cpp src/linuxwindow.cpp) set(SOURCES # cmake-format: sortable
set(headers_plattform src/linuxwindow.h) src/linuxwindow.cpp)
set(HEADER # cmake-format: sortable
src/linuxwindow.h)
endif() endif()
set(src main.cpp src/basewindow.cpp) set(SOURCES ${SOURCES} main.cpp src/basewindow.cpp)
set(headers src/basewindow.h) set(HEADER ${HEADER} src/basewindow.h)
if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") set(QML # cmake-format: sortable
qt6_add_resources(resources SPWResources.qrc) qml/GifWallpaper.qml qml/Test.qml qml/Wallpaper.qml qml/WebsiteWallpaper.qml qml/WebView.qml qml/MultimediaView.qml)
else()
qt6_add_resources(resources SPWResources.qrc)
endif()
add_executable(${PROJECT_NAME} ${src} ${headers} ${src_plattform} ${headers_plattform} ${resources}) qt_add_resources(RESOURCES Resources.qrc)
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADER} ${RESOURCES})
qt_add_qml_module(
${PROJECT_NAME}
URI
${PROJECT_NAME}
VERSION
1.0
QML_FILES
${QML})
target_link_libraries( target_link_libraries(
${PROJECT_NAME} ${PROJECT_NAME}
PRIVATE Qt6::Quick PRIVATE ScreenPlaySDK
ScreenPlayUtil
Qt6::Quick
Qt6::Gui Qt6::Gui
Qt6::Widgets Qt6::Widgets
Qt6::Core Qt6::Core
@ -54,28 +68,14 @@ target_link_libraries(
Qt6::WebEngineCore Qt6::WebEngineCore
Qt6::WebEngineQuick) Qt6::WebEngineQuick)
if(WIN32)
# Disable console window on Windows
# https://stackoverflow.com/questions/8249028/how-do-i-keep-my-qt-c-program-from-opening-a-console-in-windows
set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE true)
target_link_libraries(${PROJECT_NAME} PRIVATE shcore.lib)
endif()
if(APPLE) if(APPLE)
set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE TRUE MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist) set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE TRUE MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
target_link_libraries(${PROJECT_NAME} PRIVATE "-framework Cocoa") target_link_libraries(${PROJECT_NAME} PRIVATE "-framework Cocoa")
endif() endif()
target_link_libraries(${PROJECT_NAME} PRIVATE ScreenPlaySDK ScreenPlayUtil)
if(WIN32) if(WIN32)
# Disable console window on Windows # Disable console window on Windows
# https://stackoverflow.com/questions/8249028/how-do-i-keep-my-qt-c-program-from-opening-a-console-in-windows # https://stackoverflow.com/questions/8249028/how-do-i-keep-my-qt-c-program-from-opening-a-console-in-windows
set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE true) set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE true)
target_link_libraries(${PROJECT_NAME} PRIVATE shcore.lib) target_link_libraries(${PROJECT_NAME} PRIVATE shcore.lib)
endif() endif()
if(APPLE)
set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE TRUE MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist)
target_link_libraries(${PROJECT_NAME} PRIVATE "-framework Cocoa")
endif()

View File

@ -0,0 +1,7 @@
<RCC>
<qresource prefix="/">
<file>dot.png</file>
<file>qtquickcontrols2.conf</file>
<file>index.html</file>
</qresource>
</RCC>

View File

@ -1,13 +0,0 @@
<RCC>
<qresource prefix="/">
<file>dot.png</file>
<file>qtquickcontrols2.conf</file>
<file>index.html</file>
<file>qml/GifWallpaper.qml</file>
<file>qml/Test.qml</file>
<file>qml/Wallpaper.qml</file>
<file>qml/WebsiteWallpaper.qml</file>
<file>qml/WebView.qml</file>
<file>qml/MultimediaView.qml</file>
</qresource>
</RCC>

View File

@ -12,11 +12,11 @@ Rectangle {
function init() { function init() {
switch (Wallpaper.type) { switch (Wallpaper.type) {
case InstalledType.VideoWallpaper: case InstalledType.VideoWallpaper:
loader.source = "qrc:/qml/MultimediaView.qml"; loader.source = "qrc:/ScreenPlayWallpaper/qml/MultimediaView.qml";
fadeIn(); fadeIn();
break; break;
case InstalledType.HTMLWallpaper: case InstalledType.HTMLWallpaper:
loader.setSource("qrc:/qml/WebView.qml", { loader.setSource("qrc:/ScreenPlayWallpaper/qml/WebView.qml", {
"url": Qt.resolvedUrl(Wallpaper.projectSourceFileAbsolute) "url": Qt.resolvedUrl(Wallpaper.projectSourceFileAbsolute)
}); });
break; break;
@ -25,13 +25,13 @@ Rectangle {
fadeIn(); fadeIn();
break; break;
case InstalledType.WebsiteWallpaper: case InstalledType.WebsiteWallpaper:
loader.setSource("qrc:/qml/WebsiteWallpaper.qml", { loader.setSource("qrc:/ScreenPlayWallpaper/qml/WebsiteWallpaper.qml", {
"url": Wallpaper.projectSourceFileAbsolute "url": Wallpaper.projectSourceFileAbsolute
}); });
fadeIn(); fadeIn();
break; break;
case InstalledType.GifWallpaper: case InstalledType.GifWallpaper:
loader.setSource("qrc:/qml/GifWallpaper.qml", { loader.setSource("qrc:/ScreenPlayWallpaper/qml/GifWallpaper.qml", {
"source": Qt.resolvedUrl(Wallpaper.projectSourceFileAbsolute) "source": Qt.resolvedUrl(Wallpaper.projectSourceFileAbsolute)
}); });
fadeIn(); fadeIn();
@ -94,7 +94,7 @@ Rectangle {
if (oldType === InstalledType.VideoWallpaper) if (oldType === InstalledType.VideoWallpaper)
return ; return ;
loader.source = "qrc:/qml/MultimediaView.qml"; loader.source = "qrc:/ScreenPlayWallpaper/qml/MultimediaView.qml";
} }
target: Wallpaper target: Wallpaper

View File

@ -39,7 +39,7 @@ Item {
id: webView id: webView
anchors.fill: parent anchors.fill: parent
url: "qrc:/index.html" url: "qrc:/ScreenPlayWallpaper/index.html"
backgroundColor: "transparent" backgroundColor: "transparent"
onJavaScriptConsoleMessage:(lineNumber, message)=> print(lineNumber, message) onJavaScriptConsoleMessage:(lineNumber, message)=> print(lineNumber, message)
onLoadProgressChanged: { onLoadProgressChanged: {

View File

@ -54,7 +54,7 @@ BaseWindow::BaseWindow(
if (projectFilePath == "test") { if (projectFilePath == "test") {
setType(ScreenPlay::InstalledType::InstalledType::QMLWallpaper); setType(ScreenPlay::InstalledType::InstalledType::QMLWallpaper);
setProjectSourceFileAbsolute({ "qrc:/qml/Test.qml" }); setProjectSourceFileAbsolute({ "qrc:/ScreenPlayWallpaper/qml/Test.qml" });
setupLiveReloading(); setupLiveReloading();
return; return;
} }

View File

@ -489,7 +489,7 @@ void WinWindow::configureWindowGeometry()
// Instead of setting "renderType: Text.NativeRendering" every time we can set it here once // Instead of setting "renderType: Text.NativeRendering" every time we can set it here once
m_window.setTextRenderType(QQuickWindow::TextRenderType::NativeTextRendering); m_window.setTextRenderType(QQuickWindow::TextRenderType::NativeTextRendering);
m_window.setResizeMode(QQuickView::ResizeMode::SizeRootObjectToView); m_window.setResizeMode(QQuickView::ResizeMode::SizeRootObjectToView);
m_window.setSource(QUrl("qrc:/qml/Wallpaper.qml")); m_window.setSource(QUrl("qrc:/ScreenPlayWallpaper/qml/Wallpaper.qml"));
m_window.hide(); m_window.hide();
} }

View File

@ -4,10 +4,14 @@ set(CMAKE_CXX_STANDARD 20)
set(CMAKE_AUTORCC ON) set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
find_package(QT NAMES Qt6 COMPONENTS Core) set(SOURCES # cmake-format: sortable
set(src main.cpp src/widgetwindow.cpp) main.cpp src/widgetwindow.cpp)
set(headers src/widgetwindow.h) set(HEADER # cmake-format: sortable
src/widgetwindow.h)
set(QML # cmake-format: sortable
qml/Test.qml qml/Widget.qml)
find_package( find_package(
Qt6 Qt6
@ -22,13 +26,15 @@ find_package(
WebChannel WebChannel
Positioning) Positioning)
qt_add_resources(resources SPWidgetResources.qrc) qt_add_resources(RESOURCES Resources.qrc)
add_executable(${PROJECT_NAME} ${src} ${headers} ${resources}) qt_add_executable(${PROJECT_NAME} ${SOURCES} ${HEADER} ${RESOURCES})
target_link_libraries( target_link_libraries(
${PROJECT_NAME} ${PROJECT_NAME}
PRIVATE Qt6::Quick PRIVATE ScreenPlaySDK
ScreenPlayUtil
Qt6::Quick
Qt6::Gui Qt6::Gui
Qt6::Widgets Qt6::Widgets
Qt6::Core Qt6::Core
@ -37,7 +43,14 @@ target_link_libraries(
Qt6::WebEngineCore Qt6::WebEngineCore
Qt6::WebEngineQuick) Qt6::WebEngineQuick)
target_link_libraries(${PROJECT_NAME} PRIVATE ScreenPlaySDK ScreenPlayUtil) qt_add_qml_module(
${PROJECT_NAME}
URI
${PROJECT_NAME}
VERSION
1.0
QML_FILES
${QML})
if(WIN32) if(WIN32)
# Disable console window on Windows # Disable console window on Windows

View File

@ -4,7 +4,5 @@
<file>assets/icons/baseline-close-24px.svg</file> <file>assets/icons/baseline-close-24px.svg</file>
<file>assets/icons/baseline-opacity-24px.svg</file> <file>assets/icons/baseline-opacity-24px.svg</file>
<file>assets/icons/baseline-settings-20px.svg</file> <file>assets/icons/baseline-settings-20px.svg</file>
<file>qml/Test.qml</file>
<file>qml/Widget.qml</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -115,7 +115,7 @@ Item {
anchors.fill: parent anchors.fill: parent
hoverEnabled: true hoverEnabled: true
onPressed: { onPressed: (mouse)=>{
clickPos = { clickPos = {
"x": mouse.x, "x": mouse.x,
"y": mouse.y "y": mouse.y

View File

@ -71,7 +71,7 @@ WidgetWindow::WidgetWindow(
m_window.setTextRenderType(QQuickWindow::TextRenderType::NativeTextRendering); m_window.setTextRenderType(QQuickWindow::TextRenderType::NativeTextRendering);
m_window.setResizeMode(QQuickView::ResizeMode::SizeViewToRootObject); m_window.setResizeMode(QQuickView::ResizeMode::SizeViewToRootObject);
m_window.setSource(QUrl("qrc:/qml/Widget.qml")); m_window.setSource(QUrl("qrc:/ScreenPlayWidget/qml/Widget.qml"));
m_window.setPosition(m_position); m_window.setPosition(m_position);
m_window.show(); m_window.show();

View File

@ -1,3 +1,5 @@
project(workshopplugin LANGUAGES CXX)
add_subdirectory(SteamSDK) add_subdirectory(SteamSDK)
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
@ -8,57 +10,55 @@ find_package(
COMPONENTS Quick QML Widgets Gui COMPONENTS Quick QML Widgets Gui
REQUIRED) REQUIRED)
add_library( set(SOURCES
workshopplugin SHARED # cmake-format: sortable
src/steamapiwrapper.h
src/steamapiwrapper.cpp src/steamapiwrapper.cpp
src/steamworkshopitem.cpp
src/workshop.cpp
src/installedlistmodel.cpp
src/screenplayworkshop_plugin.cpp
src/steamworkshop.cpp
src/steamworkshoplistmodel.cpp
src/steamaccount.cpp
src/steamqmlimageprovider.cpp)
set(HEADER
# cmake-format: sortable
src/steamapiwrapper.h
src/steamworkshoplistmodel.h src/steamworkshoplistmodel.h
src/uploadlistmodel.h src/uploadlistmodel.h
src/steamworkshopitem.h src/steamworkshopitem.h
src/steamworkshopitem.cpp
src/workshop.cpp
src/workshop.h src/workshop.h
src/workshopitem.h src/workshopitem.h
src/installedlistmodel.cpp
src/installedlistmodel.h src/installedlistmodel.h
src/screenplayworkshop_plugin.cpp
src/screenplayworkshop_plugin.h src/screenplayworkshop_plugin.h
src/steamworkshop.cpp
src/steamworkshop.h src/steamworkshop.h
src/steamworkshoplistmodel.cpp
src/steamaccount.cpp
src/steamaccount.h src/steamaccount.h
src/steamqmlimageprovider.cpp src/steamqmlimageprovider.h)
src/steamqmlimageprovider.h
qmldir add_library(${PROJECT_NAME} SHARED ${SOURCES} ${HEADER})
${qml_resources})
set(WORKSHOP_PLUGIN_DIR ${CMAKE_BINARY_DIR}/bin/workshop) set(WORKSHOP_PLUGIN_DIR ${CMAKE_BINARY_DIR}/bin/workshop)
file(MAKE_DIRECTORY ${WORKSHOP_PLUGIN_DIR}) file(MAKE_DIRECTORY ${WORKSHOP_PLUGIN_DIR})
set_target_properties(workshopplugin PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${WORKSHOP_PLUGIN_DIR}) set_target_properties(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${WORKSHOP_PLUGIN_DIR})
set_target_properties(workshopplugin PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${WORKSHOP_PLUGIN_DIR}) set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${WORKSHOP_PLUGIN_DIR})
set_target_properties(workshopplugin PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${WORKSHOP_PLUGIN_DIR}) set_target_properties(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${WORKSHOP_PLUGIN_DIR})
set(steam_lib_path "${CMAKE_CURRENT_SOURCE_DIR}/SteamSDK/redistributable_bin/") set(STEAM_LIB_PATH "${CMAKE_CURRENT_SOURCE_DIR}/SteamSDK/redistributable_bin/")
if(WIN32) if(WIN32)
set(steam_lib "${steam_lib_path}/win64/steam_api64.lib") set(STEAM_LIB "${STEAM_LIB_PATH}/win64/steam_api64.lib")
set(STEAM_BIN "${STEAM_LIB_PATH}/win64/steam_api64.dll")
elseif(APPLE) elseif(APPLE)
set(steam_lib "${steam_lib_path}/osx/libsteam_api.dylib") set(STEAM_LIB "${STEAM_LIB_PATH}/osx/libsteam_api.dylib")
set(STEAM_BIN ${STEAM_LIB})
elseif(UNIX) elseif(UNIX)
set(steam_lib "${steam_lib_path}/linux64/libsteam_api.so") set(STEAM_LIB "${STEAM_LIB_PATH}/linux64/libsteam_api.so")
set(STEAM_BIN ${STEAM_LIB})
endif() endif()
target_link_libraries(workshopplugin PRIVATE Qt6::Core Qt6::Quick ${steam_lib} ScreenPlayUtil SteamSDK) target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Quick ${STEAM_LIB} ScreenPlayUtil SteamSDK)
if(WIN32)
set(steam_bin "${steam_lib_path}/win64/steam_api64.dll")
elseif(APPLE)
set(steam_bin "${steam_lib_path}/osx/libsteam_api.dylib")
elseif(UNIX)
set(steam_bin "${steam_lib_path}/linux64/libsteam_api.so")
endif()
if(APPLE) if(APPLE)
set(workshop_install_dir ${CMAKE_BINARY_DIR}/bin/ScreenPlay.app/Contents/MacOS/Workshop) set(workshop_install_dir ${CMAKE_BINARY_DIR}/bin/ScreenPlay.app/Contents/MacOS/Workshop)
@ -69,26 +69,26 @@ if(APPLE)
COMMAND ${CMAKE_COMMAND} -E make_directory ${workshop_install_dir}) COMMAND ${CMAKE_COMMAND} -E make_directory ${workshop_install_dir})
add_custom_command( add_custom_command(
TARGET workshopplugin TARGET ${PROJECT_NAME}
POST_BUILD POST_BUILD
COMMENT "Copying qmldir info into ScreenPlay.app bundle" COMMENT "Copying qmldir info into ScreenPlay.app bundle"
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/qmldir ${workshop_install_dir}) COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/qmldir ${workshop_install_dir})
add_custom_command( add_custom_command(
TARGET workshopplugin TARGET ${PROJECT_NAME}
POST_BUILD POST_BUILD
COMMENT "Copying workshop plugin into ScreenPlay.app bundle" COMMENT "Copying workshop plugin into ScreenPlay.app bundle"
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Workshop/libworkshopplugin.dylib ${workshop_install_dir}) COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Workshop/libworkshopplugin.dylib ${workshop_install_dir})
add_custom_command( add_custom_command(
TARGET workshopplugin TARGET ${PROJECT_NAME}
POST_BUILD POST_BUILD
COMMENT "Copying steam library into ScreenPlay.app bundle" COMMENT "Copying steam library into ScreenPlay.app bundle"
COMMAND ${CMAKE_COMMAND} -E copy ${steam_bin} ${workshop_install_dir}) COMMAND ${CMAKE_COMMAND} -E copy ${STEAM_BIN} ${workshop_install_dir})
if(${SCREENPLAY_STEAM}) if(${SCREENPLAY_STEAM})
add_custom_command( add_custom_command(
TARGET workshopplugin TARGET ${PROJECT_NAME}
POST_BUILD POST_BUILD
COMMENT "Copying steam_appid.txt into ScreenPlay.app bundle. This is for development only!" COMMENT "Copying steam_appid.txt into ScreenPlay.app bundle. This is for development only!"
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/steam_appid.txt COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/steam_appid.txt
@ -100,5 +100,5 @@ else()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/steam_appid.txt ${CMAKE_BINARY_DIR}/bin/steam_appid.txt COPYONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/steam_appid.txt ${CMAKE_BINARY_DIR}/bin/steam_appid.txt COPYONLY)
endif() endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/qmldir ${WORKSHOP_PLUGIN_DIR}/qmldir COPYONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/qmldir ${WORKSHOP_PLUGIN_DIR}/qmldir COPYONLY)
configure_file(${steam_bin} ${CMAKE_BINARY_DIR}/bin/ COPYONLY) configure_file(${STEAM_BIN} ${CMAKE_BINARY_DIR}/bin/ COPYONLY)
endif() endif()

View File

@ -1,2 +0,0 @@
module Workshop
plugin workshopplugin