[gnome-commander] Quick search can be activated by just typing a letter, adjustable in the options tab
- From: Uwe Scholz <uwescholz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-commander] Quick search can be activated by just typing a letter, adjustable in the options tab
- Date: Fri, 18 Aug 2017 21:34:09 +0000 (UTC)
commit 9cf67a4465e873f2e0622db448a3affa4653570e
Author: Uwe Scholz <uwescholz src gnome org>
Date: Fri Aug 18 23:32:56 2017 +0200
Quick search can be activated by just typing a letter, adjustable in the options tab
NEWS | 1 +
doc/C/releases.xml | 5 ++++-
src/dialogs/gnome-cmd-options-dialog.cc | 22 +++++++++++++++++-----
src/gnome-cmd-data.cc | 6 +++---
src/gnome-cmd-file-list.cc | 3 ++-
src/gnome-cmd-main-win.cc | 25 +++++++++++++++++++++++--
src/gnome-cmd-types.h | 3 ++-
7 files changed, 52 insertions(+), 13 deletions(-)
---
diff --git a/NEWS b/NEWS
index eb9e22a..26ffb87 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,7 @@ New features:
* [build] Don't use gnome-autogen.sh anymore (Many thanks to Philip Withnall and David King)
* [build] Translations are now handled by upstream gettext instead of intltool
* [build] New documentation infrastructure: Use yelp-tools instead of gnome-doc-utils
+ * Quick search can be activated by just typing a letter, adjustable in the options tab
Other changes:
* Increased minimum GTK version from 2.8.0 to 2.18.0
diff --git a/doc/C/releases.xml b/doc/C/releases.xml
index 1ccae5e..10c1772 100644
--- a/doc/C/releases.xml
+++ b/doc/C/releases.xml
@@ -38,9 +38,12 @@
<listitem>
<para>[build] New documentation infrastructure: Use yelp-tools instead of
gnome-doc-utils</para>
</listitem>
+ <listitem>
+ <para>Quick search can be activated by just typing a letter, adjustable in the
options tab</para>
+ </listitem>
</itemizedlist>
</para>
- <para>New features:</para>
+ <para>Other changes:</para>
<para>
<itemizedlist>
<listitem>
diff --git a/src/dialogs/gnome-cmd-options-dialog.cc b/src/dialogs/gnome-cmd-options-dialog.cc
index ea2ea62..a111d7c 100644
--- a/src/dialogs/gnome-cmd-options-dialog.cc
+++ b/src/dialogs/gnome-cmd-options-dialog.cc
@@ -167,10 +167,16 @@ static GtkWidget *create_general_tab (GtkWidget *parent, GnomeCmdData::Options &
radio = create_radio (parent, NULL, _("CTRL+ALT+letters"), "ctrl_alt_quick_search");
gtk_box_pack_start (GTK_BOX (cat_box), radio, FALSE, TRUE, 0);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), !cfg.quick_search);
- radio = create_radio (parent, get_radio_group (radio), _("ALT+letters (menu access with F10)"),
"quick_search");
+ if (cfg.quick_search == GNOME_CMD_QUICK_SEARCH_CTRL_ALT)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
+ radio = create_radio (parent, get_radio_group (radio), _("ALT+letters (menu access with F12)"),
"alt_quick_search");
+ gtk_container_add (GTK_CONTAINER (cat_box), radio);
+ if (cfg.quick_search == GNOME_CMD_QUICK_SEARCH_ALT)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
+ radio = create_radio (parent, get_radio_group (radio), _("Just letters"), "quick_search");
gtk_container_add (GTK_CONTAINER (cat_box), radio);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), cfg.quick_search);
+ if (cfg.quick_search == GNOME_CMD_QUICK_SEARCH_JUST_A_CHARACTER)
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE);
check = create_check (parent, _("Match beginning of the file name"), "qsearch_exact_match_begin");
gtk_box_pack_start (GTK_BOX (cat_box), check, FALSE, TRUE, 0);
@@ -223,7 +229,8 @@ inline void store_general_options (GtkWidget *dialog, GnomeCmdData::Options &cfg
GtkWidget *rmb_popup_radio = lookup_widget (dialog, "rmb_popup_radio");
GtkWidget *select_dirs = lookup_widget (dialog, "select_dirs");
GtkWidget *case_sens_check = lookup_widget (dialog, "case_sens_check");
- GtkWidget *quick_search = lookup_widget (dialog, "quick_search");
+ GtkWidget *ctrl_alt_quick_search = lookup_widget (dialog, "ctrl_alt_quick_search");
+ GtkWidget *alt_quick_search = lookup_widget (dialog, "alt_quick_search");
GtkWidget *multiple_instance_check = lookup_widget (dialog, "multiple_instance_check");
GtkWidget *qsearch_exact_match_begin = lookup_widget (dialog, "qsearch_exact_match_begin");
GtkWidget *qsearch_exact_match_end = lookup_widget (dialog, "qsearch_exact_match_end");
@@ -243,7 +250,12 @@ inline void store_general_options (GtkWidget *dialog, GnomeCmdData::Options &cfg
cfg.select_dirs = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (select_dirs));
cfg.case_sens_sort = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (case_sens_check));
- cfg.quick_search = (GnomeCmdQuickSearchShortcut) gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
(quick_search));
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (ctrl_alt_quick_search)))
+ cfg.quick_search = GNOME_CMD_QUICK_SEARCH_CTRL_ALT;
+ else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (alt_quick_search)))
+ cfg.quick_search = GNOME_CMD_QUICK_SEARCH_ALT;
+ else
+ cfg.quick_search = GNOME_CMD_QUICK_SEARCH_JUST_A_CHARACTER;
cfg.allow_multiple_instances = !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
(multiple_instance_check));
cfg.quick_search_exact_match_begin = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
(qsearch_exact_match_begin));
cfg.quick_search_exact_match_end = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
(qsearch_exact_match_end));
diff --git a/src/gnome-cmd-data.cc b/src/gnome-cmd-data.cc
index 5fc1b3c..ad0809c 100644
--- a/src/gnome-cmd-data.cc
+++ b/src/gnome-cmd-data.cc
@@ -778,9 +778,9 @@ static void on_use_internal_viewer_changed()
static void on_quick_search_shortcut_changed()
{
- gint quick_search;
- quick_search = g_settings_get_enum (gnome_cmd_data.options.gcmd_settings->general,
GCMD_SETTINGS_QUICK_SEARCH_SHORTCUT);
- gnome_cmd_data.options.quick_search = (GnomeCmdQuickSearchShortcut) quick_search;
+ GnomeCmdQuickSearchShortcut quick_search;
+ quick_search = (GnomeCmdQuickSearchShortcut) g_settings_get_enum
(gnome_cmd_data.options.gcmd_settings->general, GCMD_SETTINGS_QUICK_SEARCH_SHORTCUT);
+ gnome_cmd_data.options.quick_search = quick_search;
}
static void on_quick_search_exact_match_begin_changed()
diff --git a/src/gnome-cmd-file-list.cc b/src/gnome-cmd-file-list.cc
index b97d64f..01ff218 100644
--- a/src/gnome-cmd-file-list.cc
+++ b/src/gnome-cmd-file-list.cc
@@ -2461,7 +2461,8 @@ gboolean GnomeCmdFileList::key_pressed(GdkEventKey *event)
break;
}
}
- else if (state_is_ctrl_alt (event->state) || state_is_ctrl_alt_shift (event->state))
+ else if ((gnome_cmd_data.options.quick_search == GNOME_CMD_QUICK_SEARCH_CTRL_ALT)
+ && (state_is_ctrl_alt (event->state) || state_is_ctrl_alt_shift (event->state)))
{
if ((event->keyval >= GDK_a && event->keyval <= GDK_z)
|| (event->keyval >= GDK_A && event->keyval <= GDK_Z)
diff --git a/src/gnome-cmd-main-win.cc b/src/gnome-cmd-main-win.cc
index c2e2539..8e4a74d 100644
--- a/src/gnome-cmd-main-win.cc
+++ b/src/gnome-cmd-main-win.cc
@@ -133,28 +133,49 @@ static gint gnome_cmd_key_snooper(GtkWidget *grab_widget, GdkEventKey *event, Gn
g_return_val_if_fail (mw!=NULL, FALSE);
if (event->type!=GDK_KEY_PRESS)
+ {
return FALSE;
+ }
if (!((event->keyval >= GDK_A && event->keyval <= GDK_Z) || (event->keyval >= GDK_a && event->keyval <=
GDK_z) ||
(event->keyval >= GDK_0 && event->keyval <= GDK_9) ||
event->keyval == GDK_period || event->keyval == GDK_question|| event->keyval == GDK_asterisk ||
event->keyval == GDK_bracketleft))
+ {
return FALSE;
+ }
- if (!gnome_cmd_data.options.quick_search)
+ if (gnome_cmd_data.options.quick_search == GNOME_CMD_QUICK_SEARCH_CTRL_ALT)
+ {
return FALSE;
+ }
- if (!state_is_alt (event->state) && !state_is_alt_shift (event->state))
+ if ((gnome_cmd_data.options.quick_search == GNOME_CMD_QUICK_SEARCH_ALT)
+ && (!state_is_alt (event->state) && !state_is_alt_shift (event->state)))
+ {
return FALSE;
+ }
+
+ if (state_is_ctrl (event->state) || state_is_ctrl_shift (event->state) || state_is_ctrl_alt_shift
(event->state)
+ || ((state_is_alt (event->state) || state_is_alt_shift (event->state)) &&
gnome_cmd_data.options.quick_search != GNOME_CMD_QUICK_SEARCH_ALT))
+ {
+ return FALSE;
+ }
GnomeCmdFileSelector *fs = mw->fs(ACTIVE);
if (!fs || !fs->file_list())
+ {
return FALSE;
+ }
if (!GTK_WIDGET_HAS_FOCUS (GTK_WIDGET (fs->file_list())))
+ {
return FALSE;
+ }
if (gnome_cmd_file_list_quicksearch_shown (fs->file_list()))
+ {
return FALSE;
+ }
gnome_cmd_file_list_show_quicksearch (fs->file_list(), event->keyval);
diff --git a/src/gnome-cmd-types.h b/src/gnome-cmd-types.h
index c9c8f57..9292db6 100644
--- a/src/gnome-cmd-types.h
+++ b/src/gnome-cmd-types.h
@@ -59,7 +59,8 @@ typedef enum
typedef enum
{
GNOME_CMD_QUICK_SEARCH_CTRL_ALT,
- GNOME_CMD_QUICK_SEARCH_ALT
+ GNOME_CMD_QUICK_SEARCH_ALT,
+ GNOME_CMD_QUICK_SEARCH_JUST_A_CHARACTER
}GnomeCmdQuickSearchShortcut;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]