[gnome-commander] Added a Send-to command option in options dialog
- From: Uwe Scholz <uwescholz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-commander] Added a Send-to command option in options dialog
- Date: Sat, 22 Nov 2014 22:11:03 +0000 (UTC)
commit 10dcec7861c3e7d2f68fc387a2a54ae63cb25001
Author: Uwe Scholz <uwescholz src gnome org>
Date: Wed Oct 8 21:38:08 2014 +0200
Added a Send-to command option in options dialog
src/dialogs/gnome-cmd-options-dialog.cc | 16 +++++++++++-----
src/gnome-cmd-data.cc | 4 ++++
src/gnome-cmd-data.h | 9 +++++++++
src/gnome-cmd-user-actions.cc | 18 +++++++++++++++++-
4 files changed, 41 insertions(+), 6 deletions(-)
---
diff --git a/src/dialogs/gnome-cmd-options-dialog.cc b/src/dialogs/gnome-cmd-options-dialog.cc
index 56f2992..81bbcac 100644
--- a/src/dialogs/gnome-cmd-options-dialog.cc
+++ b/src/dialogs/gnome-cmd-options-dialog.cc
@@ -1524,7 +1524,7 @@ inline GtkWidget *create_programs_tab (GtkWidget *parent, GnomeCmdData::Options
cat = create_category (parent, check, _("MIME applications"));
gtk_box_pack_start (GTK_BOX (vbox), cat, FALSE, FALSE, 0);
- table = create_table (parent, 6, 2);
+ table = create_table (parent, 7, 2);
cat = create_category (parent, table, _("Standard programs"));
gtk_box_pack_start (GTK_BOX (vbox), cat, FALSE, FALSE, 0);
@@ -1534,10 +1534,12 @@ inline GtkWidget *create_programs_tab (GtkWidget *parent, GnomeCmdData::Options
table_add (table, label, 0, 2, GTK_FILL);
label = create_label (parent, _("Differ:"));
table_add (table, label, 0, 3, GTK_FILL);
- label = create_label (parent, _("Terminal:"));
+ label = create_label (parent, _("Send-to:"));
table_add (table, label, 0, 4, GTK_FILL);
- label = create_label (parent, _("Terminal for executing a program:"));
+ label = create_label (parent, _("Terminal:"));
table_add (table, label, 0, 5, GTK_FILL);
+ label = create_label (parent, _("Terminal for executing a program:"));
+ table_add (table, label, 0, 6, GTK_FILL);
entry = create_entry (parent, "viewer", cfg.viewer);
table_add (table, entry, 1, 0, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
@@ -1549,10 +1551,12 @@ inline GtkWidget *create_programs_tab (GtkWidget *parent, GnomeCmdData::Options
table_add (table, entry, 1, 2, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
entry = create_entry (parent, "differ", cfg.differ);
table_add (table, entry, 1, 3, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
- entry = create_entry (parent, "termopen", cfg.termopen);
+ entry = create_entry (parent, "sendto", cfg.sendto);
table_add (table, entry, 1, 4, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
- entry = create_entry (parent, "termexec", cfg.termexec);
+ entry = create_entry (parent, "termopen", cfg.termopen);
table_add (table, entry, 1, 5, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
+ entry = create_entry (parent, "termexec", cfg.termexec);
+ table_add (table, entry, 1, 6, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
//Other favorite apps frame
@@ -1609,6 +1613,7 @@ inline void store_programs_options (GtkWidget *dialog, GnomeCmdData::Options &cf
GtkWidget *entry1 = lookup_widget (dialog, "viewer");
GtkWidget *entry2 = lookup_widget (dialog, "editor");
GtkWidget *entry3 = lookup_widget (dialog, "differ");
+ GtkWidget *entry4 = lookup_widget (dialog, "sendto");
GtkWidget *entry5 = lookup_widget (dialog, "termopen");
GtkWidget *entry6 = lookup_widget (dialog, "termexec");
GtkWidget *check_uris = lookup_widget (dialog, "honor_expect_uris");
@@ -1617,6 +1622,7 @@ inline void store_programs_options (GtkWidget *dialog, GnomeCmdData::Options &cf
cfg.set_viewer(gtk_entry_get_text (GTK_ENTRY (entry1)));
cfg.set_editor(gtk_entry_get_text (GTK_ENTRY (entry2)));
cfg.set_differ(gtk_entry_get_text (GTK_ENTRY (entry3)));
+ cfg.set_sendto(gtk_entry_get_text (GTK_ENTRY (entry4)));
cfg.set_termopen(gtk_entry_get_text (GTK_ENTRY (entry5)));
cfg.set_termexec(gtk_entry_get_text (GTK_ENTRY (entry6)));
diff --git a/src/gnome-cmd-data.cc b/src/gnome-cmd-data.cc
index f0f4b0c..127da0d 100644
--- a/src/gnome-cmd-data.cc
+++ b/src/gnome-cmd-data.cc
@@ -109,6 +109,7 @@ GnomeCmdData::Options::Options(const Options &cfg)
use_internal_viewer = cfg.use_internal_viewer;
editor = g_strdup (cfg.editor);
differ = g_strdup (cfg.differ);
+ sendto = g_strdup (cfg.sendto);
termopen = g_strdup (cfg.termopen);
termexec = g_strdup (cfg.termexec);
fav_apps = cfg.fav_apps;
@@ -165,6 +166,7 @@ GnomeCmdData::Options &GnomeCmdData::Options::operator = (const Options &cfg)
use_internal_viewer = cfg.use_internal_viewer;
editor = g_strdup (cfg.editor);
differ = g_strdup (cfg.differ);
+ sendto = g_strdup (cfg.sendto);
termopen = g_strdup (cfg.termopen);
termexec = g_strdup (cfg.termexec);
fav_apps = cfg.fav_apps;
@@ -1206,6 +1208,7 @@ void GnomeCmdData::load()
options.viewer = gnome_cmd_data_get_string ("/programs/viewer", "gedit %s");
options.editor = gnome_cmd_data_get_string ("/programs/editor", "gedit %s");
options.differ = gnome_cmd_data_get_string ("/programs/differ", "meld %s");
+ options.sendto = gnome_cmd_data_get_string ("/programs/sendto", "nautilus-sendto %s");
options.termopen = gnome_cmd_data_get_string ("/programs/terminal_open", "gnome-terminal");
options.termexec = gnome_cmd_data_get_string ("/programs/terminal_exec", "gnome-terminal -e %s");
@@ -1629,6 +1632,7 @@ void GnomeCmdData::save()
gnome_cmd_data_set_string ("/programs/viewer", options.viewer);
gnome_cmd_data_set_string ("/programs/editor", options.editor);
gnome_cmd_data_set_string ("/programs/differ", options.differ);
+ gnome_cmd_data_set_string ("/programs/sendto", options.sendto);
gnome_cmd_data_set_string ("/programs/terminal_open", options.termopen);
gnome_cmd_data_set_string ("/programs/terminal_exec", options.termexec);
diff --git a/src/gnome-cmd-data.h b/src/gnome-cmd-data.h
index 0fb4b3f..f889c5b 100644
--- a/src/gnome-cmd-data.h
+++ b/src/gnome-cmd-data.h
@@ -136,6 +136,7 @@ struct GnomeCmdData
gboolean use_internal_viewer;
gchar *editor;
gchar *differ;
+ gchar *sendto;
gchar *termopen;
gchar *termexec;
GList *fav_apps;
@@ -183,6 +184,7 @@ struct GnomeCmdData
use_internal_viewer(TRUE),
editor(NULL),
differ(NULL),
+ sendto(NULL),
termopen(NULL),
termexec(NULL),
fav_apps(NULL),
@@ -206,6 +208,7 @@ struct GnomeCmdData
g_free (viewer);
g_free (editor);
g_free (differ);
+ g_free (sendto);
g_free (termopen);
g_free (termexec);
}
@@ -273,6 +276,12 @@ struct GnomeCmdData
differ = g_strdup (command);
}
+ void set_sendto(const gchar *command)
+ {
+ g_free (sendto);
+ sendto = g_strdup (command);
+ }
+
void set_termexec(const gchar *command)
{
g_free (termexec);
diff --git a/src/gnome-cmd-user-actions.cc b/src/gnome-cmd-user-actions.cc
index 9f57a88..9073889 100644
--- a/src/gnome-cmd-user-actions.cc
+++ b/src/gnome-cmd-user-actions.cc
@@ -891,7 +891,23 @@ void file_advrename (GtkMenuItem *menuitem, gpointer not_used)
void file_sendto (GtkMenuItem *menuitem, gpointer not_used)
{
- command_execute (menuitem, (gpointer) "nautilus-sendto %s");
+ gint argc;
+ gchar **argv;
+ gchar *command;
+ gchar *dpath = GNOME_CMD_FILE (get_fs (ACTIVE)->get_directory())->get_real_path();
+ GError *error = NULL;
+
+ command = g_strdup (gnome_cmd_data.options.sendto);
+
+ DEBUG ('g', "running: %s\n", command);
+
+ g_shell_parse_argv (command, &argc, &argv, NULL);
+ if (!g_spawn_async (dpath, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &error))
+ gnome_cmd_error_message (_("Unable to execute command."), error);
+
+ g_strfreev (argv);
+ g_free (command);
+ g_free (dpath);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]