diff --git a/gui/builtinStatsViews/firepowerViewFull.py b/gui/builtinStatsViews/firepowerViewFull.py index 9a7f41d4f..05e82eabc 100644 --- a/gui/builtinStatsViews/firepowerViewFull.py +++ b/gui/builtinStatsViews/firepowerViewFull.py @@ -19,13 +19,15 @@ # noinspection PyPackageRequirements import wx -import gui.mainFrame -from gui.statsView import StatsView -from gui.bitmap_loader import BitmapLoader -from gui.utils.numberFormatter import formatAmount, roundToPrec -from eos.utils.spoolSupport import SpoolType, SpoolOptions -from service.fit import Fit + import eos.config +import gui.mainFrame +from eos.utils.spoolSupport import SpoolOptions, SpoolType +from gui.bitmap_loader import BitmapLoader +from gui.statsView import StatsView +from gui.utils.numberFormatter import formatAmount, roundToPrec +from service.fit import Fit + class FirepowerViewFull(StatsView): name = "firepowerViewFull" diff --git a/gui/builtinViewColumns/__init__.py b/gui/builtinViewColumns/__init__.py index 2a089e176..e03fee1ac 100644 --- a/gui/builtinViewColumns/__init__.py +++ b/gui/builtinViewColumns/__init__.py @@ -1,2 +1,15 @@ -__all__ = ["ammo", "ammoIcon", "attributeDisplay", "baseIcon", "baseName", - "capacitorUse", "maxRange", "price", "propertyDisplay", "state", "misc", "abilities", "sideEffects"] +__all__ = [ + "ammo", + "ammoIcon", + "attributeDisplay", + "baseIcon", + "baseName", + "capacitorUse", + "dps", + "maxRange", + "price", + "propertyDisplay", + "state", + "misc", + "abilities", + "sideEffects"] diff --git a/gui/builtinViewColumns/baseName.py b/gui/builtinViewColumns/baseName.py index f5dbc0ec0..00fae9abd 100644 --- a/gui/builtinViewColumns/baseName.py +++ b/gui/builtinViewColumns/baseName.py @@ -45,7 +45,6 @@ class BaseName(ViewColumn): self.mainFrame = gui.mainFrame.MainFrame.getInstance() self.columnText = "Name" - self.shipImage = fittingView.imageList.GetImageIndex("ship_small", "gui") self.mask = wx.LIST_MASK_TEXT self.projectedView = isinstance(fittingView, gui.builtinAdditionPanes.projectedView.ProjectedView) diff --git a/gui/builtinViewColumns/dps.py b/gui/builtinViewColumns/dps.py new file mode 100644 index 000000000..ad49dc152 --- /dev/null +++ b/gui/builtinViewColumns/dps.py @@ -0,0 +1,52 @@ +# ============================================================================= +# Copyright (C) 2010 Diego Duclos +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +# ============================================================================= + + +# noinspection PyPackageRequirements +import wx + +import eos.config +import gui.mainFrame +from eos.saveddata.fit import Fit +from eos.utils.spoolSupport import SpoolOptions, SpoolType +from gui.viewColumn import ViewColumn +from gui.utils.numberFormatter import formatAmount + + +class DpsColumn(ViewColumn): + + name = 'Dps' + + def __init__(self, fittingView, params): + ViewColumn.__init__(self, fittingView) + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.columnText = 'DPS' + self.mask = wx.LIST_MASK_TEXT + + def getText(self, stuff): + if isinstance(stuff, Fit): + defaultSpoolValue = eos.config.settings['globalDefaultSpoolupPercentage'] + dps = stuff.getTotalDps(spoolOptions=SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False)).total + if dps is None: + return '' + return formatAmount(dps, 3, 0, 0) + return '' + + +DpsColumn.register() diff --git a/gui/builtinViewColumns/volley.py b/gui/builtinViewColumns/volley.py new file mode 100644 index 000000000..9c00e9111 --- /dev/null +++ b/gui/builtinViewColumns/volley.py @@ -0,0 +1,52 @@ +# ============================================================================= +# Copyright (C) 2010 Diego Duclos +# +# This file is part of pyfa. +# +# pyfa is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# pyfa is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with pyfa. If not, see . +# ============================================================================= + + +# noinspection PyPackageRequirements +import wx + +import eos.config +import gui.mainFrame +from eos.saveddata.fit import Fit +from eos.utils.spoolSupport import SpoolOptions, SpoolType +from gui.viewColumn import ViewColumn +from gui.utils.numberFormatter import formatAmount + + +class VolleyColumn(ViewColumn): + + name = 'Volley' + + def __init__(self, fittingView, params): + ViewColumn.__init__(self, fittingView) + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + self.columnText = 'Volley' + self.mask = wx.LIST_MASK_TEXT + + def getText(self, stuff): + if isinstance(stuff, Fit): + defaultSpoolValue = eos.config.settings['globalDefaultSpoolupPercentage'] + dps = stuff.getTotalVolley(spoolOptions=SpoolOptions(SpoolType.SCALE, defaultSpoolValue, False)).total + if dps is None: + return '' + return formatAmount(dps, 3, 0, 0) + return '' + + +VolleyColumn.register() diff --git a/gui/graphFrame/lists.py b/gui/graphFrame/lists.py index a306fdf97..3954e8826 100644 --- a/gui/graphFrame/lists.py +++ b/gui/graphFrame/lists.py @@ -46,6 +46,7 @@ class BaseList(gui.display.Display): self.contextMenu.Append(removeItem) self.contextMenu.Bind(wx.EVT_MENU, self.ContextMenuHandler, removeItem) + self.graphFrame.mainFrame.Bind(GE.FIT_CHANGED, self.OnFitChanged) self.graphFrame.mainFrame.Bind(GE.FIT_REMOVED, self.OnFitRemoved) self.graphFrame.mainFrame.Bind(EVT_FIT_RENAMED, self.OnFitRenamed) self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDClick) @@ -91,6 +92,10 @@ class BaseList(gui.display.Display): event.Skip() self.update(self.fits) + def OnFitChanged(self, event): + event.Skip() + self.update(self.fits) + def getSelectedFits(self): fits = [] for row in self.getSelectedRows(): @@ -114,6 +119,7 @@ class BaseList(gui.display.Display): def unbindExternalEvents(self): self.graphFrame.mainFrame.Unbind(GE.FIT_REMOVED, handler=self.OnFitRemoved) + self.graphFrame.mainFrame.Unbind(GE.FIT_CHANGED, handler=self.OnFitChanged) self.graphFrame.mainFrame.Unbind(EVT_FIT_RENAMED, handler=self.OnFitRenamed) def handleDrag(self, type, fitID): @@ -128,6 +134,12 @@ class BaseList(gui.display.Display): class FitList(BaseList): + DEFAULT_COLS = ( + 'Base Icon', + 'Base Name', + 'Dps', + 'Volley') + def __init__(self, graphFrame, parent): super().__init__(graphFrame, parent) fit = Fit.getInstance().getFit(self.graphFrame.mainFrame.getActiveFit()) diff --git a/gui/viewColumn.py b/gui/viewColumn.py index c992b9c7d..6e1a54be9 100644 --- a/gui/viewColumn.py +++ b/gui/viewColumn.py @@ -75,10 +75,12 @@ from gui.builtinViewColumns import ( # noqa: E402, F401 baseIcon, baseName, capacitorUse, + dps, maxRange, misc, price, propertyDisplay, state, - sideEffects + sideEffects, + volley )