[gimp/metadata-browser] Bug 658902 - Show different icon for visible layer group members of...
- From: Roman Joost <romanofski src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/metadata-browser] Bug 658902 - Show different icon for visible layer group members of...
- Date: Wed, 28 Sep 2011 10:51:21 +0000 (UTC)
commit 942231181dc4c593f6efaecd86e561d58fefca55
Author: Michael Natterer <mitch gimp org>
Date: Fri Sep 23 23:45:10 2011 +0200
Bug 658902 - Show different icon for visible layer group members of...
Set the "eye" renderer to inconsistent state if the item is visible,
but not effectively viewable because one of its parents is invisible.
app/widgets/gimpitemtreeview.c | 39 ++++++++++++++++++++++++++++++++-------
1 files changed, 32 insertions(+), 7 deletions(-)
---
diff --git a/app/widgets/gimpitemtreeview.c b/app/widgets/gimpitemtreeview.c
index 0be6cca..d836a56 100644
--- a/app/widgets/gimpitemtreeview.c
+++ b/app/widgets/gimpitemtreeview.c
@@ -82,6 +82,7 @@ struct _GimpItemTreeViewPriv
GtkWidget *delete_button;
gint model_column_visible;
+ gint model_column_viewable;
gint model_column_linked;
GtkCellRenderer *eye_cell;
GtkCellRenderer *chain_cell;
@@ -306,6 +307,11 @@ gimp_item_tree_view_init (GimpItemTreeView *view)
&tree_view->n_model_columns,
G_TYPE_BOOLEAN);
+ view->priv->model_column_viewable =
+ gimp_container_tree_store_columns_add (tree_view->model_columns,
+ &tree_view->n_model_columns,
+ G_TYPE_BOOLEAN);
+
view->priv->model_column_linked =
gimp_container_tree_store_columns_add (tree_view->model_columns,
&tree_view->n_model_columns,
@@ -355,6 +361,8 @@ gimp_item_tree_view_constructed (GObject *object)
gtk_tree_view_column_set_attributes (column, item_view->priv->eye_cell,
"active",
item_view->priv->model_column_visible,
+ "inconsistent",
+ item_view->priv->model_column_viewable,
NULL);
gimp_container_tree_view_add_toggle_cell (tree_view,
@@ -639,7 +647,7 @@ gimp_item_tree_view_add_options (GimpItemTreeView *view,
item_view_class = GIMP_ITEM_TREE_VIEW_GET_CLASS (view);
- view->priv->options_box = gtk_vbox_new (FALSE, content_spacing);
+ view->priv->options_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, content_spacing);
gtk_box_pack_start (GTK_BOX (view), view->priv->options_box,
FALSE, FALSE, 0);
gtk_box_reorder_child (GTK_BOX (view), view->priv->options_box, 0);
@@ -658,7 +666,7 @@ gimp_item_tree_view_add_options (GimpItemTreeView *view,
GtkWidget *label_widget;
gboolean group_created = FALSE;
- hbox = gtk_hbox_new (FALSE, button_spacing);
+ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, button_spacing);
gtk_box_pack_start (GTK_BOX (view->priv->options_box), hbox,
FALSE, FALSE, 0);
gtk_widget_show (hbox);
@@ -702,7 +710,7 @@ gimp_item_tree_view_get_lock_box (GimpItemTreeView *view)
"button-spacing", &button_spacing,
NULL);
- view->priv->lock_box = gtk_hbox_new (FALSE, button_spacing);
+ view->priv->lock_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, button_spacing);
gimp_item_tree_view_add_options (view, _("Lock:"), view->priv->lock_box);
@@ -932,6 +940,9 @@ gimp_item_tree_view_insert_item (GimpContainerView *view,
gtk_tree_store_set (GTK_TREE_STORE (tree_view->model), iter,
item_view->priv->model_column_visible,
gimp_item_get_visible (item),
+ item_view->priv->model_column_viewable,
+ gimp_item_get_visible (item) &&
+ ! gimp_item_is_visible (item),
item_view->priv->model_column_linked,
gimp_item_get_linked (item),
-1);
@@ -1258,10 +1269,24 @@ gimp_item_tree_view_visible_changed (GimpItem *item,
(GimpViewable *) item);
if (iter)
- gtk_tree_store_set (GTK_TREE_STORE (tree_view->model), iter,
- view->priv->model_column_visible,
- gimp_item_get_visible (item),
- -1);
+ {
+ GimpContainer *children;
+
+ gtk_tree_store_set (GTK_TREE_STORE (tree_view->model), iter,
+ view->priv->model_column_visible,
+ gimp_item_get_visible (item),
+ view->priv->model_column_viewable,
+ gimp_item_get_visible (item) &&
+ ! gimp_item_is_visible (item),
+ -1);
+
+ children = gimp_viewable_get_children (GIMP_VIEWABLE (item));
+
+ if (children)
+ gimp_container_foreach (children,
+ (GFunc) gimp_item_tree_view_visible_changed,
+ view);
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]