From cce44e40f4bf0de21bb4b576009ff15f862f8f9b Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed, 14 Sep 2022 13:40:35 -0700 Subject: [PATCH] project: implement searching I can't believe this has been unimplemented this whole time... --- app/panel/project/project.cpp | 1 + app/widget/projectexplorer/projectexplorer.cpp | 6 ++++++ app/widget/projectexplorer/projectexplorer.h | 2 ++ 3 files changed, 9 insertions(+) diff --git a/app/panel/project/project.cpp b/app/panel/project/project.cpp index d97eb7bd3..dcbb72fe3 100644 --- a/app/panel/project/project.cpp +++ b/app/panel/project/project.cpp @@ -58,6 +58,7 @@ ProjectPanel::ProjectPanel(QWidget *parent) : layout->addWidget(explorer_); connect(explorer_, &ProjectExplorer::DoubleClickedItem, this, &ProjectPanel::ItemDoubleClickSlot); connect(explorer_, &ProjectExplorer::SelectionChanged, this, &ProjectPanel::SelectionChanged); + connect(toolbar, &ProjectToolbar::SearchChanged, explorer_, &ProjectExplorer::SetSearchFilter); // Set toolbar's view to the explorer's view toolbar->SetView(explorer_->view_type()); diff --git a/app/widget/projectexplorer/projectexplorer.cpp b/app/widget/projectexplorer/projectexplorer.cpp index bdf853d99..48cc8e3aa 100644 --- a/app/widget/projectexplorer/projectexplorer.cpp +++ b/app/widget/projectexplorer/projectexplorer.cpp @@ -67,6 +67,7 @@ ProjectExplorer::ProjectExplorer(QWidget *parent) : // Set up sort filter proxy model sort_model_.setSourceModel(&model_); + sort_model_.setFilterCaseSensitivity(Qt::CaseInsensitive); sort_model_.setSortRole(ProjectViewModel::kInnerTextRole); // Add tree view to stacked widget @@ -301,6 +302,11 @@ void ProjectExplorer::RenameSelectedItem() } } +void ProjectExplorer::SetSearchFilter(const QString &s) +{ + sort_model_.setFilterFixedString(s); +} + void ProjectExplorer::ShowContextMenu() { Menu menu; diff --git a/app/widget/projectexplorer/projectexplorer.h b/app/widget/projectexplorer/projectexplorer.h index d69f1b8e3..c03fc2e67 100644 --- a/app/widget/projectexplorer/projectexplorer.h +++ b/app/widget/projectexplorer/projectexplorer.h @@ -94,6 +94,8 @@ public slots: void RenameSelectedItem(); + void SetSearchFilter(const QString &s); + signals: /** * @brief Emitted when an Item is double clicked