/***************************************************************************
- * Copyright (C) 2005-2016 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "transfermanager.h"
namespace {
- constexpr int colCount{8};
+constexpr int colCount{8};
}
-
int TransferModel::rowCount(const QModelIndex& index) const
{
return index.isValid() ? 0 : _transferIds.size();
}
-
int TransferModel::columnCount(const QModelIndex& index) const
{
return index.isValid() ? 0 : colCount;
}
-
QVariant TransferModel::headerData(int section, Qt::Orientation orientation, int role) const
{
- static std::array<QString, colCount> headers = {{
- tr("Type"), tr("File"), tr("Status"), tr("Progress"), tr("Transferred"), tr("Speed"), tr("Peer"), tr("Peer Address")
- }};
+ static std::array<QString, colCount> headers = {
+ {tr("Type"), tr("File"), tr("Status"), tr("Progress"), tr("Transferred"), tr("Speed"), tr("Peer"), tr("Peer Address")}};
if (section < 0 || section >= columnCount() || orientation != Qt::Horizontal)
return {};
}
}
-
QVariant TransferModel::data(const QModelIndex& index, int role) const
{
if (!_manager)
switch (role) {
case Qt::DisplayRole:
switch (index.column()) {
- case 0: // Type
+ case 0: // Type
return t->direction() == Transfer::Direction::Send ? tr("Send") : tr("Receive");
- case 1: // File
+ case 1: // File
return t->fileName();
- case 2: // Status
+ case 2: // Status
return t->prettyStatus();
- case 3: // Progress
+ case 3: // Progress
return (t->transferred() / t->fileSize()) * 100;
- case 4: // Transferred
- return t->transferred(); // TODO: use pretty units and show total
- case 5: // Speed
- return "n/a"; // TODO: fixme
- case 6: // Peer
+ case 4: // Transferred
+ return t->transferred(); // TODO: use pretty units and show total
+ case 5: // Speed
+ return "n/a"; // TODO: fixme
+ case 6: // Peer
return t->nick();
- case 7: // Peer Address
+ case 7: // Peer Address
return QString("%1.%2").arg(t->address().toString(), t->port());
}
break;
return {};
}
-
-void TransferModel::setManager(const TransferManager *manager)
+void TransferModel::setManager(const TransferManager* manager)
{
if (_manager) {
- disconnect(_manager, 0, this, 0);
+ disconnect(_manager, nullptr, this, nullptr);
beginResetModel();
_transferIds.clear();
endResetModel();
_manager = manager;
if (_manager) {
- connect(manager, SIGNAL(transferAdded(QUuid)), SLOT(onTransferAdded(QUuid)));
- connect(manager, SIGNAL(transferRemoved(QUuid)), SLOT(onTransferRemoved(QUuid)));
+ connect(manager, &TransferManager::transferAdded, this, &TransferModel::onTransferAdded);
+ connect(manager, &TransferManager::transferRemoved, this, &TransferModel::onTransferRemoved);
+ for (auto&& transferId : _manager->transferIds()) {
+ onTransferAdded(transferId);
+ }
}
}
-
-void TransferModel::onTransferAdded(const QUuid &transferId)
+void TransferModel::onTransferAdded(const QUuid& transferId)
{
auto transfer = _manager->transfer(transferId);
if (!transfer) {
}
// TODO Qt5: use new connection syntax to make things much less complicated
- connect(transfer, SIGNAL(statusChanged(Transfer::Status)), SLOT(onTransferDataChanged()));
- connect(transfer, SIGNAL(directionChanged(Transfer::Direction)), SLOT(onTransferDataChanged()));
- connect(transfer, SIGNAL(addressChanged(QHostAddress)), SLOT(onTransferDataChanged()));
- connect(transfer, SIGNAL(portChanged(quint16)), SLOT(onTransferDataChanged()));
- connect(transfer, SIGNAL(fileNameChanged(QString)), SLOT(onTransferDataChanged()));
- connect(transfer, SIGNAL(fileSizeChanged(quint64)), SLOT(onTransferDataChanged()));
- connect(transfer, SIGNAL(transferredChanged(quint64)), SLOT(onTransferDataChanged()));
- connect(transfer, SIGNAL(nickChanged(QString)), SLOT(onTransferDataChanged()));
+ connect(transfer, &Transfer::statusChanged, this, &TransferModel::onTransferDataChanged);
+ connect(transfer, &Transfer::directionChanged, this, &TransferModel::onTransferDataChanged);
+ connect(transfer, &Transfer::addressChanged, this, &TransferModel::onTransferDataChanged);
+ connect(transfer, &Transfer::portChanged, this, &TransferModel::onTransferDataChanged);
+ connect(transfer, &Transfer::fileNameChanged, this, &TransferModel::onTransferDataChanged);
+ connect(transfer, &Transfer::fileSizeChanged, this, &TransferModel::onTransferDataChanged);
+ connect(transfer, &Transfer::transferredChanged, this, &TransferModel::onTransferDataChanged);
+ connect(transfer, &Transfer::nickChanged, this, &TransferModel::onTransferDataChanged);
beginInsertRows({}, rowCount(), rowCount());
_transferIds.append(transferId);
endInsertRows();
}
-
-void TransferModel::onTransferRemoved(const QUuid &transferId)
+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) {
}
}
-
void TransferModel::onTransferDataChanged()
{
- auto transfer = qobject_cast<Transfer *>(sender());
+ auto transfer = qobject_cast<Transfer*>(sender());
if (!transfer)
return;