nautilus r14210 - in branches/multiview: . libnautilus-private src src/file-manager
- From: cneumair svn gnome org
- To: svn-commits-list gnome org
- Subject: nautilus r14210 - in branches/multiview: . libnautilus-private src src/file-manager
- Date: Fri, 30 May 2008 20:46:52 +0000 (UTC)
Author: cneumair
Date: Fri May 30 20:46:51 2008
New Revision: 14210
URL: http://svn.gnome.org/viewvc/nautilus?rev=14210&view=rev
Log:
2008-05-30 Christian Neumair <cneumair gnome org>
* libnautilus-private/apps_nautilus_preferences.schemas.in:
* libnautilus-private/nautilus-global-preferences.c
(global_preferences_register_enumerations):
* libnautilus-private/nautilus-global-preferences.h:
* src/file-manager/fm-directory-view.c (open_one_in_new_tab),
(real_update_menus):
* src/file-manager/fm-icon-view.c
(icon_container_activate_alternate_callback):
* src/file-manager/nautilus-directory-view-ui.xml:
* src/nautilus-actions.h:
* src/nautilus-navigation-window-menus.c
(nautilus_navigation_window_update_tab_menu_item_visibility),
(action_new_tab_callback),
(nautilus_navigation_window_initialize_menus):
* src/nautilus-navigation-window-ui.xml:
* src/nautilus-navigation-window.c
(nautilus_navigation_window_init), (enable_tabs_changed):
* src/nautilus-window-manage-views.c
(nautilus_window_slot_open_location_full):
* src/nautilus-window-private.h:
Make "New Tab" appear above "New Window" menu items.
Add GConf keys for enabling tab support, and for determining
whether a tab should be opened after the current tab, or at the end.
Show/hide tab widgets depending on the preferences.
Modified:
branches/multiview/ChangeLog
branches/multiview/libnautilus-private/apps_nautilus_preferences.schemas.in
branches/multiview/libnautilus-private/nautilus-global-preferences.c
branches/multiview/libnautilus-private/nautilus-global-preferences.h
branches/multiview/src/file-manager/fm-directory-view.c
branches/multiview/src/file-manager/fm-icon-view.c
branches/multiview/src/file-manager/nautilus-directory-view-ui.xml
branches/multiview/src/nautilus-actions.h
branches/multiview/src/nautilus-navigation-window-menus.c
branches/multiview/src/nautilus-navigation-window-ui.xml
branches/multiview/src/nautilus-navigation-window.c
branches/multiview/src/nautilus-window-manage-views.c
branches/multiview/src/nautilus-window-private.h
Modified: branches/multiview/libnautilus-private/apps_nautilus_preferences.schemas.in
==============================================================================
--- branches/multiview/libnautilus-private/apps_nautilus_preferences.schemas.in (original)
+++ branches/multiview/libnautilus-private/apps_nautilus_preferences.schemas.in Fri May 30 20:46:51 2008
@@ -69,6 +69,36 @@
</schema>
<schema>
+ <key>/schemas/desktop/gnome/file_views/tabs_enable</key>
+ <applyto>/desktop/gnome/file_views/tabs_enable</applyto>
+ <owner>nautilus</owner>
+ <type>bool</type>
+ <default>true</default>
+ <locale name="C">
+ <short>Whether to enable tabs in Nautilus browser windows</short>
+ <long>
+ If set to true, then multiple views can be opened in one browser window,
+ each in a separate tab.
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
+ <key>/schemas/desktop/gnome/file_views/tabs_open_position</key>
+ <applyto>/desktop/gnome/file_views/tabs_open_position</applyto>
+ <owner>nautilus</owner>
+ <type>string</type>
+ <default>after_current_tab</default>
+ <locale name="C">
+ <short>Where to position newly open tabs in browser windows.</short>
+ <long>
+ If set to "after_current_tab", then new tabs are inserted after the current tab.
+ If set to "end", then new tabs are appended to the end of the tab list.
+ </long>
+ </locale>
+ </schema>
+
+ <schema>
<key>/schemas/apps/nautilus/preferences/media_automount</key>
<applyto>/apps/nautilus/preferences/media_automount</applyto>
<owner>nautilus</owner>
Modified: branches/multiview/libnautilus-private/nautilus-global-preferences.c
==============================================================================
--- branches/multiview/libnautilus-private/nautilus-global-preferences.c (original)
+++ branches/multiview/libnautilus-private/nautilus-global-preferences.c Fri May 30 20:46:51 2008
@@ -169,6 +169,11 @@
{ "informal", "Informal", NAUTILUS_DATE_FORMAT_INFORMAL }
};
+static EelEnumerationEntry new_tab_position_entries[] = {
+ { "after_current_tab", "After Current Tab", NAUTILUS_NEW_TAB_POSITION_AFTER_CURRENT_TAB },
+ { "end", "End", NAUTILUS_NEW_TAB_POSITION_END }
+};
+
/*
* A callback which can be used to fetch dynamic fallback values.
* For example, values that are dependent on the environment (such as user name)
@@ -331,6 +336,16 @@
PREFERENCE_BOOLEAN,
GINT_TO_POINTER (FALSE)
},
+ { NAUTILUS_PREFERENCES_ENABLE_TABS,
+ PREFERENCE_BOOLEAN,
+ GINT_TO_POINTER (TRUE)
+ },
+ { NAUTILUS_PREFERENCES_NEW_TAB_POSITION,
+ PREFERENCE_STRING,
+ "after_current_tab",
+ NULL, NULL,
+ "new_tab_position"
+ },
{ NAUTILUS_PREFERENCES_START_WITH_TOOLBAR,
PREFERENCE_BOOLEAN,
GINT_TO_POINTER (TRUE)
@@ -594,6 +609,9 @@
eel_enumeration_register ("date_format",
date_format_entries,
G_N_ELEMENTS (date_format_entries));
+ eel_enumeration_register ("new_tab_position",
+ new_tab_position_entries,
+ G_N_ELEMENTS (new_tab_position_entries));
/* Set the enumeration ids for preferences that need them */
for (i = 0; preference_defaults[i].name != NULL; i++) {
Modified: branches/multiview/libnautilus-private/nautilus-global-preferences.h
==============================================================================
--- branches/multiview/libnautilus-private/nautilus-global-preferences.h (original)
+++ branches/multiview/libnautilus-private/nautilus-global-preferences.h Fri May 30 20:46:51 2008
@@ -78,6 +78,12 @@
NAUTILUS_DATE_FORMAT_INFORMAL
} NautilusDateFormat;
+typedef enum
+{
+ NAUTILUS_NEW_TAB_POSITION_AFTER_CURRENT_TAB,
+ NAUTILUS_NEW_TAB_POSITION_END,
+} NautilusNewTabPosition;
+
/* Sidebar panels */
#define NAUTILUS_PREFERENCES_TREE_SHOW_ONLY_DIRECTORIES "sidebar_panels/tree/show_only_directories"
@@ -89,6 +95,8 @@
/* Spatial or browser mode */
#define NAUTILUS_PREFERENCES_ALWAYS_USE_BROWSER "preferences/always_use_browser"
+#define NAUTILUS_PREFERENCES_ENABLE_TABS "preferences/tabs_enable"
+#define NAUTILUS_PREFERENCES_NEW_TAB_POSITION "preferences/tabs_open_position"
/* Which views should be displayed for new windows */
#define NAUTILUS_PREFERENCES_START_WITH_LOCATION_BAR "preferences/start_with_location_bar"
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 Fri May 30 20:46:51 2008
@@ -3989,6 +3989,10 @@
g_assert (NAUTILUS_IS_FILE (data));
g_assert (FM_IS_DIRECTORY_VIEW (callback_data));
+ if (!eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ENABLE_TABS)) {
+ return;
+ }
+
fm_directory_view_activate_file (FM_DIRECTORY_VIEW (callback_data),
NAUTILUS_FILE (data),
NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE,
@@ -7198,7 +7202,8 @@
gtk_action_set_visible (action, show_open_alternate);
/* Open in New Tab action */
- if (nautilus_window_info_get_window_type (view->details->window) == NAUTILUS_WINDOW_NAVIGATION) {
+ if (nautilus_window_info_get_window_type (view->details->window) == NAUTILUS_WINDOW_NAVIGATION &&
+ eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ENABLE_TABS)) {
if (selection_count == 0 || selection_count == 1) {
label_with_underscore = g_strdup (_("Open in New Tab"));
} else {
Modified: branches/multiview/src/file-manager/fm-icon-view.c
==============================================================================
--- branches/multiview/src/file-manager/fm-icon-view.c (original)
+++ branches/multiview/src/file-manager/fm-icon-view.c Fri May 30 20:46:51 2008
@@ -1755,7 +1755,7 @@
}
flags = NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND;
- if (open_in_tab) {
+ if (open_in_tab && eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ENABLE_TABS)) {
flags |= NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB;
} else {
flags |= NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW;
Modified: branches/multiview/src/file-manager/nautilus-directory-view-ui.xml
==============================================================================
--- branches/multiview/src/file-manager/nautilus-directory-view-ui.xml (original)
+++ branches/multiview/src/file-manager/nautilus-directory-view-ui.xml Fri May 30 20:46:51 2008
@@ -17,8 +17,8 @@
</placeholder>
<placeholder name="Open Placeholder">
<menuitem name="Open" action="Open"/>
- <menuitem name="OpenAlternate" action="OpenAlternate"/>
<menuitem name="OpenInNewTab" action="OpenInNewTab"/>
+ <menuitem name="OpenAlternate" action="OpenAlternate"/>
<placeholder name="Applications Placeholder">
</placeholder>
<menu action="Open With">
Modified: branches/multiview/src/nautilus-actions.h
==============================================================================
--- branches/multiview/src/nautilus-actions.h (original)
+++ branches/multiview/src/nautilus-actions.h Fri May 30 20:46:51 2008
@@ -50,5 +50,7 @@
#define NAUTILUS_ACTION_CLOSE "Close"
#define NAUTILUS_ACTION_SEARCH "Search"
#define NAUTILUS_ACTION_FOLDER_WINDOW "Folder Window"
+#define NAUTILUS_ACTION_TABS "Tabs"
+#define NAUTILUS_ACTION_NEW_TAB "New Tab"
#endif /* NAUTILUS_ACTIONS_H */
Modified: branches/multiview/src/nautilus-navigation-window-menus.c
==============================================================================
--- branches/multiview/src/nautilus-navigation-window-menus.c (original)
+++ branches/multiview/src/nautilus-navigation-window-menus.c Fri May 30 20:46:51 2008
@@ -245,6 +245,23 @@
!eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ALWAYS_USE_BROWSER));
}
+void
+nautilus_navigation_window_update_tab_menu_item_visibility (NautilusNavigationWindow *window)
+{
+ GtkAction *action;
+
+ action = gtk_action_group_get_action (window->details->navigation_action_group,
+ NAUTILUS_ACTION_TABS);
+ gtk_action_set_visible (action,
+ eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ENABLE_TABS));
+
+ action = gtk_action_group_get_action (window->details->navigation_action_group,
+ NAUTILUS_ACTION_NEW_TAB);
+ gtk_action_set_visible (action,
+ eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ENABLE_TABS));
+
+}
+
static void
action_add_bookmark_callback (GtkAction *action,
gpointer user_data)
@@ -491,7 +508,13 @@
NautilusWindow *window;
NautilusWindowSlot *current_slot;
NautilusWindowSlot *new_slot;
+ NautilusWindowOpenFlags flags;
GFile *current_location;
+ int new_slot_position;
+
+ if (!eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ENABLE_TABS)) {
+ return;
+ }
window = NAUTILUS_WINDOW (user_data);
current_slot = window->details->active_slot;
@@ -500,7 +523,15 @@
window = NAUTILUS_WINDOW (current_slot->window);
if (current_location != NULL) {
- new_slot = nautilus_window_open_slot (window, 0);
+ flags = 0;
+
+ new_slot_position = eel_preferences_get_enum (NAUTILUS_PREFERENCES_NEW_TAB_POSITION);
+ if (new_slot_position == NAUTILUS_NEW_TAB_POSITION_END) {
+ flags = NAUTILUS_WINDOW_OPEN_SLOT_APPEND;
+ }
+
+
+ new_slot = nautilus_window_open_slot (window, flags);
nautilus_window_set_active_slot (window, new_slot);
nautilus_window_slot_go_to (new_slot, current_location);
g_object_unref (current_location);
@@ -742,6 +773,7 @@
nautilus_navigation_window_update_show_hide_menu_items (window);
nautilus_navigation_window_update_spatial_menu_item (window);
+ nautilus_navigation_window_update_tab_menu_item_visibility (window);
nautilus_navigation_window_initialize_go_menu (window);
nautilus_navigation_window_initialize_tabs_menu (window);
Modified: branches/multiview/src/nautilus-navigation-window-ui.xml
==============================================================================
--- branches/multiview/src/nautilus-navigation-window-ui.xml (original)
+++ branches/multiview/src/nautilus-navigation-window-ui.xml Fri May 30 20:46:51 2008
@@ -2,8 +2,8 @@
<menubar name="MenuBar">
<menu action="File">
<placeholder name="New Items Placeholder">
- <menuitem name="New Window" action="New Window"/>
<menuitem name="New Tab" action="New Tab"/>
+ <menuitem name="New Window" action="New Window"/>
<menuitem name="Folder Window" action="Folder Window"/>
<separator/>
</placeholder>
Modified: branches/multiview/src/nautilus-navigation-window.c
==============================================================================
--- branches/multiview/src/nautilus-navigation-window.c (original)
+++ branches/multiview/src/nautilus-navigation-window.c Fri May 30 20:46:51 2008
@@ -114,6 +114,7 @@
NautilusNavigationWindow *window);
static void always_use_location_entry_changed (gpointer callback_data);
static void always_use_browser_changed (gpointer callback_data);
+static void enable_tabs_changed (gpointer callback_data);
static void nautilus_navigation_window_set_bar_mode (NautilusNavigationWindow *window,
NautilusBarMode mode);
@@ -386,6 +387,10 @@
eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ALWAYS_USE_BROWSER,
always_use_browser_changed,
window, G_OBJECT (window));
+
+ eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ENABLE_TABS,
+ enable_tabs_changed,
+ window, G_OBJECT (window));
}
static void
@@ -423,6 +428,16 @@
nautilus_navigation_window_update_spatial_menu_item (window);
}
+static void
+enable_tabs_changed (gpointer callback_data)
+{
+ NautilusNavigationWindow *window;
+
+ window = NAUTILUS_NAVIGATION_WINDOW (callback_data);
+
+ nautilus_navigation_window_update_tab_menu_item_visibility (window);
+}
+
static int
bookmark_list_get_uri_index (GList *list,
GFile *location)
Modified: branches/multiview/src/nautilus-window-manage-views.c
==============================================================================
--- branches/multiview/src/nautilus-window-manage-views.c (original)
+++ branches/multiview/src/nautilus-window-manage-views.c Fri May 30 20:46:51 2008
@@ -488,9 +488,11 @@
NautilusWindow *window;
NautilusWindow *target_window;
NautilusWindowSlot *target_slot;
+ NautilusWindowOpenFlags slot_flags;
gboolean do_load_location = TRUE;
GFile *old_location;
char *old_uri, *new_uri;
+ int new_slot_position;
window = slot->window;
@@ -582,7 +584,15 @@
if ((flags & NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB) != 0 &&
NAUTILUS_IS_NAVIGATION_WINDOW (window)) {
g_assert (target_window == window);
- target_slot = nautilus_window_open_slot (window, 0);
+
+ slot_flags = 0;
+
+ new_slot_position = eel_preferences_get_enum (NAUTILUS_PREFERENCES_NEW_TAB_POSITION);
+ if (new_slot_position == NAUTILUS_NEW_TAB_POSITION_END) {
+ slot_flags = NAUTILUS_WINDOW_OPEN_SLOT_APPEND;
+ }
+
+ target_slot = nautilus_window_open_slot (window, slot_flags);
}
if ((flags & NAUTILUS_WINDOW_OPEN_FLAG_CLOSE_BEHIND) != 0) {
Modified: branches/multiview/src/nautilus-window-private.h
==============================================================================
--- branches/multiview/src/nautilus-window-private.h (original)
+++ branches/multiview/src/nautilus-window-private.h Fri May 30 20:46:51 2008
@@ -220,6 +220,7 @@
void nautilus_navigation_window_remove_bookmarks_menu_items (NautilusNavigationWindow *window);
void nautilus_navigation_window_update_show_hide_menu_items (NautilusNavigationWindow *window);
void nautilus_navigation_window_update_spatial_menu_item (NautilusNavigationWindow *window);
+void nautilus_navigation_window_update_tab_menu_item_visibility (NautilusNavigationWindow *window);
void nautilus_navigation_window_remove_go_menu_callback (NautilusNavigationWindow *window);
void nautilus_navigation_window_remove_go_menu_items (NautilusNavigationWindow *window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]