Merge pull request #696 from prculley/dnd2
This commit is contained in:
commit
455cd151b7
@ -890,8 +890,8 @@ class ClipboardListModel(Gtk.ListStore):
|
||||
class ClipboardListView:
|
||||
|
||||
LOCAL_DRAG_TYPE = 'MY_TREE_MODEL_ROW'
|
||||
LOCAL_DRAG_ATOM_TYPE = Gdk.atom_intern(LOCAL_DRAG_TYPE, False)
|
||||
LOCAL_DRAG_TARGET = (LOCAL_DRAG_ATOM_TYPE, Gtk.TargetFlags.SAME_WIDGET, 0)
|
||||
LOCAL_DRAG_TARGET = Gtk.TargetEntry.new(LOCAL_DRAG_TYPE,
|
||||
Gtk.TargetFlags.SAME_WIDGET, 0)
|
||||
|
||||
def __init__(self, dbstate, widget):
|
||||
|
||||
@ -948,19 +948,10 @@ class ClipboardListView:
|
||||
self._widget.set_enable_search(True)
|
||||
#self._widget.set_search_column(3)
|
||||
|
||||
targ_data = DdTargets.all_dtype()
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(ClipboardListView.LOCAL_DRAG_TARGET[0],
|
||||
ClipboardListView.LOCAL_DRAG_TARGET[1],
|
||||
ClipboardListView.LOCAL_DRAG_TARGET[2])
|
||||
for _tg in targ_data:
|
||||
tglist.add(_tg.atom_drag_type, _tg.target_flags, _tg.app_id)
|
||||
self._widget.enable_model_drag_dest([], Gdk.DragAction.COPY)
|
||||
#TODO GTK3: workaround here for bug
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=680638
|
||||
self._widget.drag_dest_set_target_list(tglist)
|
||||
#self._widget.drag_dest_set(Gtk.DestDefaults.ALL, targ_data,
|
||||
# Gdk.DragAction.COPY)
|
||||
targ_data = ((ClipboardListView.LOCAL_DRAG_TARGET,) +
|
||||
DdTargets.all_targets())
|
||||
self._widget.drag_dest_set(Gtk.DestDefaults.ALL, targ_data,
|
||||
Gdk.DragAction.COPY)
|
||||
|
||||
self._widget.connect('drag-data-get', self.object_drag_data_get)
|
||||
self._widget.connect('drag-begin', self.object_drag_begin)
|
||||
@ -1129,8 +1120,7 @@ class ClipboardListView:
|
||||
tree_selection = self._widget.get_selection()
|
||||
model, paths = tree_selection.get_selected_rows()
|
||||
if len(paths) > 1:
|
||||
targets = [(DdTargets.RAW_LIST.atom_drag_type,
|
||||
Gtk.TargetFlags.SAME_WIDGET, 0),
|
||||
targets = [DdTargets.RAW_LIST.target(),
|
||||
ClipboardListView.LOCAL_DRAG_TARGET]
|
||||
else:
|
||||
targets = [ClipboardListView.LOCAL_DRAG_TARGET]
|
||||
@ -1138,18 +1128,12 @@ class ClipboardListView:
|
||||
node = model.get_iter(path)
|
||||
if node is not None:
|
||||
_ob = model.get_value(node, 1)
|
||||
targets += [target.target_data_atom()
|
||||
targets += [target.target()
|
||||
for target in _ob.__class__.DROP_TARGETS]
|
||||
|
||||
#TODO GTK3: workaround here for bug
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=680638
|
||||
self._widget.enable_model_drag_source(
|
||||
Gdk.ModifierType.BUTTON1_MASK, [],
|
||||
Gdk.ModifierType.BUTTON1_MASK, targets,
|
||||
Gdk.DragAction.COPY | Gdk.DragAction.MOVE)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
for _tg in targets:
|
||||
tglist.add(_tg[0], _tg[1], _tg[2])
|
||||
self._widget.drag_source_set_target_list(tglist)
|
||||
|
||||
def object_drag_begin(self, widget, drag_context):
|
||||
""" Handle the beginning of a drag operation. """
|
||||
@ -1190,10 +1174,7 @@ class ClipboardListView:
|
||||
def object_drag_data_get(self, widget, context, sel_data, info, time):
|
||||
tree_selection = widget.get_selection()
|
||||
model, paths = tree_selection.get_selected_rows()
|
||||
if hasattr(context, "targets"):
|
||||
tgs = context.targets
|
||||
else:
|
||||
tgs = context.list_targets()
|
||||
tgs = context.list_targets()
|
||||
if len(paths) == 1:
|
||||
path = paths[0]
|
||||
node = model.get_iter(path)
|
||||
@ -1214,10 +1195,7 @@ class ClipboardListView:
|
||||
time, title=None, value=None, dbid=None,
|
||||
dbname=None):
|
||||
model = widget.get_model()
|
||||
if hasattr(selection, "data"):
|
||||
sel_data = selection.data
|
||||
else:
|
||||
sel_data = selection.get_data() # GtkSelectionData
|
||||
sel_data = selection.get_data()
|
||||
# In Windows time is always zero. Until that is fixed, use the seconds
|
||||
# of the local time to filter out double drops.
|
||||
real_time = strftime("%S")
|
||||
@ -1248,10 +1226,7 @@ class ClipboardListView:
|
||||
if dragtype in self._target_type_to_wrapper_class_map:
|
||||
possible_wrappers = [dragtype]
|
||||
else:
|
||||
if hasattr(context, "targets"):
|
||||
tgs = context.targets
|
||||
else:
|
||||
tgs = [atm.name() for atm in context.list_targets()]
|
||||
tgs = [atm.name() for atm in context.list_targets()]
|
||||
possible_wrappers = [
|
||||
target for target in tgs
|
||||
if target in self._target_type_to_wrapper_class_map]
|
||||
@ -1293,9 +1268,8 @@ class ClipboardListView:
|
||||
data = [_ob.__class__.DRAG_TARGET.drag_type, _ob, None,
|
||||
_ob._type, _ob._value, _ob._dbid, _ob._dbname]
|
||||
contains = model_contains(model, data)
|
||||
if (contains and not
|
||||
((context.action if hasattr(context, "action") else
|
||||
context.get_actions()) & Gdk.DragAction.MOVE)):
|
||||
if(contains and not
|
||||
(context.get_actions() & Gdk.DragAction.MOVE)):
|
||||
continue
|
||||
drop_info = widget.get_dest_row_at_pos(x, y)
|
||||
if drop_info:
|
||||
@ -1313,8 +1287,7 @@ class ClipboardListView:
|
||||
# FIXME: there is one bug here: if you multi-select and drop
|
||||
# on self, then it moves the first, and copies the rest.
|
||||
|
||||
if ((context.action if hasattr(context, "action") else
|
||||
context.get_actions()) & Gdk.DragAction.MOVE):
|
||||
if context.get_actions() & Gdk.DragAction.MOVE:
|
||||
context.finish(True, True, time)
|
||||
|
||||
# remember time for double drop workaround.
|
||||
|
@ -216,11 +216,9 @@ class DbManager(CLIDbManager, ManagedWindow):
|
||||
Connects the signals to the buttons on the interface.
|
||||
"""
|
||||
ddtarget = DdTargets.URI_LIST
|
||||
self.top.drag_dest_set(Gtk.DestDefaults.ALL, [], Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(ddtarget.atom_drag_type, ddtarget.target_flags,
|
||||
ddtarget.app_id)
|
||||
self.top.drag_dest_set_target_list(tglist)
|
||||
self.top.drag_dest_set(Gtk.DestDefaults.ALL,
|
||||
[DdTargets.URI_LIST.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
|
||||
self.remove_btn.connect('clicked', self.__remove_db)
|
||||
self.new_btn.connect('clicked', self.__new_db)
|
||||
|
@ -192,23 +192,15 @@ class EmbeddedList(ButtonTab):
|
||||
"""
|
||||
|
||||
if self._DND_EXTRA:
|
||||
dnd_types = [self._DND_TYPE,
|
||||
self._DND_EXTRA]
|
||||
dnd_types = [self._DND_TYPE.target(),
|
||||
self._DND_EXTRA.target()]
|
||||
else:
|
||||
dnd_types = [self._DND_TYPE]
|
||||
dnd_types = [self._DND_TYPE.target()]
|
||||
|
||||
#TODO GTK3: wourkaround here for bug https://bugzilla.gnome.org/show_bug.cgi?id=680638
|
||||
self.tree.enable_model_drag_dest([], Gdk.DragAction.COPY)
|
||||
self.tree.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK, [],
|
||||
self.tree.enable_model_drag_dest(dnd_types, Gdk.DragAction.COPY)
|
||||
self.tree.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[self._DND_TYPE.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
for tg in dnd_types:
|
||||
tglist.add(tg.atom_drag_type, tg.target_flags, tg.app_id)
|
||||
self.tree.drag_dest_set_target_list(tglist)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(self._DND_TYPE.atom_drag_type, self._DND_TYPE.target_flags,
|
||||
self._DND_TYPE.app_id)
|
||||
self.tree.drag_source_set_target_list(tglist)
|
||||
|
||||
self.tree.connect('drag_data_get', self.drag_data_get)
|
||||
self.tree.connect_after('drag-begin', self.after_drag_begin)
|
||||
|
@ -404,22 +404,14 @@ class GalleryTab(ButtonTab, DbGUIElement):
|
||||
variable defined that points to an entry in DdTargets.
|
||||
"""
|
||||
|
||||
dnd_types = [ self._DND_TYPE, self._DND_EXTRA, DdTargets.MEDIAOBJ]
|
||||
dnd_types = [self._DND_TYPE.target(), self._DND_EXTRA.target(),
|
||||
DdTargets.MEDIAOBJ.target()]
|
||||
|
||||
#TODO GTK3: wourkaround here for bug https://bugzilla.gnome.org/show_bug.cgi?id=680638
|
||||
self.iconlist.enable_model_drag_dest([],
|
||||
Gdk.DragAction.MOVE|Gdk.DragAction.COPY)
|
||||
self.iconlist.enable_model_drag_dest(
|
||||
dnd_types, Gdk.DragAction.MOVE | Gdk.DragAction.COPY)
|
||||
self.iconlist.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[],
|
||||
Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
for tg in dnd_types:
|
||||
tglist.add(tg.atom_drag_type, tg.target_flags, tg.app_id)
|
||||
self.iconlist.drag_dest_set_target_list(tglist)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(self._DND_TYPE.atom_drag_type, self._DND_TYPE.target_flags,
|
||||
self._DND_TYPE.app_id)
|
||||
self.iconlist.drag_source_set_target_list(tglist)
|
||||
[self._DND_TYPE.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
self.iconlist.connect('drag_data_get', self.drag_data_get)
|
||||
if not self.dbstate.db.readonly:
|
||||
self.iconlist.connect('drag_data_received', self.drag_data_received)
|
||||
|
@ -107,13 +107,8 @@ class EditChildRef(EditSecondary):
|
||||
# Set the drag action from the label
|
||||
self.label_event_box = self.top.get_object('name_event_box')
|
||||
self.label_event_box.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[],
|
||||
Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(DdTargets.PERSON_LINK.atom_drag_type,
|
||||
DdTargets.PERSON_LINK.target_flags,
|
||||
DdTargets.PERSON_LINK.app_id)
|
||||
self.label_event_box.drag_source_set_target_list(tglist)
|
||||
[DdTargets.PERSON_LINK.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
self.label_event_box.drag_source_set_icon_name('gramps-person')
|
||||
self.label_event_box.connect('drag_data_get', self.drag_data_get)
|
||||
|
||||
|
@ -563,12 +563,8 @@ class EditFamily(EditPrimary):
|
||||
self.set_contexteventbox(self.top.get_object("eventboxtop"))
|
||||
#allow for drag of the family object from eventboxtop
|
||||
self.contexteventbox.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[], Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(DdTargets.FAMILY_LINK.atom_drag_type,
|
||||
DdTargets.FAMILY_LINK.target_flags,
|
||||
DdTargets.FAMILY_LINK.app_id)
|
||||
self.contexteventbox.drag_source_set_target_list(tglist)
|
||||
[DdTargets.FAMILY_LINK.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
self.contexteventbox.drag_source_set_icon_name('gramps-family')
|
||||
self.contexteventbox.connect('drag_data_get', self.on_drag_data_get_family)
|
||||
|
||||
@ -585,13 +581,8 @@ class EditFamily(EditPrimary):
|
||||
# Allow drag
|
||||
if not event_box.drag_source_get_target_list():
|
||||
event_box.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[],
|
||||
Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(DdTargets.PERSON_LINK.atom_drag_type,
|
||||
DdTargets.PERSON_LINK.target_flags,
|
||||
DdTargets.PERSON_LINK.app_id)
|
||||
event_box.drag_source_set_target_list(tglist)
|
||||
[DdTargets.PERSON_LINK.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
event_box.drag_source_set_icon_name('gramps-person')
|
||||
event_box.connect('drag_data_get', on_drag_data_get)
|
||||
#Disallow drop:
|
||||
@ -604,14 +595,9 @@ class EditFamily(EditPrimary):
|
||||
#allow for drop:
|
||||
if not event_box.drag_dest_get_target_list():
|
||||
event_box.drag_dest_set(Gtk.DestDefaults.MOTION |
|
||||
Gtk.DestDefaults.DROP,
|
||||
[],
|
||||
Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(DdTargets.PERSON_LINK.atom_drag_type,
|
||||
DdTargets.PERSON_LINK.target_flags,
|
||||
DdTargets.PERSON_LINK.app_id)
|
||||
event_box.drag_dest_set_target_list(tglist)
|
||||
Gtk.DestDefaults.DROP,
|
||||
[DdTargets.PERSON_LINK.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
event_box.connect('drag_data_received', on_drag_data_received)
|
||||
|
||||
def on_drag_fatherdata_get(self, widget, context, sel_data, info, time):
|
||||
|
@ -252,14 +252,9 @@ class EditPerson(EditPrimary):
|
||||
# allow to initiate a drag-and-drop with this person if it has a handle
|
||||
if self.added:
|
||||
return # Avoid HandleError if dragging an objet not in db yet
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(DdTargets.PERSON_LINK.atom_drag_type,
|
||||
DdTargets.PERSON_LINK.target_flags,
|
||||
DdTargets.PERSON_LINK.app_id)
|
||||
self.contexteventbox.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[],
|
||||
Gdk.DragAction.COPY)
|
||||
self.contexteventbox.drag_source_set_target_list(tglist)
|
||||
[DdTargets.PERSON_LINK.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
self.contexteventbox.drag_source_set_icon_name('gramps-person')
|
||||
self.contexteventbox.connect('drag_data_get', self._top_drag_data_get)
|
||||
|
||||
|
@ -97,14 +97,9 @@ class EditPersonRef(EditSecondary):
|
||||
|
||||
#allow for drop:
|
||||
self.person_label.drag_dest_set(Gtk.DestDefaults.MOTION |
|
||||
Gtk.DestDefaults.DROP,
|
||||
[],
|
||||
Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(DdTargets.PERSON_LINK.atom_drag_type,
|
||||
DdTargets.PERSON_LINK.target_flags,
|
||||
DdTargets.PERSON_LINK.app_id)
|
||||
self.person_label.drag_dest_set_target_list(tglist)
|
||||
Gtk.DestDefaults.DROP,
|
||||
[DdTargets.PERSON_LINK.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
self.person_label.connect('drag_data_received', self.on_drag_persondata_received)
|
||||
self._update_dnd_capability()
|
||||
|
||||
@ -112,13 +107,9 @@ class EditPersonRef(EditSecondary):
|
||||
self.label_event_box = self.top.get_object('person_event_box')
|
||||
# Set the drag action from the label
|
||||
if self.obj.ref:
|
||||
self.label_event_box.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[], Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(DdTargets.PERSON_LINK.atom_drag_type,
|
||||
DdTargets.PERSON_LINK.target_flags,
|
||||
DdTargets.PERSON_LINK.app_id)
|
||||
self.label_event_box.drag_source_set_target_list(tglist)
|
||||
self.label_event_box.drag_source_set(
|
||||
Gdk.ModifierType.BUTTON1_MASK,
|
||||
[DdTargets.PERSON_LINK.target()], Gdk.DragAction.COPY)
|
||||
self.label_event_box.drag_source_set_icon_name('gramps-person')
|
||||
self.label_event_box.connect('drag_data_get', self.drag_data_get)
|
||||
else:
|
||||
|
@ -148,30 +148,27 @@ class ObjEntry:
|
||||
Drop is always allowed
|
||||
Drag only allowed when object is set
|
||||
"""
|
||||
if self._DND_TYPE:
|
||||
if not self.label.drag_dest_get_target_list():
|
||||
self.label.drag_dest_set(Gtk.DestDefaults.ALL, [], Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(self._DND_TYPE.atom_drag_type, self._DND_TYPE.target_flags,
|
||||
self._DND_TYPE.app_id)
|
||||
self.label.drag_dest_set_target_list(tglist)
|
||||
self.label.connect('drag_data_received', self.drag_data_received)
|
||||
if not self._DND_TYPE:
|
||||
return
|
||||
if not self.label.drag_dest_get_target_list():
|
||||
self.label.drag_dest_set(Gtk.DestDefaults.ALL,
|
||||
[self._DND_TYPE.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
self.label.connect('drag_data_received', self.drag_data_received)
|
||||
# Set the drag action from this box
|
||||
if self._DND_TYPE:
|
||||
if self.get_val():
|
||||
if not self.label.drag_source_get_target_list():
|
||||
self.label_event_box.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[], Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(self._DND_TYPE.atom_drag_type, self._DND_TYPE.target_flags,
|
||||
self._DND_TYPE.app_id)
|
||||
self.label_event_box.drag_source_set_target_list(tglist)
|
||||
if self._DND_ICON:
|
||||
self.label_event_box.drag_source_set_icon_name(self._DND_ICON)
|
||||
self.label_event_box.connect('drag_data_get', self.drag_data_get)
|
||||
else:
|
||||
if self.label.drag_source_get_target_list():
|
||||
self.label_event_box.drag_source_unset()
|
||||
if self.get_val():
|
||||
if not self.label.drag_source_get_target_list():
|
||||
self.label_event_box.drag_source_set(
|
||||
Gdk.ModifierType.BUTTON1_MASK,
|
||||
[self._DND_TYPE.target()], Gdk.DragAction.COPY)
|
||||
if self._DND_ICON:
|
||||
self.label_event_box.drag_source_set_icon_name(
|
||||
self._DND_ICON)
|
||||
self.label_event_box.connect('drag_data_get',
|
||||
self.drag_data_get)
|
||||
else:
|
||||
if self.label.drag_source_get_target_list():
|
||||
self.label_event_box.drag_source_unset()
|
||||
|
||||
def _init_object(self):
|
||||
"""inheriting objects can use this to set extra variables
|
||||
|
@ -352,12 +352,8 @@ class QuickTable(SimpleTable):
|
||||
sort_index = 0
|
||||
treeview = MultiTreeView()
|
||||
treeview.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[],
|
||||
[DdTargets.HANDLE_LIST.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(DdTargets.HANDLE_LIST.atom_drag_type, Gtk.TargetFlags.SAME_WIDGET,
|
||||
0)
|
||||
treeview.drag_source_set_target_list(tglist)
|
||||
#treeview.enable_model_drag_dest(DdTargets.all_targets(),
|
||||
# Gdk.DragAction.DEFAULT)
|
||||
treeview.connect('drag_data_get', self.object_drag_data_get)
|
||||
|
@ -172,11 +172,6 @@ class ListView(NavigationView):
|
||||
[self.drag_dest_info().target()],
|
||||
Gdk.DragAction.MOVE |
|
||||
Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(self.drag_dest_info().atom_drag_type,
|
||||
self.drag_dest_info().target_flags,
|
||||
self.drag_dest_info().app_id)
|
||||
self.list.drag_dest_set_target_list(tglist)
|
||||
|
||||
scrollwindow = Gtk.ScrolledWindow()
|
||||
scrollwindow.set_policy(Gtk.PolicyType.AUTOMATIC,
|
||||
@ -729,23 +724,13 @@ class ListView(NavigationView):
|
||||
if len(selected_ids) == 1:
|
||||
if self.drag_info():
|
||||
self.list.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[],
|
||||
Gdk.DragAction.COPY)
|
||||
#TODO GTK3: wourkaround here for bug https://bugzilla.gnome.org/show_bug.cgi?id=680638
|
||||
tglist = Gtk.TargetList.new([])
|
||||
dtype = self.drag_info()
|
||||
tglist.add(dtype.atom_drag_type, dtype.target_flags, dtype.app_id)
|
||||
self.list.drag_source_set_target_list(tglist)
|
||||
[self.drag_info().target()],
|
||||
Gdk.DragAction.COPY)
|
||||
elif len(selected_ids) > 1:
|
||||
if self.drag_list_info():
|
||||
self.list.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[],
|
||||
Gdk.DragAction.COPY)
|
||||
#TODO GTK3: wourkaround here for bug https://bugzilla.gnome.org/show_bug.cgi?id=680638
|
||||
tglist = Gtk.TargetList.new([])
|
||||
dtype = self.drag_list_info()
|
||||
tglist.add(dtype.atom_drag_type, dtype.target_flags, dtype.app_id)
|
||||
self.list.drag_source_set_target_list(tglist)
|
||||
[self.drag_list_info().target()],
|
||||
Gdk.DragAction.COPY)
|
||||
|
||||
self.uistate.modify_statusbar(self.dbstate)
|
||||
|
||||
|
@ -276,7 +276,7 @@ class PageView(DbGUIElement, metaclass=ABCMeta):
|
||||
def get_data(self):
|
||||
return self.data
|
||||
class Context:
|
||||
targets = [drag_type.name()]
|
||||
targets = [Gdk.atom_intern(drag_type.name(), False)]
|
||||
action = 1
|
||||
def list_targets(self):
|
||||
return Context.targets
|
||||
|
@ -162,13 +162,8 @@ class FanChartBaseWidget(Gtk.DrawingArea):
|
||||
# Enable drop
|
||||
self.drag_dest_set(Gtk.DestDefaults.MOTION |
|
||||
Gtk.DestDefaults.DROP,
|
||||
[],
|
||||
[DdTargets.PERSON_LINK.target()],
|
||||
Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(DdTargets.PERSON_LINK.atom_drag_type,
|
||||
DdTargets.PERSON_LINK.target_flags,
|
||||
DdTargets.PERSON_LINK.app_id)
|
||||
self.drag_dest_set_target_list(tglist)
|
||||
self.connect('drag_data_received', self.on_drag_data_received)
|
||||
|
||||
self._mouse_click = False
|
||||
|
@ -760,7 +760,8 @@ class GridGramplet(GuiGramplet):
|
||||
"""
|
||||
TARGET_TYPE_FRAME = 80
|
||||
LOCAL_DRAG_TYPE = 'GRAMPLET'
|
||||
LOCAL_DRAG_TARGET = (Gdk.atom_intern(LOCAL_DRAG_TYPE, False), 0, TARGET_TYPE_FRAME)
|
||||
LOCAL_DRAG_TARGET = Gtk.TargetEntry.new(LOCAL_DRAG_TYPE, 0,
|
||||
TARGET_TYPE_FRAME)
|
||||
|
||||
def __init__(self, pane, dbstate, uistate, title, **kwargs):
|
||||
"""
|
||||
@ -806,12 +807,8 @@ class GridGramplet(GuiGramplet):
|
||||
# source:
|
||||
drag = self.gvproperties
|
||||
drag.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[],
|
||||
[GridGramplet.LOCAL_DRAG_TARGET],
|
||||
Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tg = GridGramplet.LOCAL_DRAG_TARGET
|
||||
tglist.add(tg[0], tg[1], tg[2])
|
||||
drag.drag_source_set_target_list(tglist)
|
||||
|
||||
# default tooltip
|
||||
msg = _("Drag Properties Button to move and click it for setup")
|
||||
@ -1025,12 +1022,8 @@ class GrampletPane(Gtk.ScrolledWindow):
|
||||
self.drag_dest_set(Gtk.DestDefaults.MOTION |
|
||||
Gtk.DestDefaults.HIGHLIGHT |
|
||||
Gtk.DestDefaults.DROP,
|
||||
[],
|
||||
[GridGramplet.LOCAL_DRAG_TARGET],
|
||||
Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tg = GridGramplet.LOCAL_DRAG_TARGET
|
||||
tglist.add(tg[0], tg[1], tg[2])
|
||||
self.drag_dest_set_target_list(tglist)
|
||||
self.connect('drag_drop', self.drop_widget)
|
||||
self.eventb.connect('button-press-event', self._button_press)
|
||||
|
||||
|
@ -1182,12 +1182,7 @@ class RelationshipView(NavigationView):
|
||||
Register the given eventbox as a drag_source with given object_h
|
||||
"""
|
||||
eventbox.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
|
||||
[], Gdk.DragAction.COPY)
|
||||
tglist = Gtk.TargetList.new([])
|
||||
tglist.add(dnd_type.atom_drag_type,
|
||||
dnd_type.target_flags,
|
||||
dnd_type.app_id)
|
||||
eventbox.drag_source_set_target_list(tglist)
|
||||
[dnd_type.target()], Gdk.DragAction.COPY)
|
||||
eventbox.drag_source_set_icon_name(stock_icon)
|
||||
eventbox.connect('drag_data_get',
|
||||
self._make_drag_data_get_func(object_h, dnd_type))
|
||||
|
Loading…
Reference in New Issue
Block a user