diff --git a/Userland/DevTools/HackStudio/Git/GitWidget.cpp b/Userland/DevTools/HackStudio/Git/GitWidget.cpp index 7579177f9d..2245e6f460 100644 --- a/Userland/DevTools/HackStudio/Git/GitWidget.cpp +++ b/Userland/DevTools/HackStudio/Git/GitWidget.cpp @@ -164,4 +164,12 @@ void GitWidget::show_diff(const LexicalPath& file_path) VERIFY(original_content.has_value() && diff.has_value()); m_view_diff_callback(original_content.value(), diff.value()); } + +void GitWidget::change_repo(LexicalPath const& repo_root) +{ + m_repo_root = repo_root; + m_git_repo = nullptr; + m_unstaged_files->set_model(nullptr); + m_staged_files->set_model(nullptr); +} } diff --git a/Userland/DevTools/HackStudio/Git/GitWidget.h b/Userland/DevTools/HackStudio/Git/GitWidget.h index 7bb852022b..d9a8cd300f 100644 --- a/Userland/DevTools/HackStudio/Git/GitWidget.h +++ b/Userland/DevTools/HackStudio/Git/GitWidget.h @@ -24,6 +24,7 @@ public: void refresh(); void set_view_diff_callback(ViewDiffCallback callback); bool initialized() const { return !m_git_repo.is_null(); }; + void change_repo(LexicalPath const& repo_root); private: explicit GitWidget(const LexicalPath& repo_root); diff --git a/Userland/DevTools/HackStudio/HackStudioWidget.cpp b/Userland/DevTools/HackStudio/HackStudioWidget.cpp index 17b7363ba4..9ef2f5dc7a 100644 --- a/Userland/DevTools/HackStudio/HackStudioWidget.cpp +++ b/Userland/DevTools/HackStudio/HackStudioWidget.cpp @@ -202,6 +202,10 @@ void HackStudioWidget::open_project(const String& root_path) m_project_tree_view->set_model(m_project->model()); m_project_tree_view->update(); } + if (m_git_widget) { + m_git_widget->change_repo(LexicalPath(root_path)); + m_git_widget->refresh(); + } if (Debugger::is_initialized()) { auto& debugger = Debugger::the(); debugger.reset_breakpoints();