[gnome-builder] projects-directory: save absolute path
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] projects-directory: save absolute path
- Date: Mon, 18 Apr 2016 03:31:01 +0000 (UTC)
commit 8f67e5fecf7ee031dfd8c7f46a4cd85f719ddf47
Author: Akshaya Kakkilaya <akshaya kakkilaya gmail com>
Date: Thu Apr 7 03:58:43 2016 +0530
projects-directory: save absolute path
https://bugzilla.gnome.org/show_bug.cgi?id=764701
.../ide-preferences-file-chooser-button.c | 27 +++++++++----------
plugins/create-project/gbp-create-project-widget.c | 6 +++-
plugins/git/ide-git-clone-widget.c | 6 +++-
3 files changed, 23 insertions(+), 16 deletions(-)
---
diff --git a/libide/preferences/ide-preferences-file-chooser-button.c
b/libide/preferences/ide-preferences-file-chooser-button.c
index 277bb4a..fa17860 100644
--- a/libide/preferences/ide-preferences-file-chooser-button.c
+++ b/libide/preferences/ide-preferences-file-chooser-button.c
@@ -45,19 +45,14 @@ enum {
static GParamSpec *properties [LAST_PROP];
static void
-ide_preferences_file_chooser_button_save_folder (IdePreferencesFileChooserButton *self,
- GtkFileChooserButton *widget)
+ide_preferences_file_chooser_button_save_file (IdePreferencesFileChooserButton *self,
+ GtkFileChooserButton *widget)
{
- g_autoptr(GFile) home = NULL;
- g_autoptr(GFile) folder = NULL;
g_autofree gchar *path = NULL;
g_assert (IDE_IS_PREFERENCES_FILE_CHOOSER_BUTTON (self));
- g_assert (GTK_IS_FILE_CHOOSER_BUTTON (widget));
- home = g_file_new_for_path (g_get_home_dir ());
- folder = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (widget));
- path = g_file_get_relative_path (home, folder);
+ path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (self->widget));
g_settings_set_string (self->settings, self->key, path);
@@ -68,7 +63,7 @@ ide_preferences_file_chooser_button_connect (IdePreferencesBin *bin,
GSettings *settings)
{
IdePreferencesFileChooserButton *self = (IdePreferencesFileChooserButton *)bin;
- g_autofree gchar *folder = NULL;
+ g_autofree gchar *file = NULL;
g_autofree gchar *path = NULL;
g_assert (IDE_IS_PREFERENCES_FILE_CHOOSER_BUTTON (self));
@@ -76,17 +71,21 @@ ide_preferences_file_chooser_button_connect (IdePreferencesBin *bin,
self->settings = g_object_ref (settings);
- folder = g_settings_get_string (settings, self->key);
+ file = g_settings_get_string (settings, self->key);
- if (!ide_str_empty0 (folder))
+ if (!ide_str_empty0 (file))
{
- path = g_build_filename (g_get_home_dir (), folder, NULL);
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (self->widget), path);
+ if (!g_path_is_absolute (file))
+ path = g_build_filename (g_get_home_dir (), file, NULL);
+ else
+ path = g_steal_pointer (&file);
+
+ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (self->widget), path);
}
g_signal_connect_object (self->widget,
"file-set",
- G_CALLBACK (ide_preferences_file_chooser_button_save_folder),
+ G_CALLBACK (ide_preferences_file_chooser_button_save_file),
self,
G_CONNECT_SWAPPED);
}
diff --git a/plugins/create-project/gbp-create-project-widget.c
b/plugins/create-project/gbp-create-project-widget.c
index 91cbba2..eaffe96 100644
--- a/plugins/create-project/gbp-create-project-widget.c
+++ b/plugins/create-project/gbp-create-project-widget.c
@@ -340,7 +340,11 @@ gbp_create_project_widget_init (GbpCreateProjectWidget *self)
if (!ide_str_empty0 (path))
{
- projects_dir = g_build_filename (g_get_home_dir (), path, 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);
+
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (self->project_location_button),
projects_dir);
}
diff --git a/plugins/git/ide-git-clone-widget.c b/plugins/git/ide-git-clone-widget.c
index 0c685bb..927c8de 100644
--- a/plugins/git/ide-git-clone-widget.c
+++ b/plugins/git/ide-git-clone-widget.c
@@ -205,7 +205,11 @@ ide_git_clone_widget_init (IdeGitCloneWidget *self)
if (!ide_str_empty0 (path))
{
- projects_dir = g_build_filename (g_get_home_dir (), path, 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);
+
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (self->clone_location_button),
projects_dir);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]