From c795d2ca3be04f8ee4ea4ad043317fcda0307cf1 Mon Sep 17 00:00:00 2001 From: Howard Stearns Date: Tue, 28 Mar 2017 18:31:08 -0700 Subject: [PATCH] Four-way discoverability. (Needs testing.) --- interface/resources/qml/hifi/Pal.qml | 14 +++----------- interface/src/DiscoverabilityManager.h | 1 + .../scripting/GlobalServicesScriptingInterface.cpp | 6 +++++- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/interface/resources/qml/hifi/Pal.qml b/interface/resources/qml/hifi/Pal.qml index d5e26e22cf..3b9cbdf48c 100644 --- a/interface/resources/qml/hifi/Pal.qml +++ b/interface/resources/qml/hifi/Pal.qml @@ -162,17 +162,8 @@ Rectangle { } HifiControlsUit.TabletComboBox { function determineAvailabilityIndex() { - var globalServicesAvailability = GlobalServices.findableBy; - if (globalServicesAvailability === "all") { - return 0; - } else if (globalServicesAvailability === "friends") { - return 1; - } else if (globalServicesAvailability === "none") { - return 2; - } else { - return 1; - } - } + return ['all', 'connections', 'friends', 'none'].indexOf(GlobalServices.findableBy) + } id: availabilityComboBox; // Anchors anchors.top: parent.top; @@ -184,6 +175,7 @@ Rectangle { model: ListModel { id: availabilityComboBoxListItems ListElement { text: "Everyone"; value: "all"; } + ListElement { text: "All Connections"; value: "connections"; } ListElement { text: "Friends Only"; value: "friends"; } ListElement { text: "Appear Offline"; value: "none" } } diff --git a/interface/src/DiscoverabilityManager.h b/interface/src/DiscoverabilityManager.h index 196b0cdf81..a6c717c93f 100644 --- a/interface/src/DiscoverabilityManager.h +++ b/interface/src/DiscoverabilityManager.h @@ -19,6 +19,7 @@ namespace Discoverability { enum Mode { None, Friends, + Connections, All }; } diff --git a/interface/src/scripting/GlobalServicesScriptingInterface.cpp b/interface/src/scripting/GlobalServicesScriptingInterface.cpp index d7e5bae3f8..bde94e80fa 100644 --- a/interface/src/scripting/GlobalServicesScriptingInterface.cpp +++ b/interface/src/scripting/GlobalServicesScriptingInterface.cpp @@ -59,7 +59,9 @@ QString GlobalServicesScriptingInterface::findableByString(Discoverability::Mode return "none"; } else if (discoverabilityMode == Discoverability::Friends) { return "friends"; - } else if (discoverabilityMode == Discoverability::All) { + } else if (discoverabilityMode == Discoverability::Connections) { + return "connections"; + } else if (discoverabilityMode == Discoverability::All) { return "all"; } else { qDebug() << "GlobalServices findableByString called with an unrecognized value."; @@ -80,6 +82,8 @@ void GlobalServicesScriptingInterface::setFindableBy(const QString& discoverabil discoverabilityManager->setDiscoverabilityMode(Discoverability::None); } else if (discoverabilityMode.toLower() == "friends") { discoverabilityManager->setDiscoverabilityMode(Discoverability::Friends); + } else if (discoverabilityMode.toLower() == "connections") { + discoverabilityManager->setDiscoverabilityMode(Discoverability::Connections); } else if (discoverabilityMode.toLower() == "all") { discoverabilityManager->setDiscoverabilityMode(Discoverability::All); } else {