forked from AuroraMiddleware/gtk
Add set_show_properties and set_show_trash APIs
Currently they default to false. This also fixes warnings with uninitialized widgets in bookmarks_check_popup_sensitivity(). Signed-off-by: Federico Mena Quintero <federico@gnome.org>
This commit is contained in:
parent
992602e106
commit
caf659e791
@ -114,6 +114,8 @@ struct _GtkPlacesSidebar {
|
|||||||
guint multiple_tabs_supported : 1;
|
guint multiple_tabs_supported : 1;
|
||||||
guint multiple_windows_supported : 1;
|
guint multiple_windows_supported : 1;
|
||||||
guint show_desktop : 1;
|
guint show_desktop : 1;
|
||||||
|
guint show_properties : 1;
|
||||||
|
guint show_trash : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GtkPlacesSidebarClass {
|
struct _GtkPlacesSidebarClass {
|
||||||
@ -705,14 +707,16 @@ update_places (GtkPlacesSidebar *sidebar)
|
|||||||
/* XDG directories */
|
/* XDG directories */
|
||||||
add_special_dirs (sidebar);
|
add_special_dirs (sidebar);
|
||||||
|
|
||||||
mount_uri = "trash:///"; /* No need to strdup */
|
if (sidebar->show_trash) {
|
||||||
icon = g_themed_icon_new (ICON_NAME_TRASH);
|
mount_uri = "trash:///"; /* No need to strdup */
|
||||||
add_place (sidebar, PLACES_BUILT_IN,
|
icon = g_themed_icon_new (ICON_NAME_TRASH);
|
||||||
SECTION_COMPUTER,
|
add_place (sidebar, PLACES_BUILT_IN,
|
||||||
_("Trash"), icon, mount_uri,
|
SECTION_COMPUTER,
|
||||||
NULL, NULL, NULL, 0,
|
_("Trash"), icon, mount_uri,
|
||||||
_("Open the trash"));
|
NULL, NULL, NULL, 0,
|
||||||
g_object_unref (icon);
|
_("Open the trash"));
|
||||||
|
g_object_unref (icon);
|
||||||
|
}
|
||||||
|
|
||||||
/* go through all connected drives */
|
/* go through all connected drives */
|
||||||
drives = g_volume_monitor_get_connected_drives (volume_monitor);
|
drives = g_volume_monitor_get_connected_drives (volume_monitor);
|
||||||
@ -1702,9 +1706,6 @@ bookmarks_check_popup_sensitivity (GtkPlacesSidebar *sidebar)
|
|||||||
GVolume *volume = NULL;
|
GVolume *volume = NULL;
|
||||||
GMount *mount = NULL;
|
GMount *mount = NULL;
|
||||||
GFile *location;
|
GFile *location;
|
||||||
#if DO_NOT_COMPILE
|
|
||||||
NautilusDirectory *directory;
|
|
||||||
#endif
|
|
||||||
gboolean show_mount;
|
gboolean show_mount;
|
||||||
gboolean show_unmount;
|
gboolean show_unmount;
|
||||||
gboolean show_eject;
|
gboolean show_eject;
|
||||||
@ -1742,28 +1743,22 @@ bookmarks_check_popup_sensitivity (GtkPlacesSidebar *sidebar)
|
|||||||
check_visibility (mount, volume, drive,
|
check_visibility (mount, volume, drive,
|
||||||
&show_mount, &show_unmount, &show_eject, &show_rescan, &show_start, &show_stop);
|
&show_mount, &show_unmount, &show_eject, &show_rescan, &show_start, &show_stop);
|
||||||
|
|
||||||
/* We actually want both eject and unmount since eject will unmount all volumes.
|
if (sidebar->show_trash) {
|
||||||
* TODO: hide unmount if the drive only has a single mountable volume
|
show_empty_trash = ((uri != NULL) &&
|
||||||
*/
|
(!strcmp (uri, "trash:///")));
|
||||||
|
} else
|
||||||
|
show_empty_trash = FALSE;
|
||||||
|
|
||||||
show_empty_trash = (uri != NULL) &&
|
|
||||||
(!strcmp (uri, "trash:///"));
|
|
||||||
|
|
||||||
#if DO_NOT_COMPILE
|
|
||||||
/* Only show properties for local mounts */
|
/* Only show properties for local mounts */
|
||||||
show_properties = (mount != NULL);
|
if (sidebar->show_properties) {
|
||||||
if (mount != NULL) {
|
show_properties = (mount != NULL);
|
||||||
location = g_mount_get_default_location (mount);
|
if (mount != NULL) {
|
||||||
directory = nautilus_directory_get (location);
|
location = g_mount_get_default_location (mount);
|
||||||
|
show_properties = g_file_is_native (location);
|
||||||
show_properties = nautilus_directory_is_local (directory);
|
g_object_unref (location);
|
||||||
|
}
|
||||||
nautilus_directory_unref (directory);
|
} else
|
||||||
g_object_unref (location);
|
show_properties = FALSE;
|
||||||
}
|
|
||||||
#else
|
|
||||||
show_properties = FALSE;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
gtk_widget_set_visible (sidebar->popup_menu_separator_item,
|
gtk_widget_set_visible (sidebar->popup_menu_separator_item,
|
||||||
show_mount || show_unmount || show_eject || show_empty_trash);
|
show_mount || show_unmount || show_eject || show_empty_trash);
|
||||||
@ -2545,14 +2540,14 @@ stop_shortcut_cb (GtkMenuItem *item,
|
|||||||
g_object_unref (drive);
|
g_object_unref (drive);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DO_NOT_COMPILE
|
|
||||||
static void
|
static void
|
||||||
empty_trash_cb (GtkMenuItem *item,
|
empty_trash_cb (GtkMenuItem *item,
|
||||||
GtkPlacesSidebar *sidebar)
|
GtkPlacesSidebar *sidebar)
|
||||||
{
|
{
|
||||||
|
#if DO_NOT_COMPILE
|
||||||
nautilus_file_operations_empty_trash (GTK_WIDGET (sidebar->window));
|
nautilus_file_operations_empty_trash (GTK_WIDGET (sidebar->window));
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
find_prev_or_next_row (GtkPlacesSidebar *sidebar,
|
find_prev_or_next_row (GtkPlacesSidebar *sidebar,
|
||||||
@ -2856,20 +2851,18 @@ bookmarks_build_popup_menu (GtkPlacesSidebar *sidebar)
|
|||||||
gtk_widget_show (item);
|
gtk_widget_show (item);
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (sidebar->popup_menu), item);
|
gtk_menu_shell_append (GTK_MENU_SHELL (sidebar->popup_menu), item);
|
||||||
|
|
||||||
#if DO_NOT_COMPILE
|
|
||||||
/* Empty Trash menu item */
|
/* Empty Trash menu item */
|
||||||
|
|
||||||
item = gtk_menu_item_new_with_mnemonic (_("Empty _Trash"));
|
item = gtk_menu_item_new_with_mnemonic (_("Empty _Trash"));
|
||||||
sidebar->popup_menu_empty_trash_item = item;
|
sidebar->popup_menu_empty_trash_item = item;
|
||||||
g_signal_connect (item, "activate",
|
g_signal_connect (item, "activate",
|
||||||
G_CALLBACK (empty_trash_cb), sidebar);
|
G_CALLBACK (empty_trash_cb), sidebar);
|
||||||
gtk_widget_show (item);
|
gtk_widget_show (item);
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (sidebar->popup_menu), item);
|
gtk_menu_shell_append (GTK_MENU_SHELL (sidebar->popup_menu), item);
|
||||||
|
|
||||||
/* Properties menu item */
|
/* Properties menu item */
|
||||||
|
|
||||||
sidebar->popup_menu_properties_separator_item =
|
sidebar->popup_menu_properties_separator_item = GTK_WIDGET (append_menu_separator (GTK_MENU (sidebar->popup_menu)));
|
||||||
GTK_WIDGET (eel_gtk_menu_append_separator (GTK_MENU (sidebar->popup_menu)));
|
|
||||||
|
|
||||||
item = gtk_menu_item_new_with_mnemonic (_("_Properties"));
|
item = gtk_menu_item_new_with_mnemonic (_("_Properties"));
|
||||||
sidebar->popup_menu_properties_item = item;
|
sidebar->popup_menu_properties_item = item;
|
||||||
@ -2878,8 +2871,6 @@ bookmarks_build_popup_menu (GtkPlacesSidebar *sidebar)
|
|||||||
gtk_widget_show (item);
|
gtk_widget_show (item);
|
||||||
gtk_menu_shell_append (GTK_MENU_SHELL (sidebar->popup_menu), item);
|
gtk_menu_shell_append (GTK_MENU_SHELL (sidebar->popup_menu), item);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bookmarks_check_popup_sensitivity (sidebar);
|
bookmarks_check_popup_sensitivity (sidebar);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3817,3 +3808,22 @@ gtk_places_sidebar_set_show_desktop (GtkPlacesSidebar *sidebar, gboolean show_de
|
|||||||
sidebar->show_desktop = !!show_desktop;
|
sidebar->show_desktop = !!show_desktop;
|
||||||
update_places (sidebar);
|
update_places (sidebar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gtk_places_sidebar_set_show_properties (GtkPlacesSidebar *sidebar, gboolean show_properties)
|
||||||
|
{
|
||||||
|
g_return_if_fail (GTK_IS_PLACES_SIDEBAR (sidebar));
|
||||||
|
|
||||||
|
sidebar->show_properties = !!show_properties;
|
||||||
|
bookmarks_check_popup_sensitivity (sidebar);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gtk_places_sidebar_set_show_trash (GtkPlacesSidebar *sidebar, gboolean show_trash)
|
||||||
|
{
|
||||||
|
g_return_if_fail (GTK_IS_PLACES_SIDEBAR (sidebar));
|
||||||
|
|
||||||
|
sidebar->show_trash = !!show_trash;
|
||||||
|
update_places (sidebar);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -62,6 +62,10 @@ void gtk_places_sidebar_set_multiple_windows_supported (GtkPlacesSidebar *sideba
|
|||||||
|
|
||||||
void gtk_places_sidebar_set_show_desktop (GtkPlacesSidebar *sidebar, gboolean show_desktop);
|
void gtk_places_sidebar_set_show_desktop (GtkPlacesSidebar *sidebar, gboolean show_desktop);
|
||||||
|
|
||||||
|
void gtk_places_sidebar_set_show_properties (GtkPlacesSidebar *sidebar, gboolean show_properties);
|
||||||
|
|
||||||
|
void gtk_places_sidebar_set_show_trash (GtkPlacesSidebar *sidebar, gboolean show_trash);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GTK_PLACES_SIDEBAR_H__ */
|
#endif /* __GTK_PLACES_SIDEBAR_H__ */
|
||||||
|
Loading…
Reference in New Issue
Block a user