From 8f3fa08b1eae683812b1dbf3bf7097493af43b3d Mon Sep 17 00:00:00 2001 From: druiz17 Date: Wed, 11 Oct 2017 11:41:10 -0700 Subject: [PATCH 1/4] hud module intersects with stats window --- interface/resources/qml/Stats.qml | 1 + interface/resources/qml/desktop/Desktop.qml | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/interface/resources/qml/Stats.qml b/interface/resources/qml/Stats.qml index 8737e422cb..3ac37545d9 100644 --- a/interface/resources/qml/Stats.qml +++ b/interface/resources/qml/Stats.qml @@ -8,6 +8,7 @@ Item { anchors.leftMargin: 300 objectName: "StatsItem" + property var statsObject: root Component.onCompleted: { stats.parentChanged.connect(fill); diff --git a/interface/resources/qml/desktop/Desktop.qml b/interface/resources/qml/desktop/Desktop.qml index bb23148ec6..a5b1b8eb7c 100644 --- a/interface/resources/qml/desktop/Desktop.qml +++ b/interface/resources/qml/desktop/Desktop.qml @@ -301,14 +301,18 @@ FocusScope { function isPointOnWindow(point) { for (var i = 0; i < desktop.visibleChildren.length; i++) { var child = desktop.visibleChildren[i]; - if (child.visible) { - if (child.hasOwnProperty("modality")) { - var mappedPoint = child.mapFromGlobal(point.x, point.y); - var outLine = child.frame.children[2]; - var framePoint = outLine.mapFromGlobal(point.x, point.y); - if (child.contains(mappedPoint) || outLine.contains(framePoint)) { - return true; - } + var childName = child.objectName; + if (child.hasOwnProperty("modality")) { + var mappedPoint = child.mapFromGlobal(point.x, point.y); + var outLine = child.frame.children[2]; + var framePoint = outLine.mapFromGlobal(point.x, point.y); + if (child.contains(mappedPoint) || outLine.contains(framePoint)) { + return true; + } + } else if (childName === "StatsItem") { + var mappedPoint = child.statsObject.mapFromGlobal(point.x, point.y); + if (child.statsObject.contains(mappedPoint)) { + return true; } } } From 42cab19ab2b14feaef66bbf41ebe1eaf1916deac Mon Sep 17 00:00:00 2001 From: druiz17 Date: Wed, 11 Oct 2017 16:04:35 -0700 Subject: [PATCH 2/4] generialze window search --- interface/resources/qml/AvatarInputs.qml | 1 + interface/resources/qml/Stats.qml | 9 ++++++--- interface/resources/qml/desktop/Desktop.qml | 16 ++++++++-------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/interface/resources/qml/AvatarInputs.qml b/interface/resources/qml/AvatarInputs.qml index d86d4fd022..be4bf03465 100644 --- a/interface/resources/qml/AvatarInputs.qml +++ b/interface/resources/qml/AvatarInputs.qml @@ -17,6 +17,7 @@ import "./hifi/audio" as HifiAudio Hifi.AvatarInputs { id: root; objectName: "AvatarInputs" + property int modality: Qt.NonModal width: audio.width; height: audio.height; x: 10; y: 5; diff --git a/interface/resources/qml/Stats.qml b/interface/resources/qml/Stats.qml index 3ac37545d9..4626d9bcda 100644 --- a/interface/resources/qml/Stats.qml +++ b/interface/resources/qml/Stats.qml @@ -8,7 +8,9 @@ Item { anchors.leftMargin: 300 objectName: "StatsItem" - property var statsObject: root + property int modality: Qt.NonModal + implicitHeight: row.height + implicitWidth: row.width Component.onCompleted: { stats.parentChanged.connect(fill); @@ -19,8 +21,9 @@ Item { } function fill() { - // Explicitly fill in order to avoid warnings at shutdown - anchors.fill = parent; + // This will cause a warning at shutdown, need to find another way to remove + // the warning other than filling the anchors to the parent + anchors.horizontalCenter = parent.horizontalCenter } Hifi.Stats { diff --git a/interface/resources/qml/desktop/Desktop.qml b/interface/resources/qml/desktop/Desktop.qml index a5b1b8eb7c..a93dd3cdd7 100644 --- a/interface/resources/qml/desktop/Desktop.qml +++ b/interface/resources/qml/desktop/Desktop.qml @@ -301,17 +301,17 @@ FocusScope { function isPointOnWindow(point) { for (var i = 0; i < desktop.visibleChildren.length; i++) { var child = desktop.visibleChildren[i]; - var childName = child.objectName; if (child.hasOwnProperty("modality")) { var mappedPoint = child.mapFromGlobal(point.x, point.y); - var outLine = child.frame.children[2]; - var framePoint = outLine.mapFromGlobal(point.x, point.y); - if (child.contains(mappedPoint) || outLine.contains(framePoint)) { - return true; + if (child.hasOwnProperty("frame")) { + var outLine = child.frame.children[2]; + var framePoint = outLine.mapFromGlobal(point.x, point.y); + if (child.contains(mappedPoint) || outLine.contains(framePoint)) { + return true; + } } - } else if (childName === "StatsItem") { - var mappedPoint = child.statsObject.mapFromGlobal(point.x, point.y); - if (child.statsObject.contains(mappedPoint)) { + + if (child.contains(mappedPoint)) { return true; } } From 83d2a54b0fa132949b4eb3dd8b08a8fcac87e28c Mon Sep 17 00:00:00 2001 From: druiz17 Date: Thu, 12 Oct 2017 13:48:21 -0700 Subject: [PATCH 3/4] fixed some bugs --- interface/resources/qml/desktop/Desktop.qml | 3 ++- interface/src/ui/Stats.cpp | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/interface/resources/qml/desktop/Desktop.qml b/interface/resources/qml/desktop/Desktop.qml index a93dd3cdd7..329e71a305 100644 --- a/interface/resources/qml/desktop/Desktop.qml +++ b/interface/resources/qml/desktop/Desktop.qml @@ -302,11 +302,12 @@ FocusScope { for (var i = 0; i < desktop.visibleChildren.length; i++) { var child = desktop.visibleChildren[i]; if (child.hasOwnProperty("modality")) { - var mappedPoint = child.mapFromGlobal(point.x, point.y); + var mappedPoint = mapToItem(child, point.x, point.y); if (child.hasOwnProperty("frame")) { var outLine = child.frame.children[2]; var framePoint = outLine.mapFromGlobal(point.x, point.y); if (child.contains(mappedPoint) || outLine.contains(framePoint)) { + console.log("it should not be here"); return true; } } diff --git a/interface/src/ui/Stats.cpp b/interface/src/ui/Stats.cpp index 8140dfb8ae..d4a300c337 100644 --- a/interface/src/ui/Stats.cpp +++ b/interface/src/ui/Stats.cpp @@ -106,14 +106,15 @@ extern std::atomic DECIMATED_TEXTURE_COUNT; extern std::atomic RECTIFIED_TEXTURE_COUNT; void Stats::updateStats(bool force) { + QQuickItem* parent = parentItem(); if (!force) { if (!Menu::getInstance()->isOptionChecked(MenuOption::Stats)) { - if (isVisible()) { - setVisible(false); + if (parent->isVisible()) { + parent->setVisible(false); } return; - } else if (!isVisible()) { - setVisible(true); + } else if (!parent->isVisible()) { + parent->setVisible(true); } } From 2422c9d9f3efb5bd88ecbc7c391a84b506ef017f Mon Sep 17 00:00:00 2001 From: druiz17 Date: Fri, 13 Oct 2017 10:45:24 -0700 Subject: [PATCH 4/4] made requested changes --- interface/resources/qml/desktop/Desktop.qml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/interface/resources/qml/desktop/Desktop.qml b/interface/resources/qml/desktop/Desktop.qml index 329e71a305..847111b8a0 100644 --- a/interface/resources/qml/desktop/Desktop.qml +++ b/interface/resources/qml/desktop/Desktop.qml @@ -306,8 +306,7 @@ FocusScope { if (child.hasOwnProperty("frame")) { var outLine = child.frame.children[2]; var framePoint = outLine.mapFromGlobal(point.x, point.y); - if (child.contains(mappedPoint) || outLine.contains(framePoint)) { - console.log("it should not be here"); + if (outLine.contains(framePoint)) { return true; } }