mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-11-09 12:32:40 +01:00
Merge branch 'dev' into 37-support-system-wide-dark-mode
This commit is contained in:
commit
bdc4b4ced6
@ -70,18 +70,22 @@ INCLUDEPATH += \
|
|||||||
$$PWD/src/\
|
$$PWD/src/\
|
||||||
|
|
||||||
|
|
||||||
|
CONFIG(debug, debug|release) {
|
||||||
|
install_assets.path = $${OUT_PWD}/assets/fonts
|
||||||
|
} else {
|
||||||
|
install_assets.path = $${OUT_PWD}/assets/fonts
|
||||||
|
}
|
||||||
|
|
||||||
|
install_assets.files += $$PWD/assets/fonts/NotoSansCJKkr-Regular.otf
|
||||||
|
|
||||||
win32 {
|
win32 {
|
||||||
RC_ICONS += favicon.ico
|
RC_ICONS += favicon.ico
|
||||||
|
|
||||||
|
|
||||||
CONFIG(debug, debug|release) {
|
CONFIG(debug, debug|release) {
|
||||||
install_it.path = $${OUT_PWD}/debug/
|
install_it.path = $${OUT_PWD}/debug/
|
||||||
} else {
|
} else {
|
||||||
install_it.path = $${OUT_PWD}/release/
|
install_it.path = $${OUT_PWD}/release/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/../Common/vcpkg/installed/x64-windows/include
|
INCLUDEPATH += $$PWD/../Common/vcpkg/installed/x64-windows/include
|
||||||
DEPENDPATH += $$PWD/../Common/vcpkg/installed/x64-windows/include
|
DEPENDPATH += $$PWD/../Common/vcpkg/installed/x64-windows/include
|
||||||
|
|
||||||
@ -154,5 +158,5 @@ unix {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
INSTALLS += install_it
|
INSTALLS += install_it install_assets
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ App::App()
|
|||||||
QGuiApplication::setOrganizationName("ScreenPlay");
|
QGuiApplication::setOrganizationName("ScreenPlay");
|
||||||
QGuiApplication::setOrganizationDomain("screen-play.app");
|
QGuiApplication::setOrganizationDomain("screen-play.app");
|
||||||
QGuiApplication::setApplicationName("ScreenPlay");
|
QGuiApplication::setApplicationName("ScreenPlay");
|
||||||
QGuiApplication::setApplicationVersion("0.9.0");
|
QGuiApplication::setApplicationVersion("0.10.0");
|
||||||
QGuiApplication::setQuitOnLastWindowClosed(false);
|
QGuiApplication::setQuitOnLastWindowClosed(false);
|
||||||
|
|
||||||
QtBreakpad::init(QDir::current().absolutePath());
|
QtBreakpad::init(QDir::current().absolutePath());
|
||||||
|
@ -30,7 +30,7 @@ ApplicationWindow {
|
|||||||
visible: false
|
visible: false
|
||||||
width: 1400
|
width: 1400
|
||||||
height: 788
|
height: 788
|
||||||
title: "ScreenPlay Alpha - V0.9.0"
|
title: "ScreenPlay Alpha - V0.10.0"
|
||||||
minimumHeight: 450
|
minimumHeight: 450
|
||||||
minimumWidth: 1050
|
minimumWidth: 1050
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import QtQuick.Controls 2.14
|
|||||||
import QtQuick.Layouts 1.14
|
import QtQuick.Layouts 1.14
|
||||||
import QtQuick.Dialogs 1.2
|
import QtQuick.Dialogs 1.2
|
||||||
import ScreenPlay 1.0
|
import ScreenPlay 1.0
|
||||||
|
import Settings 1.0
|
||||||
|
|
||||||
import "../../../Common"
|
import "../../../Common"
|
||||||
|
|
||||||
@ -159,7 +160,6 @@ Item {
|
|||||||
TagSelector {
|
TagSelector {
|
||||||
id: tagSelector
|
id: tagSelector
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
font.family: ScreenPlay.settings.font
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -222,6 +222,9 @@ Item {
|
|||||||
right: parent.right
|
right: parent.right
|
||||||
left: parent.left
|
left: parent.left
|
||||||
}
|
}
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
}
|
||||||
TabBar {
|
TabBar {
|
||||||
height: parent.height
|
height: parent.height
|
||||||
background: Item {}
|
background: Item {}
|
||||||
|
@ -177,6 +177,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
GridView {
|
GridView {
|
||||||
id: customPropertiesGridView
|
id: customPropertiesGridView
|
||||||
boundsBehavior: Flickable.DragOverBounds
|
boundsBehavior: Flickable.DragOverBounds
|
||||||
@ -191,18 +192,21 @@ Item {
|
|||||||
top: parent.top
|
top: parent.top
|
||||||
topMargin: 60
|
topMargin: 60
|
||||||
right: parent.right
|
right: parent.right
|
||||||
|
rightMargin: 40
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
margins: 30
|
bottomMargin: 30
|
||||||
left: itmLeftWrapper.right
|
left: itmLeftWrapper.right
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: MonitorsProjectSettingItem {
|
delegate: MonitorsProjectSettingItem {
|
||||||
id: delegate
|
id: delegate
|
||||||
|
width: parent.width - 40
|
||||||
selectedMonitor: monitors.activeMonitorIndex
|
selectedMonitor: monitors.activeMonitorIndex
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollBar.vertical: ScrollBar {
|
ScrollBar.vertical: ScrollBar {
|
||||||
snapMode: ScrollBar.SnapOnRelease
|
snapMode: ScrollBar.SnapOnRelease
|
||||||
|
policy: ScrollBar.AlwaysOn
|
||||||
}
|
}
|
||||||
|
|
||||||
states: [
|
states: [
|
||||||
@ -337,3 +341,9 @@ Item {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*##^##
|
||||||
|
Designer {
|
||||||
|
D{i:0;autoSize:true;height:768;width:1366}
|
||||||
|
}
|
||||||
|
##^##*/
|
||||||
|
@ -1,34 +1,32 @@
|
|||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
import QtQuick.Controls 2.3
|
import QtQuick.Controls 2.3
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
|
import QtQuick.Dialogs 1.2
|
||||||
import QtQuick.Controls.Material 2.2
|
import QtQuick.Controls.Material 2.2
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
|
import Settings 1.0
|
||||||
import ScreenPlay 1.0
|
import ScreenPlay 1.0
|
||||||
|
|
||||||
Item {
|
Rectangle {
|
||||||
id: delegate
|
id: delegate
|
||||||
focus: true
|
focus: true
|
||||||
height: isHeadline ? 50 : 30
|
height: isHeadline ? 50 : 30
|
||||||
width: 300
|
|
||||||
|
|
||||||
property int selectedMonitor
|
property int selectedMonitor
|
||||||
|
|
||||||
anchors {
|
|
||||||
left: parent.left
|
|
||||||
leftMargin: isHeadline ? 0 : 25
|
|
||||||
}
|
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
id: txtDescription
|
id: txtDescription
|
||||||
text: name
|
text: name
|
||||||
width: 100
|
width: 100
|
||||||
font.pointSize: isHeadline ? 21 : 14
|
font.pointSize: isHeadline ? 18 : 12
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
font.family: ScreenPlay.settings.font
|
font.family: ScreenPlay.settings.font
|
||||||
font.weight: Font.Normal
|
font.weight: Font.Normal
|
||||||
|
color: isHeadline ? Qt.darker(Material.foreground) : Material.foreground
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
left: parent.left
|
left: parent.left
|
||||||
|
leftMargin: isHeadline ? 0 : 25
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,19 +46,102 @@ Item {
|
|||||||
|
|
||||||
var obj = JSON.parse(value.toString())
|
var obj = JSON.parse(value.toString())
|
||||||
|
|
||||||
if (obj["type"] === "slider") {
|
if (obj["text"]) {
|
||||||
|
txtDescription.text = obj["text"]
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (obj["type"]) {
|
||||||
|
case "slider":
|
||||||
loader.sourceComponent = compSlider
|
loader.sourceComponent = compSlider
|
||||||
loader.item.from = obj["from"]
|
loader.item.from = obj["from"]
|
||||||
loader.item.to = obj["to"]
|
loader.item.to = obj["to"]
|
||||||
loader.item.value = obj["value"]
|
loader.item.value = obj["value"]
|
||||||
loader.item.stepSize = obj["stepSize"]
|
loader.item.stepSize = obj["stepSize"]
|
||||||
|
break
|
||||||
|
case "bool":
|
||||||
|
loader.sourceComponent = compCheckbox
|
||||||
|
loader.item.value = obj["value"]
|
||||||
|
break
|
||||||
|
case "color":
|
||||||
|
loader.sourceComponent = compColorpicker
|
||||||
|
loader.item.value = obj["value"]
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Component {
|
||||||
|
id: compCheckbox
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: root
|
||||||
|
anchors.fill: parent
|
||||||
|
property bool value
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
id: checkbox
|
||||||
|
checkable: true
|
||||||
|
checked: root.value
|
||||||
|
anchors {
|
||||||
|
right: parent.right
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
onCheckedChanged: {
|
||||||
|
ScreenPlay.screenPlayManager.setWallpaperValue(
|
||||||
|
selectedMonitor, name, checkbox.checked)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component {
|
||||||
|
id: compColorpicker
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: root
|
||||||
|
anchors.fill: parent
|
||||||
|
property color value
|
||||||
|
|
||||||
|
Button {
|
||||||
|
id: btnSetColor
|
||||||
|
text: qsTr("Set color")
|
||||||
|
onClicked: colorDialog.open()
|
||||||
|
anchors {
|
||||||
|
right: parent.right
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Rectangle {
|
||||||
|
id: rctPreviewColor
|
||||||
|
radius: 3
|
||||||
|
color: root.value
|
||||||
|
border.width: 1
|
||||||
|
border.color: "gray"
|
||||||
|
width: parent.height
|
||||||
|
height: parent.height
|
||||||
|
anchors {
|
||||||
|
right: btnSetColor.left
|
||||||
|
rightMargin: 20
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ColorDialog {
|
||||||
|
id: colorDialog
|
||||||
|
title: qsTr("Please choose a color")
|
||||||
|
onAccepted: {
|
||||||
|
rctPreviewColor.color = colorDialog.color
|
||||||
|
let tmpColor = "'" + colorDialog.color.toString() + "'"
|
||||||
|
ScreenPlay.screenPlayManager.setWallpaperValue(
|
||||||
|
selectedMonitor, name, tmpColor)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Component {
|
Component {
|
||||||
id: compSlider
|
id: compSlider
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id:root
|
id: root
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
property int from
|
property int from
|
||||||
property int to
|
property int to
|
||||||
@ -68,24 +149,35 @@ Item {
|
|||||||
property int stepSize
|
property int stepSize
|
||||||
|
|
||||||
Slider {
|
Slider {
|
||||||
id:slider
|
id: slider
|
||||||
from: root.from
|
from: root.from
|
||||||
to: root.to
|
to: root.to
|
||||||
value: root.value
|
value: root.value
|
||||||
stepSize: root.stepSize
|
stepSize: root.stepSize
|
||||||
live: false
|
live: false
|
||||||
width: parent.width
|
|
||||||
|
anchors {
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
right:txtSliderValue.left
|
||||||
|
rightMargin: 20
|
||||||
|
left:parent.left
|
||||||
|
leftMargin: 20
|
||||||
|
}
|
||||||
|
|
||||||
onValueChanged: {
|
onValueChanged: {
|
||||||
var value = Math.round(slider.value * 100) / 100;
|
var value = Math.round(slider.value * 100) / 100
|
||||||
txtSliderValue.text = value;
|
txtSliderValue.text = value
|
||||||
ScreenPlay.screenPlayManager.setWallpaperValue(selectedMonitor,txtDescription.text,value)
|
ScreenPlay.screenPlayManager.setWallpaperValue(
|
||||||
|
selectedMonitor, name, value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Text {
|
Text {
|
||||||
id: txtSliderValue
|
id: txtSliderValue
|
||||||
anchors{
|
color: Material.foreground
|
||||||
right:parent.right
|
horizontalAlignment: Text.AlignRight
|
||||||
|
font.family: ScreenPlay.settings.font
|
||||||
|
anchors {
|
||||||
|
right: parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -95,6 +187,14 @@ Item {
|
|||||||
Loader {
|
Loader {
|
||||||
id: loader
|
id: loader
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
anchors.rightMargin: 10
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*##^##
|
||||||
|
Designer {
|
||||||
|
D{i:0;height:50;width:400}
|
||||||
|
}
|
||||||
|
##^##*/
|
||||||
|
|
||||||
|
@ -15,6 +15,10 @@ Rectangle {
|
|||||||
width: 1366
|
width: 1366
|
||||||
color: Material.background
|
color: Material.background
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
}
|
||||||
|
|
||||||
signal changePage(string name)
|
signal changePage(string name)
|
||||||
|
|
||||||
property var navArray: [navCreate, navWorkshop, navInstalled, navSettings, navCommunity]
|
property var navArray: [navCreate, navWorkshop, navInstalled, navSettings, navCommunity]
|
||||||
|
@ -101,7 +101,18 @@ void ScreenPlayManager::createWallpaper(
|
|||||||
settings.insert("absolutePath", path);
|
settings.insert("absolutePath", path);
|
||||||
|
|
||||||
saveWallpaperProfile("default", settings);
|
saveWallpaperProfile("default", settings);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
if (saveToProfilesConfigFile && type == "qmlWallpaper") {
|
||||||
|
QJsonObject settings;
|
||||||
|
settings.insert("monitors", monitors);
|
||||||
|
settings.insert("type", type);
|
||||||
|
settings.insert("previewImage", previewImage);
|
||||||
|
settings.insert("absolutePath", path);
|
||||||
|
|
||||||
|
saveWallpaperProfile("default", settings);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -138,7 +149,7 @@ void ScreenPlayManager::removeAllWallpapers()
|
|||||||
m_screenPlayWallpapers.clear();
|
m_screenPlayWallpapers.clear();
|
||||||
m_monitorListModel->clearActiveWallpaper();
|
m_monitorListModel->clearActiveWallpaper();
|
||||||
|
|
||||||
QString absoluteProfilesFilePath = m_globalVariables->localSettingsPath().toLocalFile() + "/profiles.json";
|
QString absoluteProfilesFilePath = m_globalVariables->localSettingsPath().toString() + "/profiles.json";
|
||||||
auto configOptional = Util::openJsonFileToObject(absoluteProfilesFilePath);
|
auto configOptional = Util::openJsonFileToObject(absoluteProfilesFilePath);
|
||||||
|
|
||||||
if (!configOptional) {
|
if (!configOptional) {
|
||||||
@ -164,6 +175,8 @@ void ScreenPlayManager::removeAllWallpapers()
|
|||||||
|
|
||||||
Util::writeJsonObjectToFile(absoluteProfilesFilePath, newConfig);
|
Util::writeJsonObjectToFile(absoluteProfilesFilePath, newConfig);
|
||||||
setActiveWallpaperCounter(0);
|
setActiveWallpaperCounter(0);
|
||||||
|
} else {
|
||||||
|
qWarning() << "Trying to remove all wallpapers while m_screenPlayWallpapers is not empty. Count: "<< m_screenPlayWallpapers.size();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,7 +274,7 @@ bool ScreenPlayManager::saveWallpaperProfile(const QString& profileName, const Q
|
|||||||
// Remove when implementing profiles
|
// Remove when implementing profiles
|
||||||
Q_UNUSED(profileName)
|
Q_UNUSED(profileName)
|
||||||
|
|
||||||
QString absoluteProfilesFilePath = m_globalVariables->localSettingsPath().toLocalFile() + "/profiles.json";
|
QString absoluteProfilesFilePath = m_globalVariables->localSettingsPath().toString() + "/profiles.json";
|
||||||
auto configOptional = Util::openJsonFileToObject(absoluteProfilesFilePath);
|
auto configOptional = Util::openJsonFileToObject(absoluteProfilesFilePath);
|
||||||
|
|
||||||
if (!configOptional) {
|
if (!configOptional) {
|
||||||
@ -313,10 +326,10 @@ bool ScreenPlayManager::saveWallpaperProfile(const QString& profileName, const Q
|
|||||||
void ScreenPlayManager::loadWallpaperProfiles()
|
void ScreenPlayManager::loadWallpaperProfiles()
|
||||||
{
|
{
|
||||||
|
|
||||||
auto configObj = Util::openJsonFileToObject(m_globalVariables->localSettingsPath().toLocalFile() + "/profiles.json");
|
auto configObj = Util::openJsonFileToObject(m_globalVariables->localSettingsPath().toString() + "/profiles.json");
|
||||||
|
|
||||||
if (!configObj) {
|
if (!configObj) {
|
||||||
qWarning() << "Could not load active profiles at path: " << m_globalVariables->localSettingsPath().toLocalFile() + "/profiles.json";
|
qWarning() << "Could not load active profiles at path: " << m_globalVariables->localSettingsPath().toString() + "/profiles.json";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ Settings::Settings(const shared_ptr<GlobalVariables>& globalVariables,
|
|||||||
setAnonymousTelemetry(m_qSettings.value("AnonymousTelemetry", true).toBool());
|
setAnonymousTelemetry(m_qSettings.value("AnonymousTelemetry", true).toBool());
|
||||||
|
|
||||||
// Wallpaper and Widgets config
|
// Wallpaper and Widgets config
|
||||||
QFile profilesFile(m_globalVariables->localSettingsPath().toLocalFile() + "/profiles.json");
|
QFile profilesFile(m_globalVariables->localSettingsPath().toString() + "/profiles.json");
|
||||||
if (!profilesFile.exists()) {
|
if (!profilesFile.exists()) {
|
||||||
qInfo("No profiles.json found, creating default profiles.json");
|
qInfo("No profiles.json found, creating default profiles.json");
|
||||||
qDebug() << profilesFile;
|
qDebug() << profilesFile;
|
||||||
@ -130,7 +130,7 @@ Settings::Settings(const shared_ptr<GlobalVariables>& globalVariables,
|
|||||||
*/
|
*/
|
||||||
void Settings::writeJsonFileFromResource(const QString& filename)
|
void Settings::writeJsonFileFromResource(const QString& filename)
|
||||||
{
|
{
|
||||||
QFile file(m_globalVariables->localSettingsPath().toLocalFile() + "/" + filename + ".json");
|
QFile file(m_globalVariables->localSettingsPath().toString() + "/" + filename + ".json");
|
||||||
QFile defaultSettings(":/" + filename + ".json");
|
QFile defaultSettings(":/" + filename + ".json");
|
||||||
|
|
||||||
file.open(QIODevice::WriteOnly | QIODevice::Text);
|
file.open(QIODevice::WriteOnly | QIODevice::Text);
|
||||||
|
@ -121,7 +121,7 @@ Item {
|
|||||||
|
|
||||||
onVisualsPausedChanged:{
|
onVisualsPausedChanged:{
|
||||||
if(window.checkWallpaperVisible){
|
if(window.checkWallpaperVisible){
|
||||||
webView.visible = visualsPaused
|
webView.visible = !visualsPaused
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,6 @@ HHOOK mouseHook;
|
|||||||
|
|
||||||
QQuickView* winGlobalHook = nullptr;
|
QQuickView* winGlobalHook = nullptr;
|
||||||
|
|
||||||
|
|
||||||
LRESULT __stdcall MouseHookCallback(int nCode, WPARAM wParam, LPARAM lParam)
|
LRESULT __stdcall MouseHookCallback(int nCode, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
Qt::MouseButton mouseButton {};
|
Qt::MouseButton mouseButton {};
|
||||||
@ -68,8 +67,6 @@ LRESULT __stdcall MouseHookCallback(int nCode, WPARAM wParam, LPARAM lParam)
|
|||||||
auto* app = QApplication::instance();
|
auto* app = QApplication::instance();
|
||||||
|
|
||||||
app->sendEvent(winGlobalHook, &eventRelease);
|
app->sendEvent(winGlobalHook, &eventRelease);
|
||||||
|
|
||||||
qDebug() << mouseButton << mouseButtons;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,7 +141,9 @@ WinWindow::WinWindow(
|
|||||||
m_checkForFullScreenWindowTimer.start(10);
|
m_checkForFullScreenWindowTimer.start(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
setupWindowMouseHook();
|
QTimer::singleShot(1000, [this]() {
|
||||||
|
setupWindowMouseHook();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void WinWindow::setVisible(bool show)
|
void WinWindow::setVisible(bool show)
|
||||||
@ -303,50 +302,31 @@ int GetMonitorIndex(HMONITOR hMonitor)
|
|||||||
|
|
||||||
void WinWindow::checkForFullScreenWindow()
|
void WinWindow::checkForFullScreenWindow()
|
||||||
{
|
{
|
||||||
// If one screen:
|
|
||||||
{
|
|
||||||
auto hWnd = GetForegroundWindow();
|
|
||||||
DWORD dwStyle = (DWORD)GetWindowLong(hWnd, GWL_STYLE);
|
|
||||||
|
|
||||||
int screensCount = QGuiApplication::screens().length();
|
HWND hFoundWnd = nullptr;
|
||||||
if (screensCount == 1) {
|
EnumWindows(&FindTheDesiredWnd, reinterpret_cast<LPARAM>(&hFoundWnd));
|
||||||
|
// True if one window has WS_MAXIMIZE
|
||||||
|
if (hFoundWnd != nullptr) {
|
||||||
|
DWORD dwFlags = 0;
|
||||||
|
HMONITOR monitor = MonitorFromWindow(hFoundWnd, dwFlags);
|
||||||
|
HMONITOR wallpaper = MonitorFromWindow(m_windowHandle, dwFlags);
|
||||||
|
int monitorIndex = GetMonitorIndex(monitor);
|
||||||
|
int wallpaperIndex = GetMonitorIndex(wallpaper);
|
||||||
|
// qDebug() << "Window found " << printWindowNameByhWnd(hFoundWnd) << monitorIndex << activeScreensList().at(0) << wallpaperIndex;
|
||||||
|
|
||||||
if ((dwStyle & WS_MAXIMIZE) != 0) {
|
// We do not support autopause for multi monitor wallpaper
|
||||||
// do stuff
|
if (activeScreensList().length() == 1) {
|
||||||
setVisualsPaused(false);
|
// If the window that has WS_MAXIMIZE is at the same monitor as this wallpaper
|
||||||
} else {
|
if (monitorIndex == wallpaperIndex) {
|
||||||
|
//qDebug() << "monitorIndex" << monitorIndex;
|
||||||
setVisualsPaused(true);
|
setVisualsPaused(true);
|
||||||
|
} else {
|
||||||
|
setVisualsPaused(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// If multiple screens:
|
} else {
|
||||||
{
|
setVisualsPaused(false);
|
||||||
HWND hFoundWnd = nullptr;
|
|
||||||
EnumWindows(&FindTheDesiredWnd, reinterpret_cast<LPARAM>(&hFoundWnd));
|
|
||||||
// True if one window has WS_MAXIMIZE
|
|
||||||
if (hFoundWnd != nullptr) {
|
|
||||||
DWORD dwFlags = 0;
|
|
||||||
HMONITOR monitor = MonitorFromWindow(hFoundWnd, dwFlags);
|
|
||||||
int monitorIndex = GetMonitorIndex(monitor);
|
|
||||||
// qDebug() << "Window found " << printWindowNameByhWnd(hFoundWnd) << monitorIndex << activeScreensList().at(0);
|
|
||||||
|
|
||||||
// We do not support autopause for multi monitor wallpaper
|
|
||||||
if (activeScreensList().length() == 1) {
|
|
||||||
// If the window that has WS_MAXIMIZE is at the same monitor as this wallpaper
|
|
||||||
if (monitorIndex == activeScreensList().at(0)) {
|
|
||||||
// qDebug() << "monitorIndex" << monitorIndex;
|
|
||||||
setVisualsPaused(false);
|
|
||||||
} else {
|
|
||||||
setVisualsPaused(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
setVisualsPaused(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user