static void fill_menu (NemoWindow *window, GtkWidget *menu, gboolean back) { NemoWindowSlot *slot; GtkWidget *menu_item; int index; GList *list; slot = nemo_window_get_active_slot (window); list = back ? slot->back_list : slot->forward_list; index = 0; while (list != NULL) { menu_item = nemo_bookmark_menu_item_new (NEMO_BOOKMARK (list->data)); g_object_set_data (G_OBJECT (menu_item), "user_data", GINT_TO_POINTER (index)); gtk_widget_show (GTK_WIDGET (menu_item)); g_signal_connect_object (menu_item, "activate", back ? G_CALLBACK (activate_back_menu_item_callback) : G_CALLBACK (activate_forward_menu_item_callback), window, 0); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); list = g_list_next (list); ++index; } }
static void nemo_bookmark_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { NemoBookmark *self = NEMO_BOOKMARK (object); switch (property_id) { case PROP_NAME: g_value_set_string (value, self->details->name); break; case PROP_ICON_NAME: g_value_set_string (value, self->details->icon_name); break; case PROP_LOCATION: g_value_set_object (value, self->details->location); break; case PROP_CUSTOM_NAME: g_value_set_boolean (value, self->details->has_custom_name); break; case PROP_METADATA: g_value_set_pointer (value, self->details->metadata); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static void nemo_bookmark_constructed (GObject *obj) { NemoBookmark *self = NEMO_BOOKMARK (obj); nemo_bookmark_connect_file (self); }
static void nemo_bookmark_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { NemoBookmark *self = NEMO_BOOKMARK (object); GIcon *new_icon; switch (property_id) { case PROP_ICON: new_icon = g_value_get_object (value); if (new_icon != NULL && !g_icon_equal (self->details->icon, new_icon)) { g_clear_object (&self->details->icon); self->details->icon = g_object_ref (new_icon); } break; case PROP_LOCATION: self->details->location = g_value_dup_object (value); break; case PROP_CUSTOM_NAME: self->details->has_custom_name = g_value_get_boolean (value); break; case PROP_NAME: nemo_bookmark_set_name_internal (self, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static void stop_monitoring_one (gpointer data, gpointer user_data) { g_assert (NEMO_IS_BOOKMARK (data)); g_assert (NEMO_IS_BOOKMARK_LIST (user_data)); stop_monitoring_bookmark (NEMO_BOOKMARK_LIST (user_data), NEMO_BOOKMARK (data)); }
static void nemo_bookmark_finalize (GObject *object) { NemoBookmark *bookmark; g_assert (NEMO_IS_BOOKMARK (object)); bookmark = NEMO_BOOKMARK (object); nemo_bookmark_disconnect_file (bookmark); g_object_unref (bookmark->details->location); g_clear_object (&bookmark->details->icon); g_free (bookmark->details->name); g_free (bookmark->details->scroll_file); G_OBJECT_CLASS (nemo_bookmark_parent_class)->finalize (object); }
static void nemo_bookmark_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { NemoBookmark *self = NEMO_BOOKMARK (object); switch (property_id) { case PROP_ICON_NAME: ; const gchar *new_icon_name; new_icon_name = g_value_get_string (value); if (new_icon_name != NULL && g_strcmp0 (self->details->icon_name, new_icon_name) != 0) { g_clear_pointer (&self->details->icon_name, g_free); self->details->icon_name = g_strdup (new_icon_name); } break; case PROP_LOCATION: self->details->location = g_value_dup_object (value); break; case PROP_CUSTOM_NAME: self->details->has_custom_name = g_value_get_boolean (value); break; case PROP_NAME: nemo_bookmark_set_name_internal (self, g_value_get_string (value)); break; case PROP_METADATA: if (self->details->metadata) g_clear_pointer (&self->details->metadata, nemo_bookmark_metadata_free); self->details->metadata = g_value_get_pointer (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static int bookmark_list_get_uri_index (GList *list, GFile *location) { NemoBookmark *bookmark; GList *l; GFile *tmp; int i; g_return_val_if_fail (location != NULL, -1); for (i = 0, l = list; l != NULL; i++, l = l->next) { bookmark = NEMO_BOOKMARK (l->data); tmp = nemo_bookmark_get_location (bookmark); if (g_file_equal (location, tmp)) { g_object_unref (tmp); return i; } g_object_unref (tmp); } return -1; }