diff --git a/.gitlab/media/QtCreator_install.png b/.gitlab/media/QtCreator_install.png new file mode 100644 index 00000000..ad4cdcb3 Binary files /dev/null and b/.gitlab/media/QtCreator_install.png differ diff --git a/.gitlab/media/QtCreator_kit.png b/.gitlab/media/QtCreator_kit.png new file mode 100644 index 00000000..24982a8f Binary files /dev/null and b/.gitlab/media/QtCreator_kit.png differ diff --git a/Docs/DeveloperSetup.md b/Docs/DeveloperSetup.md new file mode 100644 index 00000000..59531b22 --- /dev/null +++ b/Docs/DeveloperSetup.md @@ -0,0 +1,99 @@ +### Basic +1. Install latest [git + git-lfs](https://git-scm.com/) +2. Clone ScreenPlay +``` bash +git clone --recursive https://gitlab.com/kelteseth/ScreenPlay.git +``` +3. Download the latest [__Qt 5.14__](https://www.qt.io/download-qt-installer). Earlier versions are not supported! +4. Start install-dependencies.bat to download dependencies into the Common/ folder +``` bash +//Windows +.\install-dependencies.bat + +//Linux +sudo apt install git gcc cmake build-essential libgl1-mesa-dev +chmod +x install-dependencies.sh +.\install-dependencies.sh +``` + * This will install these dependencies via __vcpkg__ + * libzippp + * nlohmann-json + * openSSL 1.1.1d + * zlib& libzip + * breakpad + * Download these dependencies via __git submodules__ + * stomt-qt-sdk + * qt-google-analytics + * qt-breakpad +5. **Follow the steps below for your OS**. +6. Open the CMakeLists.txt via QtCreator. **This can take some time until QtCreator parses all files!** +7. Add a second build step at: Projects -> Build -> Add Build Step -> Select Build -> Select "install" . + +
+ +
+ +8. Add CMake variables + * Add CMAKE_TOOLCHAIN_FILE and VCPKG_TARGET_TRIPLET + * Extras -> Tools -> Kits -> -> CMake Configuration -> Append this: + * CMAKE_TOOLCHAIN_FILE:STRING=%{CurrentProject:Path}/Common/vcpkg/scripts/buildsystems/vcpkg.cmake + * VCPKG_TARGET_TRIPLET:STRING=x64-windows + * or Linux: x64-linux MacOSX: x64-osx + +
+ +
+ +9. Check if Ninja is selected + * Extras -> Tools -> Kits -> -> CMakeGenerator -> Change to: + * Generator: Ninja + * Extra Generator: CodeBlocks +10. Save and close the settings. +11. Press build (the big green play button). This will compile the project and copy all necessary files into your Qt installation. + +### Windows +1. [Download and install MSVC 2019 Community](https://visualstudio.microsoft.com/vs/community/) + - Select "Desktop development with C++" +2. [Download and install Qt 5 binary installer from qt.io](https://www.qt.io/download-qt-installer) + - Install the Maintaince tool + - Select the following features to install: + - Qt 5.14.2 + - MSVC 2017 64-bit + - Qt WebEngine + - Developer and Designer Tools + - Cmake + - Ninja + +### Linux +1. Install dependencies for your distro: +``` bash +# Debian/Ubuntu +sudo apt install build-essential libgl1-mesa-dev lld ninja-build cmake + +# Fedora/RHEL/CentOS (yum) +sudo yum groupinstall "C Development Tools and Libraries" +sudo yum install mesa-libGL-devel + +# openSUSE (zypper) +sudo zypper install -t pattern devel_basis +``` +2. [Download and install Qt 5 binary installer from qt.io](https://www.qt.io/download-qt-installer) + - Install the Maintaince tool + - Select the following features to install: + - Qt 5.14.2 + - GCC + - Qt WebEngine +### OSX +1. [Download and install Qt 5 binary installer from qt.io](https://www.qt.io/download-qt-installer) + - Install the Maintaince tool + - Select the following features to install: + - Qt 5.14.2 + - Qt WebEngine + - Developer and Designer Tools + - OpenSSL 1.1.1.c Toolkit + - OpenSSL 64-bit binaries + - Cmake + - Ninja +2. Install [homebrew](https://brew.sh/) + - Open a terminal and install clang -> brew install llvm +3. Change your default kit: QtCreator -> Options -> Kits -> Select your default kit (Desktop Qt 5.13.0) -> Change c and c++ Compiler to Apple Clang (x86_64) diff --git a/Docs/ProjectOverview.md b/Docs/ProjectOverview.md new file mode 100644 index 00000000..00fcd810 --- /dev/null +++ b/Docs/ProjectOverview.md @@ -0,0 +1,24 @@ +# Overview + +``` 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 +``` \ No newline at end of file diff --git a/README.md b/README.md index ce3718e6..2efd6c19 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,25 @@ ScreenPlay is an open source cross plattform app for displaying Wallpaper, Widge ![Preview](.gitlab/media/preview.mp4) -

Developer C++ Classes Documentation and Wallpaper And Widgets Guide

+

and Wallpaper And Widgets Guide

+ +# Contributing for none programmer + +Everyone can contribute with code, design, documentation or translation. Visit our [contributing guide](https://gitlab.com/kelteseth/ScreenPlay/blob/dev/CONTRIBUTING.md) for more informations. + +* If you want to help [translate](https://kelteseth.gitlab.io/ScreenPlayDocs/contribute/translations/) +* If you are a [designer](https://kelteseth.gitlab.io/ScreenPlayDocs/contribute/contribute/#design) +* Help create example app via [HTML/QML/Javascript](https://kelteseth.gitlab.io/ScreenPlayDocs/) + + +# Contributing for programmer + * 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 (Keltseth) via our forum/discord! + * [Developer setup guide on how to download and compile ScreenPlay yourself.](https://gitlab.com/kelteseth/ScreenPlay/blob/dev/Docs/DeveloperSetup.md) + * [Developer C++ Classes Documentation](https://kelteseth.gitlab.io/ScreenPlayDeveloperDocs/) + # Platform support * ❌ Not working/Not implemented @@ -49,114 +65,3 @@ __If you want to help and add new desktop environments look at ScreenPlayWallpap - -# Contributing - -Everyone can contribute with code, design, documentation or translation. Visit our [contributing guide](https://gitlab.com/kelteseth/ScreenPlay/blob/dev/CONTRIBUTING.md) for more informations. - -* If you want to help [translate](https://gitlab.com/kelteseth/ScreenPlay/blob/dev/CONTRIBUTING.md#translation) -* If you are a [programmer](https://gitlab.com/kelteseth/ScreenPlay/blob/dev/CONTRIBUTING.md#development) -* If you are a [designer](https://gitlab.com/kelteseth/ScreenPlay/blob/dev/CONTRIBUTING.md#design) - - -# Getting started - -### Basic -1. Install latest [git + git-lfs](https://git-scm.com/) -2. Clone ScreenPlay -``` bash -git clone --recursive https://gitlab.com/kelteseth/ScreenPlay.git -``` -3. Download the latest [__Qt 5.14__](https://www.qt.io/download-qt-installer). Earlier versions are not supported! -4. Start install-dependencies.bat to download dependencies into the Common/ folder -``` bash -//Windows -.\install-dependencies.bat - -//Linux -sudo apt install git gcc cmake build-essential libgl1-mesa-dev -chmod +x install-dependencies.sh -.\install-dependencies.sh -``` - * This will install these dependencies via __vcpkg__ - * libzippp - * nlohmann-json - * openSSL 1.1.1d - * zlib& libzip - * breakpad - * Download these dependencies via __git submodules__ - * stomt-qt-sdk - * qt-google-analytics - * qt-breakpad -5. **Follow the steps below for your OS**. -6. Open the CMakeLists.txt via QtCreator. **This can take some time until QtCreator parses all files!** -7. Add a second build step at: Projects -> Build -> Add Build Step -> Select Build -> Select "install" . - -
- -
- -8. Add CMake variables - * Add CMAKE_TOOLCHAIN_FILE and VCPKG_TARGET_TRIPLET - * Extras -> Tools -> Kits -> -> CMake Configuration -> Append this: - * CMAKE_TOOLCHAIN_FILE:STRING=%{CurrentProject:Path}/Common/vcpkg/scripts/buildsystems/vcpkg.cmake - * VCPKG_TARGET_TRIPLET:STRING=x64-windows - * or Linux: x64-linux MacOSX: x64-osx - -
- -
- -9. Check if Ninja is selected - * Extras -> Tools -> Kits -> -> CMakeGenerator -> Change to: - * Generator: Ninja - * Extra Generator: CodeBlocks -10. Save and close the settings. -11. Press build (the big green play button). This will compile the project and copy all necessary files into your Qt installation. - -### Windows -1. [Download and install MSVC 2019 Community](https://visualstudio.microsoft.com/vs/community/) - - Select "Desktop development with C++" -2. [Download and install Qt 5 binary installer from qt.io](https://www.qt.io/download-qt-installer) - - Install the Maintaince tool - - Select the following features to install: - - Qt 5.14.2 - - MSVC 2017 64-bit - - Qt WebEngine - - Developer and Designer Tools - - Cmake - - Ninja - -### Linux -1. Install dependencies for your distro: -``` bash -# Debian/Ubuntu -sudo apt install build-essential libgl1-mesa-dev lld ninja-build cmake - -# Fedora/RHEL/CentOS (yum) -sudo yum groupinstall "C Development Tools and Libraries" -sudo yum install mesa-libGL-devel - -# openSUSE (zypper) -sudo zypper install -t pattern devel_basis -``` -2. [Download and install Qt 5 binary installer from qt.io](https://www.qt.io/download-qt-installer) - - Install the Maintaince tool - - Select the following features to install: - - Qt 5.14.2 - - GCC - - Qt WebEngine -### OSX -1. [Download and install Qt 5 binary installer from qt.io](https://www.qt.io/download-qt-installer) - - Install the Maintaince tool - - Select the following features to install: - - Qt 5.14.2 - - Qt WebEngine - - Developer and Designer Tools - - OpenSSL 1.1.1.c Toolkit - - OpenSSL 64-bit binaries - - Cmake - - Ninja -2. Install [homebrew](https://brew.sh/) - - Open a terminal and install clang -> brew install llvm -3. Change your default kit: QtCreator -> Options -> Kits -> Select your default kit (Desktop Qt 5.13.0) -> Change c and c++ Compiler to Apple Clang (x86_64)