[gnome-commander/remove-search] Add search command option in the preferences
- From: Uwe Scholz <uwescholz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-commander/remove-search] Add search command option in the preferences
- Date: Thu, 13 Jan 2022 22:51:01 +0000 (UTC)
commit a09e907ecdd220c760d26e741ba0e3fa814dc5d4
Author: Uwe Scholz <u scholz83 gmx de>
Date: Thu Jan 13 23:18:02 2022 +0100
Add search command option in the preferences
data/org.gnome.gnome-commander.gschema.xml | 7 +++++++
src/dialogs/gnome-cmd-options-dialog.cc | 26 ++++++++++++++++----------
src/gnome-cmd-data.cc | 17 +++++++++++++++++
src/gnome-cmd-data.h | 10 ++++++++++
4 files changed, 50 insertions(+), 10 deletions(-)
---
diff --git a/data/org.gnome.gnome-commander.gschema.xml b/data/org.gnome.gnome-commander.gschema.xml
index 17762b8d..024ddaad 100644
--- a/data/org.gnome.gnome-commander.gschema.xml
+++ b/data/org.gnome.gnome-commander.gschema.xml
@@ -714,6 +714,13 @@
This string defines the command for starting the diff tool.
</description>
</key>
+ <key name="search-cmd" type="s">
+ <default>''</default>
+ <summary>Search command</summary>
+ <description>
+ This string defines the command for starting an external file search tool.
+ </description>
+ </key>
<key name="use-gcmd-block" type="b">
<default>true</default>
<summary>Leave terminal open</summary>
diff --git a/src/dialogs/gnome-cmd-options-dialog.cc b/src/dialogs/gnome-cmd-options-dialog.cc
index 33df7cc7..3a494483 100644
--- a/src/dialogs/gnome-cmd-options-dialog.cc
+++ b/src/dialogs/gnome-cmd-options-dialog.cc
@@ -1716,10 +1716,12 @@ static GtkWidget *create_programs_tab (GtkWidget *parent, GnomeCmdData::Options
table_add (table1, label, 0, 2, GTK_FILL);
label = create_label (parent, _("Differ:"));
table_add (table1, label, 0, 3, GTK_FILL);
- label = create_label (parent, _("Send files:"));
+ label = create_label (parent, _("Search:"));
table_add (table1, label, 0, 4, GTK_FILL);
- label = create_label (parent, _("Terminal:"));
+ label = create_label (parent, _("Send files:"));
table_add (table1, label, 0, 5, GTK_FILL);
+ label = create_label (parent, _("Terminal:"));
+ table_add (table1, label, 0, 6, GTK_FILL);
entry = create_entry (parent, "viewer", cfg.viewer);
table_add (table1, entry, 1, 0, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
@@ -1731,10 +1733,12 @@ static GtkWidget *create_programs_tab (GtkWidget *parent, GnomeCmdData::Options
table_add (table1, entry, 1, 2, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
entry = create_entry (parent, "differ", cfg.differ);
table_add (table1, entry, 1, 3, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
- entry = create_entry (parent, "sendto", cfg.sendto);
+ entry = create_entry (parent, "search", cfg.search);
table_add (table1, entry, 1, 4, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
- entry = create_entry (parent, "termopen", cfg.termopen);
+ entry = create_entry (parent, "sendto", cfg.sendto);
table_add (table1, entry, 1, 5, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
+ entry = create_entry (parent, "termopen", cfg.termopen);
+ table_add (table1, entry, 1, 6, (GtkAttachOptions) (GTK_EXPAND|GTK_FILL));
separator = gtk_separator_menu_item_new ();
gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, FALSE, 0);
@@ -1808,9 +1812,10 @@ void store_programs_options (GtkWidget *dialog, GnomeCmdData::Options &cfg)
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 *entry4 = lookup_widget (dialog, "search");
+ GtkWidget *entry5 = lookup_widget (dialog, "sendto");
+ GtkWidget *entry6 = lookup_widget (dialog, "termopen");
+ GtkWidget *entry7 = lookup_widget (dialog, "termexec");
GtkWidget *check_use_gcmd_block = lookup_widget (dialog, "is_use_gcmd_block");
GtkWidget *check_uris = lookup_widget (dialog, "honor_expect_uris");
GtkWidget *check_iv = lookup_widget (dialog, "use_internal_viewer");
@@ -1818,9 +1823,10 @@ void store_programs_options (GtkWidget *dialog, GnomeCmdData::Options &cfg)
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)));
+ cfg.set_search(gtk_entry_get_text (GTK_ENTRY (entry4)));
+ cfg.set_sendto(gtk_entry_get_text (GTK_ENTRY (entry5)));
+ cfg.set_termopen(gtk_entry_get_text (GTK_ENTRY (entry6)));
+ cfg.set_termexec(gtk_entry_get_text (GTK_ENTRY (entry7)));
gnome_cmd_data.use_gcmd_block = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check_use_gcmd_block));
cfg.honor_expect_uris = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check_uris));
diff --git a/src/gnome-cmd-data.cc b/src/gnome-cmd-data.cc
index 269c88a6..7e28e47e 100644
--- a/src/gnome-cmd-data.cc
+++ b/src/gnome-cmd-data.cc
@@ -884,6 +884,14 @@ static void on_differ_cmd_changed()
gnome_cmd_data.options.differ = differ_cmd;
}
+static void on_search_cmd_changed()
+{
+ gchar *search_cmd;
+ g_free(gnome_cmd_data.options.search);
+ search_cmd = g_settings_get_string (gnome_cmd_data.options.gcmd_settings->programs,
GCMD_SETTINGS_SEARCH_CMD);
+ gnome_cmd_data.options.search = search_cmd;
+}
+
static void on_sendto_cmd_changed()
{
gchar *sendto_cmd;
@@ -1321,6 +1329,11 @@ static void gcmd_connect_gsettings_signals(GcmdSettings *gs)
G_CALLBACK (on_differ_cmd_changed),
nullptr);
+ g_signal_connect (gs->programs,
+ "changed::search-cmd",
+ G_CALLBACK (on_search_cmd_changed),
+ nullptr);
+
g_signal_connect (gs->programs,
"changed::sendto-cmd",
G_CALLBACK (on_sendto_cmd_changed),
@@ -1432,6 +1445,7 @@ GnomeCmdData::Options::Options(const Options &cfg)
use_internal_viewer = cfg.use_internal_viewer;
editor = g_strdup (cfg.editor);
differ = g_strdup (cfg.differ);
+ search = g_strdup (cfg.search);
sendto = g_strdup (cfg.sendto);
termopen = g_strdup (cfg.termopen);
termexec = g_strdup (cfg.termexec);
@@ -1497,6 +1511,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);
+ search = g_strdup (cfg.search);
sendto = g_strdup (cfg.sendto);
termopen = g_strdup (cfg.termopen);
termexec = g_strdup (cfg.termexec);
@@ -3213,6 +3228,7 @@ void GnomeCmdData::load()
options.viewer = g_settings_get_string(options.gcmd_settings->programs, GCMD_SETTINGS_VIEWER_CMD);
options.editor = g_settings_get_string(options.gcmd_settings->programs, GCMD_SETTINGS_EDITOR_CMD);
options.differ = g_settings_get_string(options.gcmd_settings->programs, GCMD_SETTINGS_DIFFER_CMD);
+ options.search = g_settings_get_string(options.gcmd_settings->programs, GCMD_SETTINGS_SEARCH_CMD);
options.sendto = g_settings_get_string(options.gcmd_settings->programs, GCMD_SETTINGS_SENDTO_CMD);
options.termopen = g_settings_get_string(options.gcmd_settings->programs, GCMD_SETTINGS_TERMINAL_CMD);
options.termexec = g_settings_get_string(options.gcmd_settings->programs,
GCMD_SETTINGS_TERMINAL_EXEC_CMD);
@@ -3594,6 +3610,7 @@ void GnomeCmdData::save()
set_gsettings_when_changed (options.gcmd_settings->programs, GCMD_SETTINGS_VIEWER_CMD,
options.viewer);
set_gsettings_when_changed (options.gcmd_settings->programs, GCMD_SETTINGS_EDITOR_CMD,
options.editor);
set_gsettings_when_changed (options.gcmd_settings->programs, GCMD_SETTINGS_DIFFER_CMD,
options.differ);
+ set_gsettings_when_changed (options.gcmd_settings->programs, GCMD_SETTINGS_SEARCH_CMD,
options.search);
set_gsettings_when_changed (options.gcmd_settings->programs, GCMD_SETTINGS_SENDTO_CMD,
options.sendto);
set_gsettings_when_changed (options.gcmd_settings->programs, GCMD_SETTINGS_TERMINAL_CMD,
options.termopen);
set_gsettings_when_changed (options.gcmd_settings->programs, GCMD_SETTINGS_TERMINAL_EXEC_CMD,
options.termexec);
diff --git a/src/gnome-cmd-data.h b/src/gnome-cmd-data.h
index 7c637647..4351ca44 100644
--- a/src/gnome-cmd-data.h
+++ b/src/gnome-cmd-data.h
@@ -202,6 +202,7 @@ GcmdSettings *gcmd_settings_new (void);
#define GCMD_SETTINGS_VIEWER_CMD "viewer-cmd"
#define GCMD_SETTINGS_EDITOR_CMD "editor-cmd"
#define GCMD_SETTINGS_DIFFER_CMD "differ-cmd"
+#define GCMD_SETTINGS_SEARCH_CMD "search-cmd"
#define GCMD_SETTINGS_SENDTO_CMD "sendto-cmd"
#define GCMD_SETTINGS_TERMINAL_CMD "terminal-cmd"
#define GCMD_SETTINGS_TERMINAL_EXEC_CMD "terminal-exec-cmd"
@@ -369,6 +370,7 @@ struct GnomeCmdData
gboolean use_internal_viewer;
gchar *editor;
gchar *differ;
+ gchar *search;
gchar *sendto;
gchar *termopen;
gchar *termexec;
@@ -424,6 +426,7 @@ struct GnomeCmdData
use_internal_viewer(TRUE),
editor(nullptr),
differ(nullptr),
+ search(nullptr),
sendto(nullptr),
termopen(nullptr),
termexec(nullptr),
@@ -452,6 +455,7 @@ struct GnomeCmdData
g_free (viewer);
g_free (editor);
g_free (differ);
+ g_free (search);
g_free (sendto);
g_free (termopen);
g_free (termexec);
@@ -514,6 +518,12 @@ struct GnomeCmdData
differ = g_strdup (command);
}
+ void set_search(const gchar *command)
+ {
+ g_free (search);
+ search = g_strdup (command);
+ }
+
void set_sendto(const gchar *command)
{
g_free (sendto);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]