diff --git a/CMakeLists.txt b/CMakeLists.txt index bfe03dca..c4b82a9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,7 @@ endif() set(VCPKG_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../ScreenPlay-vcpkg") set(VCPKG_INSTALLED_PATH "${VCPKG_PATH}/installed/${VCPKG_ARCH}") + find_package(Git REQUIRED) if(WIN32) set(date_command "CMD") @@ -56,7 +57,7 @@ execute_process( OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE) -add_compile_definitions(COMPILE_INFO="${BUILD_DATE} + ${GIT_COMMIT_HASH}") +add_compile_definitions(COMPILE_INFO="Build Date: ${BUILD_DATE}. Git Hash: ${GIT_COMMIT_HASH}. ") add_compile_definitions(SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}") add_compile_definitions(SCREENPLAY_STEAM="${SCREENPLAY_STEAM}") @@ -76,6 +77,9 @@ add_subdirectory(CMake) if(${SCREENPLAY_STEAM}) add_subdirectory(ScreenPlayWorkshop) +else() + # Only add target SteamSDKQtEnums + add_subdirectory(ScreenPlayWorkshop/SteamSDK) endif() if(WIN32) diff --git a/ScreenPlay/CMakeLists.txt b/ScreenPlay/CMakeLists.txt index b5604ccc..75053648 100644 --- a/ScreenPlay/CMakeLists.txt +++ b/ScreenPlay/CMakeLists.txt @@ -71,7 +71,6 @@ set(QML qml/Monitors/MonitorsProjectSettingItem.qml qml/Navigation/Navigation.qml qml/Navigation/NavigationItem.qml - qml/Navigation/NavigationWallpaperConfiguration.qml qml/Monitors/DefaultVideoControls.qml qml/Common/TagSelector.qml qml/Common/Tag.qml @@ -146,6 +145,7 @@ list( ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_it_IT.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_nl_NL.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_de_DE.ts + ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_pl_PL.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_zh_CN.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_pt_BR.ts ${CMAKE_CURRENT_SOURCE_DIR}/translations/ScreenPlay_es_ES.ts @@ -204,7 +204,7 @@ target_link_libraries( Qt6::Svg Qt6::WebEngineQuick Qt6::WebEngineCore - SteamSDK) + SteamSDKQtEnums) if(${TESTS_ENABLED}) add_executable(tst_ScreenPlay tests/tst_main.cpp) diff --git a/ScreenPlay/Resources.qrc b/ScreenPlay/Resources.qrc index 85d1d5dd..625e5a34 100644 --- a/ScreenPlay/Resources.qrc +++ b/ScreenPlay/Resources.qrc @@ -148,5 +148,11 @@ translations/ScreenPlay_it_IT.ts qml/Create/WizardsFiles/HTMLWallpaperMain.html qml/Create/WizardsFiles/HTMLWidgetMain.html + assets/icons/icon_minimize.svg + assets/icons/icon_video_settings_black_24dp.svg + qml/Create/WizardsFiles/QMLWallpaperMain.qml + qml/Create/WizardsFiles/QMLWidgetMain.qml + translations/ScreenPlay_pl_PL.qm + translations/ScreenPlay_pl_PL.ts diff --git a/ScreenPlay/assets/icons/icon_close_black_24dp.svg b/ScreenPlay/assets/icons/icon_close_black_24dp.svg new file mode 100644 index 00000000..989837ca --- /dev/null +++ b/ScreenPlay/assets/icons/icon_close_black_24dp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ScreenPlay/assets/icons/icon_minimize.svg b/ScreenPlay/assets/icons/icon_minimize.svg new file mode 100644 index 00000000..a5f54781 --- /dev/null +++ b/ScreenPlay/assets/icons/icon_minimize.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/ScreenPlay/assets/icons/icon_video_settings_black_24dp.svg b/ScreenPlay/assets/icons/icon_video_settings_black_24dp.svg new file mode 100644 index 00000000..1cd53c98 --- /dev/null +++ b/ScreenPlay/assets/icons/icon_video_settings_black_24dp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ScreenPlay/main.qml b/ScreenPlay/main.qml index 2f79f610..5c3473e2 100644 --- a/ScreenPlay/main.qml +++ b/ScreenPlay/main.qml @@ -15,18 +15,18 @@ import "qml/Workshop" as Workshop import "qml/Community" as Community ApplicationWindow { - id: window + id: root function setTheme(theme) { switch (theme) { case Settings.System: - window.Material.theme = Material.System; + root.Material.theme = Material.System; break; case Settings.Dark: - window.Material.theme = Material.Dark; + root.Material.theme = Material.Dark; break; case Settings.Light: - window.Material.theme = Material.Light; + root.Material.theme = Material.Light; break; } } @@ -38,7 +38,7 @@ ApplicationWindow { } if (name === "Installed") { - stackView.replace("qrc:/ScreenPlay/qml/" + name + "/" + name + ".qml", { + stackView.replace("qrc:/ScreenPlay/qml/Installed/Installed.qml", { "sidebar": sidebar }) return @@ -59,15 +59,23 @@ ApplicationWindow { // https://bugreports.qt.io/browse/QTBUG-86047 Material.accent: Material.color(Material.Orange) onVisibilityChanged: { - if (window.visibility === 2) + if (root.visibility === 2) ScreenPlay.installedListModel.reset(); } + onClosing: { + if (ScreenPlay.screenPlayManager.activeWallpaperCounter === 0 + && ScreenPlay.screenPlayManager.activeWidgetsCounter === 0) { + Qt.quit() + } + } Component.onCompleted: { setTheme(ScreenPlay.settings.theme); - switchPage("Installed"); + stackView.push("qrc:/ScreenPlay/qml/Installed/Installed.qml", { + "sidebar": sidebar + }) if (!ScreenPlay.settings.silentStart) - window.show(); + root.show(); } @@ -89,7 +97,7 @@ ApplicationWindow { Connections { function onRequestRaise() { - window.show(); + root.show(); } target: ScreenPlay.screenPlayManager @@ -103,10 +111,11 @@ ApplicationWindow { } Dialogs.CriticalError { - mainWindow: window + window: root } Common.TrayIcon { + window: root } StackView { @@ -192,6 +201,7 @@ ApplicationWindow { Navigation.Navigation { id: nav + window: root onChangePage: (name)=> { monitors.close(); diff --git a/ScreenPlay/qml/Common/Dialogs/CriticalError.qml b/ScreenPlay/qml/Common/Dialogs/CriticalError.qml index b27bbcaf..1c1779dc 100644 --- a/ScreenPlay/qml/Common/Dialogs/CriticalError.qml +++ b/ScreenPlay/qml/Common/Dialogs/CriticalError.qml @@ -9,7 +9,7 @@ import ScreenPlay 1.0 Dialog { id: root - property Window mainWindow + property ApplicationWindow window property string message modal: true @@ -22,7 +22,7 @@ Dialog { Connections { function onDisplayErrorPopup(msg) { root.message = msg; - root.mainWindow.show(); + root.window.show(); root.open(); } diff --git a/ScreenPlay/qml/Common/TrayIcon.qml b/ScreenPlay/qml/Common/TrayIcon.qml index 4a5e4e90..609b67cc 100644 --- a/ScreenPlay/qml/Common/TrayIcon.qml +++ b/ScreenPlay/qml/Common/TrayIcon.qml @@ -1,10 +1,12 @@ import QtQuick -import Qt.labs.platform 1.1 +import QtQuick.Window +import Qt.labs.platform import ScreenPlay 1.0 SystemTrayIcon { id: root + property var window visible: true icon.source: "qrc:/assets/icons/app.ico" tooltip: qsTr("ScreenPlay - Double click to change you settings.") diff --git a/ScreenPlay/qml/Monitors/DefaultVideoControls.qml b/ScreenPlay/qml/Monitors/DefaultVideoControls.qml index df5e2bb7..70176db2 100644 --- a/ScreenPlay/qml/Monitors/DefaultVideoControls.qml +++ b/ScreenPlay/qml/Monitors/DefaultVideoControls.qml @@ -114,7 +114,7 @@ ColumnLayout { "text": qsTr("Scale_Down") }] onActivated: { - ScreenPlay.screenPlayManager.setWallpaperValueAtMonitorIndex(activeMonitorIndex, "fillmode", settingsComboBox.currentText); + ScreenPlay.screenPlayManager.setWallpaperFillModeAtMonitorIndex(activeMonitorIndex,settingsComboBox.currentValue); } } diff --git a/ScreenPlay/qml/Monitors/MonitorSelection.qml b/ScreenPlay/qml/Monitors/MonitorSelection.qml index b6ca8212..8c82e595 100644 --- a/ScreenPlay/qml/Monitors/MonitorSelection.qml +++ b/ScreenPlay/qml/Monitors/MonitorSelection.qml @@ -62,7 +62,7 @@ Rectangle { } function resize() { - var absoluteDesktopSize = ScreenPlay.monitorListModel.getAbsoluteDesktopSize(); + var absoluteDesktopSize = ScreenPlay.monitorListModel.absoluteDesktopSize(); var isWidthGreaterThanHeight = false; var windowsDelta = 0; if (absoluteDesktopSize.width < absoluteDesktopSize.height) { @@ -135,18 +135,10 @@ Rectangle { delegate: MonitorSelectionItem { id: delegate - monitorID: m_monitorID - monitorName: m_name appID: m_appID - height: m_availableGeometry.height - width: m_availableGeometry.width - x: m_availableGeometry.x - y: m_availableGeometry.y - monitorManufacturer: m_manufacturer - monitorModel: m_model - monitorSize: m_availableGeometry + geometry: m_geometry fontSize: root.fontSize - index: m_number + index: m_index previewImage: m_previewImage installedType: m_installedType monitorWithoutContentSelectable: root.monitorWithoutContentSelectable @@ -167,15 +159,5 @@ Rectangle { } -// layer.effect: InnerShadow { -// cached: true -// fast: true -// smooth: true -// radius: 32 -// spread: 0.8 -// verticalOffset: 3 -// color: "#55000000" -// } - // Width of the Sidebar or Space that should be used } diff --git a/ScreenPlay/qml/Monitors/MonitorSelectionItem.qml b/ScreenPlay/qml/Monitors/MonitorSelectionItem.qml index d33f044c..2204dbf2 100644 --- a/ScreenPlay/qml/Monitors/MonitorSelectionItem.qml +++ b/ScreenPlay/qml/Monitors/MonitorSelectionItem.qml @@ -7,11 +7,14 @@ import ScreenPlay.Enums.InstalledType 1.0 Item { id: root - property rect monitorSize: Qt.rect(0, 0, 0, 0) - property string monitorModel - property string monitorManufacturer - property string monitorName - property string monitorID + property rect geometry + onGeometryChanged: { + root.width = geometry.width + root.height = geometry.height + root.x = geometry.x + root.y = geometry.y + } + property string previewImage property string appID property var installedType: InstalledType.QMLWallpaper @@ -34,7 +37,7 @@ Item { } Text { - text: monitorSize.width + "x" + monitorSize.height + text: geometry.width + "x" + geometry.height color: Material.foreground horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter diff --git a/ScreenPlay/qml/Monitors/Monitors.qml b/ScreenPlay/qml/Monitors/Monitors.qml index 1326bc58..e6d6b31c 100644 --- a/ScreenPlay/qml/Monitors/Monitors.qml +++ b/ScreenPlay/qml/Monitors/Monitors.qml @@ -83,7 +83,7 @@ Popup { monitorWithoutContentSelectable: false availableWidth: width - 20 availableHeight: 150 - function onRequestProjectSettings() { + onRequestProjectSettings: ( index, installedType, appID) => { if (installedType === InstalledType.VideoWallpaper) { videoControlWrapper.state = "visible"; customPropertiesGridView.visible = false; diff --git a/ScreenPlay/qml/Navigation/Navigation.qml b/ScreenPlay/qml/Navigation/Navigation.qml index a85cc851..208ab735 100644 --- a/ScreenPlay/qml/Navigation/Navigation.qml +++ b/ScreenPlay/qml/Navigation/Navigation.qml @@ -1,5 +1,7 @@ import QtQuick import QtQuick.Controls +import QtQuick.Layouts +import QtQuick.Window import QtQuick.Controls.Material import Qt5Compat.GraphicalEffects import QtQuick.Controls.Material.impl @@ -10,56 +12,57 @@ import "../Common" Rectangle { id: root - property string currentNavigationName: "" + property string currentNavigationName: "Installed" property var navArray: [navCreate, navWorkshop, navInstalled, navSettings, navCommunity] property bool navActive: true + property ApplicationWindow window + property int iconWidth: 16 + property int iconHeight: iconWidth signal changePage(string name) function setActive(active) { - navActive = active; + navActive = active if (active) - root.state = "enabled"; + root.state = "enabled" else - root.state = "disabled"; + root.state = "disabled" } function setNavigation(name) { - var i = 0; + var i = 0 for (; i < navArray.length; i++) { if (navArray[i].name === name) { - navArray[i].state = "active"; - root.currentNavigationName = name; + navArray[i].state = "active" + root.currentNavigationName = name } else { - navArray[i].state = "inactive"; + navArray[i].state = "inactive" } } } function onPageChanged(name) { if (!navActive) - return ; + return - root.changePage(name); - setNavigation(name); + root.changePage(name) + setNavigation(name) } height: 60 - clip: true width: 1366 color: Material.theme === Material.Light ? "white" : Material.background layer.enabled: true - MouseHoverBlocker { - } + MouseHoverBlocker {} Connections { function onRequestNavigationActive(isActive) { - setActive(isActive); + setActive(isActive) } function onRequestNavigation(nav) { - onPageChanged(nav); + onPageChanged(nav) } target: ScreenPlay.util @@ -128,10 +131,145 @@ Rectangle { onPageClicked: (name)=> {root.onPageChanged(name)} objectName: "settingsTab" } - } - NavigationWallpaperConfiguration { + Rectangle { + id:quickActionRowBackground + anchors.centerIn: quickActionRow + width: quickActionRow.width + 5 + height: quickActionRow.height - 16 + color: Material.theme === Material.Light ? Material.background : "#242424" + border.color: Material.theme === Material.Light ? Material.iconDisabledColor : Qt.darker(Material.background) + border.width: 1 + radius: 3 + } + + RowLayout { + id: quickActionRow + anchors { + top: parent.top + right: parent.right + rightMargin: 10 + bottom: parent.bottom + } + + property bool contentActive: ScreenPlay.screenPlayManager.activeWallpaperCounter > 0 + || ScreenPlay.screenPlayManager.activeWidgetsCounter > 0 + + onContentActiveChanged: { + if(!contentActive){ + miMuteAll.isMuted = false + miStopAll.isPlaying = false + } + } + + ToolButton { + id: miMuteAll + Layout.alignment: Qt.AlignVCenter + icon.source: "qrc:/assets/icons/icon_volume.svg" + icon.width: root.iconWidth + icon.height: root.iconHeight + enabled: quickActionRow.contentActive + + onClicked: isMuted = !isMuted + property bool isMuted: false + onIsMutedChanged: { + if (miMuteAll.isMuted) { + miMuteAll.icon.source = "qrc:/assets/icons/icon_volume.svg" + ScreenPlay.screenPlayManager.setAllWallpaperValue("muted", + "false") + } else { + miMuteAll.icon.source = "qrc:/assets/icons/icon_volume_mute.svg" + ScreenPlay.screenPlayManager.setAllWallpaperValue("muted", + "true") + } + } + + hoverEnabled: true + ToolTip.text: qsTr("Mute/Unmute all Wallpaper") + ToolTip.visible: hovered + } + ToolButton { + id: miStopAll + enabled: quickActionRow.contentActive + Layout.alignment: Qt.AlignVCenter + icon.source: "qrc:/assets/icons/icon_pause.svg" + icon.width: root.iconWidth + icon.height: root.iconHeight + onClicked: isPlaying = !isPlaying + property bool isPlaying: true + onIsPlayingChanged:{ + if (miStopAll.isPlaying) { + miStopAll.icon.source = "qrc:/assets/icons/icon_pause.svg" + ScreenPlay.screenPlayManager.setAllWallpaperValue( + "isPlaying", "true") + } else { + miStopAll.icon.source = "qrc:/assets/icons/icon_play.svg" + ScreenPlay.screenPlayManager.setAllWallpaperValue( + "isPlaying", "false") + } + } + hoverEnabled: true + ToolTip.text: qsTr("Pause/Play all Wallpaper") + ToolTip.visible: hovered + } + ToolButton { + id: miConfig + Layout.alignment: Qt.AlignVCenter + icon.source: "qrc:/assets/icons/icon_video_settings_black_24dp.svg" + icon.width: root.iconWidth + icon.height: root.iconHeight + onClicked: ScreenPlay.util.setToggleWallpaperConfiguration() + hoverEnabled: true + ToolTip.text: qsTr("Configure Wallpaper") + ToolTip.visible: hovered + } + + Rectangle { + color: Material.theme === Material.Light ? Material.iconDisabledColor : Qt.darker(Material.background) + height: quickActionRowBackground.height + width: 1 + } + + ToolButton { + id: miMinimize + Layout.alignment: Qt.AlignVCenter + icon.source: "qrc:/assets/icons/icon_minimize.svg" + icon.width: root.iconWidth + icon.height: root.iconHeight + onClicked: root.window.hide() + hoverEnabled: true + ToolTip.text: qsTr("Minimize to Tray") + ToolTip.visible: hovered + } + ToolButton { + id: miquit + Layout.alignment: Qt.AlignVCenter + icon.source: "qrc:/assets/icons/icon_close.svg" + icon.width: root.iconWidth + icon.height: root.iconHeight + onClicked: { + if(ScreenPlay.screenPlayManager.activeWallpaperCounter > 0 + && ScreenPlay.screenPlayManager.activeWidgetsCounter > 0){ + Qt.quit() + return + } + dialog.open() + } + hoverEnabled: true + ToolTip.text: qsTr("Exit") + ToolTip.visible: hovered + } + + Dialog { + id: dialog + anchors.centerIn: Overlay.overlay + title: qsTr("Are you sure you want to exit ScreenPlay? \nThis will shut down all Wallpaper and Widgets.") + standardButtons: Dialog.Ok | Dialog.Cancel + onAccepted: Qt.quit() + } + + } layer.effect: ElevationEffect { @@ -149,7 +287,6 @@ Rectangle { target: row opacity: 0.3 } - } ] transitions: [ @@ -161,7 +298,6 @@ Rectangle { target: row duration: 300 } - } ] } diff --git a/ScreenPlay/qml/Navigation/NavigationItem.qml b/ScreenPlay/qml/Navigation/NavigationItem.qml index ef42ea88..70e20388 100644 --- a/ScreenPlay/qml/Navigation/NavigationItem.qml +++ b/ScreenPlay/qml/Navigation/NavigationItem.qml @@ -24,7 +24,6 @@ Item { width: txtAmount.paintedWidth + txt.paintedWidth + icon.paintedWidth + 40 height: 60 state: "inactive" - clip: true onEnabledChanged: { if (!enabled) { navigationItem.width = 0; @@ -74,7 +73,7 @@ Item { anchors.left: txtAmount.right anchors.leftMargin: navigationItem.amount == "" ? 0 : 5 text: "name" - font.pointSize: 14 + font.pointSize: 12 color: Material.primaryTextColor anchors.verticalCenter: parent.verticalCenter font.family: ScreenPlay.settings.font diff --git a/ScreenPlay/qml/Navigation/NavigationWallpaperConfiguration.qml b/ScreenPlay/qml/Navigation/NavigationWallpaperConfiguration.qml deleted file mode 100644 index 17e22941..00000000 --- a/ScreenPlay/qml/Navigation/NavigationWallpaperConfiguration.qml +++ /dev/null @@ -1,127 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Material -import Qt5Compat.GraphicalEffects -import ScreenPlay 1.0 -import "../Common" - -Item { - id: root - - width: 390 - property bool active: ScreenPlay.screenPlayManager.activeWallpaperCounter > 0 - - anchors { - top: parent.top - right: parent.right - rightMargin: 20 - bottom: parent.bottom - } - - Connections { - function onActiveWallpaperCounterChanged() { - rippleEffect.trigger() - } - - target: ScreenPlay.screenPlayManager - } - - Pane { - anchors.centerIn: parent - contentWidth: activeMonitorName.contentWidth + image.width + 80 - contentHeight: parent.height - 10 - background: Item { - Rectangle { - id: bg - clip: true - anchors { - fill: parent - margins: 16 - } - color: "transparent" - border.color: root.active ? Material.accentColor : Material.iconDisabledColor - border.width: 1 - radius: 3 - } - - RippleEffect { - id: rippleEffect - - target: bg - } - } - - Behavior on contentWidth { - PropertyAnimation { - duration: 250 - easing.type: Easing.InOutQuart - } - } - - Text { - id: activeMonitorName - - horizontalAlignment: Text.AlignRight - color: root.active ? Material.primaryTextColor : Material.iconDisabledColor - font.pointSize: 12 - font.family: ScreenPlay.settings.font - text: root.active ? qsTr("Configurate active Wallpaper or Widgets") : qsTr( - "No active Wallpaper or Widgets") - - anchors { - right: image.right - rightMargin: 50 - verticalCenter: parent.verticalCenter - } - } - - Image { - id: image - - width: 28 - height: 24 - source: "qrc:/assets/icons/icon_monitor.svg" - layer { - effect: ColorOverlay { - color: root.active ? Material.color( - Material.Orange) : Material.iconDisabledColor - } - } - - anchors { - rightMargin: 30 - right: parent.right - verticalCenter: parent.verticalCenter - } - - Text { - id: txtAmountActiveWallpapers - - text: ScreenPlay.screenPlayManager.activeWallpaperCounter - + ScreenPlay.screenPlayManager.activeWidgetsCounter - horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter - color: root.active ? Material.color( - Material.Orange) : Material.iconDisabledColor - font.pointSize: 10 - font.bold: true - font.family: ScreenPlay.settings.font - anchors { - horizontalCenter: parent.horizontalCenter - bottom: parent.bottom - bottomMargin: 7 - } - } - } - - MouseArea { - id: ma - - anchors.fill: parent - cursorShape: Qt.PointingHandCursor - onClicked: { - ScreenPlay.util.setToggleWallpaperConfiguration() - } - } - } -} diff --git a/ScreenPlay/qml/Settings/Settings.qml b/ScreenPlay/qml/Settings/Settings.qml index c61f6ffa..a382e260 100644 --- a/ScreenPlay/qml/Settings/Settings.qml +++ b/ScreenPlay/qml/Settings/Settings.qml @@ -169,6 +169,9 @@ Item { }, { "value": Settings.De_DE, "text": "German" + }, { + "value": Settings.Pl_PL, + "text": "Polish" }, { "value": Settings.It_IT, "text": "Italian" diff --git a/ScreenPlay/src/installedlistmodel.cpp b/ScreenPlay/src/installedlistmodel.cpp index c132e0e0..65ad38af 100644 --- a/ScreenPlay/src/installedlistmodel.cpp +++ b/ScreenPlay/src/installedlistmodel.cpp @@ -200,12 +200,12 @@ void InstalledListModel::append(const QJsonObject& obj, const QString& folderNam */ void InstalledListModel::loadInstalledContent() { - if (m_loadContentFuture.isRunning()) { + if (m_isLoading) { qInfo() << "loadInstalledContent is already running. Skip."; return; } - - m_loadContentFuture = QtConcurrent::run([this]() { + m_isLoading = true; + auto unused = QtConcurrent::run([this]() { QFileInfoList list = QDir(m_globalVariables->localStoragePath().toLocalFile()).entryInfoList(QDir::NoDotAndDotDot | QDir::AllDirs); int counter = 0; @@ -239,6 +239,7 @@ void InstalledListModel::loadInstalledContent() } setCount(counter); emit installedLoadingFinished(); + m_isLoading = false; }); } diff --git a/ScreenPlay/src/installedlistmodel.h b/ScreenPlay/src/installedlistmodel.h index c20b3476..c552675a 100644 --- a/ScreenPlay/src/installedlistmodel.h +++ b/ScreenPlay/src/installedlistmodel.h @@ -124,7 +124,7 @@ private: QFileSystemWatcher m_fileSystemWatcher; QVector m_screenPlayFiles; int m_count { 0 }; - QFuture m_loadContentFuture; + std::atomic_bool m_isLoading { false }; const std::shared_ptr& m_globalVariables; }; diff --git a/ScreenPlay/src/monitorlistmodel.cpp b/ScreenPlay/src/monitorlistmodel.cpp index 36b92993..bc102582 100644 --- a/ScreenPlay/src/monitorlistmodel.cpp +++ b/ScreenPlay/src/monitorlistmodel.cpp @@ -37,15 +37,8 @@ QHash MonitorListModel::roleNames() const { static const QHash roles { { static_cast(MonitorRole::AppID), "m_appID" }, - { static_cast(MonitorRole::MonitorID), "m_monitorID" }, - { static_cast(MonitorRole::Name), "m_name" }, - { static_cast(MonitorRole::Size), "m_size" }, - { static_cast(MonitorRole::AvailableGeometry), "m_availableGeometry" }, - { static_cast(MonitorRole::AvailableVirtualGeometry), "m_availableVirtualGeometry" }, - { static_cast(MonitorRole::Number), "m_number" }, + { static_cast(MonitorRole::Index), "m_index" }, { static_cast(MonitorRole::Geometry), "m_geometry" }, - { static_cast(MonitorRole::Model), "m_model" }, - { static_cast(MonitorRole::Manufacturer), "m_manufacturer" }, { static_cast(MonitorRole::PreviewImage), "m_previewImage" }, { static_cast(MonitorRole::InstalledType), "m_installedType" }, }; @@ -86,32 +79,10 @@ QVariant MonitorListModel::data(const QModelIndex& index, int role) const } else { return QVariant(""); } - case MonitorRole::MonitorID: { - QScreen* screen = m_monitorList.at(row).m_screen; - - QVariant id = QString::number(screen->size().width()) - + "x" + QString::number(screen->size().height()) - + "_" + QString::number(screen->availableGeometry().x()) - + "x" + QString::number(screen->availableGeometry().y()); - - return id; - } - case MonitorRole::Name: - return m_monitorList.at(row).m_screen->name(); - case MonitorRole::Size: - return m_monitorList.at(row).m_screen->size(); - case MonitorRole::AvailableGeometry: - return m_monitorList.at(row).m_availableGeometry; - case MonitorRole::AvailableVirtualGeometry: - return m_monitorList.at(row).m_screen->availableVirtualGeometry(); - case MonitorRole::Number: - return m_monitorList.at(row).m_number; + case MonitorRole::Index: + return m_monitorList.at(row).m_index; case MonitorRole::Geometry: - return m_monitorList.at(row).m_screen->geometry(); - case MonitorRole::Model: - return m_monitorList.at(row).m_screen->model(); - case MonitorRole::Manufacturer: - return m_monitorList.at(row).m_screen->manufacturer(); + return m_monitorList.at(row).m_geometry; case MonitorRole::InstalledType: if (m_monitorList.at(row).m_activeWallpaper) { return static_cast(m_monitorList.at(row).m_activeWallpaper->type()); @@ -135,6 +106,43 @@ QVariant MonitorListModel::data(const QModelIndex& index, int role) const */ void MonitorListModel::loadMonitors() { + +#ifdef Q_OS_WIN + QModelIndex index; + ScreenPlayUtil::WinMonitorStats monitors; + + // This offset lets us center the monitor selection view in the center + int offsetX = 0; + int offsetY = 0; + const int moinitorCount = monitors.iMonitors.size(); + + for (int i = 0; i < moinitorCount; i++) { + const int x = monitors.rcMonitors[i].left; + const int y = monitors.rcMonitors[i].top; + if (x < 0) { + offsetX += (x * -1); + } + if (y < 0) { + offsetY += (y * -1); + } + } + + for (int i = 0; i < moinitorCount; i++) { + const int width = std::abs(monitors.rcMonitors[i].right - monitors.rcMonitors[i].left); + const int height = std::abs(monitors.rcMonitors[i].top - monitors.rcMonitors[i].bottom); + const int x = monitors.rcMonitors[i].left; + const int y = monitors.rcMonitors[i].top; + QRect geometry( + x + offsetX, + y + offsetY, + width, + height); + beginInsertRows(index, m_monitorList.size(), m_monitorList.size()); + m_monitorList.append(Monitor { i, geometry }); + endInsertRows(); + } +#else + QModelIndex index; int offsetX = 0; int offsetY = 0; @@ -148,7 +156,6 @@ void MonitorListModel::loadMonitors() } } - QModelIndex index; for (int i = 0; i < QApplication::screens().count(); i++) { QScreen* screen = QApplication::screens().at(i); @@ -166,6 +173,7 @@ void MonitorListModel::loadMonitors() m_monitorList.append(Monitor { i, availableVirtualGeometry, screen }); endInsertRows(); } +#endif emit monitorReloadCompleted(); } @@ -216,7 +224,7 @@ void MonitorListModel::closeWallpaper(const QString& appID) * \brief MonitorListModel::getAbsoluteDesktopSize * \return */ -QRect MonitorListModel::getAbsoluteDesktopSize() const +QRect MonitorListModel::absoluteDesktopSize() const { auto* app = static_cast(QGuiApplication::instance()); return app->screens().at(0)->availableVirtualGeometry(); @@ -248,7 +256,7 @@ void MonitorListModel::setWallpaperMonitor(const std::shared_ptr MonitorListModel::getAppIDByMonitorIndex(const int index) const { for (auto& monitor : m_monitorList) { - if (monitor.m_number == index && monitor.m_activeWallpaper) { + if (monitor.m_index == index && monitor.m_activeWallpaper) { return { monitor.m_activeWallpaper->appID() }; } } diff --git a/ScreenPlay/src/monitorlistmodel.h b/ScreenPlay/src/monitorlistmodel.h index 311ec59e..24adcd06 100644 --- a/ScreenPlay/src/monitorlistmodel.h +++ b/ScreenPlay/src/monitorlistmodel.h @@ -58,18 +58,15 @@ namespace ScreenPlay { struct Monitor { Monitor( - const int number, - const QRect& availableGeometry, - QScreen* screen) + const int index, + const QRect& geometry) { - m_number = number; - m_availableGeometry = availableGeometry; - m_screen = screen; + m_index = index; + m_geometry = geometry; } - QRect m_availableGeometry; - int m_number { 0 }; - QScreen* m_screen { nullptr }; + int m_index { 0 }; + QRect m_geometry; std::shared_ptr m_activeWallpaper { nullptr }; }; @@ -81,15 +78,8 @@ public: enum class MonitorRole { AppID = Qt::UserRole, - MonitorID, - Name, - Size, - AvailableGeometry, - AvailableVirtualGeometry, - Number, + Index, Geometry, - Model, - Manufacturer, PreviewImage, InstalledType, }; @@ -114,7 +104,7 @@ public slots: void reset(); void clearActiveWallpaper(); void closeWallpaper(const QString& appID); - QRect getAbsoluteDesktopSize() const; + QRect absoluteDesktopSize() const; void screenAdded(QScreen* screen) { diff --git a/ScreenPlay/src/screenplaymanager.cpp b/ScreenPlay/src/screenplaymanager.cpp index dcaaf14f..c15af494 100644 --- a/ScreenPlay/src/screenplaymanager.cpp +++ b/ScreenPlay/src/screenplaymanager.cpp @@ -335,13 +335,30 @@ bool ScreenPlayManager::setWallpaperValueAtMonitorIndex(const int index, const Q return false; } +/*! + \brief Set a wallpaper \a fillmode at a given \a index and converts the qml enum (int) + into the c++ enum class value. +*/ +bool ScreenPlayManager::setWallpaperFillModeAtMonitorIndex(const int index, const int fillmode) +{ + const auto fillModeTyped = static_cast(fillmode); + + if (auto appID = m_monitorListModel->getAppIDByMonitorIndex(index)) { + return setWallpaperValue(*appID, "fillmode", QVariant::fromValue(fillModeTyped).toString()); + } + + qWarning() << "Could net get appID from m_monitorListModel!"; + return false; +} + /*! \brief Convenient function to set a \a value at a given \a index and \a key for all wallaper. For exmaple used to mute all wallpaper. */ bool ScreenPlayManager::setAllWallpaperValue(const QString& key, const QString& value) { for (auto& wallpaper : m_screenPlayWallpapers) { - return setWallpaperValue(wallpaper->appID(), key, value); + if (!wallpaper->setWallpaperValue(key, value, true)) + return false; } return true; } diff --git a/ScreenPlay/src/screenplaymanager.h b/ScreenPlay/src/screenplaymanager.h index 6e76e86b..b93558e1 100644 --- a/ScreenPlay/src/screenplaymanager.h +++ b/ScreenPlay/src/screenplaymanager.h @@ -116,6 +116,7 @@ public slots: bool requestProjectSettingsAtMonitorIndex(const int index); bool setWallpaperValueAtMonitorIndex(const int index, const QString& key, const QString& value); + bool setWallpaperFillModeAtMonitorIndex(const int index, const int fillmode); bool setAllWallpaperValue(const QString& key, const QString& value); bool setWallpaperValue(const QString& appID, const QString& key, const QString& value); ScreenPlayWallpaper* getWallpaperByAppID(const QString& appID) const; diff --git a/ScreenPlay/src/screenplaywallpaper.cpp b/ScreenPlay/src/screenplaywallpaper.cpp index 389a1ec9..481cb4cc 100644 --- a/ScreenPlay/src/screenplaywallpaper.cpp +++ b/ScreenPlay/src/screenplaywallpaper.cpp @@ -174,6 +174,11 @@ void ScreenPlayWallpaper::processError(QProcess::ProcessError error) */ bool ScreenPlayWallpaper::setWallpaperValue(const QString& key, const QString& value, const bool save) { + if (!m_connection) { + qWarning() << "Cannot set value for unconnected wallpaper!"; + return false; + } + QJsonObject obj; obj.insert(key, value); @@ -203,7 +208,13 @@ void ScreenPlayWallpaper::setSDKConnection(std::unique_ptr connec { m_connection = std::move(connection); qInfo() << "[3/3] SDKConnection (Wallpaper) saved!"; + setIsConnected(true); + QObject::connect(m_connection.get(), &SDKConnection::disconnected, this, [this]() { + setIsConnected(false); + qInfo() << "disconnecetd;"; + + }); QTimer::singleShot(1000, this, [this]() { if (playbackRate() != 1.0) { setWallpaperValue("playbackRate", QString::number(playbackRate()), false); @@ -234,8 +245,10 @@ void ScreenPlayWallpaper::replace( const InstalledType::InstalledType type, const bool checkWallpaperVisible) { - if (!m_connection) + if (!m_connection) { + qWarning() << "Cannot replace for unconnected wallpaper!"; return; + } m_previewImage = previewImage; m_type = type; diff --git a/ScreenPlay/src/screenplaywallpaper.h b/ScreenPlay/src/screenplaywallpaper.h index 557921f1..fd15b06d 100644 --- a/ScreenPlay/src/screenplaywallpaper.h +++ b/ScreenPlay/src/screenplaywallpaper.h @@ -51,6 +51,8 @@ namespace ScreenPlay { class ScreenPlayWallpaper : public QObject { Q_OBJECT + Q_PROPERTY(bool isConnected READ isConnected WRITE setIsConnected NOTIFY isConnectedChanged) + Q_PROPERTY(QVector screenNumber READ screenNumber WRITE setScreenNumber NOTIFY screenNumberChanged) Q_PROPERTY(float volume READ volume WRITE setVolume NOTIFY volumeChanged) @@ -108,6 +110,7 @@ public: bool isLooping() const { return m_isLooping; } ProjectSettingsListModel* getProjectSettingsListModel() { return &m_projectSettingsListModel; } float playbackRate() const { return m_playbackRate; } + bool isConnected() const { return m_isConnected; } signals: void screenNumberChanged(QVector screenNumber); @@ -126,6 +129,8 @@ signals: void requestClose(const QString& appID); void error(const QString& msg); + void isConnectedChanged(bool isConnected); + public slots: void messageQuit(); void processExit(int exitCode, QProcess::ExitStatus exitStatus); @@ -225,6 +230,14 @@ public slots: emit playbackRateChanged(m_playbackRate); } + void setIsConnected(bool isConnected) + { + if (m_isConnected == isConnected) + return; + m_isConnected = isConnected; + emit isConnectedChanged(m_isConnected); + } + private: const std::shared_ptr m_globalVariables; std::unique_ptr m_connection; @@ -243,5 +256,6 @@ private: float m_playbackRate { 1.0f }; QTimer m_pingAliveTimer; QStringList m_appArgumentsList; + bool m_isConnected; }; } diff --git a/ScreenPlay/src/sdkconnection.cpp b/ScreenPlay/src/sdkconnection.cpp index 5ef313d8..bbadddc9 100644 --- a/ScreenPlay/src/sdkconnection.cpp +++ b/ScreenPlay/src/sdkconnection.cpp @@ -17,6 +17,8 @@ ScreenPlay::SDKConnection::SDKConnection(QLocalSocket* socket, QObject* parent) : QObject(parent) { m_socket = socket; + + connect(m_socket, &QLocalSocket::disconnected, this, &SDKConnection::disconnected); connect(m_socket, &QLocalSocket::readyRead, this, &SDKConnection::readyRead); connect(m_socket, &QLocalSocket::errorOccurred, this, [](QLocalSocket::LocalSocketError socketError) { qInfo() << "Localsocket error:" << socketError; diff --git a/ScreenPlay/src/sdkconnection.h b/ScreenPlay/src/sdkconnection.h index 74fbb572..bb576423 100644 --- a/ScreenPlay/src/sdkconnection.h +++ b/ScreenPlay/src/sdkconnection.h @@ -78,6 +78,7 @@ public: QString type() const { return m_type; } signals: + void disconnected(); void requestCloseAt(int at); void appIDChanged(QString appID); void monitorChanged(QVector monitor); diff --git a/ScreenPlay/src/settings.h b/ScreenPlay/src/settings.h index 0470eee3..00a43fa3 100644 --- a/ScreenPlay/src/settings.h +++ b/ScreenPlay/src/settings.h @@ -117,6 +117,7 @@ public: enum class Language { En_US, De_DE, + Pl_PL, It_IT, Ru_RU, Fr_FR, diff --git a/ScreenPlay/src/wizards.cpp b/ScreenPlay/src/wizards.cpp index 1ad9a541..149c2c2d 100644 --- a/ScreenPlay/src/wizards.cpp +++ b/ScreenPlay/src/wizards.cpp @@ -270,7 +270,7 @@ void Wizards::createGifWallpaper( const QString& file, const QVector& tags) { - QtConcurrent::run([=]() { + auto con = QtConcurrent::run([=]() { std::optional folderName = createTemporaryFolder(); if (!folderName.has_value()) { diff --git a/ScreenPlay/translations/ScreenPlay_.ts b/ScreenPlay/translations/ScreenPlay_.ts index 9eb22bf4..8d4f3fc8 100644 --- a/ScreenPlay/translations/ScreenPlay_.ts +++ b/ScreenPlay/translations/ScreenPlay_.ts @@ -758,15 +758,29 @@ Settings - - - NavigationWallpaperConfiguration - Configurate active Wallpaper or Widgets + Mute/Unmute all Wallpaper - No active Wallpaper or Widgets + Pause/Play all Wallpaper + + + + Configure Wallpaper + + + + Minimize to Tray + + + + Exit + + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. @@ -1005,10 +1019,6 @@ Version - - ScreenPlay Build Version - - Open Changelog @@ -1049,6 +1059,11 @@ Privacy + + ScreenPlay Build Version + + + SettingsExpander diff --git a/ScreenPlay/translations/ScreenPlay_de_DE.qm b/ScreenPlay/translations/ScreenPlay_de_DE.qm index 594f6bef..973249b4 100644 Binary files a/ScreenPlay/translations/ScreenPlay_de_DE.qm and b/ScreenPlay/translations/ScreenPlay_de_DE.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_de_DE.ts b/ScreenPlay/translations/ScreenPlay_de_DE.ts index 7f845a5d..05e38bd1 100644 --- a/ScreenPlay/translations/ScreenPlay_de_DE.ts +++ b/ScreenPlay/translations/ScreenPlay_de_DE.ts @@ -488,98 +488,98 @@ Importh264Convert AnalyseVideo... - Analysiere Video... + AnalyseVideo... Generating preview image... - Erzeuge Vorschaubild... + Generating preview image... Generating preview thumbnail image... - Erzeuge Vorschau-Miniaturbild... + Generating preview thumbnail image... Generating 5 second preview video... - Generiere ein 5-Sekunden-Vorschau-Video... + Generating 5 second preview video... Generating preview gif... - Generiere Vorschau-Gif... + Generating preview gif... Converting Audio... - Konvertiere Audio... + Converting Audio... Converting Video... This can take some time! - Video wird umgewandelt... Das kann etwas dauern! + Converting Video... This can take some time! Converting Video ERROR! - Konvertieren nicht erfolgreich! + Converting Video ERROR! Analyse Video ERROR! - Analyse des Videos schlug Fehl! + Analyse Video ERROR! Import a video to a wallpaper - Importiere ein Video zu ein Wallpaper + Import a video to a wallpaper Generating preview video... - Generiere Vorschau-Video... + Generating preview video... Name (required!) - Name (erforderlich!) + Name (required!) Description - Beschreibung + Description Youtube URL - YouTube-URL + Youtube URL Abort - Abbrechen + Abort Save - Speichern + Save Save Wallpaper... - Speicher Wallpaper... + Save Wallpaper... Importh264Init Import a .mp4 video - + Import a .mp4 video ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. Invalid file type. Must be valid h264 (*.mp4)! - + Invalid file type. Must be valid h264 (*.mp4)! Drop a *.mp4 file here or use 'Select file' below. - + Drop a *.mp4 file here or use 'Select file' below. Open Documentation - + Open Documentation Select file - Datei auswählen + Select file @@ -760,16 +760,31 @@ Bitte Konfiguriere deine Wallpaper noch erneut Settings Einstellungen - - - NavigationWallpaperConfiguration - Configurate active Wallpaper or Widgets - Konfiguriere aktive Wallpaper oder Widgets + Mute/Unmute all Wallpaper + Mute/Unmute all Wallpaper - No active Wallpaper or Widgets - Keine aktiven Wallpaper oder Widgets + Pause/Play all Wallpaper + Pause/Play all Wallpaper + + + Configure Wallpaper + Configure Wallpaper + + + Minimize to Tray + Minimize to Tray + + + Exit + Exit + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. @@ -1007,10 +1022,6 @@ Bitte Konfiguriere deine Wallpaper noch erneut Version Version - - ScreenPlay Build Version - ScreenPlay-Build-Version - Open Changelog Changelog öffnen @@ -1051,6 +1062,12 @@ Bitte Konfiguriere deine Wallpaper noch erneut Privacy Datenschutz + + ScreenPlay Build Version + + ScreenPlay Build Version + + SettingsExpander @@ -1067,15 +1084,15 @@ Bitte Konfiguriere deine Wallpaper noch erneut Video Import h264 (.mp4) - + Video Import h264 (.mp4) Video Import VP8 & VP9 (.webm) - + Video Import VP8 & VP9 (.webm) Video import (all types) - + Video import (all types) GIF Wallpaper @@ -1182,11 +1199,11 @@ Bitte Konfiguriere deine Wallpaper noch erneut StartInfo Free tools to help you to create wallpaper - + Free tools to help you to create wallpaper Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! @@ -1577,7 +1594,7 @@ Bitte Konfiguriere deine Wallpaper noch erneut Password Required To Kick Session - + Password Required To Kick Session Already Logged In Elsewhere diff --git a/ScreenPlay/translations/ScreenPlay_es_ES.qm b/ScreenPlay/translations/ScreenPlay_es_ES.qm index d697ae06..e3c8f6a0 100644 Binary files a/ScreenPlay/translations/ScreenPlay_es_ES.qm and b/ScreenPlay/translations/ScreenPlay_es_ES.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_es_ES.ts b/ScreenPlay/translations/ScreenPlay_es_ES.ts index 56f5997d..5df01bd9 100644 --- a/ScreenPlay/translations/ScreenPlay_es_ES.ts +++ b/ScreenPlay/translations/ScreenPlay_es_ES.ts @@ -5,15 +5,15 @@ ColorPicker Red - Red + Rojo Green - Green + Verde Blue - Blue + Azul RGB @@ -45,7 +45,7 @@ V: - V: + V: Alpha: @@ -60,7 +60,7 @@ Community News - News + Noticias Wiki @@ -68,15 +68,15 @@ Forum - Forum + Foro Issue List - Issue List + Lista de Problemas Contribute - Contribute + Contribuir Steam Workshop @@ -87,14 +87,14 @@ CommunityNavItem Open in browser - Open in browser + Abrir en el navegador CreateWallpaperInit Import any video type - Import any video type + Importar cualquier tipo de vídeo Depending on your PC configuration it is better to convert your wallpaper to a specific video codec. If both have bad performance you can also try a QML wallpaper! Supported video formats are: @@ -106,19 +106,19 @@ Set your preffered video codec: - Set your preffered video codec: + Establezca su códec de vídeo predeterminado: Quality slider. Lower value means better quality. - Quality slider. Lower value means better quality. + Deslizador de calidad. Un valor más bajo significa una mejor calidad. Open Documentation - Open Documentation + Abrir documentación Select file - Select file + Seleccionar archivo @@ -164,7 +164,7 @@ Converting Video... This can take some time! - Converting Video... This can take some time! + Convirtiendo vídeo... ¡Esto puede tardar un poco! Converting Video ERROR! @@ -192,7 +192,7 @@ Youtube URL - Youtube URL + URL de YouTube Abort @@ -200,7 +200,7 @@ Save - Save + Guardar Save Wallpaper... @@ -215,7 +215,7 @@ Playback rate - Playback rate + Velocidad de reproducción Current Video Time @@ -292,7 +292,7 @@ General - General + General Wallpaper name @@ -300,11 +300,11 @@ Created By - Created By + Creado por Tags - Tags + Etiquetas @@ -315,11 +315,11 @@ General - General + General Wallpaper name - Wallpaper name + Nombre del fondo Created By @@ -335,14 +335,14 @@ Preview Image - Preview Image + Imagen de previsualización HTMLWidget Create a HTML widget - Create a HTML widget + Crear un widget HTML General @@ -350,7 +350,7 @@ Widget name - Widget name + Nombre del widget Created by @@ -451,7 +451,7 @@ Save - Save + Guardar Save Wallpaper... @@ -462,7 +462,7 @@ ImportWebmInit Import a .webm video - Import a .webm video + Importar un vídeo .webm When importing webm we can skip the long conversion. When you get unsatisfying results with the ScreenPlay importer from 'ideo import and convert (all types)' you can also convert via the free and open source HandBrake! @@ -509,7 +509,7 @@ Converting Audio... - + Converting Audio... Converting Video... This can take some time! @@ -533,11 +533,11 @@ Name (required!) - + Name (required!) Description - + Description Youtube URL @@ -545,7 +545,7 @@ Abort - + Abort Save @@ -560,19 +560,19 @@ Importh264Init Import a .mp4 video - + Import a .mp4 video ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. Invalid file type. Must be valid h264 (*.mp4)! - + Invalid file type. Must be valid h264 (*.mp4)! Drop a *.mp4 file here or use 'Select file' below. - + Drop a *.mp4 file here or use 'Select file' below. Open Documentation @@ -637,7 +637,7 @@ LicenseSelector License - License + Licencia Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material for any purpose, even commercially. @@ -761,16 +761,31 @@ Settings Settings - - - NavigationWallpaperConfiguration - Configurate active Wallpaper or Widgets - Configurate active Wallpaper or Widgets + Mute/Unmute all Wallpaper + Mute/Unmute all Wallpaper - No active Wallpaper or Widgets - No active Wallpaper or Widgets + Pause/Play all Wallpaper + Pause/Play all Wallpaper + + + Configure Wallpaper + Configure Wallpaper + + + Minimize to Tray + Minimize to Tray + + + Exit + Exit + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. @@ -1008,10 +1023,6 @@ Version Version - - ScreenPlay Build Version - ScreenPlay Build Version - Open Changelog Open Changelog @@ -1052,6 +1063,12 @@ Privacy Privacy + + ScreenPlay Build Version + + ScreenPlay Build Version + + SettingsExpander @@ -1068,15 +1085,15 @@ Video Import h264 (.mp4) - + Video Import h264 (.mp4) Video Import VP8 & VP9 (.webm) - + Video Import VP8 & VP9 (.webm) Video import (all types) - + Video import (all types) GIF Wallpaper @@ -1183,11 +1200,11 @@ StartInfo Free tools to help you to create wallpaper - + Free tools to help you to create wallpaper Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! @@ -1578,7 +1595,7 @@ Password Required To Kick Session - + Password Required To Kick Session Already Logged In Elsewhere diff --git a/ScreenPlay/translations/ScreenPlay_fr_FR.qm b/ScreenPlay/translations/ScreenPlay_fr_FR.qm index 4049870a..837750da 100644 Binary files a/ScreenPlay/translations/ScreenPlay_fr_FR.qm and b/ScreenPlay/translations/ScreenPlay_fr_FR.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_fr_FR.ts b/ScreenPlay/translations/ScreenPlay_fr_FR.ts index f12e7b69..42179673 100644 --- a/ScreenPlay/translations/ScreenPlay_fr_FR.ts +++ b/ScreenPlay/translations/ScreenPlay_fr_FR.ts @@ -21,7 +21,7 @@ HSV - HSV + TSV R: @@ -265,15 +265,15 @@ Forum Download Wallpaper and Widgets from our forums manually. If you want to download Steam Workshop content you have to install ScreenPlay via Steam. - Download Wallpaper and Widgets from our forums manually. If you want to download Steam Workshop content you have to install ScreenPlay via Steam. + Téléchargez manuellement des fond d'écran et des widgets depuis notre forum. Si vous voulez télécharger du contenu Steam Workshop, vous devez installer ScreenPlay via Steam. Install Steam Version - Install Steam Version + Installer la version Steam Open In Browser - Open In Browser + Ouvrir dans le navigateur @@ -365,7 +365,7 @@ HeadlineSection Headline Section - Headline Section + Section de titre @@ -427,7 +427,7 @@ Import a video to a wallpaper - Import a video to a wallpaper + Convertir une vidéo en fond d'écran Generating preview video... @@ -466,15 +466,15 @@ When importing webm we can skip the long conversion. When you get unsatisfying results with the ScreenPlay importer from 'ideo import and convert (all types)' you can also convert via the free and open source HandBrake! - When importing webm we can skip the long conversion. When you get unsatisfying results with the ScreenPlay importer from 'ideo import and convert (all types)' you can also convert via the free and open source HandBrake! + Lors de l'importation de webm, vous pouvez ignorer l'étape de conversion. Lorsque vous obtenez des résultats insatisfaisants avec l'importateur de ScreenPlay via 'import et conversion de vidéo (tous types)' vous pouvez convertir au format webm via le logiciel HandBrake. Il est gratuit et open source! Invalid file type. Must be valid VP8 or VP9 (*.webm)! - Invalid file type. Must be valid VP8 or VP9 (*.webm)! + Type de fichier invalide. Doit être un VP8 ou VP9 (*.webm)! Drop a *.webm file here or use 'Select file' below. - Drop a *.webm file here or use 'Select file' below. + Déposez un fichier *.webm ici ou utilisez 'Sélectionner un fichier' ci-dessous. Open Documentation @@ -489,39 +489,39 @@ Importh264Convert AnalyseVideo... - AnalyseVidéo... + AnalyseVideo... Generating preview image... - Génération de l'image d'aperçu... + Generating preview image... Generating preview thumbnail image... - Génération de la miniature de l’aperçu... + Generating preview thumbnail image... Generating 5 second preview video... - Génération d’une vidéo d’aperçu de 5 secondes... + Generating 5 second preview video... Generating preview gif... - + Generating preview gif... Converting Audio... - Conversion de l’audio... + Converting Audio... Converting Video... This can take some time! - + Converting Video... This can take some time! Converting Video ERROR! - + Converting Video ERROR! Analyse Video ERROR! - Erreur d'Analyse Vidéo ! + Analyse Video ERROR! Import a video to a wallpaper @@ -529,11 +529,11 @@ Generating preview video... - Génération de la vidéo d'aperçu... + Generating preview video... Name (required!) - Nom (requis!) + Name (required!) Description @@ -541,46 +541,46 @@ Youtube URL - URL Youtube  + Youtube URL Abort - + Abort Save - + Save Save Wallpaper... - Enregistrer le fond d'écran + Save Wallpaper... Importh264Init Import a .mp4 video - + Import a .mp4 video ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. Invalid file type. Must be valid h264 (*.mp4)! - + Invalid file type. Must be valid h264 (*.mp4)! Drop a *.mp4 file here or use 'Select file' below. - + Drop a *.mp4 file here or use 'Select file' below. Open Documentation - Ouvrir la documentation + Open Documentation Select file - Sélectionner un fichier + Select file @@ -595,7 +595,7 @@ Pull to refresh! - Pull to refresh! + Faire glisser pour actualiser! Get more Wallpaper & Widgets via the Steam workshop! @@ -645,7 +645,7 @@ You grant other to remix your work and change the license to their liking. - You grant other to remix your work and change the license to their liking. + Vous permettez aux autres utilisateurs de réutiliser et altérer votre travail et de changer la licence selon leur souhait. Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material. You are not allowed to use it commercially! @@ -657,7 +657,7 @@ You grant other to remix your work but it must remain under the GPLv3. We recommend this license for all code wallpaper! - You grant other to remix your work but it must remain under the GPLv3. We recommend this license for all code wallpaper! + Vous permettez aux autres utilisateurs de réutiliser et altérer votre travail, mais il doit rester sous licence GPLv3. Nous recommandons cette licence pour tout les fonds d'écrans codé. You do not share any rights and nobody is allowed to use or remix it (Not recommended). Can also used to credit work others. @@ -669,224 +669,239 @@ Your monitor setup changed! Please configure your wallpaper again. - Your monitor setup changed! - Please configure your wallpaper again. + La configuration de votre écran a changé! + Veuillez configurer votre fond d'écran à nouveau. Monitors Wallpaper Configuration - Wallpaper Configuration + Configuration du fond d'écran Remove selected - Remove selected + Retirer l'écran sélectionné Remove - Remove + Retirer Wallpapers - Wallpapers + Fonds d’écran Widgets - Widgets + Widgets MonitorsProjectSettingItem Set color - Set color + Définir la couleur Please choose a color - Please choose a color + Veuillez choisir une couleur Navigation All - All + Tout Scenes - Scenes + Scènes Videos - Videos + Vidéos Widgets - Widgets + Widgets Install Date Ascending - Install Date Ascending + Date d'installation croissante Install Date Descending - Install Date Descending + Date d'installation décroissante Subscribed items: - Subscribed items: + Éléments souscrits : Upload to the Steam Workshop - Upload to the Steam Workshop + Uploader sur le Steam Workshop Create - Create + Créer Workshop - Workshop + Workshop Installed - Installed + Installé Community - Community + Communauté Settings - Settings - - - - NavigationWallpaperConfiguration - - Configurate active Wallpaper or Widgets - Configurate active Wallpaper or Widgets + Paramètres - No active Wallpaper or Widgets - No active Wallpaper or Widgets + Mute/Unmute all Wallpaper + Mute/Unmute all Wallpaper + + + Pause/Play all Wallpaper + Pause/Play all Wallpaper + + + Configure Wallpaper + Configure Wallpaper + + + Minimize to Tray + Minimize to Tray + + + Exit + Exit + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. PopupOffline You need to run Steam for this. steamErrorRestart: %1 - steamErrorAPIInit: %2 - You need to run Steam for this. steamErrorRestart: %1 - steamErrorAPIInit: %2 + Vous devez exécuter Steam pour cela. steamErrorRestart: %1 - steamErrorAPIInit: %2 Back - Back + Précédent PopupSteamWorkshopAgreement You Need to Agree To The Steam Subscriber Agreement First - You Need to Agree To The Steam Subscriber Agreement First + Vous devez d'abord accepter l'Accord de Souscription Steam REQUIRES INTERNET CONNECTION AND FREE STEAM ACCOUNT TO ACTIVATE. Notice: Product offered subject to your acceptance of the Steam Subscriber Agreement (SSA). You must activate this product via the Internet by registering for a Steam account and accepting the SSA. Please see https://store.steampowered.com/subscriber_agreement/ to view the SSA prior to purchase. If you do not agree with the provisions of the SSA, you should return this game unopened to your retailer in accordance with their return policy. - REQUIRES INTERNET CONNECTION AND FREE STEAM ACCOUNT TO ACTIVATE. Notice: Product offered subject to your acceptance of the Steam Subscriber Agreement (SSA). You must activate this product via the Internet by registering for a Steam account and accepting the SSA. Please see https://store.steampowered.com/subscriber_agreement/ to view the SSA prior to purchase. If you do not agree with the provisions of the SSA, you should return this game unopened to your retailer in accordance with their return policy. + REQUIÈRE UNE CONNEXION INTERNET ET UN COMPTE STEAM GRATUIT POUR L'ACTIVATION. Avertissement: Produit offert sous réserve de votre acceptation de l'Accord de Souscription Steam (ASS). Vous devez activer ce produit via Internet en vous enregistrant sur un compte Steam et en acceptant l'ASS. Veuillez consulter https://store.steampowered.com/subscriber_agreement/ pour consulter l'ASS avant l'achat. Si vous n'êtes pas d'accord avec les dispositions de l'ASS, vous devriez retourner ce jeu non ouvert à votre détaillant conformément à leur politique de retour. View The Steam Subscriber Agreement - View The Steam Subscriber Agreement + Voir l'Accord de Souscription Steam Accept Steam Workshop Agreement - Accept Steam Workshop Agreement + Accepter l'Accord de Souscription Steam QMLWallpaper Create a QML Wallpaper - Create a QML Wallpaper + Créer un fond d'écran QML General - General + Général Wallpaper name - Wallpaper name + Nom du fond d'écran Created By - Created By + Créé par Description - Description + Description License & Tags - License & Tags + Licence & Tags Preview Image - Preview Image + Image d'aperçu QMLWidget Create a QML widget - Create a QML widget + Créer un widget QML General - General + Général Widget name - Widget name + Nom du Widget Created by - Created by + Créé par Tags - Tags + Tags SaveNotification Profile saved successfully! - Profile saved successfully! + Profil enregistré avec succès! ScreenPlayItem NEW - NEW + NOUVEAU Search Search for Wallpaper & Widgets - Search for Wallpaper & Widgets + Recherche de fond d'écran et de widgets Settings General - General + Général Autostart - Autostart + Démarrage automatique ScreenPlay will start with Windows and will setup your Desktop every time for you. @@ -1008,10 +1023,6 @@ Version Version - - ScreenPlay Build Version - ScreenPlay Build Version - Open Changelog Open Changelog @@ -1034,30 +1045,36 @@ If your ScreenPlay missbehaves this is a good way to look for answers. This shows all logs and warning during runtime. - If your ScreenPlay missbehaves this is a good way to look for answers. This shows all logs and warning during runtime. + Si ScreenPlay ne fonctionne pas correctement, c'est une bonne façon de chercher des réponses. Cela montre tous les logs et les avertissements émis pendant l'exécution. Show Logs - Show Logs + Afficher les logs Data Protection - Data Protection + Protection des données We use you data very carefully to improve ScreenPlay. We do not sell or share this (anonymous) information with others! - We use you data very carefully to improve ScreenPlay. We do not sell or share this (anonymous) information with others! + Nous utilisons vos données exclusivement pour améliorer ScreenPlay. Nous ne vendons pas ou ne partageons pas ces données (anonyme) avec d'autres ! Privacy - Privacy + Confidentialité + + + ScreenPlay Build Version + + ScreenPlay Build Version + SettingsExpander Copy text to clipboard - Copy text to clipboard + Copier le texte dans le presse-papiers @@ -1068,47 +1085,47 @@ Video Import h264 (.mp4) - + Video Import h264 (.mp4) Video Import VP8 & VP9 (.webm) - + Video Import VP8 & VP9 (.webm) Video import (all types) - + Video import (all types) GIF Wallpaper - GIF Wallpaper + Fond d'écran GIF QML Wallpaper - QML Wallpaper + Fond d'écran QML HTML5 Wallpaper - HTML5 Wallpaper + Fond d'écran HTML5 Website Wallpaper - Website Wallpaper + Fond d'écran Site web QML Widget - QML Widget + Widget QML HTML Widget - HTML Widget + Widget HTML Set Wallpaper - Set Wallpaper + Définir le fond d'écran Set Widget - Set Widget + Définir le Widget Headline @@ -1116,139 +1133,139 @@ Select a Monitor to display the content - Select a Monitor to display the content + Sélectionnez un écran pour afficher le contenu Set Volume - Set Volume + Régler le volume Fill Mode - Fill Mode + Mode de remplissage Stretch - Stretch + Étirer Fill - Fill + Remplir Contain - Contain + Contenir Cover - Cover + Couvrir Scale-Down - Scale-Down + Réduire Size: - Size: + Taille : No description... - No description... + Pas de description ... Click here if you like the content - Click here if you like the content + Cliquez ici si vous aimez le contenu Click here if you do not like the content - Click here if you do not like the content + Cliquez ici si vous n'aimez pas le contenu Subscribtions: - Subscribtions: + Abonnements : Open In Steam - Open In Steam + Ouvrir dans Steam Subscribed! - Subscribed! + Abonné! Subscribe - Subscribe + S'abonner StartInfo Free tools to help you to create wallpaper - + Free tools to help you to create wallpaper Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! SteamNotAvailable Could not load steam integration! - Could not load steam integration! + Impossible de charger l'intégration Steam! SteamProfile Back - Back + Précédent Forward - Forward + Suivant SteamWorkshopStartPage Loading - Loading + Chargement Download now! - Download now! + Télécharger maintenant! Downloading... - Downloading... + Téléchargement... Details - Details + Détails Open In Steam - Open In Steam + Ouvrir dans Steam Profile - Profile + Profil Upload - Upload + Uploader Search for Wallpaper and Widgets... - Search for Wallpaper and Widgets... + Recherche de fond d'écran et de widgets... Open Workshop in Steam - Open Workshop in Steam + Ouvrir le Workshop dans Steam Ranked By Vote - Ranked By Vote + Classé par vote Publication Date @@ -1578,7 +1595,7 @@ Password Required To Kick Session - + Password Required To Kick Session Already Logged In Elsewhere diff --git a/ScreenPlay/translations/ScreenPlay_it_IT.qm b/ScreenPlay/translations/ScreenPlay_it_IT.qm index 5c81ce55..57ca2fd6 100644 Binary files a/ScreenPlay/translations/ScreenPlay_it_IT.qm and b/ScreenPlay/translations/ScreenPlay_it_IT.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_it_IT.ts b/ScreenPlay/translations/ScreenPlay_it_IT.ts index 4c071d37..c0401d07 100644 --- a/ScreenPlay/translations/ScreenPlay_it_IT.ts +++ b/ScreenPlay/translations/ScreenPlay_it_IT.ts @@ -489,98 +489,98 @@ Importh264Convert AnalyseVideo... - Analizza Video... + AnalyseVideo... Generating preview image... - + Generating preview image... Generating preview thumbnail image... - Generazione miniatura di anteprima... + Generating preview thumbnail image... Generating 5 second preview video... - Generazione anteprima video di 5 secondi... + Generating 5 second preview video... Generating preview gif... - Generazione gif di anteprima... + Generating preview gif... Converting Audio... - Conversione Audio... + Converting Audio... Converting Video... This can take some time! - Conversione Video... Potrebbe richiedere un po' di tempo! + Converting Video... This can take some time! Converting Video ERROR! - Conversione Video ERRORE! + Converting Video ERROR! Analyse Video ERROR! - Analisi Video ERRORE! + Analyse Video ERROR! Import a video to a wallpaper - Importa un video in uno sfondo + Import a video to a wallpaper Generating preview video... - Generazione video di anteprima... + Generating preview video... Name (required!) - Nome (obbligatorio) + Name (required!) Description - Descrizione + Description Youtube URL - URL Youtube + Youtube URL Abort - Interrompi + Abort Save - Salva + Save Save Wallpaper... - Salva sfondo... + Save Wallpaper... Importh264Init Import a .mp4 video - + Import a .mp4 video ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. Invalid file type. Must be valid h264 (*.mp4)! - + Invalid file type. Must be valid h264 (*.mp4)! Drop a *.mp4 file here or use 'Select file' below. - + Drop a *.mp4 file here or use 'Select file' below. Open Documentation - Apri documentazione + Open Documentation Select file - Seleziona file + Select file @@ -761,16 +761,31 @@ Settings Impostazioni - - - NavigationWallpaperConfiguration - Configurate active Wallpaper or Widgets - Configura Sfondi o Widgets attivi + Mute/Unmute all Wallpaper + Mute/Unmute all Wallpaper - No active Wallpaper or Widgets - Nessuno Sfondo o Widget attivi + Pause/Play all Wallpaper + Pause/Play all Wallpaper + + + Configure Wallpaper + Configure Wallpaper + + + Minimize to Tray + Minimize to Tray + + + Exit + Exit + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. @@ -1008,10 +1023,6 @@ Version Versione - - ScreenPlay Build Version - Versione Build di ScreenPlay - Open Changelog Apri Changelog @@ -1052,6 +1063,12 @@ Privacy Privacy + + ScreenPlay Build Version + + ScreenPlay Build Version + + SettingsExpander @@ -1068,15 +1085,15 @@ Video Import h264 (.mp4) - + Video Import h264 (.mp4) Video Import VP8 & VP9 (.webm) - + Video Import VP8 & VP9 (.webm) Video import (all types) - + Video import (all types) GIF Wallpaper @@ -1183,11 +1200,11 @@ StartInfo Free tools to help you to create wallpaper - + Free tools to help you to create wallpaper Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! @@ -1578,7 +1595,7 @@ Password Required To Kick Session - + Password Required To Kick Session Already Logged In Elsewhere diff --git a/ScreenPlay/translations/ScreenPlay_ko_KR.qm b/ScreenPlay/translations/ScreenPlay_ko_KR.qm index 892b2a8a..b073bae5 100644 Binary files a/ScreenPlay/translations/ScreenPlay_ko_KR.qm and b/ScreenPlay/translations/ScreenPlay_ko_KR.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_ko_KR.ts b/ScreenPlay/translations/ScreenPlay_ko_KR.ts index 93437fca..5cc74a50 100644 --- a/ScreenPlay/translations/ScreenPlay_ko_KR.ts +++ b/ScreenPlay/translations/ScreenPlay_ko_KR.ts @@ -493,27 +493,27 @@ Generating preview image... - + Generating preview image... Generating preview thumbnail image... - + Generating preview thumbnail image... Generating 5 second preview video... - + Generating 5 second preview video... Generating preview gif... - + Generating preview gif... Converting Audio... - + Converting Audio... Converting Video... This can take some time! - + Converting Video... This can take some time! Converting Video ERROR! @@ -541,15 +541,15 @@ Youtube URL - + Youtube URL Abort - + Abort Save - + Save Save Wallpaper... @@ -560,27 +560,27 @@ Importh264Init Import a .mp4 video - + Import a .mp4 video ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. Invalid file type. Must be valid h264 (*.mp4)! - + Invalid file type. Must be valid h264 (*.mp4)! Drop a *.mp4 file here or use 'Select file' below. - + Drop a *.mp4 file here or use 'Select file' below. Open Documentation - 문서 열기 + Open Documentation Select file - 파일 선택 + Select file @@ -761,16 +761,31 @@ Settings Settings - - - NavigationWallpaperConfiguration - Configurate active Wallpaper or Widgets - Configurate active Wallpaper or Widgets + Mute/Unmute all Wallpaper + Mute/Unmute all Wallpaper - No active Wallpaper or Widgets - No active Wallpaper or Widgets + Pause/Play all Wallpaper + Pause/Play all Wallpaper + + + Configure Wallpaper + Configure Wallpaper + + + Minimize to Tray + Minimize to Tray + + + Exit + Exit + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. @@ -1008,10 +1023,6 @@ Version Version - - ScreenPlay Build Version - ScreenPlay Build Version - Open Changelog Open Changelog @@ -1052,6 +1063,12 @@ Privacy Privacy + + ScreenPlay Build Version + + ScreenPlay Build Version + + SettingsExpander @@ -1068,15 +1085,15 @@ Video Import h264 (.mp4) - + Video Import h264 (.mp4) Video Import VP8 & VP9 (.webm) - + Video Import VP8 & VP9 (.webm) Video import (all types) - + Video import (all types) GIF Wallpaper @@ -1183,11 +1200,11 @@ StartInfo Free tools to help you to create wallpaper - + Free tools to help you to create wallpaper Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! @@ -1578,7 +1595,7 @@ Password Required To Kick Session - + Password Required To Kick Session Already Logged In Elsewhere diff --git a/ScreenPlay/translations/ScreenPlay_nl_NL.qm b/ScreenPlay/translations/ScreenPlay_nl_NL.qm index 77cc5214..7c2714b2 100644 Binary files a/ScreenPlay/translations/ScreenPlay_nl_NL.qm and b/ScreenPlay/translations/ScreenPlay_nl_NL.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_nl_NL.ts b/ScreenPlay/translations/ScreenPlay_nl_NL.ts index 9fc355c1..0a1d7df9 100644 --- a/ScreenPlay/translations/ScreenPlay_nl_NL.ts +++ b/ScreenPlay/translations/ScreenPlay_nl_NL.ts @@ -1,1920 +1,1937 @@ - + ColorPicker - Red - Rood + Red + Rood - Green - Groen + Green + Groen - Blue - Blauw + Blue + Blauw - RGB - RGB + RGB + RGB - HSV - HSV + HSV + HSV - R: - R: + R: + R: - G: - G: + G: + G: - B: - B: + B: + B: - H: - H: + H: + H: - S: - S: + S: + S: - V: - V: + V: + V: - Alpha: - Alpha: + Alpha: + Alpha: - # - # + # + # - - + + Community - News - Nieuws + News + Nieuws - Wiki - Wiki + Wiki + Wiki - Forum - Forum + Forum + Forum - Issue List - Probleem lijst + Issue List + Probleem lijst - Contribute - Bijdragen + Contribute + Bijdragen - Steam Workshop - Steam Workshop + Steam Workshop + Steam Workshop - - + + CommunityNavItem - Open in browser - Open in browser + Open in browser + Open in browser - - + + CreateWallpaperInit - Import any video type - Importeer elk video type + Import any video type + Importeer elk video type - Depending on your PC configuration it is better to convert your wallpaper to a specific video codec. If both have bad performance you can also try a QML wallpaper! Supported video formats are: + Depending on your PC configuration it is better to convert your wallpaper to a specific video codec. If both have bad performance you can also try a QML wallpaper! Supported video formats are: *.mp4 *.mpg *.mp2 *.mpeg *.ogv *.avi *.wmv *.m4v *.3gp *.flv - Afhankelijk van je PC configuratie is het beter om je achtergrond te converteren naar een specifieke video codec. Als beide slechte prestaties hebben, kunt u ook een QML wallpaper proberen! Ondersteunde videoformaten zijn: + Afhankelijk van je PC configuratie is het beter om je achtergrond te converteren naar een specifieke video codec. Als beide slechte prestaties hebben, kunt u ook een QML wallpaper proberen! Ondersteunde videoformaten zijn: *.mp4 *.mpg *.mp2 *.mpeg *.ogv *.avi *.wmv *.m4v *.3gp *.flv - Set your preffered video codec: - Stel je gewenst videocodec in: + Set your preffered video codec: + Stel je gewenst videocodec in: - Quality slider. Lower value means better quality. - Quality slider. Lower value means better quality. + Quality slider. Lower value means better quality. + Kwaliteit schuifregelaar. Lagere waarde betekent betere kwaliteit. - Open Documentation - Open Documentatie + Open Documentation + Open Documentatie - Select file - Select file + Select file + Selecteer bestand - - + + CreateWallpaperResult - An error occurred! - An error occurred! + An error occurred! + Er is een fout opgetreden! - Copy text to clipboard - Copy text to clipboard + Copy text to clipboard + Kopieer tekst naar klembord - Back to create and send an error report! - Back to create and send an error report! + Back to create and send an error report! + Back to create and send an error report! - - + + CreateWallpaperVideoImportConvert - - + + - Generating preview image... - Generating preview image... + Generating preview image... + Voorbeeld afbeelding aan het genereren... - Generating preview thumbnail image... - Generating preview thumbnail image... + Generating preview thumbnail image... + Voorbeeld miniatuurafbeelding aan het genereren... - Generating 5 second preview video... - Generating 5 second preview video... + Generating 5 second preview video... + 5 seconden voorbeeldvideo aan het genereren... - Generating preview gif... - Generating preview gif... + Generating preview gif... + Voorbeeld gif aan het genereren... - Converting Audio... - Converting Audio... + Converting Audio... + Audio aan het converteren... - Converting Video... This can take some time! - Converting Video... This can take some time! + Converting Video... This can take some time! + Video aan het converteren... Dit kan even duren! - Converting Video ERROR! - Converting Video ERROR! + Converting Video ERROR! + Video Converteren FOUT! - Analyse Video ERROR! - Analyse Video ERROR! + Analyse Video ERROR! + Video Analyse FOUT! - Convert a video to a wallpaper - Convert a video to a wallpaper + Convert a video to a wallpaper + Converteer een video naar een achtergrond - Generating preview video... - Generating preview video... + Generating preview video... + Voorbeeldvideo aan het genereren... - Name (required!) - Name (required!) + Name (required!) + Naam (verplicht!) - Description - Description + Description + Beschrijving - Youtube URL - Youtube URL + Youtube URL + Youtube URL - Abort - Abort + Abort + Breek af - Save - Save + Save + Sla op - Save Wallpaper... - Save Wallpaper... + Save Wallpaper... + Sla achtergrond op... - - + + DefaultVideoControls - Volume - Volume + Volume + Volume - Playback rate - Playback rate + Playback rate + Afspeelsnelheid - Current Video Time - Current Video Time + Current Video Time + Huidige Videotijd - Fill Mode - Fill Mode + Fill Mode + Vulmodus - Stretch - Stretch + Stretch + Rek uit - Fill - Fill + Fill + Vul - Contain - Contain + Contain + Contain - Cover - Cover + Cover + Dek - Scale_Down - Scale_Down + Scale_Down + Schaal_Omlaag - - + + FileSelector - Clear - Clear + Clear + Wis - Select File - Select File + Select File + Selecteer bestand - Please choose a file - Please choose a file + Please choose a file + Kies een bestand - - + + Forum - Download Wallpaper and Widgets from our forums manually. If you want to download Steam Workshop content you have to install ScreenPlay via Steam. - Download Wallpaper and Widgets from our forums manually. If you want to download Steam Workshop content you have to install ScreenPlay via Steam. + Download Wallpaper and Widgets from our forums manually. If you want to download Steam Workshop content you have to install ScreenPlay via Steam. + Download Wallpaper and Widgets from our forums manually. If you want to download Steam Workshop content you have to install ScreenPlay via Steam. - Install Steam Version - Install Steam Version + Install Steam Version + Install Steam Version - Open In Browser - Open In Browser + Open In Browser + Open In Browser - - + + GifWallpaper - Import a Gif Wallpaper - Import a Gif Wallpaper + Import a Gif Wallpaper + Import a Gif Wallpaper - Drop a *.gif file here or use 'Select file' below. - Drop a *.gif file here or use 'Select file' below. + Drop a *.gif file here or use 'Select file' below. + Drop a *.gif file here or use 'Select file' below. - Select your gif - Select your gif + Select your gif + Select your gif - General - General + General + General - Wallpaper name - Wallpaper name + Wallpaper name + Wallpaper name - Created By - Created By + Created By + Gemaakt door - Tags - Tags + Tags + Tags - - + + HTMLWallpaper - Create a HTML Wallpaper - Create a HTML Wallpaper + Create a HTML Wallpaper + Maak een HTML Achtergrond - General - General + General + Algemeen - Wallpaper name - Wallpaper name + Wallpaper name + Achtergrond naam - Created By - Created By + Created By + Gemaakt door - Description - Description + Description + Beschrijving - License & Tags - License & Tags + License & Tags + Licentie & Tags - Preview Image - Preview Image + Preview Image + Voorbeeldafbeelding - - + + HTMLWidget - Create a HTML widget - Create a HTML widget + Create a HTML widget + Create a HTML widget - General - General + General + General - Widget name - Widget name + Widget name + Widget name - Created by - Created by + Created by + Created by - Tags - Tags + Tags + Tags - - + + HeadlineSection - Headline Section - Headline Section + Headline Section + Headline Section - - + + ImageSelector - Set your own preview image - Set your own preview image + Set your own preview image + Set your own preview image - Clear - Clear + Clear + Clear - Select Preview Image - Select Preview Image + Select Preview Image + Select Preview Image - - + + ImportWebmConvert - - + + - AnalyseVideo... - AnalyseVideo... + AnalyseVideo... + AnalyseVideo... - Generating preview image... - Generating preview image... + Generating preview image... + Generating preview image... - Generating preview thumbnail image... - Generating preview thumbnail image... + Generating preview thumbnail image... + Generating preview thumbnail image... - Generating 5 second preview video... - Generating 5 second preview video... + Generating 5 second preview video... + Generating 5 second preview video... - Generating preview gif... - Generating preview gif... + Generating preview gif... + Generating preview gif... - Converting Audio... - Converting Audio... + Converting Audio... + Converting Audio... - Converting Video... This can take some time! - Converting Video... This can take some time! + Converting Video... This can take some time! + Converting Video... This can take some time! - Converting Video ERROR! - Converting Video ERROR! + Converting Video ERROR! + Converting Video ERROR! - Analyse Video ERROR! - Analyse Video ERROR! + Analyse Video ERROR! + Analyse Video ERROR! - Import a video to a wallpaper - Import a video to a wallpaper + Import a video to a wallpaper + Import a video to a wallpaper - Generating preview video... - Generating preview video... + Generating preview video... + Generating preview video... - Name (required!) - Name (required!) + Name (required!) + Name (required!) - Description - Description + Description + Description - Youtube URL - Youtube URL + Youtube URL + Youtube URL - Abort - Abort + Abort + Abort - Save - Save + Save + Save - Save Wallpaper... - Save Wallpaper... + Save Wallpaper... + Save Wallpaper... - - + + ImportWebmInit - Import a .webm video - Import a .webm video + Import a .webm video + Import a .webm video - When importing webm we can skip the long conversion. When you get unsatisfying results with the ScreenPlay importer from 'ideo import and convert (all types)' you can also convert via the free and open source HandBrake! - When importing webm we can skip the long conversion. When you get unsatisfying results with the ScreenPlay importer from 'ideo import and convert (all types)' you can also convert via the free and open source HandBrake! + When importing webm we can skip the long conversion. When you get unsatisfying results with the ScreenPlay importer from 'ideo import and convert (all types)' you can also convert via the free and open source HandBrake! + When importing webm we can skip the long conversion. When you get unsatisfying results with the ScreenPlay importer from 'ideo import and convert (all types)' you can also convert via the free and open source HandBrake! - Invalid file type. Must be valid VP8 or VP9 (*.webm)! - Invalid file type. Must be valid VP8 or VP9 (*.webm)! + Invalid file type. Must be valid VP8 or VP9 (*.webm)! + Invalid file type. Must be valid VP8 or VP9 (*.webm)! - Drop a *.webm file here or use 'Select file' below. - Drop a *.webm file here or use 'Select file' below. + Drop a *.webm file here or use 'Select file' below. + Drop a *.webm file here or use 'Select file' below. - Open Documentation - Open Documentation + Open Documentation + Open Documentation - Select file - Select file + Select file + Select file - - + + Importh264Convert - AnalyseVideo... - AnalyseVideo... + AnalyseVideo... + AnalyseVideo... - Generating preview image... - Generating preview image... + Generating preview image... + Generating preview image... - Generating preview thumbnail image... - Generating preview thumbnail image... + Generating preview thumbnail image... + Generating preview thumbnail image... - Generating 5 second preview video... - Generating 5 second preview video... + Generating 5 second preview video... + Generating 5 second preview video... - Generating preview gif... - Generating preview gif... + Generating preview gif... + Generating preview gif... - Converting Audio... - Converting Audio... + Converting Audio... + Converting Audio... - Converting Video... This can take some time! - Converting Video... This can take some time! + Converting Video... This can take some time! + Converting Video... This can take some time! - Converting Video ERROR! - Converting Video ERROR! + Converting Video ERROR! + Converting Video ERROR! - Analyse Video ERROR! - Analyse Video ERROR! + Analyse Video ERROR! + Analyse Video ERROR! - Import a video to a wallpaper - Import a video to a wallpaper + Import a video to a wallpaper + Import a video to a wallpaper - Generating preview video... - Generating preview video... + Generating preview video... + Generating preview video... - Name (required!) - Name (required!) + Name (required!) + Name (required!) - Description - Description + Description + Description - Youtube URL - Youtube URL + Youtube URL + Youtube URL - Abort - Abort + Abort + Abort - Save - Save + Save + Save - Save Wallpaper... - Save Wallpaper... + Save Wallpaper... + Save Wallpaper... - - + + Importh264Init - Import a .mp4 video - + Import a .mp4 video + Import a .mp4 video - ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - Invalid file type. Must be valid h264 (*.mp4)! - + Invalid file type. Must be valid h264 (*.mp4)! + Invalid file type. Must be valid h264 (*.mp4)! - Drop a *.mp4 file here or use 'Select file' below. - + Drop a *.mp4 file here or use 'Select file' below. + Drop a *.mp4 file here or use 'Select file' below. - Open Documentation - + Open Documentation + Open Documentation - Select file - Select file + Select file + Select file - - + + Installed - - + + - Refreshing! - Refreshing! + Refreshing! + Refreshing! - Pull to refresh! - Pull to refresh! + Pull to refresh! + Pull to refresh! - Get more Wallpaper & Widgets via the Steam workshop! - Get more Wallpaper & Widgets via the Steam workshop! + Get more Wallpaper & Widgets via the Steam workshop! + Get more Wallpaper & Widgets via the Steam workshop! - Open containing folder - Open containing folder + Open containing folder + Open containing folder - Remove Item - Remove Item + Remove Item + Remove Item - Remove via Workshop - Remove via Workshop + Remove via Workshop + Remove via Workshop - Open Workshop Page - Open Workshop Page + Open Workshop Page + Open Workshop Page - Are you sure you want to delete this item? - Are you sure you want to delete this item? + Are you sure you want to delete this item? + Are you sure you want to delete this item? - - + + InstalledWelcomeScreen - Get free Widgets and Wallpaper via the Steam Workshop - Get free Widgets and Wallpaper via the Steam Workshop + Get free Widgets and Wallpaper via the Steam Workshop + Get free Widgets and Wallpaper via the Steam Workshop - Browse the Steam Workshop - Browse the Steam Workshop + Browse the Steam Workshop + Browse the Steam Workshop - - + + LicenseSelector - License - License + License + License - Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material for any purpose, even commercially. - Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material for any purpose, even commercially. + Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material for any purpose, even commercially. + Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material for any purpose, even commercially. - You grant other to remix your work and change the license to their liking. - You grant other to remix your work and change the license to their liking. + You grant other to remix your work and change the license to their liking. + You grant other to remix your work and change the license to their liking. - Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material. You are not allowed to use it commercially! - Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material. You are not allowed to use it commercially! + Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material. You are not allowed to use it commercially! + Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material. You are not allowed to use it commercially! - You allow everyone to do anything with your work. - You allow everyone to do anything with your work. + You allow everyone to do anything with your work. + You allow everyone to do anything with your work. - You grant other to remix your work but it must remain under the GPLv3. We recommend this license for all code wallpaper! - You grant other to remix your work but it must remain under the GPLv3. We recommend this license for all code wallpaper! + You grant other to remix your work but it must remain under the GPLv3. We recommend this license for all code wallpaper! + You grant other to remix your work but it must remain under the GPLv3. We recommend this license for all code wallpaper! - You do not share any rights and nobody is allowed to use or remix it (Not recommended). Can also used to credit work others. - You do not share any rights and nobody is allowed to use or remix it (Not recommended). Can also used to credit work others. + You do not share any rights and nobody is allowed to use or remix it (Not recommended). Can also used to credit work others. + You do not share any rights and nobody is allowed to use or remix it (Not recommended). Can also used to credit work others. - - + + MonitorConfiguration - Your monitor setup changed! + Your monitor setup changed! Please configure your wallpaper again. - Your monitor setup changed! + Your monitor setup changed! Please configure your wallpaper again. - - + + Monitors - Wallpaper Configuration - Wallpaper Configuration + Wallpaper Configuration + Wallpaper Configuration - Remove selected - Remove selected + Remove selected + Remove selected - Remove - Remove + Remove + Remove - Wallpapers - Wallpapers + Wallpapers + Wallpapers - Widgets - Widgets + Widgets + Widgets - - + + MonitorsProjectSettingItem - Set color - Set color + Set color + Set color - Please choose a color - Please choose a color + Please choose a color + Please choose a color - - + + Navigation - All - All + All + All - Scenes - Scenes + Scenes + Scenes - Videos - Videos + Videos + Videos - Widgets - Widgets + Widgets + Widgets - Install Date Ascending - Install Date Ascending + Install Date Ascending + Install Date Ascending - Install Date Descending - Install Date Descending + Install Date Descending + Install Date Descending - Subscribed items: - Subscribed items: + Subscribed items: + Subscribed items: - Upload to the Steam Workshop - Upload to the Steam Workshop + Upload to the Steam Workshop + Upload to the Steam Workshop - Create - Create + Create + Create - Workshop - Workshop + Workshop + Workshop - Installed - Installed + Installed + Installed - Community - Community + Community + Community - Settings - Settings - - - - NavigationWallpaperConfiguration - - Configurate active Wallpaper or Widgets - Configurate active Wallpaper or Widgets + Settings + Settings - No active Wallpaper or Widgets - No active Wallpaper or Widgets + Mute/Unmute all Wallpaper + Mute/Unmute all Wallpaper - - + + Pause/Play all Wallpaper + Pause/Play all Wallpaper + + + Configure Wallpaper + Configure Wallpaper + + + Minimize to Tray + Minimize to Tray + + + Exit + Exit + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + + + PopupOffline - You need to run Steam for this. steamErrorRestart: %1 - steamErrorAPIInit: %2 - You need to run Steam for this. steamErrorRestart: %1 - steamErrorAPIInit: %2 + You need to run Steam for this. steamErrorRestart: %1 - steamErrorAPIInit: %2 + You need to run Steam for this. steamErrorRestart: %1 - steamErrorAPIInit: %2 - Back - Back + Back + Back - - + + PopupSteamWorkshopAgreement - You Need to Agree To The Steam Subscriber Agreement First - You Need to Agree To The Steam Subscriber Agreement First + You Need to Agree To The Steam Subscriber Agreement First + You Need to Agree To The Steam Subscriber Agreement First - REQUIRES INTERNET CONNECTION AND FREE STEAM ACCOUNT TO ACTIVATE. Notice: Product offered subject to your acceptance of the Steam Subscriber Agreement (SSA). You must activate this product via the Internet by registering for a Steam account and accepting the SSA. Please see https://store.steampowered.com/subscriber_agreement/ to view the SSA prior to purchase. If you do not agree with the provisions of the SSA, you should return this game unopened to your retailer in accordance with their return policy. - REQUIRES INTERNET CONNECTION AND FREE STEAM ACCOUNT TO ACTIVATE. Notice: Product offered subject to your acceptance of the Steam Subscriber Agreement (SSA). You must activate this product via the Internet by registering for a Steam account and accepting the SSA. Please see https://store.steampowered.com/subscriber_agreement/ to view the SSA prior to purchase. If you do not agree with the provisions of the SSA, you should return this game unopened to your retailer in accordance with their return policy. + REQUIRES INTERNET CONNECTION AND FREE STEAM ACCOUNT TO ACTIVATE. Notice: Product offered subject to your acceptance of the Steam Subscriber Agreement (SSA). You must activate this product via the Internet by registering for a Steam account and accepting the SSA. Please see https://store.steampowered.com/subscriber_agreement/ to view the SSA prior to purchase. If you do not agree with the provisions of the SSA, you should return this game unopened to your retailer in accordance with their return policy. + REQUIRES INTERNET CONNECTION AND FREE STEAM ACCOUNT TO ACTIVATE. Notice: Product offered subject to your acceptance of the Steam Subscriber Agreement (SSA). You must activate this product via the Internet by registering for a Steam account and accepting the SSA. Please see https://store.steampowered.com/subscriber_agreement/ to view the SSA prior to purchase. If you do not agree with the provisions of the SSA, you should return this game unopened to your retailer in accordance with their return policy. - View The Steam Subscriber Agreement - View The Steam Subscriber Agreement + View The Steam Subscriber Agreement + View The Steam Subscriber Agreement - Accept Steam Workshop Agreement - Accept Steam Workshop Agreement + Accept Steam Workshop Agreement + Accept Steam Workshop Agreement - - + + QMLWallpaper - Create a QML Wallpaper - Create a QML Wallpaper + Create a QML Wallpaper + Create a QML Wallpaper - General - General + General + General - Wallpaper name - Wallpaper name + Wallpaper name + Wallpaper name - Created By - Created By + Created By + Created By - Description - Description + Description + Description - License & Tags - License & Tags + License & Tags + License & Tags - Preview Image - Preview Image + Preview Image + Preview Image - - + + QMLWidget - Create a QML widget - Create a QML widget + Create a QML widget + Create a QML widget - General - General + General + General - Widget name - Widget name + Widget name + Widget name - Created by - Created by + Created by + Created by - Tags - Tags + Tags + Tags - - + + SaveNotification - Profile saved successfully! - Profile saved successfully! + Profile saved successfully! + Profile saved successfully! - - + + ScreenPlayItem - NEW - NEW + NEW + NEW - - + + Search - Search for Wallpaper & Widgets - Search for Wallpaper & Widgets + Search for Wallpaper & Widgets + Search for Wallpaper & Widgets - - + + Settings - General - General + General + General - Autostart - Autostart + Autostart + Autostart - ScreenPlay will start with Windows and will setup your Desktop every time for you. - ScreenPlay will start with Windows and will setup your Desktop every time for you. + ScreenPlay will start with Windows and will setup your Desktop every time for you. + ScreenPlay will start with Windows and will setup your Desktop every time for you. - High priority Autostart - High priority Autostart + High priority Autostart + High priority Autostart - This options grants ScreenPlay a higher autostart priority than other apps. - This options grants ScreenPlay a higher autostart priority than other apps. + This options grants ScreenPlay a higher autostart priority than other apps. + This options grants ScreenPlay a higher autostart priority than other apps. - Send anonymous crash reports and statistics - Send anonymous crash reports and statistics + Send anonymous crash reports and statistics + Send anonymous crash reports and statistics - Help us make ScreenPlay faster and more stable. All collected data is purely anonymous and only used for development purposes! We use <a href="https://sentry.io">sentry.io</a> to collect and analyze this data. A <b>big thanks to them</b> for providing us with free premium support for open source projects! - Help us make ScreenPlay faster and more stable. All collected data is purely anonymous and only used for development purposes! We use <a href="https://sentry.io">sentry.io</a> to collect and analyze this data. A <b>big thanks to them</b> for providing us with free premium support for open source projects! + Help us make ScreenPlay faster and more stable. All collected data is purely anonymous and only used for development purposes! We use <a href="https://sentry.io">sentry.io</a> to collect and analyze this data. A <b>big thanks to them</b> for providing us with free premium support for open source projects! + Help us make ScreenPlay faster and more stable. All collected data is purely anonymous and only used for development purposes! We use <a href="https://sentry.io">sentry.io</a> to collect and analyze this data. A <b>big thanks to them</b> for providing us with free premium support for open source projects! - Set save location - Set save location + Set save location + Set save location - Set location - Set location + Set location + Set location - Your storage path is empty! - Your storage path is empty! + Your storage path is empty! + Your storage path is empty! - Important: Changing this directory has no effect on the workshop download path. ScreenPlay only supports having one content folder! - Important: Changing this directory has no effect on the workshop download path. ScreenPlay only supports having one content folder! + Important: Changing this directory has no effect on the workshop download path. ScreenPlay only supports having one content folder! + Important: Changing this directory has no effect on the workshop download path. ScreenPlay only supports having one content folder! - Language - Language + Language + Language - Set the ScreenPlay UI Language - Set the ScreenPlay UI Language + Set the ScreenPlay UI Language + Set the ScreenPlay UI Language - Theme - Theme + Theme + Theme - Switch dark/light theme - Switch dark/light theme + Switch dark/light theme + Switch dark/light theme - System Default - System Default + System Default + System Default - Dark - Dark + Dark + Dark - Light - Light + Light + Light - Performance - Performance + Performance + Performance - Pause wallpaper video rendering while another app is in the foreground - Pause wallpaper video rendering while another app is in the foreground + Pause wallpaper video rendering while another app is in the foreground + Pause wallpaper video rendering while another app is in the foreground - We disable the video rendering (not the audio!) for the best performance. If you have problem you can disable this behaviour here. Wallpaper restart required! - We disable the video rendering (not the audio!) for the best performance. If you have problem you can disable this behaviour here. Wallpaper restart required! + We disable the video rendering (not the audio!) for the best performance. If you have problem you can disable this behaviour here. Wallpaper restart required! + We disable the video rendering (not the audio!) for the best performance. If you have problem you can disable this behaviour here. Wallpaper restart required! - Default Fill Mode - Default Fill Mode + Default Fill Mode + Default Fill Mode - Set this property to define how the video is scaled to fit the target area. - Set this property to define how the video is scaled to fit the target area. + Set this property to define how the video is scaled to fit the target area. + Set this property to define how the video is scaled to fit the target area. - Stretch - Stretch + Stretch + Stretch - Fill - Fill + Fill + Fill - Contain - Contain + Contain + Contain - Cover - Cover + Cover + Cover - Scale-Down - Scale-Down + Scale-Down + Scale-Down - About - About + About + About - Thank you for using ScreenPlay - Thank you for using ScreenPlay + Thank you for using ScreenPlay + Thank you for using ScreenPlay - Hi, I'm Elias Steurer also known as Kelteseth and I'm the developer of ScreenPlay. Thank you for using my software. You can follow me to receive updates about ScreenPlay here: - Hi, I'm Elias Steurer also known as Kelteseth and I'm the developer of ScreenPlay. Thank you for using my software. You can follow me to receive updates about ScreenPlay here: + Hi, I'm Elias Steurer also known as Kelteseth and I'm the developer of ScreenPlay. Thank you for using my software. You can follow me to receive updates about ScreenPlay here: + Hi, I'm Elias Steurer also known as Kelteseth and I'm the developer of ScreenPlay. Thank you for using my software. You can follow me to receive updates about ScreenPlay here: - Version - Version + Version + Version - ScreenPlay Build Version - ScreenPlay Build Version + Open Changelog + Open Changelog - Open Changelog - Open Changelog + Third Party Software + Third Party Software - Third Party Software - Third Party Software + ScreenPlay would not be possible without the work of others. A big thank you to: + ScreenPlay would not be possible without the work of others. A big thank you to: - ScreenPlay would not be possible without the work of others. A big thank you to: - ScreenPlay would not be possible without the work of others. A big thank you to: + Licenses + Licenses - Licenses - Licenses + Logs + Logs - Logs - Logs + If your ScreenPlay missbehaves this is a good way to look for answers. This shows all logs and warning during runtime. + If your ScreenPlay missbehaves this is a good way to look for answers. This shows all logs and warning during runtime. - If your ScreenPlay missbehaves this is a good way to look for answers. This shows all logs and warning during runtime. - If your ScreenPlay missbehaves this is a good way to look for answers. This shows all logs and warning during runtime. + Show Logs + Show Logs - Show Logs - Show Logs + Data Protection + Data Protection - Data Protection - Data Protection + We use you data very carefully to improve ScreenPlay. We do not sell or share this (anonymous) information with others! + We use you data very carefully to improve ScreenPlay. We do not sell or share this (anonymous) information with others! - We use you data very carefully to improve ScreenPlay. We do not sell or share this (anonymous) information with others! - We use you data very carefully to improve ScreenPlay. We do not sell or share this (anonymous) information with others! + Privacy + Privacy - Privacy - Privacy + ScreenPlay Build Version + + ScreenPlay Build Version + - - + + SettingsExpander - Copy text to clipboard - Copy text to clipboard + Copy text to clipboard + Copy text to clipboard - - + + Sidebar - Tools Overview - Tools Overview + Tools Overview + Tools Overview - Video Import h264 (.mp4) - + Video Import h264 (.mp4) + Video Import h264 (.mp4) - Video Import VP8 & VP9 (.webm) - + Video Import VP8 & VP9 (.webm) + Video Import VP8 & VP9 (.webm) - Video import (all types) - + Video import (all types) + Video import (all types) - GIF Wallpaper - GIF Wallpaper + GIF Wallpaper + GIF Wallpaper - QML Wallpaper - QML Wallpaper + QML Wallpaper + QML Wallpaper - HTML5 Wallpaper - HTML5 Wallpaper + HTML5 Wallpaper + HTML5 Wallpaper - Website Wallpaper - Website Wallpaper + Website Wallpaper + Website Wallpaper - QML Widget - QML Widget + QML Widget + QML Widget - HTML Widget - HTML Widget + HTML Widget + HTML Widget - Set Wallpaper - Set Wallpaper + Set Wallpaper + Set Wallpaper - Set Widget - Set Widget + Set Widget + Set Widget - Headline - Headline + Headline + Headline - Select a Monitor to display the content - Select a Monitor to display the content + Select a Monitor to display the content + Select a Monitor to display the content - Set Volume - Set Volume + Set Volume + Set Volume - Fill Mode - Fill Mode + Fill Mode + Fill Mode - Stretch - Stretch + Stretch + Stretch - Fill - Fill + Fill + Fill - Contain - Contain + Contain + Contain - Cover - Cover + Cover + Cover - Scale-Down - Scale-Down + Scale-Down + Scale-Down - Size: - Size: + Size: + Size: - No description... - No description... + No description... + No description... - Click here if you like the content - Click here if you like the content + Click here if you like the content + Click here if you like the content - Click here if you do not like the content - Click here if you do not like the content + Click here if you do not like the content + Click here if you do not like the content - Subscribtions: - Subscribtions: + Subscribtions: + Subscribtions: - Open In Steam - Open In Steam + Open In Steam + Open In Steam - Subscribed! - Subscribed! + Subscribed! + Subscribed! - Subscribe - Subscribe + Subscribe + Subscribe - - + + StartInfo - Free tools to help you to create wallpaper - + Free tools to help you to create wallpaper + Free tools to help you to create wallpaper - Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - - + + SteamNotAvailable - Could not load steam integration! - Could not load steam integration! + Could not load steam integration! + Could not load steam integration! - - + + SteamProfile - Back - Back + Back + Back - Forward - Forward + Forward + Forward - - + + SteamWorkshopStartPage - Loading - Loading + Loading + Loading - Download now! - Download now! + Download now! + Download now! - Downloading... - Downloading... + Downloading... + Downloading... - Details - Details + Details + Details - Open In Steam - Open In Steam + Open In Steam + Open In Steam - Profile - Profile + Profile + Profile - Upload - Upload + Upload + Upload - Search for Wallpaper and Widgets... - Search for Wallpaper and Widgets... + Search for Wallpaper and Widgets... + Search for Wallpaper and Widgets... - Open Workshop in Steam - Open Workshop in Steam + Open Workshop in Steam + Open Workshop in Steam - Ranked By Vote - Ranked By Vote + Ranked By Vote + Ranked By Vote - Publication Date - Publication Date + Publication Date + Publication Date - Ranked By Trend - Ranked By Trend + Ranked By Trend + Ranked By Trend - Favorited By Friends - Favorited By Friends + Favorited By Friends + Favorited By Friends - Created By Friends - Created By Friends + Created By Friends + Created By Friends - Created By Followed Users - Created By Followed Users + Created By Followed Users + Created By Followed Users - Not Yet Rated - Not Yet Rated + Not Yet Rated + Not Yet Rated - Total VotesAsc - Total VotesAsc + Total VotesAsc + Total VotesAsc - Votes Up - Votes Up + Votes Up + Votes Up - Total Unique Subscriptions - Total Unique Subscriptions + Total Unique Subscriptions + Total Unique Subscriptions - Back - Back + Back + Back - Forward - Forward + Forward + Forward - - + + TagSelector - Save - Save + Save + Save - Add tag - Add tag + Add tag + Add tag - Cancel - Cancel + Cancel + Cancel - Add Tag - Add Tag + Add Tag + Add Tag - - + + TextField - Label - Label + Label + Label - *Required - *Required + *Required + *Required - - + + TrayIcon - ScreenPlay - Double click to change you settings. - ScreenPlay - Double click to change you settings. + ScreenPlay - Double click to change you settings. + ScreenPlay - Double click to change you settings. - Open ScreenPlay - Open ScreenPlay + Open ScreenPlay + Open ScreenPlay - Mute all - Mute all + Mute all + Mute all - Unmute all - Unmute all + Unmute all + Unmute all - Pause all - Pause all + Pause all + Pause all - Play all - Play all + Play all + Play all - Quit - Quit + Quit + Quit - - + + UploadProject - Upload Wallpaper/Widgets to Steam - Upload Wallpaper/Widgets to Steam + Upload Wallpaper/Widgets to Steam + Upload Wallpaper/Widgets to Steam - Abort - Abort + Abort + Abort - Upload Selected Projects - Upload Selected Projects + Upload Selected Projects + Upload Selected Projects - Finish - Finish + Finish + Finish - - + + UploadProjectBigItem - Type: - Type: + Type: + Type: - Open Folder - Open Folder + Open Folder + Open Folder - Invalid Project! - Invalid Project! + Invalid Project! + Invalid Project! - - + + UploadProjectItem - Fail - Fail + Fail + Fail - No Connection - No Connection + No Connection + No Connection - Invalid Password - Invalid Password + Invalid Password + Invalid Password - Logged In Elsewhere - Logged In Elsewhere + Logged In Elsewhere + Logged In Elsewhere - Invalid Protocol Version - Invalid Protocol Version + Invalid Protocol Version + Invalid Protocol Version - Invalid Param - Invalid Param + Invalid Param + Invalid Param - File Not Found - File Not Found + File Not Found + File Not Found - Busy - Busy + Busy + Busy - Invalid State - Invalid State + Invalid State + Invalid State - Invalid Name - Invalid Name + Invalid Name + Invalid Name - Invalid Email - Invalid Email + Invalid Email + Invalid Email - Duplicate Name - Duplicate Name + Duplicate Name + Duplicate Name - Access Denied - Access Denied + Access Denied + Access Denied - Timeout - Timeout + Timeout + Timeout - Banned - Banned + Banned + Banned - Account Not Found - Account Not Found + Account Not Found + Account Not Found - Invalid SteamID - Invalid SteamID + Invalid SteamID + Invalid SteamID - Service Unavailable - Service Unavailable + Service Unavailable + Service Unavailable - Not Logged On - Not Logged On + Not Logged On + Not Logged On - Pending - Pending + Pending + Pending - Encryption Failure - Encryption Failure + Encryption Failure + Encryption Failure - Insufficient Privilege - Insufficient Privilege + Insufficient Privilege + Insufficient Privilege - Limit Exceeded - Limit Exceeded + Limit Exceeded + Limit Exceeded - Revoked - Revoked + Revoked + Revoked - Expired - Expired + Expired + Expired - Already Redeemed - Already Redeemed + Already Redeemed + Already Redeemed - Duplicate Request - Duplicate Request + Duplicate Request + Duplicate Request - Already Owned - Already Owned + Already Owned + Already Owned - IP Not Found - IP Not Found + IP Not Found + IP Not Found - Persist Failed - Persist Failed + Persist Failed + Persist Failed - Locking Failed - Locking Failed + Locking Failed + Locking Failed - Logon Session Replaced - Logon Session Replaced + Logon Session Replaced + Logon Session Replaced - Connect Failed - Connect Failed + Connect Failed + Connect Failed - Handshake Failed - Handshake Failed + Handshake Failed + Handshake Failed - IO Failure - IO Failure + IO Failure + IO Failure - Remote Disconnect - Remote Disconnect + Remote Disconnect + Remote Disconnect - Shopping Cart Not Found - Shopping Cart Not Found + Shopping Cart Not Found + Shopping Cart Not Found - Blocked - Blocked + Blocked + Blocked - Ignored - Ignored + Ignored + Ignored - No Match - No Match + No Match + No Match - Account Disabled - Account Disabled + Account Disabled + Account Disabled - Service ReadOnly - Service ReadOnly + Service ReadOnly + Service ReadOnly - Account Not Featured - Account Not Featured + Account Not Featured + Account Not Featured - Administrator OK - Administrator OK + Administrator OK + Administrator OK - Content Version - Content Version + Content Version + Content Version - Try Another CM - Try Another CM + Try Another CM + Try Another CM - Password Required To Kick Session - + Password Required To Kick Session + Password Required To Kick Session - Already Logged In Elsewhere - Already Logged In Elsewhere + Already Logged In Elsewhere + Already Logged In Elsewhere - Suspended - Suspended + Suspended + Suspended - Cancelled - Cancelled + Cancelled + Cancelled - Data Corruption - Data Corruption + Data Corruption + Data Corruption - Disk Full - Disk Full + Disk Full + Disk Full - Remote Call Failed - Remote Call Failed + Remote Call Failed + Remote Call Failed - Password Unset - Password Unset + Password Unset + Password Unset - External Account Unlinked - External Account Unlinked + External Account Unlinked + External Account Unlinked - PSN Ticket Invalid - PSN Ticket Invalid + PSN Ticket Invalid + PSN Ticket Invalid - External Account Already Linked - External Account Already Linked + External Account Already Linked + External Account Already Linked - Remote File Conflict - Remote File Conflict + Remote File Conflict + Remote File Conflict - Illegal Password - Illegal Password + Illegal Password + Illegal Password - Same As Previous Value - Same As Previous Value + Same As Previous Value + Same As Previous Value - Account Logon Denied - Account Logon Denied + Account Logon Denied + Account Logon Denied - Cannot Use Old Password - Cannot Use Old Password + Cannot Use Old Password + Cannot Use Old Password - Invalid Login AuthCode - Invalid Login AuthCode + Invalid Login AuthCode + Invalid Login AuthCode - Account Logon Denied No Mail - Account Logon Denied No Mail + Account Logon Denied No Mail + Account Logon Denied No Mail - Hardware Not Capable Of IPT - Hardware Not Capable Of IPT + Hardware Not Capable Of IPT + Hardware Not Capable Of IPT - IPT Init Error - IPT Init Error + IPT Init Error + IPT Init Error - Parental Control Restricted - Parental Control Restricted + Parental Control Restricted + Parental Control Restricted - Facebook Query Error - Facebook Query Error + Facebook Query Error + Facebook Query Error - Expired Login Auth Code - Expired Login Auth Code + Expired Login Auth Code + Expired Login Auth Code - IP Login Restriction Failed - IP Login Restriction Failed + IP Login Restriction Failed + IP Login Restriction Failed - Account Locked Down - Account Locked Down + Account Locked Down + Account Locked Down - Account Logon Denied Verified Email Required - Account Logon Denied Verified Email Required + Account Logon Denied Verified Email Required + Account Logon Denied Verified Email Required - No MatchingURL - No MatchingURL + No MatchingURL + No MatchingURL - Bad Response - Bad Response + Bad Response + Bad Response - Require Password ReEntry - Require Password ReEntry + Require Password ReEntry + Require Password ReEntry - Value Out Of Range - Value Out Of Range + Value Out Of Range + Value Out Of Range - Unexpecte Error - Unexpecte Error + Unexpecte Error + Unexpecte Error - Disabled - Disabled + Disabled + Disabled - Invalid CEG Submission - Invalid CEG Submission + Invalid CEG Submission + Invalid CEG Submission - Restricted Device - Restricted Device + Restricted Device + Restricted Device - Region Locked - Region Locked + Region Locked + Region Locked - Rate Limit Exceeded - Rate Limit Exceeded + Rate Limit Exceeded + Rate Limit Exceeded - Account Login Denied Need Two Factor - Account Login Denied Need Two Factor + Account Login Denied Need Two Factor + Account Login Denied Need Two Factor - Item Deleted - Item Deleted + Item Deleted + Item Deleted - Account Login Denied Throttle - Account Login Denied Throttle + Account Login Denied Throttle + Account Login Denied Throttle - Two Factor Code Mismatch - Two Factor Code Mismatch + Two Factor Code Mismatch + Two Factor Code Mismatch - Two Factor Activation Code Mismatch - Two Factor Activation Code Mismatch + Two Factor Activation Code Mismatch + Two Factor Activation Code Mismatch - Account Associated To Multiple Partners - Account Associated To Multiple Partners + Account Associated To Multiple Partners + Account Associated To Multiple Partners - Not Modified - Not Modified + Not Modified + Not Modified - No Mobile Device - No Mobile Device + No Mobile Device + No Mobile Device - Time Not Synced - Time Not Synced + Time Not Synced + Time Not Synced - Sms Code Failed - Sms Code Failed + Sms Code Failed + Sms Code Failed - Account Limit Exceeded - Account Limit Exceeded + Account Limit Exceeded + Account Limit Exceeded - Account Activity Limit Exceeded - Account Activity Limit Exceeded + Account Activity Limit Exceeded + Account Activity Limit Exceeded - Phone Activity Limit Exceeded - Phone Activity Limit Exceeded + Phone Activity Limit Exceeded + Phone Activity Limit Exceeded - Refund To Wallet - Refund To Wallet + Refund To Wallet + Refund To Wallet - Email Send Failure - Email Send Failure + Email Send Failure + Email Send Failure - Not Settled - Not Settled + Not Settled + Not Settled - Need Captcha - Need Captcha + Need Captcha + Need Captcha - GSLT Denied - GSLT Denied + GSLT Denied + GSLT Denied - GS Owner Denied - GS Owner Denied + GS Owner Denied + GS Owner Denied - Invalid Item Type - Invalid Item Type + Invalid Item Type + Invalid Item Type - IP Banned - IP Banned + IP Banned + IP Banned - GSLT Expired - GSLT Expired + GSLT Expired + GSLT Expired - Insufficient Funds - Insufficient Funds + Insufficient Funds + Insufficient Funds - Too Many Pending - Too Many Pending + Too Many Pending + Too Many Pending - No Site Licenses Found - No Site Licenses Found + No Site Licenses Found + No Site Licenses Found - WG Network Send Exceeded - WG Network Send Exceeded + WG Network Send Exceeded + WG Network Send Exceeded - Account Not Friends - Account Not Friends + Account Not Friends + Account Not Friends - Limited User Account - Limited User Account + Limited User Account + Limited User Account - Cant Remove Item - Cant Remove Item + Cant Remove Item + Cant Remove Item - Account Deleted - Account Deleted + Account Deleted + Account Deleted - Existing User Cancelled License - Existing User Cancelled License + Existing User Cancelled License + Existing User Cancelled License - Community Cooldown - Community Cooldown + Community Cooldown + Community Cooldown - Status: - Status: + Status: + Status: - Upload Progress: - Upload Progress: + Upload Progress: + Upload Progress: - - + + WebsiteWallpaper - Create a Website Wallpaper - Create a Website Wallpaper + Create a Website Wallpaper + Create a Website Wallpaper - General - General + General + General - Wallpaper name - Wallpaper name + Wallpaper name + Wallpaper name - Created By - Created By + Created By + Created By - Description - Description + Description + Description - Tags - Tags + Tags + Tags - Preview Image - Preview Image + Preview Image + Preview Image - - + + WizardPage - Save - Save + Save + Save - Saving... - Saving... + Saving... + Saving... - - + + WorkshopItem - Successfully subscribed to Workshop Item! - Successfully subscribed to Workshop Item! + Successfully subscribed to Workshop Item! + Successfully subscribed to Workshop Item! - Download complete! - Download complete! + Download complete! + Download complete! - - + + XMLNewsfeed - News & Patchnotes - News & Patchnotes + News & Patchnotes + News & Patchnotes - + diff --git a/ScreenPlay/translations/ScreenPlay_pl_PL.qm b/ScreenPlay/translations/ScreenPlay_pl_PL.qm new file mode 100644 index 00000000..39f5080c Binary files /dev/null and b/ScreenPlay/translations/ScreenPlay_pl_PL.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_pl_PL.ts b/ScreenPlay/translations/ScreenPlay_pl_PL.ts new file mode 100644 index 00000000..8b53624d --- /dev/null +++ b/ScreenPlay/translations/ScreenPlay_pl_PL.ts @@ -0,0 +1,1937 @@ + + + + + ColorPicker + + Red + Czerwony + + + Green + Zielony + + + Blue + Niebieski + + + RGB + RGB + + + HSV + HSV + + + R: + R: + + + G: + G: + + + B: + B: + + + H: + H: + + + S: + S: + + + V: + V: + + + Alpha: + Alfa: + + + # + # + + + + Community + + News + Aktualności + + + Wiki + Wiki + + + Forum + Forum + + + Issue List + Lista problemów + + + Contribute + Udziel się + + + Steam Workshop + Warsztat Steam + + + + CommunityNavItem + + Open in browser + Otwórz w przeglądarce + + + + CreateWallpaperInit + + Import any video type + Importuj dowolny typ filmu + + + Depending on your PC configuration it is better to convert your wallpaper to a specific video codec. If both have bad performance you can also try a QML wallpaper! Supported video formats are: + +*.mp4 *.mpg *.mp2 *.mpeg *.ogv *.avi *.wmv *.m4v *.3gp *.flv + W zależności od konfiguracji Twojego urządzenia zalecamy przekonwertować tapetę do konkretnego kodeka wideo. Jeśli wydajność jest słaba w obu przypadkach, możesz wypróbować tapetę QML! Wspierane są następujące formaty wideo: + +*.mp4 *.mpg *.mp2 *.mpeg *.ogv *.avi *.wmv *.m4v *.3gp *.flv + + + Set your preffered video codec: + Ustaw preferowany kodek wideo: + + + Quality slider. Lower value means better quality. + Suwak jakości. Mniejsza wartość oznacza lepszą jakość. + + + Open Documentation + Otwórz dokumentację + + + Select file + Wybierz plik + + + + CreateWallpaperResult + + An error occurred! + Wystąpił błąd! + + + Copy text to clipboard + Skopiuj tekst do schowka + + + Back to create and send an error report! + Wróć do tworzenia i wyślij raport o błędzie! + + + + CreateWallpaperVideoImportConvert + + + + + + Generating preview image... + Generowanie obrazu podglądu... + + + Generating preview thumbnail image... + Generowanie miniaturki podglądu... + + + Generating 5 second preview video... + Generowanie 5-sekundowego podglądu wideo... + + + Generating preview gif... + Generowanie podglądu gif... + + + Converting Audio... + Konwertowanie dźwięku... + + + Converting Video... This can take some time! + Konwertowanie wideo... Może to zająć trochę czasu! + + + Converting Video ERROR! + BŁĄD konwertowania wideo! + + + Analyse Video ERROR! + BŁĄD analizowania filmu! + + + Convert a video to a wallpaper + Konwertuj film na tapetę + + + Generating preview video... + Generowanie podglądu wideo... + + + Name (required!) + Nazwa (wymagane!) + + + Description + Opis + + + Youtube URL + Adres URL YouTube + + + Abort + Przerwij + + + Save + Zapisz + + + Save Wallpaper... + Zapisz tapetę... + + + + DefaultVideoControls + + Volume + Głośność + + + Playback rate + Prędkość odtwarzania + + + Current Video Time + Moment filmu + + + Fill Mode + Fill Mode + + + Stretch + Rozciągnięcie + + + Fill + Wypełnij + + + Contain + Contain + + + Cover + Cover + + + Scale_Down + Scale_Down + + + + FileSelector + + Clear + Wyczyść + + + Select File + Wybierz plik + + + Please choose a file + Należy wybrać plik + + + + Forum + + Download Wallpaper and Widgets from our forums manually. If you want to download Steam Workshop content you have to install ScreenPlay via Steam. + Pobierz ręcznie tapety i widżety z naszego forum. Jeśli chcesz pobierać treści z Warsztatu Steam, należy zainstalować ScreenPlay przez Steam. + + + Install Steam Version + Zainstaluj wersję Steam + + + Open In Browser + Otwórz w przeglądarce + + + + GifWallpaper + + Import a Gif Wallpaper + Importuj tapetę Gif + + + Drop a *.gif file here or use 'Select file' below. + Przeciągnij tutaj plik *.gif lub naciśnij 'Wybierz plik'. + + + Select your gif + Wybierz swój gif + + + General + Ogólne + + + Wallpaper name + Nazwa tapety + + + Created By + Utworzone przez + + + Tags + Znaczniki + + + + HTMLWallpaper + + Create a HTML Wallpaper + Utwórz tapetę HTML + + + General + Ogólne + + + Wallpaper name + Nazwa tapety + + + Created By + Utworzone przez + + + Description + Opis + + + License & Tags + Licencja i znaczniki + + + Preview Image + Obraz podglądu + + + + HTMLWidget + + Create a HTML widget + Utwórz widżet HTML + + + General + Ogólne + + + Widget name + Nazwa widżetu + + + Created by + Utworzone przez + + + Tags + Znaczniki + + + + HeadlineSection + + Headline Section + Sekcja nagłówka + + + + ImageSelector + + Set your own preview image + Ustaw swój obraz podglądu + + + Clear + Wyczyść + + + Select Preview Image + Wybierz obraz podglądu + + + + ImportWebmConvert + + + + + + AnalyseVideo... + Analizowanie filmu... + + + Generating preview image... + Generowanie obrazu podglądu... + + + Generating preview thumbnail image... + Generowanie miniaturki podglądu... + + + Generating 5 second preview video... + Generowanie 5-sekundowego podglądu wideo... + + + Generating preview gif... + Generowanie podglądu gif... + + + Converting Audio... + Konwertowanie dźwięku... + + + Converting Video... This can take some time! + Konwertowanie wideo... Może to zająć trochę czasu! + + + Converting Video ERROR! + BŁĄD konwertowania wideo! + + + Analyse Video ERROR! + BŁĄD analizowania filmu! + + + Import a video to a wallpaper + Importowanie filmu jako tapetę + + + Generating preview video... + Generowanie podglądu wideo... + + + Name (required!) + Nazwa (wymagane!) + + + Description + Opis + + + Youtube URL + Adres URL YouTube + + + Abort + Przerwij + + + Save + Zapisz + + + Save Wallpaper... + Zapisz tapetę... + + + + ImportWebmInit + + Import a .webm video + Importuj film .webm + + + When importing webm we can skip the long conversion. When you get unsatisfying results with the ScreenPlay importer from 'ideo import and convert (all types)' you can also convert via the free and open source HandBrake! + Importowanie pliku webm pozwala na ominięcie czasochłonnej konwersji. Jeśli rezultat importera ScreenPlay po użyciu opcji 'importuj i konwertuj film (dowolny typ)' nie będzie dla Ciebie satysfakcjonujący, możesz przekonwertować film korzystając z bezpłatnego programu o otwartym źródle o nazwie HandBrake! + + + Invalid file type. Must be valid VP8 or VP9 (*.webm)! + Nieprawidłowy typ pliku. Należy wybrać plik VP8 lub VP9 (*.webm)! + + + Drop a *.webm file here or use 'Select file' below. + Przeciągnij tutaj plik *.webm lub naciśnij 'Wybierz plik'. + + + Open Documentation + Otwórz dokumentację + + + Select file + Wybierz plik + + + + Importh264Convert + + AnalyseVideo... + Analizowanie filmu... + + + Generating preview image... + Generowanie obrazu podglądu... + + + Generating preview thumbnail image... + Generowanie miniaturki podglądu... + + + Generating 5 second preview video... + Generowanie 5-sekundowego podglądu wideo... + + + Generating preview gif... + Generowanie podglądu gif... + + + Converting Audio... + Konwertowanie dźwięku... + + + Converting Video... This can take some time! + Konwertowanie wideo... Może to zająć trochę czasu! + + + Converting Video ERROR! + BŁĄD konwertowania wideo! + + + Analyse Video ERROR! + BŁĄD analizowania filmu! + + + Import a video to a wallpaper + Importowanie filmu jako tapetę + + + Generating preview video... + Generowanie podglądu wideo... + + + Name (required!) + Nazwa (wymagane!) + + + Description + Opis + + + Youtube URL + Adres URL YouTube + + + Abort + Przerwij + + + Save + Zapisz + + + Save Wallpaper... + Zapisz tapetę... + + + + Importh264Init + + Import a .mp4 video + Importuj film .mp4 + + + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. + ScreenPlay V0.15 i nowsze mogą odtwarzać pliki *.mp4 (znane również jako h264). Może to poprawić wydajność na starszych systemach. + + + Invalid file type. Must be valid h264 (*.mp4)! + Nieprawidłowy typ pliku. Należy użyć prawidłowy plik h264 (*.mp4)! + + + Drop a *.mp4 file here or use 'Select file' below. + Przeciągnij tutaj plik *.mp4 lub naciśnij 'Wybierz plik'. + + + Open Documentation + Otwórz dokumentację + + + Select file + Wybierz plik + + + + Installed + + + + + + Refreshing! + Odświeżanie! + + + Pull to refresh! + Przesuń, aby odświeżyć! + + + Get more Wallpaper & Widgets via the Steam workshop! + Więcej tapet oraz widżetów dostępne przez Warsztat Steam! + + + Open containing folder + Otwórz lokalizację pliku + + + Remove Item + Usuń element + + + Remove via Workshop + Usuń poprzez Warsztat + + + Open Workshop Page + Otwórz stronę Warsztatu + + + Are you sure you want to delete this item? + Czy na pewno chcesz usunąć ten element? + + + + InstalledWelcomeScreen + + Get free Widgets and Wallpaper via the Steam Workshop + Uzyskaj bezpłatne widżety i tapety poprzez Warsztat Steam + + + Browse the Steam Workshop + Przeglądaj Warsztat Steam + + + + LicenseSelector + + License + Licencja + + + Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material for any purpose, even commercially. + Udostępnianie — możesz kopiować i rozpowszechniać ten materiał w dowolnym formacie na dowolnym nośniku danych. Dostosowywanie — możesz poprawiać, przekształcać oraz używać tego materiału jako bazy pod inne prace w dowolnym celu, nawet komercyjnie. + + + You grant other to remix your work and change the license to their liking. + Pozwalasz innym osobom na przekształcanie Twojej treści oraz zmienianie licencji w razie potrzeby. + + + Share — copy and redistribute the material in any medium or format. Adapt — remix, transform, and build upon the material. You are not allowed to use it commercially! + Udostępnianie — możesz kopiować i rozpowszechniać ten materiał w dowolnym formacie na dowolnym nośniku danych. Dostosowywanie — możesz poprawiać, przekształcać oraz używać tego materiału jako bazy pod inne prace. Nie możesz używać tego materiału komercyjnie! + + + You allow everyone to do anything with your work. + Pozwalasz każdemu robić cokolwiek chce z Twoją treścią. + + + You grant other to remix your work but it must remain under the GPLv3. We recommend this license for all code wallpaper! + Pozwalasz innym osobom na przekształcanie Twojej treści, ale musi pozostać na licencji GPLv3. Zalecamy wybranie tej licencji dla wszystkich tapet napisanych kodem! + + + You do not share any rights and nobody is allowed to use or remix it (Not recommended). Can also used to credit work others. + Zastrzegasz sobie wszystkie prawa i nie pozwalasz nikomu na przekształcanie tej treści (nie zalecane). Możesz użyć tej opcji, aby uznać prawa innych osób. + + + + MonitorConfiguration + + Your monitor setup changed! + Please configure your wallpaper again. + Konfiguracja Twojego monitora uległa zmianie! + Należy ponownie skonfigurować tapetę. + + + + Monitors + + Wallpaper Configuration + Konfiguracja tapety + + + Remove selected + Usuń wybrane + + + Remove + Usuń + + + Wallpapers + Tapety + + + Widgets + Widżety + + + + MonitorsProjectSettingItem + + Set color + Ustaw kolor + + + Please choose a color + Należy wybrać kolor + + + + Navigation + + All + Wszystko + + + Scenes + Sceny + + + Videos + Filmy + + + Widgets + Widżety + + + Install Date Ascending + Data instalacji: rosnąco + + + Install Date Descending + Data instalacji: malejąco + + + Subscribed items: + Subskrybowane: + + + Upload to the Steam Workshop + Prześlij do Warsztatu Steam + + + Create + Utwórz + + + Workshop + Warsztat + + + Installed + Zainstalowane + + + Community + Społeczność + + + Settings + Ustawienia + + + Mute/Unmute all Wallpaper + Wycisz/Anuluj wyciszenie wszystkich tapet + + + Pause/Play all Wallpaper + Wstrzymaj/Odtwórz wszystkie tapety + + + Configure Wallpaper + Konfiguruj tapetę + + + Minimize to Tray + Minimalizuj do paska zadań + + + Exit + Wyjdź + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Czy na pewno chcesz zamknąć ScreenPlay? +Spowoduje to wyłączenie wszystkich tapet oraz widżetów. + + + + PopupOffline + + You need to run Steam for this. steamErrorRestart: %1 - steamErrorAPIInit: %2 + Ta funkcja wymaga uruchomienia Steam. steamErrorRestart: %1 - steamErrorAPIInit: %2 + + + Back + Wstecz + + + + PopupSteamWorkshopAgreement + + You Need to Agree To The Steam Subscriber Agreement First + Należy zaakceptować Umowę użytkownika Steam + + + REQUIRES INTERNET CONNECTION AND FREE STEAM ACCOUNT TO ACTIVATE. Notice: Product offered subject to your acceptance of the Steam Subscriber Agreement (SSA). You must activate this product via the Internet by registering for a Steam account and accepting the SSA. Please see https://store.steampowered.com/subscriber_agreement/ to view the SSA prior to purchase. If you do not agree with the provisions of the SSA, you should return this game unopened to your retailer in accordance with their return policy. + DO AKTYWACJI WYMAGANE JEST POŁĄCZENIE Z INTERNETEM ORAZ BEZPŁATNE KONTO STEAM. Uwaga: Oferowany produkt podlega Twojej akceptacji Umowy użytkownika Steam (dalej "Umowa"). Należy aktywować ten produkt przez Internet rejestrując konto Steam oraz akceptująć Umowę. Odwiedź https://store.steampowered.com/subscriber_agreement/, aby zapoznać się z Umową przed zakupem. Jeśli nie zgadzasz się z warunkami Umowy, należy zwrócić tę grę w stanie nieotwartym do Twojego sprzedawcy zgodnie z jego warunkami zwrotów. + + + View The Steam Subscriber Agreement + Wyświetl Umowę użytkownika Steam + + + Accept Steam Workshop Agreement + Zaakceptuj Umowę użytkownika Warsztatu Steam + + + + QMLWallpaper + + Create a QML Wallpaper + Utwórz tapetę QML + + + General + Ogólne + + + Wallpaper name + Nazwa tapety + + + Created By + Utworzone przez + + + Description + Opis + + + License & Tags + Licencja i znaczniki + + + Preview Image + Obraz podglądu + + + + QMLWidget + + Create a QML widget + Utwórz widżet QML + + + General + Ogólne + + + Widget name + Nazwa widżetu + + + Created by + Utworzone przez + + + Tags + Znaczniki + + + + SaveNotification + + Profile saved successfully! + Profil zapisany pomyślnie! + + + + ScreenPlayItem + + NEW + NOWE + + + + Search + + Search for Wallpaper & Widgets + Szukaj tapet i widżetów + + + + Settings + + General + Ogólne + + + Autostart + Autostart + + + ScreenPlay will start with Windows and will setup your Desktop every time for you. + ScreenPlay zostanie uruchomione przy starcie systemu Windows i ustawi dla Ciebie tapetę za każdym razem. + + + High priority Autostart + Wysoki priorytet autostartu + + + This options grants ScreenPlay a higher autostart priority than other apps. + Ta opcja nadaje ScreenPlay wyższy priorytet autostartu w porównaniu do innych aplikacji. + + + Send anonymous crash reports and statistics + Wysyłaj anonimowe raporty o awariach oraz statystyki + + + Help us make ScreenPlay faster and more stable. All collected data is purely anonymous and only used for development purposes! We use <a href="https://sentry.io">sentry.io</a> to collect and analyze this data. A <b>big thanks to them</b> for providing us with free premium support for open source projects! + Help us make ScreenPlay faster and more stable. All collected data is purely anonymous and only used for development purposes! We use <a href="https://sentry.io">sentry.io</a> to collect and analyze this data. A <b>big thanks to them</b> for providing us with free premium support for open source projects! + + + Set save location + Ustaw lokalizację zapisu + + + Set location + Ustaw lokalizację + + + Your storage path is empty! + Ścieżka do pamięci jest pusta! + + + Important: Changing this directory has no effect on the workshop download path. ScreenPlay only supports having one content folder! + Uwaga: Zmiana tego katalogu nie ma wpływu na ścieżkę pobierania z warsztatu. ScreenPlay wspiera posiadanie tylko jednego folderu na treść! + + + Language + Język + + + Set the ScreenPlay UI Language + Ustaw język interfejsu ScreenPlay + + + Theme + Motyw + + + Switch dark/light theme + Zmień motyw na jasny/ciemny + + + System Default + Systemowy + + + Dark + Ciemny + + + Light + Jasny + + + Performance + Wydajność + + + Pause wallpaper video rendering while another app is in the foreground + Pause wallpaper video rendering while another app is in the foreground + + + We disable the video rendering (not the audio!) for the best performance. If you have problem you can disable this behaviour here. Wallpaper restart required! + We disable the video rendering (not the audio!) for the best performance. If you have problem you can disable this behaviour here. Wallpaper restart required! + + + Default Fill Mode + Domyślny tryb wypełniania + + + Set this property to define how the video is scaled to fit the target area. + To ustawienie określa, w jaki sposób film jest skalowany, aby dopasować go do obszaru docelowego. + + + Stretch + Rozciągnięcie + + + Fill + Wypełnienie + + + Contain + Contain + + + Cover + Cover + + + Scale-Down + Scale-Down + + + About + Informacje + + + Thank you for using ScreenPlay + Dziękujemy za wypróbowanie ScreenPlay + + + Hi, I'm Elias Steurer also known as Kelteseth and I'm the developer of ScreenPlay. Thank you for using my software. You can follow me to receive updates about ScreenPlay here: + Cześć, nazywam się Elias Steurer znany również jako Kelteseth i jestem programistą ScreenPlay. Dziękuję Ci za wypróbowanie mojego oprogramowania. Obserwuj mnie, aby być na bieżąco z aktualizacjami ScreenPlay: + + + Version + Wersja + + + Open Changelog + Wyświetl listę zmian + + + Third Party Software + Oprogramowanie zewnętrzne + + + ScreenPlay would not be possible without the work of others. A big thank you to: + ScreenPlay would not be possible without the work of others. A big thank you to: + + + Licenses + Licencje + + + Logs + Rejestry + + + If your ScreenPlay missbehaves this is a good way to look for answers. This shows all logs and warning during runtime. + Tutaj znajdziesz wyjaśnienie, jeśli ScreenPlay nie działa poprawnie. Wyświetla wszystkie rejestry oraz ostrzeżenia podczas działania. + + + Show Logs + Pokaż rejestry + + + Data Protection + Ochrona danych + + + We use you data very carefully to improve ScreenPlay. We do not sell or share this (anonymous) information with others! + Bardzo ostrożnie używamy danych w celu rozwoju ScreenPlay. Nie sprzedajemy oraz nie udostępniamy tych (anonimowych) informacji osobom trzecim! + + + Privacy + Prywatność + + + ScreenPlay Build Version + + Wersja kompilacji ScreenPlay + + + + + SettingsExpander + + Copy text to clipboard + Kopiuj tekst do schowka + + + + Sidebar + + Tools Overview + Przegląd narzędzi + + + Video Import h264 (.mp4) + Importuj film h264 (.mp4) + + + Video Import VP8 & VP9 (.webm) + Importuj film VP8 lub VP9 (.webm) + + + Video import (all types) + Importuj film (dowolny typ) + + + GIF Wallpaper + Tapeta GIF + + + QML Wallpaper + Tapeta QML + + + HTML5 Wallpaper + Tapeta HTML5 + + + Website Wallpaper + Website Wallpaper + + + QML Widget + Widżet QML + + + HTML Widget + Widżet HTML + + + Set Wallpaper + Ustaw tapetę + + + Set Widget + Ustaw widżet + + + Headline + Nagłówek + + + Select a Monitor to display the content + Wybierz monitor do wyświetlania treści + + + Set Volume + Ustaw głośność + + + Fill Mode + Tryb wypełnienia + + + Stretch + Rozciągnięcie + + + Fill + Wypełnienie + + + Contain + Contain + + + Cover + Cover + + + Scale-Down + Scale-Down + + + Size: + Rozmiar: + + + No description... + Brak opisu... + + + Click here if you like the content + Naciśnij tutaj, jeśli lubisz tę treść + + + Click here if you do not like the content + Naciśnij tutaj, jeśli nie lubisz tej treści + + + Subscribtions: + Subskrypcje: + + + Open In Steam + Otwórz w Steam + + + Subscribed! + Subskrybujesz! + + + Subscribe + Subskrybuj + + + + StartInfo + + Free tools to help you to create wallpaper + Bezpłatne narzędzia ułatwiające tworzenie tapety + + + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! + Poniżej znajdziesz dodatkowe narzędzia do tworzenia tapety poza tymi, które oferuje dla Ciebie ScreenPlay! + + + + SteamNotAvailable + + Could not load steam integration! + Błąd wczytywania integracji Steam! + + + + SteamProfile + + Back + Wstecz + + + Forward + Dalej + + + + SteamWorkshopStartPage + + Loading + Wczytywanie + + + Download now! + Pobierz teraz! + + + Downloading... + Pobieranie... + + + Details + Szczegóły + + + Open In Steam + Otwórz w Steam + + + Profile + Profil + + + Upload + Prześlij + + + Search for Wallpaper and Widgets... + Szukaj tapet i widżetów... + + + Open Workshop in Steam + Otwórz Warsztat Steam + + + Ranked By Vote + Ilość głosów + + + Publication Date + Data publikacji + + + Ranked By Trend + Popularność + + + Favorited By Friends + Lubiane przez znajomych + + + Created By Friends + Utworzone przez znajomych + + + Created By Followed Users + Utworzone przez obserwowane osoby + + + Not Yet Rated + Bez ocen + + + Total VotesAsc + Ilość głosów: rosnąco + + + Votes Up + Głosy pozytywne + + + Total Unique Subscriptions + Łącznie unikalnych subskrypcji + + + Back + Wstecz + + + Forward + Dalej + + + + TagSelector + + Save + Zapisz + + + Add tag + Dodaj znacznik + + + Cancel + Anuluj + + + Add Tag + Dodaj znacznik + + + + TextField + + Label + Etykieta + + + *Required + *Wymagane + + + + TrayIcon + + ScreenPlay - Double click to change you settings. + ScreenPlay - naciśnij dwukrotnie, aby zmienić ustawienia. + + + Open ScreenPlay + Otwórz ScreenPlay + + + Mute all + Wycisz wszystkie + + + Unmute all + Unmute all + + + Pause all + Wstrzymaj wszystkie + + + Play all + Odtwórz wszystkie + + + Quit + Wyjdź + + + + UploadProject + + Upload Wallpaper/Widgets to Steam + Prześlij tapetę/widżet do Steam + + + Abort + Przerwij + + + Upload Selected Projects + Prześlij wybrane projekty + + + Finish + Zakończ + + + + UploadProjectBigItem + + Type: + Typ: + + + Open Folder + Otwórz folder + + + Invalid Project! + Nieprawidłowy projekt! + + + + UploadProjectItem + + Fail + Niepowodzenie + + + No Connection + Brak połączenia + + + Invalid Password + Nieprawidłowe hasło + + + Logged In Elsewhere + Zalogowano w innym miejscu + + + Invalid Protocol Version + Nieprawidłowa wersja protokołu + + + Invalid Param + Nieprawidłowy parametr + + + File Not Found + Nie znaleziono pliku + + + Busy + Zajęte + + + Invalid State + Invalid State + + + Invalid Name + Nieprawidłowa nazwa + + + Invalid Email + Nieprawidłowy adres e-mail + + + Duplicate Name + Duplikat nazwy + + + Access Denied + Odmowa dostępu + + + Timeout + Upłynął limit czasu + + + Banned + Zbanowano + + + Account Not Found + Nie znaleziono konta + + + Invalid SteamID + Nieprawidłowe SteamID + + + Service Unavailable + Usługa jest niedostępna + + + Not Logged On + Nie zalogowano + + + Pending + Pending + + + Encryption Failure + Błąd szyfrowania + + + Insufficient Privilege + Brak uprawnień + + + Limit Exceeded + Limit Exceeded + + + Revoked + Revoked + + + Expired + Expired + + + Already Redeemed + Already Redeemed + + + Duplicate Request + Duplicate Request + + + Already Owned + Already Owned + + + IP Not Found + IP Not Found + + + Persist Failed + Persist Failed + + + Locking Failed + Locking Failed + + + Logon Session Replaced + Logon Session Replaced + + + Connect Failed + Connect Failed + + + Handshake Failed + Handshake Failed + + + IO Failure + IO Failure + + + Remote Disconnect + Remote Disconnect + + + Shopping Cart Not Found + Shopping Cart Not Found + + + Blocked + Zablokowane + + + Ignored + Ignorowane + + + No Match + No Match + + + Account Disabled + Account Disabled + + + Service ReadOnly + Service ReadOnly + + + Account Not Featured + Account Not Featured + + + Administrator OK + Administrator OK + + + Content Version + Wersja treści + + + Try Another CM + Try Another CM + + + Password Required To Kick Session + Password Required To Kick Session + + + Already Logged In Elsewhere + Already Logged In Elsewhere + + + Suspended + Wstrzymane + + + Cancelled + Anulowane + + + Data Corruption + Data Corruption + + + Disk Full + Disk Full + + + Remote Call Failed + Remote Call Failed + + + Password Unset + Nie ustawiono hasła + + + External Account Unlinked + Odłączone konto zewnętrzne + + + PSN Ticket Invalid + PSN Ticket Invalid + + + External Account Already Linked + Konto zewnętrzne już połączone + + + Remote File Conflict + Remote File Conflict + + + Illegal Password + Niedopuszczalne hasło + + + Same As Previous Value + Same As Previous Value + + + Account Logon Denied + Account Logon Denied + + + Cannot Use Old Password + Nie można użyć poprzedniego hasła + + + Invalid Login AuthCode + Nieprawidłowe logowanie AuthCode + + + Account Logon Denied No Mail + Account Logon Denied No Mail + + + Hardware Not Capable Of IPT + Hardware Not Capable Of IPT + + + IPT Init Error + IPT Init Error + + + Parental Control Restricted + Parental Control Restricted + + + Facebook Query Error + Facebook Query Error + + + Expired Login Auth Code + Expired Login Auth Code + + + IP Login Restriction Failed + IP Login Restriction Failed + + + Account Locked Down + Account Locked Down + + + Account Logon Denied Verified Email Required + Account Logon Denied Verified Email Required + + + No MatchingURL + No MatchingURL + + + Bad Response + Bad Response + + + Require Password ReEntry + Require Password ReEntry + + + Value Out Of Range + Value Out Of Range + + + Unexpecte Error + Unexpecte Error + + + Disabled + Disabled + + + Invalid CEG Submission + Invalid CEG Submission + + + Restricted Device + Restricted Device + + + Region Locked + Region Locked + + + Rate Limit Exceeded + Rate Limit Exceeded + + + Account Login Denied Need Two Factor + Account Login Denied Need Two Factor + + + Item Deleted + Item Deleted + + + Account Login Denied Throttle + Account Login Denied Throttle + + + Two Factor Code Mismatch + Błędny kod uwierzytelniania dwuskładnikowego + + + Two Factor Activation Code Mismatch + Błędny kod aktywacyjny uwierzytelniania dwuskładnikowego + + + Account Associated To Multiple Partners + Account Associated To Multiple Partners + + + Not Modified + Not Modified + + + No Mobile Device + Brak urządzenia mobilnego + + + Time Not Synced + Time Not Synced + + + Sms Code Failed + Błąd wysyłania kodu SMS + + + Account Limit Exceeded + Account Limit Exceeded + + + Account Activity Limit Exceeded + Account Activity Limit Exceeded + + + Phone Activity Limit Exceeded + Phone Activity Limit Exceeded + + + Refund To Wallet + Refund To Wallet + + + Email Send Failure + Email Send Failure + + + Not Settled + Not Settled + + + Need Captcha + Wymagana Captcha + + + GSLT Denied + GSLT Denied + + + GS Owner Denied + GS Owner Denied + + + Invalid Item Type + Invalid Item Type + + + IP Banned + Zbanowany adres IP + + + GSLT Expired + GSLT Expired + + + Insufficient Funds + Insufficient Funds + + + Too Many Pending + Too Many Pending + + + No Site Licenses Found + No Site Licenses Found + + + WG Network Send Exceeded + WG Network Send Exceeded + + + Account Not Friends + Account Not Friends + + + Limited User Account + Limited User Account + + + Cant Remove Item + Cant Remove Item + + + Account Deleted + Account Deleted + + + Existing User Cancelled License + Existing User Cancelled License + + + Community Cooldown + Community Cooldown + + + Status: + Status: + + + Upload Progress: + Postęp przesyłania: + + + + WebsiteWallpaper + + Create a Website Wallpaper + Create a Website Wallpaper + + + General + Ogólne + + + Wallpaper name + Nazwa tapety + + + Created By + Utworzone przez + + + Description + Opis + + + Tags + Znaczniki + + + Preview Image + Obraz podglądu + + + + WizardPage + + Save + Zapisz + + + Saving... + Zapisywanie... + + + + WorkshopItem + + Successfully subscribed to Workshop Item! + Pomyślnie subskrybujesz element z Warsztatu! + + + Download complete! + Pobieranie ukończone! + + + + XMLNewsfeed + + News & Patchnotes + Aktualności i lista zmian + + + diff --git a/ScreenPlay/translations/ScreenPlay_pt_BR.qm b/ScreenPlay/translations/ScreenPlay_pt_BR.qm index 0831bef6..e3cef3df 100644 Binary files a/ScreenPlay/translations/ScreenPlay_pt_BR.qm and b/ScreenPlay/translations/ScreenPlay_pt_BR.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_pt_BR.ts b/ScreenPlay/translations/ScreenPlay_pt_BR.ts index 474356e9..fbe42f21 100644 --- a/ScreenPlay/translations/ScreenPlay_pt_BR.ts +++ b/ScreenPlay/translations/ScreenPlay_pt_BR.ts @@ -493,35 +493,35 @@ Generating preview image... - + Generating preview image... Generating preview thumbnail image... - + Generating preview thumbnail image... Generating 5 second preview video... - + Generating 5 second preview video... Generating preview gif... - + Generating preview gif... Converting Audio... - + Converting Audio... Converting Video... This can take some time! - + Converting Video... This can take some time! Converting Video ERROR! - + Converting Video ERROR! Analyse Video ERROR! - + Analyse Video ERROR! Import a video to a wallpaper @@ -529,58 +529,58 @@ Generating preview video... - + Generating preview video... Name (required!) - + Name (required!) Description - + Description Youtube URL - + Youtube URL Abort - + Abort Save - + Save Save Wallpaper... - + Save Wallpaper... Importh264Init Import a .mp4 video - + Import a .mp4 video ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. Invalid file type. Must be valid h264 (*.mp4)! - + Invalid file type. Must be valid h264 (*.mp4)! Drop a *.mp4 file here or use 'Select file' below. - + Drop a *.mp4 file here or use 'Select file' below. Open Documentation - + Open Documentation Select file - Selecionar arquivo + Select file @@ -761,16 +761,31 @@ Settings Settings - - - NavigationWallpaperConfiguration - Configurate active Wallpaper or Widgets - Configurate active Wallpaper or Widgets + Mute/Unmute all Wallpaper + Mute/Unmute all Wallpaper - No active Wallpaper or Widgets - No active Wallpaper or Widgets + Pause/Play all Wallpaper + Pause/Play all Wallpaper + + + Configure Wallpaper + Configure Wallpaper + + + Minimize to Tray + Minimize to Tray + + + Exit + Exit + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. @@ -1008,10 +1023,6 @@ Version Version - - ScreenPlay Build Version - ScreenPlay Build Version - Open Changelog Open Changelog @@ -1052,6 +1063,12 @@ Privacy Privacy + + ScreenPlay Build Version + + ScreenPlay Build Version + + SettingsExpander @@ -1068,15 +1085,15 @@ Video Import h264 (.mp4) - + Video Import h264 (.mp4) Video Import VP8 & VP9 (.webm) - + Video Import VP8 & VP9 (.webm) Video import (all types) - + Video import (all types) GIF Wallpaper @@ -1183,11 +1200,11 @@ StartInfo Free tools to help you to create wallpaper - + Free tools to help you to create wallpaper Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! @@ -1578,7 +1595,7 @@ Password Required To Kick Session - + Password Required To Kick Session Already Logged In Elsewhere diff --git a/ScreenPlay/translations/ScreenPlay_ru_RU.qm b/ScreenPlay/translations/ScreenPlay_ru_RU.qm index 006ec077..57aff6a8 100644 Binary files a/ScreenPlay/translations/ScreenPlay_ru_RU.qm and b/ScreenPlay/translations/ScreenPlay_ru_RU.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_ru_RU.ts b/ScreenPlay/translations/ScreenPlay_ru_RU.ts index 7d702092..f75ea14e 100644 --- a/ScreenPlay/translations/ScreenPlay_ru_RU.ts +++ b/ScreenPlay/translations/ScreenPlay_ru_RU.ts @@ -493,35 +493,35 @@ Generating preview image... - + Generating preview image... Generating preview thumbnail image... - + Generating preview thumbnail image... Generating 5 second preview video... - + Generating 5 second preview video... Generating preview gif... - + Generating preview gif... Converting Audio... - + Converting Audio... Converting Video... This can take some time! - + Converting Video... This can take some time! Converting Video ERROR! - + Converting Video ERROR! Analyse Video ERROR! - + Analyse Video ERROR! Import a video to a wallpaper @@ -529,58 +529,58 @@ Generating preview video... - + Generating preview video... Name (required!) - + Name (required!) Description - + Description Youtube URL - + Youtube URL Abort - + Abort Save - + Save Save Wallpaper... - + Save Wallpaper... Importh264Init Import a .mp4 video - + Import a .mp4 video ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. Invalid file type. Must be valid h264 (*.mp4)! - + Invalid file type. Must be valid h264 (*.mp4)! Drop a *.mp4 file here or use 'Select file' below. - + Drop a *.mp4 file here or use 'Select file' below. Open Documentation - + Open Documentation Select file - + Select file @@ -761,16 +761,31 @@ Settings Settings - - - NavigationWallpaperConfiguration - Configurate active Wallpaper or Widgets - Configurate active Wallpaper or Widgets + Mute/Unmute all Wallpaper + Mute/Unmute all Wallpaper - No active Wallpaper or Widgets - No active Wallpaper or Widgets + Pause/Play all Wallpaper + Pause/Play all Wallpaper + + + Configure Wallpaper + Configure Wallpaper + + + Minimize to Tray + Minimize to Tray + + + Exit + Exit + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. @@ -1008,10 +1023,6 @@ Version Version - - ScreenPlay Build Version - ScreenPlay Build Version - Open Changelog Open Changelog @@ -1052,6 +1063,12 @@ Privacy Privacy + + ScreenPlay Build Version + + ScreenPlay Build Version + + SettingsExpander @@ -1068,15 +1085,15 @@ Video Import h264 (.mp4) - + Video Import h264 (.mp4) Video Import VP8 & VP9 (.webm) - + Video Import VP8 & VP9 (.webm) Video import (all types) - + Video import (all types) GIF Wallpaper @@ -1183,11 +1200,11 @@ StartInfo Free tools to help you to create wallpaper - + Free tools to help you to create wallpaper Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! @@ -1578,7 +1595,7 @@ Password Required To Kick Session - + Password Required To Kick Session Already Logged In Elsewhere diff --git a/ScreenPlay/translations/ScreenPlay_tr_TR.qm b/ScreenPlay/translations/ScreenPlay_tr_TR.qm index 437f059b..6aff3c89 100644 Binary files a/ScreenPlay/translations/ScreenPlay_tr_TR.qm and b/ScreenPlay/translations/ScreenPlay_tr_TR.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_tr_TR.ts b/ScreenPlay/translations/ScreenPlay_tr_TR.ts index e618cd0f..e151799c 100644 --- a/ScreenPlay/translations/ScreenPlay_tr_TR.ts +++ b/ScreenPlay/translations/ScreenPlay_tr_TR.ts @@ -489,98 +489,98 @@ Importh264Convert AnalyseVideo... - VideoAnaliz... + AnalyseVideo... Generating preview image... - Önizleme oluşturuluyor... + Generating preview image... Generating preview thumbnail image... - Önizleme küçük resmi oluşturuluyor... + Generating preview thumbnail image... Generating 5 second preview video... - 5 saniyelik önizleme videosu oluşturuluyor... + Generating 5 second preview video... Generating preview gif... - Özizleme gifi oluşturuluyor... + Generating preview gif... Converting Audio... - Ses Dönüştürülüyor... + Converting Audio... Converting Video... This can take some time! - Video dönüştürülüyor... Biraz zaman alabilir! + Converting Video... This can take some time! Converting Video ERROR! - Video Dönüştürülürken Hata Oluştu! + Converting Video ERROR! Analyse Video ERROR! - Video Hatasını Analiz Edin! + Analyse Video ERROR! Import a video to a wallpaper - Bir videoyu duvar kağıdına aktarın + Import a video to a wallpaper Generating preview video... - Önizleme videosu oluşturuluyor... + Generating preview video... Name (required!) - İsim (gerekli) + Name (required!) Description - + Description Youtube URL - YouTube URL + Youtube URL Abort - + Abort Save - + Save Save Wallpaper... - Duvar kağıdını kaydet... + Save Wallpaper... Importh264Init Import a .mp4 video - + Import a .mp4 video ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. Invalid file type. Must be valid h264 (*.mp4)! - + Invalid file type. Must be valid h264 (*.mp4)! Drop a *.mp4 file here or use 'Select file' below. - + Drop a *.mp4 file here or use 'Select file' below. Open Documentation - Belgeyi Aç + Open Documentation Select file - Dosya seç + Select file @@ -761,16 +761,31 @@ Settings Settings - - - NavigationWallpaperConfiguration - Configurate active Wallpaper or Widgets - Aktif Duvar Kağıdını veya Widget'ları yapılandırın + Mute/Unmute all Wallpaper + Mute/Unmute all Wallpaper - No active Wallpaper or Widgets - Aktif Duvar Kağıdı veya Widget yok + Pause/Play all Wallpaper + Pause/Play all Wallpaper + + + Configure Wallpaper + Configure Wallpaper + + + Minimize to Tray + Minimize to Tray + + + Exit + Exit + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. @@ -1008,10 +1023,6 @@ Version Version - - ScreenPlay Build Version - ScreenPlay Build Version - Open Changelog Open Changelog @@ -1052,6 +1063,12 @@ Privacy Privacy + + ScreenPlay Build Version + + ScreenPlay Build Version + + SettingsExpander @@ -1068,15 +1085,15 @@ Video Import h264 (.mp4) - + Video Import h264 (.mp4) Video Import VP8 & VP9 (.webm) - + Video Import VP8 & VP9 (.webm) Video import (all types) - + Video import (all types) GIF Wallpaper @@ -1183,11 +1200,11 @@ StartInfo Free tools to help you to create wallpaper - + Free tools to help you to create wallpaper Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! @@ -1578,7 +1595,7 @@ Password Required To Kick Session - + Password Required To Kick Session Already Logged In Elsewhere diff --git a/ScreenPlay/translations/ScreenPlay_vi_VN.qm b/ScreenPlay/translations/ScreenPlay_vi_VN.qm index 905f9b6e..14a8000b 100644 Binary files a/ScreenPlay/translations/ScreenPlay_vi_VN.qm and b/ScreenPlay/translations/ScreenPlay_vi_VN.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_vi_VN.ts b/ScreenPlay/translations/ScreenPlay_vi_VN.ts index d7c1187a..a89695db 100644 --- a/ScreenPlay/translations/ScreenPlay_vi_VN.ts +++ b/ScreenPlay/translations/ScreenPlay_vi_VN.ts @@ -489,98 +489,98 @@ Importh264Convert AnalyseVideo... - Đang xử lý video... + AnalyseVideo... Generating preview image... - Đang tạo ra ảnh xem trước... + Generating preview image... Generating preview thumbnail image... - Đang tạo ra hình thu nhỏ xem trước... + Generating preview thumbnail image... Generating 5 second preview video... - Đang tao ra video 5 giây xem trước... + Generating 5 second preview video... Generating preview gif... - Đang tạo ra gif xem trước... + Generating preview gif... Converting Audio... - Đang chuyển đổi dạng âm thanh... + Converting Audio... Converting Video... This can take some time! - Đang chuyển đổi dạng video... Việc này có thể tốn kha khá thời gian! + Converting Video... This can take some time! Converting Video ERROR! - Đã có lỗi xảy ra khi chuyển đổi dạng video! + Converting Video ERROR! Analyse Video ERROR! - Đã có lỗi xảy ra khi đang xử lý video! + Analyse Video ERROR! Import a video to a wallpaper - Nhập một video vào hình nền + Import a video to a wallpaper Generating preview video... - Đang tạo ra video xem trước... + Generating preview video... Name (required!) - Tên (bắt buộc!) + Name (required!) Description - Mô tả + Description Youtube URL - Link YouTube + Youtube URL Abort - Hủy bỏ + Abort Save - Lưu + Save Save Wallpaper... - Lưu hình nền... + Save Wallpaper... Importh264Init Import a .mp4 video - + Import a .mp4 video ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. Invalid file type. Must be valid h264 (*.mp4)! - + Invalid file type. Must be valid h264 (*.mp4)! Drop a *.mp4 file here or use 'Select file' below. - + Drop a *.mp4 file here or use 'Select file' below. Open Documentation - Mở tài liệu tham khảo + Open Documentation Select file - + Select file @@ -761,16 +761,31 @@ Settings Settings - - - NavigationWallpaperConfiguration - Configurate active Wallpaper or Widgets - Thiết lập hình nền hoặc widgets đang hoạt động + Mute/Unmute all Wallpaper + Mute/Unmute all Wallpaper - No active Wallpaper or Widgets - Không có hình nền hoặc widgets đang hoạt động + Pause/Play all Wallpaper + Pause/Play all Wallpaper + + + Configure Wallpaper + Configure Wallpaper + + + Minimize to Tray + Minimize to Tray + + + Exit + Exit + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. @@ -1008,10 +1023,6 @@ Version Phiên bản - - ScreenPlay Build Version - Bản dựng của ScreenPlay - Open Changelog Mở nhật kí thay đổi @@ -1052,6 +1063,12 @@ Privacy Quyền riêng tư + + ScreenPlay Build Version + + ScreenPlay Build Version + + SettingsExpander @@ -1068,15 +1085,15 @@ Video Import h264 (.mp4) - + Video Import h264 (.mp4) Video Import VP8 & VP9 (.webm) - + Video Import VP8 & VP9 (.webm) Video import (all types) - + Video import (all types) GIF Wallpaper @@ -1183,11 +1200,11 @@ StartInfo Free tools to help you to create wallpaper - + Free tools to help you to create wallpaper Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! @@ -1578,7 +1595,7 @@ Password Required To Kick Session - + Password Required To Kick Session Already Logged In Elsewhere diff --git a/ScreenPlay/translations/ScreenPlay_zh_CN.qm b/ScreenPlay/translations/ScreenPlay_zh_CN.qm index a0aec754..49747d4f 100644 Binary files a/ScreenPlay/translations/ScreenPlay_zh_CN.qm and b/ScreenPlay/translations/ScreenPlay_zh_CN.qm differ diff --git a/ScreenPlay/translations/ScreenPlay_zh_CN.ts b/ScreenPlay/translations/ScreenPlay_zh_CN.ts index e7b2daa0..02909113 100644 --- a/ScreenPlay/translations/ScreenPlay_zh_CN.ts +++ b/ScreenPlay/translations/ScreenPlay_zh_CN.ts @@ -489,98 +489,98 @@ Importh264Convert AnalyseVideo... - 分析视频... + AnalyseVideo... Generating preview image... - 生成预览图... + Generating preview image... Generating preview thumbnail image... - 生成预览缩略图... + Generating preview thumbnail image... Generating 5 second preview video... - 生成5秒预览视频... + Generating 5 second preview video... Generating preview gif... - + Generating preview gif... Converting Audio... - 转换音频... + Converting Audio... Converting Video... This can take some time! - 转换视频... 这可能需要一些时间! + Converting Video... This can take some time! Converting Video ERROR! - 转换视频出错! + Converting Video ERROR! Analyse Video ERROR! - 分析视频出错! + Analyse Video ERROR! Import a video to a wallpaper - 将视频导入为壁纸 + Import a video to a wallpaper Generating preview video... - 生成预览视频... + Generating preview video... Name (required!) - 名称(必选) + Name (required!) Description - 简介 + Description Youtube URL - Youtube 链接 + Youtube URL Abort - + Abort Save - 保存 + Save Save Wallpaper... - 保存壁纸... + Save Wallpaper... Importh264Init Import a .mp4 video - + Import a .mp4 video ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. - + ScreenPlay V0.15 and up can play *.mp4 (also more known as h264). This can improove performance on older systems. Invalid file type. Must be valid h264 (*.mp4)! - + Invalid file type. Must be valid h264 (*.mp4)! Drop a *.mp4 file here or use 'Select file' below. - + Drop a *.mp4 file here or use 'Select file' below. Open Documentation - 打开文档 + Open Documentation Select file - 选择文件 + Select file @@ -761,16 +761,31 @@ Settings Settings - - - NavigationWallpaperConfiguration - Configurate active Wallpaper or Widgets - 设置活动壁纸或物件 + Mute/Unmute all Wallpaper + Mute/Unmute all Wallpaper - No active Wallpaper or Widgets - 没有活动壁纸或物件 + Pause/Play all Wallpaper + Pause/Play all Wallpaper + + + Configure Wallpaper + Configure Wallpaper + + + Minimize to Tray + Minimize to Tray + + + Exit + Exit + + + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. + Are you sure you want to exit ScreenPlay? +This will shut down all Wallpaper and Widgets. @@ -1008,10 +1023,6 @@ Version 版本 - - ScreenPlay Build Version - ScreenPlay编译版本 - Open Changelog 打开更改日志。 @@ -1052,6 +1063,12 @@ Privacy 隐私 + + ScreenPlay Build Version + + ScreenPlay Build Version + + SettingsExpander @@ -1068,15 +1085,15 @@ Video Import h264 (.mp4) - + Video Import h264 (.mp4) Video Import VP8 & VP9 (.webm) - + Video Import VP8 & VP9 (.webm) Video import (all types) - + Video import (all types) GIF Wallpaper @@ -1183,11 +1200,11 @@ StartInfo Free tools to help you to create wallpaper - + Free tools to help you to create wallpaper Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! - + Below you can find tools to create wallaper, beyond the tools that ScreenPlay provides for you! @@ -1578,7 +1595,7 @@ Password Required To Kick Session - + Password Required To Kick Session Already Logged In Elsewhere diff --git a/ScreenPlaySDK/inc/screenplaysdk.h b/ScreenPlaySDK/inc/screenplaysdk.h index 991c7143..db72753a 100644 --- a/ScreenPlaySDK/inc/screenplaysdk.h +++ b/ScreenPlaySDK/inc/screenplaysdk.h @@ -49,33 +49,19 @@ #include #include -class ScreenPlaySDK : public QQuickItem { +class ScreenPlaySDK : public QObject { Q_OBJECT - Q_DISABLE_COPY(ScreenPlaySDK) public: - ScreenPlaySDK(QQuickItem* parent = nullptr); - ScreenPlaySDK(const QString& appID, const QString& type, QQuickItem* parent = nullptr); + ScreenPlaySDK(const QString& appID, const QString& type); ~ScreenPlaySDK(); - Q_PROPERTY(QString type READ type WRITE setType NOTIFY typeChanged) Q_PROPERTY(bool isConnected READ isConnected WRITE setIsConnected NOTIFY isConnectedChanged) Q_PROPERTY(QString appID READ appID WRITE setAppID NOTIFY appIDChanged) - QString type() const - { - return m_type; - } - - bool isConnected() const - { - return m_isConnected; - } - - QString appID() const - { - return m_appID; - } + QString type() const { return m_type; } + bool isConnected() const { return m_isConnected; } + QString appID() const { return m_appID; } public slots: void sendMessage(const QJsonObject& obj); @@ -140,7 +126,7 @@ signals: private: QLocalSocket m_socket; - QString m_type = "undefined"; + QString m_type; bool m_isConnected = false; QString m_appID; diff --git a/ScreenPlaySDK/src/screenplaysdk.cpp b/ScreenPlaySDK/src/screenplaysdk.cpp index 619960a1..bb5b4e3a 100644 --- a/ScreenPlaySDK/src/screenplaysdk.cpp +++ b/ScreenPlaySDK/src/screenplaysdk.cpp @@ -15,16 +15,8 @@ static ScreenPlaySDK* global_sdkPtr = nullptr; \brief . */ -ScreenPlaySDK::ScreenPlaySDK(QQuickItem* parent) - : QQuickItem(parent) -{ -} - -ScreenPlaySDK::ScreenPlaySDK( - const QString& appID, - const QString& type, - QQuickItem* parent) - : QQuickItem(parent) +ScreenPlaySDK::ScreenPlaySDK(const QString& appID, const QString& type) + : QObject(nullptr) , m_type { type } , m_appID { appID } { diff --git a/ScreenPlaySysInfo/CMakeLists.txt b/ScreenPlaySysInfo/CMakeLists.txt index 5c43fb69..7e7d1f21 100644 --- a/ScreenPlaySysInfo/CMakeLists.txt +++ b/ScreenPlaySysInfo/CMakeLists.txt @@ -34,7 +34,10 @@ set(HEADER add_library(${PROJECT_NAME} SHARED ${SOURCES} ${HEADER}) -qt_add_qml_module(${PROJECT_NAME} URI ${PROJECT_NAME} VERSION 1.0) +qt_add_qml_module(${PROJECT_NAME} + OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/SysInfo + URI ${PROJECT_NAME} + VERSION 1.0) target_compile_definitions(${PROJECT_NAME} PRIVATE $<$,$>:QT_QML_DEBUG>) diff --git a/ScreenPlayUtil/CMakeLists.txt b/ScreenPlayUtil/CMakeLists.txt index a2f171b9..3047e2dc 100644 --- a/ScreenPlayUtil/CMakeLists.txt +++ b/ScreenPlayUtil/CMakeLists.txt @@ -26,3 +26,8 @@ target_include_directories( PRIVATE src/) target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core) + +if(WIN32) + # Used for query windows monitor data + target_link_libraries(${PROJECT_NAME} PUBLIC shcore.lib) +endif() diff --git a/ScreenPlayUtil/inc/public/ScreenPlayUtil/util.h b/ScreenPlayUtil/inc/public/ScreenPlayUtil/util.h index 11396b85..6005a462 100644 --- a/ScreenPlayUtil/inc/public/ScreenPlayUtil/util.h +++ b/ScreenPlayUtil/inc/public/ScreenPlayUtil/util.h @@ -33,6 +33,17 @@ ****************************************************************************/ #pragma once + +#include + +#if defined(Q_OS_WIN) +// Must be first! +#include + +#include "WinUser.h" +#include +#endif + #include "ScreenPlayUtil/contenttypes.h" #include #include @@ -41,6 +52,37 @@ #include namespace ScreenPlayUtil { +#if defined(Q_OS_WIN) +struct WinMonitorStats { + std::vector iMonitors; + std::vector hMonitors; + std::vector hdcMonitors; + std::vector rcMonitors; + std::vector scaleFactor; + std::vector> sizes; + + static BOOL CALLBACK MonitorEnum(HMONITOR hMon, HDC hdc, LPRECT lprcMonitor, + LPARAM pData) + { + WinMonitorStats* pThis = reinterpret_cast(pData); + auto scaleFactor = DEVICE_SCALE_FACTOR::DEVICE_SCALE_FACTOR_INVALID; + GetScaleFactorForMonitor(hMon, &scaleFactor); + + UINT x = 0; + UINT y = 0; + GetDpiForMonitor(hMon, MONITOR_DPI_TYPE::MDT_RAW_DPI, &x, &y); + pThis->sizes.push_back({ x, y }); + pThis->scaleFactor.push_back(scaleFactor); + pThis->hMonitors.push_back(hMon); + pThis->hdcMonitors.push_back(hdc); + pThis->rcMonitors.push_back(*lprcMonitor); + pThis->iMonitors.push_back(pThis->hdcMonitors.size()); + return TRUE; + } + + WinMonitorStats() { EnumDisplayMonitors(0, 0, MonitorEnum, (LPARAM)this); } +}; +#endif QJsonArray fillArray(const QVector& items); ScreenPlay::SearchType::SearchType getSearchTypeFromInstalledType(const ScreenPlay::InstalledType::InstalledType type); std::optional getInstalledTypeFromString(const QString& type); diff --git a/ScreenPlayUtil/src/util.cpp b/ScreenPlayUtil/src/util.cpp index 00119aba..339c5a10 100644 --- a/ScreenPlayUtil/src/util.cpp +++ b/ScreenPlayUtil/src/util.cpp @@ -233,7 +233,7 @@ std::optional getInstalledTypeFromStri { using ScreenPlay::InstalledType::InstalledType; - if (type.endsWith("Wallpaper")) { + if (type.endsWith("Wallpaper", Qt::CaseInsensitive)) { if (type.startsWith("video", Qt::CaseInsensitive)) { return InstalledType::VideoWallpaper; } @@ -254,7 +254,7 @@ std::optional getInstalledTypeFromStri } } - if (type.endsWith("Widget")) { + if (type.endsWith("Widget", Qt::CaseInsensitive)) { if (type.startsWith("qml", Qt::CaseInsensitive)) { return InstalledType::QMLWidget; } @@ -266,28 +266,27 @@ std::optional getInstalledTypeFromStri return std::nullopt; } - /*! \brief Maps the video codec type from a QString to an enum. Used for parsing the project.json. */ -std::optional getVideoCodecFromString(const QString &type) +std::optional getVideoCodecFromString(const QString& type) { - if(type.isEmpty()) + if (type.isEmpty()) return std::nullopt; - if(type.contains("vp8",Qt::CaseInsensitive)) + if (type.contains("vp8", Qt::CaseInsensitive)) return ScreenPlay::VideoCodec::VideoCodec::VP8; - if(type.contains("vp9",Qt::CaseInsensitive)) + if (type.contains("vp9", Qt::CaseInsensitive)) return ScreenPlay::VideoCodec::VideoCodec::VP9; - if(type.contains("av1",Qt::CaseInsensitive)) + if (type.contains("av1", Qt::CaseInsensitive)) return ScreenPlay::VideoCodec::VideoCodec::AV1; - if(type.contains("h264",Qt::CaseInsensitive)) + if (type.contains("h264", Qt::CaseInsensitive)) return ScreenPlay::VideoCodec::VideoCodec::H264; - if(type.contains("h265",Qt::CaseInsensitive)) + if (type.contains("h265", Qt::CaseInsensitive)) return ScreenPlay::VideoCodec::VideoCodec::H264; return std::nullopt; @@ -395,5 +394,4 @@ std::optional> parseStringToIntegerList(const QString string) return list; } - } diff --git a/ScreenPlayWallpaper/CMakeLists.txt b/ScreenPlayWallpaper/CMakeLists.txt index 43a2fb15..3cf79351 100644 --- a/ScreenPlayWallpaper/CMakeLists.txt +++ b/ScreenPlayWallpaper/CMakeLists.txt @@ -84,6 +84,5 @@ if(WIN32) # 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 shcore.lib) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/index.html ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/index.html COPYONLY) endif() diff --git a/ScreenPlayWallpaper/main.cpp b/ScreenPlayWallpaper/main.cpp index f2d6512c..899fe96d 100644 --- a/ScreenPlayWallpaper/main.cpp +++ b/ScreenPlayWallpaper/main.cpp @@ -32,8 +32,8 @@ int main(int argc, char* argv[]) // For testing purposes when starting the ScreenPlayWallpaper directly. if (argumentList.length() == 1) { #if defined(Q_OS_WIN) - //WinWindow window1({ 0 }, "test", "appID=test", "1", "fill", "videoWallpaper", true, true); - WinWindow window1({ 0 }, "C:/Program Files (x86)/Steam/steamapps/workshop/content/672870/2453869686", "appID=test", "1", "fill", "videoWallpaper", true, true); + // WinWindow window1({ 0 }, "test", "appID=test", "1", "fill", "videoWallpaper", true, true); + WinWindow window1({ 0, 1, 2 }, "C:/Program Files (x86)/Steam/steamapps/workshop/content/672870/hordemp4", "appID=test", "1", "fill", "videoWallpaper", true, true); #elif defined(Q_OS_LINUX) LinuxWindow window({ 0 }, "test", "appID=test", "1", "fill", "videoWallpaper", false, true); #elif defined(Q_OS_OSX) diff --git a/ScreenPlayWallpaper/qml/MultimediaView.qml b/ScreenPlayWallpaper/qml/MultimediaView.qml index 113dd832..341865fe 100644 --- a/ScreenPlayWallpaper/qml/MultimediaView.qml +++ b/ScreenPlayWallpaper/qml/MultimediaView.qml @@ -6,12 +6,15 @@ Item { id: root anchors.fill: parent property bool loops: Wallpaper.loops + property bool isPlaying: Wallpaper.isPlaying + onIsPlayingChanged: isPlaying ? mediaPlayer.play() : mediaPlayer.pause() property bool isWindows: Qt.platform.os === "windows" signal requestFadeIn MediaPlayer { id: mediaPlayer + source: Wallpaper.projectSourceFileAbsolute Component.onCompleted: { mediaPlayer.play() @@ -35,10 +38,35 @@ Item { VideoOutput { id: vo anchors.fill: parent + } AudioOutput { id: ao volume: Wallpaper.volume + muted: Wallpaper.muted + } + + Connections { + function onFillModeChanged(fillMode) { + if(fillMode === "stretch"){ + vo.fillMode = VideoOutput.Stretch + return + } + if(fillMode === "fill"){ + vo.fillMode = VideoOutput.PreserveAspectFit + return + } + if(fillMode === "contain" || fillMode === "cover" || fillMode === "scale-down"){ + vo.fillMode = VideoOutput.PreserveAspectCrop + } + } + + function onCurrentTimeChanged(currentTime) { + mediaPlayer.position = currentTime * mediaPlayer.duration + } + + + target: Wallpaper } } diff --git a/ScreenPlayWallpaper/qml/Wallpaper.qml b/ScreenPlayWallpaper/qml/Wallpaper.qml index 41c9485b..55df1635 100644 --- a/ScreenPlayWallpaper/qml/Wallpaper.qml +++ b/ScreenPlayWallpaper/qml/Wallpaper.qml @@ -17,20 +17,30 @@ Rectangle { if (Wallpaper.videoCodec === VideoCodec.Unknown) { Wallpaper.terminate() } + // macOS only supports h264 via the native Qt MM - if (Qt.platform.os === "osx" && (Wallpaper.videoCodec === VideoCodec.VP8 - || Wallpaper.videoCodec === VideoCodec.VP9)) { - loader.source = "qrc:/ScreenPlayWallpaper/qml/MultimediaWebView.qml" - } else { + if (Qt.platform.os === "osx") { + if ((Wallpaper.videoCodec === VideoCodec.VP8 + || Wallpaper.videoCodec === VideoCodec.VP9)) { + loader.source = "qrc:/ScreenPlayWallpaper/qml/MultimediaWebView.qml" + } else { + loader.source = "qrc:/ScreenPlayWallpaper/qml/MultimediaView.qml" + } + } + + if (Qt.platform.os === "windows") { loader.source = "qrc:/ScreenPlayWallpaper/qml/MultimediaView.qml" } + + print(loader.source) fadeIn() break case InstalledType.HTMLWallpaper: - loader.setSource("qrc:/ScreenPlayWallpaper/qml/WebsiteWallpaper.qml", { - "url": Qt.resolvedUrl( - Wallpaper.projectSourceFileAbsolute) - }) + loader.setSource( + "qrc:/ScreenPlayWallpaper/qml/WebsiteWallpaper.qml", { + "url": Qt.resolvedUrl( + Wallpaper.projectSourceFileAbsolute) + }) break case InstalledType.QMLWallpaper: loader.source = Qt.resolvedUrl(Wallpaper.projectSourceFileAbsolute) @@ -54,49 +64,50 @@ Rectangle { } function fadeIn() { - Wallpaper.setVisible(true); + Wallpaper.setVisible(true) if (canFadeByWallpaperFillMode && Wallpaper.canFade) - imgCover.state = "hideDefaultBackgroundImage"; + imgCover.state = "hideDefaultBackgroundImage" else - imgCover.opacity = 0; + imgCover.opacity = 0 } anchors.fill: parent color: { if (Qt.platform.os !== "windows") - return "black"; + return "black" else - return Wallpaper.windowsDesktopProperties.color; + return Wallpaper.windowsDesktopProperties.color } Component.onCompleted: { - init(); + init() } Connections { function onQmlExit() { if (canFadeByWallpaperFillMode && Wallpaper.canFade) - imgCover.state = "exit"; + imgCover.state = "exit" else - Wallpaper.terminate(); + Wallpaper.terminate() } function onQmlSceneValueReceived(key, value) { - var obj2 = 'import QtQuick; Item {Component.onCompleted: loader.item.' + key + ' = ' + value + '; }'; - var newObject = Qt.createQmlObject(obj2.toString(), root, "err"); - newObject.destroy(10000); + var obj2 = 'import QtQuick; Item {Component.onCompleted: loader.item.' + + key + ' = ' + value + '; }' + var newObject = Qt.createQmlObject(obj2.toString(), root, "err") + newObject.destroy(10000) } // Replace wallpaper with QML Scene function onReloadQML(oldType) { - loader.sourceComponent = undefined; - loader.source = ""; - Wallpaper.clearComponentCache(); - loader.source = Qt.resolvedUrl(Wallpaper.projectSourceFileAbsolute); + loader.sourceComponent = undefined + loader.source = "" + Wallpaper.clearComponentCache() + loader.source = Qt.resolvedUrl(Wallpaper.projectSourceFileAbsolute) } // Replace wallpaper with GIF function onReloadGIF(oldType) { - init(); + init() } // This function only gets called here (the same function @@ -106,9 +117,9 @@ Rectangle { // We need to check if the old type // was also Video not get called twice if (oldType === InstalledType.VideoWallpaper) - return ; + return - loader.source = "qrc:/ScreenPlayWallpaper/qml/MultimediaView.qml"; + loader.source = "qrc:/ScreenPlayWallpaper/qml/MultimediaView.qml" } target: Wallpaper @@ -123,20 +134,19 @@ Rectangle { //asynchronous: true onStatusChanged: { if (loader.status === Loader.Error) { - loader.source = ""; - // Wallpaper.terminate(); + loader.source = "" + // Wallpaper.terminate(); } } Connections { function onRequestFadeIn() { - fadeIn(); + fadeIn() } ignoreUnknownSignals: true target: loader.item } - } Image { @@ -147,40 +157,41 @@ Rectangle { sourceSize.height: Wallpaper.height source: { if (Qt.platform.os === "windows") - return Qt.resolvedUrl("file:///" + Wallpaper.windowsDesktopProperties.wallpaperPath); + return Qt.resolvedUrl( + "file:///" + Wallpaper.windowsDesktopProperties.wallpaperPath) else return "" } - + Component.onCompleted: { if (Qt.platform.os !== "windows") { - root.canFadeByWallpaperFillMode = false; - return ; + root.canFadeByWallpaperFillMode = false + return } switch (Wallpaper.windowsDesktopProperties.wallpaperStyle) { case 10: - imgCover.fillMode = Image.PreserveAspectCrop; - break; + imgCover.fillMode = Image.PreserveAspectCrop + break case 6: - imgCover.fillMode = Image.PreserveAspectFit; - break; + imgCover.fillMode = Image.PreserveAspectFit + break case 2: - break; + break case 0: if (desktopProperties.isTiled) { // Tiled - imgCover.fillMode = Image.Tile; + imgCover.fillMode = Image.Tile } else { // Center - imgCover.fillMode = Image.PreserveAspectFit; - imgCover.anchors.centerIn = parent; - imgCover.width = sourceSize.width; - imgCover.height = sourceSize.height; + imgCover.fillMode = Image.PreserveAspectFit + imgCover.anchors.centerIn = parent + imgCover.width = sourceSize.width + imgCover.height = sourceSize.height } - break; + break case 22: - root.canFadeByWallpaperFillMode = false; - break; + root.canFadeByWallpaperFillMode = false + break } } @@ -199,7 +210,6 @@ Rectangle { target: imgCover opacity: 1 } - }, State { name: "hideDefaultBackgroundImage" @@ -208,7 +218,6 @@ Rectangle { target: imgCover opacity: 0 } - }, State { name: "exit" @@ -217,7 +226,6 @@ Rectangle { target: imgCover opacity: 1 } - } ] transitions: [ @@ -236,9 +244,7 @@ Rectangle { duration: 600 property: "opacity" } - } - }, Transition { from: "hideDefaultBackgroundImage" @@ -255,9 +261,7 @@ Rectangle { ScriptAction { script: Wallpaper.terminate() } - } - } ] } @@ -287,7 +291,12 @@ Rectangle { } Text { - text: "projectSourceFileAbsolute " + Wallpaper.projectSourceFileAbsolute + text: "getApplicationPath " + Wallpaper.getApplicationPath() + font.pointSize: 14 + } + + Text { + text: "projectSourceFileAbsolute " + Qt.resolvedUrl(Wallpaper.projectSourceFileAbsolute) font.pointSize: 14 } @@ -324,9 +333,10 @@ Rectangle { Text { text: { if (Qt.platform.os === "windows") - return "imgCover.source " + Qt.resolvedUrl("file:///" + Wallpaper.windowsDesktopProperties.wallpaperPath) - else - return "" + return "imgCover.source " + Qt.resolvedUrl( + "file:///" + Wallpaper.windowsDesktopProperties.wallpaperPath) + else + return "" } font.pointSize: 14 } @@ -335,13 +345,10 @@ Rectangle { text: "imgCover.status " + imgCover.status font.pointSize: 14 } - } background: Rectangle { opacity: 0.5 } - } - } diff --git a/ScreenPlayWallpaper/src/basewindow.cpp b/ScreenPlayWallpaper/src/basewindow.cpp index de9d2ecb..396e782a 100644 --- a/ScreenPlayWallpaper/src/basewindow.cpp +++ b/ScreenPlayWallpaper/src/basewindow.cpp @@ -85,7 +85,13 @@ BaseWindow::BaseWindow( if (auto typeOpt = ScreenPlayUtil::getInstalledTypeFromString(project.value("type").toString())) { setType(typeOpt.value()); - if (!project.contains("videoCodec")) { + if (this->type() == ScreenPlay::InstalledType::InstalledType::VideoWallpaper) { + if (auto videoCodecOpt = ScreenPlayUtil::getVideoCodecFromString(project.value("videoCodec").toString())) { + setVideoCodec(videoCodecOpt.value()); + } else { + qCritical() << "Cannot parse Wallpaper video codec from value" << project.value("type"); + } + } else if (!project.contains("videoCodec") && this->type() == ScreenPlay::InstalledType::InstalledType::VideoWallpaper) { qWarning("No videoCodec was specified inside the json object!"); const QString filename = project.value("file").toString(); if (filename.endsWith(".mp4")) { @@ -93,14 +99,6 @@ BaseWindow::BaseWindow( } else if (filename.endsWith(".webm")) { setVideoCodec(ScreenPlay::VideoCodec::VideoCodec::VP8); } - } else { - if (this->type() == ScreenPlay::InstalledType::InstalledType::VideoWallpaper) { - if (auto videoCodecOpt = ScreenPlayUtil::getVideoCodecFromString(project.value("videoCodec").toString())) { - setVideoCodec(videoCodecOpt.value()); - } else { - qCritical() << "Cannot parse Wallpaper video codec from value" << project.value("type"); - } - } } } else { diff --git a/ScreenPlayWallpaper/src/winwindow.cpp b/ScreenPlayWallpaper/src/winwindow.cpp index a2ec08b5..28177872 100644 --- a/ScreenPlayWallpaper/src/winwindow.cpp +++ b/ScreenPlayWallpaper/src/winwindow.cpp @@ -1,41 +1,8 @@ #include "winwindow.h" -#include "WinUser.h" #include "qqml.h" -#include #include #include #include -#include - -struct WinMonitorStats { - std::vector iMonitors; - std::vector hMonitors; - std::vector hdcMonitors; - std::vector rcMonitors; - std::vector scaleFactor; - std::vector> sizes; - - static BOOL CALLBACK MonitorEnum(HMONITOR hMon, HDC hdc, LPRECT lprcMonitor, - LPARAM pData) - { - WinMonitorStats* pThis = reinterpret_cast(pData); - auto scaleFactor = DEVICE_SCALE_FACTOR::DEVICE_SCALE_FACTOR_INVALID; - GetScaleFactorForMonitor(hMon, &scaleFactor); - - UINT x = 0; - UINT y = 0; - GetDpiForMonitor(hMon, MONITOR_DPI_TYPE::MDT_RAW_DPI, &x, &y); - pThis->sizes.push_back({ x, y }); - pThis->scaleFactor.push_back(scaleFactor); - pThis->hMonitors.push_back(hMon); - pThis->hdcMonitors.push_back(hdc); - pThis->rcMonitors.push_back(*lprcMonitor); - pThis->iMonitors.push_back(pThis->hdcMonitors.size()); - return TRUE; - } - - WinMonitorStats() { EnumDisplayMonitors(0, 0, MonitorEnum, (LPARAM)this); } -}; /*! \brief Searches for the worker window for our window to parent to. @@ -225,11 +192,6 @@ WinWindow::WinWindow( configureWindowGeometry(); - if (hasWindowScaling()) { - qInfo() << "Monitor with scaling detected!"; - configureWindowGeometry(); - } - // We do not support autopause for multi monitor wallpaper if (this->activeScreensList().length() == 1) { if (checkWallpaperVisible) { @@ -294,13 +256,13 @@ void WinWindow::setupWallpaperForOneScreen(int activeScreen) const QRect screenRect = QApplication::screens().at(activeScreen)->geometry(); const int boderWidth = 2; const float scaling = getScaling(activeScreen); - const auto width = screenRect.width() * scaling + boderWidth; - const auto height = screenRect.height() * scaling + boderWidth; - const int borderOffset = -1; - const int x = screenRect.x() + m_zeroPoint.x() + borderOffset; - const int y = screenRect.y() + m_zeroPoint.y() + borderOffset; + ScreenPlayUtil::WinMonitorStats monitors; + const int width = std::abs(monitors.rcMonitors[activeScreen].right - monitors.rcMonitors[activeScreen].left); + const int height = std::abs(monitors.rcMonitors[activeScreen].top - monitors.rcMonitors[activeScreen].bottom); + const int x = monitors.rcMonitors[activeScreen].left + m_zeroPoint.x() + borderOffset; + const int y = monitors.rcMonitors[activeScreen].top + m_zeroPoint.y() + borderOffset; qInfo() << QString("Setup window activeScreen: %1 scaling: %2 x: %3 y: %4 width: %5 height: %6").arg(activeScreen).arg(scaling).arg(x).arg(y).arg(width).arg(height); { @@ -323,20 +285,43 @@ void WinWindow::setupWallpaperForOneScreen(int activeScreen) */ void WinWindow::setupWallpaperForAllScreens() { + ScreenPlayUtil::WinMonitorStats monitors; QRect rect; - for (int i = 0; i < QApplication::screens().count(); i++) { - QScreen* screenTmp = QApplication::screens().at(i); - rect.setWidth(rect.width() + screenTmp->geometry().width()); - rect.setHeight(rect.height() + screenTmp->geometry().height()); + for (int i = 0; i < monitors.iMonitors.size(); i++) { + const int width = std::abs(monitors.rcMonitors[i].right - monitors.rcMonitors[i].left); + const int height = std::abs(monitors.rcMonitors[i].top - monitors.rcMonitors[i].bottom); + qInfo() << width << height; + rect.setWidth(rect.width() + width); + rect.setHeight(rect.height() + height); } - m_window.setHeight(rect.height()); - m_window.setWidth(rect.width()); - if (!SetWindowPos(m_windowHandle, HWND_TOPMOST, 0, 0, rect.width(), rect.height(), SWP_NOSIZE | SWP_NOMOVE)) { + int offsetX = 0; + int offsetY = 0; + for (int i = 0; i < monitors.iMonitors.size(); i++) { + const int x = monitors.rcMonitors[i].left; + const int y = monitors.rcMonitors[i].top; + qInfo() << x << y; + if (x < offsetX) { + offsetX = x; + } + if (y < offsetY) { + offsetY += y; + } + } + if (!SetWindowPos(m_windowHandle, nullptr, offsetX, offsetY, rect.width(), rect.height(), SWP_NOSIZE | SWP_NOMOVE)) { + qFatal("Could not set window pos: "); + } + if (!SetWindowPos(m_windowHandle, nullptr, offsetX, offsetY, rect.width(), rect.height(), SWP_NOSIZE | SWP_NOMOVE)) { qFatal("Could not set window pos: "); } if (SetParent(m_windowHandle, m_windowHandleWorker) == nullptr) { qFatal("Could not attach to parent window"); } + qInfo() << rect.width() << rect.height() << offsetX << offsetY; + m_window.setHeight(rect.height()); + m_window.setWidth(rect.width()); + m_window.setY(offsetY); + m_window.setX(offsetX+1920); + qInfo() << m_window.geometry(); } /*! diff --git a/ScreenPlayWorkshop/CMakeLists.txt b/ScreenPlayWorkshop/CMakeLists.txt index bb6cce28..d7ef8ff1 100644 --- a/ScreenPlayWorkshop/CMakeLists.txt +++ b/ScreenPlayWorkshop/CMakeLists.txt @@ -60,8 +60,7 @@ qt_add_qml_module( ${WORKSHOP_PLUGIN_DIR} URI "Workshop" SOURCES ${SOURCES} ${HEADER} - VERSION - 1.0) + VERSION 1.0) if(${SCREENPLAY_STEAM}) @@ -84,4 +83,4 @@ endif() # https://github.com/qt/qtdeclarative/blob/7a7064e14f094e843e1ee832cc927e86f887621a/src/qml/Qt6QmlMacros.cmake#L2042 target_include_directories(${PROJECT_NAME} PUBLIC src/) -target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Quick ${STEAM_LIB} ScreenPlayUtil SteamSDK) +target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Quick ${STEAM_LIB} ScreenPlayUtil SteamSDK SteamSDKQtEnums) diff --git a/ScreenPlayWorkshop/SteamSDK/CMakeLists.txt b/ScreenPlayWorkshop/SteamSDK/CMakeLists.txt index f74286af..74e908c4 100644 --- a/ScreenPlayWorkshop/SteamSDK/CMakeLists.txt +++ b/ScreenPlayWorkshop/SteamSDK/CMakeLists.txt @@ -50,11 +50,17 @@ set(HEADER public/steam/steamps3params.h public/steam/steamtypes.h public/steam/steamuniverse.h - # CUSTOM - public/steam/steam_qt_enums_generated.h - # ENDCUSTOM ) -add_library(${PROJECT_NAME} STATIC ${HEADER}) -target_include_directories(${PROJECT_NAME} PUBLIC public/) -target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core) + +if(${SCREENPLAY_STEAM}) + add_library(${PROJECT_NAME} STATIC ${HEADER}) + target_include_directories(${PROJECT_NAME} PUBLIC public/) + target_link_libraries(${PROJECT_NAME}) +endif() + +# We allaways need the generated enums as a workaround to register these enums in app.cpp. +# Registering in the ScreenPlayWorkshop plugin does not work for some reason. +add_library(SteamSDKQtEnums STATIC public/steam/steam_qt_enums_generated.h) +target_include_directories(SteamSDKQtEnums PUBLIC public/) +target_link_libraries(SteamSDKQtEnums PRIVATE Qt6::Core) diff --git a/ScreenPlayWorkshop/src/installedlistmodel.cpp b/ScreenPlayWorkshop/src/installedlistmodel.cpp index 112f7ef7..7773c35a 100644 --- a/ScreenPlayWorkshop/src/installedlistmodel.cpp +++ b/ScreenPlayWorkshop/src/installedlistmodel.cpp @@ -88,8 +88,10 @@ void InstalledListModel::append(const QJsonObject& obj, const QString& folderNam void InstalledListModel::loadInstalledContent() { + if(m_loadContentFutureWatcher.isRunning()) + return; - QtConcurrent::run([this]() { + m_loadContentFuture = QtConcurrent::run([this]() { QFileInfoList list = QDir(m_absoluteStoragePath.toLocalFile()).entryInfoList(QDir::NoDotAndDotDot | QDir::AllDirs); for (const auto& item : list) { @@ -117,6 +119,7 @@ void InstalledListModel::loadInstalledContent() emit installedLoadingFinished(); }); + m_loadContentFutureWatcher.setFuture(m_loadContentFuture); } QVariantMap InstalledListModel::get(QString folderId) diff --git a/ScreenPlayWorkshop/src/installedlistmodel.h b/ScreenPlayWorkshop/src/installedlistmodel.h index 90cb1712..b4c90454 100644 --- a/ScreenPlayWorkshop/src/installedlistmodel.h +++ b/ScreenPlayWorkshop/src/installedlistmodel.h @@ -89,6 +89,8 @@ signals: private: QVector m_screenPlayFiles; QUrl m_absoluteStoragePath; + QFuture m_loadContentFuture; + QFutureWatcher m_loadContentFutureWatcher; }; }