Merge branch '174-add-godot-wallpaper-support' into 'master'
Draft: Resolve "Add Godot Wallpaper support" Closes #174 See merge request kelteseth/ScreenPlay!108
1
.gitignore
vendored
@ -262,3 +262,4 @@ cython_debug/
|
|||||||
/ThirdParty/qml-plausible/
|
/ThirdParty/qml-plausible/
|
||||||
/ThirdParty/ffmpeg/**
|
/ThirdParty/ffmpeg/**
|
||||||
/ThirdParty/qt-layer-shell/**
|
/ThirdParty/qt-layer-shell/**
|
||||||
|
/ThirdParty/Godot/Godot_*.*
|
||||||
|
@ -18,6 +18,7 @@ stages:
|
|||||||
- check
|
- check
|
||||||
|
|
||||||
documentation:
|
documentation:
|
||||||
|
dependencies: []
|
||||||
stage: .post
|
stage: .post
|
||||||
script:
|
script:
|
||||||
- curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=master https://gitlab.com/api/v4/projects/15800262/trigger/pipeline
|
- curl --request POST --form "token=$CI_JOB_TOKEN" --form ref=master https://gitlab.com/api/v4/projects/15800262/trigger/pipeline
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
- python -m pip install -U pip wheel
|
- python -m pip install -U pip wheel
|
||||||
- python -m pip install -r Tools/requirements.txt
|
- python -m pip install -r Tools/requirements.txt
|
||||||
- python Tools/setup.py
|
- python Tools/setup.py
|
||||||
|
- git submodule sync --recursive
|
||||||
|
- git submodule update --init --recursive
|
||||||
tags:
|
tags:
|
||||||
- windows10
|
- windows10
|
||||||
artifacts:
|
artifacts:
|
||||||
@ -33,11 +35,13 @@
|
|||||||
- cd ..
|
- cd ..
|
||||||
- git clone https://invent.kde.org/plasma/layer-shell-qt.git
|
- git clone https://invent.kde.org/plasma/layer-shell-qt.git
|
||||||
- cd layer-shell-qt
|
- cd layer-shell-qt
|
||||||
- cmake configure . -DCMAKE_PREFIX_PATH="./../../../aqt/6.5.2/gcc_64"
|
- cmake configure . -DCMAKE_PREFIX_PATH="./../../../aqt/6.6.1/gcc_64"
|
||||||
- make
|
- make
|
||||||
- make install
|
- make install
|
||||||
- cd ..
|
- cd ..
|
||||||
- cd ..
|
- cd ..
|
||||||
|
- git submodule sync --recursive
|
||||||
|
- git submodule update --init --recursive
|
||||||
image:
|
image:
|
||||||
name: ubuntu:22.04
|
name: ubuntu:22.04
|
||||||
tags:
|
tags:
|
||||||
@ -53,9 +57,7 @@
|
|||||||
- pip3 install -U pip
|
- pip3 install -U pip
|
||||||
- pip3 install -r Tools/requirements.txt
|
- pip3 install -r Tools/requirements.txt
|
||||||
- python3 Tools/setup.py
|
- python3 Tools/setup.py
|
||||||
|
- git submodule sync --recursive
|
||||||
|
- git submodule update --init --recursive
|
||||||
tags:
|
tags:
|
||||||
- osx
|
- osx
|
||||||
artifacts:
|
|
||||||
expire_in: "2 weeks"
|
|
||||||
paths:
|
|
||||||
- build-64-osx-universal-release/bin/
|
|
||||||
|
@ -10,7 +10,12 @@ standalone_osx:
|
|||||||
extends:
|
extends:
|
||||||
- .base_osx_build
|
- .base_osx_build
|
||||||
script:
|
script:
|
||||||
- python3 Tools/build.py --type=release --use-aqt --deploy-version --sign_osx
|
- python3 Tools/build.py --type=release --use-aqt --installer --deploy-version --sign_osx
|
||||||
|
- mv build-64-osx-universal-release/ScreenPlay-Installer-ScreenPlayComponent.dmg build-64-osx-universal-release/ScreenPlay-Installer.dmg
|
||||||
|
artifacts:
|
||||||
|
expire_in: "2 weeks"
|
||||||
|
paths:
|
||||||
|
- build-64-osx-universal-release/ScreenPlay-Installer.dmg
|
||||||
|
|
||||||
standalone_linux:
|
standalone_linux:
|
||||||
stage: build
|
stage: build
|
||||||
@ -32,10 +37,14 @@ steam_osx:
|
|||||||
- .base_osx_build
|
- .base_osx_build
|
||||||
script:
|
script:
|
||||||
- python3 Tools/build.py --type=release -steam --use-aqt --deploy-version --sign_osx
|
- python3 Tools/build.py --type=release -steam --use-aqt --deploy-version --sign_osx
|
||||||
|
artifacts:
|
||||||
|
expire_in: "2 weeks"
|
||||||
|
paths:
|
||||||
|
- build-64-osx-universal-release/bin/ScreenPlay.app
|
||||||
|
|
||||||
steam_linux:
|
steam_linux:
|
||||||
stage: build_steam
|
stage: build_steam
|
||||||
extends:
|
extends:
|
||||||
- .base_linux_build
|
- .base_linux_build
|
||||||
script:
|
script:
|
||||||
- python3 Tools/build.py --type=release -steam --deploy-version --use-aqt --installer
|
- python3 Tools/build.py --type=release -steam --use-aqt --deploy-version
|
||||||
|
@ -1,18 +1,20 @@
|
|||||||
formatting:
|
formatting:
|
||||||
dependencies: []
|
dependencies: []
|
||||||
stage: check
|
stage: check
|
||||||
allow_failure: true
|
|
||||||
image:
|
image:
|
||||||
name: ubuntu:23.10
|
name: ubuntu:23.10
|
||||||
tags:
|
tags:
|
||||||
- gitlab-org-docker
|
- gitlab-org-docker
|
||||||
before_script:
|
|
||||||
- apt-get update -y
|
|
||||||
- apt-get install python3-pip python-is-python3 clang clang-format -y
|
|
||||||
script:
|
script:
|
||||||
- python -m pip install -U pip wheel --break-system-packages
|
- apt update -y
|
||||||
- python -m pip install -U cmakelang --break-system-packages
|
# For Ubuntu 22.04 and newer we need to create an virutal env
|
||||||
|
- apt install python3.11 python3.11-venv clang clang-format -y
|
||||||
|
# Run this command in the ScreenPlay source root folder:
|
||||||
|
- python3 -m venv env
|
||||||
|
- source env/bin/activate
|
||||||
|
- python3 -m pip install -U pip wheel
|
||||||
|
- python3 -m pip install -U cmakelang
|
||||||
- cd Tools
|
- cd Tools
|
||||||
- python check_format_cmake.py --check
|
- python3 check_format_cmake.py --check
|
||||||
- python check_format_cpp.py --check
|
- python3 check_format_cpp.py --check
|
||||||
#- python check_format_qml.py --check
|
#- python check_format_qml.py --check
|
||||||
|
4
.gitmodules
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[submodule "ScreenPlayWallpaper/Godot/GDExtention/extern/godot-cpp"]
|
||||||
|
path = ScreenPlayWallpaper/Godot/GDExtention/extern/godot-cpp
|
||||||
|
url = https://github.com/godotengine/godot-cpp.git
|
||||||
|
branch = 4.1
|
5
.vscode/extensions.json
vendored
@ -6,6 +6,9 @@
|
|||||||
"ms-vscode.cmake-tools",
|
"ms-vscode.cmake-tools",
|
||||||
"seanwu.vscode-qt-for-python",
|
"seanwu.vscode-qt-for-python",
|
||||||
"mhutchie.git-graph",
|
"mhutchie.git-graph",
|
||||||
"vadimcn.vscode-lldb"
|
"vadimcn.vscode-lldb",
|
||||||
|
"josetr.cmake-language-support-vscode",
|
||||||
|
"geequlim.godot-tools",
|
||||||
|
"stevebushresearch.buildoutputcolorizer"
|
||||||
]
|
]
|
||||||
}
|
}
|
14
.vscode/launch.json
vendored
@ -5,7 +5,7 @@
|
|||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "Windows Launch",
|
"name": "🪟 Windows Launch",
|
||||||
"type": "cppvsdbg",
|
"type": "cppvsdbg",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${command:cmake.launchTargetPath}",
|
"program": "${command:cmake.launchTargetPath}",
|
||||||
@ -17,18 +17,26 @@
|
|||||||
"environment": [
|
"environment": [
|
||||||
{
|
{
|
||||||
"name": "Path",
|
"name": "Path",
|
||||||
"value": "${env:Path};${workspaceFolder}\\..\\aqt\\6.5.2\\msvc2019_64\\bin\\;${workspaceFolder}\\..\\aqt\\6.5.2\\msvc2019_64\\modules\\;${workspaceFolder}\\..\\aqt\\6.5.2\\msvc2019_64\\qml\\;${workspaceFolder}\\..\\vcpkg\\installed\\x64-windows\\debug\\bin;"
|
"value": "${env:Path};${workspaceFolder}\\..\\aqt\\6.6.1\\msvc2019_64\\bin\\;${workspaceFolder}\\..\\aqt\\6.6.1\\msvc2019_64\\modules\\;${workspaceFolder}\\..\\aqt\\6.6.1\\msvc2019_64\\qml\\;${workspaceFolder}\\..\\vcpkg\\installed\\x64-windows\\debug\\bin;"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"visualizerFile": "${workspaceFolder}/.vscode/qt.natvis.xml"
|
"visualizerFile": "${workspaceFolder}/.vscode/qt.natvis.xml"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "macOS/linux Launch",
|
"name": "🍏macOS & 🐧linux Launch",
|
||||||
"type": "lldb",
|
"type": "lldb",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${command:cmake.launchTargetPath}",
|
"program": "${command:cmake.launchTargetPath}",
|
||||||
"args": [],
|
"args": [],
|
||||||
"cwd": "${command:cmake.buildDirectory}/bin",
|
"cwd": "${command:cmake.buildDirectory}/bin",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "🐍 Python: Current File",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"justMyCode": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
276
.vscode/qt.natvis.xml
vendored
@ -6,14 +6,14 @@
|
|||||||
|
|
||||||
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
|
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QPropertyData<*>">
|
<Type Name="QPropertyData<*>">
|
||||||
<DisplayString>{val}</DisplayString>
|
<DisplayString>{val}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[value]">val</Item>
|
<Item Name="[value]">val</Item>
|
||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QQuickItemPrivate">
|
<Type Name="QQuickItemPrivate">
|
||||||
<Intrinsic Name="_hasExtraData" Expression="extra.d.d != 0" />
|
<Intrinsic Name="_hasExtraData" Expression="extra.d.d != 0" />
|
||||||
<Intrinsic Name="_extraData" Expression="(*(ExtraData*)extra.d.d)" />
|
<Intrinsic Name="_extraData" Expression="(*(ExtraData*)extra.d.d)" />
|
||||||
<Intrinsic Name="_objectName" Expression="(extraData->objectName).val.d.ptr" />
|
<Intrinsic Name="_objectName" Expression="(extraData->objectName).val.d.ptr" />
|
||||||
@ -38,32 +38,32 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QQuickItem">
|
<Type Name="QQuickItem">
|
||||||
<DisplayString>{d_ptr.d,na}</DisplayString>
|
<DisplayString>{d_ptr.d,na}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<ExpandedItem>d_ptr.d</ExpandedItem>
|
<ExpandedItem>d_ptr.d</ExpandedItem>
|
||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QUuid">
|
<Type Name="QUuid">
|
||||||
<DisplayString>{{{data1,Xb}-{data2,Xb}-{data3,Xb}-{(data4[0]),nvoXb}{(data4[1]),nvoXb}-{(data4[2]),nvoXb}{(data4[3]),nvoXb}{(data4[4]),nvoXb}{(data4[5]),nvoXb}{(data4[6]),nvoXb}{(data4[7]),nvoXb}}}</DisplayString>
|
<DisplayString>{{{data1,Xb}-{data2,Xb}-{data3,Xb}-{(data4[0]),nvoXb}{(data4[1]),nvoXb}-{(data4[2]),nvoXb}{(data4[3]),nvoXb}{(data4[4]),nvoXb}{(data4[5]),nvoXb}{(data4[6]),nvoXb}{(data4[7]),nvoXb}}}</DisplayString>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QSpecialInteger<*>">
|
<Type Name="QSpecialInteger<*>">
|
||||||
<DisplayString>{val}</DisplayString>
|
<DisplayString>{val}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[value]">val</Item>
|
<Item Name="[value]">val</Item>
|
||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QBasicAtomicInteger<*>">
|
<Type Name="QBasicAtomicInteger<*>">
|
||||||
<DisplayString>{_q_value}</DisplayString>
|
<DisplayString>{_q_value}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[value]">_q_value</Item>
|
<Item Name="[value]">_q_value</Item>
|
||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QBasicAtomicPointer<*>">
|
<Type Name="QBasicAtomicPointer<*>">
|
||||||
<Intrinsic Name="isNull" Expression="value()==0" />
|
<Intrinsic Name="isNull" Expression="value()==0" />
|
||||||
<Intrinsic Name="value" Expression="_q_value.value()" />
|
<Intrinsic Name="value" Expression="_q_value.value()" />
|
||||||
<DisplayString Condition="isNull()">empty</DisplayString>
|
<DisplayString Condition="isNull()">empty</DisplayString>
|
||||||
@ -73,8 +73,8 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QPoint">
|
<Type Name="QPoint">
|
||||||
<AlternativeType Name="##NAMESPACE##::QPointF"/>
|
<AlternativeType Name="QPointF"/>
|
||||||
<DisplayString>{{ x = {xp}, y = {yp} }}</DisplayString>
|
<DisplayString>{{ x = {xp}, y = {yp} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[x]">xp</Item>
|
<Item Name="[x]">xp</Item>
|
||||||
@ -82,7 +82,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QRect">
|
<Type Name="QRect">
|
||||||
<DisplayString>{{ x = {x1}, y = {y1}, width = {x2 - x1 + 1}, height = {y2 - y1 + 1} }}</DisplayString>
|
<DisplayString>{{ x = {x1}, y = {y1}, width = {x2 - x1 + 1}, height = {y2 - y1 + 1} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[x]">x1</Item>
|
<Item Name="[x]">x1</Item>
|
||||||
@ -92,7 +92,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QRectF">
|
<Type Name="QRectF">
|
||||||
<DisplayString>{{ x = {xp}, y = {yp}, width = {w}, height = {h} }}</DisplayString>
|
<DisplayString>{{ x = {xp}, y = {yp}, width = {w}, height = {h} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[x]">xp</Item>
|
<Item Name="[x]">xp</Item>
|
||||||
@ -102,8 +102,8 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QSize">
|
<Type Name="QSize">
|
||||||
<AlternativeType Name="##NAMESPACE##::QSizeF"/>
|
<AlternativeType Name="QSizeF"/>
|
||||||
<DisplayString>{{ width = {wd}, height = {ht} }}</DisplayString>
|
<DisplayString>{{ width = {wd}, height = {ht} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[width]">wd</Item>
|
<Item Name="[width]">wd</Item>
|
||||||
@ -111,8 +111,8 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QLine">
|
<Type Name="QLine">
|
||||||
<AlternativeType Name="##NAMESPACE##::QLineF"/>
|
<AlternativeType Name="QLineF"/>
|
||||||
<DisplayString>{{ start point = {pt1}, end point = {pt2} }}</DisplayString>
|
<DisplayString>{{ start point = {pt1}, end point = {pt2} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Synthetic Name="[start point]">
|
<Synthetic Name="[start point]">
|
||||||
@ -131,7 +131,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QPolygon">
|
<Type Name="QPolygon">
|
||||||
<DisplayString>{{ size={d->size} }}</DisplayString>
|
<DisplayString>{{ size={d->size} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
<Item Name="[referenced]">d->ref.atomic._q_value</Item>
|
||||||
@ -142,7 +142,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QPolygonF">
|
<Type Name="QPolygonF">
|
||||||
<DisplayString>{{ size={d->size} }}</DisplayString>
|
<DisplayString>{{ size={d->size} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[closed]">
|
<Item Name="[closed]">
|
||||||
@ -160,7 +160,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QVector2D">
|
<Type Name="QVector2D">
|
||||||
<DisplayString>{{ x = {xp}, y = {yp} }}</DisplayString>
|
<DisplayString>{{ x = {xp}, y = {yp} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[x]">xp</Item>
|
<Item Name="[x]">xp</Item>
|
||||||
@ -168,7 +168,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QVector3D">
|
<Type Name="QVector3D">
|
||||||
<DisplayString>{{ x = {xp}, y = {yp}, z = {zp} }}</DisplayString>
|
<DisplayString>{{ x = {xp}, y = {yp}, z = {zp} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[x]">xp</Item>
|
<Item Name="[x]">xp</Item>
|
||||||
@ -177,7 +177,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QVector4D">
|
<Type Name="QVector4D">
|
||||||
<DisplayString>{{ x = {xp}, y = {yp}, z = {zp}, w = {wp} }}</DisplayString>
|
<DisplayString>{{ x = {xp}, y = {yp}, z = {zp}, w = {wp} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[x]">xp</Item>
|
<Item Name="[x]">xp</Item>
|
||||||
@ -187,7 +187,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QMatrix">
|
<Type Name="QMatrix">
|
||||||
<DisplayString>
|
<DisplayString>
|
||||||
{{ m11 = {_m11}, m12 = {_m12}, m21 = {_m21}, m22 = {_m22}, ... }}
|
{{ m11 = {_m11}, m12 = {_m12}, m21 = {_m21}, m22 = {_m22}, ... }}
|
||||||
</DisplayString>
|
</DisplayString>
|
||||||
@ -201,7 +201,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QMatrix4x4">
|
<Type Name="QMatrix4x4">
|
||||||
<DisplayString>
|
<DisplayString>
|
||||||
{{ m11 = {m[0][0]}, m12 = {m[1][0]}, m13 = {m[2][0]}, m14 = {m[3][0]}, ... }}
|
{{ m11 = {m[0][0]}, m12 = {m[1][0]}, m13 = {m[2][0]}, m14 = {m[3][0]}, ... }}
|
||||||
</DisplayString>
|
</DisplayString>
|
||||||
@ -225,7 +225,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QSizePolicy">
|
<Type Name="QSizePolicy">
|
||||||
<DisplayString>
|
<DisplayString>
|
||||||
{{ horizontal = {static_cast<Policy>(bits.horPolicy)}, vertical = {static_cast<Policy>(bits.verPolicy)}, type = {ControlType(1 << bits.ctype)} }}
|
{{ horizontal = {static_cast<Policy>(bits.horPolicy)}, vertical = {static_cast<Policy>(bits.verPolicy)}, type = {ControlType(1 << bits.ctype)} }}
|
||||||
</DisplayString>
|
</DisplayString>
|
||||||
@ -256,7 +256,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QChar">
|
<Type Name="QChar">
|
||||||
<DisplayString>{ucs,c}</DisplayString>
|
<DisplayString>{ucs,c}</DisplayString>
|
||||||
<StringView>ucs,c</StringView>
|
<StringView>ucs,c</StringView>
|
||||||
<Expand>
|
<Expand>
|
||||||
@ -265,7 +265,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QString">
|
<Type Name="QString">
|
||||||
<DisplayString>"{(reinterpret_cast<unsigned short*>(d.ptr)),sub}"</DisplayString>
|
<DisplayString>"{(reinterpret_cast<unsigned short*>(d.ptr)),sub}"</DisplayString>
|
||||||
<StringView>(reinterpret_cast<unsigned short*>(d.ptr)),sub</StringView>
|
<StringView>(reinterpret_cast<unsigned short*>(d.ptr)),sub</StringView>
|
||||||
<Expand>
|
<Expand>
|
||||||
@ -277,7 +277,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QStringRef">
|
<Type Name="QStringRef">
|
||||||
<DisplayString Condition="m_string == nullptr">{m_string,[m_size]} u""</DisplayString>
|
<DisplayString Condition="m_string == nullptr">{m_string,[m_size]} u""</DisplayString>
|
||||||
<DisplayString Condition="m_string != nullptr">{m_string->d.ptr+m_position,[m_size]}</DisplayString>
|
<DisplayString Condition="m_string != nullptr">{m_string->d.ptr+m_position,[m_size]}</DisplayString>
|
||||||
<StringView Condition="m_string == nullptr">""</StringView>
|
<StringView Condition="m_string == nullptr">""</StringView>
|
||||||
@ -292,7 +292,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QStringView">
|
<Type Name="QStringView">
|
||||||
<DisplayString>{m_data,[m_size]}</DisplayString>
|
<DisplayString>{m_data,[m_size]}</DisplayString>
|
||||||
<StringView>m_data,[m_size]</StringView>
|
<StringView>m_data,[m_size]</StringView>
|
||||||
<Expand>
|
<Expand>
|
||||||
@ -304,7 +304,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QByteArray">
|
<Type Name="QByteArray">
|
||||||
<DisplayString>"{((reinterpret_cast<char*>(d.ptr))),sb}"</DisplayString>
|
<DisplayString>"{((reinterpret_cast<char*>(d.ptr))),sb}"</DisplayString>
|
||||||
<StringView>((reinterpret_cast<char*>(d.ptr))),sb</StringView>
|
<StringView>((reinterpret_cast<char*>(d.ptr))),sb</StringView>
|
||||||
<Expand>
|
<Expand>
|
||||||
@ -316,7 +316,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QUrl">
|
<Type Name="QUrl">
|
||||||
<Intrinsic Name="isEmpty" Expression="size==0">
|
<Intrinsic Name="isEmpty" Expression="size==0">
|
||||||
<Parameter Name="size" Type="int"/>
|
<Parameter Name="size" Type="int"/>
|
||||||
</Intrinsic>
|
</Intrinsic>
|
||||||
@ -344,11 +344,11 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QDate">
|
<Type Name="QDate">
|
||||||
<DisplayString>{{ julian day = {jd} }}</DisplayString>
|
<DisplayString>{{ julian day = {jd} }}</DisplayString>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QTime">
|
<Type Name="QTime">
|
||||||
<Intrinsic Name="hour" Expression="mds / 3600000" />
|
<Intrinsic Name="hour" Expression="mds / 3600000" />
|
||||||
<Intrinsic Name="minute" Expression="(mds % 3600000) / 60000" />
|
<Intrinsic Name="minute" Expression="(mds % 3600000) / 60000" />
|
||||||
<Intrinsic Name="second" Expression="(mds / 1000) % 60" />
|
<Intrinsic Name="second" Expression="(mds / 1000) % 60" />
|
||||||
@ -375,7 +375,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QPair<*,*>">
|
<Type Name="QPair<*,*>">
|
||||||
<DisplayString>({first}, {second})</DisplayString>
|
<DisplayString>({first}, {second})</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[first]">first</Item>
|
<Item Name="[first]">first</Item>
|
||||||
@ -383,8 +383,8 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QList<*>">
|
<Type Name="QList<*>">
|
||||||
<AlternativeType Name="##NAMESPACE##::QVector<*>"/>
|
<AlternativeType Name="QVector<*>"/>
|
||||||
<DisplayString>{{ size={d.size} }}</DisplayString>
|
<DisplayString>{{ size={d.size} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<ArrayItems>
|
<ArrayItems>
|
||||||
@ -394,7 +394,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QVarLengthArray<*>">
|
<Type Name="QVarLengthArray<*>">
|
||||||
<DisplayString>{{ size={s} }}</DisplayString>
|
<DisplayString>{{ size={s} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="[capacity]">a</Item>
|
<Item Name="[capacity]">a</Item>
|
||||||
@ -405,8 +405,8 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QMap<*,*>">
|
<Type Name="QMap<*,*>">
|
||||||
<AlternativeType Name="##NAMESPACE##::QMultiMap<*,*>"/>
|
<AlternativeType Name="QMultiMap<*,*>"/>
|
||||||
<DisplayString>{{ size={d.d->m._Mypair._Myval2._Myval2._Mysize} }}</DisplayString>
|
<DisplayString>{{ size={d.d->m._Mypair._Myval2._Myval2._Mysize} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<TreeItems>
|
<TreeItems>
|
||||||
@ -423,7 +423,7 @@
|
|||||||
<DisplayString>{second}</DisplayString>
|
<DisplayString>{second}</DisplayString>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QHashPrivate::Node<*,*>">
|
<Type Name="QHashPrivate::Node<*,*>">
|
||||||
<DisplayString>{value}</DisplayString>
|
<DisplayString>{value}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<Item Name="key">key</Item>
|
<Item Name="key">key</Item>
|
||||||
@ -431,7 +431,7 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QHashPrivate::MultiNode<*,*>">
|
<Type Name="QHashPrivate::MultiNode<*,*>">
|
||||||
<DisplayString Condition="value->next == 0">{value->value}</DisplayString>
|
<DisplayString Condition="value->next == 0">{value->value}</DisplayString>
|
||||||
<DisplayString Condition="value->next != 0 && value->next->next == 0">({value->value}, {value->next->value})</DisplayString>
|
<DisplayString Condition="value->next != 0 && value->next->next == 0">({value->value}, {value->next->value})</DisplayString>
|
||||||
<DisplayString Condition="value->next != 0 && value->next->next != 0">({value->value}, {value->next->value}, ...)</DisplayString>
|
<DisplayString Condition="value->next != 0 && value->next->next != 0">({value->value}, {value->next->value}, ...)</DisplayString>
|
||||||
@ -444,8 +444,8 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QHash<*,*>">
|
<Type Name="QHash<*,*>">
|
||||||
<AlternativeType Name="##NAMESPACE##::QMultiHash<*,*>"/>
|
<AlternativeType Name="QMultiHash<*,*>"/>
|
||||||
<Intrinsic Name="getOffset" Category="Method" Expression="d->spans[span].offsets[offset]">
|
<Intrinsic Name="getOffset" Category="Method" Expression="d->spans[span].offsets[offset]">
|
||||||
<Parameter Name="span" Type="int" />
|
<Parameter Name="span" Type="int" />
|
||||||
<Parameter Name="offset" Type="int" />
|
<Parameter Name="offset" Type="int" />
|
||||||
@ -602,15 +602,15 @@
|
|||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QSet<*>">
|
<Type Name="QSet<*>">
|
||||||
<DisplayString>{{ size={q_hash.d->size} }}</DisplayString>
|
<DisplayString>{{ size={q_hash.d->size} }}</DisplayString>
|
||||||
<Expand>
|
<Expand>
|
||||||
<ExpandedItem>q_hash</ExpandedItem>
|
<ExpandedItem>q_hash</ExpandedItem>
|
||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
<Type Name="##NAMESPACE##::QVariant">
|
<Type Name="QVariant">
|
||||||
<Intrinsic Name="typeId" Expression="*(int*)(&((const ##NAMESPACE##::QtPrivate::QMetaTypeInterface *)(d.packedType << 2))->typeId)">
|
<Intrinsic Name="typeId" Expression="*(int*)(&((const QtPrivate::QMetaTypeInterface *)(d.packedType << 2))->typeId)">
|
||||||
</Intrinsic>
|
</Intrinsic>
|
||||||
<Intrinsic Name="dataStar" Expression="(&(d.data.data))">
|
<Intrinsic Name="dataStar" Expression="(&(d.data.data))">
|
||||||
</Intrinsic>
|
</Intrinsic>
|
||||||
@ -620,115 +620,115 @@
|
|||||||
<DisplayString Condition="d.is_null">(null)</DisplayString>
|
<DisplayString Condition="d.is_null">(null)</DisplayString>
|
||||||
|
|
||||||
<!-- Static core pointers -->
|
<!-- Static core pointers -->
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QObjectStar">QObject*</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QObjectStar">QObject*</DisplayString>
|
||||||
|
|
||||||
<!-- Static core template classes -->
|
<!-- Static core template classes -->
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QVariantMap">{*(QMap<QString,QVariant>*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QVariantMap">{*(QMap<QString,QVariant>*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QVariantList">{*(QList<QVariant>*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QVariantList">{*(QList<QVariant>*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QVariantHash">{*(QHash<QString,QVariant>*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QVariantHash">{*(QHash<QString,QVariant>*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QVariantPair">QVariantPair</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QVariantPair">QVariantPair</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QByteArrayList">{*(QList<QByteArray>*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QByteArrayList">{*(QList<QByteArray>*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QStringList">{*(QList<QString>*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QStringList">{*(QList<QString>*) sharedDataStar()}</DisplayString>
|
||||||
|
|
||||||
<!-- Static primitives-->
|
<!-- Static primitives-->
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::Bool">{*(bool*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::Bool">{*(bool*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::Int">{*(int*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::Int">{*(int*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::UInt">{*(unsigned int*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::UInt">{*(unsigned int*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::LongLong">{*(long long*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::LongLong">{*(long long*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::ULongLong">{*(unsigned long long*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::ULongLong">{*(unsigned long long*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::Double">{*(double*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::Double">{*(double*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::VoidStar">{*(void**) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::VoidStar">{*(void**) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::Long">{*(long*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::Long">{*(long*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::Short">{*(short*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::Short">{*(short*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::Char">{*(char*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::Char">{*(char*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::Char16">{*(char16_t*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::Char16">{*(char16_t*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::Char32">{*(char32_t*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::Char32">{*(char32_t*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::ULong">{*(unsigned long*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::ULong">{*(unsigned long*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::UShort">{*(unsigned short*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::UShort">{*(unsigned short*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::UChar">{*(unsigned char*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::UChar">{*(unsigned char*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::Float">{*(float*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::Float">{*(float*) dataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::SChar">{*(signed char*) dataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::SChar">{*(signed char*) dataStar()}</DisplayString>
|
||||||
|
|
||||||
<!-- Static core classes -->
|
<!-- Static core classes -->
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QChar">{*(QChar*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QChar">{*(QChar*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QString">{*(QString*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QString">{*(QString*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QByteArray">{*(QByteArray*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QByteArray">{*(QByteArray*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QDate">{*(QDate*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QDate">{*(QDate*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QTime">{*(QTime*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QTime">{*(QTime*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QDateTime">QDateTime</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QDateTime">QDateTime</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QUrl">QUrl</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QUrl">QUrl</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QLocale">QLocale</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QLocale">QLocale</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QRect">{*(QRect*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QRect">{*(QRect*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QRectF">{*(QRectF*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QRectF">{*(QRectF*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QSize">{*(QSize*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QSize">{*(QSize*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QSizeF">{*(QSizeF*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QSizeF">{*(QSizeF*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QLine">{*(QLine*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QLine">{*(QLine*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QLineF">{*(QLineF*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QLineF">{*(QLineF*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QPoint">{*(QPoint*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QPoint">{*(QPoint*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QPointF">{*(QPointF*) sharedDataStar()}</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QPointF">{*(QPointF*) sharedDataStar()}</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QEasingCurve">EasingCurve</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QEasingCurve">EasingCurve</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QUuid">Uuid</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QUuid">Uuid</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QRegularExpression">RegularExpression</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QRegularExpression">RegularExpression</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QJsonValue">QJsonValue</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QJsonValue">QJsonValue</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QJsonObject">QJsonObject</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QJsonObject">QJsonObject</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QJsonArray">QJsonArray</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QJsonArray">QJsonArray</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QJsonDocument">QJsonDocument</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QJsonDocument">QJsonDocument</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QCborValue">QCborValue</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QCborValue">QCborValue</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QCborArray">QCborArray</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QCborArray">QCborArray</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QCborMap">QCborMap</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QCborMap">QCborMap</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QModelIndex">ModelIndex</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QModelIndex">ModelIndex</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QPersistentModelIndex">QPersistentModelIndex</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QPersistentModelIndex">QPersistentModelIndex</DisplayString>
|
||||||
|
|
||||||
<!-- Static gui classes -->
|
<!-- Static gui classes -->
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QFont">QFont</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QFont">QFont</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QPixmap">QPixmap</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QPixmap">QPixmap</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QBrush">QBrush</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QBrush">QBrush</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QColor">QColor</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QColor">QColor</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QPalette">QPalette</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QPalette">QPalette</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QIcon">QIcon</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QIcon">QIcon</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QImage">QImage</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QImage">QImage</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QPolygon">QPolygon</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QPolygon">QPolygon</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QRegion">QRegion</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QRegion">QRegion</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QBitmap">QBitmap</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QBitmap">QBitmap</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QCursor">QCursor</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QCursor">QCursor</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QKeySequence">QKeySequence</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QKeySequence">QKeySequence</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QPen">QPen</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QPen">QPen</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QTextLength">QTextLength</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QTextLength">QTextLength</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QTextFormat">QTextFormat</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QTextFormat">QTextFormat</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QTransform">QTransform</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QTransform">QTransform</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QMatrix4x4">QMatrix4x4</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QMatrix4x4">QMatrix4x4</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QVector2D">QVector2D</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QVector2D">QVector2D</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QVector3D">QVector3D</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QVector3D">QVector3D</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QVector4D">QVector4D</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QVector4D">QVector4D</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QQuaternion">QQuaternion</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QQuaternion">QQuaternion</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QPolygonF">QPolygonF</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QPolygonF">QPolygonF</DisplayString>
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QColorSpace">QColorSpace</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QColorSpace">QColorSpace</DisplayString>
|
||||||
|
|
||||||
<!-- Static widget classes -->
|
<!-- Static widget classes -->
|
||||||
<DisplayString Condition="typeId() == ##NAMESPACE##::QMetaType::QSizePolicy">QSizePolicy</DisplayString>
|
<DisplayString Condition="typeId() == QMetaType::QSizePolicy">QSizePolicy</DisplayString>
|
||||||
|
|
||||||
<!-- Unhandled : display the typeId-->
|
<!-- Unhandled : display the typeId-->
|
||||||
<DisplayString>##NAMESPACE##::QMetaType::Type ({typeId()})</DisplayString>
|
<DisplayString>QMetaType::Type ({typeId()})</DisplayString>
|
||||||
|
|
||||||
<Expand>
|
<Expand>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QString">*(QString*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QString">*(QString*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QByteArray">*(QByteArray*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QByteArray">*(QByteArray*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QDate">*(QDate*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QDate">*(QDate*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QTime">*(QTime*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QTime">*(QTime*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QRect">*(QRect*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QRect">*(QRect*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QRectF">*(QRectF*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QRectF">*(QRectF*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QSize">*(QSize*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QSize">*(QSize*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QSizeF">*(QSizeF*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QSizeF">*(QSizeF*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QLine">*(QLine*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QLine">*(QLine*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QLineF">*(QLineF*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QLineF">*(QLineF*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QPoint">*(QPoint*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QPoint">*(QPoint*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QPointF">*(QPointF*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QPointF">*(QPointF*) sharedDataStar()</ExpandedItem>
|
||||||
|
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QVariantMap">*(QMap<QString,QVariant>*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QVariantMap">*(QMap<QString,QVariant>*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QVariantList">*(QList<QVariant>*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QVariantList">*(QList<QVariant>*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QVariantHash">*(QHash<QString,QVariant>*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QVariantHash">*(QHash<QString,QVariant>*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QByteArrayList">*(QList<QByteArray>*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QByteArrayList">*(QList<QByteArray>*) sharedDataStar()</ExpandedItem>
|
||||||
<ExpandedItem Condition="typeId() == ##NAMESPACE##::QMetaType::QStringList">*(QList<QString>*) sharedDataStar()</ExpandedItem>
|
<ExpandedItem Condition="typeId() == QMetaType::QStringList">*(QList<QString>*) sharedDataStar()</ExpandedItem>
|
||||||
</Expand>
|
</Expand>
|
||||||
</Type>
|
</Type>
|
||||||
|
|
||||||
|
134
.vscode/tasks.json
vendored
@ -15,61 +15,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "process",
|
"type": "process",
|
||||||
"label": "Format Cpp files",
|
"label": "🛫 Run setup.py",
|
||||||
"command": "python3",
|
|
||||||
"windows": {
|
|
||||||
"command": "python"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": true
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"cwd": "${workspaceFolder}/Tools"
|
|
||||||
},
|
|
||||||
"args": [
|
|
||||||
"check_format_cpp.py"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"label": "Format CMake files",
|
|
||||||
"command": "python3",
|
|
||||||
"windows": {
|
|
||||||
"command": "python"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": true
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"cwd": "${workspaceFolder}/Tools"
|
|
||||||
},
|
|
||||||
"args": [
|
|
||||||
"check_format_cmake.py"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"label": "Format Qml files",
|
|
||||||
"command": "python3",
|
|
||||||
"windows": {
|
|
||||||
"command": "python"
|
|
||||||
},
|
|
||||||
"group": {
|
|
||||||
"kind": "build",
|
|
||||||
"isDefault": true
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"cwd": "${workspaceFolder}/Tools"
|
|
||||||
},
|
|
||||||
"args": [
|
|
||||||
"check_format_qml.py"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "process",
|
|
||||||
"label": "Run setup.py",
|
|
||||||
"command": "python3",
|
"command": "python3",
|
||||||
"windows": {
|
"windows": {
|
||||||
"command": "python"
|
"command": "python"
|
||||||
@ -87,7 +33,27 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "process",
|
"type": "process",
|
||||||
"label": "Build ScreenPlay release, with deploy and steam enabled",
|
"label": "⚙️ Build Godot Wallpaper",
|
||||||
|
"command": "python3",
|
||||||
|
"windows": {
|
||||||
|
"command": "python"
|
||||||
|
},
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceFolder}/Tools"
|
||||||
|
},
|
||||||
|
"args": [
|
||||||
|
"build_godot.py",
|
||||||
|
"--build_path",
|
||||||
|
"${command:cmake.buildDirectory}/bin"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"label": "⚙️ Build ScreenPlay release, with deploy and steam enabled",
|
||||||
"command": "python3",
|
"command": "python3",
|
||||||
"windows": {
|
"windows": {
|
||||||
"command": "python"
|
"command": "python"
|
||||||
@ -116,7 +82,61 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "process",
|
"type": "process",
|
||||||
"label": "Update Qt *.ts translations",
|
"label": "📃 Format Cpp files",
|
||||||
|
"command": "python3",
|
||||||
|
"windows": {
|
||||||
|
"command": "python"
|
||||||
|
},
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceFolder}/Tools"
|
||||||
|
},
|
||||||
|
"args": [
|
||||||
|
"check_format_cpp.py"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"label": "📃 Format CMake files",
|
||||||
|
"command": "python3",
|
||||||
|
"windows": {
|
||||||
|
"command": "python"
|
||||||
|
},
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceFolder}/Tools"
|
||||||
|
},
|
||||||
|
"args": [
|
||||||
|
"check_format_cmake.py"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"label": "📃 Format Qml files",
|
||||||
|
"command": "python3",
|
||||||
|
"windows": {
|
||||||
|
"command": "python"
|
||||||
|
},
|
||||||
|
"group": {
|
||||||
|
"kind": "build",
|
||||||
|
"isDefault": true
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"cwd": "${workspaceFolder}/Tools"
|
||||||
|
},
|
||||||
|
"args": [
|
||||||
|
"check_format_qml.py"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "process",
|
||||||
|
"label": "🗨️ Update Qt *.ts translations",
|
||||||
"command": "python3",
|
"command": "python3",
|
||||||
"windows": {
|
"windows": {
|
||||||
"command": "python"
|
"command": "python"
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define SCREENPLAY_SOURCE_DIR "@SOURCE_DIR@"
|
#define SCREENPLAY_VERSION "@SCREENPLAY_VERSION@"
|
||||||
|
#define SCREENPLAY_SOURCE_DIR "@SCREENPLAY_SOURCE_DIR@"
|
||||||
|
#define SCREENPLAY_GODOT_VERSION "@SCREENPLAY_GODOT_VERSION@"
|
||||||
|
#define SCREENPLAY_GODOT_VERSION_MAJOR @SCREENPLAY_GODOT_VERSION_MAJOR@
|
||||||
|
#define SCREENPLAY_GODOT_VERSION_MINOR @SCREENPLAY_GODOT_VERSION_MINOR@
|
||||||
|
#define SCREENPLAY_GODOT_RELEASE_TYPE "@SCREENPLAY_GODOT_RELEASE_TYPE@"
|
||||||
|
#define SCREENPLAY_BUILD_TYPE "@SCREENPLAY_BUILD_TYPE@"
|
||||||
|
#define SCREENPLAY_GIT_BRANCH_NAME "@SCREENPLAY_GIT_BRANCH_NAME@"
|
||||||
|
#define SCREENPLAY_GIT_COMMIT_HASH "@SCREENPLAY_GIT_COMMIT_HASH@"
|
||||||
|
#define SCREENPLAY_DEPLOY_VERSION @SCREENPLAY_DEPLOY_VERSION@
|
||||||
|
#define SCREENPLAY_BUILD_DATE "@SCREENPLAY_BUILD_DATE@"
|
||||||
|
#define SCREENPLAY_STEAM_VERSION @SCREENPLAY_STEAM_VERSION@
|
||||||
|
@ -22,7 +22,7 @@ function(copy_recursive SOURCE_PATH DESTINATION_PATH REGEX)
|
|||||||
file(RELATIVE_PATH RELATIVE_FILE_PATH ${SOURCE_PATH} ${file})
|
file(RELATIVE_PATH RELATIVE_FILE_PATH ${SOURCE_PATH} ${file})
|
||||||
get_filename_component(FOLDER ${RELATIVE_FILE_PATH} DIRECTORY ${SOURCE_PATH})
|
get_filename_component(FOLDER ${RELATIVE_FILE_PATH} DIRECTORY ${SOURCE_PATH})
|
||||||
file(MAKE_DIRECTORY ${DESTINATION_PATH}/${FOLDER} )
|
file(MAKE_DIRECTORY ${DESTINATION_PATH}/${FOLDER} )
|
||||||
message(STATUS "${file} - ${DESTINATION_PATH}/${RELATIVE_FILE_PATH}")
|
#message(STATUS "${file} - ${DESTINATION_PATH}/${RELATIVE_FILE_PATH}")
|
||||||
configure_file(${file} "${DESTINATION_PATH}/${RELATIVE_FILE_PATH}" COPYONLY)
|
configure_file(${file} "${DESTINATION_PATH}/${RELATIVE_FILE_PATH}" COPYONLY)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
@ -1,22 +1,41 @@
|
|||||||
message(STATUS "[DMG INSTALLER ENABLED]: Configuring. This can take some time...")
|
message(STATUS "[DMG INSTALLER ENABLED]: Configuring. This can take some time...")
|
||||||
|
|
||||||
|
|
||||||
|
set(CPACK_PACKAGE_VENDOR "Elias Steurer Tachiom")
|
||||||
|
set(CPACK_PACKAGE_NAME "ScreenPlay")
|
||||||
|
set(CPACK_PACKAGE_CONTACT "Elias Steurer <eli@kelteseth.com>")
|
||||||
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ScreenPlay is an Open Source Live-Wallpaper app for Windows and OSX. ")
|
||||||
|
set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md")
|
||||||
|
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
|
||||||
|
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
|
||||||
|
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
|
||||||
|
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
|
||||||
|
|
||||||
set(CPACK_GENERATOR "DragNDrop")
|
set(CPACK_GENERATOR "DragNDrop")
|
||||||
set(CPACK_DMG_FORMAT "UDBZ")
|
set(MACOSX_BUNDLE_BUNDLE_NAME ${CPACK_PACKAGE_NAME})
|
||||||
set(CPACK_DMG_VOLUME_NAME "ScreenPlay")
|
set(MACOSX_BUNDLE_BUNDLE_GUI_IDENTIFIER "app.screenplay.screenplay")
|
||||||
|
set(CPACK_DMG_VOLUME_NAME ${CPACK_PACKAGE_NAME})
|
||||||
set(CPACK_SYSTEM_NAME "OSX")
|
set(CPACK_SYSTEM_NAME "OSX")
|
||||||
set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/ScreenPlay/assets/icons/app.ico")
|
|
||||||
|
|
||||||
set(CPACK_COMPONENTS_GROUPING IGNORE)
|
set(CPACK_COMPONENTS_GROUPING IGNORE)
|
||||||
set(CPACK_PACKAGE_NAME "ScreenPlay")
|
set(CPACK_PACKAGING_INSTALL_PREFIX "/")
|
||||||
set(CPACK_PACKAGE_FILE_NAME "ScreenPlay-Installer")
|
set(CPACK_PACKAGE_FILE_NAME "ScreenPlay-Installer")
|
||||||
set(CPACK_PACKAGE_VENDOR "Elias Steurer")
|
set(CPACK_COMPONENTS_ALL "ScreenPlayComponent")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}")
|
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
|
||||||
set(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}")
|
set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
|
||||||
|
|
||||||
include(CPack)
|
set(MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
||||||
|
set(MACOSX_BUNDLE_ICON_FILE "${CMAKE_SOURCE_DIR}/ScreenPlay/assets/icons/ScreenPlay.icns")
|
||||||
|
set(CPACK_DMG_DS_STORE_SETUP_SCRIPT "${CMAKE_SOURCE_DIR}/CMake/DS_Store.scpt")
|
||||||
|
set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_SOURCE_DIR}/CMake/dmg_background.png")
|
||||||
|
set(MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/CMake/MacOSXBundleInfo.plist.in")
|
||||||
|
|
||||||
|
set_source_files_properties(${CMAKE_SOURCE_DIR}/CMake/exampleApp.icns PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
||||||
|
|
||||||
# Install all files from /bin
|
# Install all files from /bin
|
||||||
install(
|
install(
|
||||||
DIRECTORY "${CMAKE_BINARY_DIR}/bin/"
|
DIRECTORY "${CMAKE_BINARY_DIR}/bin/"
|
||||||
COMPONENT ScreenPlay
|
COMPONENT ScreenPlayComponent
|
||||||
DESTINATION "./")
|
DESTINATION "./")
|
||||||
|
|
||||||
|
include(CPack)
|
||||||
|
41
CMake/DS_Store.scpt
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
on run argv
|
||||||
|
-- Constants for window dimensions
|
||||||
|
|
||||||
|
set BG_W to 780
|
||||||
|
set BG_H to 390
|
||||||
|
set TITLE_BAR_H to 22
|
||||||
|
|
||||||
|
set diskImage to item 1 of argv
|
||||||
|
|
||||||
|
tell application "Finder"
|
||||||
|
tell disk diskImage
|
||||||
|
-- Must call open and close to set window options later
|
||||||
|
open
|
||||||
|
-- Setup background and icon arrangement
|
||||||
|
set current view of container window to icon view
|
||||||
|
set theViewOptions to the icon view options of container window
|
||||||
|
-- Note: CMake automatically renames the file to background.<ext>
|
||||||
|
set background picture of theViewOptions to file ".background:background.png"
|
||||||
|
set arrangement of theViewOptions to not arranged
|
||||||
|
set icon size of theViewOptions to 72
|
||||||
|
|
||||||
|
-- Attempt to hide sidebar and toolbar
|
||||||
|
set toolbar visible of container window to false
|
||||||
|
set statusbar visible of container window to false
|
||||||
|
set sidebar width of container window to 0
|
||||||
|
|
||||||
|
-- Get current position of the window
|
||||||
|
set {currentX, currentY} to position of container window
|
||||||
|
-- Set the new bounds of the window
|
||||||
|
set bounds of container window to {currentX, currentY, currentX + BG_W, currentY + BG_H + TITLE_BAR_H}
|
||||||
|
-- Set icon positions
|
||||||
|
set position of item "ScreenPlay.app" to {137, 99}
|
||||||
|
set position of item "Applications" to {287, 99}
|
||||||
|
|
||||||
|
-- Update and apply changes
|
||||||
|
update without registering applications
|
||||||
|
delay 5
|
||||||
|
close
|
||||||
|
end tell
|
||||||
|
end tell
|
||||||
|
end run
|
@ -1,16 +1,42 @@
|
|||||||
#! generate_cmake_variable_header : Generates a header CmakeVariables.h that contains defines for the variables specified in CmakeVariables.h.in!
|
# ! generate_cmake_variable_header : Generates a header CmakeVariables.h that contains defines for the variables specified in
|
||||||
|
# CmakeVariables.h.in!
|
||||||
#
|
#
|
||||||
# The generated CmakeVariables.h header can then be used to access e.g. the PROJECT_NAME define in C++ code.
|
# The generated CmakeVariables.h header can then be used to access e.g. the PROJECT_NAME define in C++ code.
|
||||||
#
|
#
|
||||||
# Example
|
# Example generate_cmake_variable_header(${PROJECT_NAME})
|
||||||
# generate_cmake_variable_header(${PROJECT_NAME})
|
|
||||||
#
|
#
|
||||||
function(generate_cmake_variable_header TARGET)
|
function(generate_cmake_variable_header TARGET)
|
||||||
set(SOURCE_DIR ${CMAKE_SOURCE_DIR})
|
# ⚠️ Also add to CMakeVariables.h.in ⚠️
|
||||||
|
|
||||||
|
set(SCREENPLAY_SOURCE_DIR ${CMAKE_SOURCE_DIR})
|
||||||
|
# Like v4.2-beta3 or v5.0.1-stable
|
||||||
|
set(SCREENPLAY_GODOT_VERSION ${GODOT_VERSION})
|
||||||
|
# Only single numbers
|
||||||
|
set(SCREENPLAY_GODOT_VERSION_MAJOR ${GODOT_VERSION_MAJOR})
|
||||||
|
set(SCREENPLAY_GODOT_VERSION_MINOR ${GODOT_VERSION_MINOR})
|
||||||
|
# stable, rc1 or beta5
|
||||||
|
set(SCREENPLAY_GODOT_RELEASE_TYPE ${GODOT_RELEASE_TYPE})
|
||||||
|
set(SCREENPLAY_BUILD_TYPE "${CMAKE_BUILD_TYPE}")
|
||||||
|
set(SCREENPLAY_BUILD_DATE "${BUILD_DATE}")
|
||||||
|
set(SCREENPLAY_VERSION "${SCREENPLAY_VERSION}")
|
||||||
|
set(SCREENPLAY_GIT_BRANCH_NAME "${GIT_BRANCH_NAME}")
|
||||||
|
set(SCREENPLAY_GIT_COMMIT_HASH "${GIT_COMMIT_HASH}")
|
||||||
|
|
||||||
|
set(SCREENPLAY_DEPLOY_VERSION 0)
|
||||||
|
if(${SCREENPLAY_DEPLOY})
|
||||||
|
set(SCREENPLAY_DEPLOY_VERSION 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(SCREENPLAY_STEAM_VERSION 0)
|
||||||
|
if(${SCREENPLAY_STEAM})
|
||||||
|
set(SCREENPLAY_STEAM_VERSION 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Specify the configuration file from which the header file will be generated
|
# Specify the configuration file from which the header file will be generated
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/CMake/CMakeVariables.h.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/CMakeVariables.h @ONLY)
|
configure_file(${CMAKE_SOURCE_DIR}/CMake/CMakeVariables.h.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/CMakeVariables.h @ONLY)
|
||||||
message(STATUS "GENERATE: ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/CMakeVariables.h and add ${TARGET} to ${CMAKE_CURRENT_BINARY_DIR}")
|
message(
|
||||||
|
STATUS "GENERATE: ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/CMakeVariables.h and add ${TARGET} to ${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
|
|
||||||
# Add the directory containing the generated header
|
# Add the directory containing the generated header
|
||||||
target_include_directories(${TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
target_include_directories(${TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
endfunction()
|
endfunction()
|
||||||
|
36
CMake/MacOSXBundleInfo.plist.in
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>English</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${MACOSX_BUNDLE_EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleGetInfoString</key>
|
||||||
|
<string>${MACOSX_BUNDLE_INFO_STRING}</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string>${MACOSX_BUNDLE_ICON_FILE}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${MACOSX_BUNDLE_GUI_IDENTIFIER}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleLongVersionString</key>
|
||||||
|
<string>${MACOSX_BUNDLE_LONG_VERSION_STRING}</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${MACOSX_BUNDLE_BUNDLE_NAME}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>${MACOSX_BUNDLE_SHORT_VERSION_STRING}</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
|
||||||
|
<key>NSHumanReadableCopyright</key>
|
||||||
|
<string>${MACOSX_BUNDLE_COPYRIGHT}</string>
|
||||||
|
<key>NSHighResolutionCapable</key>
|
||||||
|
<string>True</string>
|
||||||
|
<key>NSSupportsAutomaticGraphicsSwitching</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
BIN
CMake/dmg_background.png
Executable file
After Width: | Height: | Size: 339 KiB |
@ -2,11 +2,18 @@ cmake_minimum_required(VERSION 3.22.0)
|
|||||||
|
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
|
||||||
include(GetProjectVersion)
|
include(GetProjectVersion)
|
||||||
get_project_version(PROJECT_VERSION)
|
get_project_version(SCREENPLAY_VERSION)
|
||||||
|
|
||||||
|
# This must be set before project()
|
||||||
|
if(APPLE)
|
||||||
|
set(CMAKE_OSX_ARCHITECTURES
|
||||||
|
"arm64;x86_64"
|
||||||
|
CACHE STRING "" FORCE)
|
||||||
|
endif()
|
||||||
|
|
||||||
project(
|
project(
|
||||||
ScreenPlay
|
ScreenPlay
|
||||||
VERSION ${PROJECT_VERSION}
|
VERSION ${SCREENPLAY_VERSION}
|
||||||
DESCRIPTION "Modern, Cross Plattform, Live Wallpaper, Widgets and AppDrawer!"
|
DESCRIPTION "Modern, Cross Plattform, Live Wallpaper, Widgets and AppDrawer!"
|
||||||
HOMEPAGE_URL "https://screen-play.app/"
|
HOMEPAGE_URL "https://screen-play.app/"
|
||||||
LANGUAGES CXX)
|
LANGUAGES CXX)
|
||||||
@ -27,13 +34,6 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
|||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
set(THIRD_PARTY_PATH "${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty")
|
set(THIRD_PARTY_PATH "${CMAKE_CURRENT_SOURCE_DIR}/ThirdParty")
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake" ${CMAKE_MODULE_PATH})
|
||||||
list(APPEND CMAKE_MODULE_PATH "${THIRD_PARTY_PATH}/ecm/modules")
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${THIRD_PARTY_PATH}/ecm/find-modules")
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${THIRD_PARTY_PATH}/ecm/kde-modules")
|
|
||||||
message(STATUS "[PROJECT] CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")
|
|
||||||
|
|
||||||
|
|
||||||
option(OSX_BUNDLE "Enable distribution macOS bundle" OFF)
|
|
||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "13.0")
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "13.0")
|
||||||
|
|
||||||
# This is needed for OSX: Because we bundle ScreenPlay and ScreenPlayWallpaper into .app they both need other QML dependencies like
|
# This is needed for OSX: Because we bundle ScreenPlay and ScreenPlayWallpaper into .app they both need other QML dependencies like
|
||||||
@ -45,7 +45,6 @@ set(CMAKE_OSX_DEPLOYMENT_TARGET "13.0")
|
|||||||
set(SCREENPLAY_QML_MODULES_PATH "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/qml")
|
set(SCREENPLAY_QML_MODULES_PATH "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/qml")
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64")
|
|
||||||
set(SCREENPLAY_QML_MODULES_PATH "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ScreenPlay.app/Contents/MacOS/qml")
|
set(SCREENPLAY_QML_MODULES_PATH "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ScreenPlay.app/Contents/MacOS/qml")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -59,11 +58,37 @@ set(VCPKG_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../vcpkg")
|
|||||||
set(VCPKG_INSTALLED_PATH "${VCPKG_PATH}/installed/${VCPKG_ARCH}")
|
set(VCPKG_INSTALLED_PATH "${VCPKG_PATH}/installed/${VCPKG_ARCH}")
|
||||||
set(VCPKG_BIN_PATH "${VCPKG_INSTALLED_PATH}/bin")
|
set(VCPKG_BIN_PATH "${VCPKG_INSTALLED_PATH}/bin")
|
||||||
|
|
||||||
|
# Godot Editor
|
||||||
|
set(GODOT_VERSION_MAJOR "4")
|
||||||
|
set(GODOT_VERSION_MINOR "2")
|
||||||
|
set(GODOT_VERSION_PATCH "")
|
||||||
|
set(GODOT_RELEASE_TYPE "stable")
|
||||||
|
|
||||||
|
# Use an if statement to check if GODOT_VERSION_PATCH is empty or not
|
||||||
|
if(GODOT_VERSION_PATCH STREQUAL "")
|
||||||
|
# If patch version is empty, don't include it and the preceding dot
|
||||||
|
set(GODOT_VERSION "v${GODOT_VERSION_MAJOR}.${GODOT_VERSION_MINOR}-${GODOT_RELEASE_TYPE}")
|
||||||
|
else()
|
||||||
|
# If patch version is not empty, include it and the preceding dot
|
||||||
|
set(GODOT_VERSION "v${GODOT_VERSION_MAJOR}.${GODOT_VERSION_MINOR}.${GODOT_VERSION_PATCH}-${GODOT_RELEASE_TYPE}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
set(GODOT_EDITOR_NAME "Godot_${GODOT_VERSION}_win64.exe")
|
||||||
|
elseif(APPLE)
|
||||||
|
set(GODOT_EDITOR_NAME "Godot.app")
|
||||||
|
elseif(UNIX)
|
||||||
|
set(GODOT_EDITOR_NAME "Godot_${GODOT_VERSION}_linux.x86_64")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Unsupported OS")
|
||||||
|
endif()
|
||||||
|
|
||||||
option(SCREENPLAY_STEAM "For FOSS distribution so we do not bundle proprietary code." ON)
|
option(SCREENPLAY_STEAM "For FOSS distribution so we do not bundle proprietary code." ON)
|
||||||
option(SCREENPLAY_DEPLOY "Marks this version as an official deploy version. This version uses different import paths and other settings."
|
option(SCREENPLAY_DEPLOY "Marks this version as an official deploy version. This version uses different import paths and other settings."
|
||||||
OFF)
|
OFF)
|
||||||
option(SCREENPLAY_TESTS "Enables UI tests." ON)
|
option(SCREENPLAY_TESTS "Enables UI tests." ON)
|
||||||
option(SCREENPLAY_INSTALLER "Indicates whether an installer via the Qt Installer Framework is created." OFF)
|
option(SCREENPLAY_INSTALLER "Indicates whether an installer via the Qt Installer Framework is created." OFF)
|
||||||
|
option(SCREENPLAY_GODOT "Compiles ScreenPlayGodotWallpaper." ON)
|
||||||
|
|
||||||
# Gitlab CI has many ENV variables. We use this one to check if the current build happens inside the CI
|
# Gitlab CI has many ENV variables. We use this one to check if the current build happens inside the CI
|
||||||
if(DEFINED ENV{CI_COMMIT_MESSAGE})
|
if(DEFINED ENV{CI_COMMIT_MESSAGE})
|
||||||
@ -72,13 +97,8 @@ endif()
|
|||||||
|
|
||||||
file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||||
|
|
||||||
add_compile_definitions(COMPILE_INFO="Build Date: ${BUILD_DATE}. Git Hash: ${GIT_COMMIT_HASH}. ")
|
|
||||||
add_compile_definitions(SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
|
|
||||||
if(${SCREENPLAY_DEPLOY})
|
|
||||||
add_compile_definitions(DEPLOY_VERSION)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(Git REQUIRED)
|
find_package(Git REQUIRED)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(DATE_COMMAND "CMD")
|
set(DATE_COMMAND "CMD")
|
||||||
set(DATE_ARG "/c date /t")
|
set(DATE_ARG "/c date /t")
|
||||||
@ -87,14 +107,12 @@ else()
|
|||||||
set(DATE_ARG "")
|
set(DATE_ARG "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
# Fixes QWebEngine linker errors on Ubuntu 22.04
|
# Fixes QWebEngine linker errors on Ubuntu 22.04
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${DATE_COMMAND} ${DATE_ARG}
|
COMMAND ${DATE_COMMAND} ${DATE_ARG}
|
||||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||||
@ -113,24 +131,21 @@ execute_process(
|
|||||||
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
add_compile_definitions(BUILD_TYPE="${CMAKE_BUILD_TYPE}")
|
if(${SCREENPLAY_TESTS})
|
||||||
add_compile_definitions(BUILD_DATE="${BUILD_DATE}")
|
enable_testing()
|
||||||
add_compile_definitions(GIT_BRANCH_NAME="${GIT_BRANCH_NAME}")
|
endif()
|
||||||
add_compile_definitions(GIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
|
|
||||||
|
|
||||||
add_subdirectory(ThirdParty)
|
|
||||||
set(ECM_DIR "${THIRD_PARTY_PATH}/ecm")
|
|
||||||
add_subdirectory(CMake)
|
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
# Needs to be append, because we include ecm as third party on linux
|
# Needs to be append, because we include ecm as third party on linux
|
||||||
|
set(ECM_DIR "${THIRD_PARTY_PATH}/ecm")
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMake")
|
||||||
list(APPEND CMAKE_MODULE_PATH "${ECM_DIR}")
|
list(APPEND CMAKE_MODULE_PATH "${ECM_DIR}")
|
||||||
list(APPEND CMAKE_MODULE_PATH "${ECM_DIR}/cmake")
|
list(APPEND CMAKE_MODULE_PATH "${ECM_DIR}/cmake")
|
||||||
else()
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
add_subdirectory(Tools)
|
|
||||||
|
|
||||||
|
add_subdirectory(ThirdParty)
|
||||||
|
add_subdirectory(CMake)
|
||||||
|
add_subdirectory(Tools)
|
||||||
add_subdirectory(ScreenPlay)
|
add_subdirectory(ScreenPlay)
|
||||||
add_subdirectory(ScreenPlaySDK)
|
add_subdirectory(ScreenPlaySDK)
|
||||||
add_subdirectory(ScreenPlayShader)
|
add_subdirectory(ScreenPlayShader)
|
||||||
@ -139,12 +154,13 @@ add_subdirectory(ScreenPlayWidget)
|
|||||||
add_subdirectory(ScreenPlayUtil)
|
add_subdirectory(ScreenPlayUtil)
|
||||||
add_subdirectory(ScreenPlayWeather)
|
add_subdirectory(ScreenPlayWeather)
|
||||||
|
|
||||||
if(${SCREENPLAY_TESTS})
|
if(${SCREENPLAY_GODOT})
|
||||||
enable_testing()
|
add_subdirectory(ScreenPlayWallpaper/Godot)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Only add target SteamSDKQtEnums
|
# Only add target SteamSDKQtEnums
|
||||||
add_subdirectory(ScreenPlayWorkshop/SteamSDK)
|
add_subdirectory(ScreenPlayWorkshop/SteamSDK)
|
||||||
|
|
||||||
if(${SCREENPLAY_STEAM})
|
if(${SCREENPLAY_STEAM})
|
||||||
add_subdirectory(ScreenPlayWorkshop)
|
add_subdirectory(ScreenPlayWorkshop)
|
||||||
endif()
|
endif()
|
||||||
@ -161,7 +177,7 @@ if(${SCREENPLAY_INSTALLER})
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message(STATUS "[PROJECT] PROJECT_VERSION = ${PROJECT_VERSION}")
|
message(STATUS "[PROJECT] CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")
|
||||||
message(STATUS "[PROJECT] CMAKE_VERSION = ${CMAKE_VERSION}")
|
message(STATUS "[PROJECT] CMAKE_VERSION = ${CMAKE_VERSION}")
|
||||||
message(STATUS "[PROJECT] SCREENPLAY_QML_MODULES_PATH = ${SCREENPLAY_QML_MODULES_PATH}")
|
message(STATUS "[PROJECT] SCREENPLAY_QML_MODULES_PATH = ${SCREENPLAY_QML_MODULES_PATH}")
|
||||||
message(STATUS "[PROJECT] CMAKE_TOOLCHAIN_FILE = ${CMAKE_TOOLCHAIN_FILE}")
|
message(STATUS "[PROJECT] CMAKE_TOOLCHAIN_FILE = ${CMAKE_TOOLCHAIN_FILE}")
|
||||||
@ -169,10 +185,14 @@ message(STATUS "[PROJECT] VCPKG_PATH = ${VCPKG_PATH}")
|
|||||||
message(STATUS "[PROJECT] CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")
|
message(STATUS "[PROJECT] CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}")
|
||||||
message(STATUS "[PROJECT] VCPKG_TARGET_TRIPLET = ${VCPKG_TARGET_TRIPLET}")
|
message(STATUS "[PROJECT] VCPKG_TARGET_TRIPLET = ${VCPKG_TARGET_TRIPLET}")
|
||||||
message(STATUS "[PROJECT] CMAKE_PREFIX_PATH = ${CMAKE_PREFIX_PATH}")
|
message(STATUS "[PROJECT] CMAKE_PREFIX_PATH = ${CMAKE_PREFIX_PATH}")
|
||||||
|
message(STATUS "[PROJECT] GODOT_VERSION = ${GODOT_VERSION}")
|
||||||
|
message(STATUS "[PROJECT] GODOT_EDITOR_NAME = ${GODOT_EDITOR_NAME}")
|
||||||
|
message(STATUS "[PROJECT] SCREENPLAY_VERSION = ${SCREENPLAY_VERSION}")
|
||||||
message(STATUS "[OPTION] SCREENPLAY_DEPLOY = ${SCREENPLAY_DEPLOY}")
|
message(STATUS "[OPTION] SCREENPLAY_DEPLOY = ${SCREENPLAY_DEPLOY}")
|
||||||
message(STATUS "[OPTION] SCREENPLAY_INSTALLER = ${SCREENPLAY_INSTALLER}")
|
message(STATUS "[OPTION] SCREENPLAY_INSTALLER = ${SCREENPLAY_INSTALLER}")
|
||||||
message(STATUS "[OPTION] SCREENPLAY_STEAM = ${SCREENPLAY_STEAM}")
|
message(STATUS "[OPTION] SCREENPLAY_STEAM = ${SCREENPLAY_STEAM}")
|
||||||
message(STATUS "[OPTION] SCREENPLAY_TESTS = ${SCREENPLAY_TESTS}")
|
message(STATUS "[OPTION] SCREENPLAY_TESTS = ${SCREENPLAY_TESTS}")
|
||||||
|
message(STATUS "[OPTION] SCREENPLAY_GODOT = ${SCREENPLAY_GODOT}")
|
||||||
message(STATUS "[DEFINE] BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
|
message(STATUS "[DEFINE] BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
|
||||||
message(STATUS "[DEFINE] GIT_COMMIT_HASH = ${GIT_COMMIT_HASH}")
|
message(STATUS "[DEFINE] GIT_COMMIT_HASH = ${GIT_COMMIT_HASH}")
|
||||||
message(STATUS "[CPP DEFINE] DEPLOY_VERSION = ${DEPLOY_VERSION}")
|
message(STATUS "[CPP DEFINE] DEPLOY_VERSION = ${DEPLOY_VERSION}")
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
},
|
},
|
||||||
"environment": {
|
"environment": {
|
||||||
"qt_path": "${sourceDir}/../aqt",
|
"qt_path": "${sourceDir}/../aqt",
|
||||||
"qt_version": "6.5.2"
|
"qt_version": "6.6.1"
|
||||||
},
|
},
|
||||||
"toolset": {
|
"toolset": {
|
||||||
"value": "host=x64",
|
"value": "host=x64",
|
||||||
@ -38,47 +38,58 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "windows-debug-qt-6.5.2",
|
"name": "windows-debug-qt-6.6.1",
|
||||||
"inherits": "default-windows",
|
"inherits": "default-windows",
|
||||||
"displayName": "MSVC SP Qt 6.5.2 Debug",
|
"displayName": "MSVC SP Qt 6.6.1 Debug",
|
||||||
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.5.2_MSVC_Debug",
|
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_MSVC_Debug",
|
||||||
"environment": {
|
"environment": {
|
||||||
"qt_version": "6.5.2"
|
"qt_version": "6.6.1"
|
||||||
},
|
},
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "Debug"
|
"CMAKE_BUILD_TYPE": "Debug"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "windows-relwithdebinfo-qt-6.5.2",
|
"name": "windows-relwithdebinfo-qt-6.6.1",
|
||||||
"inherits": "default-windows",
|
"inherits": "default-windows",
|
||||||
"displayName": "MSVC SP Qt 6.5.2 RelWithDebInfo",
|
"displayName": "MSVC SP Qt 6.6.1 RelWithDebInfo",
|
||||||
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.5.2_MSVC_RelWithDebInfo",
|
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_MSVC_RelWithDebInfo",
|
||||||
"environment": {
|
"environment": {
|
||||||
"qt_version": "6.5.2"
|
"qt_version": "6.6.1"
|
||||||
},
|
},
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
|
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "windows-release-qt-6.5.2",
|
"name": "windows-release-qt-6.6.1",
|
||||||
"inherits": "default-windows",
|
"inherits": "default-windows",
|
||||||
"displayName": "MSVC SP Qt 6.5.2 Release",
|
"displayName": "MSVC SP Qt 6.6.1 Release",
|
||||||
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.5.2_MSVC_Release",
|
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_MSVC_Release",
|
||||||
"environment": {
|
"environment": {
|
||||||
"qt_version": "6.5.2"
|
"qt_version": "6.6.1"
|
||||||
},
|
},
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "Release"
|
"CMAKE_BUILD_TYPE": "Release"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "windows-release-qt-6.6.1-release-deploy",
|
||||||
|
"inherits": "windows-release-qt-6.6.1",
|
||||||
|
"displayName": "MSVC SP Qt 6.6.1 Release Steam Deploy",
|
||||||
|
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_MSVC_Release_Steam_Deploy",
|
||||||
|
"cacheVariables": {
|
||||||
|
"CMAKE_BUILD_TYPE": "Release",
|
||||||
|
"SCREENPLAY_DEPLOY": "ON",
|
||||||
|
"SCREENPLAY_STEAM": "ON"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "linux-generic-debug",
|
"name": "linux-generic-debug",
|
||||||
"displayName": "ScreenPlay 64bit Debug Linux",
|
"displayName": "ScreenPlay 64bit Debug Linux",
|
||||||
"description": "Linux only!",
|
"description": "Linux only!",
|
||||||
"generator": "Ninja",
|
"generator": "Ninja",
|
||||||
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.5.2_GCC_Debug",
|
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_GCC_Debug",
|
||||||
"condition": {
|
"condition": {
|
||||||
"type": "equals",
|
"type": "equals",
|
||||||
"lhs": "${hostSystemName}",
|
"lhs": "${hostSystemName}",
|
||||||
@ -102,7 +113,7 @@
|
|||||||
"name": "linux-relwithdebinfo",
|
"name": "linux-relwithdebinfo",
|
||||||
"displayName": "ScreenPlay 64bit RelWithDebInfo Linux",
|
"displayName": "ScreenPlay 64bit RelWithDebInfo Linux",
|
||||||
"inherits": "linux-generic-debug",
|
"inherits": "linux-generic-debug",
|
||||||
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.5.2_GCC_RelWithDebInfo",
|
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_GCC_RelWithDebInfo",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
|
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
|
||||||
}
|
}
|
||||||
@ -112,7 +123,7 @@
|
|||||||
"displayName": "ScreenPlay 64bit Debug Linux using aqt",
|
"displayName": "ScreenPlay 64bit Debug Linux using aqt",
|
||||||
"description": "Linux only!",
|
"description": "Linux only!",
|
||||||
"generator": "Ninja",
|
"generator": "Ninja",
|
||||||
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.5.2_GCC_Debug",
|
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_GCC_Debug",
|
||||||
"condition": {
|
"condition": {
|
||||||
"type": "equals",
|
"type": "equals",
|
||||||
"lhs": "${hostSystemName}",
|
"lhs": "${hostSystemName}",
|
||||||
@ -129,7 +140,7 @@
|
|||||||
"CMAKE_CXX_COMPILER": "g++",
|
"CMAKE_CXX_COMPILER": "g++",
|
||||||
"CMAKE_C_COMPILER": "gcc",
|
"CMAKE_C_COMPILER": "gcc",
|
||||||
"CMAKE_BUILD_TYPE": "Debug",
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
"CMAKE_PREFIX_PATH": "$env{qt_path}/6.5.2/gcc_64",
|
"CMAKE_PREFIX_PATH": "$env{qt_path}/6.6.1/gcc_64",
|
||||||
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../vcpkg/scripts/buildsystems/vcpkg.cmake",
|
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../vcpkg/scripts/buildsystems/vcpkg.cmake",
|
||||||
"VCPKG_TARGET_TRIPLET": "x64-linux"
|
"VCPKG_TARGET_TRIPLET": "x64-linux"
|
||||||
}
|
}
|
||||||
@ -138,7 +149,7 @@
|
|||||||
"name": "linux-aqt-relwithdebinfo",
|
"name": "linux-aqt-relwithdebinfo",
|
||||||
"displayName": "ScreenPlay 64bit RelWithDebInfo Linux using aqt",
|
"displayName": "ScreenPlay 64bit RelWithDebInfo Linux using aqt",
|
||||||
"inherits": "linux-ubuntu-debug",
|
"inherits": "linux-ubuntu-debug",
|
||||||
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.5.2_GCC_RelWithDebInfo",
|
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_GCC_RelWithDebInfo",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
|
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
|
||||||
}
|
}
|
||||||
@ -148,7 +159,7 @@
|
|||||||
"displayName": "ScreenPlay 64bit Debug osx",
|
"displayName": "ScreenPlay 64bit Debug osx",
|
||||||
"description": "Osx only!",
|
"description": "Osx only!",
|
||||||
"generator": "Ninja",
|
"generator": "Ninja",
|
||||||
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.5.2_Clang_Debug",
|
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_Clang_Debug",
|
||||||
"condition": {
|
"condition": {
|
||||||
"type": "equals",
|
"type": "equals",
|
||||||
"lhs": "${hostSystemName}",
|
"lhs": "${hostSystemName}",
|
||||||
@ -163,7 +174,7 @@
|
|||||||
"CMAKE_CXX_COMPILER": "clang++",
|
"CMAKE_CXX_COMPILER": "clang++",
|
||||||
"CMAKE_C_COMPILER": "clang",
|
"CMAKE_C_COMPILER": "clang",
|
||||||
"CMAKE_BUILD_TYPE": "Debug",
|
"CMAKE_BUILD_TYPE": "Debug",
|
||||||
"CMAKE_PREFIX_PATH": "$env{qt_path}/6.5.2/macos",
|
"CMAKE_PREFIX_PATH": "$env{qt_path}/6.6.1/macos",
|
||||||
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../vcpkg/scripts/buildsystems/vcpkg.cmake"
|
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/../vcpkg/scripts/buildsystems/vcpkg.cmake"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -171,7 +182,7 @@
|
|||||||
"name": "osx-relwithdebinfo",
|
"name": "osx-relwithdebinfo",
|
||||||
"displayName": "ScreenPlay 64bit RelWithDebInfo osx",
|
"displayName": "ScreenPlay 64bit RelWithDebInfo osx",
|
||||||
"inherits": "osx-debug",
|
"inherits": "osx-debug",
|
||||||
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.5.2_Clang_RelWithDebInfo",
|
"binaryDir": "${sourceDir}/../build_ScreenPlay_Qt_6.6.1_Clang_RelWithDebInfo",
|
||||||
"cacheVariables": {
|
"cacheVariables": {
|
||||||
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
|
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
|
||||||
}
|
}
|
||||||
@ -190,5 +201,13 @@
|
|||||||
"name": "osx-debug",
|
"name": "osx-debug",
|
||||||
"configurePreset": "osx-debug"
|
"configurePreset": "osx-debug"
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"testPresets": [
|
||||||
|
{
|
||||||
|
"name": "Test",
|
||||||
|
"description": "",
|
||||||
|
"displayName": "",
|
||||||
|
"configurePreset": "windows-release-qt-6.6.1"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
2
Content/wallpaper_godot_fjord/.gitattributes
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Normalize EOL for all files that Git considers text files.
|
||||||
|
* text=auto eol=lf
|
2
Content/wallpaper_godot_fjord/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Godot 4+ specific ignores
|
||||||
|
.godot/
|
27
Content/wallpaper_godot_fjord/Action.gd
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
extends Node
|
||||||
|
|
||||||
|
# Reference to the PathFollow node
|
||||||
|
@onready var path_follow = $Path3D/PathFollow3D
|
||||||
|
@onready var label = $Label3D
|
||||||
|
var debug_path
|
||||||
|
var screenplaywallpaper
|
||||||
|
var appID = ""
|
||||||
|
# Speed of the movement along the path
|
||||||
|
var speed = 0.8
|
||||||
|
var path = "/root/Wallpaper/ScreenPlayGodotWallpaper"
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
# Update the offset to move the object along the path
|
||||||
|
path_follow.progress += speed * delta
|
||||||
|
|
||||||
|
# Loop back to the start if we've reached the end of the path
|
||||||
|
if path_follow.progress >= 18.81:
|
||||||
|
path_follow.progress = 0.0
|
||||||
|
return
|
||||||
|
if has_node(path):
|
||||||
|
if get_node(path):
|
||||||
|
appID = screenplaywallpaper.get_appID()
|
||||||
|
else:
|
||||||
|
appID = "404"
|
||||||
|
label.text = "Godot Wallpaper\n" + Time.get_time_string_from_system() + "\nAppID: " + appID
|
17
Content/wallpaper_godot_fjord/Path3D.gd
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
extends Path3D
|
||||||
|
|
||||||
|
# Reference to the PathFollow node
|
||||||
|
@onready var path_follow = $PathFollow3D
|
||||||
|
@onready var path_follow =
|
||||||
|
|
||||||
|
# Speed of the movement along the path
|
||||||
|
var speed = 0.8
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
# Update the offset to move the object along the path
|
||||||
|
path_follow.progress += speed * delta
|
||||||
|
|
||||||
|
# Loop back to the start if we've reached the end of the path
|
||||||
|
if path_follow.progress >= 18.81:
|
||||||
|
path_follow.progress = 0.0
|
61
Content/wallpaper_godot_fjord/export_presets.cfg
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
[preset.0]
|
||||||
|
|
||||||
|
name="Windows Desktop"
|
||||||
|
platform="Windows Desktop"
|
||||||
|
runnable=true
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter=""
|
||||||
|
export_path=""
|
||||||
|
encryption_include_filters=""
|
||||||
|
encryption_exclude_filters=""
|
||||||
|
encrypt_pck=false
|
||||||
|
encrypt_directory=false
|
||||||
|
|
||||||
|
[preset.0.options]
|
||||||
|
|
||||||
|
custom_template/debug=""
|
||||||
|
custom_template/release=""
|
||||||
|
debug/export_console_wrapper=1
|
||||||
|
binary_format/embed_pck=false
|
||||||
|
texture_format/bptc=true
|
||||||
|
texture_format/s3tc=true
|
||||||
|
texture_format/etc=false
|
||||||
|
texture_format/etc2=false
|
||||||
|
binary_format/architecture="x86_64"
|
||||||
|
codesign/enable=false
|
||||||
|
codesign/timestamp=true
|
||||||
|
codesign/timestamp_server_url=""
|
||||||
|
codesign/digest_algorithm=1
|
||||||
|
codesign/description=""
|
||||||
|
codesign/custom_options=PackedStringArray()
|
||||||
|
application/modify_resources=true
|
||||||
|
application/icon=""
|
||||||
|
application/console_wrapper_icon=""
|
||||||
|
application/icon_interpolation=4
|
||||||
|
application/file_version=""
|
||||||
|
application/product_version=""
|
||||||
|
application/company_name=""
|
||||||
|
application/product_name=""
|
||||||
|
application/file_description=""
|
||||||
|
application/copyright=""
|
||||||
|
application/trademarks=""
|
||||||
|
ssh_remote_deploy/enabled=false
|
||||||
|
ssh_remote_deploy/host="user@host_ip"
|
||||||
|
ssh_remote_deploy/port="22"
|
||||||
|
ssh_remote_deploy/extra_args_ssh=""
|
||||||
|
ssh_remote_deploy/extra_args_scp=""
|
||||||
|
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||||
|
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||||
|
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||||
|
$settings = New-ScheduledTaskSettingsSet
|
||||||
|
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||||
|
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||||
|
Start-ScheduledTask -TaskName godot_remote_debug
|
||||||
|
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||||
|
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||||
|
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||||
|
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||||
|
Remove-Item -Recurse -Force '{temp_dir}'"
|
1
Content/wallpaper_godot_fjord/icon.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 813 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H447l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c3 34 55 34 58 0v-86c-3-34-55-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>
|
After Width: | Height: | Size: 950 B |
37
Content/wallpaper_godot_fjord/icon.svg.import
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://boex5vkldqpl5"
|
||||||
|
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://icon.svg"
|
||||||
|
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
BIN
Content/wallpaper_godot_fjord/preview.png
Normal file
After Width: | Height: | Size: 166 KiB |
34
Content/wallpaper_godot_fjord/preview.png.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b50wk45iaak85"
|
||||||
|
path="res://.godot/imported/preview.png-b4838d23de224c84c7c9b5588b6708a6.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://preview.png"
|
||||||
|
dest_files=["res://.godot/imported/preview.png-b4838d23de224c84c7c9b5588b6708a6.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
20
Content/wallpaper_godot_fjord/project.godot
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
; Engine configuration file.
|
||||||
|
; It's best edited using the editor UI and not directly,
|
||||||
|
; since the parameters that go here are not all obvious.
|
||||||
|
;
|
||||||
|
; Format:
|
||||||
|
; [section] ; section goes between []
|
||||||
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
|
config_version=5
|
||||||
|
|
||||||
|
[application]
|
||||||
|
|
||||||
|
config/name="Fjord"
|
||||||
|
run/main_scene="res://wallpaper.tscn"
|
||||||
|
config/features=PackedStringArray("4.2", "Mobile")
|
||||||
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[rendering]
|
||||||
|
|
||||||
|
renderer/rendering_method="mobile"
|
11
Content/wallpaper_godot_fjord/project.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"description": "Godot",
|
||||||
|
"file": "main.qml",
|
||||||
|
"preview": "preview.png",
|
||||||
|
"tags": [
|
||||||
|
"Godot"
|
||||||
|
],
|
||||||
|
"title": "Godot Wallpaper",
|
||||||
|
"type": "godotWallpaper",
|
||||||
|
"visibility": "public"
|
||||||
|
}
|
39
Content/wallpaper_godot_fjord/wallpaper.tscn
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://dp883pjlm7gk8"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://Action.gd" id="1_p251a"]
|
||||||
|
|
||||||
|
[sub_resource type="Curve3D" id="Curve3D_8adw4"]
|
||||||
|
bake_interval = 2.4
|
||||||
|
_data = {
|
||||||
|
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2.82099, -0.143238, -1.14419, 0, 0, 0, 0, 0, 0, -0.837192, 0.205974, -1.5077, 0, 0, 0, 0, 0, 0, 2.26923, 2.38419e-07, -1.10178, 0, 0, 0, 0, 0, 0, 3.0406, -0.00296563, 0.345948, 0, 0, 0, 0, 0, 0, 0.398976, -0.117547, 1.42909, 0, 0, 0, 0, 0, 0, -2.74903, -0.071628, 0.795209, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||||
|
"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0)
|
||||||
|
}
|
||||||
|
point_count = 8
|
||||||
|
|
||||||
|
[node name="Node3D" type="Node3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0123152, 0)
|
||||||
|
script = ExtResource("1_p251a")
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.04825, 4.0185)
|
||||||
|
|
||||||
|
[node name="CSGBox3D" type="CSGBox3D" parent="."]
|
||||||
|
transform = Transform3D(3.5774, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.223695, 0)
|
||||||
|
size = Vector3(7.59119, 0.0764128, 5.75358)
|
||||||
|
|
||||||
|
[node name="Path3D" type="Path3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.1394, 0, 0.705414)
|
||||||
|
curve = SubResource("Curve3D_8adw4")
|
||||||
|
|
||||||
|
[node name="PathFollow3D" type="PathFollow3D" parent="Path3D"]
|
||||||
|
transform = Transform3D(0.375854, -0.0435545, 0.925652, -3.72525e-09, 0.998895, 0.0470007, -0.926666, -0.0176657, 0.375443, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="Path3D/PathFollow3D"]
|
||||||
|
light_color = Color(0.921569, 0.52549, 0.32549, 1)
|
||||||
|
|
||||||
|
[node name="Label3D" type="Label3D" parent="."]
|
||||||
|
transform = Transform3D(0.997247, 0, 0, 0, 0.997247, 0, 0, 0, 0.997247, 0.030704, 1.238, -1.40679)
|
||||||
|
shaded = true
|
||||||
|
text = "GODO WALLPAPER"
|
||||||
|
font_size = 126
|
||||||
|
outline_size = 42
|
@ -3,6 +3,7 @@ import QtQuick
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import QtQuick.Controls
|
import QtQuick.Controls
|
||||||
import QtQuick.Controls.Material
|
import QtQuick.Controls.Material
|
||||||
|
import ScreenPlayWallpaper
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: root
|
id: root
|
||||||
@ -23,5 +24,16 @@ Rectangle {
|
|||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
onClicked: root.counter++
|
onClicked: root.counter++
|
||||||
}
|
}
|
||||||
|
TextField {
|
||||||
|
placeholderText: "Edit me"
|
||||||
|
}
|
||||||
|
Button {
|
||||||
|
text: "Exit"
|
||||||
|
onClicked: {
|
||||||
|
Qt.callLater(function () {
|
||||||
|
Wallpaper.terminate();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -120,3 +120,23 @@ Error: HTTP status code: 403. A required agreement is missing or has expired. Th
|
|||||||
```
|
```
|
||||||
|
|
||||||
Go to [appstoreconnect.apple.com](https://appstoreconnect.apple.com) and accept the updated 'Apple Developer Program License Agreement'.
|
Go to [appstoreconnect.apple.com](https://appstoreconnect.apple.com) and accept the updated 'Apple Developer Program License Agreement'.
|
||||||
|
|
||||||
|
## Dmg signing
|
||||||
|
Ensure you have both a Developer ID Application certificate and a Developer ID Installer certificate in your Keychain. You can check this in the Keychain Access app.
|
||||||
|
- Developer ID Application Certificate:
|
||||||
|
- Used for code signing the application itself. This ensures that the app is from a known developer and hasn't been tampered with since it was signed.
|
||||||
|
- Developer ID Installer Certificate:
|
||||||
|
- Used specifically for signing installer packages like PKG files or disk images (DMGs). This is separate from the application certificate and is specifically for the installer.
|
||||||
|
1. Check Your Certificates at https://developer.apple.com/account/resources/certificates/list and create a new one `Mac Installer Distribution
|
||||||
|
This certificate is used to sign your app's Installer Package for submission to the Mac App Store.`
|
||||||
|
2. `Upload a Certificate Signing Request`. To manually generate a Certificate, you need a Certificate Signing Request (CSR) file from your Mac. https://developer.apple.com/help/account/create-certificates/create-a-certificate-signing-request
|
||||||
|
1. Launch Keychain Access located in /Applications/Utilities.
|
||||||
|
1. Choose Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority.
|
||||||
|
1. In the Certificate Assistant dialog, enter an email address in the User Email Address field.
|
||||||
|
1. In the Common Name field, enter a name for the key (for example, Gita Kumar Dev Key).
|
||||||
|
1. Leave the CA Email Address field empty.
|
||||||
|
1. Choose “Saved to disk,” call it something like `CertificateSigningRequest_Tachiom_Installer_Certificate` then click Continue.
|
||||||
|
3. Download the new certificate
|
||||||
|
4. Download your certificate to your Mac, then double click the .cer file to install in Keychain Access. IMPORTANT: Select `Keychan: Login` in the dropdown! Make sure to save a backup copy of your private and public keys somewhere secure.
|
||||||
|
- The "login" keychain is tied to your user account and unlocks when you log in, making it a convenient location for development-related certificates. The "System" keychain is more restrictive and requires admin permissions for access, while the "Local Items" keychain is specific to iCloud Keychain items.
|
||||||
|
5. This should now be displayed like `3rd Party Mac Developer Installer: Elias Steurer (V887LHYKRH)` and be valid one year.
|
@ -5,6 +5,9 @@ set(CMAKE_CXX_STANDARD 20)
|
|||||||
set(CMAKE_AUTORCC ON)
|
set(CMAKE_AUTORCC ON)
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
|
||||||
|
# ##### USE CMAKE VARIABLES IN CODE #####
|
||||||
|
include(GenerateCMakeVariableHeader)
|
||||||
|
|
||||||
set(SOURCES
|
set(SOURCES
|
||||||
# cmake-format: sort
|
# cmake-format: sort
|
||||||
src/app.cpp
|
src/app.cpp
|
||||||
@ -21,7 +24,6 @@ set(SOURCES
|
|||||||
src/screenplaywidget.cpp
|
src/screenplaywidget.cpp
|
||||||
src/sdkconnection.cpp
|
src/sdkconnection.cpp
|
||||||
src/settings.cpp
|
src/settings.cpp
|
||||||
src/util.cpp
|
|
||||||
src/wizards.cpp)
|
src/wizards.cpp)
|
||||||
|
|
||||||
set(HEADER
|
set(HEADER
|
||||||
@ -42,21 +44,21 @@ set(HEADER
|
|||||||
inc/public/ScreenPlay/screenplaywidget.h
|
inc/public/ScreenPlay/screenplaywidget.h
|
||||||
inc/public/ScreenPlay/sdkconnection.h
|
inc/public/ScreenPlay/sdkconnection.h
|
||||||
inc/public/ScreenPlay/settings.h
|
inc/public/ScreenPlay/settings.h
|
||||||
inc/public/ScreenPlay/util.h
|
|
||||||
inc/public/ScreenPlay/wizards.h)
|
inc/public/ScreenPlay/wizards.h)
|
||||||
|
|
||||||
set(QML
|
set(QML
|
||||||
# cmake-format: sort
|
# cmake-format: sort
|
||||||
main.qml
|
main.qml
|
||||||
qml/Community/Community.qml
|
|
||||||
qml/Community/CommunityNavItem.qml
|
qml/Community/CommunityNavItem.qml
|
||||||
|
qml/Community/CommunityView.qml
|
||||||
qml/Community/XMLNewsfeed.qml
|
qml/Community/XMLNewsfeed.qml
|
||||||
qml/Create/Create.qml
|
|
||||||
qml/Create/CreateSidebar.qml
|
qml/Create/CreateSidebar.qml
|
||||||
|
qml/Create/CreateView.qml
|
||||||
qml/Create/StartInfo.qml
|
qml/Create/StartInfo.qml
|
||||||
qml/Create/StartInfoLinkImage.qml
|
qml/Create/StartInfoLinkImage.qml
|
||||||
qml/Create/Wizard.qml
|
qml/Create/Wizard.qml
|
||||||
qml/Create/Wizards/GifWallpaper.qml
|
qml/Create/Wizards/GifWallpaper.qml
|
||||||
|
qml/Create/Wizards/GodotWallpaper.qml
|
||||||
qml/Create/Wizards/HTMLWallpaper.qml
|
qml/Create/Wizards/HTMLWallpaper.qml
|
||||||
qml/Create/Wizards/HTMLWidget.qml
|
qml/Create/Wizards/HTMLWidget.qml
|
||||||
qml/Create/Wizards/Importh264/Importh264.qml
|
qml/Create/Wizards/Importh264/Importh264.qml
|
||||||
@ -73,32 +75,30 @@ set(QML
|
|||||||
qml/Create/Wizards/QMLWidget.qml
|
qml/Create/Wizards/QMLWidget.qml
|
||||||
qml/Create/Wizards/WebsiteWallpaper.qml
|
qml/Create/Wizards/WebsiteWallpaper.qml
|
||||||
qml/Create/Wizards/WizardPage.qml
|
qml/Create/Wizards/WizardPage.qml
|
||||||
qml/Create/WizardsFiles/QMLWallpaperMain.qml
|
|
||||||
qml/Create/WizardsFiles/QMLWidgetMain.qml
|
|
||||||
qml/Installed/Installed.qml
|
|
||||||
qml/Installed/InstalledNavigation.qml
|
qml/Installed/InstalledNavigation.qml
|
||||||
|
qml/Installed/InstalledView.qml
|
||||||
qml/Installed/InstalledWelcomeScreen.qml
|
qml/Installed/InstalledWelcomeScreen.qml
|
||||||
qml/Installed/ScreenPlayItem.qml
|
qml/Installed/ScreenPlayItem.qml
|
||||||
qml/Installed/ScreenPlayItemImage.qml
|
qml/Installed/ScreenPlayItemImage.qml
|
||||||
qml/Installed/Sidebar.qml
|
qml/Installed/Sidebar.qml
|
||||||
qml/Monitors/DefaultVideoControls.qml
|
qml/Monitors/DefaultVideoControls.qml
|
||||||
qml/Monitors/Monitors.qml
|
|
||||||
qml/Monitors/MonitorSelection.qml
|
qml/Monitors/MonitorSelection.qml
|
||||||
qml/Monitors/MonitorSelectionItem.qml
|
qml/Monitors/MonitorSelectionItem.qml
|
||||||
qml/Monitors/MonitorsProjectSettingItem.qml
|
qml/Monitors/MonitorsProjectSettingItem.qml
|
||||||
|
qml/Monitors/MonitorsView.qml
|
||||||
qml/Monitors/SaveNotification.qml
|
qml/Monitors/SaveNotification.qml
|
||||||
qml/Navigation/ExitPopup.qml
|
qml/Navigation/ExitPopup.qml
|
||||||
qml/Navigation/Navigation.qml
|
qml/Navigation/Navigation.qml
|
||||||
qml/Settings/SettingBool.qml
|
qml/Settings/SettingBool.qml
|
||||||
qml/Settings/Settings.qml
|
|
||||||
qml/Settings/SettingsButton.qml
|
qml/Settings/SettingsButton.qml
|
||||||
qml/Settings/SettingsComboBox.qml
|
qml/Settings/SettingsComboBox.qml
|
||||||
qml/Settings/SettingsExpander.qml
|
qml/Settings/SettingsExpander.qml
|
||||||
qml/Settings/SettingsHeader.qml
|
qml/Settings/SettingsHeader.qml
|
||||||
qml/Settings/SettingsHorizontalSeperator.qml
|
qml/Settings/SettingsHorizontalSeperator.qml
|
||||||
qml/Settings/SettingsPage.qml
|
qml/Settings/SettingsPage.qml
|
||||||
|
qml/Settings/SettingsView.qml
|
||||||
qml/TrayIcon.qml
|
qml/TrayIcon.qml
|
||||||
qml/Workshop/Workshop.qml)
|
qml/Workshop/WorkshopView.qml)
|
||||||
|
|
||||||
set(TS_FILES
|
set(TS_FILES
|
||||||
# cmake-format: sort
|
# cmake-format: sort
|
||||||
@ -135,6 +135,7 @@ set(RESOURCES
|
|||||||
assets/icons/icon_build.svg
|
assets/icons/icon_build.svg
|
||||||
assets/icons/icon_cake.afdesign
|
assets/icons/icon_cake.afdesign
|
||||||
assets/icons/icon_cake.svg
|
assets/icons/icon_cake.svg
|
||||||
|
assets/icons/icon_cancel_presentation.svg
|
||||||
assets/icons/icon_close.svg
|
assets/icons/icon_close.svg
|
||||||
assets/icons/icon_code.svg
|
assets/icons/icon_code.svg
|
||||||
assets/icons/icon_community.svg
|
assets/icons/icon_community.svg
|
||||||
@ -143,6 +144,7 @@ set(RESOURCES
|
|||||||
assets/icons/icon_document.svg
|
assets/icons/icon_document.svg
|
||||||
assets/icons/icon_done.svg
|
assets/icons/icon_done.svg
|
||||||
assets/icons/icon_download.svg
|
assets/icons/icon_download.svg
|
||||||
|
assets/icons/icon_edit.svg
|
||||||
assets/icons/icon_emptyWidget.svg
|
assets/icons/icon_emptyWidget.svg
|
||||||
assets/icons/icon_folder_open.svg
|
assets/icons/icon_folder_open.svg
|
||||||
assets/icons/icon_forum.svg
|
assets/icons/icon_forum.svg
|
||||||
@ -156,6 +158,7 @@ set(RESOURCES
|
|||||||
assets/icons/icon_movie.svg
|
assets/icons/icon_movie.svg
|
||||||
assets/icons/icon_new_releases.svg
|
assets/icons/icon_new_releases.svg
|
||||||
assets/icons/icon_open_in_new.svg
|
assets/icons/icon_open_in_new.svg
|
||||||
|
assets/icons/icon_open_in_new_black.svg
|
||||||
assets/icons/icon_pause.svg
|
assets/icons/icon_pause.svg
|
||||||
assets/icons/icon_people.svg
|
assets/icons/icon_people.svg
|
||||||
assets/icons/icon_play.svg
|
assets/icons/icon_play.svg
|
||||||
@ -172,7 +175,7 @@ set(RESOURCES
|
|||||||
assets/icons/icon_thumb_down.svg
|
assets/icons/icon_thumb_down.svg
|
||||||
assets/icons/icon_thumb_up.svg
|
assets/icons/icon_thumb_up.svg
|
||||||
assets/icons/icon_upload.svg
|
assets/icons/icon_upload.svg
|
||||||
assets/icons/icon_video_settings_black_24dp.svg
|
assets/icons/icon_video_settings.svg
|
||||||
assets/icons/icon_volume.svg
|
assets/icons/icon_volume.svg
|
||||||
assets/icons/icon_volume_mute.svg
|
assets/icons/icon_volume_mute.svg
|
||||||
assets/icons/icon_volume_up.svg
|
assets/icons/icon_volume_up.svg
|
||||||
@ -198,9 +201,6 @@ set(RESOURCES
|
|||||||
assets/licenses/Apache2.txt
|
assets/licenses/Apache2.txt
|
||||||
assets/licenses/OFL.txt
|
assets/licenses/OFL.txt
|
||||||
assets/macos/app.screenplay.plist
|
assets/macos/app.screenplay.plist
|
||||||
assets/particle/backgroundGlow.png
|
|
||||||
assets/particle/dot.png
|
|
||||||
assets/shader/movingcolorramp.fsh
|
|
||||||
assets/startinfo/blender.png
|
assets/startinfo/blender.png
|
||||||
assets/startinfo/flaticon.png
|
assets/startinfo/flaticon.png
|
||||||
assets/startinfo/forums.png
|
assets/startinfo/forums.png
|
||||||
@ -229,7 +229,6 @@ set(RESOURCES
|
|||||||
assets/wizards/License_CC_Attribution-ShareAlike_4.0.txt
|
assets/wizards/License_CC_Attribution-ShareAlike_4.0.txt
|
||||||
assets/wizards/License_CC_Attribution_4.0.txt
|
assets/wizards/License_CC_Attribution_4.0.txt
|
||||||
assets/wizards/License_GPL_3.0.txt
|
assets/wizards/License_GPL_3.0.txt
|
||||||
assets/wizards/QmlProject.qmlproject
|
|
||||||
assets/WorkshopPreview.html
|
assets/WorkshopPreview.html
|
||||||
legal/DataProtection.txt
|
legal/DataProtection.txt
|
||||||
legal/gpl-3.0.txt
|
legal/gpl-3.0.txt
|
||||||
@ -237,9 +236,16 @@ set(RESOURCES
|
|||||||
legal/OFL.txt
|
legal/OFL.txt
|
||||||
legal/OpenSSL.txt
|
legal/OpenSSL.txt
|
||||||
profiles.json
|
profiles.json
|
||||||
|
qml/Create/WizardsFiles/Godot_v5/export_presets.cfg
|
||||||
|
qml/Create/WizardsFiles/Godot_v5/project.godot
|
||||||
|
qml/Create/WizardsFiles/Godot_v5/spinner.gd
|
||||||
|
qml/Create/WizardsFiles/Godot_v5/wallpaper.tscn
|
||||||
qml/Create/WizardsFiles/HTMLWallpaperMain.html
|
qml/Create/WizardsFiles/HTMLWallpaperMain.html
|
||||||
qml/Create/WizardsFiles/HTMLWidgetMain.html
|
qml/Create/WizardsFiles/HTMLWidgetMain.html
|
||||||
|
qml/Create/WizardsFiles/QmlProject.qmlproject
|
||||||
qml/Create/WizardsFiles/QMLWallpaperMain.qml
|
qml/Create/WizardsFiles/QMLWallpaperMain.qml
|
||||||
|
qml/Create/WizardsFiles/QMLWallpaperMain.qml
|
||||||
|
qml/Create/WizardsFiles/QMLWidgetMain.qml
|
||||||
qml/Create/WizardsFiles/QMLWidgetMain.qml
|
qml/Create/WizardsFiles/QMLWidgetMain.qml
|
||||||
qtquickcontrols2.conf)
|
qtquickcontrols2.conf)
|
||||||
|
|
||||||
@ -268,8 +274,17 @@ find_package(
|
|||||||
Test)
|
Test)
|
||||||
|
|
||||||
add_library(ScreenPlayApp STATIC)
|
add_library(ScreenPlayApp STATIC)
|
||||||
|
|
||||||
|
target_include_directories(
|
||||||
|
ScreenPlayApp
|
||||||
|
PUBLIC inc/public/
|
||||||
|
PRIVATE src/)
|
||||||
|
|
||||||
|
# Note making this public is so that *_qmltyperegistrations.cpp can find the needed include
|
||||||
target_include_directories(ScreenPlayApp PUBLIC src/ inc/public/ScreenPlay)
|
target_include_directories(ScreenPlayApp PUBLIC src/ inc/public/ScreenPlay)
|
||||||
|
|
||||||
|
# ScreenPlayApp is our qml module needed for compiling of all classes and most importanly for QML_ELEMENT. So our app is mostly a module
|
||||||
|
# that then link to ScreenPlay executable.
|
||||||
qt_add_qml_module(
|
qt_add_qml_module(
|
||||||
ScreenPlayApp
|
ScreenPlayApp
|
||||||
URI
|
URI
|
||||||
@ -296,7 +311,6 @@ target_link_libraries(
|
|||||||
ScreenPlayUtilplugin
|
ScreenPlayUtilplugin
|
||||||
QArchive
|
QArchive
|
||||||
Plausibleplugin
|
Plausibleplugin
|
||||||
SteamSDKQtEnums
|
|
||||||
Threads::Threads
|
Threads::Threads
|
||||||
Qt6::Quick
|
Qt6::Quick
|
||||||
Qt6::Gui
|
Qt6::Gui
|
||||||
@ -308,7 +322,6 @@ target_link_libraries(
|
|||||||
Qt6::Xml)
|
Qt6::Xml)
|
||||||
|
|
||||||
if(${SCREENPLAY_STEAM})
|
if(${SCREENPLAY_STEAM})
|
||||||
target_compile_definitions(ScreenPlayApp PRIVATE SCREENPLAY_STEAM)
|
|
||||||
target_link_libraries(ScreenPlayApp PUBLIC ScreenPlayWorkshopplugin ScreenPlayWorkshop)
|
target_link_libraries(ScreenPlayApp PUBLIC ScreenPlayWorkshopplugin ScreenPlayWorkshop)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -318,26 +331,16 @@ target_link_libraries(${PROJECT_NAME} PRIVATE ScreenPlayApp ScreenPlayAppplugin)
|
|||||||
if(${SCREENPLAY_TESTS})
|
if(${SCREENPLAY_TESTS})
|
||||||
add_executable(tst_ScreenPlay tests/tst_main.cpp)
|
add_executable(tst_ScreenPlay tests/tst_main.cpp)
|
||||||
target_link_libraries(tst_ScreenPlay PRIVATE ScreenPlayApp ScreenPlayAppplugin Qt6::Test)
|
target_link_libraries(tst_ScreenPlay PRIVATE ScreenPlayApp ScreenPlayAppplugin Qt6::Test)
|
||||||
|
generate_cmake_variable_header(tst_ScreenPlay)
|
||||||
if(${SCREENPLAY_STEAM})
|
if(${SCREENPLAY_STEAM})
|
||||||
target_compile_definitions(tst_ScreenPlay PRIVATE SCREENPLAY_STEAM)
|
|
||||||
target_link_libraries(tst_ScreenPlay PUBLIC ScreenPlayWorkshopplugin ScreenPlayWorkshop)
|
target_link_libraries(tst_ScreenPlay PUBLIC ScreenPlayWorkshopplugin ScreenPlayWorkshop)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
set_target_properties(tst_ScreenPlay PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/ScreenPlay.app/Contents/MacOS/")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE AND NOT OSX_BUNDLE)
|
|
||||||
set_source_files_properties(
|
|
||||||
${TS_FILES} PROPERTIES OUTPUT_LOCATION "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROJECT_NAME}.app/Contents/Resources/translations")
|
|
||||||
else()
|
|
||||||
set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/translations")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
qt_add_lrelease(${PROJECT_NAME} TS_FILES ${TS_FILES})
|
|
||||||
|
|
||||||
target_include_directories(
|
|
||||||
ScreenPlayApp
|
|
||||||
PUBLIC inc/public/
|
|
||||||
PRIVATE src/)
|
|
||||||
|
|
||||||
if(WIN32
|
if(WIN32
|
||||||
OR UNIX
|
OR UNIX
|
||||||
AND NOT APPLE)
|
AND NOT APPLE)
|
||||||
@ -349,7 +352,7 @@ if(WIN32
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
target_link_libraries(ScreenPlayApp PUBLIC CURL::libcurl sentry::sentry)
|
target_link_libraries(ScreenPlayApp PUBLIC CURL::libcurl sentry::sentry ScreenPlayWallpaperLib)
|
||||||
|
|
||||||
# Icon
|
# Icon
|
||||||
target_sources(${PROJECT_NAME} PRIVATE ScreenPlay.rc)
|
target_sources(${PROJECT_NAME} PRIVATE ScreenPlay.rc)
|
||||||
@ -375,30 +378,22 @@ if(WIN32)
|
|||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE AND OSX_BUNDLE)
|
if(APPLE)
|
||||||
# Set the installation destination
|
|
||||||
install(TARGETS "ScreenPlay" DESTINATION /Applications)
|
|
||||||
|
|
||||||
include(InstallRequiredSystemLibraries)
|
# Set the path to the icon file
|
||||||
set(CPACK_GENERATOR "Bundle")
|
set(APP_ICON_MACOSX ${CMAKE_CURRENT_SOURCE_DIR}/assets/icons/ScreenPlay.icns)
|
||||||
set(CPACK_BINARY_DRAGNDROP ON)
|
|
||||||
set(CPACK_BUNDLE_NAME "ScreenPlay")
|
|
||||||
set(CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/assets/icons/app.ico")
|
|
||||||
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/assets/icons/app.ico")
|
|
||||||
set(CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist")
|
|
||||||
set(CPACK_BUNDLE_APPLE_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/entitlements.plist")
|
|
||||||
set(CPACK_PACKAGE_FILE_NAME "ScreenPlay-0.15")
|
|
||||||
include(CPack)
|
|
||||||
|
|
||||||
# Install all files from /bin
|
# Tell CMake where to find the icon
|
||||||
install(
|
set_source_files_properties(${APP_ICON_MACOSX} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
|
||||||
DIRECTORY "${CMAKE_BINARY_DIR}/bin/"
|
|
||||||
COMPONENT ScreenPlay
|
|
||||||
DESTINATION "./")
|
|
||||||
|
|
||||||
endif()
|
set(RESOURCES_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ScreenPlay.app/Contents/Resources")
|
||||||
|
file(MAKE_DIRECTORY ${RESOURCES_DIR})
|
||||||
|
|
||||||
|
# Specify the name of the icon file for the bundle
|
||||||
|
set(MACOSX_BUNDLE_ICON_FILE ScreenPlay.icns) # Only the file name
|
||||||
|
# Fore some reason this only works with maually copy
|
||||||
|
configure_file(${APP_ICON_MACOSX} "${RESOURCES_DIR}/ScreenPlay.icns" COPYONLY)
|
||||||
|
|
||||||
if(APPLE AND NOT OSX_BUNDLE)
|
|
||||||
# Creates a ScreenPlay.app
|
# Creates a ScreenPlay.app
|
||||||
set_target_properties(
|
set_target_properties(
|
||||||
${PROJECT_NAME}
|
${PROJECT_NAME}
|
||||||
@ -406,9 +401,9 @@ if(APPLE AND NOT OSX_BUNDLE)
|
|||||||
MACOSX_BUNDLE TRUE
|
MACOSX_BUNDLE TRUE
|
||||||
MACOSX_RPATH TRUE
|
MACOSX_RPATH TRUE
|
||||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
|
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist
|
||||||
MACOSX_FRAMEWORK_IDENTIFIER screen-play.app
|
MACOSX_FRAMEWORK_IDENTIFIER app.screenplay
|
||||||
XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@loader_path/Libraries"
|
XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@loader_path/Libraries"
|
||||||
RESOURCE "${RESOURCE_FILES}"
|
RESOURCE "${RESOURCE_FILES};${APP_ICON_MACOSX}" # Include the icon in the resources
|
||||||
XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME TRUE
|
XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME TRUE
|
||||||
XCODE_ATTRIBUTE_EXECUTABLE_NAME ${PROJECT_NAME})
|
XCODE_ATTRIBUTE_EXECUTABLE_NAME ${PROJECT_NAME})
|
||||||
|
|
||||||
@ -424,29 +419,23 @@ if(APPLE AND NOT OSX_BUNDLE)
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/ffmpeg/ffprobe
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/ffmpeg/ffprobe
|
||||||
${CMAKE_BINARY_DIR}/bin/ScreenPlay.app/Contents/MacOS/)
|
${CMAKE_BINARY_DIR}/bin/ScreenPlay.app/Contents/MacOS/)
|
||||||
|
|
||||||
# tst_ScreenPlay needs ffmpeg in the base path
|
|
||||||
if(${SCREENPLAY_TESTS})
|
|
||||||
add_custom_command(
|
|
||||||
TARGET ${PROJECT_NAME}
|
|
||||||
POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/ffmpeg/ffmpeg ${CMAKE_BINARY_DIR}/bin/)
|
|
||||||
|
|
||||||
add_custom_command(
|
|
||||||
TARGET ${PROJECT_NAME}
|
|
||||||
POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/ffmpeg/ffprobe ${CMAKE_BINARY_DIR}/bin/)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# fonts
|
# fonts
|
||||||
include(CopyRecursive)
|
include(CopyRecursive)
|
||||||
set(FONTS_OUT_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ScreenPlay.app/Contents/Resources/fonts/)
|
set(FONTS_OUT_DIR "${RESOURCES_DIR}/fonts")
|
||||||
file(MAKE_DIRECTORY ${FONTS_OUT_DIR})
|
file(MAKE_DIRECTORY ${FONTS_OUT_DIR})
|
||||||
copy_recursive(${CMAKE_CURRENT_SOURCE_DIR}/assets/fonts ${FONTS_OUT_DIR} "*.ttf")
|
copy_recursive(${CMAKE_CURRENT_SOURCE_DIR}/assets/fonts ${FONTS_OUT_DIR} "*.ttf")
|
||||||
copy_recursive(${CMAKE_CURRENT_SOURCE_DIR}/assets/fonts ${FONTS_OUT_DIR} "*.otf")
|
copy_recursive(${CMAKE_CURRENT_SOURCE_DIR}/assets/fonts ${FONTS_OUT_DIR} "*.otf")
|
||||||
|
|
||||||
|
# .qm translations
|
||||||
|
set(QM_OUT_DIR "${RESOURCES_DIR}/translations")
|
||||||
|
file(MAKE_DIRECTORY ${QM_OUT_DIR})
|
||||||
|
set_source_files_properties(${TS_FILES} PROPERTIES OUTPUT_LOCATION ${QM_OUT_DIR})
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# ##### USE CMAKE VARIABLES IN CODE #####
|
# Must be called here, because we need to change the OUTPUT_LOCATION for macos
|
||||||
include(GenerateCMakeVariableHeader)
|
qt_add_lrelease(${PROJECT_NAME} TS_FILES ${TS_FILES})
|
||||||
# Note: Must not be ${PROJECT_NAME}, but ScreenPlayApp to work!
|
|
||||||
|
# Note: We need the variables in the lib and exe!
|
||||||
|
generate_cmake_variable_header(${PROJECT_NAME})
|
||||||
generate_cmake_variable_header(ScreenPlayApp)
|
generate_cmake_variable_header(ScreenPlayApp)
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>ScreenPlay</string>
|
<string>ScreenPlay</string>
|
||||||
<key>CFBundleIconFile</key>
|
<key>CFBundleIconFile</key>
|
||||||
<string></string>
|
<string>ScreenPlay</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>app.screen-play</string>
|
<string>app.screenplay</string>
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
|
33
ScreenPlay/assets/icons/Readme.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
Create icons. Replace `\` with `^` on windows.
|
||||||
|
|
||||||
|
```
|
||||||
|
convert app.png -resize 16x16 ScreenPlay.iconset/icon_16x16.png \
|
||||||
|
&& convert app.png -resize 32x32 ScreenPlay.iconset/icon_16x16@2x.png \
|
||||||
|
&& convert app.png -resize 32x32 ScreenPlay.iconset/icon_32x32.png \
|
||||||
|
&& convert app.png -resize 64x64 ScreenPlay.iconset/icon_32x32@2x.png \
|
||||||
|
&& convert app.png -resize 128x128 ScreenPlay.iconset/icon_128x128.png \
|
||||||
|
&& convert app.png -resize 256x256 ScreenPlay.iconset/icon_128x128@2x.png \
|
||||||
|
&& convert app.png -resize 256x256 ScreenPlay.iconset/icon_256x256.png \
|
||||||
|
&& convert app.png -resize 512x512 ScreenPlay.iconset/icon_256x256@2x.png \
|
||||||
|
&& convert app.png -resize 512x512 ScreenPlay.iconset/icon_512x512.png \
|
||||||
|
&& convert app.png -resize 1024x1024 ScreenPlay.iconset/icon_512x512@2x.png
|
||||||
|
|
||||||
|
// Convert to .icns
|
||||||
|
iconutil -c icns ScreenPlay.iconset
|
||||||
|
```
|
||||||
|
Convert for Windows .ico
|
||||||
|
```
|
||||||
|
magick convert app.png \
|
||||||
|
\( -clone 0 -resize 16x16 \) \
|
||||||
|
\( -clone 0 -resize 32x32 \) \
|
||||||
|
\( -clone 0 -resize 48x48 \) \
|
||||||
|
\( -clone 0 -resize 64x64 \) \
|
||||||
|
\( -clone 0 -resize 128x128 \) \
|
||||||
|
\( -clone 0 -resize 256x256 \) \
|
||||||
|
-delete 0 -background transparent app.ico
|
||||||
|
|
||||||
|
```
|
||||||
|
Make the 1k logo smaller
|
||||||
|
```
|
||||||
|
convert app.png -resize 512x512 app_icon.png
|
||||||
|
```
|
BIN
ScreenPlay/assets/icons/ScreenPlay.icns
Normal file
BIN
ScreenPlay/assets/icons/ScreenPlay.iconset/icon_128x128.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
ScreenPlay/assets/icons/ScreenPlay.iconset/icon_128x128@2x.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
ScreenPlay/assets/icons/ScreenPlay.iconset/icon_16x16.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
ScreenPlay/assets/icons/ScreenPlay.iconset/icon_16x16@2x.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
ScreenPlay/assets/icons/ScreenPlay.iconset/icon_256x256.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
ScreenPlay/assets/icons/ScreenPlay.iconset/icon_256x256@2x.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
ScreenPlay/assets/icons/ScreenPlay.iconset/icon_32x32.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
ScreenPlay/assets/icons/ScreenPlay.iconset/icon_32x32@2x.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
ScreenPlay/assets/icons/ScreenPlay.iconset/icon_512x512.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
ScreenPlay/assets/icons/ScreenPlay.iconset/icon_512x512@2x.png
Normal file
After Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 128 KiB |
BIN
ScreenPlay/assets/icons/app.png
Executable file
After Width: | Height: | Size: 85 KiB |
BIN
ScreenPlay/assets/icons/app_512x512.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
ScreenPlay/assets/icons/app_dark.png
Executable file
After Width: | Height: | Size: 98 KiB |
1
ScreenPlay/assets/icons/icon_cancel_presentation.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="m376-320 104-104 104 104 56-56-104-104 104-104-56-56-104 104-104-104-56 56 104 104-104 104 56 56ZM160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm0-80h640v-480H160v480Zm0 0v-480 480Z"/></svg>
|
After Width: | Height: | Size: 358 B |
1
ScreenPlay/assets/icons/icon_edit.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z"/></svg>
|
After Width: | Height: | Size: 310 B |
1
ScreenPlay/assets/icons/icon_open_in_new_black.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h280v80H200v560h560v-280h80v280q0 33-23.5 56.5T760-120H200Zm188-212-56-56 372-372H560v-80h280v280h-80v-144L388-332Z"/></svg>
|
After Width: | Height: | Size: 281 B |
@ -1 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path id="steam-square" d="M413.982,173.02c0,-35.325 -28.99,-64.336 -64.656,-64.336c-35.326,0 -64.336,28.99 -64.336,64.336c0,35.667 28.989,64.336 64.336,64.336c35.666,0 64.656,-28.669 64.656,-64.336Zm-203.312,195.995c0,36.669 -29.33,65.999 -65.999,65.999c-25.342,0 -47.335,-14.334 -58.321,-35.325c11.007,4.331 21.673,8.661 32.659,13.333c26.664,10.665 57.339,-2.326 68.325,-29.331c10.666,-26.665 -2.325,-57.34 -29.331,-67.984l-27.326,-11.007c4.33,-1.003 9.343,-1.664 13.994,-1.664c36.669,0 65.999,29.331 65.999,66l0,-0.021Zm301.309,-272.98l0,319.973c0,52.988 -43.005,95.992 -95.992,95.992l-319.974,0c-52.987,0 -95.992,-43.004 -95.992,-95.992l0,-51.004l57.34,22.996c8.66,40.338 44.668,70.671 87.331,70.671c46.652,0 84.985,-35.666 89.336,-80.996l114.999,-84.003c66.661,0 120.331,-53.991 120.331,-119.99c0,-66.662 -53.67,-120.332 -120.331,-120.332c-65.659,0 -119.329,53.329 -119.99,118.988l-75.002,107.319c-3.008,-0.342 -5.994,-0.342 -9.343,-0.342c-16.66,0 -32.339,4.331 -45.671,12.33l-99,-39.655l0,-155.998c0,-52.988 43.005,-95.992 95.992,-95.992l319.974,0c52.987,0 95.992,43.004 95.992,95.992l0,0.043Zm-82.319,77.668c0,44.327 -35.986,80.334 -80.654,80.334c-44.327,0 -80.335,-35.986 -80.335,-80.334c0,-44.668 35.986,-80.655 80.335,-80.655c44.668,0 80.654,35.987 80.654,80.655Z" style="fill:#bebebe;fill-rule:nonzero;"/></svg>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="100%" height="100%" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||||
|
<path id="steam-square" d="M413.982,173.02C413.982,137.695 384.992,108.684 349.326,108.684C314,108.684 284.99,137.674 284.99,173.02C284.99,208.687 313.979,237.356 349.326,237.356C384.992,237.356 413.982,208.687 413.982,173.02ZM210.67,369.015C210.67,405.684 181.34,435.014 144.671,435.014C119.329,435.014 97.336,420.68 86.35,399.689C97.357,404.02 108.023,408.35 119.009,413.022C145.673,423.687 176.348,410.696 187.334,383.691C198,357.026 185.009,326.351 158.003,315.707L130.677,304.7C135.007,303.697 140.02,303.036 144.671,303.036C181.34,303.036 210.67,332.367 210.67,369.036L210.67,369.015ZM511.979,95.992L511.979,416.008C511.979,468.996 468.974,512 415.987,512L96.013,512C43.026,512 0.021,468.996 0.021,416.008L0.021,365.004L57.361,388C66.021,428.338 102.029,458.671 144.692,458.671C191.344,458.671 229.677,423.005 234.028,377.675L349.027,293.672C415.688,293.672 469.358,239.681 469.358,173.682C469.358,107.02 415.688,53.35 349.027,53.35C283.368,53.35 229.698,106.679 229.037,172.338L154.035,279.657C151.027,279.315 148.041,279.315 144.692,279.315C128.032,279.315 112.353,283.646 99.021,291.645L0.021,251.99L0.021,95.992C0.021,43.004 43.026,-0 96.013,-0L415.987,-0C468.974,-0 511.979,43.004 511.979,95.992ZM429.66,173.703C429.66,218.03 393.674,254.037 349.006,254.037C304.679,254.037 268.671,218.051 268.671,173.703C268.671,129.035 304.657,93.048 349.006,93.048C393.674,93.048 429.66,129.035 429.66,173.703Z" style="fill-rule:nonzero;"/>
|
||||||
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 3.2 KiB |
@ -1,18 +0,0 @@
|
|||||||
uniform float time;
|
|
||||||
uniform float shaderOpacity;
|
|
||||||
uniform vec2 resolution;
|
|
||||||
|
|
||||||
void main( void ) {
|
|
||||||
|
|
||||||
|
|
||||||
vec2 position = ( gl_FragCoord.xy / resolution.xy );
|
|
||||||
|
|
||||||
vec3 color1 = vec3(1.0, 0.6, 0.01);
|
|
||||||
vec3 color2 = vec3(0.97, 0.24, 0.24);
|
|
||||||
float mixValue = distance(position,vec2(0,1));
|
|
||||||
|
|
||||||
vec3 color = mix( color1, color2, mixValue);
|
|
||||||
|
|
||||||
gl_FragColor = vec4(color,mixValue) * shaderOpacity;
|
|
||||||
|
|
||||||
}
|
|
@ -25,8 +25,8 @@
|
|||||||
#include "ScreenPlay/profilelistmodel.h"
|
#include "ScreenPlay/profilelistmodel.h"
|
||||||
#include "ScreenPlay/screenplaymanager.h"
|
#include "ScreenPlay/screenplaymanager.h"
|
||||||
#include "ScreenPlay/settings.h"
|
#include "ScreenPlay/settings.h"
|
||||||
#include "ScreenPlay/util.h"
|
|
||||||
#include "ScreenPlay/wizards.h"
|
#include "ScreenPlay/wizards.h"
|
||||||
|
#include "ScreenPlayUtil/util.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
@ -101,10 +101,8 @@ public slots:
|
|||||||
void setMainWindowEngine(QQmlApplicationEngine* mainWindowEngine);
|
void setMainWindowEngine(QQmlApplicationEngine* mainWindowEngine);
|
||||||
void setWizards(Wizards* wizards);
|
void setWizards(Wizards* wizards);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QNetworkAccessManager m_networkAccessManager;
|
QNetworkAccessManager m_networkAccessManager;
|
||||||
QElapsedTimer m_continuousIntegrationMetricsTimer;
|
|
||||||
std::unique_ptr<QQmlApplicationEngine> m_mainWindowEngine;
|
std::unique_ptr<QQmlApplicationEngine> m_mainWindowEngine;
|
||||||
|
|
||||||
std::unique_ptr<Create> m_create;
|
std::unique_ptr<Create> m_create;
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
#include "ScreenPlay/createimportstates.h"
|
||||||
#include "ScreenPlay/createimportvideo.h"
|
#include "ScreenPlay/createimportvideo.h"
|
||||||
#include "ScreenPlay/globalvariables.h"
|
#include "ScreenPlay/globalvariables.h"
|
||||||
|
|
||||||
@ -32,6 +33,8 @@ namespace ScreenPlay {
|
|||||||
class Create : public QObject {
|
class Create : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
QML_ELEMENT
|
QML_ELEMENT
|
||||||
|
QML_UNCREATABLE("")
|
||||||
|
Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
|
||||||
|
|
||||||
Q_PROPERTY(QString workingDir READ workingDir WRITE setWorkingDir NOTIFY workingDirChanged)
|
Q_PROPERTY(QString workingDir READ workingDir WRITE setWorkingDir NOTIFY workingDirChanged)
|
||||||
Q_PROPERTY(float progress READ progress WRITE setProgress NOTIFY progressChanged)
|
Q_PROPERTY(float progress READ progress WRITE setProgress NOTIFY progressChanged)
|
||||||
@ -55,7 +58,7 @@ public:
|
|||||||
QString ffmpegOutput() const { return m_ffmpegOutput; }
|
QString ffmpegOutput() const { return m_ffmpegOutput; }
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void createWallpaperStateChanged(ImportVideoState::ImportVideoState state);
|
void createWallpaperStateChanged(Import::State state);
|
||||||
void progressChanged(float progress);
|
void progressChanged(float progress);
|
||||||
void abortCreateWallpaper();
|
void abortCreateWallpaper();
|
||||||
void workingDirChanged(QString workingDir);
|
void workingDirChanged(QString workingDir);
|
||||||
@ -112,7 +115,6 @@ public slots:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void init();
|
|
||||||
void reset();
|
void reset();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -3,17 +3,16 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
#include <QQmlEngine>
|
||||||
|
|
||||||
namespace ScreenPlay {
|
namespace ScreenPlay {
|
||||||
/*!
|
|
||||||
\namespace ScreenPlay::ImportVideoState
|
|
||||||
\inmodule ScreenPlay
|
|
||||||
\brief Global enum for ImportVideoState.
|
|
||||||
*/
|
|
||||||
namespace ImportVideoState {
|
|
||||||
Q_NAMESPACE
|
|
||||||
|
|
||||||
enum class ImportVideoState {
|
class Import : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
QML_ELEMENT
|
||||||
|
Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
|
||||||
|
public:
|
||||||
|
enum class State {
|
||||||
Idle,
|
Idle,
|
||||||
Started,
|
Started,
|
||||||
AnalyseVideo,
|
AnalyseVideo,
|
||||||
@ -49,6 +48,6 @@ namespace ImportVideoState {
|
|||||||
Finished,
|
Finished,
|
||||||
Failed,
|
Failed,
|
||||||
};
|
};
|
||||||
Q_ENUM_NS(ImportVideoState)
|
Q_ENUM(State)
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
@ -24,24 +24,27 @@ namespace ScreenPlay {
|
|||||||
|
|
||||||
class CreateImportVideo : public QObject {
|
class CreateImportVideo : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
QML_ELEMENT
|
||||||
QML_UNCREATABLE("")
|
QML_UNCREATABLE("")
|
||||||
|
Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
|
||||||
Q_PROPERTY(float progress READ progress WRITE setProgress NOTIFY progressChanged)
|
Q_PROPERTY(float progress READ progress WRITE setProgress NOTIFY progressChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit CreateImportVideo(const QString& videoPath, const QString& exportPath, const QString& codec, const int quality, std::atomic<bool>& interrupt);
|
explicit CreateImportVideo(const QString& videoPath, const QString& exportPath, const QString& codec, const int quality, std::atomic<bool>& interrupt);
|
||||||
explicit CreateImportVideo(const QString& videoPath, const QString& exportPath, std::atomic<bool>& interrupt);
|
explicit CreateImportVideo(const QString& videoPath, const QString& exportPath, std::atomic<bool>& interrupt);
|
||||||
|
|
||||||
|
enum class Executable {
|
||||||
|
FFMPEG,
|
||||||
|
FFPROBE
|
||||||
|
};
|
||||||
|
Q_ENUM(Executable)
|
||||||
|
|
||||||
float progress() const { return m_progress; }
|
float progress() const { return m_progress; }
|
||||||
|
|
||||||
bool m_skipAudio { false };
|
bool m_skipAudio { false };
|
||||||
|
|
||||||
// If the video is < 1s in duration we cannot create a 5s preview
|
// If the video is < 1s in duration we cannot create a 5s preview
|
||||||
bool m_smallVideo { false };
|
bool m_smallVideo { false };
|
||||||
|
|
||||||
// We do not get many infos with this
|
// We do not get many infos with this
|
||||||
bool m_isWebm { false };
|
bool m_isWebm { false };
|
||||||
|
|
||||||
float m_progress { 0.0F };
|
float m_progress { 0.0F };
|
||||||
|
|
||||||
QString m_videoPath;
|
QString m_videoPath;
|
||||||
@ -54,13 +57,8 @@ public:
|
|||||||
int m_length { 0 };
|
int m_length { 0 };
|
||||||
int m_framerate { 0 };
|
int m_framerate { 0 };
|
||||||
|
|
||||||
enum class Executable {
|
|
||||||
FFMPEG,
|
|
||||||
FFPROBE
|
|
||||||
};
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void createWallpaperStateChanged(ImportVideoState::ImportVideoState state);
|
void createWallpaperStateChanged(ScreenPlay::Import::State state);
|
||||||
void processOutput(QString text);
|
void processOutput(QString text);
|
||||||
void finished();
|
void finished();
|
||||||
void abortAndCleanup();
|
void abortAndCleanup();
|
||||||
@ -104,4 +102,3 @@ private:
|
|||||||
std::atomic<bool>& m_interrupt;
|
std::atomic<bool>& m_interrupt;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
Q_DECLARE_METATYPE(ScreenPlay::ImportVideoState::ImportVideoState)
|
|
||||||
|
@ -16,22 +16,24 @@ namespace ScreenPlay {
|
|||||||
class GlobalVariables : public QObject {
|
class GlobalVariables : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
QML_ELEMENT
|
QML_ELEMENT
|
||||||
|
QML_UNCREATABLE("")
|
||||||
|
|
||||||
Q_PROPERTY(QVersionNumber version READ version CONSTANT)
|
Q_PROPERTY(QVersionNumber version READ version CONSTANT)
|
||||||
Q_PROPERTY(QUrl localStoragePath READ localStoragePath WRITE setLocalStoragePath NOTIFY localStoragePathChanged)
|
Q_PROPERTY(QUrl localStoragePath READ localStoragePath WRITE setLocalStoragePath NOTIFY localStoragePathChanged FINAL)
|
||||||
Q_PROPERTY(QUrl localSettingsPath READ localSettingsPath WRITE setLocalSettingsPath NOTIFY localSettingsPathChanged)
|
Q_PROPERTY(QUrl localSettingsPath READ localSettingsPath WRITE setLocalSettingsPath NOTIFY localSettingsPathChanged FINAL)
|
||||||
Q_PROPERTY(QUrl wallpaperExecutablePath READ wallpaperExecutablePath WRITE setWallpaperExecutablePath NOTIFY wallpaperExecutablePathChanged)
|
Q_PROPERTY(QUrl wallpaperExecutablePath READ wallpaperExecutablePath WRITE setWallpaperExecutablePath NOTIFY wallpaperExecutablePathChanged FINAL)
|
||||||
Q_PROPERTY(QUrl widgetExecutablePath READ widgetExecutablePath WRITE setWidgetExecutablePath NOTIFY widgetExecutablePathChanged)
|
Q_PROPERTY(QUrl widgetExecutablePath READ widgetExecutablePath WRITE setWidgetExecutablePath NOTIFY widgetExecutablePathChanged FINAL)
|
||||||
|
Q_PROPERTY(QUrl godotWallpaperExecutablePath READ godotWallpaperExecutablePath WRITE setGodotWallpaperExecutablePath NOTIFY godotWallpaperExecutablePathChanged FINAL)
|
||||||
|
Q_PROPERTY(QUrl godotEditorExecutablePath READ godotEditorExecutablePath WRITE setGodotEditorExecutablePath NOTIFY godotEditorExecutablePathChanged FINAL)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit GlobalVariables(QObject* parent = nullptr);
|
explicit GlobalVariables(QObject* parent = nullptr);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief We need to check if there was an error in the Wallpaper/Widgets.
|
\property GlobalVariables::m_version
|
||||||
For this we ping it every 3s.
|
\brief Returns the current app version. Not yet used.
|
||||||
*/
|
*/
|
||||||
static const int contentPingAliveIntervalMS = 3000;
|
QVersionNumber version() const { return m_version; }
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\property GlobalVariables::localStoragePath
|
\property GlobalVariables::localStoragePath
|
||||||
\brief Returns the localStoragePath.
|
\brief Returns the localStoragePath.
|
||||||
@ -56,51 +58,35 @@ public:
|
|||||||
\property GlobalVariables::m_version
|
\property GlobalVariables::m_version
|
||||||
\brief Returns the current app version. Not yet used.
|
\brief Returns the current app version. Not yet used.
|
||||||
*/
|
*/
|
||||||
QVersionNumber version() const { return m_version; }
|
QUrl godotWallpaperExecutablePath() const { return m_godotWallpaperExecutablePath; }
|
||||||
|
/*!
|
||||||
|
\property GlobalVariables::m_version
|
||||||
|
\brief Returns the current app version. Not yet used.
|
||||||
|
*/
|
||||||
|
QUrl godotEditorExecutablePath() const { return m_godotEditorExecutablePath; }
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void localStoragePathChanged(QUrl localStoragePath);
|
void localStoragePathChanged(QUrl localStoragePath);
|
||||||
void localSettingsPathChanged(QUrl localSettingsPath);
|
void localSettingsPathChanged(QUrl localSettingsPath);
|
||||||
void wallpaperExecutablePathChanged(QUrl wallpaperExecutablePath);
|
void wallpaperExecutablePathChanged(QUrl wallpaperExecutablePath);
|
||||||
void widgetExecutablePathChanged(QUrl widgetExecutablePath);
|
void widgetExecutablePathChanged(QUrl widgetExecutablePath);
|
||||||
|
void godotWallpaperExecutablePathChanged(QUrl godotWallpaperExecutablePath);
|
||||||
|
void godotEditorExecutablePathChanged(QUrl godotEditorExecutablePath);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
void setLocalStoragePath(QUrl localStoragePath);
|
||||||
|
void setLocalSettingsPath(QUrl localSettingsPath);
|
||||||
|
void setWallpaperExecutablePath(QUrl wallpaperExecutablePath);
|
||||||
|
void setWidgetExecutablePath(QUrl widgetExecutablePath);
|
||||||
|
void setGodotWallpaperExecutablePath(QUrl godotWallpaperExecutablePath);
|
||||||
|
void setGodotEditorExecutablePath(QUrl godotEditorExecutablePath);
|
||||||
|
|
||||||
void setLocalStoragePath(QUrl localStoragePath)
|
public:
|
||||||
{
|
/*!
|
||||||
if (m_localStoragePath == localStoragePath)
|
\brief We need to check if there was an error in the Wallpaper/Widgets.
|
||||||
return;
|
For this we ping it every 3s.
|
||||||
|
*/
|
||||||
m_localStoragePath = localStoragePath;
|
static const int contentPingAliveIntervalMS = 3000;
|
||||||
emit localStoragePathChanged(m_localStoragePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setLocalSettingsPath(QUrl localSettingsPath)
|
|
||||||
{
|
|
||||||
if (m_localSettingsPath == localSettingsPath)
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_localSettingsPath = localSettingsPath;
|
|
||||||
emit localSettingsPathChanged(m_localSettingsPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setWallpaperExecutablePath(QUrl wallpaperExecutablePath)
|
|
||||||
{
|
|
||||||
if (m_wallpaperExecutablePath == wallpaperExecutablePath)
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_wallpaperExecutablePath = wallpaperExecutablePath;
|
|
||||||
emit wallpaperExecutablePathChanged(m_wallpaperExecutablePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setWidgetExecutablePath(QUrl widgetExecutablePath)
|
|
||||||
{
|
|
||||||
if (m_widgetExecutablePath == widgetExecutablePath)
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_widgetExecutablePath = widgetExecutablePath;
|
|
||||||
emit widgetExecutablePathChanged(m_widgetExecutablePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QUrl m_localStoragePath;
|
QUrl m_localStoragePath;
|
||||||
@ -108,5 +94,7 @@ private:
|
|||||||
QUrl m_wallpaperExecutablePath;
|
QUrl m_wallpaperExecutablePath;
|
||||||
QUrl m_widgetExecutablePath;
|
QUrl m_widgetExecutablePath;
|
||||||
QVersionNumber m_version { 1, 0, 0 };
|
QVersionNumber m_version { 1, 0, 0 };
|
||||||
|
QUrl m_godotWallpaperExecutablePath;
|
||||||
|
QUrl m_godotEditorExecutablePath;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ public:
|
|||||||
InstalledListFilter(const std::shared_ptr<InstalledListModel>& ilm);
|
InstalledListFilter(const std::shared_ptr<InstalledListModel>& ilm);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void sortBySearchType(const ScreenPlay::SearchType::SearchType searchType);
|
void sortBySearchType(const ScreenPlay::ContentTypes::SearchType searchType);
|
||||||
void setSortOrder(const Qt::SortOrder sortOrder);
|
void setSortOrder(const Qt::SortOrder sortOrder);
|
||||||
void sortByName(const QString& name);
|
void sortByName(const QString& name);
|
||||||
void resetFilter();
|
void resetFilter();
|
||||||
@ -29,7 +29,7 @@ signals:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
const std::shared_ptr<InstalledListModel> m_ilm;
|
const std::shared_ptr<InstalledListModel> m_ilm;
|
||||||
ScreenPlay::SearchType::SearchType m_searchType = ScreenPlay::SearchType::SearchType::All;
|
ScreenPlay::ContentTypes::SearchType m_searchType = ScreenPlay::ContentTypes::SearchType::All;
|
||||||
Qt::SortOrder m_sortOrder = Qt::SortOrder::DescendingOrder;
|
Qt::SortOrder m_sortOrder = Qt::SortOrder::DescendingOrder;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,8 @@
|
|||||||
#include "ScreenPlay/globalvariables.h"
|
#include "ScreenPlay/globalvariables.h"
|
||||||
#include "ScreenPlay/profilelistmodel.h"
|
#include "ScreenPlay/profilelistmodel.h"
|
||||||
#include "ScreenPlay/settings.h"
|
#include "ScreenPlay/settings.h"
|
||||||
#include "ScreenPlay/util.h"
|
|
||||||
#include "ScreenPlayUtil/projectfile.h"
|
#include "ScreenPlayUtil/projectfile.h"
|
||||||
|
#include "ScreenPlayUtil/util.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ public slots:
|
|||||||
void append(const QString& projectJsonFilePath);
|
void append(const QString& projectJsonFilePath);
|
||||||
void reset();
|
void reset();
|
||||||
void init();
|
void init();
|
||||||
void deinstallItemAt(const QString& absoluteStoragePath);
|
bool deinstallItemAt(const QString& absoluteStoragePath);
|
||||||
|
|
||||||
void setCount(int count)
|
void setCount(int count)
|
||||||
{
|
{
|
||||||
@ -96,6 +96,7 @@ private:
|
|||||||
QFileSystemWatcher m_fileSystemWatcher;
|
QFileSystemWatcher m_fileSystemWatcher;
|
||||||
QVector<ProjectFile> m_screenPlayFiles;
|
QVector<ProjectFile> m_screenPlayFiles;
|
||||||
int m_count { 0 };
|
int m_count { 0 };
|
||||||
|
QTimer m_reloadLimiter;
|
||||||
std::atomic_bool m_isLoading { false };
|
std::atomic_bool m_isLoading { false };
|
||||||
|
|
||||||
const std::shared_ptr<GlobalVariables>& m_globalVariables;
|
const std::shared_ptr<GlobalVariables>& m_globalVariables;
|
||||||
|
@ -41,6 +41,8 @@ struct Monitor {
|
|||||||
class MonitorListModel : public QAbstractListModel {
|
class MonitorListModel : public QAbstractListModel {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
QML_ELEMENT
|
QML_ELEMENT
|
||||||
|
QML_UNCREATABLE("")
|
||||||
|
Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit MonitorListModel(QObject* parent = nullptr);
|
explicit MonitorListModel(QObject* parent = nullptr);
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
|
|
||||||
#include "ScreenPlay/util.h"
|
#include "ScreenPlayUtil/util.h"
|
||||||
|
|
||||||
namespace ScreenPlay {
|
namespace ScreenPlay {
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ public:
|
|||||||
Q_ENUM(ProjectSettingsRole)
|
Q_ENUM(ProjectSettingsRole)
|
||||||
|
|
||||||
QJsonObject getActiveSettingsJson();
|
QJsonObject getActiveSettingsJson();
|
||||||
void init(const InstalledType::InstalledType& type, const QJsonObject& properties);
|
void init(const ContentTypes::InstalledType& type, const QJsonObject& properties);
|
||||||
void append(const SettingsItem&& item);
|
void append(const SettingsItem&& item);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
@ -24,6 +24,7 @@ namespace ScreenPlay {
|
|||||||
class ScreenPlayManager : public QObject {
|
class ScreenPlayManager : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
QML_ELEMENT
|
QML_ELEMENT
|
||||||
|
QML_UNCREATABLE("")
|
||||||
|
|
||||||
Q_PROPERTY(int activeWallpaperCounter READ activeWallpaperCounter WRITE setActiveWallpaperCounter NOTIFY activeWallpaperCounterChanged)
|
Q_PROPERTY(int activeWallpaperCounter READ activeWallpaperCounter WRITE setActiveWallpaperCounter NOTIFY activeWallpaperCounterChanged)
|
||||||
Q_PROPERTY(int activeWidgetsCounter READ activeWidgetsCounter WRITE setActiveWidgetsCounter NOTIFY activeWidgetsCounterChanged)
|
Q_PROPERTY(int activeWidgetsCounter READ activeWidgetsCounter WRITE setActiveWidgetsCounter NOTIFY activeWidgetsCounterChanged)
|
||||||
@ -40,7 +41,6 @@ public:
|
|||||||
int activeWidgetsCounter() const { return m_activeWidgetsCounter; }
|
int activeWidgetsCounter() const { return m_activeWidgetsCounter; }
|
||||||
bool isAnotherScreenPlayInstanceRunning() { return m_isAnotherScreenPlayInstanceRunning; }
|
bool isAnotherScreenPlayInstanceRunning() { return m_isAnotherScreenPlayInstanceRunning; }
|
||||||
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void activeWallpaperCounterChanged(int activeWallpaperCounter);
|
void activeWallpaperCounterChanged(int activeWallpaperCounter);
|
||||||
void activeWidgetsCounterChanged(int activeWidgetsCounter);
|
void activeWidgetsCounterChanged(int activeWidgetsCounter);
|
||||||
@ -58,8 +58,8 @@ private slots:
|
|||||||
public slots:
|
public slots:
|
||||||
// moc needs full enum namespace info see QTBUG-58454
|
// moc needs full enum namespace info see QTBUG-58454
|
||||||
bool createWallpaper(
|
bool createWallpaper(
|
||||||
const ScreenPlay::InstalledType::InstalledType type,
|
const ScreenPlay::ContentTypes::InstalledType type,
|
||||||
const ScreenPlay::FillMode::FillMode fillMode,
|
const ScreenPlay::Video::FillMode fillMode,
|
||||||
const QString& absoluteStoragePath,
|
const QString& absoluteStoragePath,
|
||||||
const QString& previewImage,
|
const QString& previewImage,
|
||||||
const QString& file,
|
const QString& file,
|
||||||
@ -70,7 +70,7 @@ public slots:
|
|||||||
const bool saveToProfilesConfigFile);
|
const bool saveToProfilesConfigFile);
|
||||||
|
|
||||||
bool createWidget(
|
bool createWidget(
|
||||||
const ScreenPlay::InstalledType::InstalledType type,
|
const ScreenPlay::ContentTypes::InstalledType type,
|
||||||
const QPoint& position,
|
const QPoint& position,
|
||||||
const QString& absoluteStoragePath,
|
const QString& absoluteStoragePath,
|
||||||
const QString& previewImage,
|
const QString& previewImage,
|
||||||
|
@ -3,10 +3,13 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QDir>
|
||||||
|
#include <QFileInfoList>
|
||||||
#include <QJsonObject>
|
#include <QJsonObject>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
|
#include <QString>
|
||||||
|
#include <QStringList>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "ScreenPlay/globalvariables.h"
|
#include "ScreenPlay/globalvariables.h"
|
||||||
@ -19,27 +22,21 @@ namespace ScreenPlay {
|
|||||||
class ScreenPlayWallpaper : public QObject {
|
class ScreenPlayWallpaper : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
QML_ELEMENT
|
QML_ELEMENT
|
||||||
|
QML_UNCREATABLE("")
|
||||||
|
|
||||||
Q_PROPERTY(bool isConnected READ isConnected WRITE setIsConnected NOTIFY isConnectedChanged)
|
Q_PROPERTY(bool isConnected READ isConnected WRITE setIsConnected NOTIFY isConnectedChanged)
|
||||||
|
|
||||||
Q_PROPERTY(QVector<int> screenNumber READ screenNumber WRITE setScreenNumber NOTIFY screenNumberChanged)
|
Q_PROPERTY(QVector<int> screenNumber READ screenNumber WRITE setScreenNumber NOTIFY screenNumberChanged)
|
||||||
|
|
||||||
Q_PROPERTY(float volume READ volume WRITE setVolume NOTIFY volumeChanged)
|
Q_PROPERTY(float volume READ volume WRITE setVolume NOTIFY volumeChanged)
|
||||||
Q_PROPERTY(float playbackRate READ playbackRate WRITE setPlaybackRate NOTIFY playbackRateChanged)
|
Q_PROPERTY(float playbackRate READ playbackRate WRITE setPlaybackRate NOTIFY playbackRateChanged)
|
||||||
Q_PROPERTY(bool isLooping READ isLooping WRITE setIsLooping NOTIFY isLoopingChanged)
|
Q_PROPERTY(bool isLooping READ isLooping WRITE setIsLooping NOTIFY isLoopingChanged)
|
||||||
|
|
||||||
Q_PROPERTY(QString file READ file WRITE setFile NOTIFY fileChanged)
|
Q_PROPERTY(QString file READ file WRITE setFile NOTIFY fileChanged)
|
||||||
Q_PROPERTY(QString absolutePath READ absolutePath WRITE setAbsolutePath NOTIFY absolutePathChanged)
|
Q_PROPERTY(QString absolutePath READ absolutePath WRITE setAbsolutePath NOTIFY absolutePathChanged)
|
||||||
Q_PROPERTY(QString previewImage READ previewImage WRITE setPreviewImage NOTIFY previewImageChanged)
|
Q_PROPERTY(QString previewImage READ previewImage WRITE setPreviewImage NOTIFY previewImageChanged)
|
||||||
Q_PROPERTY(QString appID READ appID WRITE setAppID NOTIFY appIDChanged)
|
Q_PROPERTY(QString appID READ appID WRITE setAppID NOTIFY appIDChanged)
|
||||||
|
Q_PROPERTY(Video::FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged)
|
||||||
Q_PROPERTY(FillMode::FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged)
|
Q_PROPERTY(ContentTypes::InstalledType type READ type WRITE setType NOTIFY typeChanged)
|
||||||
Q_PROPERTY(InstalledType::InstalledType type READ type WRITE setType NOTIFY typeChanged)
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Default constructor needed for qml engine
|
|
||||||
ScreenPlayWallpaper() { }
|
|
||||||
|
|
||||||
explicit ScreenPlayWallpaper(
|
explicit ScreenPlayWallpaper(
|
||||||
const QVector<int>& screenNumber,
|
const QVector<int>& screenNumber,
|
||||||
const std::shared_ptr<GlobalVariables>& globalVariables,
|
const std::shared_ptr<GlobalVariables>& globalVariables,
|
||||||
@ -49,8 +46,8 @@ public:
|
|||||||
const QString& file,
|
const QString& file,
|
||||||
const float volume,
|
const float volume,
|
||||||
const float playbackRate,
|
const float playbackRate,
|
||||||
const FillMode::FillMode fillMode,
|
const Video::FillMode fillMode,
|
||||||
const InstalledType::InstalledType type,
|
const ContentTypes::InstalledType type,
|
||||||
const QJsonObject& properties,
|
const QJsonObject& properties,
|
||||||
const std::shared_ptr<Settings>& settings,
|
const std::shared_ptr<Settings>& settings,
|
||||||
QObject* parent = nullptr);
|
QObject* parent = nullptr);
|
||||||
@ -62,8 +59,8 @@ public:
|
|||||||
const QString& previewImage,
|
const QString& previewImage,
|
||||||
const QString& file,
|
const QString& file,
|
||||||
const float volume,
|
const float volume,
|
||||||
const FillMode::FillMode fillMode,
|
const Video::FillMode fillMode,
|
||||||
const InstalledType::InstalledType type,
|
const ContentTypes::InstalledType type,
|
||||||
const bool checkWallpaperVisible);
|
const bool checkWallpaperVisible);
|
||||||
|
|
||||||
void setSDKConnection(std::unique_ptr<SDKConnection> connection);
|
void setSDKConnection(std::unique_ptr<SDKConnection> connection);
|
||||||
@ -73,9 +70,9 @@ public:
|
|||||||
QVector<int> screenNumber() const { return m_screenNumber; }
|
QVector<int> screenNumber() const { return m_screenNumber; }
|
||||||
QString previewImage() const { return m_previewImage; }
|
QString previewImage() const { return m_previewImage; }
|
||||||
QString appID() const { return m_appID; }
|
QString appID() const { return m_appID; }
|
||||||
InstalledType::InstalledType type() const { return m_type; }
|
ContentTypes::InstalledType type() const { return m_type; }
|
||||||
QString file() const { return m_file; }
|
QString file() const { return m_file; }
|
||||||
FillMode::FillMode fillMode() const { return m_fillMode; }
|
Video::FillMode fillMode() const { return m_fillMode; }
|
||||||
QString absolutePath() const { return m_absolutePath; }
|
QString absolutePath() const { return m_absolutePath; }
|
||||||
float volume() const { return m_volume; }
|
float volume() const { return m_volume; }
|
||||||
bool isLooping() const { return m_isLooping; }
|
bool isLooping() const { return m_isLooping; }
|
||||||
@ -87,9 +84,9 @@ signals:
|
|||||||
void screenNumberChanged(QVector<int> screenNumber);
|
void screenNumberChanged(QVector<int> screenNumber);
|
||||||
void previewImageChanged(QString previewImage);
|
void previewImageChanged(QString previewImage);
|
||||||
void appIDChanged(QString appID);
|
void appIDChanged(QString appID);
|
||||||
void typeChanged(InstalledType::InstalledType type);
|
void typeChanged(ContentTypes::InstalledType type);
|
||||||
void fileChanged(QString file);
|
void fileChanged(QString file);
|
||||||
void fillModeChanged(FillMode::FillMode fillMode);
|
void fillModeChanged(Video::FillMode fillMode);
|
||||||
void absolutePathChanged(QString absolutePath);
|
void absolutePathChanged(QString absolutePath);
|
||||||
void profileJsonObjectChanged(QJsonObject profileJsonObject);
|
void profileJsonObjectChanged(QJsonObject profileJsonObject);
|
||||||
void volumeChanged(float volume);
|
void volumeChanged(float volume);
|
||||||
@ -135,7 +132,7 @@ public slots:
|
|||||||
emit appIDChanged(m_appID);
|
emit appIDChanged(m_appID);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setType(InstalledType::InstalledType type)
|
void setType(ContentTypes::InstalledType type)
|
||||||
{
|
{
|
||||||
if (m_type == type)
|
if (m_type == type)
|
||||||
return;
|
return;
|
||||||
@ -153,7 +150,7 @@ public slots:
|
|||||||
emit fileChanged(m_file);
|
emit fileChanged(m_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setFillMode(FillMode::FillMode fillMode)
|
void setFillMode(Video::FillMode fillMode)
|
||||||
{
|
{
|
||||||
if (m_fillMode == fillMode)
|
if (m_fillMode == fillMode)
|
||||||
return;
|
return;
|
||||||
@ -209,17 +206,21 @@ public slots:
|
|||||||
emit isConnectedChanged(m_isConnected);
|
emit isConnectedChanged(m_isConnected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool exportGodotProject();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const std::shared_ptr<GlobalVariables> m_globalVariables;
|
const std::shared_ptr<GlobalVariables> m_globalVariables;
|
||||||
std::unique_ptr<SDKConnection> m_connection;
|
std::unique_ptr<SDKConnection> m_connection;
|
||||||
const std::shared_ptr<Settings> m_settings;
|
const std::shared_ptr<Settings> m_settings;
|
||||||
|
|
||||||
ProjectSettingsListModel m_projectSettingsListModel;
|
ProjectSettingsListModel m_projectSettingsListModel;
|
||||||
|
QJsonObject m_projectJson;
|
||||||
QVector<int> m_screenNumber;
|
QVector<int> m_screenNumber;
|
||||||
QProcess m_process;
|
QProcess m_process;
|
||||||
QString m_previewImage;
|
QString m_previewImage;
|
||||||
InstalledType::InstalledType m_type;
|
ContentTypes::InstalledType m_type;
|
||||||
FillMode::FillMode m_fillMode;
|
Video::FillMode m_fillMode;
|
||||||
QString m_appID;
|
QString m_appID;
|
||||||
QString m_absolutePath;
|
QString m_absolutePath;
|
||||||
QString m_file;
|
QString m_file;
|
||||||
|
@ -23,12 +23,13 @@ namespace ScreenPlay {
|
|||||||
class ScreenPlayWidget : public QObject {
|
class ScreenPlayWidget : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
QML_ELEMENT
|
QML_ELEMENT
|
||||||
|
QML_UNCREATABLE("")
|
||||||
|
|
||||||
Q_PROPERTY(QString absolutePath READ absolutePath WRITE setAbsolutePath NOTIFY absolutePathChanged)
|
Q_PROPERTY(QString absolutePath READ absolutePath WRITE setAbsolutePath NOTIFY absolutePathChanged)
|
||||||
Q_PROPERTY(QString previewImage READ previewImage WRITE setPreviewImage NOTIFY previewImageChanged)
|
Q_PROPERTY(QString previewImage READ previewImage WRITE setPreviewImage NOTIFY previewImageChanged)
|
||||||
Q_PROPERTY(QPoint position READ position WRITE setPosition NOTIFY positionChanged)
|
Q_PROPERTY(QPoint position READ position WRITE setPosition NOTIFY positionChanged)
|
||||||
Q_PROPERTY(QString appID READ appID WRITE setAppID NOTIFY appIDChanged)
|
Q_PROPERTY(QString appID READ appID WRITE setAppID NOTIFY appIDChanged)
|
||||||
Q_PROPERTY(InstalledType::InstalledType type READ type WRITE setType NOTIFY typeChanged)
|
Q_PROPERTY(ContentTypes::InstalledType type READ type WRITE setType NOTIFY typeChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ScreenPlayWidget(
|
explicit ScreenPlayWidget(
|
||||||
@ -37,7 +38,7 @@ public:
|
|||||||
const QPoint& position,
|
const QPoint& position,
|
||||||
const QString& absolutePath,
|
const QString& absolutePath,
|
||||||
const QString& previewImage, const QJsonObject& properties,
|
const QString& previewImage, const QJsonObject& properties,
|
||||||
const InstalledType::InstalledType type);
|
const ContentTypes::InstalledType type);
|
||||||
|
|
||||||
bool start();
|
bool start();
|
||||||
|
|
||||||
@ -47,7 +48,7 @@ public:
|
|||||||
QPoint position() const { return m_position; }
|
QPoint position() const { return m_position; }
|
||||||
QString absolutePath() const { return m_absolutePath; }
|
QString absolutePath() const { return m_absolutePath; }
|
||||||
QString appID() const { return m_appID; }
|
QString appID() const { return m_appID; }
|
||||||
InstalledType::InstalledType type() const { return m_type; }
|
ContentTypes::InstalledType type() const { return m_type; }
|
||||||
|
|
||||||
void setSDKConnection(std::unique_ptr<SDKConnection> connection);
|
void setSDKConnection(std::unique_ptr<SDKConnection> connection);
|
||||||
|
|
||||||
@ -84,7 +85,7 @@ public slots:
|
|||||||
emit appIDChanged(m_appID);
|
emit appIDChanged(m_appID);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setType(InstalledType::InstalledType type)
|
void setType(ContentTypes::InstalledType type)
|
||||||
{
|
{
|
||||||
if (m_type == type)
|
if (m_type == type)
|
||||||
return;
|
return;
|
||||||
@ -106,7 +107,7 @@ signals:
|
|||||||
void previewImageChanged(QString previewImage);
|
void previewImageChanged(QString previewImage);
|
||||||
void positionChanged(QPoint position);
|
void positionChanged(QPoint position);
|
||||||
void appIDChanged(QString appID);
|
void appIDChanged(QString appID);
|
||||||
void typeChanged(InstalledType::InstalledType type);
|
void typeChanged(ContentTypes::InstalledType type);
|
||||||
void absolutePathChanged(QString absolutePath);
|
void absolutePathChanged(QString absolutePath);
|
||||||
|
|
||||||
void requestSave();
|
void requestSave();
|
||||||
@ -122,7 +123,7 @@ private:
|
|||||||
QString m_previewImage;
|
QString m_previewImage;
|
||||||
QString m_appID;
|
QString m_appID;
|
||||||
QPoint m_position;
|
QPoint m_position;
|
||||||
InstalledType::InstalledType m_type;
|
ContentTypes::InstalledType m_type;
|
||||||
QString m_absolutePath;
|
QString m_absolutePath;
|
||||||
QTimer m_pingAliveTimer;
|
QTimer m_pingAliveTimer;
|
||||||
QStringList m_appArgumentsList;
|
QStringList m_appArgumentsList;
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
#include <QWebSocketServer>
|
#include <QWebSocketServer>
|
||||||
|
|
||||||
#include "ScreenPlay/globalvariables.h"
|
#include "ScreenPlay/globalvariables.h"
|
||||||
#include "ScreenPlay/util.h"
|
|
||||||
#include "ScreenPlayUtil/util.h"
|
#include "ScreenPlayUtil/util.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
#include <QtGlobal>
|
#include <QtGlobal>
|
||||||
|
|
||||||
#include "ScreenPlay/globalvariables.h"
|
#include "ScreenPlay/globalvariables.h"
|
||||||
#include "ScreenPlay/util.h"
|
#include "ScreenPlayUtil/util.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
@ -43,7 +43,9 @@ class ActiveProfile;
|
|||||||
|
|
||||||
class Settings : public QObject {
|
class Settings : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
QML_ELEMENT
|
||||||
QML_UNCREATABLE("")
|
QML_UNCREATABLE("")
|
||||||
|
Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
|
||||||
|
|
||||||
Q_PROPERTY(bool showDefaultContent READ showDefaultContent WRITE setShowDefaultContent NOTIFY showDefaultContentChanged)
|
Q_PROPERTY(bool showDefaultContent READ showDefaultContent WRITE setShowDefaultContent NOTIFY showDefaultContentChanged)
|
||||||
Q_PROPERTY(bool anonymousTelemetry READ anonymousTelemetry WRITE setAnonymousTelemetry NOTIFY anonymousTelemetryChanged)
|
Q_PROPERTY(bool anonymousTelemetry READ anonymousTelemetry WRITE setAnonymousTelemetry NOTIFY anonymousTelemetryChanged)
|
||||||
@ -54,10 +56,10 @@ class Settings : public QObject {
|
|||||||
Q_PROPERTY(bool offlineMode READ offlineMode WRITE setOfflineMode NOTIFY offlineModeChanged)
|
Q_PROPERTY(bool offlineMode READ offlineMode WRITE setOfflineMode NOTIFY offlineModeChanged)
|
||||||
Q_PROPERTY(bool steamVersion READ steamVersion WRITE setSteamVersion NOTIFY steamVersionChanged)
|
Q_PROPERTY(bool steamVersion READ steamVersion WRITE setSteamVersion NOTIFY steamVersionChanged)
|
||||||
|
|
||||||
Q_PROPERTY(ScreenPlay::FillMode::FillMode videoFillMode READ videoFillMode WRITE setVideoFillMode NOTIFY videoFillModeChanged)
|
Q_PROPERTY(ScreenPlay::Video::FillMode videoFillMode READ videoFillMode WRITE setVideoFillMode NOTIFY videoFillModeChanged)
|
||||||
Q_PROPERTY(DesktopEnvironment desktopEnvironment READ desktopEnvironment WRITE setDesktopEnvironment NOTIFY desktopEnvironmentChanged)
|
Q_PROPERTY(ScreenPlay::Settings::DesktopEnvironment desktopEnvironment READ desktopEnvironment WRITE setDesktopEnvironment NOTIFY desktopEnvironmentChanged)
|
||||||
Q_PROPERTY(Language language READ language WRITE setLanguage NOTIFY languageChanged)
|
Q_PROPERTY(ScreenPlay::Settings::Language language READ language WRITE setLanguage NOTIFY languageChanged)
|
||||||
Q_PROPERTY(Theme theme READ theme WRITE setTheme NOTIFY themeChanged)
|
Q_PROPERTY(ScreenPlay::Settings::Theme theme READ theme WRITE setTheme NOTIFY themeChanged)
|
||||||
|
|
||||||
Q_PROPERTY(QString decoder READ decoder WRITE setDecoder NOTIFY decoderChanged)
|
Q_PROPERTY(QString decoder READ decoder WRITE setDecoder NOTIFY decoderChanged)
|
||||||
Q_PROPERTY(QString buildInfos READ buildInfos WRITE setBuildInfos NOTIFY buildInfosChanged)
|
Q_PROPERTY(QString buildInfos READ buildInfos WRITE setBuildInfos NOTIFY buildInfosChanged)
|
||||||
@ -83,6 +85,7 @@ public:
|
|||||||
Unity,
|
Unity,
|
||||||
XFCE,
|
XFCE,
|
||||||
};
|
};
|
||||||
|
Q_ENUM(DesktopEnvironment)
|
||||||
|
|
||||||
enum class Language {
|
enum class Language {
|
||||||
En_US,
|
En_US,
|
||||||
@ -116,12 +119,12 @@ public:
|
|||||||
bool silentStart() const { return m_silentStart; }
|
bool silentStart() const { return m_silentStart; }
|
||||||
bool anonymousTelemetry() const { return m_anonymousTelemetry; }
|
bool anonymousTelemetry() const { return m_anonymousTelemetry; }
|
||||||
bool checkWallpaperVisible() const { return m_checkWallpaperVisible; }
|
bool checkWallpaperVisible() const { return m_checkWallpaperVisible; }
|
||||||
ScreenPlay::FillMode::FillMode videoFillMode() const { return m_videoFillMode; }
|
ScreenPlay::Video::FillMode videoFillMode() const { return m_videoFillMode; }
|
||||||
Language language() const { return m_language; }
|
ScreenPlay::Settings::Language language() const { return m_language; }
|
||||||
QString font() const { return m_font; }
|
QString font() const { return m_font; }
|
||||||
Theme theme() const { return m_theme; }
|
ScreenPlay::Settings::Theme theme() const { return m_theme; }
|
||||||
bool steamVersion() const { return m_steamVersion; }
|
bool steamVersion() const { return m_steamVersion; }
|
||||||
DesktopEnvironment desktopEnvironment() const { return m_desktopEnvironment; }
|
ScreenPlay::Settings::DesktopEnvironment desktopEnvironment() const { return m_desktopEnvironment; }
|
||||||
const QString& buildInfos() const { return m_buildInfos; }
|
const QString& buildInfos() const { return m_buildInfos; }
|
||||||
bool showDefaultContent() const { return m_showDefaultContent; }
|
bool showDefaultContent() const { return m_showDefaultContent; }
|
||||||
|
|
||||||
@ -137,12 +140,12 @@ signals:
|
|||||||
void silentStartChanged(bool silentStart);
|
void silentStartChanged(bool silentStart);
|
||||||
void anonymousTelemetryChanged(bool anonymousTelemetry);
|
void anonymousTelemetryChanged(bool anonymousTelemetry);
|
||||||
void checkWallpaperVisibleChanged(bool checkWallpaperVisible);
|
void checkWallpaperVisibleChanged(bool checkWallpaperVisible);
|
||||||
void videoFillModeChanged(ScreenPlay::FillMode::FillMode videoFillMode);
|
void videoFillModeChanged(ScreenPlay::Video::FillMode videoFillMode);
|
||||||
void languageChanged(ScreenPlay::Settings::Language language);
|
void languageChanged(ScreenPlay::Settings::Language language);
|
||||||
void fontChanged(QString font);
|
void fontChanged(QString font);
|
||||||
void themeChanged(ScreenPlay::Settings::Theme theme);
|
void themeChanged(ScreenPlay::Settings::Theme theme);
|
||||||
void steamVersionChanged(bool steamVersion);
|
void steamVersionChanged(bool steamVersion);
|
||||||
void desktopEnvironmentChanged(DesktopEnvironment desktopEnvironment);
|
void desktopEnvironmentChanged(ScreenPlay::Settings::DesktopEnvironment desktopEnvironment);
|
||||||
void buildInfosChanged(const QString& buildInfos);
|
void buildInfosChanged(const QString& buildInfos);
|
||||||
void showDefaultContentChanged(bool showDefaultContent);
|
void showDefaultContentChanged(bool showDefaultContent);
|
||||||
|
|
||||||
@ -152,306 +155,23 @@ public slots:
|
|||||||
void setupWidgetAndWindowPaths();
|
void setupWidgetAndWindowPaths();
|
||||||
bool retranslateUI();
|
bool retranslateUI();
|
||||||
|
|
||||||
void setShowDefaultContent(bool showDefaultContent)
|
void setShowDefaultContent(bool showDefaultContent);
|
||||||
{
|
void setqSetting(const QString& key, const QVariant& value);
|
||||||
if (m_showDefaultContent == showDefaultContent)
|
void setAutostart(bool autostart);
|
||||||
return;
|
void setHighPriorityStart(bool highPriorityStart);
|
||||||
m_showDefaultContent = showDefaultContent;
|
void setLocalStoragePath(QUrl localStoragePath);
|
||||||
emit showDefaultContentChanged(showDefaultContent);
|
void setDecoder(QString decoder);
|
||||||
}
|
void setOfflineMode(bool offlineMode);
|
||||||
|
void setSilentStart(bool silentStart);
|
||||||
void setqSetting(const QString& key, const QVariant& value)
|
void setAnonymousTelemetry(bool anonymousTelemetry);
|
||||||
{
|
void setCheckWallpaperVisible(bool checkWallpaperVisible);
|
||||||
m_qSettings.setValue(key, value);
|
void setVideoFillMode(ScreenPlay::Video::FillMode videoFillMode);
|
||||||
m_qSettings.sync();
|
void setLanguage(ScreenPlay::Settings::Language language);
|
||||||
}
|
void setFont(QString font);
|
||||||
|
void setTheme(ScreenPlay::Settings::Theme theme);
|
||||||
void setAutostart(bool autostart)
|
void setSteamVersion(bool steamVersion);
|
||||||
{
|
void setDesktopEnvironment(ScreenPlay::Settings::DesktopEnvironment desktopEnvironment);
|
||||||
if (desktopEnvironment() == DesktopEnvironment::Windows) {
|
void setBuildInfos(const QString& buildInfos);
|
||||||
|
|
||||||
QSettings settings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
|
|
||||||
if (autostart) {
|
|
||||||
settings.setValue("ScreenPlay", QDir::toNativeSeparators(QCoreApplication::applicationFilePath()) + " -silent");
|
|
||||||
settings.sync();
|
|
||||||
} else {
|
|
||||||
settings.remove("ScreenPlay");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (desktopEnvironment() == DesktopEnvironment::OSX) {
|
|
||||||
const QString plistFileName = "app.screenplay.plist";
|
|
||||||
QFile defaultPListFile(":/qml/ScreenPlayApp/assets/macos/" + plistFileName);
|
|
||||||
defaultPListFile.open(QIODevice::ReadOnly);
|
|
||||||
QString settingsPlistContent = defaultPListFile.readAll();
|
|
||||||
if (!settingsPlistContent.contains("{{SCREENPLAY_PATH}}")) {
|
|
||||||
qCritical() << "Unable to load plist settings template from qrc to set autostart!";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
QDir workingDir(QGuiApplication::applicationDirPath());
|
|
||||||
workingDir.cdUp();
|
|
||||||
workingDir.cdUp();
|
|
||||||
workingDir.cdUp();
|
|
||||||
const QString screenPlayPath = QUrl::fromUserInput(workingDir.path() + "/ScreenPlay.app/Contents/MacOS/ScreenPlay").toLocalFile();
|
|
||||||
settingsPlistContent.replace("{{SCREENPLAY_PATH}}", screenPlayPath);
|
|
||||||
settingsPlistContent.replace("{{SCREENPLAY_AUTOSTART}}", autostart ? "true" : "false");
|
|
||||||
|
|
||||||
const QString homePath = QDir::homePath();
|
|
||||||
QFile settingsPlist(homePath + "/Library/LaunchAgents/" + plistFileName);
|
|
||||||
if (settingsPlist.exists()) {
|
|
||||||
QDomDocument doc;
|
|
||||||
if (!doc.setContent(&settingsPlist)) {
|
|
||||||
settingsPlist.close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
settingsPlist.close();
|
|
||||||
|
|
||||||
QDomElement root = doc.firstChildElement();
|
|
||||||
QDomNodeList dictList = root.elementsByTagName("dict");
|
|
||||||
if (dictList.size() > 1 && dictList.size() < 1) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if autostart and corresponding path is set and abort if so. This is needed since osx 13.0 Ventura
|
|
||||||
// because it displays an annoying message every time we change the file.
|
|
||||||
bool isCorrectPath = false;
|
|
||||||
bool isAutostartEnabled = false;
|
|
||||||
QDomNode dictNode = dictList.at(0);
|
|
||||||
if (dictNode.isElement()) {
|
|
||||||
QDomElement dictElement = dictNode.toElement();
|
|
||||||
QDomNodeList keyList = dictElement.elementsByTagName("key");
|
|
||||||
for (int j = 0; j < keyList.size(); j++) {
|
|
||||||
QDomNode keyNode = keyList.at(j);
|
|
||||||
if (keyNode.isElement()) {
|
|
||||||
QDomElement keyElement = keyNode.toElement();
|
|
||||||
if (keyElement.text() == "ProgramArguments") {
|
|
||||||
QDomNode valueNode = keyNode.nextSibling();
|
|
||||||
if (valueNode.isElement()) {
|
|
||||||
QDomElement valueElement = valueNode.toElement();
|
|
||||||
QDomNodeList stringList = valueElement.elementsByTagName("string");
|
|
||||||
if (!stringList.isEmpty()) {
|
|
||||||
QDomNode stringNode = stringList.at(0);
|
|
||||||
if (stringNode.isElement()) {
|
|
||||||
QDomElement stringElement = stringNode.toElement();
|
|
||||||
const QString path = stringElement.text();
|
|
||||||
if (path == screenPlayPath) {
|
|
||||||
isCorrectPath = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dictNode.isElement()) {
|
|
||||||
QDomElement dictElement = dictNode.toElement();
|
|
||||||
QDomNodeList keyList = dictElement.elementsByTagName("key");
|
|
||||||
for (int j = 0; j < keyList.size(); j++) {
|
|
||||||
QDomNode keyNode = keyList.at(j);
|
|
||||||
if (keyNode.isElement()) {
|
|
||||||
QDomElement keyElement = keyNode.toElement();
|
|
||||||
if (keyElement.text() == "RunAtLoad") {
|
|
||||||
QDomNode valueNode = keyNode.nextSibling();
|
|
||||||
if (valueNode.isElement()) {
|
|
||||||
QDomElement valueElement = valueNode.toElement();
|
|
||||||
if (valueElement.tagName() == "true") {
|
|
||||||
isAutostartEnabled = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Nothing to do. Autostart has the same value and the path is also correct.
|
|
||||||
if (isAutostartEnabled == autostart && isCorrectPath)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!settingsPlist.remove()) {
|
|
||||||
qCritical() << "Unable to remove: " << settingsPlist.fileName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
settingsPlist.open(QIODevice::WriteOnly | QIODevice::Truncate);
|
|
||||||
QTextStream out(&settingsPlist);
|
|
||||||
out.setEncoding(QStringConverter::Utf8);
|
|
||||||
out << settingsPlistContent;
|
|
||||||
settingsPlist.flush();
|
|
||||||
settingsPlist.close();
|
|
||||||
|
|
||||||
qInfo() << "Set autostart enabled: " << autostart;
|
|
||||||
}
|
|
||||||
setqSetting("Autostart", autostart);
|
|
||||||
|
|
||||||
m_autostart = autostart;
|
|
||||||
emit autostartChanged(m_autostart);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setHighPriorityStart(bool highPriorityStart)
|
|
||||||
{
|
|
||||||
if (m_highPriorityStart == highPriorityStart)
|
|
||||||
return;
|
|
||||||
|
|
||||||
setqSetting("HighPriorityStart", highPriorityStart);
|
|
||||||
|
|
||||||
const QString app = "'" + QGuiApplication::applicationDirPath() + "/WindowsServiceHelper.exe" + "'";
|
|
||||||
QStringList args { "-Command", QString("Start-Process %1 -Verb runAs").arg(app), "-ArgumentList" };
|
|
||||||
|
|
||||||
// Because we must use powershell, we need to add an extra 'var' and ,
|
|
||||||
auto appendAsString = [&](const QString& string, const bool isLast = false) {
|
|
||||||
QString arg = "'" + string + "'";
|
|
||||||
if (!isLast)
|
|
||||||
arg += ",";
|
|
||||||
args.append(arg);
|
|
||||||
};
|
|
||||||
|
|
||||||
appendAsString("--t");
|
|
||||||
appendAsString("create");
|
|
||||||
appendAsString("--sn");
|
|
||||||
appendAsString("ScreenPlayService");
|
|
||||||
appendAsString("--dn");
|
|
||||||
appendAsString("ScreenPlayService");
|
|
||||||
appendAsString("--a");
|
|
||||||
appendAsString(QVariant(highPriorityStart).toString(), true);
|
|
||||||
|
|
||||||
QProcess process;
|
|
||||||
process.start(QStringLiteral("powershell"), args);
|
|
||||||
process.waitForFinished(5000);
|
|
||||||
|
|
||||||
m_highPriorityStart = highPriorityStart;
|
|
||||||
emit highPriorityStartChanged(m_highPriorityStart);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setLocalStoragePath(QUrl localStoragePath)
|
|
||||||
{
|
|
||||||
// Remove: "file:///"
|
|
||||||
QJsonValue cleanedPath = QJsonValue(localStoragePath.toString());
|
|
||||||
|
|
||||||
setqSetting("ScreenPlayContentPath", cleanedPath);
|
|
||||||
|
|
||||||
m_globalVariables->setLocalStoragePath(cleanedPath.toString());
|
|
||||||
emit resetInstalledListmodel();
|
|
||||||
}
|
|
||||||
|
|
||||||
void setDecoder(QString decoder)
|
|
||||||
{
|
|
||||||
if (m_decoder == decoder)
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_decoder = decoder;
|
|
||||||
|
|
||||||
emit decoderChanged(m_decoder);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setOfflineMode(bool offlineMode)
|
|
||||||
{
|
|
||||||
if (m_offlineMode == offlineMode)
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_offlineMode = offlineMode;
|
|
||||||
emit offlineModeChanged(m_offlineMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setSilentStart(bool silentStart)
|
|
||||||
{
|
|
||||||
if (m_silentStart == silentStart)
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_silentStart = silentStart;
|
|
||||||
emit silentStartChanged(m_silentStart);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setAnonymousTelemetry(bool anonymousTelemetry)
|
|
||||||
{
|
|
||||||
if (m_anonymousTelemetry == anonymousTelemetry)
|
|
||||||
return;
|
|
||||||
|
|
||||||
setqSetting("AnonymousTelemetry", anonymousTelemetry);
|
|
||||||
|
|
||||||
m_anonymousTelemetry = anonymousTelemetry;
|
|
||||||
emit anonymousTelemetryChanged(m_anonymousTelemetry);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setCheckWallpaperVisible(bool checkWallpaperVisible)
|
|
||||||
{
|
|
||||||
if (m_checkWallpaperVisible == checkWallpaperVisible)
|
|
||||||
return;
|
|
||||||
|
|
||||||
setqSetting("CheckWallpaperVisible", checkWallpaperVisible);
|
|
||||||
|
|
||||||
m_checkWallpaperVisible = checkWallpaperVisible;
|
|
||||||
emit checkWallpaperVisibleChanged(m_checkWallpaperVisible);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setVideoFillMode(ScreenPlay::FillMode::FillMode videoFillMode)
|
|
||||||
{
|
|
||||||
if (m_videoFillMode == videoFillMode)
|
|
||||||
return;
|
|
||||||
|
|
||||||
setqSetting("VideoFillMode", QVariant::fromValue(videoFillMode).toString());
|
|
||||||
|
|
||||||
m_videoFillMode = videoFillMode;
|
|
||||||
emit videoFillModeChanged(m_videoFillMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setLanguage(ScreenPlay::Settings::Language language)
|
|
||||||
{
|
|
||||||
if (m_language == language)
|
|
||||||
return;
|
|
||||||
|
|
||||||
setqSetting("Language", QVariant::fromValue(language).toString());
|
|
||||||
|
|
||||||
m_language = language;
|
|
||||||
emit languageChanged(m_language);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setFont(QString font)
|
|
||||||
{
|
|
||||||
if (m_font == font)
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_font = font;
|
|
||||||
emit fontChanged(m_font);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setTheme(ScreenPlay::Settings::Theme theme)
|
|
||||||
{
|
|
||||||
if (m_theme == theme)
|
|
||||||
return;
|
|
||||||
|
|
||||||
setqSetting("Theme", QVariant::fromValue(theme).toString());
|
|
||||||
|
|
||||||
m_theme = theme;
|
|
||||||
emit themeChanged(m_theme);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setSteamVersion(bool steamVersion)
|
|
||||||
{
|
|
||||||
if (m_steamVersion == steamVersion)
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_steamVersion = steamVersion;
|
|
||||||
emit steamVersionChanged(m_steamVersion);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setDesktopEnvironment(DesktopEnvironment desktopEnvironment)
|
|
||||||
{
|
|
||||||
if (m_desktopEnvironment == desktopEnvironment)
|
|
||||||
return;
|
|
||||||
|
|
||||||
m_desktopEnvironment = desktopEnvironment;
|
|
||||||
emit desktopEnvironmentChanged(m_desktopEnvironment);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setBuildInfos(const QString& buildInfos)
|
|
||||||
{
|
|
||||||
if (m_buildInfos == buildInfos)
|
|
||||||
return;
|
|
||||||
m_buildInfos = buildInfos;
|
|
||||||
emit buildInfosChanged(m_buildInfos);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void restoreDefault(const QString& appConfigLocation, const QString& settingsFileType);
|
void restoreDefault(const QString& appConfigLocation, const QString& settingsFileType);
|
||||||
@ -473,13 +193,13 @@ private:
|
|||||||
bool m_anonymousTelemetry { true };
|
bool m_anonymousTelemetry { true };
|
||||||
bool m_showDefaultContent { false };
|
bool m_showDefaultContent { false };
|
||||||
|
|
||||||
QString m_decoder;
|
ScreenPlay::Video::FillMode m_videoFillMode { ScreenPlay::Video::FillMode::Cover };
|
||||||
ScreenPlay::FillMode::FillMode m_videoFillMode { ScreenPlay::FillMode::FillMode::Cover };
|
ScreenPlay::Settings::Language m_language { Language::En_US };
|
||||||
Language m_language { Language::En_US };
|
ScreenPlay::Settings::Theme m_theme { Theme::System };
|
||||||
Theme m_theme { Theme::System };
|
ScreenPlay::Settings::DesktopEnvironment m_desktopEnvironment { DesktopEnvironment::Unknown };
|
||||||
QString m_font { "Roboto" };
|
QString m_font { "Roboto" };
|
||||||
|
QString m_decoder;
|
||||||
bool m_steamVersion { false };
|
bool m_steamVersion { false };
|
||||||
DesktopEnvironment m_desktopEnvironment = DesktopEnvironment::Unknown;
|
|
||||||
QString m_buildInfos;
|
QString m_buildInfos;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,132 +0,0 @@
|
|||||||
// SPDX-License-Identifier: LicenseRef-EliasSteurerTachiom OR AGPL-3.0-only
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <QClipboard>
|
|
||||||
#include <QCoreApplication>
|
|
||||||
#include <QDateTime>
|
|
||||||
#include <QDebug>
|
|
||||||
#include <QDir>
|
|
||||||
#include <QJsonDocument>
|
|
||||||
#include <QJsonObject>
|
|
||||||
#include <QMetaType>
|
|
||||||
#include <QNetworkAccessManager>
|
|
||||||
#include <QNetworkReply>
|
|
||||||
#include <QObject>
|
|
||||||
#include <QProcess>
|
|
||||||
#include <QQmlEngine>
|
|
||||||
#include <QScopeGuard>
|
|
||||||
#include <QString>
|
|
||||||
#include <QTextStream>
|
|
||||||
#include <QVersionNumber>
|
|
||||||
#include <QtConcurrent/QtConcurrent>
|
|
||||||
|
|
||||||
#include "ScreenPlay/globalvariables.h"
|
|
||||||
#include "ScreenPlayUtil/contenttypes.h"
|
|
||||||
#include "ScreenPlayUtil/util.h"
|
|
||||||
|
|
||||||
#include <fstream>
|
|
||||||
#include <iostream>
|
|
||||||
#include <optional>
|
|
||||||
|
|
||||||
namespace QArchive {
|
|
||||||
class DiskCompressor;
|
|
||||||
class DiskExtractor;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace ScreenPlay {
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
T QStringToEnum(const QString& key, const T defaultValue)
|
|
||||||
{
|
|
||||||
auto metaEnum = QMetaEnum::fromType<T>();
|
|
||||||
|
|
||||||
bool ok = false;
|
|
||||||
T wantedEnum = static_cast<T>(metaEnum.keyToValue(key.toUtf8(), &ok));
|
|
||||||
|
|
||||||
if (ok) {
|
|
||||||
return wantedEnum;
|
|
||||||
} else {
|
|
||||||
qWarning() << "Unable to convert QStringToEnum. Key: " << key;
|
|
||||||
}
|
|
||||||
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
class Util : public QObject {
|
|
||||||
Q_OBJECT
|
|
||||||
Q_PROPERTY(QString debugMessages READ debugMessages NOTIFY debugMessagesChanged)
|
|
||||||
|
|
||||||
public:
|
|
||||||
Util();
|
|
||||||
~Util();
|
|
||||||
|
|
||||||
QString debugMessages() const { return m_debugMessages; }
|
|
||||||
|
|
||||||
signals:
|
|
||||||
void extractionProgressChanged(QString file, int proc, int total, qint64 br, qint64 bt);
|
|
||||||
void extractionFinished();
|
|
||||||
void compressionProgressChanged(QString file, int proc, int total, qint64 br, qint64 bt);
|
|
||||||
void compressionFinished();
|
|
||||||
|
|
||||||
void requestNavigation(QString nav);
|
|
||||||
void requestNavigationActive(bool isActive);
|
|
||||||
void requestToggleWallpaperConfiguration();
|
|
||||||
void setSidebarItem(QString folderName, ScreenPlay::InstalledType::InstalledType type);
|
|
||||||
void allLicenseLoaded(QString licensesText);
|
|
||||||
void allDataProtectionLoaded(QString dataProtectionText);
|
|
||||||
void debugMessagesChanged(QString debugMessages);
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
void copyToClipboard(const QString& text) const;
|
|
||||||
void openFolderInExplorer(const QString& url) const;
|
|
||||||
QString toLocal(const QString& url) const;
|
|
||||||
bool exportProject(QString contentPath, QString exportFileName);
|
|
||||||
bool importProject(QString archivePath, QString extractionPath);
|
|
||||||
void requestAllLicenses();
|
|
||||||
void requestDataProtection();
|
|
||||||
bool fileExists(const QString& filePath) const;
|
|
||||||
|
|
||||||
static void logToGui(QtMsgType type, const QMessageLogContext& context, const QString& msg);
|
|
||||||
static bool writeJsonObjectToFile(const QString& absoluteFilePath, const QJsonObject& object, bool truncate = true);
|
|
||||||
static bool writeSettings(const QJsonObject& obj, const QString& absolutePath);
|
|
||||||
static bool writeFile(const QString& text, const QString& absolutePath);
|
|
||||||
static bool writeFileFromQrc(const QString& qrcPath, const QString& absolutePath);
|
|
||||||
static bool copyPreviewThumbnail(QJsonObject& obj, const QString& previewThumbnail, const QString& destination);
|
|
||||||
|
|
||||||
void setNavigation(QString nav)
|
|
||||||
{
|
|
||||||
emit requestNavigation(nav);
|
|
||||||
}
|
|
||||||
|
|
||||||
// When we create a wallpaper the main navigation gets disabled
|
|
||||||
void setNavigationActive(bool isActive)
|
|
||||||
{
|
|
||||||
emit requestNavigationActive(isActive);
|
|
||||||
}
|
|
||||||
|
|
||||||
void setToggleWallpaperConfiguration()
|
|
||||||
{
|
|
||||||
emit requestToggleWallpaperConfiguration();
|
|
||||||
}
|
|
||||||
|
|
||||||
void appendDebugMessages(QString debugMessages)
|
|
||||||
{
|
|
||||||
if (m_debugMessages.size() > 10000) {
|
|
||||||
m_debugMessages = "###### DEBUG CLEARED ######";
|
|
||||||
}
|
|
||||||
|
|
||||||
m_debugMessages += debugMessages;
|
|
||||||
emit debugMessagesChanged(m_debugMessages);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
QString m_debugMessages {};
|
|
||||||
QFuture<void> m_requestAllLicensesFuture;
|
|
||||||
std::unique_ptr<QArchive::DiskCompressor> m_compressor;
|
|
||||||
std::unique_ptr<QArchive::DiskExtractor> m_extractor;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Used for redirect content from static logToGui to setDebugMessages
|
|
||||||
static Util* utilPointer { nullptr };
|
|
||||||
}
|
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <QColor>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
@ -24,7 +25,7 @@
|
|||||||
|
|
||||||
#include "ScreenPlay/createimportvideo.h"
|
#include "ScreenPlay/createimportvideo.h"
|
||||||
#include "ScreenPlay/globalvariables.h"
|
#include "ScreenPlay/globalvariables.h"
|
||||||
#include "ScreenPlay/util.h"
|
#include "ScreenPlayUtil/util.h"
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
@ -34,9 +35,11 @@ namespace ScreenPlay {
|
|||||||
class Wizards : public QObject {
|
class Wizards : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
QML_ELEMENT
|
QML_ELEMENT
|
||||||
|
QML_UNCREATABLE("CPP ONLY")
|
||||||
public:
|
public:
|
||||||
explicit Wizards(const std::shared_ptr<GlobalVariables>& globalVariables, QObject* parent = nullptr);
|
explicit Wizards(
|
||||||
Wizards() { }
|
const std::shared_ptr<GlobalVariables>& globalVariables,
|
||||||
|
QObject* parent = nullptr);
|
||||||
|
|
||||||
enum class WizardResult {
|
enum class WizardResult {
|
||||||
Ok,
|
Ok,
|
||||||
@ -82,6 +85,14 @@ public slots:
|
|||||||
const QString& previewThumbnail,
|
const QString& previewThumbnail,
|
||||||
const QVector<QString>& tags);
|
const QVector<QString>& tags);
|
||||||
|
|
||||||
|
void createGodotWallpaper(
|
||||||
|
const QString& title,
|
||||||
|
const QString& licenseName,
|
||||||
|
const QString& licenseFile,
|
||||||
|
const QString& createdBy,
|
||||||
|
const QString& previewThumbnail,
|
||||||
|
const QVector<QString>& tags);
|
||||||
|
|
||||||
void createGifWallpaper(
|
void createGifWallpaper(
|
||||||
const QString& title,
|
const QString& title,
|
||||||
const QString& licenseName,
|
const QString& licenseName,
|
||||||
@ -103,8 +114,17 @@ signals:
|
|||||||
private:
|
private:
|
||||||
const std::shared_ptr<GlobalVariables> m_globalVariables;
|
const std::shared_ptr<GlobalVariables> m_globalVariables;
|
||||||
const std::optional<QString> createTemporaryFolder() const;
|
const std::optional<QString> createTemporaryFolder() const;
|
||||||
|
void createPreviewImage(const QString& name, const QString& targetPath);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QFuture<void> m_wizardFuture;
|
QFuture<void> m_wizardFuture;
|
||||||
|
QVector<QColor> m_gradientColors = {
|
||||||
|
QColor("#B71C1C"),
|
||||||
|
QColor("#1B5E20"),
|
||||||
|
QColor("#0D47A1"),
|
||||||
|
QColor("#FFD600"),
|
||||||
|
QColor("#4A148C")
|
||||||
|
};
|
||||||
|
Util m_util;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
// SPDX-License-Identifier: LicenseRef-EliasSteurerTachiom OR AGPL-3.0-only
|
// SPDX-License-Identifier: LicenseRef-EliasSteurerTachiom OR AGPL-3.0-only
|
||||||
|
|
||||||
|
#include "ScreenPlay/CMakeVariables.h"
|
||||||
#include "ScreenPlay/app.h"
|
#include "ScreenPlay/app.h"
|
||||||
|
#include "ScreenPlayUtil/logginghandler.h"
|
||||||
#include <QCommandLineParser>
|
#include <QCommandLineParser>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
@ -30,12 +32,14 @@ int main(int argc, char* argv[])
|
|||||||
|
|
||||||
if (app.m_isAnotherScreenPlayInstanceRunning) {
|
if (app.m_isAnotherScreenPlayInstanceRunning) {
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
}
|
||||||
|
|
||||||
|
auto logging = std::make_unique<const ScreenPlayUtil::LoggingHandler>("ScreenPlay");
|
||||||
app.init();
|
app.init();
|
||||||
const int status = qtGuiApp.exec();
|
const int status = qtGuiApp.exec();
|
||||||
#if defined(Q_OS_WIN)
|
#if defined(Q_OS_WIN)
|
||||||
sentry_shutdown();
|
sentry_shutdown();
|
||||||
#endif
|
#endif
|
||||||
|
logging.reset();
|
||||||
return status;
|
return status;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ import QtQuick.Controls.Material
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import Settings
|
|
||||||
import ScreenPlayUtil as Util
|
import ScreenPlayUtil as Util
|
||||||
import Qt5Compat.GraphicalEffects
|
import Qt5Compat.GraphicalEffects
|
||||||
import Plausible 1.0
|
import Plausible 1.0
|
||||||
@ -22,13 +21,13 @@ ApplicationWindow {
|
|||||||
|
|
||||||
function setTheme(theme) {
|
function setTheme(theme) {
|
||||||
switch (theme) {
|
switch (theme) {
|
||||||
case Settings.System:
|
case Settings.Theme.System:
|
||||||
root.Material.theme = Material.System;
|
root.Material.theme = Material.System;
|
||||||
break;
|
break;
|
||||||
case Settings.Dark:
|
case Settings.Theme.Dark:
|
||||||
root.Material.theme = Material.Dark;
|
root.Material.theme = Material.Dark;
|
||||||
break;
|
break;
|
||||||
case Settings.Light:
|
case Settings.Theme.Light:
|
||||||
root.Material.theme = Material.Light;
|
root.Material.theme = Material.Light;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -40,14 +39,15 @@ ApplicationWindow {
|
|||||||
App.installedListModel.reset();
|
App.installedListModel.reset();
|
||||||
}
|
}
|
||||||
if (name === "Installed") {
|
if (name === "Installed") {
|
||||||
stackView.replace("qrc:/qml/ScreenPlayApp/qml/Installed/Installed.qml", {
|
stackView.replace("qrc:/qml/ScreenPlayApp/qml/Installed/InstalledView.qml", {
|
||||||
"sidebar": sidebar
|
"sidebar": sidebar
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
stackView.replace("qrc:/qml/ScreenPlayApp/qml/" + name + "/" + name + ".qml", {
|
stackView.replace("qrc:/qml/ScreenPlayApp/qml/" + name + "/" + name + "View.qml", {
|
||||||
"modalSource": content
|
"modalSource": content
|
||||||
});
|
});
|
||||||
|
nav.setNavigation(name);
|
||||||
sidebar.state = "inactive";
|
sidebar.state = "inactive";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ ApplicationWindow {
|
|||||||
visible: false
|
visible: false
|
||||||
width: 1400
|
width: 1400
|
||||||
height: 810
|
height: 810
|
||||||
title: "ScreenPlay Alpha - V" + App.version()
|
title: "ScreenPlay Alpha - v" + App.version()
|
||||||
minimumHeight: 450
|
minimumHeight: 450
|
||||||
minimumWidth: 1050
|
minimumWidth: 1050
|
||||||
|
|
||||||
@ -72,9 +72,10 @@ ApplicationWindow {
|
|||||||
// https://bugreports.qt.io/browse/QTBUG-86047
|
// https://bugreports.qt.io/browse/QTBUG-86047
|
||||||
Material.accent: Material.color(Material.Orange)
|
Material.accent: Material.color(Material.Orange)
|
||||||
onVisibilityChanged: {
|
onVisibilityChanged: {
|
||||||
if (root.visibility === 2)
|
if (root.visibility !== 2)
|
||||||
App.installedListModel.reset();
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
onClosing: close => {
|
onClosing: close => {
|
||||||
close.accepted = false;
|
close.accepted = false;
|
||||||
if (App.screenPlayManager.activeWallpaperCounter === 0 && App.screenPlayManager.activeWidgetsCounter === 0) {
|
if (App.screenPlayManager.activeWallpaperCounter === 0 && App.screenPlayManager.activeWidgetsCounter === 0) {
|
||||||
@ -103,14 +104,17 @@ ApplicationWindow {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
print("Settings.Language.Pl_PL", Settings.Language.Pl_PL);
|
||||||
|
print(App.settings.theme, Settings.Theme.Light);
|
||||||
setTheme(App.settings.theme);
|
setTheme(App.settings.theme);
|
||||||
stackView.push("qrc:/qml/ScreenPlayApp/qml/Installed/Installed.qml", {
|
stackView.push("qrc:/qml/ScreenPlayApp/qml/Installed/InstalledView.qml", {
|
||||||
"sidebar": sidebar
|
"sidebar": sidebar
|
||||||
});
|
});
|
||||||
if (!App.settings.silentStart) {
|
if (!App.settings.silentStart) {
|
||||||
App.showDockIcon(true);
|
App.showDockIcon(true);
|
||||||
root.show();
|
root.show();
|
||||||
}
|
}
|
||||||
|
App.installedListModel.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
@ -129,7 +133,7 @@ ApplicationWindow {
|
|||||||
modalSource: content
|
modalSource: content
|
||||||
}
|
}
|
||||||
|
|
||||||
Monitors.Monitors {
|
Monitors.MonitorsView {
|
||||||
id: monitors
|
id: monitors
|
||||||
modalSource: content
|
modalSource: content
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,6 @@ import Qt5Compat.GraphicalEffects
|
|||||||
import QtQuick.Controls.Material.impl
|
import QtQuick.Controls.Material.impl
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlayUtil
|
import ScreenPlayUtil
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
@ -42,9 +41,7 @@ Rectangle {
|
|||||||
|
|
||||||
function onWizardExited() {
|
function onWizardExited() {
|
||||||
root.expanded = true;
|
root.expanded = true;
|
||||||
stackView.clear(StackView.PushTransition);
|
App.util.setNavigation("Installed");
|
||||||
stackView.push("qrc:/qml/ScreenPlayApp/qml/Create/StartInfo.qml");
|
|
||||||
listView.currentIndex = 0;
|
|
||||||
App.util.setNavigationActive(true);
|
App.util.setNavigationActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,6 +84,13 @@ Rectangle {
|
|||||||
objectName: ""
|
objectName: ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ListElement {
|
||||||
|
headline: qsTr("3D Engine Wallpaper (Godot 4.2)")
|
||||||
|
source: "qrc:/qml/ScreenPlayApp/qml/Create/Wizards/GodotWallpaper.qml"
|
||||||
|
category: "Code Wallpaper"
|
||||||
|
objectName: ""
|
||||||
|
}
|
||||||
|
|
||||||
ListElement {
|
ListElement {
|
||||||
headline: qsTr("QML Wallpaper")
|
headline: qsTr("QML Wallpaper")
|
||||||
source: "qrc:/qml/ScreenPlayApp/qml/Create/Wizards/QMLWallpaper.qml"
|
source: "qrc:/qml/ScreenPlayApp/qml/Create/Wizards/QMLWallpaper.qml"
|
||||||
|
@ -6,7 +6,6 @@ import Qt5Compat.GraphicalEffects
|
|||||||
import QtQuick.Controls.Material.impl
|
import QtQuick.Controls.Material.impl
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlayUtil
|
import ScreenPlayUtil
|
||||||
|
|
||||||
Item {
|
Item {
|
@ -6,7 +6,6 @@ import Qt5Compat.GraphicalEffects
|
|||||||
import QtQuick.Controls.Material.impl
|
import QtQuick.Controls.Material.impl
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlayUtil as Util
|
import ScreenPlayUtil as Util
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -6,7 +6,6 @@ import Qt5Compat.GraphicalEffects
|
|||||||
import QtQuick.Controls.Material.impl
|
import QtQuick.Controls.Material.impl
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlayUtil
|
import ScreenPlayUtil
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -5,7 +5,6 @@ import QtQuick.Controls.Material
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlayUtil
|
import ScreenPlayUtil
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
100
ScreenPlay/qml/Create/Wizards/GodotWallpaper.qml
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
import QtQuick
|
||||||
|
import Qt5Compat.GraphicalEffects
|
||||||
|
import QtQuick.Controls
|
||||||
|
import QtQuick.Controls.Material
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import ScreenPlayApp
|
||||||
|
import ScreenPlay
|
||||||
|
import ScreenPlayUtil as Util
|
||||||
|
|
||||||
|
WizardPage {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
sourceComponent: ColumnLayout {
|
||||||
|
id: rightWrapper
|
||||||
|
|
||||||
|
function create() {
|
||||||
|
App.wizards.createGodotWallpaper(tfTitle.text, cbLicense.name, cbLicense.licenseFile, tfCreatedBy.text, previewSelector.imageSource, tagSelector.getTags());
|
||||||
|
}
|
||||||
|
|
||||||
|
spacing: 10
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
right: parent.right
|
||||||
|
left: parent.left
|
||||||
|
}
|
||||||
|
|
||||||
|
Util.Headline {
|
||||||
|
text: qsTr("Create a Godot Wallpaper")
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
|
||||||
|
Util.HeadlineSection {
|
||||||
|
text: qsTr("General")
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
spacing: 20
|
||||||
|
|
||||||
|
Util.TextField {
|
||||||
|
id: tfTitle
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
placeholderText: qsTr("Wallpaper name")
|
||||||
|
required: true
|
||||||
|
onTextChanged: root.ready = text.length >= 1
|
||||||
|
}
|
||||||
|
|
||||||
|
Util.TextField {
|
||||||
|
id: tfCreatedBy
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
placeholderText: qsTr("Created By")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Util.TextField {
|
||||||
|
id: tfDescription
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
placeholderText: qsTr("Description")
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
height: 30
|
||||||
|
}
|
||||||
|
|
||||||
|
Util.HeadlineSection {
|
||||||
|
text: qsTr("License & Tags")
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
spacing: 20
|
||||||
|
|
||||||
|
Util.LicenseSelector {
|
||||||
|
id: cbLicense
|
||||||
|
}
|
||||||
|
|
||||||
|
Util.TagSelector {
|
||||||
|
id: tagSelector
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
height: 30
|
||||||
|
}
|
||||||
|
|
||||||
|
Util.HeadlineSection {
|
||||||
|
text: qsTr("Preview Image")
|
||||||
|
}
|
||||||
|
|
||||||
|
Util.ImageSelector {
|
||||||
|
id: previewSelector
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -5,7 +5,6 @@ import QtQuick.Controls.Material
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlayUtil as Util
|
import ScreenPlayUtil as Util
|
||||||
|
|
||||||
WizardPage {
|
WizardPage {
|
||||||
|
@ -5,7 +5,6 @@ import QtQuick.Controls.Material
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
|
@ -6,7 +6,6 @@ import QtQuick.Layouts
|
|||||||
import QtQuick.Dialogs
|
import QtQuick.Dialogs
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlayUtil as Util
|
import ScreenPlayUtil as Util
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
@ -59,10 +58,6 @@ Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ComboBox {
|
ComboBox {
|
||||||
// ListElement {
|
|
||||||
// text: "AV1 (NVidia 3000, AMD 6000 or newer). ULTRA SLOW ENCODING!"
|
|
||||||
// value: Create.AV1
|
|
||||||
// }
|
|
||||||
id: comboBoxCodec
|
id: comboBoxCodec
|
||||||
|
|
||||||
Layout.preferredWidth: 400
|
Layout.preferredWidth: 400
|
||||||
@ -76,14 +71,13 @@ Item {
|
|||||||
|
|
||||||
ListElement {
|
ListElement {
|
||||||
text: "VP8 (Better for older hardware)"
|
text: "VP8 (Better for older hardware)"
|
||||||
value: Create.VP9
|
value: Util.Video.VideoCodec.VP9
|
||||||
}
|
}
|
||||||
|
|
||||||
ListElement {
|
ListElement {
|
||||||
text: "VP9 (Better for newer hardware 2018+)"
|
text: "VP9 (Better for newer hardware 2018+)"
|
||||||
value: Create.VP8
|
value: Util.Video.VideoCodec.VP8
|
||||||
}
|
}
|
||||||
// Import works but the QWebEngine cannot display AV1 :(
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import QtQuick.Layouts
|
|||||||
import Qt5Compat.GraphicalEffects
|
import Qt5Compat.GraphicalEffects
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: wrapperError
|
id: wrapperError
|
||||||
|
@ -5,8 +5,6 @@ import QtQuick.Controls.Material
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlay.Enums.ImportVideoState
|
|
||||||
import ScreenPlayUtil as Util
|
import ScreenPlayUtil as Util
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -5,7 +5,6 @@ import QtQuick.Controls.Material
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
|
@ -5,8 +5,6 @@ import QtQuick.Controls.Material
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlay.Enums.ImportVideoState
|
|
||||||
import ScreenPlayUtil as Util
|
import ScreenPlayUtil as Util
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
@ -329,7 +327,7 @@ Item {
|
|||||||
onClicked: {
|
onClicked: {
|
||||||
if (conversionFinishedSuccessful) {
|
if (conversionFinishedSuccessful) {
|
||||||
btnSave.enabled = false;
|
btnSave.enabled = false;
|
||||||
App.create.saveWallpaper(textFieldName.text, textFieldDescription.text, root.filePath, previewSelector.imageSource, textFieldYoutubeURL.text, Create.VP9, textFieldTags.getTags());
|
App.create.saveWallpaper(textFieldName.text, textFieldDescription.text, root.filePath, previewSelector.imageSource, textFieldYoutubeURL.text, Util.Video.VideoCodec.VP9, textFieldTags.getTags());
|
||||||
savePopup.open();
|
savePopup.open();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,6 @@ import QtQuick.Layouts
|
|||||||
import QtQuick.Dialogs
|
import QtQuick.Dialogs
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlayUtil as Util
|
import ScreenPlayUtil as Util
|
||||||
import "../../"
|
import "../../"
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@ import QtQuick.Controls.Material
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
|
@ -5,8 +5,6 @@ import QtQuick.Controls.Material
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlay.Enums.ImportVideoState
|
|
||||||
import ScreenPlayUtil as Util
|
import ScreenPlayUtil as Util
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -6,7 +6,6 @@ import QtQuick.Layouts
|
|||||||
import QtQuick.Dialogs
|
import QtQuick.Dialogs
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlayUtil as Util
|
import ScreenPlayUtil as Util
|
||||||
import "../../"
|
import "../../"
|
||||||
|
|
||||||
@ -46,7 +45,7 @@ Item {
|
|||||||
Text {
|
Text {
|
||||||
id: txtDescription
|
id: txtDescription
|
||||||
|
|
||||||
text: qsTr("ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems.")
|
text: qsTr("ScreenPlay v0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems.")
|
||||||
color: Material.primaryTextColor
|
color: Material.primaryTextColor
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
font.pointSize: 13
|
font.pointSize: 13
|
||||||
|
@ -5,7 +5,6 @@ import QtQuick.Controls.Material
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlayUtil as Util
|
import ScreenPlayUtil as Util
|
||||||
|
|
||||||
WizardPage {
|
WizardPage {
|
||||||
|
@ -5,21 +5,25 @@ import QtQuick.Controls.Material
|
|||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
import ScreenPlayUtil as Util
|
import ScreenPlayUtil as Util
|
||||||
|
|
||||||
WizardPage {
|
WizardPage {
|
||||||
id: root
|
id: root
|
||||||
|
function isValidURL(string) {
|
||||||
|
var res = string.match(/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g);
|
||||||
|
return (res !== null);
|
||||||
|
}
|
||||||
sourceComponent: ColumnLayout {
|
sourceComponent: ColumnLayout {
|
||||||
property bool ready: tfTitle.text.length >= 1 && tfUrl.text.length > 1
|
id: layout
|
||||||
|
function validate() {
|
||||||
|
root.ready = tfTitle.text.length >= 1 && root.isValidURL(tfUrl.text);
|
||||||
|
}
|
||||||
|
|
||||||
function create() {
|
function create() {
|
||||||
App.wizards.createWebsiteWallpaper(tfTitle.text, previewSelector.imageSource, tfUrl.text, tagSelector.getTags());
|
App.wizards.createWebsiteWallpaper(tfTitle.text, previewSelector.imageSource, tfUrl.text, tagSelector.getTags());
|
||||||
}
|
}
|
||||||
|
|
||||||
spacing: 10
|
spacing: 10
|
||||||
onReadyChanged: root.ready = ready
|
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
@ -41,11 +45,10 @@ WizardPage {
|
|||||||
|
|
||||||
Util.TextField {
|
Util.TextField {
|
||||||
id: tfTitle
|
id: tfTitle
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
placeholderText: qsTr("Wallpaper name")
|
placeholderText: qsTr("Wallpaper name")
|
||||||
required: true
|
required: true
|
||||||
onTextChanged: root.ready = text.length >= 1
|
onTextChanged: layout.validate()
|
||||||
}
|
}
|
||||||
|
|
||||||
Util.TextField {
|
Util.TextField {
|
||||||
@ -65,10 +68,10 @@ WizardPage {
|
|||||||
|
|
||||||
Util.TextField {
|
Util.TextField {
|
||||||
id: tfUrl
|
id: tfUrl
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
required: true
|
required: true
|
||||||
text: "https://"
|
text: "https://"
|
||||||
|
onTextChanged: layout.validate()
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -6,7 +6,6 @@ import QtQuick.Layouts
|
|||||||
import QtQuick.Window
|
import QtQuick.Window
|
||||||
import ScreenPlayApp
|
import ScreenPlayApp
|
||||||
import ScreenPlay
|
import ScreenPlay
|
||||||
import ScreenPlay.Create
|
|
||||||
|
|
||||||
FocusScope {
|
FocusScope {
|
||||||
id: root
|
id: root
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
[preset.0]
|
||||||
|
|
||||||
|
name="Windows Desktop"
|
||||||
|
platform="Windows Desktop"
|
||||||
|
runnable=true
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter=""
|
||||||
|
export_path=""
|
||||||
|
encryption_include_filters=""
|
||||||
|
encryption_exclude_filters=""
|
||||||
|
encrypt_pck=false
|
||||||
|
encrypt_directory=false
|