summaryrefslogtreecommitdiff
path: root/gtk/gtkfilechooserentry.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-11-05 03:28:02 +0100
committerBenjamin Otte <otte@redhat.com>2011-12-16 20:09:12 +0100
commit5c42972735d4819f32ee78141fed249e8366f154 (patch)
tree3a8b8b8191ea462fd925e718bb335eb57ffbe9df /gtk/gtkfilechooserentry.c
parent2186c282634e9ebe6791c5e3dd2e88049b427502 (diff)
downloadgtk+-5c42972735d4819f32ee78141fed249e8366f154.tar.gz
filechooserentry: Split out function
I want to use that function elsewhere, so split it out.
Diffstat (limited to 'gtk/gtkfilechooserentry.c')
-rw-r--r--gtk/gtkfilechooserentry.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/gtk/gtkfilechooserentry.c b/gtk/gtkfilechooserentry.c
index 94e01d5f8e..11d18382b7 100644
--- a/gtk/gtkfilechooserentry.c
+++ b/gtk/gtkfilechooserentry.c
@@ -426,6 +426,20 @@ has_uri_scheme (const char *str)
return (strncmp (p, "://", 3) == 0);
}
+static GFile *
+gtk_file_chooser_get_file_for_text (GtkFileChooserEntry *chooser_entry,
+ const gchar *str)
+{
+ GFile *file;
+
+ if (str[0] == '~' || g_path_is_absolute (str) || has_uri_scheme (str))
+ file = g_file_parse_name (str);
+ else
+ file = g_file_resolve_relative_path (chooser_entry->base_folder, str);
+
+ return file;
+}
+
static gboolean
gtk_file_chooser_entry_parse (GtkFileChooserEntry *chooser_entry,
const gchar *str,
@@ -443,10 +457,7 @@ gtk_file_chooser_entry_parse (GtkFileChooserEntry *chooser_entry,
last_slash = strrchr (str, G_DIR_SEPARATOR);
- if (str[0] == '~' || g_path_is_absolute (str) || has_uri_scheme (str))
- file = g_file_parse_name (str);
- else
- file = g_file_resolve_relative_path (chooser_entry->base_folder, str);
+ file = gtk_file_chooser_get_file_for_text (chooser_entry, str);
if (g_file_equal (chooser_entry->base_folder, file))
{