[gtk+/places-sidebar] Add gtkplacessidebar.[ch] to Makefile.am and fix compilation errors
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/places-sidebar] Add gtkplacessidebar.[ch] to Makefile.am and fix compilation errors
- Date: Thu, 17 Nov 2011 19:21:18 +0000 (UTC)
commit aa533792a9b87351e5e9f241ab0580270d03cb63
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Oct 6 09:20:32 2011 -0500
Add gtkplacessidebar.[ch] to Makefile.am and fix compilation errors
Signed-off-by: Federico Mena Quintero <federico gnome org>
gtk/Makefile.am | 2 +
gtk/gtk.h | 1 +
gtk/gtkplacessidebar.c | 87 ++++++++++++++++++++++++++++++++++--------------
3 files changed, 65 insertions(+), 25 deletions(-)
---
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index cb4e266..a7ea355 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -266,6 +266,7 @@ gtk_public_h_sources = \
gtkpagesetup.h \
gtkpaned.h \
gtkpapersize.h \
+ gtkplacessidebar.h \
gtkplug.h \
gtkprintcontext.h \
gtkprintoperation.h \
@@ -610,6 +611,7 @@ gtk_base_c_sources = \
gtkpango.c \
gtkpapersize.c \
gtkpathbar.c \
+ gtkplacessidebar.c \
gtkprintcontext.c \
gtkprintoperation.c \
gtkprintoperationpreview.c \
diff --git a/gtk/gtk.h b/gtk/gtk.h
index a2813e9..6755e94 100644
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
@@ -148,6 +148,7 @@
#include <gtk/gtkpagesetup.h>
#include <gtk/gtkpapersize.h>
#include <gtk/gtkpaned.h>
+#include <gtk/gtkplacessidebar.h>
#include <gtk/gtkprintcontext.h>
#include <gtk/gtkprintoperation.h>
#include <gtk/gtkprintoperationpreview.h>
diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c
index 68c3736..7a730ff 100644
--- a/gtk/gtkplacessidebar.c
+++ b/gtk/gtkplacessidebar.c
@@ -26,13 +26,26 @@
#include "config.h"
+#include <gio/gio.h>
+
#include "gdk/gdkkeysyms.h"
#include "gtkbookmarksmanager.h"
+#include "gtkcelllayout.h"
+#include "gtkcellrenderertext.h"
+#include "gtkcellrendererpixbuf.h"
+#include "gtkicontheme.h"
+#include "gtkimagemenuitem.h"
+#include "gtkintl.h"
+#include "gtkmain.h"
#include "gtkmarshalers.h"
+#include "gtkmenuitem.h"
+#include "gtkmountoperation.h"
#include "gtkplacessidebar.h"
#include "gtkscrolledwindow.h"
-#include "gtktreeview.h"
-#include <gio/gio.h>
+#include "gtkseparatormenuitem.h"
+#include "gtktreeselection.h"
+#include "gtktreednd.h"
+#include "gtkwindow.h"
#define EJECT_BUTTON_XPAD 6
#define ICON_CELL_XPAD 6
@@ -155,7 +168,7 @@ enum {
#define ICON_NAME_FOLDER_VIDEOS "folder-videos"
#define ICON_NAME_FOLDER_SAVED_SEARCH "folder-saved-search"
-static guint placess_sidebar_signals [LAST_SIGNAL] = { 0 };
+static guint places_sidebar_signals [LAST_SIGNAL] = { 0 };
static void open_selected_bookmark (GtkPlacesSidebar *sidebar,
GtkTreeModel *model,
@@ -287,7 +300,7 @@ get_eject_icon (GtkPlacesSidebar *sidebar,
NULL,
NULL);
- gtk_style_context_restore (context);
+ gtk_style_context_restore (style);
g_object_unref (icon);
gtk_icon_info_free (icon_info);
@@ -557,7 +570,8 @@ update_places (GtkPlacesSidebar *sidebar)
GVolume *volume;
GSList *bookmarks, *sl;
int index;
- char *mount_uri, *name, *desktop_path, *last_uri;
+ const char *desktop_path;
+ char *mount_uri, *name, *last_uri;
char *bookmark_name;
const gchar *path;
GIcon *icon;
@@ -714,7 +728,7 @@ update_places (GtkPlacesSidebar *sidebar)
bookmarks = _gtk_bookmarks_manager_list_bookmarks (sidebar->bookmarks_manager);
- for (sl = bookmarks; sl; sl = sl->next) {
+ for (sl = bookmarks, index = 0; sl; sl = sl->next, index++) {
root = sl->data;
#if 0
@@ -737,7 +751,7 @@ update_places (GtkPlacesSidebar *sidebar)
nautilus_file_unref (file);
#endif
- bookmark_name = _gtk_bookmarks_manager_get_bookmark_label (root);
+ bookmark_name = _gtk_bookmarks_manager_get_bookmark_label (sidebar->bookmarks_manager, root);
mount_uri = g_file_get_uri (root);
tooltip = g_file_get_parse_name (root);
icon = NULL; /* FIXME: icon = nautilus_bookmark_get_icon (bookmark); */
@@ -1402,7 +1416,9 @@ uri_list_from_selection (GList *selection)
static GList*
build_selection_list (const char *data)
{
+#if DO_NOT_COMPILE
NautilusDragSelectionItem *item;
+#endif
GList *result;
char **uris;
char *uri;
@@ -1834,10 +1850,13 @@ drive_start_from_bookmark_cb (GObject *source_object,
GAsyncResult *res,
gpointer user_data)
{
+ GtkPlacesSidebar *sidebar;
GError *error;
char *primary;
char *name;
+ sidebar = GTK_PLACES_SIDEBAR (user_data);
+
error = NULL;
if (!g_drive_poll_for_media_finish (G_DRIVE (source_object), res, &error)) {
if (error->code != G_IO_ERROR_FAILED_HANDLED) {
@@ -1867,8 +1886,6 @@ open_selected_bookmark (GtkPlacesSidebar *sidebar,
gtk_tree_model_get (model, iter, PLACES_SIDEBAR_COLUMN_URI, &uri, -1);
if (uri != NULL) {
- DEBUG ("Activating bookmark %s", uri);
-
location = g_file_new_for_uri (uri);
emit_location_selected (sidebar, location, open_mode);
@@ -1899,7 +1916,7 @@ open_selected_bookmark (GtkPlacesSidebar *sidebar,
GMountOperation *mount_op;
mount_op = gtk_mount_operation_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (sidebar))));
- g_drive_start (drive, G_DRIVE_START_NONE, mount_op, NULL, drive_start_from_bookmark_cb, NULL);
+ g_drive_start (drive, G_DRIVE_START_NONE, mount_op, NULL, drive_start_from_bookmark_cb, sidebar);
g_object_unref (mount_op);
}
@@ -1953,6 +1970,7 @@ open_shortcut_in_new_tab_cb (GtkMenuItem *item,
static void
add_bookmark (GtkPlacesSidebar *sidebar)
{
+#if DO_NOT_COMPILE
GtkTreeModel *model;
GtkTreeIter iter;
char *uri;
@@ -1979,6 +1997,7 @@ add_bookmark (GtkPlacesSidebar *sidebar)
g_object_unref (bookmark);
g_free (uri);
}
+#endif
}
static void
@@ -2031,6 +2050,7 @@ rename_shortcut_cb (GtkMenuItem *item,
static void
remove_selected_bookmarks (GtkPlacesSidebar *sidebar)
{
+#if DO_NOT_COMPILE
GtkTreeIter iter;
PlaceType type;
int index;
@@ -2052,6 +2072,7 @@ remove_selected_bookmarks (GtkPlacesSidebar *sidebar)
-1);
nautilus_bookmark_list_delete_item_at (sidebar->bookmarks, index);
+#endif
}
static void
@@ -2147,7 +2168,6 @@ drive_eject_cb (GObject *source_object,
sidebar = user_data;
emit_initiated_unmount (sidebar, FALSE);
- g_object_unref (sidebar);
error = NULL;
if (!g_drive_eject_with_operation_finish (G_DRIVE (source_object), res, &error)) {
@@ -2160,6 +2180,8 @@ drive_eject_cb (GObject *source_object,
}
g_error_free (error);
}
+
+ g_object_unref (sidebar);
}
static void
@@ -2174,7 +2196,6 @@ volume_eject_cb (GObject *source_object,
sidebar = user_data;
emit_initiated_unmount (sidebar, FALSE);
- g_object_unref (sidebar);
error = NULL;
if (!g_volume_eject_with_operation_finish (G_VOLUME (source_object), res, &error)) {
@@ -2187,6 +2208,8 @@ volume_eject_cb (GObject *source_object,
}
g_error_free (error);
}
+
+ g_object_unref (sidebar);
}
static void
@@ -2201,7 +2224,6 @@ mount_eject_cb (GObject *source_object,
sidebar = user_data;
emit_initiated_unmount (sidebar, FALSE);
- g_object_unref (sidebar);
error = NULL;
if (!g_mount_eject_with_operation_finish (G_MOUNT (source_object), res, &error)) {
@@ -2214,6 +2236,8 @@ mount_eject_cb (GObject *source_object,
}
g_error_free (error);
}
+
+ g_object_unref (sidebar);
}
static void
@@ -2340,10 +2364,13 @@ drive_poll_for_media_cb (GObject *source_object,
GAsyncResult *res,
gpointer user_data)
{
+ GtkPlacesSidebar *sidebar;
GError *error;
char *primary;
char *name;
+ sidebar = GTK_PLACES_SIDEBAR (user_data);
+
error = NULL;
if (!g_drive_poll_for_media_finish (G_DRIVE (source_object), res, &error)) {
if (error->code != G_IO_ERROR_FAILED_HANDLED) {
@@ -2355,6 +2382,8 @@ drive_poll_for_media_cb (GObject *source_object,
}
g_error_free (error);
}
+
+ /* FIXME: drive_stop_cb() gets a reffed sidebar, and unrefs it. Do we need to do the same here? */
}
static void
@@ -2373,7 +2402,7 @@ rescan_shortcut_cb (GtkMenuItem *item,
-1);
if (drive != NULL) {
- g_drive_poll_for_media (drive, NULL, drive_poll_for_media_cb, NULL);
+ g_drive_poll_for_media (drive, NULL, drive_poll_for_media_cb, sidebar);
}
g_object_unref (drive);
}
@@ -2383,10 +2412,13 @@ drive_start_cb (GObject *source_object,
GAsyncResult *res,
gpointer user_data)
{
+ GtkPlacesSidebar *sidebar;
GError *error;
char *primary;
char *name;
+ sidebar = GTK_PLACES_SIDEBAR (user_data);
+
error = NULL;
if (!g_drive_poll_for_media_finish (G_DRIVE (source_object), res, &error)) {
if (error->code != G_IO_ERROR_FAILED_HANDLED) {
@@ -2398,6 +2430,8 @@ drive_start_cb (GObject *source_object,
}
g_error_free (error);
}
+
+ /* FIXME: drive_stop_cb() gets a reffed sidebar, and unrefs it. Do we need to do the same here? */
}
static void
@@ -2420,7 +2454,7 @@ start_shortcut_cb (GtkMenuItem *item,
mount_op = gtk_mount_operation_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (sidebar))));
- g_drive_start (drive, G_DRIVE_START_NONE, mount_op, NULL, drive_start_cb, NULL);
+ g_drive_start (drive, G_DRIVE_START_NONE, mount_op, NULL, drive_start_cb, sidebar);
g_object_unref (mount_op);
}
@@ -2439,7 +2473,6 @@ drive_stop_cb (GObject *source_object,
sidebar = user_data;
emit_initiated_unmount (sidebar, FALSE);
- g_object_unref (sidebar);
error = NULL;
if (!g_drive_poll_for_media_finish (G_DRIVE (source_object), res, &error)) {
@@ -2452,6 +2485,8 @@ drive_stop_cb (GObject *source_object,
}
g_error_free (error);
}
+
+ g_object_unref (sidebar);
}
static void
@@ -2656,7 +2691,7 @@ bookmarks_build_popup_menu (GtkPlacesSidebar *sidebar)
G_CALLBACK (open_shortcut_in_new_tab_cb), sidebar);
gtk_menu_shell_append (GTK_MENU_SHELL (sidebar->popup_menu), item);
- if (settings->multiple_tabs_supported) {
+ if (sidebar->multiple_tabs_supported) {
gtk_widget_show (item);
}
@@ -2787,9 +2822,9 @@ bookmarks_popup_menu (GtkPlacesSidebar *sidebar,
NULL, /* popup_position_func */
NULL, /* popup_position_user_data */
button, /* button */
- event ? event->time : gtk_get_currrent_event_time ()); /* activate_time */
+ event ? event->time : gtk_get_current_event_time ()); /* activate_time */
- gtk_object_sink (GTK_OBJECT (menu));
+ g_object_ref_sink (sidebar->popup_menu); /* FIXME: is this right? It was gtk_object_sink() */
}
/* Callback used for the GtkWidget::popup-menu signal of the shortcuts list */
@@ -3006,6 +3041,7 @@ bookmarks_edited (GtkCellRenderer *cell,
gchar *new_text,
GtkPlacesSidebar *sidebar)
{
+#if DO_NOT_COMPILE
GtkTreePath *path;
GtkTreeIter iter;
NautilusBookmark *bookmark;
@@ -3024,6 +3060,7 @@ bookmarks_edited (GtkCellRenderer *cell,
if (bookmark != NULL) {
nautilus_bookmark_set_custom_name (bookmark, new_text);
}
+#endif
}
static void
@@ -3178,6 +3215,8 @@ create_volume_monitor (GtkPlacesSidebar *sidebar)
static void
bookmarks_changed_cb (gpointer data)
{
+ GtkPlacesSidebar *sidebar = GTK_PLACES_SIDEBAR (data);
+
update_places (sidebar);
}
@@ -3420,7 +3459,6 @@ gtk_places_sidebar_dispose (GObject *object)
sidebar = GTK_PLACES_SIDEBAR (object);
- sidebar->window = NULL;
sidebar->tree_view = NULL;
g_free (sidebar->uri);
@@ -3440,7 +3478,6 @@ gtk_places_sidebar_dispose (GObject *object)
g_clear_object (&sidebar->store);
g_clear_object (&sidebar->volume_monitor);
- g_clear_object (&sidebar->bookmarks);
g_clear_object (&sidebar->filter_model);
G_OBJECT_CLASS (gtk_places_sidebar_parent_class)->dispose (object);
@@ -3451,7 +3488,7 @@ gtk_places_sidebar_class_init (GtkPlacesSidebarClass *class)
{
GObjectClass *gobject_class;
- gobject_class = (GObjectClass *) places_sidebar_class;
+ gobject_class = (GObjectClass *) class;
gobject_class->dispose = gtk_places_sidebar_dispose;
@@ -3476,7 +3513,7 @@ gtk_places_sidebar_class_init (GtkPlacesSidebarClass *class)
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GtkPlacesSidebarClass, initiated_unmount),
NULL, NULL,
- gtk_marshal_VOID__BOOLEAN,
+ _gtk_marshal_VOID__BOOLEAN,
G_TYPE_NONE, 1,
G_TYPE_BOOLEAN);
@@ -3641,7 +3678,7 @@ gtk_places_sidebar_set_multiple_tabs_supported (GtkPlacesSidebar *sidebar, gbool
g_return_if_fail (GTK_IS_PLACES_SIDEBAR (sidebar));
sidebar->multiple_tabs_supported = !!supported;
- bookmarks_popup_menu_detach_cb (sidebar, NULL);
+ bookmarks_popup_menu_detach_cb (GTK_WIDGET (sidebar), NULL);
}
/**
@@ -3660,7 +3697,7 @@ gtk_places_sidebar_set_multiple_windows_supported (GtkPlacesSidebar *sidebar, gb
g_return_if_fail (GTK_IS_PLACES_SIDEBAR (sidebar));
sidebar->multiple_windows_supported = !!supported;
- bookmarks_popup_menu_detach_cb (sidebar, NULL);
+ bookmarks_popup_menu_detach_cb (GTK_WIDGET (sidebar), NULL);
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]