From a1e6bc34cff4e00be24a23074b188f7d63fc8af8 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Tue, 3 May 2011 20:54:31 +0300 Subject: [PATCH] Added the basic stuff (pyfa side) for module copy -> needs an implemetation of module clone (eos or pyfa service side) --- gui/builtinViews/fittingView.py | 17 +++++++++++------ service/fit.py | 4 ++++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/gui/builtinViews/fittingView.py b/gui/builtinViews/fittingView.py index 7e66ceb75..e1b83c3c7 100644 --- a/gui/builtinViews/fittingView.py +++ b/gui/builtinViews/fittingView.py @@ -280,12 +280,15 @@ class FittingView(d.Display): self.click(event) def swapItems(self, x, y, itemID): + mstate = wx.GetMouseState() + srcRow = self.FindItemData(-1,itemID) dstRow, _ = self.HitTest((x, y)) - if srcRow != -1 and dstRow != -1: - self._swap(srcRow, dstRow) - def _swap(self, srcRow, dstRow): + if srcRow != -1 and dstRow != -1: + self._swap(srcRow, dstRow, mstate.ControlDown()) + + def _swap(self, srcRow, dstRow, clone = False): mod1 = self.mods[self.GetItemData(srcRow)] mod2 = self.mods[self.GetItemData(dstRow)] @@ -300,9 +303,11 @@ class FittingView(d.Display): mod2 = self.mods[self.GetItemData(dstRow)] cFit = service.Fit.getInstance() - cFit.swapModules(self.mainFrame.getActiveFit(), - mod1.position, - mod2.position) + + if clone: + cFit.cloneModule(self.mainFrame.getActiveFit(), mod1.position, mod2.position) + else: + cFit.swapModules(self.mainFrame.getActiveFit(), mod1.position, mod2.position) self.generateMods() self.refresh(self.mods) diff --git a/service/fit.py b/service/fit.py index 8dd6a44ad..dbbff17e7 100644 --- a/service/fit.py +++ b/service/fit.py @@ -340,6 +340,10 @@ class Fit(object): fit.modules.remove(m) fit.modules.insert(dst, m) + def cloneModule(self, fitID, src, dst): + #need implementation of module clone based on module positions (also make sure the dst is empty else do nothing) + pass + def addDrone(self, fitID, itemID): if fitID == None: return False