Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions plugins/FuzzySearch/FuzzySearchIndexer.vala
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ public class Scratch.Services.FuzzySearchIndexer : GLib.Object {

private async void add_project_async (ProjectUpdate message) {
string path = message.source_path;
var monitor = Services.GitManager.get_monitored_repository (path);
var monitor = Services.GitManager.get_instance ().get_monitored_repository (path);
var project_search = new Services.SearchProject (path, monitor);
project_paths[path] = project_search;

Expand Down Expand Up @@ -290,7 +290,7 @@ public class Scratch.Services.FuzzySearchIndexer : GLib.Object {
Gee.HashMap<string, Services.SearchProject> project_paths) {
for (int i = 0; i < request_queue.size; i++) {
var request = request_queue[i];
var monitor = Services.GitManager.get_monitored_repository (request.project_path);
var monitor = Services.GitManager.get_instance ().get_monitored_repository (request.project_path);
var project_search = new Services.SearchProject (request.project_path, monitor);

project_paths[request.project_path] = project_search;
Expand Down
28 changes: 12 additions & 16 deletions src/Services/GitManager.vala
Original file line number Diff line number Diff line change
Expand Up @@ -23,33 +23,29 @@ namespace Scratch.Services {
public ListStore project_liststore { get; private set; }
public string active_project_path { get; set; default = "";}

static Gee.HashMap<string, MonitoredRepository> project_gitrepo_map;
static GitManager? instance;
private static Once<GitManager> instance;
private Gee.HashMap<string, MonitoredRepository> project_gitrepo_map;

static construct {
Ggit.init ();
instance = null;
project_gitrepo_map = new Gee.HashMap<string, MonitoredRepository> ();
}

public static MonitoredRepository? get_monitored_repository (string root_path) {
return project_gitrepo_map[root_path];
}

public static GitManager get_instance () {
if (instance == null) {
instance = new GitManager ();
}

return instance;
}

construct {
// Used to populate the ChooseProject popover in sorted order
Ggit.init ();
project_gitrepo_map = new Gee.HashMap<string, MonitoredRepository> ();
project_liststore = new ListStore (typeof (FolderManager.ProjectFolderItem));
settings.bind ("active-project-path", this, "active-project-path", DEFAULT);
}

public static GitManager get_instance () {
return instance.once (() => new GitManager ());
}

public MonitoredRepository? get_monitored_repository (string root_path) {
return project_gitrepo_map[root_path];
}

public MonitoredRepository? add_project (FolderManager.ProjectFolderItem root_folder) {
var root_path = root_folder.path;
MonitoredRepository? monitored_repo = null;
Expand Down