From c5e69816face6e06a05189f1f5fcfba9c26a818c Mon Sep 17 00:00:00 2001 From: cncfanatics Date: Mon, 4 Oct 2010 16:26:05 +0200 Subject: [PATCH] Add ammo display when relevant as well as icons for the stats --- gui/builtinContextMenus/itemStats.py | 4 +++- gui/fittingView.py | 12 ++++++++++-- gui/itemStats.py | 5 ++++- gui/marketBrowser.py | 16 ++++++++++------ service/market.py | 3 +++ 5 files changed, 30 insertions(+), 10 deletions(-) diff --git a/gui/builtinContextMenus/itemStats.py b/gui/builtinContextMenus/itemStats.py index f59cbcae5..4d50b3640 100755 --- a/gui/builtinContextMenus/itemStats.py +++ b/gui/builtinContextMenus/itemStats.py @@ -8,7 +8,7 @@ class ItemStats(ContextMenu): self.mainFrame = gui.mainFrame.MainFrame.getInstance() def display(self, context, selection): - return context in ("ship", "module") + return context in ("item", "ship", "module", "ammo") def getText(self, context, selection): return "%s stats" % context.capitalize() @@ -18,6 +18,8 @@ class ItemStats(ContextMenu): fitID = self.mainFrame.getActiveFit() cFit = service.Fit.getInstance() stuff = cFit.getFit(fitID).ship + elif context == "ammo": + stuff = selection[0].charge else: stuff = selection[0] diff --git a/gui/fittingView.py b/gui/fittingView.py index 011621e52..5fa5ea565 100644 --- a/gui/fittingView.py +++ b/gui/fittingView.py @@ -118,9 +118,17 @@ class FittingView(d.Display): cFit = service.Fit.getInstance() selection = [] sel = self.GetFirstSelected() + ammo = False while sel != -1: - selection.append(self.mods[self.GetItemData(sel)]) + mod = self.mods[self.GetItemData(sel)] + if ammo is False and mod.charge is not None: + ammo = True + + selection.append(mod) sel = self.GetNextSelected(sel) - menu = ContextMenu.getMenu(selection, "module", "ship") + if ammo: + menu = ContextMenu.getMenu(selection, "module", "ammo", "ship") + else: + menu = ContextMenu.getMenu(selection, "module", "ship") self.PopupMenu(menu) \ No newline at end of file diff --git a/gui/itemStats.py b/gui/itemStats.py index 5d87b01d7..3357c082d 100644 --- a/gui/itemStats.py +++ b/gui/itemStats.py @@ -41,7 +41,10 @@ class ItemStatsDialog(wx.Dialog): item = getattr(victim, "item", None) if item is None: item = victim + victim = None + if item.icon is not None: + self.SetIcon(wx.IconFromBitmap(bitmapLoader.getBitmap(item.icon.iconFile, "pack"))) self.SetTitle("Item Stats: %s" % item.name) self.SetMinSize((500, 300)) @@ -118,7 +121,7 @@ class ItemParams (wx.Panel): for name, attr in attrs.iteritems(): index = self.paramList.InsertStringItem(sys.maxint, name) - self.paramList.SetStringItem(index, 1, str(attr)) + self.paramList.SetStringItem(index, 1, str(attr) if stuff is not None else str(attr.value)) self.Layout() ########################################################################### diff --git a/gui/marketBrowser.py b/gui/marketBrowser.py index 7fb258d3e..f0f21d74a 100644 --- a/gui/marketBrowser.py +++ b/gui/marketBrowser.py @@ -23,6 +23,7 @@ import wx.lib.newevent import service import bitmapLoader import gui.mainFrame +from gui.contextMenu import ContextMenu ItemSelected, ITEM_SELECTED = wx.lib.newevent.NewEvent() @@ -314,13 +315,16 @@ class MarketBrowser(wx.Panel): def contextMenu(self, event): #Check if something is selected, if so, spawn the menu for it - selection = self.itemView.GetFirstSelected() - if selection == -1: - return + sel = self.itemView.GetFirstSelected() + selection = [] + cMarket = service.Market.getInstance() + while sel != -1: + itemId = self.itemView.GetItemData(sel) + sel = self.itemView.GetNextSelected(sel) + selection.append(cMarket.getItem(itemId)) - itemId = self.itemView.GetItemData(selection) - self.itemStatsMenu.setItem(itemId) - self.PopupMenu(self.itemStatsMenu) + menu = ContextMenu.getMenu(selection, "item") + self.PopupMenu(menu) def itemActivated(self, event): id = event.Item.GetData() diff --git a/service/market.py b/service/market.py index 5173e86ae..25c1de987 100644 --- a/service/market.py +++ b/service/market.py @@ -167,6 +167,9 @@ class Market(): def getImplantTree(self): return self.getChildren(27) + def getItem(self, itemId): + return eos.db.getItem(itemId) + def getMarketRoot(self): """ Get the root of the market tree.