summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Neumair <cneumair@gnome.org>2008-07-21 15:52:56 +0000
committerChristian Neumair <cneumair@src.gnome.org>2008-07-21 15:52:56 +0000
commitd0b5ae2c7fa8566679aab1cd3146c723d464a67a (patch)
tree14b0c954aa5a59586df2adcf94d9a06fda12a940
parent77e9051628b23a1599f8bf693f434c28c04b415c (diff)
downloadnautilus-d0b5ae2c7fa8566679aab1cd3146c723d464a67a.tar.gz
Add "Open in New Tab" item to location popup, and consolidate labels in
2008-07-21 Christian Neumair <cneumair@gnome.org> * src/file-manager/fm-actions.h: * src/file-manager/fm-directory-view.c (action_location_open_alternate_callback), (action_location_open_in_new_tab_callback), (real_update_location_menu), (real_update_menus): * src/file-manager/nautilus-directory-view-ui.xml: Add "Open in New Tab" item to location popup, and consolidate labels in case both spatial and browser mode are available. svn path=/trunk/; revision=14396
-rw-r--r--ChangeLog11
-rw-r--r--src/file-manager/fm-actions.h1
-rw-r--r--src/file-manager/fm-directory-view.c76
-rw-r--r--src/file-manager/nautilus-directory-view-ui.xml1
4 files changed, 81 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index a9e410c54..001e603f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2008-07-21 Christian Neumair <cneumair@gnome.org>
+ * src/file-manager/fm-actions.h:
+ * src/file-manager/fm-directory-view.c
+ (action_location_open_alternate_callback),
+ (action_location_open_in_new_tab_callback),
+ (real_update_location_menu), (real_update_menus):
+ * src/file-manager/nautilus-directory-view-ui.xml:
+ Add "Open in New Tab" item to location popup, and consolidate labels in
+ case both spatial and browser mode are available.
+
+2008-07-21 Christian Neumair <cneumair@gnome.org>
+
* NEWS:
Update for release.
diff --git a/src/file-manager/fm-actions.h b/src/file-manager/fm-actions.h
index 90cbcccbb..57bc10c66 100644
--- a/src/file-manager/fm-actions.h
+++ b/src/file-manager/fm-actions.h
@@ -30,6 +30,7 @@
#define FM_ACTION_OPEN_IN_NEW_TAB "OpenInNewTab"
#define FM_ACTION_OPEN_FOLDER_WINDOW "OpenFolderWindow"
#define FM_ACTION_LOCATION_OPEN_ALTERNATE "LocationOpenAlternate"
+#define FM_ACTION_LOCATION_OPEN_IN_NEW_TAB "LocationOpenInNewTab"
#define FM_ACTION_LOCATION_OPEN_FOLDER_WINDOW "LocationOpenFolderWindow"
#define FM_ACTION_OTHER_APPLICATION1 "OtherApplication1"
#define FM_ACTION_OTHER_APPLICATION2 "OtherApplication2"
diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c
index f2703ba75..ea064e5d7 100644
--- a/src/file-manager/fm-directory-view.c
+++ b/src/file-manager/fm-directory-view.c
@@ -6283,8 +6283,10 @@ action_location_open_alternate_callback (GtkAction *action,
view = FM_DIRECTORY_VIEW (callback_data);
- file = view->details->directory_as_file;
- g_return_if_fail (file != NULL);
+ file = view->details->location_popup_directory_as_file;
+ if (file == NULL) {
+ return;
+ }
fm_directory_view_activate_file (view,
file,
@@ -6293,6 +6295,26 @@ action_location_open_alternate_callback (GtkAction *action,
}
static void
+action_location_open_in_new_tab_callback (GtkAction *action,
+ gpointer callback_data)
+{
+ FMDirectoryView *view;
+ NautilusFile *file;
+
+ view = FM_DIRECTORY_VIEW (callback_data);
+
+ file = view->details->location_popup_directory_as_file;
+ if (file == NULL) {
+ return;
+ }
+
+ fm_directory_view_activate_file (view,
+ file,
+ NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE,
+ NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB);
+}
+
+static void
action_location_open_folder_window_callback (GtkAction *action,
gpointer callback_data)
{
@@ -6697,6 +6719,10 @@ static const GtkActionEntry directory_view_entries[] = {
/* label, accelerator */ N_("Open in Navigation Window"), "",
/* tooltip */ N_("Open this folder in a navigation window"),
G_CALLBACK (action_location_open_alternate_callback) },
+ /* name, stock id */ { FM_ACTION_LOCATION_OPEN_IN_NEW_TAB, NULL,
+ /* label, accelerator */ N_("Open in New _Tab"), "",
+ /* tooltip */ N_("Open this folder in a new tab"),
+ G_CALLBACK (action_location_open_in_new_tab_callback) },
/* name, stock id */ { FM_ACTION_LOCATION_OPEN_FOLDER_WINDOW, NULL,
/* label, accelerator */ N_("Open in _Folder Window"), "",
@@ -7330,10 +7356,13 @@ real_update_location_menu (FMDirectoryView *view)
gboolean can_delete_file, show_delete;
gboolean show_separate_delete_command;
gboolean show_open_folder_window;
+ gboolean show_open_in_new_tab;
char *label;
char *tip;
show_open_folder_window = FALSE;
+ show_open_in_new_tab = FALSE;
+
if (nautilus_window_info_get_window_type (view->details->window) == NAUTILUS_WINDOW_NAVIGATION) {
if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ALWAYS_USE_BROWSER)) {
label = _("Open in New _Window");
@@ -7341,6 +7370,10 @@ real_update_location_menu (FMDirectoryView *view)
label = _("Browse in New _Window");
show_open_folder_window = TRUE;
}
+
+ if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ENABLE_TABS)) {
+ show_open_in_new_tab = TRUE;
+ }
} else {
label = g_strdup (ngettext ("_Browse Folder",
"_Browse Folders", 1));
@@ -7352,6 +7385,21 @@ real_update_location_menu (FMDirectoryView *view)
NULL);
action = gtk_action_group_get_action (view->details->dir_action_group,
+ FM_ACTION_LOCATION_OPEN_IN_NEW_TAB);
+ gtk_action_set_visible (action, show_open_in_new_tab);
+
+ if (show_open_in_new_tab) {
+ if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ALWAYS_USE_BROWSER)) {
+ label = _("Open in New _Tab");
+ } else {
+ label = _("Browse in New _Tab");
+ }
+ g_object_set (action,
+ "label", label,
+ NULL);
+ }
+
+ action = gtk_action_group_get_action (view->details->dir_action_group,
FM_ACTION_LOCATION_OPEN_FOLDER_WINDOW);
gtk_action_set_visible (action, show_open_folder_window);
@@ -7606,13 +7654,25 @@ real_update_menus (FMDirectoryView *view)
/* Open in New Tab action */
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"));
+
+ if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ALWAYS_USE_BROWSER)) {
+ if (selection_count == 0 || selection_count == 1) {
+ label_with_underscore = g_strdup (_("Open in New _Tab"));
+ } else {
+ label_with_underscore = g_strdup_printf (ngettext("Open in %'d New _Tab",
+ "Open in %'d New _Tabs",
+ selection_count),
+ selection_count);
+ }
} else {
- label_with_underscore = g_strdup_printf (ngettext("Open in %'d New _Tab",
- "Open in %'d New _Tabs",
- selection_count),
- selection_count);
+ if (selection_count == 0 || selection_count == 1) {
+ label_with_underscore = g_strdup (_("Browse in New _Tab"));
+ } else {
+ label_with_underscore = g_strdup_printf (ngettext("Browse in %'d New _Tab",
+ "Browse in %'d New _Tabs",
+ selection_count),
+ selection_count);
+ }
}
action = gtk_action_group_get_action (view->details->dir_action_group,
FM_ACTION_OPEN_IN_NEW_TAB);
diff --git a/src/file-manager/nautilus-directory-view-ui.xml b/src/file-manager/nautilus-directory-view-ui.xml
index acf20dee6..dce7d2d06 100644
--- a/src/file-manager/nautilus-directory-view-ui.xml
+++ b/src/file-manager/nautilus-directory-view-ui.xml
@@ -172,6 +172,7 @@
</popup>
<popup name="location">
<placeholder name="Open Placeholder">
+ <menuitem name="LocationOpenInNewTab" action="LocationOpenInNewTab"/>
<menuitem name="LocationOpenAlternate" action="LocationOpenAlternate"/>
<menuitem name="LocationOpenFolderWindow" action="LocationOpenFolderWindow"/>
</placeholder>