summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Pablo Ugarte <juanpablougarte@gmail.com>2018-02-24 12:01:30 -0300
committerJuan Pablo Ugarte <juanpablougarte@gmail.com>2018-02-24 12:16:01 -0300
commitf22d6788275f3236f4ab9a7e8bb230e15871d73d (patch)
tree5239193f70d575ddf37469676db01e88e29d7aab
parent903aa231418032c1e02d5c97b1635a248e2864ce (diff)
downloadglade-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.c22
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