return _peerMap[peerId];
}
-void SignalProxy::restrictTargetPeers(std::initializer_list<Peer *> peers, std::function<void()> closure)
+void SignalProxy::restrictTargetPeers(QSet<Peer*> peers, std::function<void()> closure)
{
auto previousRestrictMessageTarget = _restrictMessageTarget;
auto previousRestrictedTargets = _restrictedTargets;
_restrictMessageTarget = true;
- _restrictedTargets = QSet<Peer*>(peers);
+ _restrictedTargets = peers;
closure();
* @param peerIds A list of peers that should receive it
* @param closure Code you want to execute within of that restricted environment
*/
- void restrictTargetPeers(std::initializer_list<Peer *> peerIds, std::function<void()> closure);
+ void restrictTargetPeers(QSet<Peer*> peers, std::function<void()> closure);
+ void restrictTargetPeers(Peer *peer, std::function<void()> closure) {
+ QSet<Peer*> set;
+ set.insert(peer);
+ restrictTargetPeers(set, std::move(closure));
+ }
+
+ //A better version, but only implemented on Qt5 if Initializer Lists exist
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+#ifdef Q_COMPILER_INITIALIZER_LISTS
+ void restrictTargetPeers(std::initializer_list<Peer*> peers, std::function<void()> closure) {
+ restrictTargetPeers(QSet(peers), std::move(closure));
+ }
+#endif
+#endif
inline int peerCount() const { return _peers.size(); }
QVariantList peerData();
if (uid.isValid() && uid == user())
success = Core::changeUserPassword(uid, newPassword);
- signalProxy()->restrictTargetPeers({signalProxy()->sourcePeer()}, [&]{
+ signalProxy()->restrictTargetPeers(signalProxy()->sourcePeer(), [&]{
emit passwordChanged(nullptr, success);
});
}
qWarning() << "Invalid peer Id: " << peerId;
return;
}
- signalProxy()->restrictTargetPeers({peer}, [&]{
+ signalProxy()->restrictTargetPeers(peer, [&]{
emit disconnectFromCore();
});
}