Fix state switching unselected mods

This commit is contained in:
cncfanatics
2010-10-20 19:48:00 +02:00
parent b9d3d0193f
commit f5f13b971c

View File

@@ -65,6 +65,9 @@ class FittingView(d.Display):
self.SetDropTarget(self.FittingViewDrop(self.swapItems))
self.activeFitID = None
self.Bind(wx.EVT_KEY_UP, self.kbEvent)
self.Bind(wx.EVT_LEFT_DOWN, self.click)
self.Bind(wx.EVT_RIGHT_DOWN, self.click)
def startDrag(self, event):
data = wx.PyTextDataObject()
@@ -75,11 +78,6 @@ class FittingView(d.Display):
dropSource.SetData(data)
res = dropSource.DoDragDrop()
# We always copy drag
self.Bind(wx.EVT_KEY_UP, self.kbEvent)
self.Bind(wx.EVT_LEFT_DOWN, self.click)
self.Bind(wx.EVT_RIGHT_DOWN, self.click)
def getSelectedMods(self):
sel = []
@@ -228,11 +226,22 @@ class FittingView(d.Display):
def click(self, event):
event.Skip()
row, _ = self.HitTest(event.Position)
sel = []
curr = self.GetFirstSelected()
while curr != -1:
sel.append(curr)
curr = self.GetNextSelected(curr)
if curr not in sel:
mods = [self.mods[self.GetItemData(row)]]
else:
mods = self.getSelectedMods()
if row != -1:
col = self.getColumn(event.Position)
if col == self.getColIndex(ModuleState):
sFit = service.Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
sFit.toggleModulesState(fitID, self.mods[self.GetItemData(row)], self.getSelectedMods(), "right" if event.Button == 3 else "left")
sFit.toggleModulesState(fitID, self.mods[self.GetItemData(row)], mods, "right" if event.Button == 3 else "left")
wx.PostEvent(self.mainFrame, FitChanged(fitID=self.mainFrame.getActiveFit()))