From: Alex R. <sh...@gr...> - 2005-10-29 23:27:36
|
Martin, I looked at the DnD issues only. On Thu, 2005-10-27 at 15:16 +0200, Martin Hawlisch wrote: > - Addresses: Reordering using drag-n-drop duplicates the selected line Could not reproduce this. > - Sources: Reordering using drag-n-drop duplicates the selected line This is reproducible, and the code explicitly inserts new object on drag_receive. I fixed it locally, but then noticed the problem of things working differently when dnd occurs within the EditPerson versus between EditPerson windows of different people or through ScratchPad. We need to re-work the concept of what's being done on DnD, in all situations. In some places, the object is copied. In some, it is removed and re-inserted. In some, new reference is created based on the base and other properties of an existing reference. It's all hodge-podge, and this leads to the uncertain behavior. Don, is there a formalized algorithm of what to do on DnD? Maybe I am missing something? I haven't looked much further, since different things are done in different places, and it seems a mess to me :-) My feeling is that we need to formalize the rules as to what happens on DnD of: 1. Primary object 2. Secondary object referring to the primary object (sourceref, mediaref) 3. Other secondary object in any of these cases: 1. DnD within a single object list (EditPerson's tab of e.g. sourcerefs) 2. DnD across different windows (EditPerson's sources and e.g. Address's sources, or two different EditPerson's). 3. DnD from something onto the ScratchPad 4. DnD from ScratchPad onto something Once we have clear rules, the code will be easy to change. It would be nice if Richard was around to help with that :-) Alex --=20 Alexander Roitman http://www.gramps-project.org |