test: Add build system support and a main function for unit tests
[quassel.git] / src / uisupport / networkmodelcontroller.cpp
index a6edb66..c33e030 100644 (file)
@@ -43,7 +43,7 @@ NetworkModelController::NetworkModelController(QObject *parent)
     : QObject(parent),
     _actionCollection(new ActionCollection(this))
 {
-    connect(_actionCollection, SIGNAL(actionTriggered(QAction *)), SLOT(actionTriggered(QAction *)));
+    connect(_actionCollection, &ActionCollection::actionTriggered, this, &NetworkModelController::actionTriggered);
 }
 
 
@@ -96,10 +96,9 @@ void NetworkModelController::setContextItem(const QString &contextItem)
 }
 
 
-void NetworkModelController::setSlot(QObject *receiver, const char *method)
+void NetworkModelController::setSlot(ActionSlot slot)
 {
-    _receiver = receiver;
-    _method = method;
+    _actionSlot = std::move(slot);
 }
 
 
@@ -139,11 +138,11 @@ BufferId NetworkModelController::findQueryBuffer(const QModelIndex &index, const
 {
     NetworkId networkId = index.data(NetworkModel::NetworkIdRole).value<NetworkId>();
     if (!networkId.isValid())
-        return BufferId();
+        return {};
 
     QString nick = predefinedNick.isEmpty() ? nickName(index) : predefinedNick;
     if (nick.isEmpty())
-        return BufferId();
+        return {};
 
     return findQueryBuffer(networkId, nick);
 }
@@ -197,9 +196,8 @@ void NetworkModelController::removeBuffers(const QModelIndexList &indexList)
 void NetworkModelController::handleExternalAction(ActionType type, QAction *action)
 {
     Q_UNUSED(type);
-    if (receiver() && method()) {
-        if (!QMetaObject::invokeMethod(receiver(), method(), Q_ARG(QAction *, action)))
-            qWarning() << "NetworkModelActionController::handleExternalAction(): Could not invoke slot" << receiver() << method();
+    if (_actionSlot) {
+        _actionSlot(action);
     }
 }
 
@@ -563,9 +561,9 @@ NetworkModelController::JoinDlg::JoinDlg(const QModelIndex &index, QWidget *pare
     networks->setInsertPolicy(QComboBox::InsertAlphabetically);
     password->setEchoMode(QLineEdit::Password);
 
-    connect(buttonBox, SIGNAL(accepted()), SLOT(accept()));
-    connect(buttonBox, SIGNAL(rejected()), SLOT(reject()));
-    connect(channel, SIGNAL(textChanged(QString)), SLOT(on_channel_textChanged(QString)));
+    connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
+    connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
+    connect(channel, &QLineEdit::textChanged, this, &JoinDlg::on_channel_textChanged);
 
     foreach(NetworkId id, Client::networkIds()) {
         const Network *net = Client::network(id);