diff --git a/controller/fit.py b/controller/fit.py index 44264dce0..d140069fa 100644 --- a/controller/fit.py +++ b/controller/fit.py @@ -19,6 +19,7 @@ import eos.db import eos.types +import copy class Fit(object): instance = None @@ -55,3 +56,9 @@ class Fit(object): eos.db.saveddata_session.delete(fit) eos.db.saveddata_session.flush() + def copyFit(self, fitID): + fit = eos.db.getFit(fitID) + newFit = copy.deepcopy(fit) + eos.db.saveddata_session.add(newFit) + eos.db.saveddata_session.flush() + return newFit.ID diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py index 2bf4ee763..11b71aac6 100644 --- a/gui/shipBrowser.py +++ b/gui/shipBrowser.py @@ -44,6 +44,7 @@ class ShipBrowser(wx.Panel): self.shipMenu.new.Bind(wx.EVT_BUTTON, self.newFit) self.shipMenu.rename.Bind(wx.EVT_BUTTON, self.renameFit) self.shipMenu.delete.Bind(wx.EVT_BUTTON, self.deleteFit) + self.shipMenu.copy.Bind(wx.EVT_BUTTON, self.copyFit) def build(self): if not self.built: @@ -136,6 +137,19 @@ class ShipBrowser(wx.Panel): cFit.deleteFit(fitID) self.shipView.Delete(root) + def copyFit(self, event): + root = self.shipView.GetSelection() + type, fitID = self.shipView.GetPyData(root) + if type == "fit": + cFit = controller.Fit.getInstance() + newID = cFit.copyFit(fitID) + parent = self.shipView.GetItemParent(root) + name = self.shipView.GetItemText(root) + childId = self.shipView.AppendItem(parent, name, -1, data=wx.TreeItemData(("fit", newID))) + self.shipView.SetItemText(childId, name) + self.shipView.SelectItem(childId) + self.shipView.EditLabel(childId) + class ShipView(wx.TreeCtrl): def __init__(self, parent): wx.TreeCtrl.__init__(self, parent)