Moved the password icon to the room name.
Also added a dark mode lock icon as well (and fixed a small bug preventing the lock icon from showing up)
This commit is contained in:
parent
aa391ed60d
commit
3be7aa2cfc
Binary file not shown.
After Width: | Height: | Size: 304 B |
|
@ -1,6 +1,7 @@
|
|||
<RCC>
|
||||
<qresource prefix="icons/qdarkstyle">
|
||||
<file alias="index.theme">icons/index.theme</file>
|
||||
<file alias="16x16/lock.png">icons/16x16/lock.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="qss_icons">
|
||||
<file>rc/up_arrow_disabled.png</file>
|
||||
|
|
|
@ -119,8 +119,8 @@ void Lobby::OnJoinRoom(const QModelIndex& index) {
|
|||
}
|
||||
|
||||
// Get a password to pass if the room is password protected
|
||||
QModelIndex password_index = proxy->index(index.row(), Column::PASSWORD);
|
||||
bool has_password = proxy->data(password_index, LobbyItemPassword::PasswordRole).toBool();
|
||||
QModelIndex password_index = proxy->index(index.row(), Column::ROOM_NAME);
|
||||
bool has_password = proxy->data(password_index, LobbyItemName::PasswordRole).toBool();
|
||||
const std::string password = has_password ? PasswordPrompt().toStdString() : "";
|
||||
if (has_password && password.empty()) {
|
||||
return;
|
||||
|
@ -161,7 +161,7 @@ void Lobby::OnStateChanged(const Network::RoomMember::State& state) {
|
|||
void Lobby::ResetModel() {
|
||||
model->clear();
|
||||
model->insertColumns(0, Column::TOTAL);
|
||||
model->setHeaderData(Column::PASSWORD, Qt::Horizontal, tr("Password"), Qt::DisplayRole);
|
||||
model->setHeaderData(Column::EXPAND, Qt::Horizontal, "", Qt::DisplayRole);
|
||||
model->setHeaderData(Column::ROOM_NAME, Qt::Horizontal, tr("Room Name"), Qt::DisplayRole);
|
||||
model->setHeaderData(Column::GAME_NAME, Qt::Horizontal, tr("Preferred Game"), Qt::DisplayRole);
|
||||
model->setHeaderData(Column::HOST, Qt::Horizontal, tr("Host"), Qt::DisplayRole);
|
||||
|
@ -200,10 +200,10 @@ void Lobby::OnRefreshLobby() {
|
|||
members.append(var);
|
||||
}
|
||||
|
||||
auto first_item = new LobbyItemPassword(room.has_password);
|
||||
auto first_item = new LobbyItem();
|
||||
auto row = QList<QStandardItem*>({
|
||||
first_item,
|
||||
new LobbyItemName(QString::fromStdString(room.name)),
|
||||
new LobbyItemName(room.has_password, QString::fromStdString(room.name)),
|
||||
new LobbyItemGame(room.preferred_game_id, QString::fromStdString(room.preferred_game),
|
||||
smdh_icon),
|
||||
new LobbyItemHost(QString::fromStdString(room.owner), QString::fromStdString(room.ip),
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
namespace Column {
|
||||
enum List {
|
||||
PASSWORD,
|
||||
EXPAND,
|
||||
ROOM_NAME,
|
||||
GAME_NAME,
|
||||
HOST,
|
||||
|
@ -28,43 +28,28 @@ public:
|
|||
virtual ~LobbyItem() override {}
|
||||
};
|
||||
|
||||
class LobbyItemPassword : public LobbyItem {
|
||||
class LobbyItemName : public LobbyItem {
|
||||
public:
|
||||
static const int PasswordRole = Qt::UserRole + 1;
|
||||
static const int NameRole = Qt::UserRole + 1;
|
||||
static const int PasswordRole = Qt::UserRole + 2;
|
||||
|
||||
LobbyItemPassword() = default;
|
||||
explicit LobbyItemPassword(const bool has_password) : LobbyItem() {
|
||||
LobbyItemName() = default;
|
||||
explicit LobbyItemName(bool has_password, QString name) : LobbyItem() {
|
||||
setData(name, NameRole);
|
||||
setData(has_password, PasswordRole);
|
||||
}
|
||||
|
||||
QVariant data(int role) const override {
|
||||
if (role != Qt::DecorationRole) {
|
||||
return LobbyItem::data(role);
|
||||
}
|
||||
if (role == Qt::DecorationRole) {
|
||||
bool has_password = data(PasswordRole).toBool();
|
||||
return has_password ? QIcon(":/icons/lock.png") : QIcon();
|
||||
return has_password ? QIcon::fromTheme("lock").pixmap(16) : QIcon();
|
||||
}
|
||||
|
||||
bool operator<(const QStandardItem& other) const override {
|
||||
return data(PasswordRole).toBool() < other.data(PasswordRole).toBool();
|
||||
}
|
||||
};
|
||||
|
||||
class LobbyItemName : public LobbyItem {
|
||||
public:
|
||||
static const int NameRole = Qt::UserRole + 1;
|
||||
|
||||
LobbyItemName() = default;
|
||||
explicit LobbyItemName(QString name) : LobbyItem() {
|
||||
setData(name, NameRole);
|
||||
}
|
||||
|
||||
QVariant data(int role) const override {
|
||||
if (role != Qt::DisplayRole) {
|
||||
return LobbyItem::data(role);
|
||||
}
|
||||
return data(NameRole).toString();
|
||||
}
|
||||
|
||||
bool operator<(const QStandardItem& other) const override {
|
||||
return data(NameRole).toString().localeAwareCompare(other.data(NameRole).toString()) < 0;
|
||||
}
|
||||
|
|
Reference in New Issue