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
)