From a74d5151f867a7aeaf535b088e61897d1d3dbe16 Mon Sep 17 00:00:00 2001 From: Doug Blank Date: Wed, 18 Aug 2010 13:28:37 +0000 Subject: [PATCH] Clipboards do not allow duplicates svn: r15767 --- src/ScratchPad.py | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/ScratchPad.py b/src/ScratchPad.py index 1af3dadcd..e7847f642 100644 --- a/src/ScratchPad.py +++ b/src/ScratchPad.py @@ -136,23 +136,22 @@ def obj2target(target): } return d[target] if target in d else None -def model_contains(model, path, iter, data): +def model_contains(model, data): """ Returns True if data is a row in model. """ # check type and value # data[0] is type of drop item, data[1] is ScratchPad object - print "-----" - if data[0] == 'TEXT': - print model.get_value(iter, 0), data[0] - print model.get_value(iter, 1)._value, data[1]._value - return ((model.get_value(iter, 0) == data[0]) and - (model.get_value(iter, 1)._value == data[1]._value)) - else: - print model.get_value(iter, 0), data[0] - print model.get_value(iter, 1)._handle, data[1]._handle - return ((model.get_value(iter, 0) == data[0]) and - (model.get_value(iter, 1)._handle == data[1]._handle)) + for row in model: + if data[0] == 'TEXT': + same = ((row[0] == data[0]) and + (row[1]._value == data[1]._value)) + else: + same = ((row[0] == data[0]) and + (row[1]._handle == data[1]._handle)) + if same: + return True + return False #------------------------------------------------------------------------- # @@ -1369,8 +1368,7 @@ class ScratchPadListView(object): o_list = [o] data = [o.__class__.DRAG_TARGET.drag_type, o, o.tooltip, o._type, o._value] - import pdb; pdb.set_trace() - contains = model.foreach(model_contains, data) + contains = model_contains(model, data) if not contains: for o in o_list: drop_info = widget.get_dest_row_at_pos(x, y)