X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Ftransfermodel.cpp;h=affd487152d51f49b55bd88d52af8f051572a0b6;hb=c194ed5fb3d15e14b9364f9796d3521910dc72fe;hp=466151263c0388c9b2e9933a6616835573d096d8;hpb=7b8a28df7c0dfab0d5691e75b1932be9f4209c17;p=quassel.git diff --git a/src/client/transfermodel.cpp b/src/client/transfermodel.cpp index 46615126..affd4871 100644 --- a/src/client/transfermodel.cpp +++ b/src/client/transfermodel.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -106,15 +106,20 @@ QVariant TransferModel::data(const QModelIndex& index, int role) const void TransferModel::setManager(const TransferManager *manager) { if (_manager) { - disconnect(_manager, 0, this, 0); + disconnect(_manager, nullptr, this, nullptr); beginResetModel(); _transferIds.clear(); endResetModel(); } _manager = manager; - connect(manager, SIGNAL(transferAdded(QUuid)), SLOT(onTransferAdded(QUuid))); - connect(manager, SIGNAL(transferRemoved(QUuid)), SLOT(onTransferRemoved(QUuid))); + if (_manager) { + connect(manager, SIGNAL(transferAdded(QUuid)), SLOT(onTransferAdded(QUuid))); + connect(manager, SIGNAL(transferRemoved(QUuid)), SLOT(onTransferRemoved(QUuid))); + for (auto &&transferId : _manager->transferIds()) { + onTransferAdded(transferId); + } + } } @@ -147,7 +152,7 @@ void TransferModel::onTransferRemoved(const QUuid &transferId) // Check if the transfer object still exists, which means we still should disconnect auto transfer = _manager->transfer(transferId); if (transfer) - disconnect(transfer, 0, this, 0); + disconnect(transfer, nullptr, this, nullptr); for (auto row = 0; row < _transferIds.size(); ++row) { if (_transferIds[row] == transferId) {