mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-11-25 12:13:00 +01:00
Move docs to https://gitlab.com/kelteseth/ScreenPlayDocs
This commit is contained in:
parent
75d72de5b7
commit
27b98a4693
@ -1,7 +0,0 @@
|
|||||||
### Continous Inegration
|
|
||||||
|
|
||||||
##### Code Checks
|
|
||||||
|
|
||||||
##### Benchmarks
|
|
||||||
|
|
||||||
##### Unit tests
|
|
@ -1,77 +0,0 @@
|
|||||||
# Setup
|
|
||||||
1. Download and install the tools for your platform __first__.
|
|
||||||
1. [Windows](#windows)
|
|
||||||
1. [Linux](#linux)
|
|
||||||
1. [MacOS](#macos)
|
|
||||||
2. __Then__ see the instruction of [how to setup QtCreator and compile ScreenPlay](#setup-qtcreator-and-compile-screenplay)
|
|
||||||
|
|
||||||
## Windows
|
|
||||||
1. Download and install:
|
|
||||||
1. Microsoft Visual Studio Community 2022 [Download](https://visualstudio.microsoft.com/de/vs/community/)
|
|
||||||
1. Make sure you have the exact Windows SDK and MSVC version installed we use in `CMakePresets.json`
|
|
||||||
1. `"VCToolsVersion": "14.34.31933"` aka Visual Studio `17.4.3`
|
|
||||||
2. `"WindowsSDKVersion" : "10.0.22621.0"`
|
|
||||||
2. Python 3.11+ and select `Add to Path` during the installation. [Download](https://www.python.org/downloads/)
|
|
||||||
3. Optional if you do not have tools like `git` or `cmake` installed, we recommend `Chocolatey`:
|
|
||||||
1. Chocolatey via Powershell (Administrator) [Download](https://chocolatey.org/install)
|
|
||||||
2. Run `choco.exe install git vscode cmake --installargs 'ADD_CMAKE_TO_PATH=System' -y`
|
|
||||||
|
|
||||||
## Linux
|
|
||||||
1. Install dependencies for Debian/Ubuntu:
|
|
||||||
``` bash
|
|
||||||
sudo apt install build-essential git gpg ffmpeg mesa-common-dev libxkbcommon-* libfontconfig curl zip unzip tar cmake pkg-config apt-transport-https ca-certificates gnupg software-properties-common wget software-properties-common python3 python3-pip libgl1-mesa-dev lld ninja-build qml-module-qt-websockets qtwebengine5-* -y
|
|
||||||
# Only needed if we want x11 support
|
|
||||||
sudo apt-get install libx11-dev xserver-xorg-dev xorg-dev
|
|
||||||
```
|
|
||||||
|
|
||||||
## MacOS
|
|
||||||
1. Install XCode 14+ , open and restart your device.
|
|
||||||
1. Install [brew](https://brew.sh) that is needed by some third party vcpkg packages. Do not forget to add brew to your path as outlined at the on of the installation!
|
|
||||||
- `brew install pkg-config git llvm cmake`
|
|
||||||
|
|
||||||
# Download ScreenPlay and dependencies
|
|
||||||
``` bash
|
|
||||||
git clone --recursive https://gitlab.com/kelteseth/ScreenPlay.git ScreenPlay/ScreenPlay
|
|
||||||
cd ScreenPlay
|
|
||||||
```
|
|
||||||
Downloading dependencies is 100% automated. Simply run the `setup.py` script
|
|
||||||
``` bash
|
|
||||||
cd Tools
|
|
||||||
# Windows defaults to python, linux and macOS uses python3
|
|
||||||
python -m pip install -r requirements.txt
|
|
||||||
# This scrit will:
|
|
||||||
# 1. Downloads `Qt` and `QtCreator`
|
|
||||||
# 2. Create a `vcpkg` folder for dependencies
|
|
||||||
# 3. Compiles the dependencies
|
|
||||||
# 4. Downloads ffmpeg
|
|
||||||
python setup.py
|
|
||||||
```
|
|
||||||
Now you can either use VSCode or QtCreator:
|
|
||||||
# Option 1 (Recommended): Setup VSCode and compile ScreenPlay
|
|
||||||
1. Open VSCode
|
|
||||||
1. Install these extentions:
|
|
||||||
1. [C/C++ for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)
|
|
||||||
1. [CMake Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools)
|
|
||||||
2. Press: `CTRL` + `SHIFT` + `P` for every command:
|
|
||||||
1. `CMake: Select Configure Preset`. Select one of the listed presets like `MSVC SP Qt 6.4.2 Debug`
|
|
||||||
2. `CMake: Configure`
|
|
||||||
4. Press `F7` to Compile and `F5` to run!
|
|
||||||
|
|
||||||
⚠️ Do not forget to switch you CMake build target when switching run targets! For example you need to select the `debug` run target when you compile in `debug` mode!
|
|
||||||
# Option 2: Setup QtCreator and compile ScreenPlay
|
|
||||||
1. Open QtCreator at:
|
|
||||||
1. Windows: `..\aqt\Tools\QtCreator\bin\qtcreator.exe`
|
|
||||||
2. Linux: `../aqt/Tools/QtCreator/bin/qtcreator`
|
|
||||||
3. MacOS: `../aqt/Qt Creator`
|
|
||||||
2. Select the imported temporary kit like `MSVC SP Qt 6.4.2 Debug`
|
|
||||||
3. Press `CTRL` + `B` to Compile and `F5` to run!
|
|
||||||
|
|
||||||
# Developer docs
|
|
||||||
We use qdoc to generate documentation. Qt6 is the minimum version qdoc, because of vastly improved c++ parsing support.
|
|
||||||
* qdoc.exe configWindows.qdocconf
|
|
||||||
If you have installed Qt in a different directory, change the path to your Qt location.
|
|
||||||
|
|
||||||
Some useful links:
|
|
||||||
* [Introduction to QDoc](https://doc.qt.io/qt-5/01-qdoc-manual.html)
|
|
||||||
* [Writing qdoc comments](https://doc.qt.io/qt-5/qdoc-guide-writing.html)
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
|||||||
# Overview
|
|
||||||
ScreenPlay consists of 7 projects:
|
|
||||||
1. **ScreenPlay executable**
|
|
||||||
* The main ScreenPlay App UI with Create, Installed, Community and Settings.
|
|
||||||
2. **ScreenPlayWallpaper executable**
|
|
||||||
* The Wallpaper executable that is used for displaying a single wallpaper. This uses ScreenPlaySDK to talk via QLocalsockets with the main ScreenPlayApp.
|
|
||||||
3. **ScreenPlayWidget executable**
|
|
||||||
* The Widget executable that is used for displaying a single widget. This uses ScreenPlaySDK to talk via QLocalsockets with the main ScreenPlayApp.
|
|
||||||
4. **ScreenPlayUtil lib**
|
|
||||||
* Util function, like project.json loading, that are needed in ScreenPlay and Workshop plugin.
|
|
||||||
5. **ScreenPlaySDK lLib**
|
|
||||||
* A SDK used internally in the ScreenPlayWallpaper and ScreenPlayWidget to talk to the main ScreenPlay app via QLocalsockets (Windows Pipes and Unix sockets).
|
|
||||||
6. **ScreenPlaySysInfo lib**
|
|
||||||
* A qml plugin to read CPU, GPU, Network and all sort of statisitcs.
|
|
||||||
7. **ScreenPlayWorkshop plugin**
|
|
||||||
* The Steam workshop plugin that is loaded at runtime.
|
|
||||||
|
|
||||||
![ProjectOverview.png](ProjectOverview.png)
|
|
||||||
|
|
||||||
### ScreenPlay App Class
|
|
||||||
ScreenPlay wrapps all classes into a App.h and App.cpp class. This is easier for unit test integration (not implemented yet!). The main app class is used for owning [all other classes via Q_PROPERTY](https://gitlab.com/kelteseth/ScreenPlay/-/blob/master/ScreenPlay/app.h#L39) to be easily accessible in the GUI/QML. We use the [constructor](https://gitlab.com/kelteseth/ScreenPlay/-/blob/master/ScreenPlay/app.cpp#L44) of the App class to initialize all Qt register types, fonts and to check if another ScreenPlay instance is running. The [init()](https://gitlab.com/kelteseth/ScreenPlay/-/blob/master/ScreenPlay/app.cpp#L103) method is used to initialize all other c++ classes in a certain order! It also sets up some events [signal/slots](https://doc.qt.io/qt-5/signalsandslots.html) like when the user changes the UI language.
|
|
||||||
|
|
||||||
For all other class documentation please visit [ScreenPlayDeveloperDocs](https://kelteseth.gitlab.io/ScreenPlayDeveloperDocs/)
|
|
||||||
|
|
||||||
``` mermaid
|
|
||||||
graph TD
|
|
||||||
|
|
||||||
Main.cpp --> App
|
|
||||||
App --> QQmlApplicationEngine
|
|
||||||
App --> GlobalVariables
|
|
||||||
App --> ScreenPlayManager
|
|
||||||
ScreenPlayManager --> ScreenPlayWallpaper
|
|
||||||
ScreenPlayManager --> ScreenPlayWidget
|
|
||||||
App --> Create
|
|
||||||
Create--> CreateVideoImport
|
|
||||||
App --> Util
|
|
||||||
App --> Settings
|
|
||||||
App --> SDKConnector
|
|
||||||
App --> InstalledListModel
|
|
||||||
InstalledListModel --> ProjectFile
|
|
||||||
App --> InstalledListFilter
|
|
||||||
App --> MonitorListModel
|
|
||||||
MonitorListModel --> Monitor
|
|
||||||
App --> ProfileListModel
|
|
||||||
ProfileListModel --> Profile
|
|
||||||
```
|
|
Binary file not shown.
Before Width: | Height: | Size: 118 KiB |
10
README.md
10
README.md
@ -15,14 +15,12 @@ ScreenPlay: [![pipeline status](https://gitlab.com/kelteseth/ScreenPlay/badges/m
|
|||||||
|
|
||||||
[中文总览](README_zh_CN.md)
|
[中文总览](README_zh_CN.md)
|
||||||
|
|
||||||
ScreenPlay is an Open Source cross-platform app for displaying Video Wallpaper & Widgets. It is written in modern C++20/Qt5/QML. <br> <a href="https://screen-play.app/">Homepage</a> - <a href="https://forum.screen-play.app/">Forum</a>- <a href="https://discord.com/invite/4sY9d4f2DM">Discord</a>
|
ScreenPlay is an Open Source cross-platform app for displaying Video Wallpaper & Widgets. It is written in modern C++20/Qt6/QML. <br> <a href="https://screen-play.app/">Homepage</a> - <a href="https://forum.screen-play.app/">Forums</a>- <a href="https://discord.com/invite/4sY9d4f2DM">Discord</a>
|
||||||
|
|
||||||
|
<h3><a href="https://kelteseth.gitlab.io/ScreenPlayDocs/Building%20ScreenPlay/">Developer setup guide on how to download and compile ScreenPlay yourself.</a> </h3>
|
||||||
|
|
||||||
<h4><a href="https://www.patreon.com/ScreenPlayApp">🚀Support ScreenPlay On Patreon🚀</a> </h4>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
# Important Issues
|
|
||||||
* [Implement KDE Support](https://gitlab.com/kelteseth/ScreenPlay/-/issues/111)
|
|
||||||
|
|
||||||
# Content Creation
|
# Content Creation
|
||||||
[Learn the basics of QML for Wallpapers and Widgets in 5 minutes](https://screen-play.app/blog/guide_learn_the_basics_of_qml/)
|
[Learn the basics of QML for Wallpapers and Widgets in 5 minutes](https://screen-play.app/blog/guide_learn_the_basics_of_qml/)
|
||||||
<div>
|
<div>
|
||||||
@ -61,7 +59,7 @@ Here are some ways you can contribute:
|
|||||||
* by [verifying issues](https://gitlab.com/kelteseth/ScreenPlay/-/issues?label_name%5B%5D=Unverified)
|
* by [verifying issues](https://gitlab.com/kelteseth/ScreenPlay/-/issues?label_name%5B%5D=Unverified)
|
||||||
|
|
||||||
# Development
|
# Development
|
||||||
* [**Developer setup guide on how to download and compile ScreenPlay yourself.**](Docs/DeveloperSetup.md)
|
* [**Developer setup guide on how to download and compile ScreenPlay yourself.**](https://kelteseth.gitlab.io/ScreenPlayDocs/Building%20ScreenPlay/)
|
||||||
* If you want to contribute but don't know how to start, take a look at our open issues and WIP merge request.
|
* If you want to contribute but don't know how to start, take a look at our open issues and WIP merge request.
|
||||||
* If you need help don't hesitate to ask me (Kelteseth) via:
|
* If you need help don't hesitate to ask me (Kelteseth) via:
|
||||||
* [Create a forum topic with a detailed description](https://forum.screen-play.app/category/2/general-discussion)
|
* [Create a forum topic with a detailed description](https://forum.screen-play.app/category/2/general-discussion)
|
||||||
|
Loading…
Reference in New Issue
Block a user