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()
}
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
}

View file

@ -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<NodeList>()->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);
}

View file

@ -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;

View file

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