diff --git a/gui/builtinViews/fleetView.py b/gui/builtinViews/fleetView.py index 91ae727da..3e20af06e 100644 --- a/gui/builtinViews/fleetView.py +++ b/gui/builtinViews/fleetView.py @@ -40,7 +40,7 @@ class FleetView(wx.gizmos.TreeListCtrl): def populate(self, fleetID): sFleet = service.Fleet.getInstance() - f = sFleet.getFleet(fleetID) + f = sFleet.getFleetByID(fleetID) self.tabManager.SetPageTextIcon(self.tabManager.GetSelection(), f.name) self.fleet = f self.DeleteAllItems() diff --git a/gui/fleetBrowser.py b/gui/fleetBrowser.py index f46d8e514..fb965059a 100644 --- a/gui/fleetBrowser.py +++ b/gui/fleetBrowser.py @@ -12,6 +12,7 @@ FleetSelected, EVT_FLEET_SELECTED = wx.lib.newevent.NewEvent() FleetItemSelect, EVT_FLEET_ITEM_SELECT = wx.lib.newevent.NewEvent() FleetItemDelete, EVT_FLEET_ITEM_DELETE = wx.lib.newevent.NewEvent() FleetItemNew, EVT_FLEET_ITEM_NEW = wx.lib.newevent.NewEvent() +FleetItemCopy, EVT_FLEET_ITEM_COPY = wx.lib.newevent.NewEvent() @@ -44,6 +45,7 @@ class FleetBrowser(wx.Panel): self.Bind(EVT_FLEET_ITEM_NEW, self.AddNewFleetItem) self.Bind(EVT_FLEET_ITEM_SELECT, self.SelectFleetItem) self.Bind(EVT_FLEET_ITEM_DELETE, self.DeleteFleetItem) + self.Bind(EVT_FLEET_ITEM_COPY, self.CopyFleetItem) self.PopulateFleetList() @@ -52,18 +54,31 @@ class FleetBrowser(wx.Panel): newFleet = self.sFleet.addFleet() self.sFleet.renameFleet(newFleet, fleetName) - self.fleetItemContainer.AddWidget(FleetItem(self, newFleet.ID, newFleet.name, newFleet.count())) - self.fleetItemContainer.RefreshList() + self.AddItem(newFleet.ID, newFleet.name, newFleet.count()) def SelectFleetItem(self, event): fleetID = event.fleetID self.fleetItemContainer.SelectWidgetByFleetID(fleetID) wx.PostEvent(self.mainFrame, FleetSelected(fleetID=fleetID)) + def CopyFleetItem(self, event): + fleetID = event.fleetID + fleet = self.sFleet.copyFleetByID(fleetID) + fleetName = fleet.name + " Copy" + self.sFleet.renameFleet(fleet,fleetName) + + self.AddItem(fleet.ID, fleet.name, fleet.count()) + self.fleetItemContainer.SelectWidgetByFleetID(fleet.ID) + wx.PostEvent(self.mainFrame, FleetSelected(fleetID=fleet.ID)) + def DeleteFleetItem(self, event): self.sFleet.deleteFleetByID(event.fleetID) self.PopulateFleetList() + def AddItem (self, ID, name, count): + self.fleetItemContainer.AddWidget(FleetItem(self, ID, name, count)) + self.fleetItemContainer.RefreshList() + def PopulateFleetList(self): self.Freeze() filter = self.filter @@ -261,6 +276,7 @@ class FleetItem(wx.Window): self.btnDelete.Bind(wx.EVT_ENTER_WINDOW, self.OnBtnEnterWindow) self.btnDelete.Bind(wx.EVT_BUTTON, self.OnDelete) + self.btnCopy.Bind(wx.EVT_BUTTON, self.OnCopy) self.Bind(wx.EVT_TIMER, self.OnTimer) @@ -288,8 +304,9 @@ class FleetItem(wx.Window): wx.PostEvent(self.Parent.Parent, FleetItemDelete(fleetID = self.fleetID)) event.Skip() - def Copy(self): - print "Copy" + def OnCopy(self, event): + wx.PostEvent(self.Parent.Parent, FleetItemCopy(fleetID = self.fleetID)) + event.Skip() def IsSelected(self): return self.selected diff --git a/service/fleet.py b/service/fleet.py index 2d2417cd5..a4116d734 100644 --- a/service/fleet.py +++ b/service/fleet.py @@ -41,7 +41,7 @@ class Fleet(object): return fleetList - def getFleet(self, ID): + def getFleetByID(self, ID): f = eos.db.getFleet(ID) return f @@ -59,9 +59,13 @@ class Fleet(object): eos.db.save(newFleet) return newFleet + def copyFleetByID(self, ID): + fleet = self.getFleetByID(ID) + return self.copyFleet(fleet) + def deleteFleet(self, fleet): eos.db.remove(fleet) def deleteFleetByID(self, ID): - fleet = self.getFleet(ID) + fleet = self.getFleetByID(ID) self.deleteFleet(fleet)