aboutsummaryrefslogtreecommitdiff
path: root/liblogdiag/ld-category-symbol-view.c
diff options
context:
space:
mode:
authorPřemysl Janouch <p.janouch@gmail.com>2012-09-09 16:39:36 +0200
committerPřemysl Janouch <p.janouch@gmail.com>2012-10-08 07:29:58 +0200
commit09d6bda3db6ba986dad3dd4150e502ef664d6812 (patch)
tree9483fd1f5b1f68ade1902adfdb3afac68ef0e98c /liblogdiag/ld-category-symbol-view.c
parent15d8c257d11a2c16094e644d9d609614b39b8b09 (diff)
downloadlogdiag-09d6bda3db6ba986dad3dd4150e502ef664d6812.tar.gz
logdiag-09d6bda3db6ba986dad3dd4150e502ef664d6812.tar.xz
logdiag-09d6bda3db6ba986dad3dd4150e502ef664d6812.zip
Add ld_category_get_path() and use it.
Diffstat (limited to 'liblogdiag/ld-category-symbol-view.c')
-rw-r--r--liblogdiag/ld-category-symbol-view.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/liblogdiag/ld-category-symbol-view.c b/liblogdiag/ld-category-symbol-view.c
index 85f7c1e..36c0d0f 100644
--- a/liblogdiag/ld-category-symbol-view.c
+++ b/liblogdiag/ld-category-symbol-view.c
@@ -28,6 +28,7 @@
struct _LdCategorySymbolViewPrivate
{
LdCategory *category;
+ gchar *path;
guint height_negotiation : 1;
};
@@ -106,6 +107,7 @@ ld_category_symbol_view_finalize (GObject *gobject)
if (self->priv->category)
g_object_unref (self->priv->category);
+ g_free (self->priv->path);
/* Chain up to the parent class. */
G_OBJECT_CLASS (ld_category_symbol_view_parent_class)->finalize (gobject);
@@ -234,8 +236,17 @@ ld_category_symbol_view_set_category (LdCategorySymbolView *self,
g_return_if_fail (LD_IS_CATEGORY (category));
if (self->priv->category)
+ {
g_object_unref (self->priv->category);
+ g_free (self->priv->path);
+ self->priv->path = NULL;
+ }
+
+ /* XXX: We should rebuild the path if the name changes but it shouldn't
+ * happen and we would have to track the parents, too. */
+ self->priv->path = ld_category_get_path (category);
+
self->priv->category = category;
g_object_ref (category);