mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-09-15 06:52:34 +02:00
Merge branch 'master' into 107-refactor-create-screen
# Conflicts: # ScreenPlay/main.qml
This commit is contained in:
commit
954bb11c7d
8
.cmake-format.py
Normal file
8
.cmake-format.py
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
with section("format"):
|
||||
|
||||
# How wide to allow formatted cmake files
|
||||
line_width = 140
|
||||
|
||||
# How many spaces to tab for indent
|
||||
tab_size = 4
|
206
.gitlab-ci.yml
206
.gitlab-ci.yml
@ -1,47 +1,183 @@
|
||||
stages:
|
||||
- check
|
||||
- build
|
||||
- test
|
||||
- benchmark
|
||||
|
||||
build:windows:
|
||||
check:
|
||||
stage: check
|
||||
tags:
|
||||
- vs2019
|
||||
- windows10
|
||||
script:
|
||||
- cd Tools
|
||||
- pip install cmakelang
|
||||
- python format-cmake.py
|
||||
- python format-cpp.py
|
||||
|
||||
build:windows_debug:
|
||||
stage: build
|
||||
tags:
|
||||
- vs2017
|
||||
- windows
|
||||
before_script:
|
||||
- git clean -xdf
|
||||
- git submodule sync --recursive
|
||||
- git submodule update --init --recursive
|
||||
# Needs MSVC 2019 installed!
|
||||
# Setup vcvars32.bat manually because this is powershell and MS does not have something simmilar for PS. Wtf?
|
||||
# https://gist.github.com/justinian/81a2e55c89e8301a8a96
|
||||
# https://stackoverflow.com/questions/2124753/how-can-i-use-powershell-with-the-visual-studio-command-prompt
|
||||
- $tempFile = [IO.Path]::GetTempFileName()
|
||||
- cmd /c " `"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat`" && set > `"$tempFile`" "
|
||||
- Get-Content $tempFile | Foreach-Object {if($_ -match "^(.*?)=(.*)$"){Set-Content "env:\$($matches[1])" $matches[2]}}
|
||||
- Remove-Item $tempFile
|
||||
- $Env:Path += ';C:\Qt\5.15.1\msvc2019_64\bin'
|
||||
- $Env:Path += ';C:\Qt\Tools\QtCreator\bin'
|
||||
- $env:path -split ";"
|
||||
cache:
|
||||
key: ${CI_RUNNER_DESCRIPTION}
|
||||
paths:
|
||||
- Common\vcpkg\
|
||||
- vs2019
|
||||
- windows10
|
||||
needs:
|
||||
- check
|
||||
script:
|
||||
- cmd /c install_dependencies_windows.bat
|
||||
- mkdir BUILD_WINDOWS
|
||||
- cd BUILD_WINDOWS
|
||||
- cmake.exe ../ -DCMAKE_PREFIX_PATH=c:/Qt/5.15.1/msvc2019 -DCMAKE_IGNORE_PATH=C:/Strawberry/c/bin -DCMAKE_BUILD_TYPE=MinSizeRel -DCMAKE_TOOLCHAIN_FILE="$(Get-Location)/../Common/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-windows "-GCodeBlocks - Ninja" -B.
|
||||
- cmake.exe --build . --target all
|
||||
- cd bin
|
||||
- windeployqt.exe --release --qmldir ../../ScreenPlay/qml ScreenPlay.exe
|
||||
- windeployqt.exe --release --qmldir ../../ScreenPlayWidget ScreenPlayWidget.exe
|
||||
- windeployqt.exe --release --qmldir ../../ScreenPlayWallpaper ScreenPlayWallpaper.exe
|
||||
- del *.cpp,*.moc,*.h,*.obj,*.res,*.exp,*.lib,*.lik,*.pch, *.ninja, *.exe.manifest, *.cbp, *.cmake, *.ninja_log, *.ninja_deps, *.manifest
|
||||
- cd Tools
|
||||
- python build.py -t debug
|
||||
artifacts:
|
||||
expire_in: '12 weeks'
|
||||
expire_in: '4 weeks'
|
||||
paths:
|
||||
- BUILD_WINDOWS/bin/
|
||||
- build-x64-windows-debug/bin/
|
||||
|
||||
build:windows_release:
|
||||
stage: build
|
||||
tags:
|
||||
- vs2019
|
||||
- windows10
|
||||
needs:
|
||||
- check
|
||||
script:
|
||||
- cd Tools
|
||||
- python build.py -t release
|
||||
artifacts:
|
||||
expire_in: '4 weeks'
|
||||
paths:
|
||||
- build-x64-windows-release/bin/
|
||||
|
||||
|
||||
build:osx_debug:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
tags:
|
||||
- osx
|
||||
needs:
|
||||
- check
|
||||
script:
|
||||
- cd Tools
|
||||
- python3 build.py -t debug
|
||||
artifacts:
|
||||
expire_in: '4 weeks'
|
||||
paths:
|
||||
- build-x64-osx-debug/bin/
|
||||
|
||||
build:osx_release:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
tags:
|
||||
- osx
|
||||
needs:
|
||||
- check
|
||||
script:
|
||||
- cd Tools
|
||||
- python3 build.py -t release
|
||||
artifacts:
|
||||
expire_in: '4 weeks'
|
||||
paths:
|
||||
- build-x64-osx-release/bin/
|
||||
|
||||
build:linux_debug:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
image:
|
||||
name: darkmattercoder/qt-build:5.15.1
|
||||
entrypoint: [""]
|
||||
tags:
|
||||
- gitlab-org-docker
|
||||
needs:
|
||||
- check
|
||||
script:
|
||||
- sudo apt-get update -y
|
||||
- sudo apt-get install apt-transport-https ca-certificates gnupg software-properties-common wget software-properties-common -y
|
||||
- wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
|
||||
- sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic-rc main' -y
|
||||
- sudo apt-get update -y
|
||||
- sudo apt install build-essential libgl1-mesa-dev lld ninja-build cmake -y
|
||||
- cd Tools
|
||||
- python build.py -t debug
|
||||
artifacts:
|
||||
expire_in: '4 weeks'
|
||||
paths:
|
||||
- build-x64-linux-debug/bin/
|
||||
|
||||
build:linux_release:
|
||||
stage: build
|
||||
allow_failure: true
|
||||
image:
|
||||
name: darkmattercoder/qt-build:5.15.1
|
||||
entrypoint: [""]
|
||||
tags:
|
||||
- gitlab-org-docker
|
||||
needs:
|
||||
- check
|
||||
script:
|
||||
- sudo apt-get update -y
|
||||
- sudo apt-get install apt-transport-https ca-certificates gnupg software-properties-common wget software-properties-common -y
|
||||
- wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null
|
||||
- sudo apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic-rc main' -y
|
||||
- sudo apt-get update -y
|
||||
- sudo apt install build-essential libgl1-mesa-dev lld ninja-build cmake -y
|
||||
- cd Tools
|
||||
- python build.py -t release
|
||||
artifacts:
|
||||
expire_in: '4 weeks'
|
||||
paths:
|
||||
- build-x64-linux-release/bin/
|
||||
|
||||
test:windows_debug:
|
||||
stage: test
|
||||
tags:
|
||||
- windows10
|
||||
- vs2019
|
||||
dependencies:
|
||||
- build:windows_debug
|
||||
needs:
|
||||
- build:windows_debug
|
||||
script:
|
||||
- ./build-x64-windows-debug/bin/ScreenPlay.exe --no-run=false --exit=true --reporters=junit --out=test-report-junit.xml
|
||||
artifacts:
|
||||
expire_in: '4 weeks'
|
||||
when: always
|
||||
reports:
|
||||
junit: test-report-junit.xml
|
||||
|
||||
test:windows_release:
|
||||
stage: test
|
||||
tags:
|
||||
- windows10
|
||||
- vs2019
|
||||
dependencies:
|
||||
- build:windows_release
|
||||
needs:
|
||||
- build:windows_release
|
||||
script:
|
||||
- ./build-x64-windows-release/bin/ScreenPlay.exe --no-run=false --exit=true --reporters=junit --out=test-report-junit.xml
|
||||
artifacts:
|
||||
expire_in: '4 weeks'
|
||||
when: always
|
||||
reports:
|
||||
junit: test-report-junit.xml
|
||||
|
||||
|
||||
benchmark:windows_release:
|
||||
stage: benchmark
|
||||
tags:
|
||||
- windows10
|
||||
- vs2019
|
||||
dependencies:
|
||||
- build:windows_release
|
||||
needs:
|
||||
- build:windows_release
|
||||
script:
|
||||
- ./build-x64-windows-release/bin/ScreenPlay.exe --benchmark
|
||||
artifacts:
|
||||
expire_in: '4 weeks'
|
||||
when: always
|
||||
reports:
|
||||
metrics: build-x64-windows-release/bin/metrics.txt
|
||||
|
||||
|
||||
build_docs:
|
||||
stage: .post
|
||||
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
|
||||
|
BIN
.gitlab/media/preview.gif
Normal file
BIN
.gitlab/media/preview.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 MiB |
@ -1,4 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.16.0 )
|
||||
cmake_minimum_required(VERSION 3.16.0)
|
||||
|
||||
project(ScreenPlay)
|
||||
|
||||
# This sets cmake to compile all dlls into the main directory
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
@ -15,14 +17,22 @@ elseif(APPLE)
|
||||
set(VCPKG_ARCH "x64-osx")
|
||||
endif()
|
||||
|
||||
set(VCPKG_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Common/vcpkg/installed/${VCPKG_ARCH}/include/)
|
||||
set(VCPKG_TOOLS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Common/vcpkg/installed/${VCPKG_ARCH}/tools/)
|
||||
set(QT_TELEMTRY_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/Common/qt-google-analytics/)
|
||||
# assume built-in pthreads on MacOS https://stackoverflow.com/questions/54587052/cmake-on-mac-could-not-find-threads-missing-threads-found
|
||||
if(APPLE)
|
||||
set(CMAKE_THREAD_LIBS_INIT "-lpthread")
|
||||
set(CMAKE_HAVE_THREADS_LIBRARY 1)
|
||||
set(CMAKE_USE_WIN32_THREADS_INIT 0)
|
||||
set(CMAKE_USE_PTHREADS_INIT 1)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
endif()
|
||||
|
||||
set(VCPKG_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../ScreenPlay-vcpkg")
|
||||
set(VCPKG_INSTALLED_PATH "${VCPKG_PATH}/installed/${VCPKG_ARCH}")
|
||||
set(QT_TELEMTRY_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/Common/qt-google-analytics/)
|
||||
|
||||
find_package(Git REQUIRED)
|
||||
if(WIN32)
|
||||
set(date_command "CMD" )
|
||||
set(date_command "CMD")
|
||||
set(date_arg "/c date /t")
|
||||
|
||||
elseif(APPLE)
|
||||
@ -33,30 +43,26 @@ elseif(UNIX)
|
||||
set(date_arg "")
|
||||
endif()
|
||||
|
||||
execute_process(COMMAND
|
||||
${date_command} ${date_arg}
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
OUTPUT_VARIABLE BUILD_DATE
|
||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process(
|
||||
COMMAND ${date_command} ${date_arg}
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
OUTPUT_VARIABLE BUILD_DATE
|
||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
execute_process(COMMAND
|
||||
"${GIT_EXECUTABLE}" describe --always
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process(
|
||||
COMMAND "${GIT_EXECUTABLE}" describe --always
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
add_compile_definitions(COMPILE_INFO="${BUILD_DATE} + ${GIT_COMMIT_HASH}")
|
||||
|
||||
|
||||
|
||||
if(UNIX)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")
|
||||
if(UNIX AND NOT APPLE)
|
||||
# Fixes QWebEngine linker errors on Ubuntu 20.04
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")
|
||||
endif()
|
||||
|
||||
|
||||
project(ScreenPlay)
|
||||
|
||||
add_subdirectory(ScreenPlay)
|
||||
add_subdirectory(ScreenPlaySDK)
|
||||
add_subdirectory(ScreenPlayShader)
|
||||
@ -64,5 +70,5 @@ add_subdirectory(ScreenPlayWallpaper)
|
||||
add_subdirectory(ScreenPlayWidget)
|
||||
|
||||
if(WIN32)
|
||||
add_subdirectory(ScreenPlaySysInfo)
|
||||
add_subdirectory(ScreenPlaySysInfo)
|
||||
endif()
|
||||
|
7
Docs/ContinousIntegration.md
Normal file
7
Docs/ContinousIntegration.md
Normal file
@ -0,0 +1,7 @@
|
||||
### Continous Inegration
|
||||
|
||||
##### Code Checks
|
||||
|
||||
##### Benchmarks
|
||||
|
||||
##### Unit tests
|
@ -2,18 +2,18 @@
|
||||
1. Install latest [git + git-lfs](https://git-scm.com/)
|
||||
2. Clone ScreenPlay
|
||||
``` bash
|
||||
git clone --recursive https://gitlab.com/kelteseth/ScreenPlay.git
|
||||
git clone --recursive https://gitlab.com/kelteseth/ScreenPlay.git ScreenPlay
|
||||
```
|
||||
3. Download the latest [__Qt 5.15__](https://www.qt.io/download-qt-installer). Earlier versions are not supported!
|
||||
4. Start install-dependencies.bat to download dependencies into the Common/ folder
|
||||
4. Start install-dependencies.bat to download dependencies. ATTENTION: This will create a ScreenPlay-vcpkg folder in the same directory as your ScreenPlay source folder.
|
||||
``` bash
|
||||
//Windows
|
||||
.\install-dependencies.bat
|
||||
.\Tools\install-dependencies.bat
|
||||
|
||||
//Linux
|
||||
sudo apt install git gcc cmake build-essential libgl1-mesa-dev
|
||||
chmod +x install-dependencies.sh
|
||||
.\install-dependencies.sh
|
||||
.\Tools\install-dependencies.sh
|
||||
```
|
||||
* This will install these dependencies via __vcpkg__
|
||||
* openSSL 1.1.1d
|
||||
@ -27,7 +27,7 @@ chmod +x install-dependencies.sh
|
||||
7. Add CMake variables
|
||||
* Add CMAKE_TOOLCHAIN_FILE and VCPKG_TARGET_TRIPLET
|
||||
* Extras -> Tools -> Kits -> <Your Kit> -> CMake Configuration -> Append this:
|
||||
* CMAKE_TOOLCHAIN_FILE:STRING=%{CurrentProject:Path}/Common/vcpkg/scripts/buildsystems/vcpkg.cmake
|
||||
* CMAKE_TOOLCHAIN_FILE:STRING=%{CurrentProject:Path}/../ScreenPlay-vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake
|
||||
* VCPKG_TARGET_TRIPLET:STRING=x64-windows
|
||||
* or Linux: x64-linux MacOSX: x64-osx
|
||||
|
||||
|
@ -7,7 +7,12 @@
|
||||
<br>
|
||||
|
||||
ScreenPlay [![pipeline status](https://gitlab.com/kelteseth/ScreenPlay/badges/master/pipeline.svg)](https://gitlab.com/kelteseth/ScreenPlay/-/commits/master) <br>
|
||||
Dev. Docs [![pipeline status](https://gitlab.com/kelteseth/ScreenPlayDeveloperDocs/badges/master/pipeline.svg)](https://gitlab.com/kelteseth/ScreenPlayDeveloperDocs/-/commits/master)
|
||||
Dev. Docs [![pipeline status](https://gitlab.com/kelteseth/ScreenPlayDeveloperDocs/badges/master/pipeline.svg)](https://gitlab.com/kelteseth/ScreenPlayDeveloperDocs/-/commits/master) <br><br>
|
||||
<a href="https://twitter.com/kelteseth">![Twitter Follow](https://img.shields.io/twitter/follow/kelteseth?style=for-the-badge)</a>
|
||||
<a href="https://www.reddit.com/r/ScreenPlayApp/">![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/screenplayapp?style=for-the-badge)</a>
|
||||
<a href="https://discord.com/invite/rUvjNSV?utm_source=Discord%20Widget&utm_medium=Connect">![Discord](https://img.shields.io/discord/516635043435773970?style=for-the-badge)</a>
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
ScreenPlay is an open source cross platform app for displaying Video Wallpaper, Widgets and AppDrawer. It is written in modern C++20/Qt5/QML. Binaries with workshop support are available for Windows and soon Linux & MacOSX via <a href="https://store.steampowered.com/about/">Steam</a>. Join our community:
|
||||
@ -16,7 +21,7 @@ ScreenPlay is an open source cross platform app for displaying Video Wallpaper,
|
||||
<!--<h4><a href="https://steamcommunity.com/app/672870/">Download ScreenPlay!</a></h4>-->
|
||||
<br>
|
||||
|
||||
![Preview](.gitlab/media/preview.mp4)
|
||||
![Preview](.gitlab/media/preview.gif)
|
||||
|
||||
<br> <h4><a href="https://kelteseth.gitlab.io/ScreenPlayDocs/wallpaper/wallpaper/">Wallpaper </a> and <a href="https://kelteseth.gitlab.io/ScreenPlayDocs/widgets/widgets/"> Widgets </a>Guide</h4>
|
||||
</div>
|
||||
|
@ -1,62 +1,61 @@
|
||||
project(ScreenPlay LANGUAGES CXX)
|
||||
project(ScreenPlay LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
find_package(
|
||||
Qt5
|
||||
COMPONENTS Quick
|
||||
QuickCompiler
|
||||
Widgets
|
||||
Gui
|
||||
WebEngine
|
||||
LinguistTools
|
||||
REQUIRED)
|
||||
Qt5
|
||||
COMPONENTS Quick QuickCompiler Widgets Gui WebEngine LinguistTools
|
||||
REQUIRED)
|
||||
|
||||
find_package(OpenSSL REQUIRED)
|
||||
find_package(benchmark CONFIG REQUIRED)
|
||||
find_package(doctest CONFIG REQUIRED)
|
||||
|
||||
if(WIN32)
|
||||
find_package(sentry CONFIG REQUIRED)
|
||||
find_package(sentry CONFIG REQUIRED)
|
||||
endif()
|
||||
|
||||
set(src main.cpp
|
||||
app.cpp
|
||||
../Common/qt-google-analytics/ganalytics.cpp
|
||||
src/globalvariables.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/projectsettingslistmodel.cpp
|
||||
src/screenplaymanager.cpp
|
||||
src/sdkconnection.cpp
|
||||
src/util.cpp
|
||||
src/create.cpp)
|
||||
set(src
|
||||
main.cpp
|
||||
app.cpp
|
||||
../Common/qt-google-analytics/ganalytics.cpp
|
||||
src/globalvariables.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/projectsettingslistmodel.cpp
|
||||
src/screenplaymanager.cpp
|
||||
src/sdkconnection.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/projectsettingslistmodel.h
|
||||
src/screenplaymanager.h
|
||||
src/sdkconnection.h
|
||||
src/util.h
|
||||
src/create.h)
|
||||
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/projectsettingslistmodel.h
|
||||
src/screenplaymanager.h
|
||||
src/sdkconnection.h
|
||||
src/util.h
|
||||
src/create.h)
|
||||
|
||||
set(l10n
|
||||
translations/ScreenPlay_de.ts
|
||||
@ -66,57 +65,52 @@ set(l10n
|
||||
translations/ScreenPlay_fr.ts
|
||||
translations/ScreenPlay_ko.ts
|
||||
translations/ScreenPlay_ru.ts
|
||||
translations/ScreenPlay_vi.ts
|
||||
)
|
||||
translations/ScreenPlay_vi.ts)
|
||||
|
||||
set_source_files_properties(${l10n} PROPERTIES OUTPUT_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/translations")
|
||||
qt5_add_translation(qmFiles ${l10n})
|
||||
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
|
||||
qt5_add_resources(qml qml.qrc resources.qrc)
|
||||
qt5_add_resources(qml qml.qrc Resources.qrc)
|
||||
else()
|
||||
qtquick_compiler_add_resources(qml qml.qrc resources.qrc)
|
||||
qtquick_compiler_add_resources(qml qml.qrc Resources.qrc)
|
||||
endif()
|
||||
|
||||
add_executable(${PROJECT_NAME} ${src} ${headers} ${resources} ${qml})
|
||||
|
||||
if(WIN32)
|
||||
# Icon
|
||||
target_sources(${PROJECT_NAME} PRIVATE ScreenPlay.rc)
|
||||
target_sources(${PROJECT_NAME} PRIVATE ScreenPlay.rc)
|
||||
|
||||
# Disable console window on Windows
|
||||
# https://stackoverflow.com/questions/8249028/how-do-i-keep-my-qt-c-program-from-opening-a-console-in-windows
|
||||
set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE true)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE "GIT_VERSION=${GIT_VERSION}")
|
||||
|
||||
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE "GIT_VERSION=${GIT_VERSION}")
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
Qt5::Quick
|
||||
Qt5::Gui
|
||||
Qt5::Widgets
|
||||
Qt5::Core
|
||||
Qt5::WebEngine
|
||||
ScreenPlaySDK
|
||||
)
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}
|
||||
PRIVATE Qt5::Quick
|
||||
Qt5::Gui
|
||||
Qt5::Widgets
|
||||
Qt5::Core
|
||||
Qt5::WebEngine
|
||||
ScreenPlaySDK
|
||||
benchmark::benchmark
|
||||
benchmark::benchmark_main
|
||||
doctest::doctest)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE sentry::sentry)
|
||||
endif()
|
||||
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
${QT_TELEMTRY_INCLUDE})
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${QT_TELEMTRY_INCLUDE})
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin/assets/fonts)
|
||||
configure_file(assets/fonts/NotoSansCJKkr-Regular.otf ${CMAKE_BINARY_DIR}/bin/assets/fonts COPYONLY)
|
||||
|
||||
# Copy ffmpeg. If the ffmpeg files are missing, start the
|
||||
# install_dependencies_XXX for your system!
|
||||
# Copy ffmpeg. If the ffmpeg files are missing, start the install_dependencies_XXX for your system!
|
||||
if(WIN32)
|
||||
|
||||
file(GLOB files "${CMAKE_CURRENT_SOURCE_DIR}/../Common/ffmpeg/*")
|
||||
@ -124,9 +118,11 @@ if(WIN32)
|
||||
configure_file(${filename} ${CMAKE_BINARY_DIR}/bin/ COPYONLY)
|
||||
endforeach()
|
||||
|
||||
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../Common/vcpkg/installed/x64-windows/tools/sentry-native/crashpad_handler.exe ${CMAKE_BINARY_DIR}/bin/ COPYONLY)
|
||||
configure_file(${VCPKG_INSTALLED_PATH}/tools/sentry-native/crashpad_handler.exe ${CMAKE_BINARY_DIR}/bin/ COPYONLY)
|
||||
elseif(APPLE)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../Common/ffmpeg/ffmpeg ${CMAKE_BINARY_DIR}/bin/ COPYONLY)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../Common/ffmpeg/ffprobe ${CMAKE_BINARY_DIR}/bin/ COPYONLY)
|
||||
# cmake-format: off
|
||||
# Auto ffmpeg download missing for osx
|
||||
#configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../Common/ffmpeg/ffmpeg ${CMAKE_BINARY_DIR}/bin/ COPYONLY)
|
||||
#configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../Common/ffmpeg/ffprobe ${CMAKE_BINARY_DIR}/bin/ COPYONLY)
|
||||
# cmake-format: on
|
||||
endif()
|
||||
|
@ -116,5 +116,6 @@
|
||||
<file>translations/ScreenPlay_ko.qm</file>
|
||||
<file>translations/ScreenPlay_ru.qm</file>
|
||||
<file>translations/ScreenPlay_vi.qm</file>
|
||||
<file>assets/icons/monitor_setup.svg</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@ -43,6 +43,9 @@ namespace ScreenPlay {
|
||||
App::App()
|
||||
: QObject(nullptr)
|
||||
{
|
||||
|
||||
m_continuousIntegrationMetricsTimer.start();
|
||||
|
||||
QGuiApplication::setWindowIcon(QIcon(":/assets/icons/app.ico"));
|
||||
QGuiApplication::setOrganizationName("ScreenPlay");
|
||||
QGuiApplication::setOrganizationDomain("screen-play.app");
|
||||
@ -120,6 +123,7 @@ App::App()
|
||||
// ScreenPlayManager first to check if another ScreenPlay Instace is running
|
||||
m_screenPlayManager = std::make_unique<ScreenPlayManager>();
|
||||
m_isAnotherScreenPlayInstanceRunning = m_screenPlayManager->isAnotherScreenPlayInstanceRunning();
|
||||
Util::appendToMetricsFile("screenplay_app_constructor", m_continuousIntegrationMetricsTimer.msecsSinceReference());
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -130,6 +134,9 @@ App::App()
|
||||
*/
|
||||
void App::init()
|
||||
{
|
||||
|
||||
Util::appendToMetricsFile("screenplay_app_init", m_continuousIntegrationMetricsTimer.msecsSinceReference());
|
||||
|
||||
using std::make_shared, std::make_unique;
|
||||
|
||||
// Util should be created as first so we redirect qDebugs etc. into the log
|
||||
@ -173,7 +180,7 @@ void App::init()
|
||||
m_settings->setupLanguage();
|
||||
|
||||
QObject::connect(m_globalVariables.get(), &GlobalVariables::localStoragePathChanged, this, [this](QUrl localStoragePath) {
|
||||
m_settings->resetInstalledListmodel();
|
||||
emit m_settings->resetInstalledListmodel();
|
||||
m_settings->setqSetting("ScreenPlayContentPath", localStoragePath.toString());
|
||||
});
|
||||
QObject::connect(m_monitorListModel.get(), &MonitorListModel::monitorConfigurationChanged, m_screenPlayManager.get(), &ScreenPlayManager::closeAllWallpapers);
|
||||
@ -187,9 +194,9 @@ void App::init()
|
||||
}
|
||||
|
||||
qmlRegisterSingletonInstance("ScreenPlay", 1, 0, "ScreenPlay", this);
|
||||
loadSteamPlugin();
|
||||
|
||||
Util::appendToMetricsFile("Screenplay_app_qqmlapplicationengine_load_begin", m_continuousIntegrationMetricsTimer.msecsSinceReference());
|
||||
m_mainWindowEngine->load(QUrl(QStringLiteral("qrc:/main.qml")));
|
||||
Util::appendToMetricsFile("Screenplay_app_qqmlapplicationengine_load_end", m_continuousIntegrationMetricsTimer.msecsSinceReference());
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -208,18 +215,22 @@ void App::exit()
|
||||
}
|
||||
}
|
||||
|
||||
void App::loadSteamPlugin()
|
||||
bool App::loadSteamPlugin()
|
||||
{
|
||||
|
||||
#ifdef Q_OS_MACOS
|
||||
const QString fileSuffix = ".dylib";
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
#ifdef QT_NO_DEBUG
|
||||
const QString fileSuffix = ".dll";
|
||||
#else
|
||||
const QString fileSuffix = "d.dll";
|
||||
#endif
|
||||
#else
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_LINUX
|
||||
const QString fileSuffix = ".so";
|
||||
#endif
|
||||
|
||||
@ -228,9 +239,12 @@ void App::loadSteamPlugin()
|
||||
if (!m_workshopPlugin.load()) {
|
||||
qWarning() << "Steam plugin not provided!";
|
||||
qWarning() << m_workshopPlugin.fileName() << " - With error: " << m_workshopPlugin.errorString();
|
||||
return false;
|
||||
}
|
||||
|
||||
const ScreenPlayWorkshopPlugin* workshopPlugin = reinterpret_cast<ScreenPlayWorkshopPlugin*>(m_workshopPlugin.instance());
|
||||
Q_UNUSED(workshopPlugin)
|
||||
settings()->setSteamVersion(true);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -35,6 +35,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <QDir>
|
||||
#include <QElapsedTimer>
|
||||
#include <QIcon>
|
||||
#include <QObject>
|
||||
#include <QQmlApplicationEngine>
|
||||
@ -153,6 +154,7 @@ signals:
|
||||
public slots:
|
||||
|
||||
void exit();
|
||||
bool loadSteamPlugin();
|
||||
void setTrackerSendEvent(const QString& category, const QString& page)
|
||||
{
|
||||
if (m_telemetry) {
|
||||
@ -248,12 +250,10 @@ public slots:
|
||||
emit mainWindowEngineChanged(m_mainWindowEngine.get());
|
||||
}
|
||||
|
||||
private:
|
||||
void loadSteamPlugin();
|
||||
|
||||
private:
|
||||
QPluginLoader m_workshopPlugin;
|
||||
QNetworkAccessManager m_networkAccessManager;
|
||||
QElapsedTimer m_continuousIntegrationMetricsTimer;
|
||||
std::unique_ptr<QQmlApplicationEngine> m_mainWindowEngine;
|
||||
|
||||
std::unique_ptr<Create> m_create;
|
||||
|
62
ScreenPlay/assets/icons/monitor_setup.svg
Normal file
62
ScreenPlay/assets/icons/monitor_setup.svg
Normal file
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 508 508" style="enable-background:new 0 0 508 508;" xml:space="preserve">
|
||||
<circle style="fill:#324A5E;" cx="254" cy="254" r="254"/>
|
||||
<polygon style="fill:#FFFFFF;" points="206,346 194,404.4 314,404.4 302,346 "/>
|
||||
<polygon style="fill:#E6E9EE;" points="306.8,369.6 302,346 206,346 201.2,369.6 "/>
|
||||
<path style="fill:#FFFFFF;" d="M411.2,352.8H96.8c-9.6,0-17.6-8-17.6-17.6V142.8c0-9.6,8-17.6,17.6-17.6h314.4
|
||||
c9.6,0,17.6,8,17.6,17.6v192.4C428.8,344.8,420.8,352.8,411.2,352.8z"/>
|
||||
<path style="fill:#E6E9EE;" d="M164.4,418.4v-10.8c0-5.2,4-9.2,9.2-9.2H334c5.2,0,9.2,4,9.2,9.2v10.8c0,5.2-4,9.2-9.2,9.2H173.6
|
||||
C168.8,427.6,164.4,423.6,164.4,418.4z"/>
|
||||
<rect x="96" y="143.6" style="fill:#54C0EB;" width="316.4" height="172.4"/>
|
||||
<circle style="fill:#E6E9EE;" cx="254" cy="334.4" r="10.4"/>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M281.6,228.8l-9.2-4.4c0.8-4.8,0.4-9.2-0.4-13.6l8.8-4.8c1.6-0.8,2.4-3.2,1.6-5.2l-4-9.2
|
||||
c-0.8-2-2.8-2.8-4.8-2l-9.6,3.2c-2.8-3.6-6-6.8-10-9.6l2.8-9.6c0.4-2-0.4-4-2.4-4.8l-8.4-4c-2-0.8-4,0-4.8,2l-4.4,9.2
|
||||
c-4.8-0.8-9.2-0.4-13.6,0.4l-4.8-8.8c-0.8-1.6-3.2-2.4-5.2-1.6l-9.2,4c-2,0.8-2.8,2.8-2,4.8l3.2,9.6c-3.6,2.8-6.8,6-9.6,10
|
||||
l-9.6-2.8c-2-0.4-4,0.4-4.8,2.4l-3.6,9.2c-0.8,2,0,4,2,4.8l9.2,4.4c-0.8,4.8-0.4,9.2,0.4,13.6l-8.8,4.8c-1.6,0.8-2.4,3.2-1.6,5.2
|
||||
l4,9.2c0.8,2,2.8,2.8,4.8,2l9.6-3.2c2.8,3.6,6,6.8,10,9.6l-2.8,9.6c-0.4,2,0.4,4,2.4,4.8l9.2,3.6c2,0.8,4,0,4.8-2l4.4-9.2
|
||||
c4.8,0.8,9.2,0.4,13.6-0.4l4.8,8.8c0.8,1.6,3.2,2.4,5.2,1.6l9.2-4c2-0.8,2.8-2.8,2-4.8l-3.2-9.6c3.6-2.8,6.8-6,9.6-10l9.6,2.8
|
||||
c2,0.4,4-0.4,4.8-2.4l3.6-9.2C284.4,232,283.6,230,281.6,228.8z M220.8,241.2c-12.8-5.2-19.2-19.6-14-32.4s19.6-19.2,32.4-14
|
||||
s19.2,19.6,14,32.4C248.4,240,233.6,246.4,220.8,241.2z"/>
|
||||
<path style="fill:#FFFFFF;" d="M330.4,271.6l-4.8-2.4c0.4-2.4,0-4.8-0.4-7.2l4.8-2.8c0.8-0.4,1.2-1.6,0.8-2.8l-2.4-4.8
|
||||
c-0.4-0.8-1.6-1.6-2.8-1.2l-5.2,2c-1.6-2-3.2-3.6-5.6-5.2l1.2-5.2c0.4-1.2-0.4-2-1.2-2.4l-5.2-2c-1.2-0.4-2,0-2.8,1.2l-2.4,4.8
|
||||
c-2.4-0.4-4.8,0-7.2,0.4l-2.8-4.8c-0.4-0.8-1.6-1.2-2.8-0.8l-4.8,2.4c-0.8,0.4-1.6,1.6-1.2,2.8l2,5.2c-2,1.6-3.6,3.2-5.2,5.6
|
||||
l-4.4-2c-1.2-0.4-2,0.4-2.4,1.2l-2,5.2c-0.4,1.2,0,2,1.2,2.8l4.8,2.4c-0.4,2.4,0,4.8,0.4,7.2l-4.8,2.8c-0.8,0.4-1.2,1.6-0.8,2.8
|
||||
l2.4,4.8c0.4,0.8,1.6,1.6,2.8,1.2l5.2-2c1.6,2,3.2,3.6,5.6,5.2l-1.2,5.2c-0.4,1.2,0.4,2,1.2,2.4l5.2,2c1.2,0.4,2,0,2.8-1.2l2.4-4.8
|
||||
c2.4,0.4,4.8,0,7.2-0.4l2.8,4.8c0.4,0.8,1.6,1.2,2.8,0.8l4.8-2.4c0.8-0.4,1.6-1.6,1.2-2.8l-2-5.2c2-1.6,3.6-3.2,5.2-5.6l5.2,1.2
|
||||
c1.2,0.4,2-0.4,2.4-1.2l2-5.2C332,273.2,331.6,272,330.4,271.6z M298,278.8c-6.8-2.4-10.4-10.4-8-17.2c2.4-6.8,10.4-10.4,17.2-8
|
||||
c6.8,2.4,10.4,10.4,8,17.2C312.8,278,304.8,281.6,298,278.8z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
@ -34,10 +34,15 @@
|
||||
|
||||
#include "app.h"
|
||||
#include <QApplication>
|
||||
#include <QCommandLineParser>
|
||||
#include <QDebug>
|
||||
#ifdef Q_OS_WIN
|
||||
#include <sentry.h>
|
||||
#endif
|
||||
#define DOCTEST_CONFIG_IMPLEMENT
|
||||
#define DOCTEST_CONFIG_SUPER_FAST_ASSERTS
|
||||
#include <doctest/doctest.h>
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
|
||||
@ -52,6 +57,29 @@ int main(int argc, char* argv[])
|
||||
|
||||
QApplication qtGuiApp(argc, argv);
|
||||
|
||||
// Benchmarks
|
||||
if (QGuiApplication::arguments().contains("--benchmark")) {
|
||||
QFile metricsFile { QGuiApplication::applicationDirPath() + "/metrics.txt" };
|
||||
if (metricsFile.exists())
|
||||
qInfo() << "Removing old Continuous Integration Metrics Timer: " << metricsFile.remove();
|
||||
|
||||
QTimer::singleShot(10000, []() {
|
||||
qInfo() << "Exit ScreenPlay benchmark mode!";
|
||||
QGuiApplication::quit();
|
||||
});
|
||||
}
|
||||
|
||||
// Unit tests
|
||||
doctest::Context context;
|
||||
context.setOption("abort-after", 5); // stop test execution after 5 failed assertions
|
||||
context.setOption("order-by", "name"); // sort the test cases by their name
|
||||
context.setOption("no-breaks", true); // don't break in the debugger when assertions fail
|
||||
context.setOption("no-run", true); // No tests are executed by default
|
||||
context.applyCommandLine(argc, argv); // Every setOption call after applyCommandLine overrides the command line arguments
|
||||
const int testResult = context.run();
|
||||
if (context.shouldExit())
|
||||
return testResult;
|
||||
|
||||
ScreenPlay::App app;
|
||||
|
||||
if (app.m_isAnotherScreenPlayInstanceRunning) {
|
||||
|
@ -90,12 +90,18 @@ ApplicationWindow {
|
||||
pageLoaderWorkshop.visible = false
|
||||
pageLoaderCreate.setSource("qrc:/qml/Create/Create.qml")
|
||||
} else if (name === "Workshop") {
|
||||
if (ScreenPlay.settings.steamVersion) {
|
||||
pageLoader.visible = false
|
||||
pageLoaderCreate.visible = false
|
||||
pageLoaderWorkshop.visible = true
|
||||
pageLoaderWorkshop.setSource("qrc:/qml/Workshop/Workshop.qml")
|
||||
if (!ScreenPlay.settings.steamVersion) {
|
||||
const steamAvialable = ScreenPlay.loadSteamPlugin()
|
||||
if (!steamAvialable) {
|
||||
dialogSteam.open()
|
||||
switchPage("Installed")
|
||||
return
|
||||
}
|
||||
}
|
||||
pageLoader.visible = false
|
||||
pageLoaderCreate.visible = false
|
||||
pageLoaderWorkshop.visible = true
|
||||
pageLoaderWorkshop.setSource("qrc:/qml/Workshop/Workshop.qml")
|
||||
} else if (name === "Community") {
|
||||
pageLoader.visible = true
|
||||
pageLoaderCreate.visible = false
|
||||
@ -111,8 +117,59 @@ ApplicationWindow {
|
||||
sidebar.state = "inactive"
|
||||
}
|
||||
|
||||
Dialog {
|
||||
id: dialogSteam
|
||||
modal: true
|
||||
anchors.centerIn: Overlay.overlay
|
||||
standardButtons: Dialog.Ok
|
||||
title: qsTr("Could not load steam integration!")
|
||||
}
|
||||
|
||||
Dialog {
|
||||
id: dialogMonitorConfigurationChanged
|
||||
modal: true
|
||||
anchors.centerIn: Overlay.overlay
|
||||
standardButtons: Dialog.Ok
|
||||
contentHeight: 250
|
||||
|
||||
contentItem: Item {
|
||||
ColumnLayout {
|
||||
|
||||
anchors.margins: 20
|
||||
anchors.fill: parent
|
||||
spacing: 20
|
||||
|
||||
Image {
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
Layout.preferredWidth: 150
|
||||
Layout.preferredHeight: 150
|
||||
source: "qrc:/assets/icons/monitor_setup.svg"
|
||||
fillMode: Image.PreserveAspectFit
|
||||
}
|
||||
|
||||
Text {
|
||||
text: qsTr("Your monitor setup changed!\n Please configure your wallpaper again.")
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
font.family: ScreenPlay.settings.font
|
||||
font.pointSize: 16
|
||||
color: Material.primaryTextColor
|
||||
}
|
||||
}
|
||||
}
|
||||
Connections {
|
||||
target: ScreenPlay.monitorListModel
|
||||
function onMonitorConfigurationChanged() {
|
||||
dialogMonitorConfigurationChanged.open()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Common.TrayIcon {}
|
||||
|
||||
|
||||
Loader {
|
||||
id: pageLoader
|
||||
asynchronous: true
|
||||
|
@ -10,7 +10,7 @@ import ScreenPlay.Enums.InstalledType 1.0
|
||||
import ScreenPlay.Enums.SearchType 1.0
|
||||
|
||||
Item {
|
||||
id: pageInstalled
|
||||
id: root
|
||||
|
||||
signal setNavigationItem(var pos)
|
||||
signal setSidebarActive(var active)
|
||||
@ -81,7 +81,7 @@ Item {
|
||||
cellWidth: 340
|
||||
cellHeight: 200
|
||||
cacheBuffer: 160
|
||||
interactive: pageInstalled.enabled
|
||||
interactive: root.enabled
|
||||
snapMode: GridView.SnapToRow
|
||||
anchors {
|
||||
topMargin: 0
|
||||
@ -191,8 +191,14 @@ Item {
|
||||
contextMenu.workshopID = delegate.workshopID
|
||||
contextMenu.absoluteStoragePath = delegate.absoluteStoragePath
|
||||
|
||||
const pos = delegate.mapToItem(pageInstalled, position.x,
|
||||
position.y)
|
||||
deleteDialog.currentItemIndex = itemIndex
|
||||
|
||||
const pos = delegate.mapToItem(root, position.x, position.y)
|
||||
|
||||
// Disable duplicate opening. The can happen if we
|
||||
// call popup when we are in the closing animtion.
|
||||
if (contextMenu.visible || contextMenu.opened)
|
||||
return
|
||||
|
||||
contextMenu.popup(pos.x, pos.y)
|
||||
}
|
||||
@ -206,6 +212,7 @@ Item {
|
||||
id: contextMenu
|
||||
property int workshopID: 0
|
||||
property url absoluteStoragePath
|
||||
|
||||
MenuItem {
|
||||
text: qsTr("Open containing folder")
|
||||
icon.source: "qrc:/assets/icons/icon_folder_open.svg"
|
||||
@ -235,14 +242,15 @@ Item {
|
||||
}
|
||||
Dialog {
|
||||
id: deleteDialog
|
||||
title: "Are you sure you want to delete this item?"
|
||||
title: qsTr("Are you sure you want to delete this item?")
|
||||
standardButtons: Dialog.Ok | Dialog.Cancel
|
||||
modal: true
|
||||
dim: true
|
||||
anchors.centerIn: Overlay.overlay
|
||||
property int currentItemIndex: 0
|
||||
|
||||
onAccepted: ScreenPlay.installedListModel.deinstallItemAt(
|
||||
screenPlayItem.itemIndex)
|
||||
currentItemIndex)
|
||||
}
|
||||
|
||||
Navigation {
|
||||
|
@ -85,7 +85,6 @@ Rectangle {
|
||||
id: navWorkshop
|
||||
state: "inactive"
|
||||
name: "Workshop"
|
||||
enabled: ScreenPlay.settings.steamVersion
|
||||
iconSource: "qrc:/assets/icons/icon_steam.svg"
|
||||
onPageClicked: navigation.onPageChanged(name)
|
||||
}
|
||||
|
@ -234,7 +234,7 @@ void Create::createWallpaperStart(QString videoPath, Create::VideoCodec codec)
|
||||
codecs.append("vp9");
|
||||
}
|
||||
|
||||
m_createImportVideoThread = new QThread();
|
||||
m_createImportVideoThread = new QThread(this);
|
||||
m_createImportVideo = new CreateImportVideo(videoPath, workingDir(), codecs);
|
||||
connect(m_createImportVideo, &CreateImportVideo::processOutput, this, [this](QString text) {
|
||||
appendFfmpegOutput(text + "\n");
|
||||
@ -328,7 +328,7 @@ void Create::saveWallpaper(QString title, QString description, QString filePath,
|
||||
obj.insert("type", "videoWallpaper");
|
||||
|
||||
QJsonArray tagsJsonArray;
|
||||
for (const QString &tmp : tags) {
|
||||
for (const QString& tmp : tags) {
|
||||
tagsJsonArray.append(tmp);
|
||||
}
|
||||
obj.insert("tags", tagsJsonArray);
|
||||
|
@ -60,10 +60,6 @@ class CreateImportVideo : public QObject {
|
||||
|
||||
public:
|
||||
CreateImportVideo() { }
|
||||
~CreateImportVideo()
|
||||
{
|
||||
qDebug() << "CreateImportVideo";
|
||||
}
|
||||
CreateImportVideo(QObject* parent = nullptr);
|
||||
explicit CreateImportVideo(const QString& videoPath, const QString& exportPath, const QStringList& codecs, QObject* parent = nullptr);
|
||||
|
||||
|
@ -96,7 +96,7 @@ public:
|
||||
}
|
||||
|
||||
public slots:
|
||||
QVariantMap get(const QString &folderId) const;
|
||||
QVariantMap get(const QString& folderId) const;
|
||||
|
||||
void loadInstalledContent();
|
||||
void append(const QJsonObject&, const QString&);
|
||||
|
@ -148,7 +148,7 @@ void MonitorListModel::loadMonitors()
|
||||
}
|
||||
}
|
||||
|
||||
beginInsertRows(QModelIndex(), 0, rowCount());
|
||||
QModelIndex index;
|
||||
for (int i = 0; i < QApplication::screens().count(); i++) {
|
||||
QScreen* screen = QApplication::screens().at(i);
|
||||
|
||||
@ -161,9 +161,11 @@ void MonitorListModel::loadMonitors()
|
||||
screen->geometry().y() + offsetY,
|
||||
screen->geometry().width(),
|
||||
screen->geometry().height());
|
||||
|
||||
beginInsertRows(index, m_monitorList.size(), m_monitorList.size());
|
||||
m_monitorList.append(Monitor { i, availableVirtualGeometry, screen });
|
||||
endInsertRows();
|
||||
}
|
||||
endInsertRows();
|
||||
|
||||
emit monitorReloadCompleted();
|
||||
}
|
||||
@ -216,7 +218,7 @@ void MonitorListModel::closeWallpaper(const QString& appID)
|
||||
*/
|
||||
QRect MonitorListModel::getAbsoluteDesktopSize() const
|
||||
{
|
||||
auto* app = static_cast<QApplication*>(QApplication::instance());
|
||||
auto* app = static_cast<QApplication*>(QGuiApplication::instance());
|
||||
return app->screens().at(0)->availableVirtualGeometry();
|
||||
}
|
||||
|
||||
|
@ -117,13 +117,11 @@ public slots:
|
||||
|
||||
void screenAdded(QScreen* screen)
|
||||
{
|
||||
qDebug() << "screenAdded" << screen->geometry() << m_monitorList.size();
|
||||
emit monitorConfigurationChanged();
|
||||
reset();
|
||||
}
|
||||
void screenRemoved(QScreen* screen)
|
||||
{
|
||||
qDebug() << "screenRemoved" << screen->geometry() << m_monitorList.size();
|
||||
emit monitorConfigurationChanged();
|
||||
reset();
|
||||
}
|
||||
|
@ -37,7 +37,6 @@
|
||||
#include <QString>
|
||||
#include <QUrl>
|
||||
|
||||
|
||||
namespace ScreenPlay {
|
||||
|
||||
/*!
|
||||
@ -49,7 +48,7 @@ namespace ScreenPlay {
|
||||
*/
|
||||
struct Profile {
|
||||
|
||||
Profile() {}
|
||||
Profile() { }
|
||||
Profile(const QUrl& absolutePath,
|
||||
const QString& id,
|
||||
const QString& version,
|
||||
|
@ -60,7 +60,7 @@ public:
|
||||
QVariant m_value;
|
||||
virtual QJsonObject getItemSettings() = 0;
|
||||
public slots:
|
||||
virtual void setData(const QJsonObject& obj){}
|
||||
virtual void setData(const QJsonObject& obj) { }
|
||||
};
|
||||
|
||||
struct SliderItem : public IListItem {
|
||||
|
@ -1,5 +1,6 @@
|
||||
#include "screenplaymanager.h"
|
||||
#include <QScopeGuard>
|
||||
#include <doctest/doctest.h>
|
||||
|
||||
namespace ScreenPlay {
|
||||
|
||||
@ -18,7 +19,6 @@ namespace ScreenPlay {
|
||||
ScreenPlayManager::ScreenPlayManager(
|
||||
QObject* parent)
|
||||
: QObject { parent }
|
||||
|
||||
, m_server { std::make_unique<QLocalServer>() }
|
||||
{
|
||||
|
||||
@ -280,14 +280,13 @@ bool ScreenPlayManager::removeWallpaperAt(int index)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ScreenPlayManager::removeApp(const QString &appID)
|
||||
bool ScreenPlayManager::removeApp(const QString& appID)
|
||||
{
|
||||
emit requestSaveProfiles();
|
||||
|
||||
if (!closeConnection(appID)) {
|
||||
qWarning() << "Could not close socket. Abort!";
|
||||
return false;
|
||||
}
|
||||
|
||||
m_monitorListModel->closeWallpaper(appID);
|
||||
|
||||
const QString appIDCopy = appID;
|
||||
@ -389,7 +388,11 @@ void ScreenPlayManager::newConnection()
|
||||
*/
|
||||
void ScreenPlayManager::closeAllWallpapers()
|
||||
{
|
||||
if(m_screenPlayWallpapers.empty() && m_activeWallpaperCounter == 0)
|
||||
return;
|
||||
|
||||
closeConntectionByType(GlobalVariables::getAvailableWallpaper());
|
||||
setActiveWallpaperCounter(0);
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -402,20 +405,29 @@ void ScreenPlayManager::closeAllWallpapers()
|
||||
*/
|
||||
void ScreenPlayManager::closeAllWidgets()
|
||||
{
|
||||
if(m_screenPlayWidgets.empty() && m_activeWidgetsCounter == 0)
|
||||
return;
|
||||
|
||||
closeConntectionByType(GlobalVariables::getAvailableWidgets());
|
||||
setActiveWidgetsCounter(0);
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Closes a connection by type. Used only by closeAllWidgets() and closeAllWallpapers()
|
||||
*/
|
||||
void ScreenPlayManager::closeConntectionByType(const QStringList& types)
|
||||
bool ScreenPlayManager::closeConntectionByType(const QStringList& types)
|
||||
{
|
||||
if (m_clients.isEmpty())
|
||||
return true;
|
||||
|
||||
for (auto& client : m_clients) {
|
||||
if (types.contains(client->type(), Qt::CaseInsensitive)) {
|
||||
client->close();
|
||||
m_clients.removeOne(client);
|
||||
return m_clients.removeOne(client);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*!
|
||||
@ -423,6 +435,9 @@ void ScreenPlayManager::closeConntectionByType(const QStringList& types)
|
||||
*/
|
||||
bool ScreenPlayManager::closeConnection(const QString& appID)
|
||||
{
|
||||
if (m_clients.isEmpty())
|
||||
return true;
|
||||
|
||||
for (auto& client : m_clients) {
|
||||
if (client->appID() == appID) {
|
||||
client->close();
|
||||
@ -502,7 +517,6 @@ bool ScreenPlayManager::removeWallpaperByAppID(const QString& appID)
|
||||
*/
|
||||
void ScreenPlayManager::loadProfiles()
|
||||
{
|
||||
|
||||
auto configObj = Util::openJsonFileToObject(m_globalVariables->localSettingsPath().toString() + "/profiles.json");
|
||||
|
||||
if (!configObj) {
|
||||
@ -593,4 +607,10 @@ void ScreenPlayManager::loadProfiles()
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("Loads profiles.json")
|
||||
{
|
||||
GlobalVariables globalVariables;
|
||||
ScreenPlayManager manager;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -95,6 +95,8 @@ signals:
|
||||
void requestRaise();
|
||||
void profilesSaved();
|
||||
|
||||
void monitorConfigurationChanged();
|
||||
|
||||
private slots:
|
||||
void saveProfiles();
|
||||
|
||||
@ -133,7 +135,7 @@ public slots:
|
||||
void newConnection();
|
||||
void closeAllWallpapers();
|
||||
void closeAllWidgets();
|
||||
void closeConntectionByType(const QStringList& types);
|
||||
bool closeConntectionByType(const QStringList& types);
|
||||
bool closeConnection(const QString& appID);
|
||||
void setWallpaperValue(const QString& appID, const QString& key, const QString& value);
|
||||
|
||||
|
@ -248,6 +248,30 @@ public slots:
|
||||
|
||||
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);
|
||||
}
|
||||
@ -383,7 +407,7 @@ private:
|
||||
const std::shared_ptr<GlobalVariables>& m_globalVariables;
|
||||
|
||||
bool m_autostart { true };
|
||||
bool m_highPriorityStart { true };
|
||||
bool m_highPriorityStart { false };
|
||||
bool m_offlineMode { true };
|
||||
bool m_checkWallpaperVisible { false };
|
||||
bool m_silentStart { false };
|
||||
|
@ -168,13 +168,34 @@ QString Util::toString(const QStringList& list)
|
||||
return out;
|
||||
}
|
||||
|
||||
void Util::appendToMetricsFile(const QString& key, const QVariant& value)
|
||||
{
|
||||
if (!QGuiApplication::arguments().contains("--benchmark"))
|
||||
return;
|
||||
|
||||
const QString appDir = QGuiApplication::applicationDirPath();
|
||||
QFile metricsFile { appDir + "/metrics.txt" };
|
||||
|
||||
if (!metricsFile.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) {
|
||||
qWarning() << "Cannot open metrix file:" << appDir << metricsFile.fileName();
|
||||
return;
|
||||
}
|
||||
|
||||
QString text = key + "\t" + value.toString() + "\n";
|
||||
QTextStream out(&metricsFile);
|
||||
out << text;
|
||||
|
||||
metricsFile.flush();
|
||||
metricsFile.close();
|
||||
}
|
||||
|
||||
/*!
|
||||
\brief Parses a QByteArray to a QJsonObject. If returns and std::nullopt on failure.
|
||||
*/
|
||||
std::optional<QJsonObject> Util::parseQByteArrayToQJsonObject(const QByteArray& byteArray)
|
||||
{
|
||||
QJsonObject obj;
|
||||
QJsonParseError err;
|
||||
QJsonParseError err {};
|
||||
QJsonDocument doc = QJsonDocument::fromJson(byteArray, &err);
|
||||
|
||||
if (err.error == QJsonParseError::NoError) {
|
||||
|
@ -59,7 +59,6 @@
|
||||
|
||||
#include "globalvariables.h"
|
||||
|
||||
|
||||
namespace ScreenPlay {
|
||||
|
||||
template <typename T>
|
||||
@ -114,6 +113,7 @@ public slots:
|
||||
static std::optional<QVersionNumber> getVersionNumberFromString(const QString& str);
|
||||
static bool writeJsonObjectToFile(const QString& absoluteFilePath, const QJsonObject& object, bool truncate = true);
|
||||
static QString toString(const QStringList& list);
|
||||
static void appendToMetricsFile(const QString& key, const QVariant& value);
|
||||
|
||||
static void logToGui(QtMsgType type, const QMessageLogContext& context, const QString& msg);
|
||||
static QString generateRandomString(quint32 length = 32);
|
||||
@ -144,7 +144,6 @@ public slots:
|
||||
emit debugMessagesChanged(m_debugMessages);
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
QNetworkAccessManager* m_networkAccessManager { nullptr };
|
||||
|
||||
|
@ -747,20 +747,25 @@ wenn Sie ScreenPlay über Steam! installiert haben
|
||||
<translation type="unfinished">Holen dir mehr Wallpaper und Widgets über den Steam-Workshop!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="210"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="217"/>
|
||||
<source>Open containing folder</source>
|
||||
<translation type="unfinished">Enthaltenden Ordner öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="218"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="225"/>
|
||||
<source>Deinstall Item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="227"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="234"/>
|
||||
<source>Open workshop Page</source>
|
||||
<translation type="unfinished">Workshop-Seite öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="245"/>
|
||||
<source>Are you sure you want to delete this item?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>All</source>
|
||||
<translation type="obsolete">Alles</translation>
|
||||
@ -1289,52 +1294,52 @@ wenn Sie ScreenPlay über Steam! installiert haben
|
||||
<translation type="obsolete">Wallpaper erstellen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source>Project size: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source> MB</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="95"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="97"/>
|
||||
<source>No description...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="237"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="239"/>
|
||||
<source>Click here if you like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="251"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="253"/>
|
||||
<source>Click here if you do not like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="286"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="288"/>
|
||||
<source>Tags: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="313"/>
|
||||
<source>Subscribtions: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="319"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribe</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2029,82 +2034,82 @@ wenn Sie ScreenPlay über Steam! installiert haben
|
||||
<context>
|
||||
<name>Workshop</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="151"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="133"/>
|
||||
<source>Loading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="162"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="144"/>
|
||||
<source>Download now!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="167"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="149"/>
|
||||
<source>Downloading...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="174"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="156"/>
|
||||
<source>Details</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="198"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="178"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="260"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="252"/>
|
||||
<source>Search for Wallpaper and Widgets...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="296"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="288"/>
|
||||
<source>Ranked By Vote</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="299"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="291"/>
|
||||
<source>Publication Date</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="302"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="294"/>
|
||||
<source>Ranked By Trend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="305"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="297"/>
|
||||
<source>Favorited By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="308"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="300"/>
|
||||
<source>Created By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="303"/>
|
||||
<source>Created By Followed Users</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="314"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="306"/>
|
||||
<source>Not Yet Rated</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="309"/>
|
||||
<source>Total VotesAsc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="320"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="312"/>
|
||||
<source>Votes Up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="323"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="315"/>
|
||||
<source>Total Unique Subscriptions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2112,17 +2117,17 @@ wenn Sie ScreenPlay über Steam! installiert haben
|
||||
<context>
|
||||
<name>WorkshopItem</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="185"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="184"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="303"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="302"/>
|
||||
<source>Successfully subscribed to Workshop Item!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="413"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="412"/>
|
||||
<source>Download complete!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -501,20 +501,25 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="210"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="217"/>
|
||||
<source>Open containing folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="218"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="225"/>
|
||||
<source>Deinstall Item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="227"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="234"/>
|
||||
<source>Open workshop Page</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="245"/>
|
||||
<source>Are you sure you want to delete this item?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="329"/>
|
||||
<source></source>
|
||||
@ -984,52 +989,52 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source>Project size: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source> MB</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="95"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="97"/>
|
||||
<source>No description...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="237"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="239"/>
|
||||
<source>Click here if you like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="251"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="253"/>
|
||||
<source>Click here if you do not like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="286"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="288"/>
|
||||
<source>Tags: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="313"/>
|
||||
<source>Subscribtions: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="319"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribe</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -1724,82 +1729,82 @@
|
||||
<context>
|
||||
<name>Workshop</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="151"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="133"/>
|
||||
<source>Loading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="162"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="144"/>
|
||||
<source>Download now!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="167"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="149"/>
|
||||
<source>Downloading...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="174"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="156"/>
|
||||
<source>Details</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="198"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="178"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="260"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="252"/>
|
||||
<source>Search for Wallpaper and Widgets...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="296"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="288"/>
|
||||
<source>Ranked By Vote</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="299"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="291"/>
|
||||
<source>Publication Date</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="302"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="294"/>
|
||||
<source>Ranked By Trend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="305"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="297"/>
|
||||
<source>Favorited By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="308"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="300"/>
|
||||
<source>Created By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="303"/>
|
||||
<source>Created By Followed Users</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="314"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="306"/>
|
||||
<source>Not Yet Rated</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="309"/>
|
||||
<source>Total VotesAsc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="320"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="312"/>
|
||||
<source>Votes Up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="323"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="315"/>
|
||||
<source>Total Unique Subscriptions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -1807,17 +1812,17 @@
|
||||
<context>
|
||||
<name>WorkshopItem</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="185"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="184"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="303"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="302"/>
|
||||
<source>Successfully subscribed to Workshop Item!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="413"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="412"/>
|
||||
<source>Download complete!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -743,20 +743,25 @@ si instaló ScreenPlay vía Steam!
|
||||
<translation type="unfinished">Consiga más fondos de pantalla y widgets a través del taller Steam!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="210"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="217"/>
|
||||
<source>Open containing folder</source>
|
||||
<translation type="unfinished">Abrir la carpeta que contiene</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="218"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="225"/>
|
||||
<source>Deinstall Item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="227"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="234"/>
|
||||
<source>Open workshop Page</source>
|
||||
<translation type="unfinished">Taller abierto Página</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="245"/>
|
||||
<source>Are you sure you want to delete this item?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>All</source>
|
||||
<translation type="obsolete">Todos</translation>
|
||||
@ -1285,52 +1290,52 @@ si instaló ScreenPlay vía Steam!
|
||||
<translation type="obsolete">Crear un wallpaper</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source>Project size: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source> MB</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="95"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="97"/>
|
||||
<source>No description...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="237"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="239"/>
|
||||
<source>Click here if you like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="251"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="253"/>
|
||||
<source>Click here if you do not like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="286"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="288"/>
|
||||
<source>Tags: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="313"/>
|
||||
<source>Subscribtions: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="319"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribe</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2025,82 +2030,82 @@ si instaló ScreenPlay vía Steam!
|
||||
<context>
|
||||
<name>Workshop</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="151"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="133"/>
|
||||
<source>Loading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="162"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="144"/>
|
||||
<source>Download now!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="167"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="149"/>
|
||||
<source>Downloading...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="174"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="156"/>
|
||||
<source>Details</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="198"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="178"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="260"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="252"/>
|
||||
<source>Search for Wallpaper and Widgets...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="296"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="288"/>
|
||||
<source>Ranked By Vote</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="299"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="291"/>
|
||||
<source>Publication Date</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="302"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="294"/>
|
||||
<source>Ranked By Trend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="305"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="297"/>
|
||||
<source>Favorited By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="308"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="300"/>
|
||||
<source>Created By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="303"/>
|
||||
<source>Created By Followed Users</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="314"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="306"/>
|
||||
<source>Not Yet Rated</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="309"/>
|
||||
<source>Total VotesAsc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="320"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="312"/>
|
||||
<source>Votes Up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="323"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="315"/>
|
||||
<source>Total Unique Subscriptions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2108,17 +2113,17 @@ si instaló ScreenPlay vía Steam!
|
||||
<context>
|
||||
<name>WorkshopItem</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="185"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="184"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="303"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="302"/>
|
||||
<source>Successfully subscribed to Workshop Item!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="413"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="412"/>
|
||||
<source>Download complete!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -741,20 +741,25 @@ si vous avez installé ScreenPlay via Steam !
|
||||
<translation type="unfinished">Obtenez plus de Wallpaper & Widgets via l'atelier Steam!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="210"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="217"/>
|
||||
<source>Open containing folder</source>
|
||||
<translation type="unfinished">Ouvrir le dossier contenant</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="218"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="225"/>
|
||||
<source>Deinstall Item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="227"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="234"/>
|
||||
<source>Open workshop Page</source>
|
||||
<translation type="unfinished">Ouvrir la page de l'atelier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="245"/>
|
||||
<source>Are you sure you want to delete this item?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>All</source>
|
||||
<translation type="obsolete">Tout</translation>
|
||||
@ -1287,52 +1292,52 @@ si vous avez installé ScreenPlay via Steam !
|
||||
<translation type="obsolete">Créer un wallpaper</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source>Project size: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source> MB</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="95"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="97"/>
|
||||
<source>No description...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="237"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="239"/>
|
||||
<source>Click here if you like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="251"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="253"/>
|
||||
<source>Click here if you do not like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="286"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="288"/>
|
||||
<source>Tags: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="313"/>
|
||||
<source>Subscribtions: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="319"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribe</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2027,82 +2032,82 @@ si vous avez installé ScreenPlay via Steam !
|
||||
<context>
|
||||
<name>Workshop</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="151"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="133"/>
|
||||
<source>Loading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="162"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="144"/>
|
||||
<source>Download now!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="167"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="149"/>
|
||||
<source>Downloading...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="174"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="156"/>
|
||||
<source>Details</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="198"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="178"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="260"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="252"/>
|
||||
<source>Search for Wallpaper and Widgets...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="296"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="288"/>
|
||||
<source>Ranked By Vote</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="299"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="291"/>
|
||||
<source>Publication Date</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="302"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="294"/>
|
||||
<source>Ranked By Trend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="305"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="297"/>
|
||||
<source>Favorited By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="308"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="300"/>
|
||||
<source>Created By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="303"/>
|
||||
<source>Created By Followed Users</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="314"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="306"/>
|
||||
<source>Not Yet Rated</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="309"/>
|
||||
<source>Total VotesAsc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="320"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="312"/>
|
||||
<source>Votes Up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="323"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="315"/>
|
||||
<source>Total Unique Subscriptions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2110,17 +2115,17 @@ si vous avez installé ScreenPlay via Steam !
|
||||
<context>
|
||||
<name>WorkshopItem</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="185"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="184"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="303"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="302"/>
|
||||
<source>Successfully subscribed to Workshop Item!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="413"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="412"/>
|
||||
<source>Download complete!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -668,20 +668,25 @@ Steam을 통해 설치하셨을때의 기본 위치입니다!
|
||||
<translation>스팀 워크샵에서 더 많은 배경화면 & 위젯을 받아보세요!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="210"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="217"/>
|
||||
<source>Open containing folder</source>
|
||||
<translation type="unfinished">폴더 열기</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="218"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="225"/>
|
||||
<source>Deinstall Item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="227"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="234"/>
|
||||
<source>Open workshop Page</source>
|
||||
<translation type="unfinished">워크샵 페이지 열기</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="245"/>
|
||||
<source>Are you sure you want to delete this item?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>All</source>
|
||||
<translation type="vanished">전체</translation>
|
||||
@ -1210,52 +1215,52 @@ Steam을 통해 설치하셨을때의 기본 위치입니다!
|
||||
<translation type="vanished">배경화면 만들기</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source>Project size: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source> MB</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="95"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="97"/>
|
||||
<source>No description...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="237"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="239"/>
|
||||
<source>Click here if you like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="251"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="253"/>
|
||||
<source>Click here if you do not like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="286"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="288"/>
|
||||
<source>Tags: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="313"/>
|
||||
<source>Subscribtions: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="319"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribe</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -1950,82 +1955,82 @@ Steam을 통해 설치하셨을때의 기본 위치입니다!
|
||||
<context>
|
||||
<name>Workshop</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="151"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="133"/>
|
||||
<source>Loading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="162"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="144"/>
|
||||
<source>Download now!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="167"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="149"/>
|
||||
<source>Downloading...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="174"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="156"/>
|
||||
<source>Details</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="198"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="178"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="260"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="252"/>
|
||||
<source>Search for Wallpaper and Widgets...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="296"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="288"/>
|
||||
<source>Ranked By Vote</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="299"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="291"/>
|
||||
<source>Publication Date</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="302"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="294"/>
|
||||
<source>Ranked By Trend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="305"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="297"/>
|
||||
<source>Favorited By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="308"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="300"/>
|
||||
<source>Created By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="303"/>
|
||||
<source>Created By Followed Users</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="314"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="306"/>
|
||||
<source>Not Yet Rated</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="309"/>
|
||||
<source>Total VotesAsc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="320"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="312"/>
|
||||
<source>Votes Up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="323"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="315"/>
|
||||
<source>Total Unique Subscriptions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2033,17 +2038,17 @@ Steam을 통해 설치하셨을때의 기본 위치입니다!
|
||||
<context>
|
||||
<name>WorkshopItem</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="185"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="184"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="303"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="302"/>
|
||||
<source>Successfully subscribed to Workshop Item!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="413"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="412"/>
|
||||
<source>Download complete!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -742,20 +742,25 @@ ms), но есть и некоторые проприетарные, такие
|
||||
<translation type="unfinished">Получите больше обоев и виджетов через мастерскую Steam!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="210"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="217"/>
|
||||
<source>Open containing folder</source>
|
||||
<translation type="unfinished">Открыть содержащую папку</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="218"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="225"/>
|
||||
<source>Deinstall Item</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="227"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="234"/>
|
||||
<source>Open workshop Page</source>
|
||||
<translation type="unfinished">Открыть страницу мастерской</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="245"/>
|
||||
<source>Are you sure you want to delete this item?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>All</source>
|
||||
<translation type="obsolete">Все</translation>
|
||||
@ -1284,52 +1289,52 @@ ms), но есть и некоторые проприетарные, такие
|
||||
<translation type="obsolete">Создать обои</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source>Project size: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source> MB</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="95"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="97"/>
|
||||
<source>No description...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="237"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="239"/>
|
||||
<source>Click here if you like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="251"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="253"/>
|
||||
<source>Click here if you do not like the content</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="286"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="288"/>
|
||||
<source>Tags: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="313"/>
|
||||
<source>Subscribtions: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="319"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribe</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2024,82 +2029,82 @@ ms), но есть и некоторые проприетарные, такие
|
||||
<context>
|
||||
<name>Workshop</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="151"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="133"/>
|
||||
<source>Loading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="162"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="144"/>
|
||||
<source>Download now!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="167"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="149"/>
|
||||
<source>Downloading...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="174"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="156"/>
|
||||
<source>Details</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="198"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="178"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="260"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="252"/>
|
||||
<source>Search for Wallpaper and Widgets...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="296"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="288"/>
|
||||
<source>Ranked By Vote</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="299"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="291"/>
|
||||
<source>Publication Date</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="302"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="294"/>
|
||||
<source>Ranked By Trend</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="305"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="297"/>
|
||||
<source>Favorited By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="308"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="300"/>
|
||||
<source>Created By Friends</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="303"/>
|
||||
<source>Created By Followed Users</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="314"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="306"/>
|
||||
<source>Not Yet Rated</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="309"/>
|
||||
<source>Total VotesAsc</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="320"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="312"/>
|
||||
<source>Votes Up</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="323"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="315"/>
|
||||
<source>Total Unique Subscriptions</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
@ -2107,17 +2112,17 @@ ms), но есть и некоторые проприетарные, такие
|
||||
<context>
|
||||
<name>WorkshopItem</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="185"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="184"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="303"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="302"/>
|
||||
<source>Successfully subscribed to Workshop Item!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="413"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="412"/>
|
||||
<source>Download complete!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -504,20 +504,25 @@
|
||||
<translation>Lấy thêm hình nền & tiện ích con thông qua Steam Workshop!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="210"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="217"/>
|
||||
<source>Open containing folder</source>
|
||||
<translation>Mở thư mục chứa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="218"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="225"/>
|
||||
<source>Deinstall Item</source>
|
||||
<translation>Gỡ bỏ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="227"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="234"/>
|
||||
<source>Open workshop Page</source>
|
||||
<translation>Mở trang Workshop</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="245"/>
|
||||
<source>Are you sure you want to delete this item?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="329"/>
|
||||
<source></source>
|
||||
@ -987,52 +992,52 @@
|
||||
<translation>Chọn hình nền</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source>Project size: </source>
|
||||
<translation>Kích thước dự án: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source> MB</source>
|
||||
<translation>MB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="95"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="97"/>
|
||||
<source>No description...</source>
|
||||
<translation>Không có mô tả...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="237"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="239"/>
|
||||
<source>Click here if you like the content</source>
|
||||
<translation>Bấm vào đây nếu bạn thích nội dung này</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="251"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="253"/>
|
||||
<source>Click here if you do not like the content</source>
|
||||
<translation>Bấm vào đây nếu bạn không thích nội dung này</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="286"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="288"/>
|
||||
<source>Tags: </source>
|
||||
<translation>Từ khóa:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="313"/>
|
||||
<source>Subscribtions: </source>
|
||||
<translation>Đăng ký: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="319"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation>Mở trên Steam</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribed!</source>
|
||||
<translation>Đã đăng ký!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribe</source>
|
||||
<translation>Đăng ký</translation>
|
||||
</message>
|
||||
@ -1727,84 +1732,84 @@
|
||||
<context>
|
||||
<name>Workshop</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="151"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="133"/>
|
||||
<source>Loading</source>
|
||||
<translation>Đang tải</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="162"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="144"/>
|
||||
<source>Download now!</source>
|
||||
<translation>Tải xuống ngay!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="167"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="149"/>
|
||||
<source>Downloading...</source>
|
||||
<translation>Đang tải xuống...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="174"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="156"/>
|
||||
<source>Details</source>
|
||||
<translation>Chi tiết</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="198"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="178"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation>Mở trên Steam</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="260"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="252"/>
|
||||
<source>Search for Wallpaper and Widgets...</source>
|
||||
<translation>Tìm hình nền & cảnh...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="296"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="288"/>
|
||||
<source>Ranked By Vote</source>
|
||||
<translation>Xếp hạng bởi số phiếu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="299"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="291"/>
|
||||
<source>Publication Date</source>
|
||||
<translation>Ngày tải lên</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="302"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="294"/>
|
||||
<source>Ranked By Trend</source>
|
||||
<translation>Xếp hạng bởi trend</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="305"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="297"/>
|
||||
<source>Favorited By Friends</source>
|
||||
<translation>Được yêu thích bởi bạn bè</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="308"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="300"/>
|
||||
<source>Created By Friends</source>
|
||||
<translation>Tạo bởi bạn bè</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="303"/>
|
||||
<source>Created By Followed Users</source>
|
||||
<translation>Tạo bởi người đã theo dỗi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="314"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="306"/>
|
||||
<source>Not Yet Rated</source>
|
||||
<translation>Chưa được xếp hạng</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="309"/>
|
||||
<source>Total VotesAsc</source>
|
||||
<translatorcomment>????</translatorcomment>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="320"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="312"/>
|
||||
<source>Votes Up</source>
|
||||
<translatorcomment>?????</translatorcomment>
|
||||
<translation>Số phiếu đang lên cao</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="323"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="315"/>
|
||||
<source>Total Unique Subscriptions</source>
|
||||
<translation>Tổng số đăng ký duy nhất</translation>
|
||||
</message>
|
||||
@ -1812,17 +1817,17 @@
|
||||
<context>
|
||||
<name>WorkshopItem</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="185"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="184"/>
|
||||
<source>Download</source>
|
||||
<translation>Tải xuống</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="303"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="302"/>
|
||||
<source>Successfully subscribed to Workshop Item!</source>
|
||||
<translation>Đăng ký thành công mục Workshop!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="413"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="412"/>
|
||||
<source>Download complete!</source>
|
||||
<translation>Tải xuống thành công!</translation>
|
||||
</message>
|
||||
|
Binary file not shown.
@ -70,7 +70,7 @@
|
||||
<message>
|
||||
<location filename="../qml/Create/CreateContent.qml" line="65"/>
|
||||
<source>Empty HTML Wallpaper</source>
|
||||
<translation>样例HTML壁纸</translation>
|
||||
<translation>HTML 壁纸</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Create/CreateContent.qml" line="75"/>
|
||||
@ -480,20 +480,25 @@
|
||||
<translation>从创意工坊获取更多壁纸和物件!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="210"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="217"/>
|
||||
<source>Open containing folder</source>
|
||||
<translation>打开文件夹</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="218"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="225"/>
|
||||
<source>Deinstall Item</source>
|
||||
<translation>卸载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="227"/>
|
||||
<location filename="../qml/Installed/Installed.qml" line="234"/>
|
||||
<source>Open workshop Page</source>
|
||||
<translation>打开创意工坊页面</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Installed/Installed.qml" line="245"/>
|
||||
<source>Are you sure you want to delete this item?</source>
|
||||
<translation>您确定要删除此物品?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstalledWelcomeScreen</name>
|
||||
@ -723,7 +728,7 @@
|
||||
<message>
|
||||
<location filename="../qml/Settings/Settings.qml" line="171"/>
|
||||
<source>Chinese - Simplified</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>中文(简体)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Settings/Settings.qml" line="174"/>
|
||||
@ -843,7 +848,7 @@
|
||||
<message>
|
||||
<location filename="../qml/Settings/Settings.qml" line="419"/>
|
||||
<source>ScreenPlay Build Version </source>
|
||||
<translation>ScreenPlay编译版本</translation>
|
||||
<translation>ScreenPlay编译版本 </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Settings/Settings.qml" line="421"/>
|
||||
@ -858,7 +863,7 @@
|
||||
<message>
|
||||
<location filename="../qml/Settings/Settings.qml" line="429"/>
|
||||
<source>ScreenPlay would not be possible without the work of others. A big thank you to: </source>
|
||||
<translation>ScreenPlay的诞生离不开一些人的帮助。非常感谢您们:</translation>
|
||||
<translation>ScreenPlay离不开一些人的帮助。非常感谢你们:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Settings/Settings.qml" line="430"/>
|
||||
@ -958,52 +963,52 @@
|
||||
<translation>设置壁纸</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source>Project size: </source>
|
||||
<translation>项目大小:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="89"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="91"/>
|
||||
<source> MB</source>
|
||||
<translation> 兆字节</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="95"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="97"/>
|
||||
<source>No description...</source>
|
||||
<translation>没有简介...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="237"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="239"/>
|
||||
<source>Click here if you like the content</source>
|
||||
<translation>如果您喜欢它,点这里!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="251"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="253"/>
|
||||
<source>Click here if you do not like the content</source>
|
||||
<translation>如果您不喜欢它,点这里</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="286"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="288"/>
|
||||
<source>Tags: </source>
|
||||
<translation>标签:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="313"/>
|
||||
<source>Subscribtions: </source>
|
||||
<translation>订阅:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="319"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation>在Steam打开</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribed!</source>
|
||||
<translation>已订阅!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="360"/>
|
||||
<location filename="../qml/Workshop/Sidebar.qml" line="362"/>
|
||||
<source>Subscribe</source>
|
||||
<translation>订阅</translation>
|
||||
</message>
|
||||
@ -1698,82 +1703,82 @@
|
||||
<context>
|
||||
<name>Workshop</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="151"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="133"/>
|
||||
<source>Loading</source>
|
||||
<translation>加载中</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="162"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="144"/>
|
||||
<source>Download now!</source>
|
||||
<translation>开始下载!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="167"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="149"/>
|
||||
<source>Downloading...</source>
|
||||
<translation>下载中...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="174"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="156"/>
|
||||
<source>Details</source>
|
||||
<translation>查看详情</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="198"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="178"/>
|
||||
<source>Open In Steam</source>
|
||||
<translation>在Steam打开</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="260"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="252"/>
|
||||
<source>Search for Wallpaper and Widgets...</source>
|
||||
<translation>搜索壁纸和物件...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="296"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="288"/>
|
||||
<source>Ranked By Vote</source>
|
||||
<translation>评分最好</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="299"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="291"/>
|
||||
<source>Publication Date</source>
|
||||
<translation>发布日期</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="302"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="294"/>
|
||||
<source>Ranked By Trend</source>
|
||||
<translation>评分趋势</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="305"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="297"/>
|
||||
<source>Favorited By Friends</source>
|
||||
<translation>好友收藏</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="308"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="300"/>
|
||||
<source>Created By Friends</source>
|
||||
<translation>好友创建</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="311"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="303"/>
|
||||
<source>Created By Followed Users</source>
|
||||
<translation>已关注的</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="314"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="306"/>
|
||||
<source>Not Yet Rated</source>
|
||||
<translation>尚未评分</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="317"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="309"/>
|
||||
<source>Total VotesAsc</source>
|
||||
<translation type="unfinished">按总票数升序</translation>
|
||||
<translation>按总票数升序</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="320"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="312"/>
|
||||
<source>Votes Up</source>
|
||||
<translation>评分上升</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="323"/>
|
||||
<location filename="../qml/Workshop/Workshop.qml" line="315"/>
|
||||
<source>Total Unique Subscriptions</source>
|
||||
<translation>总订阅量</translation>
|
||||
</message>
|
||||
@ -1781,17 +1786,17 @@
|
||||
<context>
|
||||
<name>WorkshopItem</name>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="185"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="184"/>
|
||||
<source>Download</source>
|
||||
<translation>下载</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="303"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="302"/>
|
||||
<source>Successfully subscribed to Workshop Item!</source>
|
||||
<translation>成功订阅创意工坊物品!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="413"/>
|
||||
<location filename="../qml/Workshop/WorkshopItem.qml" line="412"/>
|
||||
<source>Download complete!</source>
|
||||
<translation>下载完成!</translation>
|
||||
</message>
|
||||
|
@ -1,32 +1,19 @@
|
||||
project(ScreenPlaySDK LANGUAGES CXX)
|
||||
project(ScreenPlaySDK LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
find_package(
|
||||
Qt5
|
||||
COMPONENTS Quick
|
||||
Network
|
||||
Core
|
||||
REQUIRED)
|
||||
Qt5
|
||||
COMPONENTS Quick Network Core
|
||||
REQUIRED)
|
||||
|
||||
set(src src/screenplay-sdk_plugin.cpp
|
||||
src/screenplaysdk.cpp)
|
||||
set(src src/screenplay-sdk_plugin.cpp src/screenplaysdk.cpp)
|
||||
|
||||
set(headers
|
||||
inc/screenplay-sdk_plugin.h
|
||||
inc/screenplaysdk.h)
|
||||
set(headers inc/screenplay-sdk_plugin.h inc/screenplaysdk.h)
|
||||
|
||||
add_library(${PROJECT_NAME} ${src} ${headers})
|
||||
add_library(${PROJECT_NAME} ${src} ${headers})
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
Qt5::Core
|
||||
Qt5::Quick
|
||||
Qt5::Gui
|
||||
Qt5::Network)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick Qt5::Gui Qt5::Network)
|
||||
|
||||
target_include_directories(
|
||||
${PROJECT_NAME}
|
||||
PUBLIC inc
|
||||
)
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC inc)
|
||||
|
@ -36,11 +36,10 @@
|
||||
|
||||
#include <QQmlExtensionPlugin>
|
||||
|
||||
class ScreenPlay_SDKPlugin : public QQmlExtensionPlugin
|
||||
{
|
||||
class ScreenPlay_SDKPlugin : public QQmlExtensionPlugin {
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
|
||||
|
||||
public:
|
||||
void registerTypes(const char *uri);
|
||||
void registerTypes(const char* uri);
|
||||
};
|
||||
|
@ -3,9 +3,8 @@
|
||||
|
||||
#include <qqml.h>
|
||||
|
||||
void ScreenPlay_SDKPlugin::registerTypes(const char *uri)
|
||||
void ScreenPlay_SDKPlugin::registerTypes(const char* uri)
|
||||
{
|
||||
// @uri ScreenPlay.screenplaysdk
|
||||
qmlRegisterType<ScreenPlaySDK>(uri, 1, 0, "ScreenPlaySDK");
|
||||
}
|
||||
|
||||
|
@ -1,49 +1,31 @@
|
||||
|
||||
|
||||
project(ScreenPlayShader LANGUAGES CXX)
|
||||
project(ScreenPlayShader LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
find_package(
|
||||
Qt5
|
||||
COMPONENTS Quick
|
||||
Core
|
||||
REQUIRED)
|
||||
Qt5
|
||||
COMPONENTS Quick Core
|
||||
REQUIRED)
|
||||
|
||||
set(src
|
||||
screenplayshader_plugin.cpp
|
||||
shaderlibrary.cpp
|
||||
)
|
||||
set(src screenplayshader_plugin.cpp shaderlibrary.cpp)
|
||||
|
||||
set(headers
|
||||
screenplayshader_plugin.h
|
||||
shaderlibrary.h
|
||||
)
|
||||
set(headers screenplayshader_plugin.h shaderlibrary.h)
|
||||
|
||||
set(shader shader.qrc)
|
||||
|
||||
add_library(${PROJECT_NAME} SHARED ${src} ${headers} ${shader})
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
Qt5::Core
|
||||
Qt5::Quick
|
||||
Qt5::Gui)
|
||||
|
||||
target_include_directories(
|
||||
${PROJECT_NAME}
|
||||
PUBLIC inc
|
||||
)
|
||||
add_library(${PROJECT_NAME} SHARED ${src} ${headers} ${shader})
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick Qt5::Gui)
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC inc)
|
||||
|
||||
# QML module deployment
|
||||
set(URI "ScreenPlay/Shader")
|
||||
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)
|
||||
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()
|
||||
@ -57,10 +39,8 @@ file(MAKE_DIRECTORY ${DESTDIR})
|
||||
|
||||
configure_file(qmldir ${DESTDIR} COPYONLY)
|
||||
|
||||
|
||||
# Copies ScreenPlayShader.* into qt qml plugins folder
|
||||
add_custom_command(
|
||||
TARGET ${PROJECT_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:ScreenPlayShader>
|
||||
${DESTDIR}/$<TARGET_FILE_NAME:ScreenPlayShader>)
|
||||
TARGET ${PROJECT_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:ScreenPlayShader> ${DESTDIR}/$<TARGET_FILE_NAME:ScreenPlayShader>)
|
||||
|
@ -13,6 +13,6 @@ QObject* ScreenPlayShaderLibrarySingleton(QQmlEngine* engine, QJSEngine* scriptE
|
||||
void ScreenPlayShaderPlugin::registerTypes(const char* uri)
|
||||
{
|
||||
|
||||
qmlRegisterType(QUrl("qrc:/ShaderWrapper/ShadertoyShader.qml"), "ScreenPlay.ShadertoyShader", 1,0, "ShadertoyShader");
|
||||
qmlRegisterType(QUrl("qrc:/ShaderWrapper/ShadertoyShader.qml"), "ScreenPlay.ShadertoyShader", 1, 0, "ShadertoyShader");
|
||||
qmlRegisterSingletonType<ShaderLibrary>(uri, 1, 0, "ShaderLibrary", ScreenPlayShaderLibrarySingleton);
|
||||
}
|
||||
|
@ -19,4 +19,3 @@ ShaderLibrary::ShaderLibrary(QQuickItem* parent)
|
||||
ShaderLibrary::~ShaderLibrary()
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -1,42 +1,26 @@
|
||||
|
||||
project(ScreenPlaySysInfo LANGUAGES CXX)
|
||||
project(ScreenPlaySysInfo LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
find_package(
|
||||
Qt5
|
||||
COMPONENTS Quick
|
||||
Core
|
||||
REQUIRED)
|
||||
Qt5
|
||||
COMPONENTS Quick 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)
|
||||
|
||||
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} SHARED ${src} ${headers})
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
Qt5::Core
|
||||
Qt5::Quick)
|
||||
add_library(${PROJECT_NAME} SHARED ${src} ${headers})
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick)
|
||||
|
||||
# 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)
|
||||
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()
|
||||
@ -50,10 +34,8 @@ file(MAKE_DIRECTORY ${DESTDIR})
|
||||
|
||||
configure_file(qmldir ${DESTDIR} COPYONLY)
|
||||
|
||||
|
||||
# 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>)
|
||||
TARGET ${PROJECT_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:ScreenPlaySysInfo> ${DESTDIR}/$<TARGET_FILE_NAME:ScreenPlaySysInfo>)
|
||||
|
@ -1,17 +1,17 @@
|
||||
#include "cpu.h"
|
||||
#include <QtQml/qqml.h>
|
||||
#include "mathhelper.h"
|
||||
#include <QtQml/qqml.h>
|
||||
|
||||
#define STATUS_SUCCESS 0
|
||||
#define STATUS_INFO_LENGTH_MISMATCH 0xC0000004
|
||||
#define STATUS_SUCCESS 0
|
||||
#define STATUS_INFO_LENGTH_MISMATCH 0xC0000004
|
||||
|
||||
CPU::CPU(QObject *parent) : QObject(parent)
|
||||
CPU::CPU(QObject* parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
connect(&m_updateTimer,&QTimer::timeout,this,&CPU::update);
|
||||
connect(&m_updateTimer, &QTimer::timeout, this, &CPU::update);
|
||||
m_updateTimer.start(m_tickRate);
|
||||
}
|
||||
|
||||
|
||||
void CPU::update()
|
||||
{
|
||||
BOOL status;
|
||||
@ -19,7 +19,8 @@ void CPU::update()
|
||||
|
||||
// get new CPU's idle/kernel/user time
|
||||
status = GetSystemTimes(&ftIdleTime, &ftKernelTime, &ftUserTime);
|
||||
if (status == 0) return;
|
||||
if (status == 0)
|
||||
return;
|
||||
|
||||
//convert times to uint by appending low and high bits
|
||||
uint64_t newIdleTime = FileTimeToInt64(ftIdleTime);
|
||||
|
@ -34,10 +34,10 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QObject>
|
||||
#include <QDebug>
|
||||
#include <QTimer>
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
#include <QTimer>
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
#include <qt_windows.h>
|
||||
@ -50,11 +50,9 @@ class CPU : public QObject {
|
||||
Q_PROPERTY(float usage READ usage NOTIFY usageChanged)
|
||||
Q_PROPERTY(int tickRate READ tickRate WRITE setTickRate NOTIFY tickRateChanged)
|
||||
|
||||
|
||||
public:
|
||||
explicit CPU(QObject* parent = nullptr);
|
||||
|
||||
|
||||
float usage() const
|
||||
{
|
||||
return m_usage;
|
||||
@ -71,7 +69,6 @@ signals:
|
||||
|
||||
void tickRateChanged(int tickRate);
|
||||
|
||||
|
||||
public slots:
|
||||
void update();
|
||||
|
||||
@ -95,8 +92,6 @@ public slots:
|
||||
emit tickRateChanged(m_tickRate);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private:
|
||||
float m_usage = 0.0f;
|
||||
|
||||
|
@ -38,8 +38,9 @@
|
||||
|
||||
#include <QObject>
|
||||
|
||||
uint64_t FileTimeToInt64( const FILETIME& ft ) {
|
||||
ULARGE_INTEGER uli = { };
|
||||
uint64_t FileTimeToInt64(const FILETIME& ft)
|
||||
{
|
||||
ULARGE_INTEGER uli = {};
|
||||
uli.LowPart = ft.dwLowDateTime;
|
||||
uli.HighPart = ft.dwHighDateTime;
|
||||
return uli.QuadPart;
|
||||
|
@ -1,12 +1,12 @@
|
||||
#include "ram.h"
|
||||
#include "sysinfoapi.h"
|
||||
#include <QtQml/qqml.h>
|
||||
#include <qmetatype.h>
|
||||
#include "sysinfoapi.h"
|
||||
|
||||
RAM::RAM(QObject* parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
connect(&m_updateTimer,&QTimer::timeout,this,&RAM::update);
|
||||
connect(&m_updateTimer, &QTimer::timeout, this, &RAM::update);
|
||||
m_updateTimer.start(m_tickRate);
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@ void RAM::update()
|
||||
MEMORYSTATUSEX memoryStatus;
|
||||
memoryStatus.dwLength = sizeof(MEMORYSTATUSEX); //needed for internal api
|
||||
bool success = GlobalMemoryStatusEx(&memoryStatus);
|
||||
if(!success)
|
||||
if (!success)
|
||||
return;
|
||||
|
||||
//Apply total values
|
||||
|
@ -34,8 +34,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QObject>
|
||||
#include <QDebug>
|
||||
#include <QObject>
|
||||
#include <QTimer>
|
||||
#ifdef Q_OS_WIN
|
||||
#include <qt_windows.h>
|
||||
@ -113,7 +113,6 @@ signals:
|
||||
|
||||
void usedPagingMemoryChanged(DWORDLONG usedPagingMemory);
|
||||
|
||||
|
||||
void totalPhysicalMemoryChanged(DWORDLONG totalPhysicalMemory);
|
||||
|
||||
void totalVirtualMemoryChanged(DWORDLONG totalVirtualMemory);
|
||||
@ -134,7 +133,7 @@ private slots:
|
||||
|
||||
void setUsedPhysicalMemory(DWORDLONG usedPhysicalMemory)
|
||||
{
|
||||
if(usedPhysicalMemory == m_usedPhysicalMemory)
|
||||
if (usedPhysicalMemory == m_usedPhysicalMemory)
|
||||
return;
|
||||
|
||||
m_usedPhysicalMemory = usedPhysicalMemory;
|
||||
@ -143,7 +142,7 @@ private slots:
|
||||
|
||||
void setTotalPhysicalMemory(DWORDLONG totalPhysicalMemory)
|
||||
{
|
||||
if(totalPhysicalMemory == m_totalPhysicalMemory)
|
||||
if (totalPhysicalMemory == m_totalPhysicalMemory)
|
||||
return;
|
||||
|
||||
m_totalPhysicalMemory = totalPhysicalMemory;
|
||||
@ -152,7 +151,7 @@ private slots:
|
||||
|
||||
void setUsedVirtualMemory(DWORDLONG usedVirtualMemory)
|
||||
{
|
||||
if(usedVirtualMemory == m_usedVirtualMemory)
|
||||
if (usedVirtualMemory == m_usedVirtualMemory)
|
||||
return;
|
||||
|
||||
m_usedVirtualMemory = usedVirtualMemory;
|
||||
@ -161,7 +160,7 @@ private slots:
|
||||
|
||||
void setTotalVirtualMemory(DWORDLONG totalVirtualMemory)
|
||||
{
|
||||
if(totalVirtualMemory == m_totalVirtualMemory)
|
||||
if (totalVirtualMemory == m_totalVirtualMemory)
|
||||
return;
|
||||
|
||||
m_totalVirtualMemory = totalVirtualMemory;
|
||||
@ -170,7 +169,7 @@ private slots:
|
||||
|
||||
void setUsedPagingMemory(DWORDLONG usedPagingMemory)
|
||||
{
|
||||
if(usedPagingMemory == m_usedPagingMemory)
|
||||
if (usedPagingMemory == m_usedPagingMemory)
|
||||
return;
|
||||
|
||||
m_usedPagingMemory = usedPagingMemory;
|
||||
@ -179,7 +178,7 @@ private slots:
|
||||
|
||||
void setTotalPagingMemory(DWORDLONG totalPagingMemory)
|
||||
{
|
||||
if(totalPagingMemory == m_totalPagingMemory)
|
||||
if (totalPagingMemory == m_totalPagingMemory)
|
||||
return;
|
||||
|
||||
m_totalPagingMemory = totalPagingMemory;
|
||||
@ -197,6 +196,4 @@ private:
|
||||
|
||||
QTimer m_updateTimer;
|
||||
int m_tickRate = 1000;
|
||||
|
||||
};
|
||||
|
||||
|
@ -15,5 +15,4 @@ void ScreenPlaySysInfoPlugin::registerTypes(const char* uri)
|
||||
{
|
||||
// @uri ScreenPlay.Sysinfo
|
||||
qmlRegisterSingletonType<SysInfo>(uri, 1, 0, "SysInfo", ScreenPlaySysInfoSingleton);
|
||||
|
||||
}
|
||||
|
@ -36,11 +36,10 @@
|
||||
|
||||
#include <QQmlExtensionPlugin>
|
||||
|
||||
class ScreenPlaySysInfoPlugin : public QQmlExtensionPlugin
|
||||
{
|
||||
class ScreenPlaySysInfoPlugin : public QQmlExtensionPlugin {
|
||||
Q_OBJECT
|
||||
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
|
||||
|
||||
public:
|
||||
void registerTypes(const char *uri);
|
||||
void registerTypes(const char* uri);
|
||||
};
|
||||
|
@ -88,7 +88,7 @@ void Storage::reset()
|
||||
void Storage::loadStorageDevices()
|
||||
{
|
||||
beginInsertRows(QModelIndex(), 0, rowCount());
|
||||
for (const auto &storage : QStorageInfo::mountedVolumes()) {
|
||||
for (const auto& storage : QStorageInfo::mountedVolumes()) {
|
||||
m_storageInfoList.append(storage);
|
||||
}
|
||||
endInsertRows();
|
||||
|
@ -63,7 +63,6 @@ public:
|
||||
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
|
||||
|
||||
|
||||
public slots:
|
||||
void refresh();
|
||||
void reset();
|
||||
@ -71,6 +70,7 @@ signals:
|
||||
|
||||
private:
|
||||
void loadStorageDevices();
|
||||
|
||||
private:
|
||||
QVector<QStorageInfo> m_storageInfoList;
|
||||
};
|
||||
|
@ -67,7 +67,6 @@ public:
|
||||
return m_storage.get();
|
||||
}
|
||||
|
||||
|
||||
signals:
|
||||
void ramChanged(RAM* ram);
|
||||
void cpuChanged(CPU* cpu);
|
||||
|
@ -1,70 +1,41 @@
|
||||
|
||||
project(ScreenPlayWallpaper LANGUAGES CXX)
|
||||
project(ScreenPlayWallpaper LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
|
||||
find_package(
|
||||
Qt5
|
||||
COMPONENTS Quick
|
||||
Widgets
|
||||
Gui
|
||||
WebEngine
|
||||
QuickCompiler
|
||||
REQUIRED)
|
||||
|
||||
Qt5
|
||||
COMPONENTS Quick Widgets Gui WebEngine QuickCompiler
|
||||
REQUIRED)
|
||||
|
||||
if(WIN32)
|
||||
set(src_plattform
|
||||
src/windowsdesktopproperties.cpp
|
||||
src/winwindow.cpp)
|
||||
set(headers_plattform
|
||||
src/windowsdesktopproperties.h
|
||||
src/winwindow.h)
|
||||
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)
|
||||
set(src_plattform src/macintegration.cpp src/macwindow.cpp)
|
||||
set(headers_plattform src/macintegration.h src/macbridge.h src/macwindow.h src/MacBridge.mm)
|
||||
elseif(UNIX)
|
||||
set(src_plattform
|
||||
main.cpp
|
||||
src/linuxwindow.cpp)
|
||||
set(headers_plattform
|
||||
src/linuxwindow.h)
|
||||
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(src main.cpp src/basewindow.cpp)
|
||||
set(headers src/basewindow.h)
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
|
||||
set(resources SPWResources.qrc)
|
||||
else()
|
||||
qtquick_compiler_add_resources(resources SPWResources.qrc )
|
||||
qtquick_compiler_add_resources(resources SPWResources.qrc)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
add_executable(${PROJECT_NAME} ${src} ${headers} ${src_plattform} ${headers_plattform} ${resources})
|
||||
add_executable(${PROJECT_NAME} ${src} ${headers} ${src_plattform} ${headers_plattform} ${resources})
|
||||
|
||||
# Disable console window on Windows
|
||||
# https://stackoverflow.com/questions/8249028/how-do-i-keep-my-qt-c-program-from-opening-a-console-in-windows
|
||||
set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE true)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
Qt5::Quick
|
||||
Qt5::Gui
|
||||
Qt5::Widgets
|
||||
Qt5::Core
|
||||
Qt5::WebEngine
|
||||
ScreenPlaySDK
|
||||
)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Quick Qt5::Gui Qt5::Widgets Qt5::Core Qt5::WebEngine ScreenPlaySDK)
|
||||
|
||||
if(APPLE)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE "-framework Cocoa")
|
||||
endif()
|
||||
|
@ -4,7 +4,6 @@ import ScreenPlayWallpaper 1.0
|
||||
import ScreenPlay.Shader 1.0
|
||||
import "ShaderWrapper" as ShaderWrapper
|
||||
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
anchors.fill: parent
|
||||
@ -46,8 +45,7 @@ Rectangle {
|
||||
|
||||
loader.sourceComponent = undefined
|
||||
loader.source = ""
|
||||
if (oldType === Wallpaper.WallpaperType.QML)
|
||||
Wallpaper.clearComponentCache()
|
||||
Wallpaper.clearComponentCache()
|
||||
|
||||
loader.source = Qt.resolvedUrl(Wallpaper.fullContentPath)
|
||||
}
|
||||
@ -221,5 +219,4 @@ Rectangle {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -120,8 +120,8 @@ MainWindow::MainWindow(int screenAt, QString projectPath, QString id, QString de
|
||||
UpdateWindow(m_hwnd);
|
||||
UpdateWindow(m_worker_hwnd);
|
||||
SetWindowLongPtr(m_hwnd, GWL_STYLE, WS_CHILDWINDOW);
|
||||
SetWindowLongPtr(m_hwnd, GWL_EXSTYLE, WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR | WS_EX_NOACTIVATE );
|
||||
// ShowWindow(m_hwnd, SW_SHOW);
|
||||
SetWindowLongPtr(m_hwnd, GWL_EXSTYLE, WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR | WS_EX_NOACTIVATE);
|
||||
// ShowWindow(m_hwnd, SW_SHOW);
|
||||
//MoveWindow(m_hwnd, screen->geometry().x(), screen->geometry().y() , screen->size().width(), screen->size().height(), true);
|
||||
|
||||
qDebug() << "Create window: " << screenAt << ", x: " << screen->geometry().x() << "y: " << screen->geometry().y() << screen->size().width() << screen->size().height();
|
||||
@ -158,7 +158,7 @@ MainWindow::MainWindow(int screenAt, QString projectPath, QString id, QString de
|
||||
}
|
||||
});
|
||||
|
||||
QTimer::singleShot(3000,[=](){
|
||||
QTimer::singleShot(3000, [=]() {
|
||||
ShowWindow(m_hwnd, SW_SHOWNOACTIVATE);
|
||||
});
|
||||
|
||||
@ -176,7 +176,7 @@ void MainWindow::init()
|
||||
// This needs to be set in this order or
|
||||
// the window will be opened as fullscreen!
|
||||
|
||||
//ShowWindow(m_hwnd, SW_SHOWDEFAULT);
|
||||
//ShowWindow(m_hwnd, SW_SHOWDEFAULT);
|
||||
#endif
|
||||
}
|
||||
void MainWindow::destroyThis()
|
||||
|
@ -45,9 +45,9 @@
|
||||
#include <QQmlEngine>
|
||||
#include <QScreen>
|
||||
#include <QSharedPointer>
|
||||
#include <QTimer>
|
||||
#include <QWindow>
|
||||
#include <QtGlobal>
|
||||
#include <QTimer>
|
||||
#include <QtQuick/QQuickView>
|
||||
#include <QtQuick/QQuickWindow>
|
||||
|
||||
|
@ -28,8 +28,6 @@ BaseWindow::BaseWindow(QString projectFilePath, const QVector<int> activeScreens
|
||||
QJsonDocument configJsonDocument;
|
||||
QJsonParseError parseError;
|
||||
|
||||
|
||||
|
||||
projectFile.setFileName(projectFilePath + "/project.json");
|
||||
projectFile.open(QIODevice::ReadOnly | QIODevice::Text);
|
||||
QString projectConfig = projectFile.readAll();
|
||||
@ -166,9 +164,12 @@ QString BaseWindow::loadFromFile(const QString& filename)
|
||||
QFile file;
|
||||
file.setFileName(basePath() + "/" + filename);
|
||||
qWarning() << " loadFromFile: " << file.fileName() << file.readAll();
|
||||
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||
return file.readAll();
|
||||
if (file.open(QIODevice::ReadOnly)) {
|
||||
const QString content = file.readAll();
|
||||
file.close();
|
||||
return content;
|
||||
}
|
||||
file.close();
|
||||
qWarning() << "Could not loadFromFile: " << file.fileName();
|
||||
return "";
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
#include "linuxwindow.h"
|
||||
|
||||
|
||||
LinuxWindow::LinuxWindow(QVector<int> activeScreensList, QString projectPath, QString id, QString volume, const QString fillmode, const bool checkWallpaperVisible, QObject* parent)
|
||||
: BaseWindow(projectPath, activeScreensList, checkWallpaperVisible)
|
||||
{
|
||||
@ -42,8 +41,6 @@ LinuxWindow::LinuxWindow(QVector<int> activeScreensList, QString projectPath, QS
|
||||
m_window.setTextRenderType(QQuickWindow::TextRenderType::NativeTextRendering);
|
||||
m_window.setSource(QUrl("qrc:/mainWindow.qml"));
|
||||
|
||||
|
||||
|
||||
// WARNING: Setting Window flags must be called *here*!
|
||||
Qt::WindowFlags flags = m_window.flags();
|
||||
m_window.setFlags(flags | Qt::FramelessWindowHint | Qt::Desktop);
|
||||
|
@ -1,11 +1,11 @@
|
||||
#include "macwindow.h"
|
||||
|
||||
MacWindow::MacWindow(
|
||||
const QVector<int> &activeScreensList,
|
||||
const QString &projectPath,
|
||||
const QString &id,
|
||||
const QString &volume,
|
||||
const QString &fillmode)
|
||||
const QVector<int>& activeScreensList,
|
||||
const QString& projectPath,
|
||||
const QString& id,
|
||||
const QString& volume,
|
||||
const QString& fillmode)
|
||||
: BaseWindow(projectPath, activeScreensList, false)
|
||||
{
|
||||
setAppID(id);
|
||||
@ -28,8 +28,6 @@ MacWindow::MacWindow(
|
||||
//setupWallpaperForMultipleScreens(activeScreensList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// WARNING: Setting Window flags must be called *here*!
|
||||
Qt::WindowFlags flags = m_window.flags();
|
||||
m_window.setFlags(flags | Qt::FramelessWindowHint | Qt::Desktop);
|
||||
@ -44,7 +42,6 @@ MacWindow::MacWindow(
|
||||
|
||||
MacIntegration* macIntegration = new MacIntegration(this);
|
||||
macIntegration->SetBackgroundLevel(&m_window);
|
||||
|
||||
}
|
||||
|
||||
void MacWindow::setVisible(bool show)
|
||||
|
@ -1,29 +1,21 @@
|
||||
|
||||
|
||||
project(ScreenPlayWidget LANGUAGES CXX)
|
||||
project(ScreenPlayWidget LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
find_package(
|
||||
Qt5
|
||||
COMPONENTS Quick
|
||||
Widgets
|
||||
Gui
|
||||
QuickCompiler
|
||||
WebEngine
|
||||
REQUIRED)
|
||||
Qt5
|
||||
COMPONENTS Quick Widgets Gui QuickCompiler WebEngine
|
||||
REQUIRED)
|
||||
|
||||
set(src main.cpp
|
||||
src/widgetwindow.cpp)
|
||||
set(src main.cpp src/widgetwindow.cpp)
|
||||
|
||||
set(headers
|
||||
src/widgetwindow.h)
|
||||
set(headers src/widgetwindow.h)
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
|
||||
set(resources SPWidgetResources.qrc)
|
||||
else()
|
||||
qtquick_compiler_add_resources(resources SPWidgetResources.qrc )
|
||||
qtquick_compiler_add_resources(resources SPWidgetResources.qrc)
|
||||
endif()
|
||||
|
||||
add_executable(${PROJECT_NAME} ${src} ${headers} ${resources})
|
||||
@ -32,13 +24,4 @@ add_executable(${PROJECT_NAME} ${src} ${headers} ${resources})
|
||||
# https://stackoverflow.com/questions/8249028/how-do-i-keep-my-qt-c-program-from-opening-a-console-in-windows
|
||||
set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE true)
|
||||
|
||||
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
Qt5::Quick
|
||||
Qt5::Gui
|
||||
Qt5::Widgets
|
||||
Qt5::Core
|
||||
ScreenPlaySDK
|
||||
)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Quick Qt5::Gui Qt5::Widgets Qt5::Core ScreenPlaySDK)
|
||||
|
@ -13,7 +13,6 @@ int main(int argc, char* argv[])
|
||||
|
||||
QStringList argumentList = app.arguments();
|
||||
|
||||
|
||||
// If we start with only one argument (path, appID, type),
|
||||
// it means we want to test a single widget
|
||||
if (argumentList.length() == 1) {
|
||||
|
@ -46,7 +46,7 @@ WidgetWindow::WidgetWindow(
|
||||
} else {
|
||||
QFile configTmp;
|
||||
QJsonDocument configJsonDocument;
|
||||
QJsonParseError parseError;
|
||||
QJsonParseError parseError{};
|
||||
|
||||
configTmp.setFileName(projectPath + "/project.json");
|
||||
configTmp.open(QIODevice::ReadOnly | QIODevice::Text);
|
||||
|
@ -154,6 +154,7 @@ public slots:
|
||||
}
|
||||
|
||||
QPointF cursorPos() { return QCursor::pos(); }
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
void setWindowBlur(unsigned int style = 3);
|
||||
#endif
|
||||
|
132
Tools/build.py
Normal file
132
Tools/build.py
Normal file
@ -0,0 +1,132 @@
|
||||
from sys import platform
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
import shutil
|
||||
import argparse
|
||||
|
||||
# Based on https://gist.github.com/l2m2/0d3146c53c767841c6ba8c4edbeb4c2c
|
||||
def vs_env_dict():
|
||||
vsvar32 = 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat'
|
||||
cmd = [vsvar32, '&&', 'set']
|
||||
popen = subprocess.Popen(
|
||||
cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
stdout, stderr = popen.communicate()
|
||||
|
||||
if popen.wait() != 0:
|
||||
raise ValueError(stderr.decode("mbcs"))
|
||||
output = stdout.decode("mbcs").split("\r\n")
|
||||
return dict((e[0].upper(), e[1]) for e in [p.rstrip().split("=", 1) for p in output] if len(e) == 2)
|
||||
|
||||
|
||||
|
||||
# MAIN
|
||||
parser = argparse.ArgumentParser(description='Build and Package ScreenPlay')
|
||||
parser.add_argument('-t', action="store", dest="build_type")
|
||||
args = parser.parse_args()
|
||||
|
||||
if not args.build_type:
|
||||
print("Build type argument is missing (release,debug). Example: python build.py -t release")
|
||||
sys.exit(1)
|
||||
|
||||
qt_version = "5.15.1"
|
||||
print("Starting build with type %s. Qt Version: %s" %
|
||||
(args.build_type, qt_version))
|
||||
|
||||
|
||||
cmake_prefix_path = ""
|
||||
cmake_target_triplet = ""
|
||||
executable_file_ending = ""
|
||||
deploy_executable = ""
|
||||
|
||||
if platform == "win32":
|
||||
print("Loading MSVC env variables via vsvars32.bat")
|
||||
windows_msvc = "msvc2019_64"
|
||||
executable_file_ending = ".exe"
|
||||
deploy_executable = "windeployqt.exe"
|
||||
dict = vs_env_dict()
|
||||
dict["PATH"] = dict["PATH"] + ";C:\\Qt\\" + qt_version + "\\" + windows_msvc + "\\bin;C:\\Qt\\Tools\\QtCreator\\bin"
|
||||
os.environ.update(dict)
|
||||
cmake_prefix_path = "c:/Qt/" + qt_version + "/" + windows_msvc
|
||||
cmake_target_triplet = "x64-windows"
|
||||
os.system("install_dependencies_windows.bat")
|
||||
elif platform == "darwin":
|
||||
cmake_prefix_path = "~/Qt/" + qt_version + "/clang_64"
|
||||
deploy_executable = "macdeployqt"
|
||||
cmake_target_triplet = "x64-osx"
|
||||
print("Executing install_dependencies_linux_mac.sh")
|
||||
os.system("chmod +x install_dependencies_linux_mac.sh")
|
||||
os.system("./install_dependencies_linux_mac.sh")
|
||||
elif platform == "linux":
|
||||
deploy_executable = "linuxdeployqt"
|
||||
cmake_prefix_path = "~/Qt/"
|
||||
cmake_target_triplet = "x64-linux"
|
||||
print("Executing install_dependencies_linux_mac.sh")
|
||||
os.system("chmod +x install_dependencies_linux_mac.sh")
|
||||
os.system("./install_dependencies_linux_mac.sh")
|
||||
|
||||
# REMOVE OLD BUILD FOLDER
|
||||
cwd = os.getcwd()
|
||||
root_path = os.path.abspath((cwd+"/../"))
|
||||
os.chdir(root_path)
|
||||
cmake_toolchain_file = ("'{root_path}/../ScreenPlay-vcpkg/scripts/buildsystems/vcpkg.cmake'").format(root_path=root_path)
|
||||
print("cmake_toolchain_file: %s " % cmake_toolchain_file)
|
||||
|
||||
build_folder = "build-" + cmake_target_triplet + "-" + args.build_type
|
||||
|
||||
if os.path.isdir(build_folder):
|
||||
print("Remove previous build folder")
|
||||
shutil.rmtree(build_folder)
|
||||
|
||||
|
||||
os.mkdir(build_folder)
|
||||
os.chdir(root_path + "/" + build_folder)
|
||||
|
||||
cmake_configure_command = """cmake ../
|
||||
-DCMAKE_PREFIX_PATH={prefix_path}
|
||||
-DCMAKE_BUILD_TYPE={type}
|
||||
-DCMAKE_TOOLCHAIN_FILE={toolchain}
|
||||
-DVCPKG_TARGET_TRIPLET={triplet}
|
||||
-G "CodeBlocks - Ninja"
|
||||
-B.
|
||||
""".format(
|
||||
type=args.build_type,
|
||||
prefix_path=cmake_prefix_path,
|
||||
triplet=cmake_target_triplet,
|
||||
toolchain=cmake_toolchain_file).replace("\n", "")
|
||||
|
||||
print("cmake_configure_command: %s" % cmake_configure_command)
|
||||
|
||||
process = subprocess.run(cmake_configure_command, capture_output=True,shell=True)
|
||||
|
||||
if process.returncode != 0:
|
||||
sys.exit(process.returncode)
|
||||
|
||||
os.system("cmake --build . --target all")
|
||||
os.chdir("bin")
|
||||
|
||||
os.system(("{deploy_executable} --{type} --qmldir ../../ScreenPlay/qml ScreenPlay{executable_file_ending}").format(
|
||||
type=args.build_type,
|
||||
executable_file_ending=executable_file_ending,
|
||||
deploy_executable=deploy_executable))
|
||||
|
||||
os.system(("{deploy_executable} --{type} --qmldir ../../ScreenPlayWidget ScreenPlayWidget{executable_file_ending}").format(
|
||||
type=args.build_type,
|
||||
executable_file_ending=executable_file_ending,
|
||||
deploy_executable=deploy_executable))
|
||||
|
||||
os.system(("{deploy_executable} --{type} --qmldir ../../ScreenPlayWallpaper ScreenPlayWallpaper{executable_file_ending}").format(
|
||||
type=args.build_type,
|
||||
executable_file_ending=executable_file_ending,
|
||||
deploy_executable=deploy_executable))
|
||||
|
||||
|
||||
file_endings = [".ninja_deps", ".ninja", ".ninja_log", ".lib", ".exp",
|
||||
".manifest", ".cmake", ".cbp", "CMakeCache.txt"]
|
||||
|
||||
for filename in os.listdir(os.getcwd()):
|
||||
for ending in file_endings:
|
||||
if filename.endswith(ending):
|
||||
full_file_path = os.path.join(os.getcwd(), filename)
|
||||
print("Remove: %s" % full_file_path)
|
||||
os.remove(full_file_path)
|
17
Tools/format-cmake.py
Normal file
17
Tools/format-cmake.py
Normal file
@ -0,0 +1,17 @@
|
||||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
for root, dirnames, filenames in os.walk('..'):
|
||||
for filename in fnmatch.filter(filenames, 'CMakeLists.txt'):
|
||||
print("cmake-format -c ../.cmake-format.py -i " + root + "/" + filename)
|
||||
os.system("cmake-format -c ../.cmake-format.py -i %s" % ((root + "/" + filename)))
|
||||
|
||||
# Check if all files are formatter
|
||||
output = subprocess.check_output("git diff", shell=True)
|
||||
|
||||
if output:
|
||||
print("Git diff is not empty. This means your CMakeLists.txt file was not formatted!")
|
||||
#print(output)
|
||||
sys.exit(1)
|
22
Tools/format-cpp.py
Normal file
22
Tools/format-cpp.py
Normal file
@ -0,0 +1,22 @@
|
||||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
executable = "clang-format"
|
||||
if os.name == 'nt':
|
||||
executable += ".exe"
|
||||
|
||||
for root, dirnames, files in os.walk('../'):
|
||||
for filename in files:
|
||||
if filename.endswith(('.cpp', '.h')):
|
||||
print(executable, root+"/"+filename)
|
||||
os.system(" %s -style=file -i %s" % (executable, (root + "/" + filename)))
|
||||
|
||||
# Check if all files are formatter
|
||||
output = subprocess.check_output("git diff", shell=True)
|
||||
|
||||
if output:
|
||||
print("Git diff is not empty. This means your code was not formatted via %s!" % executable)
|
||||
print(output)
|
||||
sys.exit(1)
|
@ -1,8 +1,9 @@
|
||||
git submodule update --init
|
||||
git submodule update --recursive
|
||||
cd Common
|
||||
git clone https://github.com/microsoft/vcpkg.git
|
||||
cd vcpkg
|
||||
cd ..
|
||||
cd ..
|
||||
git clone https://github.com/microsoft/vcpkg.git ScreenPlay-vcpkg
|
||||
cd ScreenPlay-vcpkg
|
||||
git pull
|
||||
# master 10.09.2020 - 18ab4b72a26284f0df28295ce7bf9b21c96f20f4
|
||||
git checkout 18ab4b72a26284f0df28295ce7bf9b21c96f20f4
|
||||
@ -11,7 +12,7 @@ chmod +x bootstrap-vcpkg.sh
|
||||
chmod +x vcpkg
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
./vcpkg install openssl-unix sentry-native --triplet x64-osx --recurse
|
||||
./vcpkg install openssl-unix sentry-native doctest benchmark --triplet x64-osx --recurse
|
||||
else
|
||||
./vcpkg install openssl-unix sentry-native --triplet x64-linux --recurse
|
||||
./vcpkg install openssl-unix sentry-native doctest benchmark --triplet x64-linux --recurse
|
||||
fi
|
@ -1,18 +1,19 @@
|
||||
git submodule update --init
|
||||
git submodule update --recursive
|
||||
cd Common
|
||||
git clone https://github.com/microsoft/vcpkg.git
|
||||
cd vcpkg
|
||||
cd ..
|
||||
cd ..
|
||||
git clone https://github.com/microsoft/vcpkg.git ScreenPlay-vcpkg
|
||||
cd ScreenPlay-vcpkg
|
||||
git pull
|
||||
rem master 10.09.2020 - 18ab4b72a26284f0df28295ce7bf9b21c96f20f4
|
||||
git checkout 18ab4b72a26284f0df28295ce7bf9b21c96f20f4
|
||||
call bootstrap-vcpkg.bat
|
||||
|
||||
rem Install vcpkg dependencies
|
||||
vcpkg.exe install openssl sentry-native --triplet x64-windows --recurse
|
||||
vcpkg.exe install openssl sentry-native doctest benchmark --triplet x64-windows --recurse
|
||||
|
||||
cd ..
|
||||
cd ..
|
||||
cd ScreenPlay
|
||||
|
||||
rem Download 7-zip
|
||||
curl.exe -L https://www.7-zip.org/a/7z1900.msi --ssl-no-revoke --output 7z.msi
|
13
Tools/lint-cmake.py
Normal file
13
Tools/lint-cmake.py
Normal file
@ -0,0 +1,13 @@
|
||||
import fnmatch
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
executable = "cmake-lint"
|
||||
if os.name == 'nt':
|
||||
executable += ".exe"
|
||||
|
||||
for root, dirnames, filenames in os.walk('../'):
|
||||
for filename in fnmatch.filter(filenames, 'CMakeLists.txt'):
|
||||
print(executable, root + "/" + filename)
|
||||
os.system(" %s %s" % (executable, (root + "/" + filename)))
|
Loading…
Reference in New Issue
Block a user