From aec5ab59213457e4558910fce32ec07b50344cb0 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Thu, 7 Dec 2017 11:49:05 -0800 Subject: [PATCH] CR --- .../hifi/dialogs/TabletEntityStatistics.qml | 144 +++++++++--------- interface/src/ui/OctreeStatsProvider.cpp | 12 ++ interface/src/ui/OctreeStatsProvider.h | 7 +- libraries/networking/src/LimitedNodeList.cpp | 5 +- 4 files changed, 96 insertions(+), 72 deletions(-) diff --git a/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml index cf3e39a885..da295917a0 100644 --- a/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml +++ b/interface/resources/qml/hifi/dialogs/TabletEntityStatistics.qml @@ -154,86 +154,90 @@ Rectangle { color: OctreeStats.getColor() } - Column { - id: serverColumn - width: scrollView.width - 10 - x: 5 - spacing: 5 + Repeater { + model: OctreeStats.serversNum - state: "less" + delegate: Column { + id: serverColumn + width: scrollView.width - 10 + x: 5 + spacing: 5 - TabletEntityStatisticsItem { - id: serverStats - width: parent.width - titleText: qsTr("Entity Server") + ":" - colorScheme: root.colorScheme - color: OctreeStats.getColor() - } + state: "less" - Row { - id: buttonsRow - width: parent.width - height: 30 - spacing: 10 - - HifiControls.Button { - id: moreButton - color: hifi.buttons.blue + TabletEntityStatisticsItem { + id: serverStats + width: parent.width + titleText: qsTr("Entity Server ") + (index+1) + ":" colorScheme: root.colorScheme - width: parent.width / 2 - 10 + color: OctreeStats.getColor() + } + + Row { + id: buttonsRow + width: parent.width height: 30 - onClicked: { - if (serverColumn.state === "less") { - serverColumn.state = "more" - } else if (serverColumn.state === "more") { - serverColumn.state = "most" - } else { - serverColumn.state = "more" + spacing: 10 + + HifiControls.Button { + id: moreButton + color: hifi.buttons.blue + colorScheme: root.colorScheme + width: parent.width / 2 - 10 + height: 30 + onClicked: { + if (serverColumn.state === "less") { + serverColumn.state = "more" + } else if (serverColumn.state === "more") { + serverColumn.state = "most" + } else { + serverColumn.state = "more" + } } } - } - HifiControls.Button { - id: mostButton - color: hifi.buttons.blue - colorScheme: root.colorScheme - height: 30 - width: parent.width / 2 - 10 - onClicked: { - if (serverColumn.state === "less") { - serverColumn.state = "most" - } else if (serverColumn.state === "more") { - serverColumn.state = "less" - } else { - serverColumn.state = "less" + HifiControls.Button { + id: mostButton + color: hifi.buttons.blue + colorScheme: root.colorScheme + height: 30 + width: parent.width / 2 - 10 + onClicked: { + if (serverColumn.state === "less") { + serverColumn.state = "most" + } else if (serverColumn.state === "more") { + serverColumn.state = "less" + } else { + serverColumn.state = "less" + } } - } + } } - } - states: [ - State { - name: "less" - PropertyChanges { target: moreButton; text: qsTr("more..."); } - PropertyChanges { target: mostButton; text: qsTr("most..."); } - PropertyChanges { target: serverStats; text: OctreeStats.servers[0]; } - }, - State { - name: "more" - PropertyChanges { target: moreButton; text: qsTr("most..."); } - PropertyChanges { target: mostButton; text: qsTr("less..."); } - PropertyChanges { target: serverStats; text: OctreeStats.servers[0] + - OctreeStats.servers[1]; } - }, - State { - name: "most" - PropertyChanges { target: moreButton; text: qsTr("less..."); } - PropertyChanges { target: mostButton; text: qsTr("least..."); } - PropertyChanges { target: serverStats; text: OctreeStats.servers[0] + - OctreeStats.servers[1] + - OctreeStats.servers[2]; } - } - ] - } //servers column + states: [ + State { + name: "less" + PropertyChanges { target: moreButton; text: qsTr("more..."); } + PropertyChanges { target: mostButton; text: qsTr("most..."); } + PropertyChanges { target: serverStats; text: OctreeStats.servers[index*3]; } + }, + State { + name: "more" + PropertyChanges { target: moreButton; text: qsTr("most..."); } + PropertyChanges { target: mostButton; text: qsTr("less..."); } + PropertyChanges { target: serverStats; text: OctreeStats.servers[index*3] + + OctreeStats.servers[index*3 + 1]; } + }, + State { + name: "most" + PropertyChanges { target: moreButton; text: qsTr("less..."); } + PropertyChanges { target: mostButton; text: qsTr("least..."); } + PropertyChanges { target: serverStats; text: OctreeStats.servers[index*3] + + OctreeStats.servers[index*3 + 1] + + OctreeStats.servers[index*3 + 2]; } + } + ] + } //servers column + } //repeater } //column } //flickable } diff --git a/interface/src/ui/OctreeStatsProvider.cpp b/interface/src/ui/OctreeStatsProvider.cpp index 0358685d70..a393660c17 100644 --- a/interface/src/ui/OctreeStatsProvider.cpp +++ b/interface/src/ui/OctreeStatsProvider.cpp @@ -57,6 +57,10 @@ OctreeStatsProvider::~OctreeStatsProvider() { _updateTimer.stop(); } +int OctreeStatsProvider::serversNum() const { + return m_serversNum; +} + void OctreeStatsProvider::updateOctreeStatsData() { // Processed Entities Related stats @@ -238,9 +242,12 @@ void OctreeStatsProvider::updateOctreeServers() { void OctreeStatsProvider::showOctreeServersOfType(NodeType_t serverType) { m_servers.clear(); + int serverCount = 0; auto node = DependencyManager::get()->soloNodeOfType(serverType); if (node) { + ++serverCount; + QString lesserDetails; QString moreDetails; QString mostDetails; @@ -324,6 +331,11 @@ void OctreeStatsProvider::showOctreeServersOfType(NodeType_t serverType) { m_servers.append(moreDetails); m_servers.append(mostDetails); } + + if (serverCount != m_serversNum) { + m_serversNum = serverCount; + emit serversNumChanged(m_serversNum); + } emit serversChanged(m_servers); } diff --git a/interface/src/ui/OctreeStatsProvider.h b/interface/src/ui/OctreeStatsProvider.h index c73f0960f6..5b3d4d735c 100644 --- a/interface/src/ui/OctreeStatsProvider.h +++ b/interface/src/ui/OctreeStatsProvider.h @@ -22,6 +22,7 @@ class OctreeStatsProvider : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY + Q_PROPERTY(int serversNum READ serversNum NOTIFY serversNumChanged) Q_PROPERTY(QString serverElements READ serverElements NOTIFY serverElementsChanged) Q_PROPERTY(QString localElements READ localElements NOTIFY localElementsChanged) Q_PROPERTY(QString localElementsMemory READ localElementsMemory NOTIFY localElementsMemoryChanged) @@ -40,6 +41,8 @@ public: OctreeStatsProvider(QObject* parent, NodeToOctreeSceneStats* model); ~OctreeStatsProvider(); + int serversNum() const; + QString serverElements() const { return m_serverElements; } @@ -89,6 +92,8 @@ public: } signals: + + void serversNumChanged(int serversNum); void serverElementsChanged(const QString &serverElements); void localElementsChanged(const QString &localElements); void sendingModeChanged(const QString &sendingMode); @@ -126,7 +131,7 @@ private: quint64 _lastRefresh = 0; QTimer _updateTimer; - + int m_serversNum { 0 }; QString m_serverElements; QString m_localElements; QString m_localElementsMemory; diff --git a/libraries/networking/src/LimitedNodeList.cpp b/libraries/networking/src/LimitedNodeList.cpp index 94bc4eeff6..1b80c3b3af 100644 --- a/libraries/networking/src/LimitedNodeList.cpp +++ b/libraries/networking/src/LimitedNodeList.cpp @@ -42,7 +42,10 @@ static Setting::Handle LIMITED_NODELIST_LOCAL_PORT("LimitedNodeList.Loc const std::set SOLO_NODE_TYPES = { NodeType::AvatarMixer, NodeType::AudioMixer, - NodeType::AssetServer + NodeType::AssetServer, + NodeType::EntityServer, + NodeType::MessagesMixer, + NodeType::EntityScriptServer }; LimitedNodeList::LimitedNodeList(int socketListenPort, int dtlsListenPort) :