1
0
mirror of https://gitlab.com/kelteseth/ScreenPlay.git synced 2024-11-22 18:52:30 +01:00

Merge branch 'master' into refactor/save-configs

# Conflicts:
#	ScreenPlay/ScreenPlay.pro
#	ScreenPlay/src/settings.cpp
#	ScreenPlay/src/settings.h
This commit is contained in:
Elias Steurer 2020-05-03 19:22:40 +02:00
commit 365e054003
57 changed files with 622 additions and 497 deletions

14
.gitignore vendored
View File

@ -75,3 +75,17 @@ Common/vcpkg/**
*.DS_Store
/Common/vcpkg/
/Docs/html/screemplay.index
#CMake
CMakeLists.txt.user
CMakeCache.txt
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps
.cmake/**

7
.gitmodules vendored
View File

@ -1,9 +1,10 @@
[submodule "Common/stomt-qt-sdk"]
path = Common/stomt-qt-sdk
url = https://github.com/Aimber/stomt-qt-sdk.git
[submodule "Common/qt-google-analytics"]
path = Common/qt-google-analytics
url = https://github.com/HSAnet/qt-google-analytics.git
[submodule "Common/qt-breakpad"]
path = Common/qt-breakpad
url = https://github.com/kelteseth/qt-breakpad
[submodule "Common/stomt-qml"]
path = Common/stomt-qml
url = https://gitlab.com/kelteseth/stomt-qml.git
branch = master

40
CMakeLists.txt Normal file
View File

@ -0,0 +1,40 @@
cmake_minimum_required(VERSION 3.17.0 )
if(WIN32)
set(VCPKG_TARGET_TRIPLET "x64-windows")
elseif(APPLE)
set(VCPKG_TARGET_TRIPLET "x64-osx")
elseif(UNIX)
set(VCPKG_TARGET_TRIPLET "x64-linux")
endif()
set(ABSOLUTE_VCPKG_PATH ${CMAKE_CURRENT_SOURCE_DIR}/scripts/buildsystems/vcpkg.cmake)
# If setting the toolchain file fails we can the it inside QtCreator: Extras ->
# Tools -> Kits -> <Your Kit> -> CMake Configuration -> Append this:
# CMAKE_TOOLCHAIN_FILE:STRING=%{CurrentProject:Path}/Common/vcpkg/scripts/buildsystems/vcpkg.cmake
if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
set(CMAKE_TOOLCHAIN_FILE ${ABSOLUTE_VCPKG_PATH})
endif()
# This sets cmake to compile all dlls into the main directory
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_CXX_STANDARD 17)
set(QT_TELEMTRY_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/Common/qt-google-analytics/)
set(QT_BREAKPAD_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/Common/qt-breakpad/)
project(ScreenPlay)
add_subdirectory(ScreenPlay)
add_subdirectory(ScreenPlaySDK)
add_subdirectory(ScreenPlayWallpaper)
add_subdirectory(ScreenPlayWidget)
add_subdirectory(ScreenPlaySysInfo)
add_subdirectory(Common/stomt-qml)
add_subdirectory(Common/qt-breakpad)

1
Common/stomt-qml Submodule

@ -0,0 +1 @@
Subproject commit 31863079c3b7d1af8f7bdbb23c4e31fd2956e6ad

View File

@ -24,9 +24,9 @@ ScreenPlay is an open source cross plattform app for displaying Wallpaper, Widge
| Feature | Windows | Linux | MacOS |
|------------------------ |--------- |------- |------- |
| __ScreenPlay Main App__ | ✔ | ✔ | ✔ |
| __Steam Binaries__ | ✔ | ❌ | ❌ |
| __Wallpaper__ | ✔ | ❌ Help Needed for Gnome/KDE/etc! | ❓ (Basic implementation) Help Needed! |
| __Widgets__ | ✔ | ❓ | ❓ Help Needed! |
| __Steam Binaries__ | ✔ | ❌ | ❌ |
| __Wallpaper__ | ✔ | ❌ Help Needed for Gnome/KDE/etc! | |
| __Widgets__ | ✔ | ❓ | ✔ |
| __Multilanguage (EN,DE,RU,FR,ES,KO🆕,VI🆕)__ | ✔ | ✔ | ✔ |
</div>
@ -50,7 +50,7 @@ __If you want to help and add new desktop environments look at ScreenPlayWallpap
</div>
## Contributing
# 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.
@ -82,28 +82,43 @@ chmod +x install-dependencies.sh
* 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. Then Open The ScreenPlay.pro via QtCreator.
6. Add install to the build steps. Projects -> Build -> Add Build Step -> Select Make -> Insert "install" into Make arguments.
5. **Follow the steps below for your OS**. Then open the CMakeLists.txt via QtCreator.
6. Add install to the build steps. Projects -> Build -> Add Build Step -> Select Build -> Select "install" .
* CMake -> Check if cmake is listed there, otherwise add it
* Kits -> CMakeGenerator -> Change... (Otherwhise your builds are slow!)
* Generator: Ninja
* Extra Generator: CodeBlocks
* Add CMAKE_TOOLCHAIN_FILE and VCPKG_TARGET_TRIPLET
* Extras -> Tools -> Kits -> <Your Kit> -> CMake Configuration -> Append this:
* CMAKE_TOOLCHAIN_FILE:STRING=%{CurrentProject:Path}/ScreenPlay/Common/vcpkg/scripts/buildsystems/vcpkg.cmake
* VCPKG_TARGET_TRIPLET:STRING=x64-windows
* or Linux: x64-linux MacOSX: x64-osx
7. Press build (the 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.0
- 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
sudo apt install build-essential libgl1-mesa-dev lld ninja-build cmake
# Fedora/RHEL/CentOS (yum)
sudo yum groupinstall "C Development Tools and Libraries"
@ -115,18 +130,20 @@ 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.0
- 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.0
- 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)

View File

@ -1,17 +0,0 @@
TEMPLATE = subdirs
SUBDIRS += \
ScreenPlay/ScreenPlay.pro \
ScreenPlaySDK/ScreenPlaySDK.pro \
ScreenPlayWallpaper/ScreenPlayWallpaper.pro \
ScreenPlayWidget/ScreenPlayWidget.pro \
Common/stomt-qt-sdk/sdk/stomt-qt-sdk.pro \
ScreenPlayWallpaper.depends = ScreenPlaySDK
ScreenPlayWidget.depends = ScreenPlaySDK
win32 {
SUBDIRS += \
ScreenPlaySysInfo/ScreenPlaySysInfo.pro \
}

92
ScreenPlay/CMakeLists.txt Normal file
View File

@ -0,0 +1,92 @@
cmake_minimum_required(VERSION 3.17)
project(ScreenPlay)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOMOC ON)
find_package(
Qt5
COMPONENTS Quick
QML
Widgets
Gui
WebEngine
REQUIRED)
find_package(ZLIB REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(libzippp CONFIG REQUIRED)
find_package(nlohmann_json CONFIG REQUIRED)
set(src main.cpp
app.cpp
../Common/qt-google-analytics/ganalytics.cpp
src/createimportvideo.cpp
src/installedlistmodel.cpp
src/monitorlistmodel.cpp
src/screenplaywallpaper.cpp
src/screenplaywidget.cpp
src/settings.cpp
src/profilelistmodel.cpp
src/installedlistfilter.cpp
src/sdkconnector.cpp
src/projectsettingslistmodel.cpp
src/screenplaymanager.cpp
src/util.cpp
src/create.cpp)
set(headers app.h
../Common/qt-google-analytics/ganalytics.h
src/globalvariables.h
src/createimportvideo.h
src/installedlistmodel.h
src/monitorlistmodel.h
src/screenplaywallpaper.h
src/screenplaywidget.h
src/settings.h
src/profilelistmodel.h
src/profile.h
src/projectfile.h
src/installedlistfilter.h
src/sdkconnector.h
src/projectsettingslistitem.h
src/projectsettingslistmodel.h
src/screenplaymanager.h
src/util.h
src/create.h)
set(resources Resources.qrc)
add_executable(ScreenPlay ${src} ${headers} ${resources})
target_compile_definitions(${PROJECT_NAME} PRIVATE "GIT_VERSION=${GIT_VERSION}")
target_link_libraries(ScreenPlay PRIVATE
Qt5::Qml
Qt5::Quick
Qt5::Gui
Qt5::Widgets
Qt5::Core
Qt5::WebEngine
nlohmann_json::nlohmann_json
libzippp::libzippp
ScreenPlaySDK
QTBreakpadplugin)
target_include_directories(${PROJECT_NAME}
PRIVATE
${QT_TELEMTRY_INCLUDE}
${QT_BREAKPAD_INCLUDE})
install(FILES
assets/fonts/NotoSansCJKkr-Regular.otf
DESTINATION
${CMAKE_BINARY_DIR}/assets/fonts/ )
execute_process(COMMAND git log --pretty=format:'%h' -n 1
OUTPUT_VARIABLE GIT_VERSION
ERROR_QUIET)

View File

@ -1,134 +0,0 @@
TEMPLATE = app
QT += qml quick widgets quickcontrols2 core webengine
CONFIG += c++17
TARGETPATH = ScreenPlay
include($$PWD/../Common/qt-google-analytics/qt-google-analytics.pri)
!unix {
include($$PWD/../Common/qt-breakpad/qt-breakpad.pri)
}
ICON = favicon.ico
DEFINES += QT_DEPRECATED_WARNINGS
GIT_VERSION = $$system(git describe --always)
DEFINES += GIT_VERSION=\\\"$$GIT_VERSION\\\"
DISTFILES += \
$$PWD/favicon.ico \
RESOURCES += \
$$PWD/Resources.qrc
SOURCES += \
$$PWD/main.cpp \
$$PWD/app.cpp \
$$PWD/src/globalvariables.cpp \
$$PWD/src/createimportvideo.cpp \
$$PWD/src/installedlistmodel.cpp \
$$PWD/src/monitorlistmodel.cpp \
$$PWD/src/screenplaywallpaper.cpp \
$$PWD/src/screenplaywidget.cpp \
$$PWD/src/settings.cpp \
$$PWD/src/profilelistmodel.cpp \
$$PWD/src/installedlistfilter.cpp \
$$PWD/src/sdkconnector.cpp \
$$PWD/src/projectsettingslistmodel.cpp \
$$PWD/src/screenplaymanager.cpp \
$$PWD/src/util.cpp \
$$PWD/src/create.cpp
TRANSLATIONS = \
$$PWD/translations/ScreenPlay_en.ts \
$$PWD/translations/ScreenPlay_de.ts \
$$PWD/translations/ScreenPlay_ru.ts \
$$PWD/translations/ScreenPlay_es.ts \
$$PWD/translations/ScreenPlay_fr.ts \
$$PWD/translations/ScreenPlay_ko.ts \
$$PWD/translations/ScreenPlay_vi.ts \
HEADERS += \
$$PWD/app.h \
$$PWD/src/globalvariables.h \
$$PWD/src/createimportvideo.h \
$$PWD/src/installedlistmodel.h \
$$PWD/src/monitorlistmodel.h \
$$PWD/src/screenplaywallpaper.h \
$$PWD/src/screenplaywidget.h \
$$PWD/src/settings.h \
$$PWD/src/profilelistmodel.h \
$$PWD/src/profile.h \
$$PWD/src/projectfile.h \
$$PWD/src/installedlistfilter.h \
$$PWD/src/sdkconnector.h \
$$PWD/src/projectsettingslistitem.h \
$$PWD/src/projectsettingslistmodel.h \
$$PWD/src/screenplaymanager.h \
$$PWD/src/util.h \
$$PWD/src/create.h
INCLUDEPATH += \
$$PWD/src/\
CONFIG(debug, debug|release) {
install_assets.path = $${OUT_PWD}/assets/fonts
} else {
install_assets.path = $${OUT_PWD}/assets/fonts
}
install_assets.files += $$PWD/assets/fonts/NotoSansCJKkr-Regular.otf
win32: ARCH_OS = x64-windows
unix:!macx { ARCH_OS = x64-linux}
macx: ARCH_OS = x64-osx
CONFIG(debug, debug|release){
ARCH_OS_BUILD = $$ARCH_OS/debug
} else {
ARCH_OS_BUILD = $$ARCH_OS
}
INCLUDEPATH += $$PWD/../Common/vcpkg/installed/$$ARCH_OS/include
DEPENDPATH += $$PWD/../Common/vcpkg/installed/$$ARCH_OS/include
win32 {
RC_ICONS += favicon.ico
CONFIG(debug, debug|release) {
install_it.path = $${OUT_PWD}/debug/
} else {
install_it.path = $${OUT_PWD}/release/
}
LIBS += -luser32
LIBS += -L$$PWD/../Common/vcpkg/installed/x64-windows/lib/ -llibzippp
install_it.files += $$PWD/../Common/vcpkg/installed/$$ARCH_OS_BUILD/bin/zip.dll \
$$PWD/../Common/vcpkg/installed/$$ARCH_OS_BUILD/bin/zlibd1.dll \
$$PWD/../Common/vcpkg/installed/$$ARCH_OS_BUILD/bin/libzippp.dll \
$$PWD/../Common/vcpkg/installed/$$ARCH_OS_BUILD/bin/bz2d.dll \
$$PWD/../Common/vcpkg/installed/$$ARCH_OS_BUILD/bin/libcrypto-1_1-x64.dll \
$$PWD/../Common/vcpkg/installed/$$ARCH_OS_BUILD/bin/libssl-1_1-x64.dll \
}
unix {
CONFIG(debug, debug|release){
#lbz2d uses d
LIBS += -L$$PWD/../Common/vcpkg/installed/$$ARCH_OS_BUILD/lib/ -llibzippp -lzip -lbz2d -lz -lcrypto -lssl -ldl
} else {
LIBS += -L$$PWD/../Common/vcpkg/installed/$$ARCH_OS_BUILD/lib/ -llibzippp -lzip -lbz2 -lz -lcrypto -lssl -ldl
}
}
INSTALLS += install_it install_assets

View File

@ -4,7 +4,13 @@
int main(int argc, char* argv[])
{
// Buggy with every Qt version except 5.14.0!
// Displays wrong DPI scaled monitor resolution
// 4k with 150% scaling to FULL HD on Windows
// https://bugreports.qt.io/browse/QTBUG-81694
#if defined(Q_OS_LINUX) || defined(Q_OS_OSX)
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
QApplication::setAttribute(Qt::AA_ShareOpenGLContexts);
QApplication qtGuiApp(argc, argv);

View File

@ -1,11 +1,13 @@
import QtQuick 2.12
import QtQuick.Window 2.2
import QtQuick.Controls 2.3
import QtQuick.Controls.Material 2.12
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.0
import Qt.labs.platform 1.0
import ScreenPlay 1.0
import Settings 1.0
import "qml/"
import "qml/Monitors"
@ -16,7 +18,15 @@ import "qml/Workshop"
ApplicationWindow {
id: window
color: "#eeeeee"
color: {
if(Material.theme === Material.Dark){
return Qt.darker(Material.background)
} else {
return Material.background
}
}
// Set visible if the -silent parameter was not set (see app.cpp end of constructor).
visible: false
width: 1400
@ -30,7 +40,34 @@ ApplicationWindow {
}
}
Material.accent: {
return Material.color(Material.Orange)
}
function setTheme(theme){
switch (theme) {
case Settings.System:
window.Material.theme = Material.System
break
case Settings.Dark:
window.Material.theme = Material.Dark
break
case Settings.Light:
window.Material.theme = Material.Light
break
}
}
Connections {
target: ScreenPlay.settings
function onThemeChanged(theme) {
setTheme(theme)
}
}
Component.onCompleted: {
setTheme(ScreenPlay.settings.theme)
if (!ScreenPlay.settings.silentStart) {
window.show()
ScreenPlay.setTrackerSendEvent("navigation", "Installed")
@ -75,6 +112,7 @@ ApplicationWindow {
anchors.fill: parent
}
Connections {
target: ScreenPlay.util
function onRequestNavigation(nav) {

View File

@ -1,11 +1,13 @@
import QtQuick 2.0
import QtGraphicalEffects 1.0
import QtQuick.Controls.Material 2.12
Rectangle {
id: root
color: "gray"
width: 32
height: 32
color: Material.background
width: 42
height: width
radius: width
property alias iconSource: icon.source
property string url
@ -13,9 +15,10 @@ Rectangle {
Image {
id: icon
sourceSize: Qt.size(32, 32)
sourceSize: Qt.size(28, 28)
anchors.centerIn: parent
visible: false
smooth: true
source: "qrc:/assets/icons/icon_info.svg"
}
@ -23,7 +26,7 @@ Rectangle {
id: overlay
anchors.fill: icon
source: icon
color: "orange"
color: Material.accent
}
MouseArea {
@ -40,9 +43,9 @@ Rectangle {
name: "hover"
PropertyChanges {
target: icon
width:40
height:40
sourceSize: Qt.size(40,40)
width: 34
height: 34
sourceSize: Qt.size(34,34)
}
}
]

View File

@ -45,7 +45,7 @@ Item {
Rectangle {
id: rectangle
color: "#F0F0F0"
color: Material.theme === Material.Light ? Material.background : Qt.darker(Material.background)
radius: 3
clip: true
anchors {
@ -137,9 +137,9 @@ Item {
Button {
id: btnClear
text: qsTr("Clear")
Material.background: Material.Grey
Material.background: Material.theme === Material.Light ? Qt.lighter(Material.accent) : Qt.darker(Material.accent)
Material.foreground: "white"
font.family: ScreenPlay.settings.font
anchors {
top: parent.top
right: btnOpen.left
@ -152,7 +152,7 @@ Item {
Button {
id: btnOpen
text: qsTr("Select Preview Image")
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
font.family: ScreenPlay.settings.font
anchors {

View File

@ -6,13 +6,14 @@
import QtQuick 2.0
import QtGraphicalEffects 1.0
import QtQuick.Controls.Material 2.12
Item {
id: control
anchors.fill: parent
property alias radius: mask.radius
property color color: "orange"
property color color: Material.accent
property var target
property int duration: 600

View File

@ -15,13 +15,14 @@ Item {
Rectangle {
id: rectangle
radius: 3
color: Material.theme === Material.Light ? Qt.lighter(Material.background) : Material.background
anchors.fill: parent
Text {
id: txt
text: _name
color: Material.color(Material.Grey)
color: Material.theme === Material.Light ? Qt.lighter(Material.foreground) : Qt.darker(Material.foreground)
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
anchors.fill: parent

View File

@ -26,7 +26,7 @@ Item {
Rectangle {
id: rectangle
color: "#F0F0F0"
color: Material.theme === Material.Light ? Material.background : Qt.darker(Material.background)
radius: 3
clip: true
anchors {
@ -72,7 +72,7 @@ Item {
radius: 3
height: parent.height - 20
width: 200
color: "#aaffffff"
color: Material.theme === Material.Light ? Qt.lighter(Material.background) : Material.background
anchors {
top: parent.top
topMargin: -80

View File

@ -108,7 +108,7 @@ Item {
bottomMargin: 30
horizontalCenter: parent.horizontalCenter
}
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
icon.source: "qrc:/assets/icons/icon_share.svg"

View File

@ -1,5 +1,5 @@
import QtQuick 2.12
import com.stomt.qmlSDK 1.0
import com.stomt.sdk 1.0
Item {
id: feedback

View File

@ -77,7 +77,7 @@ Item {
ImageParticle {
height: 16
width: 16
color: "orange"
color: Material.accent
source: "qrc:/assets/particle/dot.png"
system: particleSystem
opacity: .75

View File

@ -1,5 +1,6 @@
import QtQuick 2.14
import QtQuick.Controls 2.14
import QtQuick.Controls.Material 2.12
import QtGraphicalEffects 1.0
import ScreenPlay 1.0
@ -39,6 +40,7 @@ Item {
Rectangle {
id: bg
color: Material.background
height: parent.height - 10
anchors {
top: parent.top
@ -74,7 +76,7 @@ Item {
font.family: ScreenPlay.settings.font
opacity: buttonActive ? 1 : .25
font.pointSize: 14
color: "gray"
color: Material.theme === Material.Light ? Qt.lighter(Material.foreground) : Qt.darker(Material.foreground)
wrapMode: Text.WrapAnywhere
maximumLineCount: 1
@ -91,7 +93,7 @@ Item {
font.family: ScreenPlay.settings.font
font.pointSize: 18
opacity: buttonActive ? 1 : .25
color: "#b9b9b9"
color: Material.theme === Material.Light ? Qt.lighter(Material.foreground) : Qt.darker(Material.foreground)
anchors {
right: parent.right
rightMargin: 20

View File

@ -14,8 +14,8 @@ Rectangle {
id: footer
height: 80
z: 100
anchors {
}
color: Material.background
Row {
anchors.centerIn: parent
spacing: 20

View File

@ -1,8 +1,8 @@
import QtQuick 2.12
import QtGraphicalEffects 1.0
import QtQuick.Controls 2.3
import Qt.labs.platform 1.0
import QtQuick.Controls.Material 2.2
import Qt.labs.platform 1.0
import ScreenPlay 1.0
@ -47,6 +47,8 @@ Item {
Rectangle {
id: importVideoBg
color: Material.background
radius: 3
z: 10
anchors {
@ -79,7 +81,7 @@ Item {
bottom: parent.bottom
bottomMargin: 20
}
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
icon.source: "qrc:/assets/icons/icon_upload.svg"
icon.color: "white"
@ -131,6 +133,8 @@ Item {
Rectangle {
id: convertVideoBg
color: Material.background
radius: 3
z: 10
anchors {
@ -164,7 +168,7 @@ Item {
bottom: parent.bottom
bottomMargin: 20
}
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
icon.source: "qrc:/assets/icons/icon_upload.svg"
icon.color: "white"
@ -233,6 +237,8 @@ Item {
Rectangle {
id: importVideoBg3
radius: 3
color: Material.background
z: 10
anchors {
fill: parent
@ -242,7 +248,7 @@ Item {
Button {
text: qsTr("Upload Exsisting Project to Steam")
anchors.centerIn: parent
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
icon.source: "qrc:/assets/icons/icon_steam.svg"
icon.color: "white"

View File

@ -47,13 +47,13 @@ Item {
Rectangle {
id: wrapper
color: Material.theme === Material.Light ? "white" : Material.background
width: {
if(parent.width < 1200) {
if (parent.width < 1200) {
return parent.width - 20 // Add small margin left and right
} else {
return 1200
}
}
height: 580
@ -67,7 +67,6 @@ Item {
Loader {
id: loader_wrapperContent
anchors.fill: parent
}
CloseIcon {
@ -103,7 +102,7 @@ Item {
PropertyChanges {
target: wrapper
anchors.topMargin: {
if(root.height < 650){
if (root.height < 650) {
return 20
} else {
return 70

View File

@ -227,7 +227,7 @@ Item {
id: btnSave
text: qsTr("Save")
enabled: false
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
font.family: ScreenPlay.settings.font
onClicked: {

View File

@ -177,7 +177,7 @@ Item {
id: btnSave
text: qsTr("Save")
enabled: false
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
font.family: ScreenPlay.settings.font

View File

@ -86,7 +86,7 @@ Item {
Button {
id: btnBack
text: qsTr("Back to create and send an error report!")
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
font.family: ScreenPlay.settings.font
anchors {

View File

@ -320,7 +320,7 @@ Item {
id: btnSave
text: qsTr("Save")
enabled: false
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
font.family: ScreenPlay.settings.font

View File

@ -1,5 +1,6 @@
import QtQuick 2.14
import QtQuick.Controls 2.14
import QtQuick.Controls.Material 2.12
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.0
@ -34,7 +35,7 @@ Item {
}
Connections {
target: ScreenPlay.installedListModel
function onInstalledLoadingFinished(){
function onInstalledLoadingFinished() {
checkIsContentInstalled()
}
function onCountChanged(count) {
@ -89,7 +90,7 @@ Item {
opacity: 0
onIsVisibleChanged: {
if (isVisible) {
txtHeader.color = "orange"
txtHeader.color = Material.accent
txtHeader.text = qsTr("Refreshing!")
} else {
txtHeader.color = "gray"
@ -214,7 +215,7 @@ Item {
Rectangle {
id: nav
color: "#ffffff"
color: Material.theme === Material.Light ? "white" : Material.background
height: 50
anchors {
top: parent.top
@ -243,6 +244,7 @@ Item {
height: parent.height
width: implicitWidth
background: Item {}
font.weight: Font.Thin
icon.source: "qrc:/assets/icons/icon_installed.svg"
onClicked: {
setSidebarActive(false)
@ -257,6 +259,7 @@ Item {
width: implicitWidth
height: parent.height
background: Item {}
font.weight: Font.Thin
icon.source: "qrc:/assets/icons/icon_code.svg"
onClicked: {
setSidebarActive(false)
@ -271,6 +274,7 @@ Item {
height: parent.height
width: implicitWidth
background: Item {}
font.weight: Font.Thin
icon.source: "qrc:/assets/icons/icon_movie.svg"
onClicked: {
setSidebarActive(false)
@ -285,6 +289,7 @@ Item {
height: parent.height
width: implicitWidth
background: Item {}
font.weight: Font.Thin
icon.source: "qrc:/assets/icons/icon_widgets.svg"
onClicked: {
setSidebarActive(false)

View File

@ -161,7 +161,7 @@ Item {
Rectangle {
id: sidebarBackground
color: "white"
color: Material.theme === Material.Light ? "white" : Material.background
anchors {
top: navBackground.bottom
right: parent.right
@ -346,8 +346,7 @@ Item {
Button {
id: btnSetWallpaper
text: qsTr("Set wallpaper")
Material.accent: Material.Orange
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
font.family: ScreenPlay.settings.font
icon.source: "qrc:/assets/icons/icon_plus.svg"

View File

@ -1,10 +1,13 @@
import QtQuick 2.14
import QtQuick.Controls 2.14
import QtGraphicalEffects 1.0
import QtQuick.Controls 2.12
import QtQuick.Controls.Material 2.12
import ScreenPlay 1.0
Rectangle {
id: rect
color: Material.theme === Material.Light ? Material.background : Qt.darker(Material.background)
height: availableHeight
width: availableWidth

View File

@ -1,6 +1,7 @@
import QtQuick 2.12
import QtGraphicalEffects 1.0
import ScreenPlay 1.0
import QtQuick.Controls.Material 2.12
Item {
id: root
@ -34,6 +35,7 @@ Item {
top: wrapper.bottom
topMargin: 5
}
color: Material.foreground
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter

View File

@ -38,7 +38,7 @@ Item {
Rectangle {
id: monitorsSettingsWrapper
color: "white"
color: Material.background
radius: 3
z: 98
width: 1000
@ -77,7 +77,6 @@ Item {
}
MonitorSelection {
id: monitorSelection
background: "#E4E4E4"
radius: 3
height: 200
z: 99
@ -128,7 +127,7 @@ Item {
Button {
id: btnRemoveSelectedWallpaper
text: qsTr("Remove selected")
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
font.family: ScreenPlay.settings.font
enabled: monitorSelection.activeMonitors.length == 1
@ -140,7 +139,7 @@ Item {
Button {
id: btnRemoveAllWallpaper
text: qsTr("Remove all Wallpapers")
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
font.family: ScreenPlay.settings.font
enabled: ScreenPlay.screenPlayManager.activeWallpaperCounter > 0
@ -152,7 +151,7 @@ Item {
Button {
id: btnRemoveAllWidgets
text: qsTr("Remove all Widgets")
Material.background: Material.Orange
Material.background: Material.accent
Material.foreground: "white"
font.family: ScreenPlay.settings.font
enabled: ScreenPlay.screenPlayManager.activeWidgetsCounter > 0

View File

@ -1,5 +1,6 @@
import QtQuick 2.12
import QtQuick.Controls 2.3
import QtQuick.Controls 2.12
import QtQuick.Controls.Material 2.12
import QtGraphicalEffects 1.0
import ScreenPlay 1.0
@ -12,7 +13,7 @@ Rectangle {
height: 60
clip: true
width: 1366
color: "#ffffff"
color: Material.theme === Material.Light ? "white" : Material.background
MouseArea {
anchors.fill: parent
@ -42,11 +43,9 @@ Rectangle {
}
}
function onPageChanged(name) {
ScreenPlay.setTrackerSendEvent("navigation",name);
ScreenPlay.setTrackerSendEvent("navigation", name)
if (!navActive)
return
@ -117,8 +116,7 @@ Rectangle {
}
}
NavigationWallpaperConfiguration {
}
NavigationWallpaperConfiguration {}
states: [
State {
name: "enabled"

View File

@ -1,5 +1,6 @@
import QtQuick 2.12
import QtGraphicalEffects 1.0
import QtQuick.Controls.Material 2.12
import ScreenPlay 1.0
Item {
@ -63,7 +64,7 @@ Item {
anchors.left: icon.right
anchors.leftMargin: 10
font.pointSize: 14
color: "#626262"
color: Material.foreground
anchors.verticalCenter: parent.verticalCenter
font.family: ScreenPlay.settings.font
font.weight: Font.Normal
@ -77,7 +78,7 @@ Item {
anchors.leftMargin: navigationItem.amount == "" ? 0 : 5
text: "name"
font.pointSize: 14
color: "#626262"
color: Material.foreground
anchors.verticalCenter: parent.verticalCenter
font.family: ScreenPlay.settings.font
font.weight: Font.Normal
@ -87,14 +88,14 @@ Item {
id: iconColorOverlay
anchors.fill: icon
source: icon
color: "#FFAB00"
color: Material.accentColor
}
Rectangle {
id: navIndicator
y: 83
height: 3
color: "#FFAB00"
color: Material.accent
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
@ -113,7 +114,7 @@ Item {
PropertyChanges {
target: iconColorOverlay
color: "#FFAB00"
color: Material.accent
}
},
State {

View File

@ -1,5 +1,6 @@
import QtQuick 2.12
import QtQuick.Controls 2.3
import QtQuick.Controls.Material 2.12
import QtGraphicalEffects 1.0
import ScreenPlay 1.0
@ -48,7 +49,7 @@ Item {
+ ScreenPlay.screenPlayManager.activeWidgetsCounter
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
color: "orange"
color: Material.accent
font.pointSize: 10
font.bold: true
font.family: ScreenPlay.settings.font
@ -77,7 +78,7 @@ Item {
verticalCenter: parent.verticalCenter
}
horizontalAlignment: Text.AlignRight
color: "#626262"
color: Material.foreground
font.pointSize: 12
font.family: ScreenPlay.settings.font
}

View File

@ -25,9 +25,10 @@ Item {
Text {
id: txtHeadline
color: "#5D5D5D"
color: Material.foreground
text: settingsBool.headline
font.family: ScreenPlay.settings.font
font.pointSize: 12
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignLeft
anchors{
@ -38,14 +39,13 @@ Item {
}
font.pointSize: 12
}
Text {
id: txtDescription
text: settingsBool.description
wrapMode: Text.WordWrap
color: "#B5B5B5"
color: Material.theme === Material.Light ? Qt.lighter(Material.foreground) : Qt.darker(Material.foreground)
font.family: ScreenPlay.settings.font
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignLeft

View File

@ -1,5 +1,6 @@
import QtQuick 2.14
import QtQuick.Controls 2.14
import QtQuick.Controls.Material 2.12
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.0
@ -52,7 +53,7 @@ Item {
Item {
id: settingsGeneralWrapper
height: 540 + txtDirChangesInfo.paintedHeight
height: 620 + txtDirChangesInfo.paintedHeight
width: parent.width
RectangularGlow {
@ -75,6 +76,7 @@ Item {
anchors.fill: parent
radius: 4
clip: true
color: Material.theme === Material.Light ? "white" : Material.background
SettingsHeader {
id: headerGeneral
@ -157,7 +159,7 @@ Item {
Text {
id: txtDirChangesInfo
text: qsTr("Important: Changing this directory has no effect on the workshop download path. ScreenPlay only supports having one content folder!")
color: "#B5B5B5"
color: Qt.darker(Material.foreground)
height: 30
width: parent.width
verticalAlignment: Text.AlignVCenter
@ -186,33 +188,63 @@ Item {
comboBox {
onActivated: {
ScreenPlay.settings.setLanguage(settingsLanguage.comboBox.currentValue)
ScreenPlay.settings.setLanguage(
settingsLanguage.comboBox.currentValue)
ScreenPlay.settings.retranslateUI()
}
model: [{
"value": Settings.En,
"text": qsTr("English")
}, {
"value": Settings.De,
"value": Settings.De,
"text": qsTr("German")
}, {
"value": Settings.Ru,
"value": Settings.Ru,
"text": qsTr("Russian")
}, {
"value": Settings.Fr,
"value": Settings.Fr,
"text": qsTr("French")
}, {
"value": Settings.Es,
"value": Settings.Es,
"text": qsTr("Spanish")
}, {
"value": Settings.Ko,
"value": Settings.Ko,
"text": qsTr("Korean")
}, {
"value": Settings.Vi,
"value": Settings.Vi,
"text": qsTr("Vietnamese")
}]
}
}
SettingsHorizontalSeperator {}
SettingsComboBox {
id: settingsTheme
headline: qsTr("Theme")
description: qsTr("Switch dark/light theme")
Component.onCompleted: {
settingsTheme.comboBox.currentIndex = root.indexOfValue(
settingsTheme.comboBox.model,
ScreenPlay.settings.theme)
}
comboBox {
onActivated: {
ScreenPlay.settings.setTheme(
settingsTheme.comboBox.currentValue)
}
model: [{
"value": Settings.System,
"text": qsTr("System Default")
}, {
"value": Settings.Dark,
"text": qsTr("Dark")
}, {
"value": Settings.Light,
"text": qsTr("Light")
}]
}
}
}
}
}
@ -240,6 +272,7 @@ Item {
Rectangle {
anchors.fill: parent
color: Material.theme === Material.Light ? "white" : Material.background
radius: 4
clip: true
@ -332,7 +365,7 @@ Item {
}
Rectangle {
color: Material.theme === Material.Light ? "white" : Material.background
anchors.fill: parent
radius: 4
clip: true
@ -364,13 +397,13 @@ Item {
height: 180
Text {
id: txtHeadline
color: "#5D5D5D"
color: Material.foreground
text: qsTr("Thank you for using ScreenPlay")
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignLeft
font.pointSize: 16
font.family: ScreenPlay.settings.font
font.family: ScreenPlay.settings.font
anchors {
top: parent.top
topMargin: 6
@ -381,7 +414,7 @@ Item {
Text {
id: txtDescriptionAbout
text: qsTr("Hi, I'm Elias Steurer also known as Kelteseth and I'm the developer of ScreenPlay. Thank you for using my software. You can follow me to receive updates about ScreenPlay here:")
color: "#B5B5B5"
color: Qt.darker(Material.foreground)
wrapMode: Text.WordWrap
verticalAlignment: Text.AlignTop

View File

@ -30,7 +30,7 @@ Item {
Text {
id: txtHeadline
color: "#5D5D5D"
color: Material.foreground
text: settingsButton.headline
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignLeft
@ -48,7 +48,7 @@ Item {
Text {
id: txtDescription
text: settingsButton.description
color: "#B5B5B5"
color: Material.theme === Material.Light ? Qt.lighter(Material.foreground) : Qt.darker(Material.foreground)
verticalAlignment: Text.AlignVCenter
wrapMode: Text.WordWrap
@ -68,11 +68,11 @@ Item {
Button {
id: btnSettings
text: settingsButton.buttonText
Material.background: Material.Orange
Material.foreground: "white"
icon.width: 20
icon.height: 20
font.family: ScreenPlay.settings.font
Material.background: Material.accent
Material.foreground: "white"
anchors {
right: parent.right
rightMargin: 20

View File

@ -1,5 +1,6 @@
import QtQuick 2.12
import QtQuick.Controls 2.3
import QtQuick.Controls.Material 2.2
import ScreenPlay 1.0
Item {
@ -14,7 +15,7 @@ Item {
Text {
id: txtHeadline
color: "#5D5D5D"
color: Material.foreground
text: settingsComboBox.headline
verticalAlignment: Text.AlignVCenter
@ -33,7 +34,7 @@ Item {
Text {
id: txtDescription
text: settingsComboBox.description
color: "#B5B5B5"
color: Qt.darker(Material.foreground)
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignLeft

View File

@ -2,9 +2,10 @@ import QtQuick 2.12
import QtQuick.Controls 2.3
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.3
import QtQuick.Controls.Material 2.2
import ScreenPlay 1.0
Rectangle {
Item {
id: root
state: "off"
clip: true
@ -29,8 +30,8 @@ Rectangle {
left: parent.left
margins: 20
}
color: Material.theme === Material.Light ? Qt.lighter(Material.foreground) : Qt.darker(Material.foreground)
lineHeight: 1.2
color: "#626262"
height: txtExpander.paintedHeight
wrapMode: Text.WordWrap
font.family: ScreenPlay.settings.font

View File

@ -1,13 +1,14 @@
import QtQuick 2.12
import QtQuick.Controls.Material 2.12
Item {
property real customWidth: parent.width
property real customHeight: 1
property color customColor: "#dddddd"
property color customColor: Material.theme === Material.Light ? "#eeeeee" : Qt.darker(Material.foreground)
property real customMargin: 10
height: customMargin
width:customWidth
width: customWidth
Rectangle {
height: customHeight
@ -17,8 +18,8 @@ Item {
right: parent.right
rightMargin: customMargin
left: parent.left
leftMargin:customMargin
leftMargin: customMargin
verticalCenter: parent.verticalCenter
}
}
}

View File

@ -4,8 +4,4 @@ Style=Material
[Material]
Theme=Light
Accent=Orange
Primary=White
Foreground=Grey
Font\Family=Roboto
Font\PixelSize=12
Variant=Dense

View File

@ -39,7 +39,9 @@ Settings::Settings(const std::shared_ptr<GlobalVariables>& globalVariables,
{
qRegisterMetaType<Settings::Language>("Settings::Language");
qmlRegisterUncreatableType<Settings>("ScreenPlay.Settings", 1, 0, "Settings", "Error only for enums");
qRegisterMetaType<Settings::Theme>("Settings::Theme");
qmlRegisterUncreatableType<Settings>("Settings", 1, 0, "Settings", "Error only for enums");
if (!m_qSettings.contains("Autostart")) {
#ifdef Q_OS_WIN
@ -57,6 +59,7 @@ Settings::Settings(const std::shared_ptr<GlobalVariables>& globalVariables,
setAutostart(m_qSettings.value("Autostart", true).toBool());
}
setCheckWallpaperVisible(m_qSettings.value("CheckWallpaperVisible", false).toBool());
setHighPriorityStart(m_qSettings.value("ScreenPlayExecutable", false).toBool());
if (m_qSettings.contains("VideoFillMode")) {
@ -66,6 +69,11 @@ Settings::Settings(const std::shared_ptr<GlobalVariables>& globalVariables,
setVideoFillMode(GlobalVariables::FillMode::Cover);
}
if (m_qSettings.contains("Theme")) {
auto value = m_qSettings.value("Theme").toString();
setTheme(QStringToEnum<Theme>(value, Theme::System));
}
setAnonymousTelemetry(m_qSettings.value("AnonymousTelemetry", true).toBool());
// Wallpaper and Widgets config
@ -110,7 +118,7 @@ Settings::Settings(const std::shared_ptr<GlobalVariables>& globalVariables,
}
setupWidgetAndWindowPaths();
setGitBuildHash(GIT_VERSION);
setGitBuildHash("GIT_VERSION");
}
/*!
@ -151,63 +159,19 @@ void Settings::setupWidgetAndWindowPaths()
QDir workingDir(QDir::currentPath());
QDir baseDir(QDir::currentPath());
#ifdef QT_DEBUG
if (workingDir.cdUp()) {
#ifdef Q_OS_OSX
m_globalVariables->setWidgetExecutablePath(QUrl::fromUserInput(workingDir.path() + "/../../../ScreenPlayWidget/ScreenPlayWidget.app/Contents/MacOS/ScreenPlayWidget").toLocalFile());
m_globalVariables->setWallpaperExecutablePath(QUrl::fromUserInput(workingDir.path() + "/../../../ScreenPlayWallpaper/ScreenPlayWallpaper.app/Contents/MacOS/ScreenPlayWallpaper").toLocalFile());
#if defined(Q_OS_WIN)
m_globalVariables->setWidgetExecutablePath(QUrl(workingDir.path() + "/ScreenPlayWidget.exe"));
m_globalVariables->setWallpaperExecutablePath(QUrl(workingDir.path() + "/ScreenPlayWallpaper.exe"));
#endif
#ifdef Q_OS_WIN
m_globalVariables->setWidgetExecutablePath(QUrl(workingDir.path() + "/ScreenPlayWidget/debug/ScreenPlayWidget.exe"));
m_globalVariables->setWallpaperExecutablePath(QUrl(workingDir.path() + "/ScreenPlayWallpaper/debug/ScreenPlayWallpaper.exe"));
#if defined(Q_OS_LINUX)
m_globalVariables->setWidgetExecutablePath(QUrl(workingDir.path() + "/ScreenPlayWidget"));
m_globalVariables->setWallpaperExecutablePath(QUrl(workingDir.path() + "/SScreenPlayWallpaper"));
#endif
#ifdef Q_OS_LINUX
m_globalVariables->setWidgetExecutablePath(QUrl(workingDir.path() + "/ScreenPlayWidget/ScreenPlayWidget"));
m_globalVariables->setWallpaperExecutablePath(QUrl(workingDir.path() + "/ScreenPlayWallpaper/ScreenPlayWallpaper"));
#endif
}
// We need to detect the right base path so we can copy later the example projects
baseDir.cdUp();
baseDir.cdUp();
baseDir.cd("ScreenPlay");
baseDir.cd("ScreenPlay");
#endif
#ifdef QT_NO_DEBUG
#ifdef Q_OS_WIN
qDebug() << "Starting in Release mode!";
// If we build in the release version we must be cautious!
// The working dir in steam is the ScreenPlay.exe location
// In QtCreator is the dir above ScreenPlay.exe (!)
workingDir.cdUp();
workingDir.cd("ScreenPlayWallpaper");
if (QDir(workingDir.path() + "/release").exists()) {
// If started by QtCreator
workingDir.cd("release");
m_globalVariables->setWallpaperExecutablePath(QUrl(workingDir.path() + "/ScreenPlayWallpaper.exe"));
workingDir.cdUp();
workingDir.cdUp();
workingDir.cd("ScreenPlayWidget");
workingDir.cd("release");
m_globalVariables->setWidgetExecutablePath(QUrl(workingDir.path() + "/ScreenPlayWidget.exe"));
} else {
// If started by Steam
m_globalVariables->setWallpaperExecutablePath(QUrl("ScreenPlayWallpaper.exe"));
m_globalVariables->setWidgetExecutablePath(QUrl("ScreenPlayWidget.exe"));
}
#endif
//#ifdef Q_OS_OSX
// m_globalVariables->setWidgetExecutablePath(QUrl::fromUserInput(workingDir.path() + "/../../../../ScreenPlayWidget/ScreenPlayWidget.app/Contents/MacOS/ScreenPlayWidget").toLocalFile());
// m_globalVariables->setWallpaperExecutablePath(QUrl::fromUserInput(workingDir.path() + "/../../../../ScreenPlayWallpaper/ScreenPlayWallpaper.app/Contents/MacOS/ScreenPlayWallpaper").toLocalFile());
//#endif
#if defined(Q_OS_OSX)
m_globalVariables->setWidgetExecutablePath(QUrl::fromUserInput(workingDir.path() + "ScreenPlayWidget.app/Contents/MacOS/ScreenPlayWidget").toLocalFile());
m_globalVariables->setWallpaperExecutablePath(QUrl::fromUserInput(workingDir.path() + "ScreenPlayWallpaper.app/Contents/MacOS/ScreenPlayWallpaper").toLocalFile());
#endif
}

View File

@ -51,6 +51,7 @@ class Settings : public QObject {
Q_PROPERTY(GlobalVariables::FillMode videoFillMode READ videoFillMode WRITE setVideoFillMode NOTIFY videoFillModeChanged)
Q_PROPERTY(Language language READ language WRITE setLanguage NOTIFY languageChanged)
Q_PROPERTY(Theme theme READ theme WRITE setTheme NOTIFY themeChanged)
Q_PROPERTY(QString decoder READ decoder WRITE setDecoder NOTIFY decoderChanged)
Q_PROPERTY(QString gitBuildHash READ gitBuildHash WRITE setGitBuildHash NOTIFY gitBuildHashChanged)
@ -72,6 +73,13 @@ public:
};
Q_ENUM(Language)
enum class Theme {
System,
Dark,
Light
};
Q_ENUM(Theme)
bool offlineMode() const
{
return m_offlineMode;
@ -135,6 +143,11 @@ public:
return m_font;
}
Theme theme() const
{
return m_theme;
}
signals:
void requestRetranslation();
void resetInstalledListmodel();
@ -153,6 +166,8 @@ signals:
void languageChanged(Language language);
void fontChanged(QString font);
void themeChanged(Theme theme);
public slots:
void writeJsonFileFromResource(const QString& filename);
void setupWidgetAndWindowPaths();
@ -298,6 +313,17 @@ public slots:
emit fontChanged(m_font);
}
void setTheme(Theme theme)
{
if (m_theme == theme)
return;
setqSetting("Theme", QVariant::fromValue(theme).toString());
m_theme = theme;
emit themeChanged(m_theme);
}
private:
void restoreDefault(const QString& appConfigLocation, const QString& settingsFileType);
@ -316,8 +342,9 @@ private:
QString m_gitBuildHash;
QString m_decoder;
GlobalVariables::FillMode m_videoFillMode = GlobalVariables::FillMode::Cover;
Language m_language = Language::En;
QString m_font { "Roboto" };
FillMode m_videoFillMode { FillMode::Cover };
Language m_language { Language::En };
Theme m_theme { Theme::System };
QString m_font {"Roboto"};
};
}

View File

@ -132,16 +132,16 @@
<name>CreateImport</name>
<message>
<location filename="../qml/Create/CreateImport.qml" line="137"/>
<source></source>
<translation></translation>
<source>Import a Creation</source>
<translation>Import a Creation</translation>
</message>
</context>
<context>
<name>CreateUpload</name>
<message>
<location filename="../qml/Create/CreateUpload.qml" line="219"/>
<source></source>
<translation></translation>
<source>Upload a Creation</source>
<translation>Upload a Creation</translation>
</message>
</context>
<context>
@ -332,7 +332,7 @@
</message>
<message>
<location filename="../qml/Create/FFMPEGPopup.qml" line="88"/>
<source>You cannot create Wallaper without FFMPEG installed!</source>
<source>You cannot create Wallpaper without FFMPEG installed!</source>
<translation type="unfinished"></translation>
</message>
<message>
@ -590,7 +590,7 @@ if you installed ScreenPlay via Steam!
</message>
<message>
<location filename="../qml/Settings/Settings.qml" line="88"/>
<source>ScreenPlay will start with Windows and will setup your Desktop every time for you.</source>
<source>ScreenPlay will start with start with your operating system and will setup your Desktop every time for you.</source>
<translation type="unfinished"></translation>
</message>
<message>

View File

@ -47,11 +47,11 @@
<message>
<location filename="../qml/Create/CreateContent.qml" line="15"/>
<source>Create Widgets and Scenes</source>
<translation type="unfinished">Crear Widgets y Escenarios</translation>
<translation type="unfinished">Créer des widgets et des scènes</translation>
</message>
<message>
<source>Create Emtpy Widget</source>
<translation type="obsolete">Créer un widget Emtpy</translation>
<translation type="obsolete">Créer un widget vide</translation>
</message>
<message>
<source>Examples Widgets and Scenes</source>
@ -60,12 +60,12 @@
<message>
<location filename="../qml/Create/CreateContent.qml" line="30"/>
<source>Create Empty Widget</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Créer un widget vide</translation>
</message>
<message>
<location filename="../qml/Create/CreateContent.qml" line="43"/>
<source>Example Widgets and Scenes</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Exemples de Widgets et de Scène</translation>
</message>
<message>
<location filename="../qml/Create/CreateContent.qml" line="67"/>
@ -140,16 +140,16 @@
<name>CreateImport</name>
<message>
<location filename="../qml/Create/CreateImport.qml" line="137"/>
<source></source>
<translation></translation>
<source>Import a Creation</source>
<translation>Importer une création</translation>
</message>
</context>
<context>
<name>CreateUpload</name>
<message>
<location filename="../qml/Create/CreateUpload.qml" line="219"/>
<source></source>
<translation></translation>
<source>Upload a Creation</source>
<translation>Poster une création</translation>
</message>
</context>
<context>
@ -205,7 +205,7 @@
<message>
<location filename="../qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImportConvert.qml" line="83"/>
<source>Converting Video ERROR!</source>
<translation type="unfinished">Convertir no tiene éxito!</translation>
<translation type="unfinished">Conversion de la vidéo ERREUR !</translation>
</message>
<message>
<location filename="../qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImportConvert.qml" line="107"/>
@ -240,7 +240,7 @@
<message>
<location filename="../qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImportConvert.qml" line="268"/>
<source>Youtube URL</source>
<translation type="unfinished"></translation>
<translation type="unfinished">URL Youtube</translation>
</message>
<message>
<location filename="../qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImportConvert.qml" line="293"/>
@ -255,7 +255,7 @@
<message>
<location filename="../qml/Create/Wizards/CreateWallpaper/CreateWallpaperVideoImportConvert.qml" line="341"/>
<source>Save Wallpaper...</source>
<translation type="unfinished">Sauvegarder le papier peint...</translation>
<translation type="unfinished">Sauvegarder le fond d´écran...</translation>
</message>
</context>
<context>
@ -268,7 +268,7 @@
<message>
<location filename="../qml/Monitors/DefaultVideoControls.qml" line="32"/>
<source>Playback rate</source>
<translation type="unfinished">taux de lecture</translation>
<translation type="unfinished">Taux de lecture</translation>
</message>
<message>
<location filename="../qml/Monitors/DefaultVideoControls.qml" line="38"/>
@ -331,7 +331,7 @@
<message>
<location filename="../qml/Create/FFMPEGPopup.qml" line="70"/>
<source>Extraction successful</source>
<translation type="unfinished">Добыча прошла успешно</translation>
<translation type="unfinished">Succès de l´extraction</translation>
</message>
<message>
<location filename="../qml/Create/FFMPEGPopup.qml" line="73"/>
@ -340,8 +340,8 @@
</message>
<message>
<location filename="../qml/Create/FFMPEGPopup.qml" line="88"/>
<source>You cannot create Wallaper without FFMPEG installed!</source>
<translation type="unfinished">Vous ne pouvez pas créer de Wallaper sans FFMPEG installé !</translation>
<source>You cannot create Wallpaper without FFMPEG installed!</source>
<translation type="unfinished">Vous ne pouvez pas créer de fonds d´écrans sans FFMPEG installé !</translation>
</message>
<message>
<location filename="../qml/Create/FFMPEGPopup.qml" line="109"/>
@ -693,17 +693,17 @@ si vous avez installé ScreenPlay via Steam !
<message>
<location filename="../qml/Settings/Settings.qml" line="87"/>
<source>Autostart</source>
<translation type="unfinished">démarrage automatique</translation>
<translation type="unfinished">Démarrage automatique</translation>
</message>
<message>
<location filename="../qml/Settings/Settings.qml" line="88"/>
<source>ScreenPlay will start with Windows and will setup your Desktop every time for you.</source>
<translation type="unfinished">ScreenPlay démarrera avec Windows et configurera votre bureau à chaque fois pour vous.</translation>
<source>ScreenPlay will start with your operating system and will setup your Desktop every time for you.</source>
<translation type="unfinished">ScreenPlay démarrera avec votre système d´exploitation et configurera votre bureau à chaque fois pour vous.</translation>
</message>
<message>
<location filename="../qml/Settings/Settings.qml" line="98"/>
<source>High priority Autostart</source>
<translation type="unfinished">Haute priorité Autostart</translation>
<translation type="unfinished">Démarrage automatique en haute priorité</translation>
</message>
<message>
<location filename="../qml/Settings/Settings.qml" line="101"/>
@ -753,7 +753,7 @@ si vous avez installé ScreenPlay via Steam !
<message>
<location filename="../qml/Settings/Settings.qml" line="267"/>
<source>Pause wallpaper while ingame</source>
<translation type="unfinished">Pause wallpaper pendant le jeu</translation>
<translation type="unfinished">Met en pause le fond d´écran pendant le jeu</translation>
</message>
<message>
<location filename="../qml/Settings/Settings.qml" line="269"/>
@ -922,7 +922,7 @@ si vous avez installé ScreenPlay via Steam !
<message>
<location filename="../qml/Community/XMLNewsfeed.qml" line="58"/>
<source>News &amp; Patchnotes</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Nouveautées et notes de versions</translation>
</message>
</context>
<context>

View File

@ -0,0 +1,24 @@
project(ScreenPlaySDK)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOMOC ON)
find_package(
Qt5
COMPONENTS Quick
QML
Widgets
Gui
Network
Core
REQUIRED)
set(src screenplay-sdk_plugin.cpp
screenplaysdk.cpp)
set(headers screenplay-sdk_plugin.h
screenplaysdk.h)
add_library(${PROJECT_NAME} ${src} ${headers})
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick Qt5::Gui Qt5::Qml Qt5::Network)

View File

@ -1,7 +0,0 @@
SOURCES += \
$$PWD/screenplay-sdk_plugin.cpp \
$$PWD/screenplaysdk.cpp
HEADERS += \
$$PWD/screenplay-sdk_plugin.h \
$$PWD/screenplaysdk.h

View File

@ -1,35 +0,0 @@
TEMPLATE = lib
TARGET = ScreenPlaySDK
TARGET = $$qtLibraryTarget($$TARGET)
QT += qml quick
CONFIG += plugin c++17
uri = ScreenPlay.ScreenPlaySDK
# Input
SOURCES += \
$$PWD/screenplay-sdk_plugin.cpp \
$$PWD/screenplaysdk.cpp
HEADERS += \
$$PWD/screenplay-sdk_plugin.h \
$$PWD/screenplaysdk.h
DISTFILES = qmldir
!equals(_PRO_FILE_PWD_, $$OUT_PWD) {
copy_qmldir.target = $$OUT_PWD/qmldir
copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir
copy_qmldir.commands = $(COPY_FILE) \"$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)\"
QMAKE_EXTRA_TARGETS += copy_qmldir
PRE_TARGETDEPS += $$copy_qmldir.target
}
qmldir.files = qmldir
installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /)
qmldir.path = $$installPath
target.path = $$installPath
INSTALLS += target qmldir

View File

@ -0,0 +1,57 @@
project(ScreenPlaySysInfo)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOMOC ON)
find_package(
Qt5
COMPONENTS Quick
QML
Core
REQUIRED)
set(src screenplaysysinfo_plugin.cpp
sysinfo.cpp
cpu.cpp
ram.cpp
storage.cpp)
set(headers screenplaysysinfo_plugin.h
sysinfo.h
cpu.h
ram.h
mathhelper.h
storage.h)
add_library(${PROJECT_NAME} ${src} ${headers})
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick Qt5::Qml)
# QML module deployment
set(URI "ScreenPlay/Sysinfo")
string(REPLACE "." "/" TARGETPATH ${URI})
if (NOT DEFINED QT_QMAKE_EXECUTABLE)
get_target_property (QT_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION)
if (NOT QT_QMAKE_EXECUTABLE)
message(FATAL_ERROR "Cannot find qmake")
endif()
endif()
execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_QML OUTPUT_VARIABLE QT_INSTALL_QML_RAW)
string(STRIP ${QT_INSTALL_QML_RAW} QT_INSTALL_QML)
set(DESTDIR "${QT_INSTALL_QML}/${TARGETPATH}")
message("DESTDIR ${DESTDIR}")
install(FILES
qmldir
DESTINATION
${DESTDIR} )
# Copies ScreenPlaySysInfo.* into qt qml plugins folder
add_custom_command(
TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:ScreenPlaySysInfo>
${DESTDIR}/$<TARGET_FILE_NAME:ScreenPlaySysInfo>)

View File

@ -1,42 +0,0 @@
TEMPLATE = lib
TARGET = ScreenPlaySysInfo
QT += qml quick
CONFIG += plugin c++17
TARGET = $$qtLibraryTarget($$TARGET)
uri = ScreenPlay.Sysinfo
SOURCES += \
screenplaysysinfo_plugin.cpp \
sysinfo.cpp \
cpu.cpp \
ram.cpp \
storage.cpp
HEADERS += \
screenplaysysinfo_plugin.h \
sysinfo.h \
cpu.h \
ram.h \
mathhelper.h \
storage.h
DISTFILES = qmldir
!equals(_PRO_FILE_PWD_, $$OUT_PWD) {
copy_qmldir.target = $$OUT_PWD/qmldir
copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir
copy_qmldir.commands = $(COPY_FILE) \"$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)\"
QMAKE_EXTRA_TARGETS += copy_qmldir
PRE_TARGETDEPS += $$copy_qmldir.target
}
qmldir.files = qmldir
installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /)
qmldir.path = $$installPath
target.path = $$installPath
INSTALLS += target qmldir

View File

@ -0,0 +1,64 @@
project(ScreenPlayWallpaper)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOMOC ON)
find_package(
Qt5
COMPONENTS Quick
QML
Widgets
Gui
WebEngine
REQUIRED)
if(WIN32)
set(src_plattform
src/windowsdesktopproperties.cpp
src/winwindow.cpp)
set(headers_plattform
src/windowsdesktopproperties.h
src/winwindow.h)
elseif(APPLE)
set(src_plattform
src/macintegration.cpp
src/macwindow.cpp)
set(headers_plattform
src/macintegration.h
src/macbridge.h
src/macwindow.h)
elseif(UNIX)
set(src_plattform
main.cpp
src/linuxwindow.cpp)
set(headers_plattform
src/linuxwindow.h)
endif()
set( src
main.cpp
src/basewindow.cpp)
set( headers
src/basewindow.h)
set(resources SPWResources.qrc)
add_executable(${PROJECT_NAME} ${src} ${headers} ${src_plattform} ${headers_plattform} ${resources})
target_link_libraries(${PROJECT_NAME}
PRIVATE
Qt5::Qml
Qt5::Quick
Qt5::Gui
Qt5::Widgets
Qt5::Core
Qt5::WebEngine
ScreenPlaySDK
)
install(FILES
index.html
DESTINATION
${CMAKE_BINARY_DIR} )

View File

@ -6,7 +6,6 @@
#include <QtWebEngine>
#if defined(Q_OS_WIN)
#include "qt_breakpad.h"
#include "src/winwindow.h"
#endif
@ -40,7 +39,6 @@ int main(int argc, char* argv[])
//Set the monitor number to test
#if defined(Q_OS_WIN)
QtBreakpad::init(QDir::current().absolutePath());
//WinWindow window1({ 0 }, "test", "appid", "1", "fill");
//WinWindow window2({ 1 }, "test", "appid", "1", "fill");

View File

@ -7,8 +7,8 @@ BaseWindow::BaseWindow(QObject* parent)
BaseWindow::BaseWindow(QString projectFilePath, const QVector<int> activeScreensList, const bool checkWallpaperVisible)
: QObject(nullptr)
, m_activeScreensList(activeScreensList)
, m_checkWallpaperVisible(checkWallpaperVisible)
, m_activeScreensList(activeScreensList)
{
QApplication::instance()->installEventFilter(this);
qRegisterMetaType<BaseWindow::WallpaperType>();

View File

@ -0,0 +1,26 @@
cmake_minimum_required(VERSION 3.16.0)
project(ScreenPlayWidget)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOMOC ON)
find_package(Qt5Qml)
find_package(Qt5Quick)
find_package(Qt5Gui)
find_package(Qt5Widgets)
find_package(Qt5Core)
set(src main.cpp
src/widgetwindow.cpp)
set(headers src/widgetwindow.h)
set(resources SPWidgetResources.qrc)
add_executable(ScreenPlayWidget ${src} ${headers} ${resources})
target_link_libraries( ScreenPlayWidget
PRIVATE
Qt5::Qml
Qt5::Quick
Qt5::Gui
Qt5::Widgets
Qt5::Core
ScreenPlaySDK
)

View File

@ -1,60 +0,0 @@
QT += quick qml quickcontrols2 core widgets gui
CONFIG += c++17
CONFIG += qtquickcompiler
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp \
src/widgetwindow.cpp
HEADERS += \
src/widgetwindow.h
RESOURCES += \
SPWidgetResources.qrc
include(../ScreenPlaySDK/ScreenPlaySDK.pri)
win32 {
CONFIG(debug, debug|release) {
install_it.path = $${OUT_PWD}/debug/
install_it.files += \
$$PWD/../Common/vcpkg/installed/x64-windows/debug/bin/libcrypto-1_1-x64.dll \
$$PWD/../Common/vcpkg/installed/x64-windows/debug/bin/libssl-1_1-x64.dll \
} else {
install_it.path = $${OUT_PWD}/release/
install_it.files += \
$$PWD/../Common/vcpkg/installed/x64-windows/bin/libcrypto-1_1-x64.dll \
$$PWD/../Common/vcpkg/installed/x64-windows/bin/libssl-1_1-x64.dll \
}
}
macx {
QMAKE_LIBDIR += $$OUT_PWD/
}
unix {
install_it.path = $${OUT_PWD}/
CONFIG(debug, debug|release) {
install_it.files += \
$$PWD/../Common/vcpkg/installed/x64-linux/debug/bin/libcrypto-1_1-x64.so \
$$PWD/../Common/vcpkg/installed/x64-linux/debug/bin/libssl-1_1-x64.so \
} else {
install_it.files += \
$$PWD/../Common/vcpkg/installed/x64-linux/bin/libcrypto-1_1-x64.so \
$$PWD/../Common/vcpkg/installed/x64-linux/bin/libssl-1_1-x64.so \
}
}
INSTALLS += install_it

View File

@ -4,13 +4,13 @@ cd Common
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
git pull
git checkout origin/master
git checkout 2bc6cd714
chmod +x bootstrap-vcpkg.sh
./bootstrap-vcpkg.sh
chmod +x vcpkg
if [[ "$OSTYPE" == "darwin"* ]]; then
./vcpkg install libzippp:x64-osx nlohmann-json:x64-osx openssl-unix:x64-osx libzip:x64-osx
./vcpkg install zlib libzip libzippp nlohmann-json openssl-unix libzip breakpad --triplet x64-osx --recurse
else
./vcpkg install libzippp:x64-linux nlohmann-json:x64-linux openssl-unix:x64-linux libzip:x64-linux
./vcpkg install zlib libzip libzippp nlohmann-json openssl-unix libzip breakpad --triplet x64-linux --recurse
fi

View File

@ -4,7 +4,6 @@ cd Common
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
git pull
git checkout origin/master
git checkout 2bc6cd714
call bootstrap-vcpkg.bat
vcpkg.exe install libzippp:x64-windows nlohmann-json:x64-windows openssl:x64-windows
pause
vcpkg.exe install zlib libzip libzippp nlohmann-json openssl breakpad --triplet x64-windows --recurse