This commit is contained in:
Atlante45 2017-12-07 11:49:05 -08:00
parent 06e2f394f9
commit aec5ab5921
4 changed files with 96 additions and 72 deletions

View file

@ -154,86 +154,90 @@ Rectangle {
color: OctreeStats.getColor() color: OctreeStats.getColor()
} }
Column { Repeater {
id: serverColumn model: OctreeStats.serversNum
width: scrollView.width - 10
x: 5
spacing: 5
state: "less" delegate: Column {
id: serverColumn
width: scrollView.width - 10
x: 5
spacing: 5
TabletEntityStatisticsItem { state: "less"
id: serverStats
width: parent.width
titleText: qsTr("Entity Server") + ":"
colorScheme: root.colorScheme
color: OctreeStats.getColor()
}
Row { TabletEntityStatisticsItem {
id: buttonsRow id: serverStats
width: parent.width width: parent.width
height: 30 titleText: qsTr("Entity Server ") + (index+1) + ":"
spacing: 10
HifiControls.Button {
id: moreButton
color: hifi.buttons.blue
colorScheme: root.colorScheme colorScheme: root.colorScheme
width: parent.width / 2 - 10 color: OctreeStats.getColor()
}
Row {
id: buttonsRow
width: parent.width
height: 30 height: 30
onClicked: { spacing: 10
if (serverColumn.state === "less") {
serverColumn.state = "more" HifiControls.Button {
} else if (serverColumn.state === "more") { id: moreButton
serverColumn.state = "most" color: hifi.buttons.blue
} else { colorScheme: root.colorScheme
serverColumn.state = "more" 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 {
HifiControls.Button { id: mostButton
id: mostButton color: hifi.buttons.blue
color: hifi.buttons.blue colorScheme: root.colorScheme
colorScheme: root.colorScheme height: 30
height: 30 width: parent.width / 2 - 10
width: parent.width / 2 - 10 onClicked: {
onClicked: { if (serverColumn.state === "less") {
if (serverColumn.state === "less") { serverColumn.state = "most"
serverColumn.state = "most" } else if (serverColumn.state === "more") {
} else if (serverColumn.state === "more") { serverColumn.state = "less"
serverColumn.state = "less" } else {
} else { serverColumn.state = "less"
serverColumn.state = "less" }
} }
}
}
} }
} states: [
states: [ State {
State { name: "less"
name: "less" PropertyChanges { target: moreButton; text: qsTr("more..."); }
PropertyChanges { target: moreButton; text: qsTr("more..."); } PropertyChanges { target: mostButton; text: qsTr("most..."); }
PropertyChanges { target: mostButton; text: qsTr("most..."); } PropertyChanges { target: serverStats; text: OctreeStats.servers[index*3]; }
PropertyChanges { target: serverStats; text: OctreeStats.servers[0]; } },
}, State {
State { name: "more"
name: "more" PropertyChanges { target: moreButton; text: qsTr("most..."); }
PropertyChanges { target: moreButton; text: qsTr("most..."); } PropertyChanges { target: mostButton; text: qsTr("less..."); }
PropertyChanges { target: mostButton; text: qsTr("less..."); } PropertyChanges { target: serverStats; text: OctreeStats.servers[index*3] +
PropertyChanges { target: serverStats; text: OctreeStats.servers[0] + OctreeStats.servers[index*3 + 1]; }
OctreeStats.servers[1]; } },
}, State {
State { name: "most"
name: "most" PropertyChanges { target: moreButton; text: qsTr("less..."); }
PropertyChanges { target: moreButton; text: qsTr("less..."); } PropertyChanges { target: mostButton; text: qsTr("least..."); }
PropertyChanges { target: mostButton; text: qsTr("least..."); } PropertyChanges { target: serverStats; text: OctreeStats.servers[index*3] +
PropertyChanges { target: serverStats; text: OctreeStats.servers[0] + OctreeStats.servers[index*3 + 1] +
OctreeStats.servers[1] + OctreeStats.servers[index*3 + 2]; }
OctreeStats.servers[2]; } }
} ]
] } //servers column
} //servers column } //repeater
} //column } //column
} //flickable } //flickable
} }

View file

@ -57,6 +57,10 @@ OctreeStatsProvider::~OctreeStatsProvider() {
_updateTimer.stop(); _updateTimer.stop();
} }
int OctreeStatsProvider::serversNum() const {
return m_serversNum;
}
void OctreeStatsProvider::updateOctreeStatsData() { void OctreeStatsProvider::updateOctreeStatsData() {
// Processed Entities Related stats // Processed Entities Related stats
@ -238,9 +242,12 @@ void OctreeStatsProvider::updateOctreeServers() {
void OctreeStatsProvider::showOctreeServersOfType(NodeType_t serverType) { void OctreeStatsProvider::showOctreeServersOfType(NodeType_t serverType) {
m_servers.clear(); m_servers.clear();
int serverCount = 0;
auto node = DependencyManager::get<NodeList>()->soloNodeOfType(serverType); auto node = DependencyManager::get<NodeList>()->soloNodeOfType(serverType);
if (node) { if (node) {
++serverCount;
QString lesserDetails; QString lesserDetails;
QString moreDetails; QString moreDetails;
QString mostDetails; QString mostDetails;
@ -324,6 +331,11 @@ void OctreeStatsProvider::showOctreeServersOfType(NodeType_t serverType) {
m_servers.append(moreDetails); m_servers.append(moreDetails);
m_servers.append(mostDetails); m_servers.append(mostDetails);
} }
if (serverCount != m_serversNum) {
m_serversNum = serverCount;
emit serversNumChanged(m_serversNum);
}
emit serversChanged(m_servers); emit serversChanged(m_servers);
} }

View file

@ -22,6 +22,7 @@ class OctreeStatsProvider : public QObject, public Dependency {
Q_OBJECT Q_OBJECT
SINGLETON_DEPENDENCY SINGLETON_DEPENDENCY
Q_PROPERTY(int serversNum READ serversNum NOTIFY serversNumChanged)
Q_PROPERTY(QString serverElements READ serverElements NOTIFY serverElementsChanged) Q_PROPERTY(QString serverElements READ serverElements NOTIFY serverElementsChanged)
Q_PROPERTY(QString localElements READ localElements NOTIFY localElementsChanged) Q_PROPERTY(QString localElements READ localElements NOTIFY localElementsChanged)
Q_PROPERTY(QString localElementsMemory READ localElementsMemory NOTIFY localElementsMemoryChanged) Q_PROPERTY(QString localElementsMemory READ localElementsMemory NOTIFY localElementsMemoryChanged)
@ -40,6 +41,8 @@ public:
OctreeStatsProvider(QObject* parent, NodeToOctreeSceneStats* model); OctreeStatsProvider(QObject* parent, NodeToOctreeSceneStats* model);
~OctreeStatsProvider(); ~OctreeStatsProvider();
int serversNum() const;
QString serverElements() const { QString serverElements() const {
return m_serverElements; return m_serverElements;
} }
@ -89,6 +92,8 @@ public:
} }
signals: signals:
void serversNumChanged(int serversNum);
void serverElementsChanged(const QString &serverElements); void serverElementsChanged(const QString &serverElements);
void localElementsChanged(const QString &localElements); void localElementsChanged(const QString &localElements);
void sendingModeChanged(const QString &sendingMode); void sendingModeChanged(const QString &sendingMode);
@ -126,7 +131,7 @@ private:
quint64 _lastRefresh = 0; quint64 _lastRefresh = 0;
QTimer _updateTimer; QTimer _updateTimer;
int m_serversNum { 0 };
QString m_serverElements; QString m_serverElements;
QString m_localElements; QString m_localElements;
QString m_localElementsMemory; QString m_localElementsMemory;

View file

@ -42,7 +42,10 @@ static Setting::Handle<quint16> LIMITED_NODELIST_LOCAL_PORT("LimitedNodeList.Loc
const std::set<NodeType_t> SOLO_NODE_TYPES = { const std::set<NodeType_t> SOLO_NODE_TYPES = {
NodeType::AvatarMixer, NodeType::AvatarMixer,
NodeType::AudioMixer, NodeType::AudioMixer,
NodeType::AssetServer NodeType::AssetServer,
NodeType::EntityServer,
NodeType::MessagesMixer,
NodeType::EntityScriptServer
}; };
LimitedNodeList::LimitedNodeList(int socketListenPort, int dtlsListenPort) : LimitedNodeList::LimitedNodeList(int socketListenPort, int dtlsListenPort) :