Select just item being dragged when drag starts

This commit is contained in:
DarkPhoenix
2019-04-22 00:18:46 +03:00
parent bde2043294
commit 413f00a475

View File

@@ -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 = []