1
0
mirror of https://gitlab.com/kelteseth/ScreenPlay.git synced 2024-11-22 18:52:30 +01:00
ScreenPlay/Docs/ProjectOverview.md
2020-05-16 14:44:29 +02:00

2.4 KiB

Overview

ScreenPlay consists of 5 projects:

  1. ScreenPlay
    • The main ScreenPlay App UI with Create, Installed, Community and Settings
  2. ScreenPlaySDK
    • A SDK used internally in the ScreenPlayWallpaper and ScreenPlayWidget to talk to the main ScreenPlay app via QLocalsockets (Windows Pipes and Unix sockets)
  3. ScreenPlaySysInfo
    • A qml plugin to read CPU, GPU, Network and all sort of statisitcs
  4. ScreenPlayWallpaper
    • The Wallpaper executable that is used for displaying a single wallpaper. This uses ScreenPlaySDK to talk via QLocalsockets with the main ScreenPlayApp.
  5. ScreenPlayWidget
    • The Widget executable that is used for displaying a single widget. This uses ScreenPlaySDK to talk via QLocalsockets with the main ScreenPlayApp .

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 to be easily accessible in the GUI/QML. We use the constructor of the App class to initialize all Qt register types, fonts and to check if another ScreenPlay instance is running. The init() method is used to initialize all other c++ classes in a certain order! It also sets up some events signal/slots like when the user changes the UI language.

For all other class documentation please visit ScreenPlayDeveloperDocs

        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