From b608b56786b77231eaa93523c8903ae90c69bd1b Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 23 Mar 2007 05:13:56 +0000 Subject: [PATCH] Add a keybinding (C-h) to toggle whether to show hidden files. (#344657, 2007-03-23 Matthias Clasen * gtk/gtkfilechooserdefault.c: Add a keybinding (C-h) to toggle whether to show hidden files. (#344657, Wouter Bolsterlee, Priit Laes, et al) svn path=/trunk/; revision=17557 --- ChangeLog | 8 +++++++- gtk/gtkfilechooserdefault.c | 29 ++++++++++++++++++++++++----- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index a667a89f03..b95efdce0a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,12 @@ 2007-03-23 Matthias Clasen - * gtk/gtkfilechooserdefault.c: Add a keybinding to + * gtk/gtkfilechooserdefault.c: Add a keybinding (C-h) to + toggle whether to show hidden files. (#344657, + Wouter Bolsterlee, Priit Laes, et al) + +2007-03-23 Matthias Clasen + + * gtk/gtkfilechooserdefault.c: Add a keybinding (C-l) to toggle the visibility of the location entry. (#383354, John Pye, patch by Carlos Garnacho) diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index 4adb524c88..b0d7d6a8e7 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -79,7 +79,6 @@ #include #include - #ifdef HAVE_UNISTD_H #include @@ -137,7 +136,7 @@ _gtk_file_chooser_profile_log (const char *func, int indent, const char *msg1, c #define profile_msg(x, y) #endif - + typedef struct _GtkFileChooserDefaultClass GtkFileChooserDefaultClass; @@ -162,6 +161,7 @@ enum { DESKTOP_FOLDER, QUICK_BOOKMARK, LOCATION_TOGGLE_POPUP, + SHOW_HIDDEN, LAST_SIGNAL }; @@ -324,6 +324,7 @@ static void home_folder_handler (GtkFileChooserDefault *impl); static void desktop_folder_handler (GtkFileChooserDefault *impl); static void quick_bookmark_handler (GtkFileChooserDefault *impl, gint bookmark_index); +static void show_hidden_handler (GtkFileChooserDefault *impl); static void update_appearance (GtkFileChooserDefault *impl); static void set_current_filter (GtkFileChooserDefault *impl, @@ -451,7 +452,7 @@ static GtkTreeModel *shortcuts_model_filter_new (GtkFileChooserDefault *impl, GtkTreeModel *child_model, GtkTreePath *root); - + G_DEFINE_TYPE_WITH_CODE (GtkFileChooserDefault, _gtk_file_chooser_default, GTK_TYPE_VBOX, G_IMPLEMENT_INTERFACE (GTK_TYPE_FILE_CHOOSER, @@ -547,6 +548,14 @@ _gtk_file_chooser_default_class_init (GtkFileChooserDefaultClass *class) NULL, NULL, _gtk_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); + signals[SHOW_HIDDEN] = + _gtk_binding_signal_new ("show-hidden", + G_OBJECT_CLASS_TYPE (class), + G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, + G_CALLBACK (show_hidden_handler), + NULL, NULL, + _gtk_marshal_VOID__VOID, + G_TYPE_NONE, 0); binding_set = gtk_binding_set_by_class (class); @@ -575,7 +584,6 @@ _gtk_file_chooser_default_class_init (GtkFileChooserDefaultClass *class) GDK_v, GDK_CONTROL_MASK, "location-popup-on-paste", 0); - gtk_binding_entry_add_signal (binding_set, GDK_Up, GDK_MOD1_MASK, "up-folder", @@ -610,6 +618,10 @@ _gtk_file_chooser_default_class_init (GtkFileChooserDefaultClass *class) GDK_d, GDK_MOD1_MASK, "desktop-folder", 0); + gtk_binding_entry_add_signal (binding_set, + GDK_h, GDK_CONTROL_MASK, + "show-hidden", + 0); for (i = 0; i < 10; i++) gtk_binding_entry_add_signal (binding_set, @@ -8725,7 +8737,14 @@ quick_bookmark_handler (GtkFileChooserDefault *impl, switch_to_shortcut (impl, bookmark_pos); } - +static void +show_hidden_handler (GtkFileChooserDefault *impl) +{ + g_object_set (impl, + "show-hidden", !impl->show_hidden, + NULL); +} + /* Drag and drop interfaces */