49
49
#include "nautilus-application.h"
50
50
#include "nautilus-bookmark-list.h"
51
51
#include "nautilus-places-sidebar.h"
52
#include "nautilus-properties-window.h"
52
53
#include "nautilus-window.h"
53
54
#include "nautilus-window-slot.h"
91
92
GtkWidget *popup_menu_empty_trash_item;
92
93
GtkWidget *popup_menu_start_item;
93
94
GtkWidget *popup_menu_stop_item;
95
GtkWidget *popup_menu_properties_separator_item;
96
GtkWidget *popup_menu_properties_item;
95
98
/* volume mounting - delayed open process */
269
should_show_desktop (void)
271
return g_settings_get_boolean (gnome_background_preferences, NAUTILUS_PREFERENCES_SHOW_DESKTOP) &&
272
!g_settings_get_boolean (nautilus_preferences, NAUTILUS_PREFERENCES_DESKTOP_IS_HOME_DIR);
266
276
is_built_in_bookmark (NautilusFile *file)
268
278
gboolean built_in;
675
689
&last_iter, &select_path);
676
690
g_free (mount_uri);
678
if (g_settings_get_boolean (gnome_background_preferences, NAUTILUS_PREFERENCES_SHOW_DESKTOP) &&
679
!g_settings_get_boolean (nautilus_preferences, NAUTILUS_PREFERENCES_DESKTOP_IS_HOME_DIR)) {
692
if (should_show_desktop ()) {
681
694
desktop_path = nautilus_get_desktop_directory ();
682
695
mount_uri = g_filename_to_uri (desktop_path, NULL, NULL);
1570
1581
sidebar->popup_menu_start_item = NULL;
1571
1582
sidebar->popup_menu_stop_item = NULL;
1572
1583
sidebar->popup_menu_empty_trash_item = NULL;
1584
sidebar->popup_menu_properties_separator_item = NULL;
1585
sidebar->popup_menu_properties_item = NULL;
1681
1697
show_empty_trash = (uri != NULL) &&
1682
1698
(!strcmp (uri, "trash:///"));
1700
/* Only show properties for local mounts */
1701
show_properties = (mount != NULL);
1702
if (mount != NULL) {
1703
location = g_mount_get_default_location (mount);
1704
directory = nautilus_directory_get (location);
1706
show_properties = nautilus_directory_is_local (directory);
1708
nautilus_directory_unref (directory);
1709
g_object_unref (location);
1684
1712
gtk_widget_set_visible (sidebar->popup_menu_separator_item,
1685
1713
show_mount || show_unmount || show_eject || show_empty_trash);
1686
1714
gtk_widget_set_visible (sidebar->popup_menu_mount_item, show_mount);
1690
1718
gtk_widget_set_visible (sidebar->popup_menu_start_item, show_start);
1691
1719
gtk_widget_set_visible (sidebar->popup_menu_stop_item, show_stop);
1692
1720
gtk_widget_set_visible (sidebar->popup_menu_empty_trash_item, show_empty_trash);
1721
gtk_widget_set_visible (sidebar->popup_menu_properties_separator_item, show_properties);
1722
gtk_widget_set_visible (sidebar->popup_menu_properties_item, show_properties);
1694
1724
/* Adjust start/stop items to reflect the type of the drive */
1695
1725
gtk_menu_item_set_label (GTK_MENU_ITEM (sidebar->popup_menu_start_item), _("_Start"));
1877
1907
NautilusWindowOpenFlags flags)
1879
1909
GtkTreeModel *model;
1881
1910
GtkTreeIter iter;
1911
GtkTreePath *path = NULL;
1883
1913
model = gtk_tree_view_get_model (sidebar->tree_view);
1884
1914
gtk_tree_view_get_cursor (sidebar->tree_view, &path, NULL);
1886
gtk_tree_model_get_iter (model, &iter, path);
1888
open_selected_bookmark (sidebar, model, &iter, flags);
1916
if (path != NULL && gtk_tree_model_get_iter (model, &iter, path)) {
1917
open_selected_bookmark (sidebar, model, &iter, flags);
1890
1920
gtk_tree_path_free (path);
2500
2530
return find_prev_or_next_row (sidebar, iter, FALSE);
2534
properties_cb (GtkMenuItem *item,
2535
NautilusPlacesSidebar *sidebar)
2537
GtkTreeModel *model;
2538
GtkTreePath *path = NULL;
2544
model = gtk_tree_view_get_model (sidebar->tree_view);
2545
gtk_tree_view_get_cursor (sidebar->tree_view, &path, NULL);
2547
if (path == NULL || !gtk_tree_model_get_iter (model, &iter, path)) {
2548
gtk_tree_path_free (path);
2552
gtk_tree_model_get (model, &iter, PLACES_SIDEBAR_COLUMN_URI, &uri, -1);
2556
file = nautilus_file_get_by_uri (uri);
2557
list = g_list_prepend (NULL, nautilus_file_ref (file));
2559
nautilus_properties_window_present (list, GTK_WIDGET (sidebar), NULL);
2561
nautilus_file_list_free (list);
2565
gtk_tree_path_free (path);
2503
2568
/* Handler for GtkWidget::key-press-event on the shortcuts list */
2504
2569
static gboolean
2505
2570
bookmarks_key_press_event_cb (GtkWidget *widget,
2699
2764
gtk_widget_show (item);
2700
2765
gtk_menu_shell_append (GTK_MENU_SHELL (sidebar->popup_menu), item);
2767
/* Properties menu item */
2769
sidebar->popup_menu_properties_separator_item =
2770
GTK_WIDGET (eel_gtk_menu_append_separator (GTK_MENU (sidebar->popup_menu)));
2772
item = gtk_menu_item_new_with_mnemonic (_("_Properties"));
2773
sidebar->popup_menu_properties_item = item;
2774
g_signal_connect (item, "activate",
2775
G_CALLBACK (properties_cb), sidebar);
2776
gtk_widget_show (item);
2777
gtk_menu_shell_append (GTK_MENU_SHELL (sidebar->popup_menu), item);
2702
2779
bookmarks_check_popup_sensitivity (sidebar);
2715
2792
bookmarks_update_popup_menu (sidebar);
2716
2793
eel_pop_up_context_menu (GTK_MENU(sidebar->popup_menu),
2717
EEL_DEFAULT_POPUP_MENU_DISPLACEMENT,
2718
EEL_DEFAULT_POPUP_MENU_DISPLACEMENT,
2722
2797
/* Callback used for the GtkWidget::popup-menu signal of the shortcuts list */
2882
2957
bookmarks_button_press_event_cb (GtkWidget *widget,
2883
2958
GdkEventButton *event,
2884
2959
NautilusPlacesSidebar *sidebar)
2962
GtkTreeModel *model;
2963
GtkTreeView *tree_view;
2965
GtkTreePath *path = NULL;
2966
gboolean retval = FALSE;
2886
2968
if (event->type != GDK_BUTTON_PRESS) {
2887
2969
/* ignore multiple clicks */
2973
tree_view = GTK_TREE_VIEW (widget);
2974
model = gtk_tree_view_get_model (tree_view);
2975
gtk_tree_view_get_path_at_pos (tree_view, (int) event->x, (int) event->y,
2976
&path, NULL, NULL, NULL);
2978
if (path == NULL || !gtk_tree_model_get_iter (model, &iter, path)) {
2891
2982
if (event->button == 3) {
2892
2983
bookmarks_popup_menu (sidebar, event);
2893
2984
} else if (event->button == 2) {
2894
GtkTreeModel *model;
2897
GtkTreeView *tree_view;
2898
2985
NautilusWindowOpenFlags flags = 0;
2901
tree_view = GTK_TREE_VIEW (widget);
2902
g_assert (tree_view == sidebar->tree_view);
2904
model = gtk_tree_view_get_model (tree_view);
2906
res = gtk_tree_view_get_path_at_pos (tree_view, (int) event->x, (int) event->y,
2907
&path, NULL, NULL, NULL);
2913
gtk_tree_model_get_iter (model, &iter, path);
2915
2987
if (g_settings_get_boolean (nautilus_preferences,
2916
2988
NAUTILUS_PREFERENCES_ALWAYS_USE_BROWSER)) {
2924
2996
open_selected_bookmark (sidebar, model, &iter, flags);
2927
gtk_tree_path_free (path);
3000
gtk_tree_path_free (path);