Remove dropzone_item and hovered_item from GtkView
This commit is contained in:
parent
347a34486d
commit
6febe7ec52
@ -398,10 +398,10 @@ Special context for drawing the item. It contains a cairo context and properties
|
||||
DrawContext(
|
||||
painter=self,
|
||||
cairo=cairo,
|
||||
selected=(item in view.selected_items),
|
||||
focused=(item is view.focused_item),
|
||||
hovered=(item is view.hovered_item),
|
||||
dropzone=(item is view.dropzone_item),
|
||||
selected=(item in view.selection.selected_items),
|
||||
focused=(item is view.selection.focused_item),
|
||||
hovered=(item is view.selection.hovered_item),
|
||||
dropzone=(item is view.selection.dropzone_item),
|
||||
draw_all=self.draw_all,
|
||||
)
|
||||
```
|
||||
|
@ -205,10 +205,10 @@ Special context for drawing the item. It contains a cairo context and properties
|
||||
DrawContext(
|
||||
painter=self,
|
||||
cairo=cairo,
|
||||
selected=(item in view.selected_items),
|
||||
focused=(item is view.focused_item),
|
||||
hovered=(item is view.hovered_item),
|
||||
dropzone=(item is view.dropzone_item),
|
||||
selected=(item in view.selection.selected_items),
|
||||
focused=(item is view.selection.focused_item),
|
||||
hovered=(item is view.selection.hovered_item),
|
||||
dropzone=(item is view.selection.dropzone_item),
|
||||
draw_all=self.draw_all,
|
||||
)
|
||||
|
||||
|
@ -334,7 +334,7 @@ class FocusedItemPainter(Painter):
|
||||
|
||||
def paint(self, context):
|
||||
view = self.view
|
||||
item = view.hovered_item
|
||||
item = view.selection.hovered_item
|
||||
if item and item is view.focused_item:
|
||||
PaintFocused(item, view).paint(context)
|
||||
|
||||
|
@ -184,7 +184,7 @@ class SegmentHandleFinder(ItemHandleFinder):
|
||||
|
||||
def get_handle_at_point(self, pos):
|
||||
view = self.view
|
||||
item = view.hovered_item
|
||||
item = view.selection.hovered_item
|
||||
handle = None
|
||||
if self.item is view.focused_item:
|
||||
try:
|
||||
@ -244,7 +244,7 @@ class LineSegmentPainter(ItemPaintFocused):
|
||||
|
||||
def paint(self, context):
|
||||
view = self.view
|
||||
item = view.hovered_item
|
||||
item = view.selection.hovered_item
|
||||
if item and item is view.focused_item:
|
||||
cr = context.cairo
|
||||
h = item.handles()
|
||||
|
@ -221,7 +221,7 @@ class HoverTool(Tool):
|
||||
def on_motion_notify(self, event):
|
||||
view = self.view
|
||||
pos = event.get_coords()[1:]
|
||||
view.hovered_item = Finder(view).get_item_at_point(pos)
|
||||
view.selection.set_hovered_item(Finder(view).get_item_at_point(pos))
|
||||
|
||||
|
||||
class ItemTool(Tool):
|
||||
@ -239,7 +239,7 @@ class ItemTool(Tool):
|
||||
self._movable_items = set()
|
||||
|
||||
def get_item(self):
|
||||
return self.view.hovered_item
|
||||
return self.view.selection.hovered_item
|
||||
|
||||
def movable_items(self):
|
||||
"""Filter the items that should eventually be moved.
|
||||
@ -273,7 +273,7 @@ class ItemTool(Tool):
|
||||
|
||||
if item:
|
||||
if (
|
||||
view.hovered_item in view.selected_items
|
||||
view.selection.hovered_item in view.selected_items
|
||||
and event.get_state()[1] & Gdk.ModifierType.CONTROL_MASK
|
||||
):
|
||||
selection = Selection(item, view)
|
||||
@ -353,8 +353,9 @@ class HandleTool(Tool):
|
||||
(item.Handle), that handle is grabbed and can be dragged around.
|
||||
"""
|
||||
view = self.view
|
||||
selection = view.selection
|
||||
|
||||
item, handle = HandleFinder(view.hovered_item, view).get_handle_at_point(
|
||||
item, handle = HandleFinder(selection.hovered_item, view).get_handle_at_point(
|
||||
event.get_coords()[1:]
|
||||
)
|
||||
|
||||
@ -365,11 +366,11 @@ class HandleTool(Tool):
|
||||
if not (
|
||||
event.get_state()[1]
|
||||
& (Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.SHIFT_MASK)
|
||||
or view.hovered_item in view.selected_items
|
||||
or selection.hovered_item in selection.selected_items
|
||||
):
|
||||
del view.selected_items
|
||||
view.hovered_item = item
|
||||
view.focused_item = item
|
||||
selection.unselect_all()
|
||||
selection.set_hovered_item(item)
|
||||
selection.set_focused_item(item)
|
||||
|
||||
self.motion_handle = None
|
||||
|
||||
|
@ -272,38 +272,6 @@ class GtkView(Gtk.DrawingArea, Gtk.Scrollable, View):
|
||||
"The item with focus (receives key events a.o.)",
|
||||
)
|
||||
|
||||
def _set_hovered_item(self, item):
|
||||
"""Set the hovered item."""
|
||||
# self.queue_draw_item(self._selection.hovered_item, item)
|
||||
self._selection.set_hovered_item(item)
|
||||
|
||||
def _del_hovered_item(self):
|
||||
"""Unset the hovered item."""
|
||||
self._set_hovered_item(None)
|
||||
|
||||
hovered_item = property(
|
||||
lambda s: s._selection.hovered_item,
|
||||
_set_hovered_item,
|
||||
_del_hovered_item,
|
||||
"The item directly under the mouse pointer",
|
||||
)
|
||||
|
||||
def _set_dropzone_item(self, item):
|
||||
"""Set dropzone item."""
|
||||
# self.queue_draw_item(self._selection.dropzone_item, item)
|
||||
self._selection.set_dropzone_item(item)
|
||||
|
||||
def _del_dropzone_item(self):
|
||||
"""Unset dropzone item."""
|
||||
self._set_dropzone_item(None)
|
||||
|
||||
dropzone_item = property(
|
||||
lambda s: s._selection.dropzone_item,
|
||||
_set_dropzone_item,
|
||||
_del_dropzone_item,
|
||||
"The item which can group other items",
|
||||
)
|
||||
|
||||
def select_in_rectangle(self, rect):
|
||||
"""Select all items who have their bounding box within the rectangle.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user