diff options
author | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2018-02-24 12:01:30 -0300 |
---|---|---|
committer | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2018-02-24 12:16:01 -0300 |
commit | f22d6788275f3236f4ab9a7e8bb230e15871d73d (patch) | |
tree | 5239193f70d575ddf37469676db01e88e29d7aab | |
parent | 903aa231418032c1e02d5c97b1635a248e2864ce (diff) | |
download | glade-f22d6788275f3236f4ab9a7e8bb230e15871d73d.tar.gz |
GladeEditorPropertyTextClass: use relative paths for resources
From now one Glade will use relative paths for filename properties
like image resources.
-rw-r--r-- | gladeui/glade-editor-property.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/gladeui/glade-editor-property.c b/gladeui/glade-editor-property.c index 3d09e228..03938e78 100644 --- a/gladeui/glade-editor-property.c +++ b/gladeui/glade-editor-property.c @@ -2214,12 +2214,14 @@ glade_editor_property_show_resource_dialog (GladeProject *project, GtkWidget *parent, gchar **filename) { - + GFile *resource_folder; GtkWidget *dialog; gchar *folder; g_return_val_if_fail (filename != NULL, FALSE); + *filename = NULL; + dialog = gtk_file_chooser_dialog_new (_ ("Select a file from the project resource directory"), @@ -2237,26 +2239,22 @@ glade_editor_property_show_resource_dialog (GladeProject *project, _glade_util_dialog_set_hig (GTK_DIALOG (dialog)); - folder = glade_project_resource_fullpath (project, "."); + folder = glade_project_resource_fullpath (project, ""); gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), folder); + resource_folder = g_file_new_for_path (folder); g_free (folder); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) { - gchar *name; - - name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog)); - - *filename = name ? g_path_get_basename (name) : NULL; - - g_free (name); - gtk_widget_destroy (dialog); - return TRUE; + GFile *file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog)); + *filename = _glade_util_file_get_relative_path (resource_folder, file); + g_object_unref (file); } gtk_widget_destroy (dialog); + g_object_unref (resource_folder); - return FALSE; + return *filename != NULL; } static void |