diff options
| -rw-r--r-- | src/yuzu/multiplayer/lobby_p.h | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/yuzu/multiplayer/lobby_p.h b/src/yuzu/multiplayer/lobby_p.h index 068c95aca..398833e7a 100644 --- a/src/yuzu/multiplayer/lobby_p.h +++ b/src/yuzu/multiplayer/lobby_p.h | |||
| @@ -193,12 +193,29 @@ public: | |||
| 193 | } | 193 | } |
| 194 | 194 | ||
| 195 | QVariant data(int role) const override { | 195 | QVariant data(int role) const override { |
| 196 | if (role != Qt::DisplayRole) { | 196 | switch (role) { |
| 197 | case Qt::DisplayRole: { | ||
| 198 | auto members = data(MemberListRole).toList(); | ||
| 199 | return QStringLiteral("%1 / %2 ") | ||
| 200 | .arg(QString::number(members.size()), data(MaxPlayerRole).toString()); | ||
| 201 | } | ||
| 202 | case Qt::ForegroundRole: { | ||
| 203 | auto members = data(MemberListRole).toList(); | ||
| 204 | auto max_players = data(MaxPlayerRole).toInt(); | ||
| 205 | if (members.size() >= max_players) { | ||
| 206 | return QBrush(QColor(255, 48, 32)); | ||
| 207 | } else if (members.size() == (max_players - 1)) { | ||
| 208 | return QBrush(QColor(255, 140, 32)); | ||
| 209 | } else if (members.size() == 0) { | ||
| 210 | return QBrush(QColor(128, 128, 128)); | ||
| 211 | } | ||
| 212 | // FIXME: How to return a value that tells Qt not to modify the | ||
| 213 | // text color from the default (as if Qt::ForegroundRole wasn't overridden)? | ||
| 214 | return QBrush(nullptr); | ||
| 215 | } | ||
| 216 | default: | ||
| 197 | return LobbyItem::data(role); | 217 | return LobbyItem::data(role); |
| 198 | } | 218 | } |
| 199 | auto members = data(MemberListRole).toList(); | ||
| 200 | return QStringLiteral("%1 / %2 ") | ||
| 201 | .arg(QString::number(members.size()), data(MaxPlayerRole).toString()); | ||
| 202 | } | 219 | } |
| 203 | 220 | ||
| 204 | bool operator<(const QStandardItem& other) const override { | 221 | bool operator<(const QStandardItem& other) const override { |