mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-03 17:33:25 +00:00
Use GimpTreeHandler to connect to all items' "visible" and "linked" callbacks
Makes the visibility and link buttons work for all items in a tree.
This commit is contained in:
parent
00682ee7cf
commit
57f44b89e8
1 changed files with 16 additions and 19 deletions
|
@ -40,6 +40,7 @@
|
||||||
#include "core/gimpitemundo.h"
|
#include "core/gimpitemundo.h"
|
||||||
#include "core/gimplayer.h"
|
#include "core/gimplayer.h"
|
||||||
#include "core/gimpmarshal.h"
|
#include "core/gimpmarshal.h"
|
||||||
|
#include "core/gimptreehandler.h"
|
||||||
#include "core/gimpundostack.h"
|
#include "core/gimpundostack.h"
|
||||||
|
|
||||||
#include "vectors/gimpvectors.h"
|
#include "vectors/gimpvectors.h"
|
||||||
|
@ -79,8 +80,8 @@ struct _GimpItemTreeViewPriv
|
||||||
GtkCellRenderer *eye_cell;
|
GtkCellRenderer *eye_cell;
|
||||||
GtkCellRenderer *chain_cell;
|
GtkCellRenderer *chain_cell;
|
||||||
|
|
||||||
GQuark visible_changed_handler_id;
|
GimpTreeHandler *visible_changed_handler;
|
||||||
GQuark linked_changed_handler_id;
|
GimpTreeHandler *linked_changed_handler;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -287,9 +288,6 @@ gimp_item_tree_view_init (GimpItemTreeView *view)
|
||||||
gimp_container_tree_view_set_dnd_drop_to_empty (tree_view, TRUE);
|
gimp_container_tree_view_set_dnd_drop_to_empty (tree_view, TRUE);
|
||||||
|
|
||||||
view->priv->image = NULL;
|
view->priv->image = NULL;
|
||||||
|
|
||||||
view->priv->visible_changed_handler_id = 0;
|
|
||||||
view->priv->linked_changed_handler_id = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static GObject *
|
static GObject *
|
||||||
|
@ -604,27 +602,26 @@ gimp_item_tree_view_set_container (GimpContainerView *view,
|
||||||
|
|
||||||
if (old_container)
|
if (old_container)
|
||||||
{
|
{
|
||||||
gimp_container_remove_handler (old_container,
|
gimp_tree_handler_disconnect (item_view->priv->visible_changed_handler);
|
||||||
item_view->priv->visible_changed_handler_id);
|
item_view->priv->visible_changed_handler = NULL;
|
||||||
gimp_container_remove_handler (old_container,
|
|
||||||
item_view->priv->linked_changed_handler_id);
|
|
||||||
|
|
||||||
item_view->priv->visible_changed_handler_id = 0;
|
gimp_tree_handler_disconnect (item_view->priv->linked_changed_handler);
|
||||||
item_view->priv->linked_changed_handler_id = 0;
|
item_view->priv->linked_changed_handler = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
parent_view_iface->set_container (view, container);
|
parent_view_iface->set_container (view, container);
|
||||||
|
|
||||||
if (container)
|
if (container)
|
||||||
{
|
{
|
||||||
item_view->priv->visible_changed_handler_id =
|
item_view->priv->visible_changed_handler =
|
||||||
gimp_container_add_handler (container, "visibility-changed",
|
gimp_tree_handler_connect (container, "visibility-changed",
|
||||||
G_CALLBACK (gimp_item_tree_view_visible_changed),
|
G_CALLBACK (gimp_item_tree_view_visible_changed),
|
||||||
view);
|
view);
|
||||||
item_view->priv->linked_changed_handler_id =
|
|
||||||
gimp_container_add_handler (container, "linked-changed",
|
item_view->priv->linked_changed_handler =
|
||||||
G_CALLBACK (gimp_item_tree_view_linked_changed),
|
gimp_tree_handler_connect (container, "linked-changed",
|
||||||
view);
|
G_CALLBACK (gimp_item_tree_view_linked_changed),
|
||||||
|
view);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue