diff --git a/eos b/eos index 42cb0b618..bb51319d8 160000 --- a/eos +++ b/eos @@ -1 +1 @@ -Subproject commit 42cb0b6180ba196c66ebc065d178a444310f6e82 +Subproject commit bb51319d8694a9a9e434a687267560ab9d45508a diff --git a/gui/fittingView.py b/gui/fittingView.py index 98567e3d6..e7a931999 100644 --- a/gui/fittingView.py +++ b/gui/fittingView.py @@ -146,23 +146,30 @@ class FittingView(d.Display): wx.PostEvent(self.mainFrame, FitChanged(fitID=self.activeFitID)) def swapItems(self, x, y, itemID): - srcRow = self.FindItemData(-1,itemID) dstRow, _ = self.HitTest((x, y)) if srcRow != -1 and dstRow != -1: - cFit = service.Fit.getInstance() -# populate = cFit.swapModules(self.activeFitID, self.mods[self.GetItemData(srcRow)].position, self.mods[self.GetItemData(dstRow)].position) -# cFit.swapModules(self.GetItemData(srcRow), self.GetItemData(dstRow)) - src = self.mods[self.GetItemData(srcRow)].position - dest = self.mods[self.GetItemData(dstRow)].position - self.mods[self.GetItemData(dstRow)].position = src - self.mods[self.GetItemData(srcRow)].position = dest + self._swap(srcRow, dstRow) -# if populate is not None: + def _swap(self, srcRow, dstRow): + mod1 = self.mods[self.GetItemData(srcRow)] + mod2 = self.mods[self.GetItemData(dstRow)] + print mod1.slot, mod2.slot + if mod1.slot != mod2.slot: + if srcRow > dstRow: + self._swap(srcRow, dstRow + 1) + else: + self._swap(srcRow, dstRow - 1) + else: + print "swap", mod1.position, mod2.position + cFit = service.Fit.getInstance() + cFit.swapModules(self.mainFrame.getActiveFit(), + mod1.position, + mod2.position) + print mod1.position, mod2.position self.slotsChanged() wx.PostEvent(self.mainFrame, FitChanged(fitID=self.activeFitID)) - def generateMods(self): cFit = service.Fit.getInstance() fit = cFit.getFit(self.activeFitID) diff --git a/service/fit.py b/service/fit.py index f264b03da..9d03d0bd5 100644 --- a/service/fit.py +++ b/service/fit.py @@ -180,18 +180,10 @@ class Fit(object): eos.db.commit() return numSlots != len(fit.modules) - def swapModules(self, position1, position2): - return True + def swapModules(self, fitID, mod1, mod2): fit = eos.db.getFit(fitID) - if fit.modules[position1].isEmpty or fit.modules[position2].isEmpty: - return None - -# fit.modules[position1], fit.modules[position2] = fit.modules[position2], fit.modules[position1] - fit.modules[position1].position = position2 - fit.modules[position2].position = position1 - print position1,position2 - eos.db.commit() - return True + fit.modules[mod1].position, fit.modules[mod2].position = mod2, mod1 + fit.modules[mod1], fit.modules[mod2] = fit.modules[mod2], fit.modules[mod1] def addDrone(self, fitID, itemID): if fitID == None: