Add bindings to add & remove items (no control on items yet, is on TODO)
This commit is contained in:
@@ -68,3 +68,16 @@ class Fit(object):
|
||||
fit = eos.db.getFit(fitID)
|
||||
fit.fill()
|
||||
return fit
|
||||
|
||||
def appendItem(self, fitID, itemID):
|
||||
fit = eos.db.getFit(fitID)
|
||||
item = eos.db.getItem(itemID, eager=("attributes", "group.category"))
|
||||
if item.group.category.name == "Module":
|
||||
fit.modules.append(eos.types.Module(item))
|
||||
|
||||
eos.db.saveddata_session.flush()
|
||||
|
||||
def removeItem(self, fitID, position):
|
||||
fit = eos.db.getFit(fitID)
|
||||
fit.modules.toDummy(position)
|
||||
eos.db.saveddata_session.flush()
|
||||
|
||||
2
eos
2
eos
Submodule eos updated: 498121c99b...c9a60088e7
@@ -68,8 +68,13 @@ class FittingView(wx.ListCtrl):
|
||||
|
||||
self.imageListBase = self.imageList.ImageCount
|
||||
self.activeFitID = None
|
||||
|
||||
self.Bind(wx.EVT_LEFT_DCLICK, self.removeItem)
|
||||
|
||||
self.Hide() #Don't show ourselves at start
|
||||
|
||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||
|
||||
def addColumn(self, i, col):
|
||||
self.activeColumns.append(col)
|
||||
info = wx.ListItem()
|
||||
@@ -98,11 +103,32 @@ class FittingView(wx.ListCtrl):
|
||||
else:
|
||||
self.Show()
|
||||
|
||||
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), FitChanged(fitID=fitID))
|
||||
wx.PostEvent(self.mainFrame, FitChanged(fitID=fitID))
|
||||
|
||||
def appendItem(self, itemID):
|
||||
fitID = self.activeFitID
|
||||
if fitID != None:
|
||||
cFit = controller.Fit.getInstance()
|
||||
cFit.appendItem(fitID, itemID)
|
||||
wx.PostEvent(self.mainFrame, FitChanged(fitID=fitID))
|
||||
|
||||
def removeItem(self, event):
|
||||
row, _ = self.HitTest(event.Position)
|
||||
if row != -1:
|
||||
cFit = controller.Fit.getInstance()
|
||||
cFit.removeItem(self.activeFitID, self.GetItemData(row))
|
||||
|
||||
wx.PostEvent(self.mainFrame, FitChanged(fitID=self.activeFitID))
|
||||
|
||||
def fitChanged(self, event):
|
||||
cFit = controller.Fit.getInstance()
|
||||
fit = cFit.getFit(event.fitID)
|
||||
selection = []
|
||||
sel = self.GetFirstSelected()
|
||||
while sel != -1:
|
||||
selection.append(sel)
|
||||
sel = self.GetNextSelected(sel)
|
||||
|
||||
self.DeleteAllItems()
|
||||
self.clearItemImages()
|
||||
modSlotMap = {}
|
||||
@@ -122,4 +148,8 @@ class FittingView(wx.ListCtrl):
|
||||
self.SetColumnWidth(i, 40)
|
||||
|
||||
self.SortItems(lambda id1, id2: cmp(slotOrder.index(modSlotMap[id1]), slotOrder.index(modSlotMap[id2])))
|
||||
|
||||
for sel in selection:
|
||||
self.Select(sel)
|
||||
|
||||
event.Skip()
|
||||
|
||||
@@ -21,6 +21,7 @@ import wx
|
||||
import bitmapLoader
|
||||
import gui.mainFrame
|
||||
from gui.fittingView import FittingView
|
||||
import gui.marketBrowser as mb
|
||||
import gui.shipBrowser as sb
|
||||
import controller
|
||||
|
||||
@@ -37,7 +38,7 @@ class MultiSwitch(wx.Notebook):
|
||||
mainFrame.Bind(sb.EVT_FIT_RENAMED, self.processRename)
|
||||
mainFrame.Bind(sb.EVT_FIT_SELECTED, self.changeFit)
|
||||
mainFrame.Bind(sb.EVT_FIT_REMOVED, self.processRemove)
|
||||
|
||||
mainFrame.Bind(mb.ITEM_SELECTED, self.itemSelected)
|
||||
|
||||
self.imageList = wx.ImageList(16, 16)
|
||||
self.SetImageList(self.imageList)
|
||||
@@ -135,3 +136,9 @@ class MultiSwitch(wx.Notebook):
|
||||
#Deleting a tab might have put us on the "+" tab, make sure we don't stay there
|
||||
if self.GetSelection() == self.GetPageCount() - 1:
|
||||
self.SetSelection(self.GetPageCount() - 2)
|
||||
|
||||
def itemSelected(self, event):
|
||||
selected = self.GetSelection()
|
||||
page = self.GetPage(selected)
|
||||
if page.type == "fit":
|
||||
page.view.appendItem(event.itemID)
|
||||
|
||||
Reference in New Issue
Block a user