Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

qt, refactor: Use enum type as switch argument in *TableModel #2496

Merged
merged 5 commits into from
Apr 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 11 additions & 18 deletions src/qt/addresstablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,42 +178,35 @@ QVariant AddressTableModel::data(const QModelIndex &index, int role) const

AddressTableEntry *rec = static_cast<AddressTableEntry*>(index.internalPointer());

if(role == Qt::DisplayRole || role == Qt::EditRole)
{
switch(index.column())
{
const auto column = static_cast<ColumnIndex>(index.column());
if (role == Qt::DisplayRole || role == Qt::EditRole) {
switch (column) {
case Label:
if(rec->label.isEmpty() && role == Qt::DisplayRole)
{
if (rec->label.isEmpty() && role == Qt::DisplayRole) {
return tr("(no label)");
}
else
{
} else {
return rec->label;
}
case Address:
return rec->address;
}
}
else if (role == Qt::FontRole)
{
} // no default case, so the compiler can warn about missing cases
assert(false);
} else if (role == Qt::FontRole) {
QFont font;
if(index.column() == Address)
{
font = GUIUtil::bitcoinAddressFont();
}
return font;
}
else if (role == TypeRole)
{
} else if (role == TypeRole) {
switch(rec->type)
{
case AddressTableEntry::Sending:
return Send;
case AddressTableEntry::Receiving:
return Receive;
default: break;
}
} // no default case, so the compiler can warn about missing cases
assert(false);
}
return QVariant();
}
Expand Down
15 changes: 7 additions & 8 deletions src/qt/bantablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,13 @@ bool BannedNodeLessThan::operator()(const CCombinedBan& left, const CCombinedBan
if (order == Qt::DescendingOrder)
std::swap(pLeft, pRight);

switch(column)
{
switch (static_cast<BanTableModel::ColumnIndex>(column)) {
case BanTableModel::Address:
return pLeft->subnet.ToString().compare(pRight->subnet.ToString()) < 0;
case BanTableModel::Bantime:
return pLeft->banEntry.nBanUntil < pRight->banEntry.nBanUntil;
}

return false;
} // no default case, so the compiler can warn about missing cases
assert(false);
}

// private implementation
Expand Down Expand Up @@ -122,16 +120,17 @@ QVariant BanTableModel::data(const QModelIndex &index, int role) const

CCombinedBan *rec = static_cast<CCombinedBan*>(index.internalPointer());

const auto column = static_cast<ColumnIndex>(index.column());
if (role == Qt::DisplayRole) {
switch(index.column())
{
switch (column) {
case Address:
return QString::fromStdString(rec->subnet.ToString());
case Bantime:
QDateTime date = QDateTime::fromMSecsSinceEpoch(0);
date = date.addSecs(rec->banEntry.nBanUntil);
return QLocale::system().toString(date, QLocale::LongFormat);
}
} // no default case, so the compiler can warn about missing cases
assert(false);
}

return QVariant();
Expand Down
20 changes: 10 additions & 10 deletions src/qt/peertablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ bool NodeLessThan::operator()(const CNodeCombinedStats &left, const CNodeCombine
if (order == Qt::DescendingOrder)
std::swap(pLeft, pRight);

switch(column)
{
switch (static_cast<PeerTableModel::ColumnIndex>(column)) {
case PeerTableModel::NetNodeId:
return pLeft->id < pRight->id;
case PeerTableModel::Address:
Expand All @@ -37,9 +36,8 @@ bool NodeLessThan::operator()(const CNodeCombinedStats &left, const CNodeCombine
return pLeft->nSendBytes < pRight->nSendBytes;
case PeerTableModel::Received:
return pLeft->nRecvBytes < pRight->nRecvBytes;
}

return false;
} // no default case, so the compiler can warn about missing cases
assert(false);
}

// private implementation
Expand Down Expand Up @@ -158,9 +156,9 @@ QVariant PeerTableModel::data(const QModelIndex &index, int role) const

CNodeCombinedStats *rec = static_cast<CNodeCombinedStats*>(index.internalPointer());

const auto column = static_cast<ColumnIndex>(index.column());
if (role == Qt::DisplayRole) {
switch(index.column())
{
switch (column) {
case NetNodeId:
return (qint64)rec->nodeStats.id;
case Address:
Expand All @@ -179,16 +177,18 @@ QVariant PeerTableModel::data(const QModelIndex &index, int role) const
return GUIUtil::formatBytes(rec->nodeStats.nSendBytes);
case Received:
return GUIUtil::formatBytes(rec->nodeStats.nRecvBytes);
}
} // no default case, so the compiler can warn about missing cases
assert(false);
} else if (role == Qt::TextAlignmentRole) {
switch (index.column()) {
switch (column) {
case Ping:
case Sent:
case Received:
return QVariant(Qt::AlignRight | Qt::AlignVCenter);
default:
return QVariant();
}
} // no default case, so the compiler can warn about missing cases
assert(false);
}

return QVariant();
Expand Down
29 changes: 15 additions & 14 deletions src/qt/transactiontablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -605,20 +605,22 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
return QVariant();
TransactionRecord *rec = static_cast<TransactionRecord*>(index.internalPointer());

switch(role)
{
const auto column = static_cast<ColumnIndex>(index.column());
switch (role) {
case Qt::DecorationRole:
switch(index.column())
{
switch (column) {
case Status:
return txStatusDecoration(rec);
case Date: return {};
case Type: return {};
case ToAddress:
return txAddressDecoration(rec);
}
break;
case Amount: return {};
} // no default case, so the compiler can warn about missing cases
assert(false);
case Qt::DisplayRole:
switch(index.column())
{
switch (column) {
case Status: return {};
case Date:
return formatTxDate(rec);
case Type:
Expand All @@ -627,12 +629,11 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
return formatTxToAddress(rec, false);
case Amount:
return formatTxAmount(rec);
}
break;
} // no default case, so the compiler can warn about missing cases
assert(false);
case Qt::EditRole:
// Edit role is used for sorting, so return the unformatted values
switch(index.column())
{
switch (column) {
case Status:
return QString::fromStdString(rec->status.sortKey);
case Date:
Expand All @@ -643,8 +644,8 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
return formatTxToAddress(rec, true);
case Amount:
return rec->credit + rec->debit;
}
break;
} // no default case, so the compiler can warn about missing cases
assert(false);
case Qt::ToolTipRole:
return formatTooltip(rec);
case Qt::TextAlignmentRole:
Expand Down
8 changes: 4 additions & 4 deletions src/qt/voting/polltablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ class PollTableDataModel : public QAbstractTableModel
return QString::number(row->m_vote_percent_AVW, 'f', 4);
case PollTableModel::TopAnswer:
return row->m_top_answer;
}
break;
} // no default case, so the compiler can warn about missing cases
assert(false);

case Qt::TextAlignmentRole:
switch (index.column()) {
Expand Down Expand Up @@ -102,8 +102,8 @@ class PollTableDataModel : public QAbstractTableModel
return QVariant::fromValue(row->m_vote_percent_AVW);
case PollTableModel::TopAnswer:
return row->m_top_answer;
}
break;
} // no default case, so the compiler can warn about missing cases
assert(false);
}

return QVariant();
Expand Down