[gnome-builder] misc: use ide_application_get_projects_directory()



commit a846031229081def033b157b489cd03fdcf07861
Author: Christian Hergert <chergert redhat com>
Date:   Fri Jan 26 16:15:37 2018 -0800

    misc: use ide_application_get_projects_directory()
    
    This ports all the places we were manually getting the projects directory
    and translating it to using the new
    ide_application_get_projects_directory() helper.
    
    Fixes #341

 src/libide/greeter/ide-greeter-perspective.c       | 23 ++++++++++------------
 .../create-project/gbp-create-project-widget.c     | 20 ++++++-------------
 src/plugins/flatpak/gbp-flatpak-clone-widget.c     | 16 ++-------------
 src/plugins/git/ide-git-clone-widget.c             | 20 ++++---------------
 4 files changed, 22 insertions(+), 57 deletions(-)
---
diff --git a/src/libide/greeter/ide-greeter-perspective.c b/src/libide/greeter/ide-greeter-perspective.c
index 8ffc88326..5edc5cafd 100644
--- a/src/libide/greeter/ide-greeter-perspective.c
+++ b/src/libide/greeter/ide-greeter-perspective.c
@@ -288,8 +288,7 @@ static void
 ide_greeter_perspective_open_clicked (IdeGreeterPerspective *self,
                                       GtkButton             *open_button)
 {
-  g_autoptr(GSettings) settings = NULL;
-  g_autofree gchar *projects_dir = NULL;
+  g_autoptr(GFile) projects_dir = NULL;
   GtkFileChooserDialog *dialog;
   GtkWidget *toplevel;
   PeasEngine *engine;
@@ -416,9 +415,8 @@ ide_greeter_perspective_open_clicked (IdeGreeterPerspective *self,
   if (last_priority == G_MAXINT64)
     gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), all_filter);
 
-  settings = g_settings_new ("org.gnome.builder");
-  projects_dir = g_settings_get_string (settings, "projects-directory");
-  gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), projects_dir);
+  projects_dir = ide_application_get_projects_directory (IDE_APPLICATION_DEFAULT);
+  gtk_file_chooser_set_current_folder_file (GTK_FILE_CHOOSER (dialog), projects_dir, NULL);
 
   gtk_window_present (GTK_WINDOW (dialog));
 }
@@ -747,16 +745,15 @@ ide_greeter_perspective_info_bar_response (IdeGreeterPerspective *self,
 static gchar *
 get_project_directory (const gchar *name)
 {
-  g_autoptr(GSettings) settings = NULL;
-  g_autofree gchar *projects = NULL;
+  g_autoptr(GFile) projects = NULL;
+  g_autoptr(GFile) child = NULL;
 
-  settings = g_settings_new ("org.gnome.builder");
-  projects = g_settings_get_string (settings, "projects-directory");
+  g_assert (IDE_IS_MAIN_THREAD ());
 
-  if (!g_path_is_absolute (projects))
-    return g_build_filename (g_get_home_dir (), projects, name, NULL);
-  else
-    return g_build_filename (projects, name, NULL);
+  projects = ide_application_get_projects_directory (IDE_APPLICATION_DEFAULT);
+  child = g_file_get_child (projects, name);
+
+  return g_file_get_path (child);
 }
 
 static void
diff --git a/src/plugins/create-project/gbp-create-project-widget.c 
b/src/plugins/create-project/gbp-create-project-widget.c
index d7fff8d57..811eee5ea 100644
--- a/src/plugins/create-project/gbp-create-project-widget.c
+++ b/src/plugins/create-project/gbp-create-project-widget.c
@@ -344,17 +344,12 @@ gbp_create_project_widget_get_directory (GbpCreateProjectWidget *self)
 
 static void
 gbp_create_project_widget_set_directory (GbpCreateProjectWidget *self,
-                                         const gchar            *path)
+                                         GFile                  *directory)
 {
-  g_autofree gchar *resolved = NULL;
-  g_autoptr(GFile) file = NULL;
-
   g_assert (GBP_IS_CREATE_PROJECT_WIDGET (self));
+  g_assert (G_IS_FILE (directory));
 
-  resolved = ide_path_expand (path);
-  file = g_file_new_for_path (resolved);
-
-  dzl_file_chooser_entry_set_file (self->project_location_entry, file);
+  dzl_file_chooser_entry_set_file (self->project_location_entry, directory);
 }
 
 static void
@@ -471,15 +466,12 @@ gbp_create_project_widget_class_init (GbpCreateProjectWidgetClass *klass)
 static void
 gbp_create_project_widget_init (GbpCreateProjectWidget *self)
 {
-  g_autoptr(GSettings) settings = NULL;
-  g_autofree gchar *path = NULL;
+  g_autoptr(GFile) projects_dir = NULL;
 
   gtk_widget_init_template (GTK_WIDGET (self));
 
-  settings = g_settings_new ("org.gnome.builder");
-
-  path = g_settings_get_string (settings, "projects-directory");
-  gbp_create_project_widget_set_directory (self, path);
+  projects_dir = ide_application_get_projects_directory (IDE_APPLICATION_DEFAULT);
+  gbp_create_project_widget_set_directory (self, projects_dir);
 
   g_signal_connect_object (self->project_name_entry,
                            "changed",
diff --git a/src/plugins/flatpak/gbp-flatpak-clone-widget.c b/src/plugins/flatpak/gbp-flatpak-clone-widget.c
index 0b67f1d4b..60287b2e9 100644
--- a/src/plugins/flatpak/gbp-flatpak-clone-widget.c
+++ b/src/plugins/flatpak/gbp-flatpak-clone-widget.c
@@ -574,11 +574,9 @@ gbp_flatpak_clone_widget_clone_async (GbpFlatpakCloneWidget   *self,
                                       gpointer                 user_data)
 {
   g_autoptr(GTask) task = NULL;
-  g_autoptr(GSettings) settings = NULL;
   g_autoptr(GFile) destination = NULL;
   g_autoptr(GError) error = NULL;
   g_autofree gchar *path = NULL;
-  g_autofree gchar *projects_dir = NULL;
   DownloadRequest *req;
   ModuleSource *src;
 
@@ -617,18 +615,8 @@ gbp_flatpak_clone_widget_clone_async (GbpFlatpakCloneWidget   *self,
         }
     }
 
-  settings = g_settings_new ("org.gnome.builder");
-  path = g_settings_get_string (settings, "projects-directory");
-
-  if (dzl_str_empty0 (path))
-    path = g_build_filename (g_get_home_dir (), "Projects", NULL);
-
-  if (!g_path_is_absolute (path))
-    projects_dir = g_build_filename (g_get_home_dir (), path, NULL);
-  else
-    projects_dir = g_steal_pointer (&path);
-
-  destination = g_file_new_for_path (projects_dir);
+  destination = ide_application_get_projects_directory (IDE_APPLICATION_DEFAULT);
+  g_assert (G_IS_FILE (destination));
 
   if (self->child_name)
     {
diff --git a/src/plugins/git/ide-git-clone-widget.c b/src/plugins/git/ide-git-clone-widget.c
index 748ea1199..a27b65093 100644
--- a/src/plugins/git/ide-git-clone-widget.c
+++ b/src/plugins/git/ide-git-clone-widget.c
@@ -227,26 +227,14 @@ ide_git_clone_widget_class_init (IdeGitCloneWidgetClass *klass)
 static void
 ide_git_clone_widget_init (IdeGitCloneWidget *self)
 {
-  g_autoptr(GSettings) settings = NULL;
-  g_autoptr(GFile) file = NULL;
-  g_autofree gchar *path = NULL;
-  g_autofree gchar *projects_dir = NULL;
+  g_autoptr(GFile) projects_dir = NULL;
 
   gtk_widget_init_template (GTK_WIDGET (self));
 
-  settings = g_settings_new ("org.gnome.builder");
-  path = g_settings_get_string (settings, "projects-directory");
+  projects_dir = ide_application_get_projects_directory (IDE_APPLICATION_DEFAULT);
+  g_assert (G_IS_FILE (projects_dir));
 
-  if (dzl_str_empty0 (path))
-    path = g_build_filename (g_get_home_dir (), "Projects", NULL);
-
-  if (!g_path_is_absolute (path))
-    projects_dir = g_build_filename (g_get_home_dir (), path, NULL);
-  else
-    projects_dir = g_steal_pointer (&path);
-
-  file = g_file_new_for_path (projects_dir);
-  dzl_file_chooser_entry_set_file (self->clone_location_entry, file);
+  dzl_file_chooser_entry_set_file (self->clone_location_entry, projects_dir);
 
   g_signal_connect_object (self->clone_uri_entry,
                            "changed",


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]