Make the UI actually emit the required signal
authorJanne Koschinski <janne@kuschku.de>
Mon, 28 Aug 2017 01:56:23 +0000 (03:56 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Tue, 19 Dec 2017 22:25:23 +0000 (23:25 +0100)
src/qtui/coreinfodlg.cpp
src/qtui/coreinfodlg.h
src/qtui/coresessionwidget.cpp
src/qtui/coresessionwidget.h

index 20bacce..ca4faae 100644 (file)
@@ -49,6 +49,7 @@ void CoreInfoDlg::coreInfoAvailable()
         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);
@@ -71,3 +72,7 @@ void CoreInfoDlg::updateUptime()
                          + 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);
+}
index b8ebcd0..20add30 100644 (file)
@@ -42,6 +42,7 @@ protected:
 private slots:
     void on_closeButton_clicked() { reject(); }
     void updateUptime();
+    void disconnectClicked(int peerId);
 
 private:
     Ui::CoreInfoDlg ui;
index 2cce145..3356878 100644 (file)
@@ -1,10 +1,6 @@
 #include "coresessionwidget.h"
-#include <QLayout>
-#include <QVariant>
-#include <QtCore/QMap>
-#include <QtWidgets/QLabel>
-#include <QtWidgets/QPushButton>
 #include <QtCore/QDateTime>
+#include <client.h>
 
 
 CoreSessionWidget::CoreSessionWidget(QWidget *parent)
@@ -13,12 +9,12 @@ CoreSessionWidget::CoreSessionWidget(QWidget *parent)
     ui.setupUi(this);
     layout()->setContentsMargins(0, 0, 0, 0);
     layout()->setSpacing(0);
+    connect(ui.disconnectButton, SIGNAL(released()), this, SLOT(disconnectClicked()));
 }
 
 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());
@@ -30,4 +26,13 @@ void CoreSessionWidget::setData(QMap<QString, QVariant> map)
         ui.labelLocation->hide();
         ui.labelLocationTitle->hide();
     }
+
+    bool success = false;
+    _peerId = map["id"].toInt(&success);
+    if (!success) _peerId = -1;
+}
+
+void CoreSessionWidget::disconnectClicked()
+{
+    emit disconnectClicked(_peerId);
 }
index 763c613..f428875 100644 (file)
@@ -18,8 +18,15 @@ public:
 
     void setData(QMap<QString, QVariant>);
 
+signals:
+    void disconnectClicked(int);
+
+private slots:
+    void disconnectClicked();
+
 private:
     Ui::CoreSessionWidget ui;
+    int _peerId;
 };
 
 #endif //CORESESSIONWIDGET_H