enum {
PROP_0,
PROP_MODEL,
+ PROP_WIDGET,
};
case PROP_MODEL:
g_value_set_object (value, ev_sidebar_links->priv->model);
break;
+ case PROP_WIDGET:
+ g_value_set_object (value, ev_sidebar_links->priv->tree_view);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
{
EvSidebarLinks *sidebar = EV_SIDEBAR_LINKS (object);
- if (sidebar->priv->document) {
- g_object_unref (sidebar->priv->document);
- sidebar->priv->document = NULL;
- sidebar->priv->page_cache = NULL;
- }
-
if (sidebar->priv->job) {
g_signal_handlers_disconnect_by_func (sidebar->priv->job,
job_finished_callback, sidebar);
sidebar->priv->job = NULL;
}
+ if (sidebar->priv->model) {
+ g_object_unref (sidebar->priv->model);
+ sidebar->priv->model = NULL;
+ }
+
+ if (sidebar->priv->document) {
+ g_object_unref (sidebar->priv->document);
+ sidebar->priv->document = NULL;
+ sidebar->priv->page_cache = NULL;
+ }
+
+
G_OBJECT_CLASS (ev_sidebar_links_parent_class)->dispose (object);
}
"Current Model",
GTK_TYPE_TREE_MODEL,
G_PARAM_READWRITE));
+ g_object_class_override_property (g_object_class,
+ PROP_WIDGET,
+ "main-widget");
g_type_class_add_private (g_object_class, sizeof (EvSidebarLinksPrivate));
}
ev_page_cache_set_link (ev_sidebar_links->priv->page_cache, link);
g_signal_handler_unblock (ev_sidebar_links->priv->page_cache,
ev_sidebar_links->priv->page_changed_id);
+
+ g_object_unref (link);
}
}
-1);
first_page = ev_link_get_page (link) + 1;
+ if (link)
+ g_object_unref (link);
+
if (gtk_tree_model_iter_next (model, &iter)) {
gtk_tree_model_get (model, &iter,
EV_DOCUMENT_LINKS_COLUMN_LINK, &link,
-1);
last_page = ev_link_get_page (link);
+
+ if (link)
+ g_object_unref (link);
} else {
last_page = -1;
}
"visible", FALSE,
NULL);
}
+
+ if (link)
+ g_object_unref (link);
}
/* Public Functions */
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (sidebar_links->priv->tree_view));
gtk_tree_selection_select_path (selection, path);
-
+
+ g_object_unref (link);
return TRUE;
}
}
+
+ if (link)
+ g_object_unref (link);
return FALSE;
}
expand_open_links (GtkTreeView *tree_view, GtkTreeModel *model, GtkTreeIter *parent)
{
GtkTreeIter iter;
- EvLink *link;
gboolean expand;
if (gtk_tree_model_iter_children (model, &iter, parent)) {
do {
gtk_tree_model_get (model, &iter,
- EV_DOCUMENT_LINKS_COLUMN_LINK, &link,
EV_DOCUMENT_LINKS_COLUMN_EXPAND, &expand,
-1);
if (expand) {
GtkTreeSelection *selection;
priv = sidebar_links->priv;
-
- priv->model = g_object_ref (job->model);
+
+ priv->model = job->model;
g_object_notify (G_OBJECT (sidebar_links), "model");
gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), job->model);
+
g_object_unref (job);
priv->job = NULL;
return _("Index");
}
-GtkWidget *
-ev_sidebar_links_get_treeview (EvSidebarLinks *sidebar)
-{
- return sidebar->priv->tree_view;
-}
-
static void
ev_sidebar_links_page_iface_init (EvSidebarPageIface *iface)
{