Select just item being dragged when drag starts
This commit is contained in:
@@ -237,17 +237,38 @@ class FittingView(d.Display):
|
|||||||
return self.activeFitID
|
return self.activeFitID
|
||||||
|
|
||||||
def startDrag(self, event):
|
def startDrag(self, event):
|
||||||
row = event.GetIndex()
|
srcRow = event.GetIndex()
|
||||||
|
|
||||||
if row != -1 and row not in self.blanks and isinstance(self.mods[row], Module) and not self.mods[row].isEmpty:
|
if srcRow == -1:
|
||||||
data = wx.TextDataObject()
|
return
|
||||||
dataStr = "fitting:" + str(self.mods[row].modPosition)
|
if srcRow in self.blanks:
|
||||||
data.SetText(dataStr)
|
return
|
||||||
|
try:
|
||||||
|
mod = self.mods[srcRow]
|
||||||
|
except IndexError:
|
||||||
|
return
|
||||||
|
if not isinstance(self.mods[srcRow], Module):
|
||||||
|
return
|
||||||
|
if mod.isEmpty:
|
||||||
|
return
|
||||||
|
fit = Fit.getInstance().getFit(self.activeFitID)
|
||||||
|
if mod not in fit.modules:
|
||||||
|
return
|
||||||
|
|
||||||
dropSource = wx.DropSource(self)
|
row = self.GetFirstSelected()
|
||||||
dropSource.SetData(data)
|
while row != -1:
|
||||||
DragDropHelper.data = dataStr
|
self.Select(row, False)
|
||||||
dropSource.DoDragDrop()
|
row = self.GetNextSelected(row)
|
||||||
|
self.Select(srcRow, True)
|
||||||
|
|
||||||
|
data = wx.TextDataObject()
|
||||||
|
dataStr = "fitting:" + str(fit.modules.index(mod))
|
||||||
|
data.SetText(dataStr)
|
||||||
|
|
||||||
|
dropSource = wx.DropSource(self)
|
||||||
|
dropSource.SetData(data)
|
||||||
|
DragDropHelper.data = dataStr
|
||||||
|
dropSource.DoDragDrop()
|
||||||
|
|
||||||
def getSelectedMods(self):
|
def getSelectedMods(self):
|
||||||
sel = []
|
sel = []
|
||||||
|
|||||||
Reference in New Issue
Block a user