Mercurial > geeqie
diff src/utilops.c @ 1272:e0e12512cde2
read external editors from .desktop files
author | nadvornik |
---|---|
date | Sun, 01 Feb 2009 12:48:14 +0000 |
parents | ca8ccf0c3e81 |
children | 8b89e3ff286b |
line wrap: on
line diff
--- a/src/utilops.c Thu Jan 29 19:43:34 2009 +0000 +++ b/src/utilops.c Sun Feb 01 12:48:14 2009 +0000 @@ -312,7 +312,7 @@ /* data for the operation itself, internal or external */ gboolean external; /* TRUE for external command, FALSE for internal */ - gint external_command; + gchar *external_command; gpointer resume_data; FileUtilDoneFunc done_func; @@ -345,7 +345,7 @@ ud->phase = UTILITY_PHASE_START; ud->update_idle_id = -1; ud->perform_idle_id = -1; - ud->external_command = -1; + ud->external_command = NULL; return ud; } @@ -363,6 +363,7 @@ if (ud->gd) generic_dialog_close(ud->gd); g_free(ud->dest_path); + g_free(ud->external_command); g_free(ud); } @@ -791,29 +792,29 @@ switch (ud->type) { case UTILITY_TYPE_COPY: - ud->external_command = CMD_COPY; + ud->external_command = g_strdup(CMD_COPY); break; case UTILITY_TYPE_MOVE: - ud->external_command = CMD_MOVE; + ud->external_command = g_strdup(CMD_MOVE); break; case UTILITY_TYPE_RENAME: case UTILITY_TYPE_RENAME_FOLDER: - ud->external_command = CMD_RENAME; + ud->external_command = g_strdup(CMD_RENAME); break; case UTILITY_TYPE_DELETE: case UTILITY_TYPE_DELETE_LINK: case UTILITY_TYPE_DELETE_FOLDER: - ud->external_command = CMD_DELETE; + ud->external_command = g_strdup(CMD_DELETE); break; case UTILITY_TYPE_CREATE_FOLDER: - ud->external_command = CMD_FOLDER; + ud->external_command = g_strdup(CMD_FOLDER); break; case UTILITY_TYPE_FILTER: case UTILITY_TYPE_EDITOR: - g_assert(ud->external_command != -1); /* it should be already set */ + g_assert(ud->external_command != NULL); /* it should be already set */ break; case UTILITY_TYPE_WRITE_METADATA: - ud->external_command = -1; + ud->external_command = NULL; } if (is_valid_editor_command(ud->external_command)) @@ -1809,7 +1810,7 @@ file_util_dialog_run(ud); } -static void file_util_start_editor_full(gint n, FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase) +static void file_util_start_editor_full(const gchar *key, FileData *source_fd, GList *source_list, const gchar *dest_path, GtkWidget *parent, UtilityPhase phase) { UtilityData *ud; GList *flist = filelist_copy(source_list); @@ -1828,7 +1829,7 @@ return; } - if (editor_is_filter(n)) + if (editor_is_filter(key)) ud = file_util_data_new(UTILITY_TYPE_FILTER); else ud = file_util_data_new(UTILITY_TYPE_EDITOR); @@ -1841,7 +1842,7 @@ ud->with_sidecars = TRUE; - ud->external_command = n; + ud->external_command = g_strdup(key); ud->dir_fd = NULL; ud->flist = flist; @@ -2331,24 +2332,24 @@ } -void file_util_start_editor_from_file(gint n, FileData *fd, GtkWidget *parent) +void file_util_start_editor_from_file(const gchar *key, FileData *fd, GtkWidget *parent) { - file_util_start_editor_full(n, fd, NULL, NULL, parent, UTILITY_PHASE_ENTERING); + file_util_start_editor_full(key, fd, NULL, NULL, parent, UTILITY_PHASE_ENTERING); } -void file_util_start_editor_from_filelist(gint n, GList *list, GtkWidget *parent) +void file_util_start_editor_from_filelist(const gchar *key, GList *list, GtkWidget *parent) { - file_util_start_editor_full(n, NULL, list, NULL, parent, UTILITY_PHASE_ENTERING); + file_util_start_editor_full(key, NULL, list, NULL, parent, UTILITY_PHASE_ENTERING); } -void file_util_start_filter_from_file(gint n, FileData *fd, const gchar *dest_path, GtkWidget *parent) +void file_util_start_filter_from_file(const gchar *key, FileData *fd, const gchar *dest_path, GtkWidget *parent) { - file_util_start_editor_full(n, fd, NULL, dest_path, parent, UTILITY_PHASE_ENTERING); + file_util_start_editor_full(key, fd, NULL, dest_path, parent, UTILITY_PHASE_ENTERING); } -void file_util_start_filter_from_filelist(gint n, GList *list, const gchar *dest_path, GtkWidget *parent) +void file_util_start_filter_from_filelist(const gchar *key, GList *list, const gchar *dest_path, GtkWidget *parent) { - file_util_start_editor_full(n, NULL, list, dest_path, parent, UTILITY_PHASE_ENTERING); + file_util_start_editor_full(key, NULL, list, dest_path, parent, UTILITY_PHASE_ENTERING); } void file_util_delete_dir(FileData *fd, GtkWidget *parent)