-void CoreInfoDlg::coreInfoAvailable() {
- ui.labelCoreVersion->setText(_coreInfo["quasselVersion"].toString());
- ui.labelUptime->setText(_coreInfo["startTime"].toString());
- ui.labelClientCount->setNum(_coreInfo["sessionConnectedClients"].toInt());
- // data["quasselBuildDate"] = Global::quasselBuildDate;
+
+void CoreInfoDlg::coreInfoAvailable()
+{
+ ui.labelCoreVersion->setText(_coreInfo["quasselVersion"].toString());
+ ui.labelCoreVersionDate->setText(_coreInfo["quasselBuildDate"].toString()); // "BuildDate" for compatibility
+ ui.labelClientCount->setNum(_coreInfo["sessionConnectedClients"].toInt());
+
+ qWarning() << _coreInfo["sessionConnectedClientData"];
+
+ for (const auto &peerData : _coreInfo["sessionConnectedClientData"].toList()) {
+ auto coreSessionWidget = new CoreSessionWidget(ui.coreSessionScrollContainer);
+ coreSessionWidget->setData(peerData.toMap());
+ ui.coreSessionContainer->addWidget(coreSessionWidget);
+ connect(coreSessionWidget, SIGNAL(disconnectClicked(int)), this, SLOT(disconnectClicked(int)));
+ }
+
+ ui.coreSessionContainer->addStretch(1);
+
+ updateUptime();
+ startTimer(1000);
+}
+
+
+void CoreInfoDlg::updateUptime()
+{
+ QDateTime startTime = _coreInfo["startTime"].toDateTime();
+
+ int uptime = startTime.secsTo(QDateTime::currentDateTime().toUTC());
+ int updays = uptime / 86400; uptime %= 86400;
+ int uphours = uptime / 3600; uptime %= 3600;
+ int upmins = uptime / 60; uptime %= 60;
+
+ QString uptimeText = tr("%n Day(s)", "", updays)
+ + tr(" %1:%2:%3 (since %4)").arg(uphours, 2, 10, QChar('0')).arg(upmins, 2, 10, QChar('0')).arg(uptime, 2, 10, QChar('0')).arg(startTime.toLocalTime().toString(Qt::TextDate));
+ ui.labelUptime->setText(uptimeText);
+}
+void CoreInfoDlg::disconnectClicked(int peerId)
+{
+ Client::kickClient(peerId);