diff options
| author | Luke Sawczak <luke@unfamiliarplace.com> | 2023-02-01 20:10:54 -0500 | 
|---|---|---|
| committer | Narr the Reg <juangerman-13@hotmail.com> | 2023-02-02 18:46:28 -0600 | 
| commit | 54ab154696857a7bca93cce151d902f70e7be832 (patch) | |
| tree | 4e0ed2fdadad92947fac5a900a4b7b524103e04d | |
| parent | 8a33f8bd303221fdcbdebe2579e3fbefa03b385e (diff) | |
added 'Hide empty rooms' toggle to lobby
fixed typo
fixed typo
fixed typo
clang
| -rw-r--r-- | src/yuzu/multiplayer/lobby.cpp | 16 | ||||
| -rw-r--r-- | src/yuzu/multiplayer/lobby.h | 2 | ||||
| -rw-r--r-- | src/yuzu/multiplayer/lobby.ui | 7 | 
3 files changed, 25 insertions, 0 deletions
| diff --git a/src/yuzu/multiplayer/lobby.cpp b/src/yuzu/multiplayer/lobby.cpp index 08c275696..6c93e3511 100644 --- a/src/yuzu/multiplayer/lobby.cpp +++ b/src/yuzu/multiplayer/lobby.cpp @@ -77,6 +77,7 @@ Lobby::Lobby(QWidget* parent, QStandardItemModel* list,      // UI Buttons      connect(ui->refresh_list, &QPushButton::clicked, this, &Lobby::RefreshLobby);      connect(ui->games_owned, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterOwned); +    connect(ui->hide_empty, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterEmpty);      connect(ui->hide_full, &QCheckBox::toggled, proxy, &LobbyFilterProxyModel::SetFilterFull);      connect(ui->search, &QLineEdit::textChanged, proxy, &LobbyFilterProxyModel::SetFilterSearch);      connect(ui->room_list, &QTreeView::doubleClicked, this, &Lobby::OnJoinRoom); @@ -329,6 +330,16 @@ bool LobbyFilterProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex& s          return true;      } +    // filter by empty rooms +    if (filter_empty) { +        QModelIndex member_list = sourceModel()->index(sourceRow, Column::MEMBER, sourceParent); +        int player_count = +            sourceModel()->data(member_list, LobbyItemMemberList::MemberListRole).toList().size(); +        if (player_count == 0) { +            return false; +        } +    } +      // filter by filled rooms      if (filter_full) {          QModelIndex member_list = sourceModel()->index(sourceRow, Column::MEMBER, sourceParent); @@ -399,6 +410,11 @@ void LobbyFilterProxyModel::SetFilterOwned(bool filter) {      invalidate();  } +void LobbyFilterProxyModel::SetFilterEmpty(bool filter) { +    filter_empty = filter; +    invalidate(); +} +  void LobbyFilterProxyModel::SetFilterFull(bool filter) {      filter_full = filter;      invalidate(); diff --git a/src/yuzu/multiplayer/lobby.h b/src/yuzu/multiplayer/lobby.h index 300dad13e..2674ae7c3 100644 --- a/src/yuzu/multiplayer/lobby.h +++ b/src/yuzu/multiplayer/lobby.h @@ -130,12 +130,14 @@ public:  public slots:      void SetFilterOwned(bool); +    void SetFilterEmpty(bool);      void SetFilterFull(bool);      void SetFilterSearch(const QString&);  private:      QStandardItemModel* game_list;      bool filter_owned = false; +    bool filter_empty = false;      bool filter_full = false;      QString filter_search;  }; diff --git a/src/yuzu/multiplayer/lobby.ui b/src/yuzu/multiplayer/lobby.ui index 4c9901c9a..0ef0ef762 100644 --- a/src/yuzu/multiplayer/lobby.ui +++ b/src/yuzu/multiplayer/lobby.ui @@ -78,6 +78,13 @@            </widget>           </item>           <item> +          <widget class="QCheckBox" name="hide_empty"> +           <property name="text"> +            <string>Hide Empty Rooms</string> +           </property> +          </widget> +         </item> +         <item>            <widget class="QCheckBox" name="hide_full">             <property name="text">              <string>Hide Full Rooms</string> | 
