Implement a basic UI for showing connected clients
[quassel.git] / src / qtui / coresessionwidget.cpp
diff --git a/src/qtui/coresessionwidget.cpp b/src/qtui/coresessionwidget.cpp
new file mode 100644 (file)
index 0000000..2cce145
--- /dev/null
@@ -0,0 +1,33 @@
+#include "coresessionwidget.h"
+#include <QLayout>
+#include <QVariant>
+#include <QtCore/QMap>
+#include <QtWidgets/QLabel>
+#include <QtWidgets/QPushButton>
+#include <QtCore/QDateTime>
+
+
+CoreSessionWidget::CoreSessionWidget(QWidget *parent)
+    : QWidget(parent)
+{
+    ui.setupUi(this);
+    layout()->setContentsMargins(0, 0, 0, 0);
+    layout()->setSpacing(0);
+}
+
+void CoreSessionWidget::setData(QMap<QString, QVariant> map)
+{
+    QLabel *iconSecure = ui.iconSecure;
+    QPushButton *disconnectButton = ui.disconnectButton;
+
+    ui.labelRemoteAddress->setText(map["remoteAddress"].toString());
+    ui.labelLocation->setText(map["location"].toString());
+    ui.labelClient->setText(map["clientVersion"].toString());
+    ui.labelVersionDate->setText(map["clientVersionDate"].toString());
+    ui.labelUptime
+        ->setText(map["connectedSince"].toDateTime().toLocalTime().toString(Qt::DateFormat::SystemLocaleShortDate));
+    if (map["location"].toString().isEmpty()) {
+        ui.labelLocation->hide();
+        ui.labelLocationTitle->hide();
+    }
+}