Merge pull request #6261 from Kewlan/game-list-filter-fix

game_list: Update filter results when removing directories
This commit is contained in:
bunnei 2021-05-01 09:14:10 -07:00 committed by GitHub
commit 03b3c5800b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 5 deletions

View File

@ -85,8 +85,8 @@ void GameListSearchField::setFilterResult(int visible, int total) {
label_filter_result->setText(tr("%1 of %n result(s)", "", total).arg(visible)); label_filter_result->setText(tr("%1 of %n result(s)", "", total).arg(visible));
} }
bool GameListSearchField::isEmpty() const { QString GameListSearchField::filterText() const {
return edit_filter->text().isEmpty(); return edit_filter->text();
} }
QString GameList::GetLastFilterResultItem() const { QString GameList::GetLastFilterResultItem() const {
@ -236,11 +236,11 @@ void GameList::OnTextChanged(const QString& new_text) {
} else { } else {
tree_view->setRowHidden(j, folder_index, true); tree_view->setRowHidden(j, folder_index, true);
} }
}
}
search_field->setFilterResult(result_count, children_total); search_field->setFilterResult(result_count, children_total);
} }
} }
}
}
void GameList::OnUpdateThemedIcons() { void GameList::OnUpdateThemedIcons() {
for (int i = 0; i < item_model->invisibleRootItem()->rowCount(); i++) { for (int i = 0; i < item_model->invisibleRootItem()->rowCount(); i++) {
@ -595,6 +595,7 @@ void GameList::AddCustomDirPopup(QMenu& context_menu, QModelIndex selected) {
connect(delete_dir, &QAction::triggered, [this, &game_dir, selected] { connect(delete_dir, &QAction::triggered, [this, &game_dir, selected] {
UISettings::values.game_dirs.removeOne(game_dir); UISettings::values.game_dirs.removeOne(game_dir);
item_model->invisibleRootItem()->removeRow(selected.row()); item_model->invisibleRootItem()->removeRow(selected.row());
OnTextChanged(search_field->filterText());
}); });
} }
@ -774,7 +775,7 @@ void GameList::RefreshGameDirectory() {
void GameList::ToggleFavorite(u64 program_id) { void GameList::ToggleFavorite(u64 program_id) {
if (!UISettings::values.favorited_ids.contains(program_id)) { if (!UISettings::values.favorited_ids.contains(program_id)) {
tree_view->setRowHidden(0, item_model->invisibleRootItem()->index(), tree_view->setRowHidden(0, item_model->invisibleRootItem()->index(),
!search_field->isEmpty()); !search_field->filterText().isEmpty());
UISettings::values.favorited_ids.append(program_id); UISettings::values.favorited_ids.append(program_id);
AddFavorite(program_id); AddFavorite(program_id);
item_model->sort(tree_view->header()->sortIndicatorSection(), item_model->sort(tree_view->header()->sortIndicatorSection(),

View File

@ -346,8 +346,8 @@ class GameListSearchField : public QWidget {
public: public:
explicit GameListSearchField(GameList* parent = nullptr); explicit GameListSearchField(GameList* parent = nullptr);
QString filterText() const;
void setFilterResult(int visible, int total); void setFilterResult(int visible, int total);
bool isEmpty() const;
void clear(); void clear();
void setFocus(); void setFocus();