From 73402dfb055b1ee1cedc7524f4dddf338a79d755 Mon Sep 17 00:00:00 2001 From: prculley Date: Thu, 25 Oct 2018 11:45:35 -0500 Subject: [PATCH] Drag/drop only one type of source --- gramps/gui/clipboard.py | 23 ++++++----------------- gramps/gui/views/pageview.py | 2 +- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/gramps/gui/clipboard.py b/gramps/gui/clipboard.py index de13f63c5..4867c600e 100644 --- a/gramps/gui/clipboard.py +++ b/gramps/gui/clipboard.py @@ -1190,10 +1190,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 +1211,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 +1242,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 +1284,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 +1303,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. diff --git a/gramps/gui/views/pageview.py b/gramps/gui/views/pageview.py index 8cdb1a568..687ce546c 100644 --- a/gramps/gui/views/pageview.py +++ b/gramps/gui/views/pageview.py @@ -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