nautilus r13968 - in branches/multiview: . src src/file-manager
- From: cneumair svn gnome org
- To: svn-commits-list gnome org
- Subject: nautilus r13968 - in branches/multiview: . src src/file-manager
- Date: Sat, 22 Mar 2008 18:04:26 +0000 (GMT)
Author: cneumair
Date: Sat Mar 22 18:04:26 2008
New Revision: 13968
URL: http://svn.gnome.org/viewvc/nautilus?rev=13968&view=rev
Log:
2008-03-22 Christian Neumair <chris ubuntu-t43>
* src/file-manager/fm-directory-view.c (hidden_files_mode_changed),
(slot_active), (fm_directory_view_init),
(fm_directory_view_finalize),
(fm_directory_view_init_show_hidden_files), (real_merge_menus),
(fm_directory_view_reset_to_defaults),
(fm_directory_view_ignore_hidden_file_preferences),
(fm_directory_view_set_property):
* src/file-manager/fm-tree-model.c
(fm_tree_model_set_show_hidden_files):
* src/file-manager/fm-tree-model.h:
* src/file-manager/fm-tree-view.c
(update_filtering_from_preferences):
* src/nautilus-actions.h:
* src/nautilus-application.c
(nautilus_application_close_all_navigation_windows):
* src/nautilus-window-menus.c (action_show_hidden_files_callback),
(show_hidden_files_preference_callback),
(nautilus_window_initialize_menus):
* src/nautilus-window.c (nautilus_window_set_hidden_files_mode):
Move "Show hidden files" menu code and preference listening from
FMDirectoryView to NautilusWindow (nautilus-window-menus.c).
Sync all views on preference change or menu toggling.
Modified:
branches/multiview/ChangeLog
branches/multiview/src/file-manager/fm-directory-view.c
branches/multiview/src/file-manager/fm-tree-model.c
branches/multiview/src/file-manager/fm-tree-model.h
branches/multiview/src/file-manager/fm-tree-view.c
branches/multiview/src/nautilus-actions.h
branches/multiview/src/nautilus-application.c
branches/multiview/src/nautilus-window-menus.c
branches/multiview/src/nautilus-window.c
Modified: branches/multiview/src/file-manager/fm-directory-view.c
==============================================================================
--- branches/multiview/src/file-manager/fm-directory-view.c (original)
+++ branches/multiview/src/file-manager/fm-directory-view.c Sat Mar 22 18:04:26 2008
@@ -62,7 +62,6 @@
#include <gtk/gtkmessagedialog.h>
#include <gtk/gtkfilechooserbutton.h>
#include <gtk/gtkhbox.h>
-#include <gtk/gtktoggleaction.h>
#include <gtk/gtkentry.h>
#include <gtk/gtkenums.h>
#include <gtk/gtkbindings.h>
@@ -327,7 +326,6 @@
static void schedule_idle_display_of_pending_files (FMDirectoryView *view);
static void unschedule_display_of_pending_files (FMDirectoryView *view);
static void disconnect_model_handlers (FMDirectoryView *view);
-static void filtering_changed_callback (gpointer callback_data);
static void metadata_for_directory_as_file_ready_callback (NautilusFile *file,
gpointer callback_data);
static void metadata_for_files_in_directory_ready_callback (NautilusDirectory *directory,
@@ -355,8 +353,6 @@
gpointer callback_data);
static void action_rename_select_all_callback (GtkAction *action,
gpointer callback_data);
-static void action_show_hidden_files_callback (GtkAction *action,
- gpointer callback_data);
static void action_paste_files_into_callback (GtkAction *action,
gpointer callback_data);
static void action_connect_to_server_link_callback (GtkAction *action,
@@ -1147,29 +1143,14 @@
static void
-action_show_hidden_files_callback (GtkAction *action,
- gpointer callback_data)
+hidden_files_mode_changed (NautilusWindow *window,
+ gpointer callback_data)
{
- FMDirectoryView *directory_view;
- NautilusWindowShowHiddenFilesMode mode;
+ FMDirectoryView *directory_view;
- g_assert (FM_IS_DIRECTORY_VIEW (callback_data));
directory_view = FM_DIRECTORY_VIEW (callback_data);
-
- directory_view->details->show_hidden_files = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
- directory_view->details->show_backup_files = directory_view->details->show_hidden_files;
-
- if (directory_view->details->show_hidden_files) {
- mode = NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_ENABLE;
- } else {
- mode = NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DISABLE;
- }
- /* multiview-TODO listen to hidden file modes changes, block handler here. */
- nautilus_window_info_set_hidden_files_mode (directory_view->details->window,
- mode);
- if (directory_view->details->model != NULL) {
- load_directory (directory_view, directory_view->details->model);
- }
+
+ fm_directory_view_init_show_hidden_files (directory_view);
}
static void
@@ -1657,10 +1638,6 @@
fm_directory_view_merge_menus (view);
schedule_update_menus (view);
-
- /* initialise show hidden mode */
- /* multiview-TODO this always causes a reload for loaded views. */
- fm_directory_view_init_show_hidden_files (view);
}
static void
@@ -1856,10 +1833,6 @@
click_policy_changed_callback, view);
eel_preferences_add_callback (NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST,
sort_directories_first_changed_callback, view);
- eel_preferences_add_callback (NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES,
- filtering_changed_callback, view);
- eel_preferences_add_callback (NAUTILUS_PREFERENCES_SHOW_BACKUP_FILES,
- filtering_changed_callback, view);
}
static void
@@ -1962,15 +1935,6 @@
view = FM_DIRECTORY_VIEW (object);
- if (!view->details->ignore_hidden_file_preferences) {
- /* fm_directory_view_ignore_hidden_file_preferences is a one-way switch,
- * and may have removed these callbacks already.
- */
- eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES,
- filtering_changed_callback, view);
- eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SHOW_BACKUP_FILES,
- filtering_changed_callback, view);
- }
eel_preferences_remove_callback (NAUTILUS_PREFERENCES_CONFIRM_TRASH,
schedule_update_menus_callback, view);
eel_preferences_remove_callback (NAUTILUS_PREFERENCES_ENABLE_DELETE,
@@ -6231,7 +6195,6 @@
NautilusWindowShowHiddenFilesMode mode;
gboolean show_hidden_changed;
gboolean show_hidden_default_setting;
- GtkAction *action;
if (view->details->ignore_hidden_file_preferences) {
return;
@@ -6258,12 +6221,7 @@
view->details->show_backup_files = FALSE;
}
}
-
- action = gtk_action_group_get_action (view->details->dir_action_group,
- FM_ACTION_SHOW_HIDDEN_FILES);
- gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
- view->details->show_hidden_files);
-
+
if (show_hidden_changed && (view->details->model != NULL)) {
load_directory (view, view->details->model);
}
@@ -6382,6 +6340,12 @@
/* label, accelerator */ N_("_Delete"), "<shift>Delete",
/* tooltip */ N_("Delete each selected item, without moving to the Trash"),
G_CALLBACK (action_delete_callback) },
+ /*
+ * multiview-TODO: decide whether "Reset to Defaults" should
+ * be window-wide, and not just view-wide.
+ * Since this also resets the "Show hidden files" mode,
+ * it is a mixture of both ATM.
+ */
/* name, stock id */ { "Reset to Defaults", NULL,
/* label, accelerator */ N_("Reset View to _Defaults"), NULL,
/* tooltip */ N_("Reset sorting order and zoom level to match preferences for this view"),
@@ -6465,14 +6429,6 @@
G_CALLBACK (action_location_delete_callback) },
};
-static const GtkToggleActionEntry directory_view_toggle_entries[] = {
- /* name, stock id */ { "Show Hidden Files", NULL,
- /* label, accelerator */ N_("Show _Hidden Files"), "<control>H",
- /* tooltip */ N_("Toggle the display of hidden files in the current window"),
- G_CALLBACK (action_show_hidden_files_callback),
- TRUE },
-};
-
static void
connect_proxy (FMDirectoryView *view,
GtkAction *action,
@@ -6549,9 +6505,7 @@
gtk_action_group_add_actions (action_group,
directory_view_entries, G_N_ELEMENTS (directory_view_entries),
view);
- gtk_action_group_add_toggle_actions (action_group,
- directory_view_toggle_entries, G_N_ELEMENTS (directory_view_toggle_entries),
- view);
+
/* Translators: %s is a directory */
tooltip = g_strdup_printf (_("Run or manage scripts from %s"), "~/.gnome2/nautilus-scripts");
/* Create a script action here specially because its tooltip is dynamic */
@@ -7879,7 +7833,6 @@
if (mode != NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DEFAULT) {
nautilus_window_info_set_hidden_files_mode (view->details->window,
NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DEFAULT);
- fm_directory_view_init_show_hidden_files (view);
}
}
@@ -8179,38 +8132,6 @@
schedule_update_menus (FM_DIRECTORY_VIEW (callback_data));
}
-static void
-filtering_changed_callback (gpointer callback_data)
-{
- FMDirectoryView *directory_view;
- gboolean new_show_hidden;
- NautilusWindowShowHiddenFilesMode mode;
- GtkAction *action;
-
- directory_view = FM_DIRECTORY_VIEW (callback_data);
- new_show_hidden = eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES);
- mode = nautilus_window_info_get_hidden_files_mode (directory_view->details->window);
-
- /* only apply global show hidden files pref if local setting has not been set for this window */
- if (new_show_hidden != directory_view->details->show_hidden_files
- && mode == NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DEFAULT) {
- directory_view->details->show_hidden_files = new_show_hidden;
- directory_view->details->show_backup_files = new_show_hidden;
-
- action = gtk_action_group_get_action (directory_view->details->dir_action_group,
- FM_ACTION_SHOW_HIDDEN_FILES);
- g_signal_handlers_block_by_func (action, action_show_hidden_files_callback, directory_view);
- gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
- directory_view->details->show_hidden_files);
- g_signal_handlers_unblock_by_func (action, action_show_hidden_files_callback, directory_view);
-
- /* Reload the current uri so that the filtering changes take place. */
- if (directory_view->details->model != NULL) {
- load_directory (directory_view, directory_view->details->model);
- }
- }
-}
-
void
fm_directory_view_ignore_hidden_file_preferences (FMDirectoryView *view)
{
@@ -8220,13 +8141,6 @@
return;
}
- eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES,
- filtering_changed_callback,
- view);
- eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SHOW_BACKUP_FILES,
- filtering_changed_callback,
- view);
-
view->details->show_hidden_files = FALSE;
view->details->show_backup_files = FALSE;
view->details->ignore_hidden_file_preferences = TRUE;
@@ -8742,6 +8656,11 @@
"inactive", G_CALLBACK (slot_inactive),
directory_view, 0);
+ g_signal_connect_object (directory_view->details->window,
+ "hidden-files-mode-changed", G_CALLBACK (hidden_files_mode_changed),
+ directory_view, 0);
+ fm_directory_view_init_show_hidden_files (directory_view);
+
if (directory_view->details->slot ==
nautilus_window_info_get_active_slot (window)) {
slot_active (directory_view->details->slot, directory_view);
Modified: branches/multiview/src/file-manager/fm-tree-model.c
==============================================================================
--- branches/multiview/src/file-manager/fm-tree-model.c (original)
+++ branches/multiview/src/file-manager/fm-tree-model.c Sat Mar 22 18:04:26 2008
@@ -1705,6 +1705,7 @@
return;
}
model->details->show_hidden_files = show_hidden_files;
+ model->details->show_backup_files = show_hidden_files;
stop_monitoring (model);
if (!show_hidden_files) {
destroy_by_function (model, nautilus_file_is_hidden_file);
@@ -1712,25 +1713,6 @@
schedule_monitoring_update (model);
}
-void
-fm_tree_model_set_show_backup_files (FMTreeModel *model,
- gboolean show_backup_files)
-{
- g_return_if_fail (FM_IS_TREE_MODEL (model));
- g_return_if_fail (show_backup_files == FALSE || show_backup_files == TRUE);
-
- show_backup_files = show_backup_files != FALSE;
- if (model->details->show_backup_files == show_backup_files) {
- return;
- }
- model->details->show_backup_files = show_backup_files;
- stop_monitoring (model);
- if (!show_backup_files) {
- destroy_by_function (model, nautilus_file_is_backup_file);
- }
- schedule_monitoring_update (model);
-}
-
static gboolean
file_is_not_directory (NautilusFile *file)
{
Modified: branches/multiview/src/file-manager/fm-tree-model.h
==============================================================================
--- branches/multiview/src/file-manager/fm-tree-model.h (original)
+++ branches/multiview/src/file-manager/fm-tree-model.h Sat Mar 22 18:04:26 2008
@@ -66,8 +66,6 @@
FMTreeModel *fm_tree_model_new (void);
void fm_tree_model_set_show_hidden_files (FMTreeModel *model,
gboolean show_hidden_files);
-void fm_tree_model_set_show_backup_files (FMTreeModel *model,
- gboolean show_backup_files);
void fm_tree_model_set_show_only_directories (FMTreeModel *model,
gboolean show_only_directories);
NautilusFile * fm_tree_model_iter_get_file (FMTreeModel *model,
Modified: branches/multiview/src/file-manager/fm-tree-view.c
==============================================================================
--- branches/multiview/src/file-manager/fm-tree-view.c (original)
+++ branches/multiview/src/file-manager/fm-tree-view.c Sat Mar 22 18:04:26 2008
@@ -1358,9 +1358,6 @@
(view->details->child_model,
mode == NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_ENABLE);
}
- fm_tree_model_set_show_backup_files
- (view->details->child_model,
- eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SHOW_BACKUP_FILES));
fm_tree_model_set_show_only_directories
(view->details->child_model,
eel_preferences_get_boolean (NAUTILUS_PREFERENCES_TREE_SHOW_ONLY_DIRECTORIES));
Modified: branches/multiview/src/nautilus-actions.h
==============================================================================
--- branches/multiview/src/nautilus-actions.h (original)
+++ branches/multiview/src/nautilus-actions.h Sat Mar 22 18:04:26 2008
@@ -46,6 +46,7 @@
#define NAUTILUS_ACTION_ZOOM_IN "Zoom In"
#define NAUTILUS_ACTION_ZOOM_OUT "Zoom Out"
#define NAUTILUS_ACTION_ZOOM_NORMAL "Zoom Normal"
+#define NAUTILUS_ACTION_SHOW_HIDDEN_FILES "Show Hidden Files"
#define NAUTILUS_ACTION_CLOSE "Close"
#define NAUTILUS_ACTION_SEARCH "Search"
#define NAUTILUS_ACTION_FOLDER_WINDOW "Folder Window"
Modified: branches/multiview/src/nautilus-application.c
==============================================================================
--- branches/multiview/src/nautilus-application.c (original)
+++ branches/multiview/src/nautilus-application.c Sat Mar 22 18:04:26 2008
@@ -869,7 +869,6 @@
list_copy = g_list_copy (nautilus_application_window_list);
for (l = list_copy; l != NULL; l = l->next) {
NautilusWindow *window;
- GList *l;
window = NAUTILUS_WINDOW (l->data);
Modified: branches/multiview/src/nautilus-window-menus.c
==============================================================================
--- branches/multiview/src/nautilus-window-menus.c (original)
+++ branches/multiview/src/nautilus-window-menus.c Sat Mar 22 18:04:26 2008
@@ -39,15 +39,19 @@
#include "nautilus-window-private.h"
#include "nautilus-desktop-window.h"
#include "nautilus-search-bar.h"
+#include <eel/eel-preferences.h>
#include <gtk/gtkmain.h>
#include <gtk/gtkaboutdialog.h>
#include <gtk/gtkenums.h>
#include <gtk/gtkversion.h>
+#include <gtk/gtkaction.h>
+#include <gtk/gtktoggleaction.h>
#include <gio/gio.h>
#include <glib/gi18n.h>
#include <libgnomeui/gnome-help.h>
#include <libnautilus-extension/nautilus-menu-provider.h>
#include <libnautilus-private/nautilus-file-utilities.h>
+#include <libnautilus-private/nautilus-global-preferences.h>
#include <libnautilus-private/nautilus-icon-names.h>
#include <libnautilus-private/nautilus-ui-utilities.h>
#include <libnautilus-private/nautilus-module.h>
@@ -364,6 +368,48 @@
}
static void
+action_show_hidden_files_callback (GtkAction *action,
+ gpointer callback_data)
+{
+ NautilusWindow *window;
+ NautilusWindowShowHiddenFilesMode mode;
+
+ window = NAUTILUS_WINDOW (callback_data);
+
+ if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) {
+ mode = NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_ENABLE;
+ } else {
+ mode = NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DISABLE;
+ }
+
+ nautilus_window_info_set_hidden_files_mode (window, mode);
+}
+
+static void
+show_hidden_files_preference_callback (gpointer callback_data)
+{
+ NautilusWindow *window;
+ GtkAction *action;
+
+ window = NAUTILUS_WINDOW (callback_data);
+
+ if (window->details->show_hidden_files_mode == NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DEFAULT) {
+ action = gtk_action_group_get_action (window->details->main_action_group, NAUTILUS_ACTION_SHOW_HIDDEN_FILES);
+ g_assert (GTK_IS_ACTION (action));
+
+ /* update button */
+ g_signal_handlers_block_by_func (action, action_show_hidden_files_callback, window);
+ gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
+ eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES));
+ g_signal_handlers_unblock_by_func (action, action_show_hidden_files_callback, window);
+
+ /* inform views */
+ nautilus_window_info_set_hidden_files_mode (window, NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DEFAULT);
+
+ }
+}
+
+static void
preferences_respond_callback (GtkDialog *dialog,
gint response_id)
{
@@ -704,6 +750,14 @@
G_CALLBACK (action_go_to_burn_cd_callback) },
};
+static const GtkToggleActionEntry main_toggle_entries[] = {
+ /* name, stock id */ { "Show Hidden Files", NULL,
+ /* label, accelerator */ N_("Show _Hidden Files"), "<control>H",
+ /* tooltip */ N_("Toggle the display of hidden files in the current window"),
+ G_CALLBACK (action_show_hidden_files_callback),
+ TRUE },
+};
+
/**
* nautilus_window_initialize_menus
*
@@ -724,6 +778,9 @@
gtk_action_group_add_actions (action_group,
main_entries, G_N_ELEMENTS (main_entries),
window);
+ gtk_action_group_add_toggle_actions (action_group,
+ main_toggle_entries, G_N_ELEMENTS (main_toggle_entries),
+ window);
action = gtk_action_group_get_action (action_group, NAUTILUS_ACTION_UP);
g_object_set (action, "short_label", _("_Up"), NULL);
@@ -731,6 +788,17 @@
action = gtk_action_group_get_action (action_group, NAUTILUS_ACTION_HOME);
g_object_set (action, "short_label", _("_Home"), NULL);
+ action = gtk_action_group_get_action (action_group, NAUTILUS_ACTION_SHOW_HIDDEN_FILES);
+ g_signal_handlers_block_by_func (action, action_show_hidden_files_callback, window);
+ gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
+ eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES));
+ g_signal_handlers_unblock_by_func (action, action_show_hidden_files_callback, window);
+
+
+ eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES,
+ show_hidden_files_preference_callback,
+ window, G_OBJECT (window));
+
window->details->ui_manager = gtk_ui_manager_new ();
ui_manager = window->details->ui_manager;
gtk_window_add_accel_group (GTK_WINDOW (window),
Modified: branches/multiview/src/nautilus-window.c
==============================================================================
--- branches/multiview/src/nautilus-window.c (original)
+++ branches/multiview/src/nautilus-window.c Sat Mar 22 18:04:26 2008
@@ -1778,8 +1778,7 @@
{
window->details->show_hidden_files_mode = mode;
- g_signal_emit_by_name (window, "hidden_files_mode_changed",
- mode);
+ g_signal_emit_by_name (window, "hidden_files_mode_changed");
}
static NautilusBookmarkList *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]