Make it run again

This commit is contained in:
Ebag333
2016-12-02 03:13:54 -08:00
parent bb96b0af1a
commit d963327ed4
94 changed files with 631 additions and 583 deletions

View File

@@ -18,12 +18,12 @@
#===============================================================================
import wx
import service
import gui.display as d
import gui.globalEvents as GE
import gui.marketBrowser as mb
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu
from service.fit import Fit
class BoosterViewDrop(wx.PyDropTarget):
def __init__(self, dropFn):
@@ -85,7 +85,7 @@ class BoosterView(d.Display):
event.Skip()
def fitChanged(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
self.Parent.Parent.DisablePage(self, not fit or fit.isStructure)
@@ -115,7 +115,7 @@ class BoosterView(d.Display):
event.Skip()
def addItem(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(fitID)
@@ -139,7 +139,7 @@ class BoosterView(d.Display):
def removeBooster(self, booster):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.removeBooster(fitID, self.origional.index(booster))
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -150,7 +150,7 @@ class BoosterView(d.Display):
col = self.getColumn(event.Position)
if col == self.getColIndex(State):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.toggleBooster(fitID, row)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -163,7 +163,7 @@ class BoosterView(d.Display):
def spawnMenu(self):
sel = self.GetFirstSelected()
if sel != -1:
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.mainFrame.getActiveFit())
item = fit.boosters[sel]

View File

@@ -1,6 +1,5 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import wx
import gui.globalEvents as GE
@@ -25,7 +24,7 @@ class AmmoPattern(ContextMenu):
def activate(self, fullContext, selection, i):
item = selection[0]
fit = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.setAsPattern(fit, item)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fit))

View File

@@ -2,7 +2,6 @@ from gui.contextMenu import ContextMenu
from gui.itemStats import ItemStatsDialog
import eos.types
import gui.mainFrame
import service
import gui.globalEvents as GE
import wx
@@ -46,7 +45,7 @@ class AmountChanger(wx.Dialog):
self.button.Bind(wx.EVT_BUTTON, self.change)
def change(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
mainFrame = gui.mainFrame.MainFrame.getInstance()
fitID = mainFrame.getActiveFit()

View File

@@ -2,16 +2,16 @@ from gui.contextMenu import ContextMenu
from gui.itemStats import ItemStatsDialog
import eos.types
import gui.mainFrame
import service
import gui.globalEvents as GE
import wx
from service.fit import Fit
class Cargo(ContextMenu):
def __init__(self):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
def display(self, srcContext, selection):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(fitID)
@@ -24,7 +24,7 @@ class Cargo(ContextMenu):
return "Add {0} to Cargo".format(itmContext)
def activate(self, fullContext, selection, i):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
typeID = int(selection[0].ID)

View File

@@ -1,11 +1,12 @@
# -*- coding: utf-8 -*-
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import wx
from gui.bitmapLoader import BitmapLoader
from eos.types import Skill
import gui.globalEvents as GE
from service.fit import Fit
from service.character import Character
class ChangeAffectingSkills(ContextMenu):
def __init__(self):
@@ -15,8 +16,8 @@ class ChangeAffectingSkills(ContextMenu):
if self.mainFrame.getActiveFit() is None or srcContext not in ("fittingModule", "fittingCharge", "fittingShip"):
return False
self.sChar = service.Character.getInstance()
self.sFit = service.Fit.getInstance()
self.sChar = Character.getInstance()
self.sFit = Fit.getInstance()
fit = self.sFit.getFit(self.mainFrame.getActiveFit())
self.charID = fit.character.ID
@@ -26,7 +27,7 @@ class ChangeAffectingSkills(ContextMenu):
if srcContext == "fittingShip":
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
self.stuff = sFit.getFit(fitID).ship
cont = sFit.getFit(fitID).ship.itemModifiedAttributes
elif srcContext == "fittingCharge":

View File

@@ -1,9 +1,10 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.globalEvents as GE
import wx
from gui.bitmapLoader import BitmapLoader
from service.fit import Fit
from service.damagePattern import DamagePattern as import_DamagePattern
try:
from collections import OrderedDict
@@ -18,8 +19,8 @@ class DamagePattern(ContextMenu):
return srcContext == "resistancesViewFull" and self.mainFrame.getActiveFit() is not None
def getText(self, itmContext, selection):
sDP = service.DamagePattern.getInstance()
sFit = service.Fit.getInstance()
sDP = import_DamagePattern.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
self.fit = sFit.getFit(fitID)
@@ -59,7 +60,7 @@ class DamagePattern(ContextMenu):
menuItem.pattern = pattern
# determine active pattern
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
f = sFit.getFit(fitID)
dp = f.damagePattern
@@ -98,7 +99,7 @@ class DamagePattern(ContextMenu):
event.Skip()
return
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
sFit.setDamagePattern(fitID, pattern)
setattr(self.mainFrame,"_activeDmgPattern", pattern)

View File

@@ -1,6 +1,5 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import wx
import gui.globalEvents as GE
@@ -15,7 +14,7 @@ class ItemRemove(ContextMenu):
return "Remove {0} Stack".format(itmContext)
def activate(self, fullContext, selection, i):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(fitID)

View File

@@ -2,7 +2,6 @@ from gui.contextMenu import ContextMenu
from gui.itemStats import ItemStatsDialog
import gui.mainFrame
import gui.globalEvents as GE
import service
import wx
class DroneSplit(ContextMenu):
@@ -48,7 +47,7 @@ class DroneSpinner(wx.Dialog):
self.button.Bind(wx.EVT_BUTTON, self.split)
def split(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
mainFrame = gui.mainFrame.MainFrame.getInstance()
fitID = mainFrame.getActiveFit()
if self.context == "droneItem":

View File

@@ -1,9 +1,9 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.globalEvents as GE
import wx
from gui.bitmapLoader import BitmapLoader
from service.fit import Fit
class FactorReload(ContextMenu):
def __init__(self):
@@ -16,14 +16,14 @@ class FactorReload(ContextMenu):
return "Factor in Reload Time"
def activate(self, fullContext, selection, i):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.serviceFittingOptions["useGlobalForceReload"] = not sFit.serviceFittingOptions["useGlobalForceReload"]
fitID = self.mainFrame.getActiveFit()
sFit.refreshFit(fitID)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
def getBitmap(self, context, selection):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(fitID)
if fit.factorReload:

View File

@@ -1,7 +1,6 @@
import wx
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.globalEvents as GE
class FighterAbility(ContextMenu):
@@ -48,7 +47,7 @@ class FighterAbility(ContextMenu):
event.Skip()
return
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
sFit.toggleFighterAbility(fitID, ability)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))

View File

@@ -1,6 +1,5 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.globalEvents as GE
import wx
@@ -59,7 +58,7 @@ class ImplantSets(ContextMenu):
if self.context == "implantEditor":
# we are calling from character editor, the implant source is different
sChar = service.Character.getInstance()
sChar = Character.getInstance()
charID = self.selection.getActiveCharacter()
for implant in set.implants:
@@ -67,7 +66,7 @@ class ImplantSets(ContextMenu):
wx.PostEvent(self.selection, GE.CharChanged())
else:
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
for implant in set.implants:
sFit.addImplant(fitID, implant.item.ID, recalc=implant == set.implants[-1])

View File

@@ -1,6 +1,5 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import wx
import gui.globalEvents as GE
@@ -21,7 +20,7 @@ class ItemRemove(ContextMenu):
def activate(self, fullContext, selection, i):
srcContext = fullContext[0]
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(fitID)

View File

@@ -1,8 +1,8 @@
from gui.contextMenu import ContextMenu
from gui.itemStats import ItemStatsDialog
import gui.mainFrame
import service
import wx
from service.fit import Fit
class ItemStats(ContextMenu):
def __init__(self):
@@ -27,7 +27,7 @@ class ItemStats(ContextMenu):
srcContext = fullContext[0]
if srcContext == "fittingShip":
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
stuff = sFit.getFit(fitID).ship
else:
stuff = selection[0]

View File

@@ -1,7 +1,7 @@
from gui.contextMenu import ContextMenu
from gui.itemStats import ItemStatsDialog
import gui.mainFrame
import service
from service.market import Market
class MarketJump(ContextMenu):
def __init__(self):
@@ -19,7 +19,7 @@ class MarketJump(ContextMenu):
if not srcContext in validContexts or selection is None or len(selection) < 1:
return False
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
item = getattr(selection[0], "item", selection[0])
mktGrp = sMkt.getMarketGroupByItem(item)

View File

@@ -2,9 +2,10 @@
from gui.contextMenu import ContextMenu
from gui.itemStats import ItemStatsDialog
import gui.mainFrame
import service
import wx
import gui.globalEvents as GE
from service.market import Market
from service.fit import Fit
class MetaSwap(ContextMenu):
def __init__(self):
@@ -17,7 +18,7 @@ class MetaSwap(ContextMenu):
# Check if list of variations is same for all of selection
# If not - don't show the menu
mkt = service.Market.getInstance()
mkt = Market.getInstance()
self.variations = None
for i in selection:
variations = mkt.getVariationsByItems([i.item])
@@ -88,7 +89,7 @@ class MetaSwap(ContextMenu):
event.Skip()
return
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(fitID)

View File

@@ -1,11 +1,12 @@
# -*- coding: utf-8 -*-
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import wx
from gui.bitmapLoader import BitmapLoader
from eos.types import Hardpoint
import gui.globalEvents as GE
from service.market import Market
from service.fit import Fit
class ModuleAmmoPicker(ContextMenu):
DAMAGE_TYPES = ("em", "explosive", "kinetic", "thermal")
@@ -40,7 +41,7 @@ class ModuleAmmoPicker(ContextMenu):
return False
self.modules = modules
self.charges = list(filter(lambda charge: service.Market.getInstance().getPublicityByItem(charge), validCharges))
self.charges = list(filter(lambda charge: Market.getInstance().getPublicityByItem(charge), validCharges))
return len(self.charges) > 0
def getText(self, itmContext, selection):
@@ -214,7 +215,7 @@ class ModuleAmmoPicker(ContextMenu):
event.Skip()
return
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
sFit.setAmmo(fitID, charge.ID if charge is not None else None, self.modules)

View File

@@ -1,7 +1,6 @@
# -*- coding: utf-8 -*-
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import wx
from gui.bitmapLoader import BitmapLoader
from eos.types import Hardpoint
@@ -26,7 +25,7 @@ class ModuleGlobalAmmoPicker(ModuleAmmoPicker):
event.Skip()
return
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = eos.db.getFit(fitID)

View File

@@ -2,7 +2,7 @@ from gui.contextMenu import ContextMenu
import gui.mainFrame
import wx
import gui.globalEvents as GE
import service
from service.market import Market
class PriceClear(ContextMenu):
def __init__(self):
@@ -15,7 +15,7 @@ class PriceClear(ContextMenu):
return "Reset Price Cache"
def activate(self, fullContext, selection, i):
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
sMkt.clearPriceCache()
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit()))

View File

@@ -1,9 +1,9 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.globalEvents as GE
import wx
import eos.db
from service.fit import Fit
class Project(ContextMenu):
def __init__(self):
@@ -13,7 +13,7 @@ class Project(ContextMenu):
if srcContext not in ("marketItemGroup", "marketItemMisc") or self.mainFrame.getActiveFit() is None:
return False
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(fitID)
@@ -27,7 +27,7 @@ class Project(ContextMenu):
return "Project {0} onto Fit".format(itmContext)
def activate(self, fullContext, selection, i):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
trigger = sFit.project(fitID, selection[0])
if trigger:

View File

@@ -1,8 +1,8 @@
import wx
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
from gui.shipBrowser import Stage3Selected
from service.fit import Fit
class ShipJump(ContextMenu):
def __init__(self):
@@ -16,7 +16,7 @@ class ShipJump(ContextMenu):
def activate(self, fullContext, selection, i):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
stuff = sFit.getFit(fitID).ship
groupID = stuff.item.group.ID

View File

@@ -1,8 +1,9 @@
import wx
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.globalEvents as GE
from service.fit import Fit
class TacticalMode(ContextMenu):
def __init__(self):
@@ -12,7 +13,7 @@ class TacticalMode(ContextMenu):
if self.mainFrame.getActiveFit() is None or srcContext != "fittingShip":
return False
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(fitID)
@@ -52,7 +53,7 @@ class TacticalMode(ContextMenu):
event.Skip()
return
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
sFit.setMode(fitID, self.modeIds[event.Id])
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))

View File

@@ -1,9 +1,10 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import service
import gui.globalEvents as GE
import wx
from gui.bitmapLoader import BitmapLoader
from service import targetResists as svc_targetResists
from service.fit import Fit
try:
from collections import OrderedDict
@@ -18,7 +19,7 @@ class TargetResists(ContextMenu):
if self.mainFrame.getActiveFit() is None or srcContext != "firepowerViewFull":
return False
sTR = service.TargetResists.getInstance()
sTR = svc_targetResists.TargetResists.getInstance()
self.patterns = sTR.getTargetResistsList()
self.patterns.sort(key=lambda p: (p.name in ["None"], p.name))
@@ -33,7 +34,7 @@ class TargetResists(ContextMenu):
event.Skip()
return
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
sFit.setTargetResists(fitID, pattern)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -50,7 +51,7 @@ class TargetResists(ContextMenu):
item.pattern = pattern
# determine active pattern
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
f = sFit.getFit(fitID)
tr = f.targetResists

View File

@@ -1,8 +1,9 @@
from gui.contextMenu import ContextMenu
import gui.mainFrame
import gui.globalEvents as GE
import service
import wx
from service.market import Market
from service.fit import Fit
class WhProjector(ContextMenu):
def __init__(self):
@@ -16,7 +17,7 @@ class WhProjector(ContextMenu):
def getSubMenu(self, context, selection, rootMenu, i, pitem):
msw = True if "wxMSW" in wx.PlatformInfo else False
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
effdata = sMkt.getSystemWideEffects()
self.idmap = {}
@@ -48,7 +49,7 @@ class WhProjector(ContextMenu):
event.Skip()
return
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
sFit.project(fitID, swObj)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))

View File

@@ -18,12 +18,11 @@
#===============================================================================
from gui.graph import Graph
import service
from gui.bitmapLoader import BitmapLoader
from eos.graph.fitDps import FitDpsGraph as FitDps
from eos.graph import Data
import gui.mainFrame
import service
from service.attribute import Attribute
class FitDpsGraph(Graph):
propertyAttributeMap = {"angle": "maxVelocity",
@@ -53,7 +52,7 @@ class FitDpsGraph(Graph):
def getIcons(self):
icons = {}
sAttr = service.Attribute.getInstance()
sAttr = Attribute.getInstance()
for key, attrName in self.propertyAttributeMap.iteritems():
iconFile = sAttr.getAttributeInfo(attrName).icon.iconFile
bitmap = BitmapLoader.getBitmap(iconFile, "icons")

View File

@@ -4,8 +4,9 @@ from gui.preferenceView import PreferenceView
from gui.bitmapLoader import BitmapLoader
import gui.mainFrame
import service
from service.crest import CrestModes
from service.crest import Crest
from service.settings import CRESTSettings
from wx.lib.intctrl import IntCtrl
@@ -15,7 +16,7 @@ class PFCrestPref ( PreferenceView):
def populatePanel( self, panel ):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.settings = service.settings.CRESTSettings.getInstance()
self.settings = CRESTSettings.getInstance()
self.dirtySettings = False
dlgWidth = panel.GetParent().GetParent().ClientSize.width
mainSizer = wx.BoxSizer( wx.VERTICAL )
@@ -107,16 +108,16 @@ class PFCrestPref ( PreferenceView):
def OnModeChange(self, event):
self.settings.set('mode', event.GetInt())
self.ToggleProxySettings(self.settings.get('mode'))
service.Crest.restartService()
Crest.restartService()
def OnServerChange(self, event):
self.settings.set('server', event.GetInt())
service.Crest.restartService()
Crest.restartService()
def OnBtnApply(self, event):
self.settings.set('clientID', self.inputClientID.GetValue().strip())
self.settings.set('clientSecret', self.inputClientSecret.GetValue().strip())
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
sCrest.delAllCharacters()
def ToggleProxySettings(self, mode):

View File

@@ -4,9 +4,9 @@ from gui.preferenceView import PreferenceView
from gui.bitmapLoader import BitmapLoader
import gui.mainFrame
import service
import gui.globalEvents as GE
from service.settings import SettingsProvider
from service.fit import Fit
class PFGeneralPref ( PreferenceView):
title = "General"
@@ -14,7 +14,7 @@ class PFGeneralPref ( PreferenceView):
def populatePanel( self, panel ):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.dirtySettings = False
self.openFitsSettings = service.SettingsProvider.getInstance().getSettings("pyfaPrevOpenFits", {"enabled": False, "pyfaOpenFits": []})
self.openFitsSettings = SettingsProvider.getInstance().getSettings("pyfaPrevOpenFits", {"enabled": False, "pyfaOpenFits": []})
mainSizer = wx.BoxSizer( wx.VERTICAL )
@@ -70,7 +70,7 @@ class PFGeneralPref ( PreferenceView):
defCharSizer = wx.BoxSizer( wx.HORIZONTAL )
self.sFit = service.Fit.getInstance()
self.sFit = Fit.getInstance()
self.cbGlobalChar.SetValue(self.sFit.serviceFittingOptions["useGlobalCharacter"])
self.cbGlobalDmgPattern.SetValue(self.sFit.serviceFittingOptions["useGlobalDamagePattern"])

View File

@@ -5,9 +5,10 @@ from gui.preferenceView import PreferenceView
from gui.bitmapLoader import BitmapLoader
import gui.mainFrame
import service
import gui.globalEvents as GE
from service.settings import HTMLExportSettings
class PFHTMLExportPref ( PreferenceView):
title = "HTML Export"
@@ -22,7 +23,7 @@ class PFHTMLExportPref ( PreferenceView):
def populatePanel( self, panel ):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.HTMLExportSettings = service.settings.HTMLExportSettings.getInstance()
self.HTMLExportSettings = HTMLExportSettings.getInstance()
self.dirtySettings = False
dlgWidth = panel.GetParent().GetParent().ClientSize.width
mainSizer = wx.BoxSizer( wx.VERTICAL )

View File

@@ -4,7 +4,8 @@ from gui.preferenceView import PreferenceView
from gui.bitmapLoader import BitmapLoader
import gui.mainFrame
import service
from service.settings import NetworkSettings
from service.network import Network
class PFNetworkPref ( PreferenceView):
title = "Network"
@@ -12,8 +13,8 @@ class PFNetworkPref ( PreferenceView):
def populatePanel( self, panel ):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
self.settings = service.settings.NetworkSettings.getInstance()
self.network = service.Network.getInstance()
self.settings = NetworkSettings.getInstance()
self.network = Network.getInstance()
self.dirtySettings = False
mainSizer = wx.BoxSizer( wx.VERTICAL )
@@ -164,7 +165,7 @@ class PFNetworkPref ( PreferenceView):
self.UpdateApplyButtonState()
if self.nMode is not service.settings.NetworkSettings.PROXY_MODE_MANUAL: # == 2
if self.nMode is not NetworkSettings.PROXY_MODE_MANUAL: # == 2
self.ToggleProxySettings(False)
else:
self.ToggleProxySettings(True)
@@ -236,7 +237,7 @@ class PFNetworkPref ( PreferenceView):
self.UpdateApplyButtonState()
if choice is not service.settings.NetworkSettings.PROXY_MODE_MANUAL:
if choice is not NetworkSettings.PROXY_MODE_MANUAL:
self.ToggleProxySettings(False)
else:
self.ToggleProxySettings(True)

View File

@@ -1,11 +1,10 @@
import wx
import service
import os
from gui.preferenceView import PreferenceView
from gui.bitmapLoader import BitmapLoader
from service.settings import UpdateSettings
import service
import gui.globalEvents as GE
@@ -17,7 +16,7 @@ class PFUpdatePref (PreferenceView):
"suppressed release notifications, if any."
def populatePanel( self, panel ):
self.UpdateSettings = service.settings.UpdateSettings.getInstance()
self.UpdateSettings = UpdateSettings.getInstance()
self.dirtySettings = False
dlgWidth = panel.GetParent().GetParent().ClientSize.width

View File

@@ -18,7 +18,6 @@
#===============================================================================
import wx
import service
import gui.mainFrame
from gui.statsView import StatsView
from gui.bitmapLoader import BitmapLoader
@@ -114,7 +113,7 @@ class FirepowerViewFull(StatsView):
def switchToMiningYieldView(self, event):
# Getting the active fit
mainFrame = gui.mainFrame.MainFrame.getInstance()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(mainFrame.getActiveFit())
# Remove ourselves from statsPane's view list
self.parent.views.remove(self)

View File

@@ -18,7 +18,6 @@
#===============================================================================
import wx
import service
import gui.mainFrame
from gui.statsView import StatsView
from gui.bitmapLoader import BitmapLoader
@@ -103,7 +102,7 @@ class MiningYieldViewFull(StatsView):
def switchToFirepowerView(self, event):
# Getting the active fit
mainFrame = gui.mainFrame.MainFrame.getInstance()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(mainFrame.getActiveFit())
# Remove ourselves from statsPane's view list
self.parent.views.remove(self)
@@ -124,9 +123,9 @@ class MiningYieldViewFull(StatsView):
def refreshPanel(self, fit):
#If we did anything intresting, we'd update our labels to reflect the new fit's stats here
stats = (("labelFullminingyieldMiner", lambda: fit.minerYield * 3600, 3, 0, 0, u"%s m\u00B3/h",None),
("labelFullminingyieldDrone", lambda: fit.droneYield * 3600, 3, 0, 0, u"%s m\u00B3/h", None),
("labelFullminingyieldTotal", lambda: fit.totalYield * 3600, 3, 0, 0, u"%s m\u00B3/h", None))
stats = (("labelFullminingyieldMiner", lambda: fit.minerYield, 3, 0, 0, u"%s m\u00B3/s",None),
("labelFullminingyieldDrone", lambda: fit.droneYield, 3, 0, 0, u"%s m\u00B3/s", None),
("labelFullminingyieldTotal", lambda: fit.totalYield, 3, 0, 0, u"%s m\u00B3/s", None))
counter = 0
for labelName, value, prec, lowest, highest, valueFormat, altFormat in stats:

View File

@@ -22,7 +22,7 @@ from gui.statsView import StatsView
from gui import builtinStatsViews
from gui.bitmapLoader import BitmapLoader
from gui.utils.numberFormatter import formatAmount
import service
from service.market import Market
class PriceViewFull(StatsView):
name = "priceViewFull"
@@ -92,7 +92,7 @@ class PriceViewFull(StatsView):
for _ in xrange(cargo.amount):
typeIDs.append(cargo.itemID)
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
sMkt.getPrices(typeIDs, self.processPrices)
self.labelEMStatus.SetLabel("Updating prices...")
else:

View File

@@ -23,7 +23,7 @@ from gui.bitmapLoader import BitmapLoader
from gui.utils.numberFormatter import formatAmount
import gui.mainFrame
import gui.builtinStatsViews.resistancesViewFull as rvf
import service
from service.fit import Fit
class RechargeViewFull(StatsView):
name = "rechargeViewFull"
@@ -43,7 +43,7 @@ class RechargeViewFull(StatsView):
def toggleEffective(self, event):
self.effective = event.effective
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
self.refreshPanel(sFit.getFit(self.mainFrame.getActiveFit()))
event.Skip()

View File

@@ -23,7 +23,6 @@ from gui import builtinStatsViews
from gui.bitmapLoader import BitmapLoader
from gui import pygauge as PG
from gui.utils.numberFormatter import formatAmount
import service
import gui.mainFrame
import gui.builtinViews.fittingView as fv
import gui.globalEvents as GE

View File

@@ -22,14 +22,16 @@ from gui.viewColumn import ViewColumn
from gui.bitmapLoader import BitmapLoader
from gui.utils.numberFormatter import formatAmount
import service
from service.attribute import Attribute
from service.market import Market
import wx
class AttributeDisplay(ViewColumn):
name = "attr"
def __init__(self, fittingView, params):
ViewColumn.__init__(self, fittingView)
sAttr = service.Attribute.getInstance()
sAttr = Attribute.getInstance()
info = sAttr.getAttributeInfo(params["attribute"])
self.info = info
if params["showIcon"]:
@@ -57,7 +59,7 @@ class AttributeDisplay(ViewColumn):
self.direct = True
self.view = fittingView
originalRefresh = fittingView.refresh
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
#Hack into our master view and add a callback for ourselves to know when to query
def refresh(stuff):
self.directInfo = sMkt.directAttrRequest(stuff, info) if stuff else None

View File

@@ -21,9 +21,10 @@
from gui.viewColumn import ViewColumn
import gui.mainFrame
#from eos.saveddata.fit import Fit
from service.fit import Fit
import wx
from eos.types import Drone, Cargo, Fit, Module, Slot, Rack, Implant, Fighter
import service
from eos.types import Drone, Cargo, Module, Slot, Rack, Implant, Fighter
class BaseName(ViewColumn):
name = "Base Name"
@@ -51,7 +52,7 @@ class BaseName(ViewColumn):
else:
return "%s (%s)" % (stuff.name, stuff.ship.item.name)
elif isinstance(stuff, Rack):
if service.Fit.getInstance().serviceFittingOptions["rackLabels"]:
if Fit.getInstance().serviceFittingOptions["rackLabels"]:
if stuff.slot == Slot.MODE:
return u'─ Tactical Mode ─'
else:
@@ -68,7 +69,7 @@ class BaseName(ViewColumn):
else:
item = getattr(stuff, "item", stuff)
if service.Fit.getInstance().serviceFittingOptions["showMarketShortcuts"]:
if Fit.getInstance().serviceFittingOptions["showMarketShortcuts"]:
marketShortcut = getattr(item, "marketShortcut", None)
if marketShortcut:

View File

@@ -18,12 +18,12 @@
#===============================================================================
import wx
import service
from gui.utils.numberFormatter import formatAmount
from gui.viewColumn import ViewColumn
from gui.bitmapLoader import BitmapLoader
from eos.types import Mode
from service.attribute import Attribute
class CapacitorUse(ViewColumn):
name = "Capacitor Usage"
@@ -32,7 +32,7 @@ class CapacitorUse(ViewColumn):
self.mask = wx.LIST_MASK_IMAGE
sAttr = service.Attribute.getInstance()
sAttr = Attribute.getInstance()
info = sAttr.getAttributeInfo("capacitorNeed")
self.imageId = fittingView.imageList.GetImageIndex("capacitorRecharge_small", "gui")
self.bitmap = BitmapLoader.getBitmap("capacitorRecharge_small", "gui")

View File

@@ -20,11 +20,12 @@
from gui import builtinViewColumns
from gui.viewColumn import ViewColumn
from gui.bitmapLoader import BitmapLoader
import service
from gui.utils.numberFormatter import formatAmount
import wx
from eos.types import Mode
from service.attribute import Attribute
class MaxRange(ViewColumn):
name = "Max Range"
def __init__(self, fittingView, params = None):
@@ -33,7 +34,7 @@ class MaxRange(ViewColumn):
"displayName": False}
ViewColumn.__init__(self, fittingView)
sAttr = service.Attribute.getInstance()
sAttr = Attribute.getInstance()
info = sAttr.getAttributeInfo("maxRange")
self.info = info
if params["showIcon"]:

View File

@@ -405,9 +405,9 @@ class Miscellanea(ViewColumn):
cycleTime = stuff.cycleTime
if not miningAmount or not cycleTime:
return "", None
minePerHour = (float(miningAmount) * 1000 / cycleTime) * 3600
text = "{0}/h".format(formatAmount(minePerHour, 3, 0, 3))
tooltip = "Mining Yield per hour"
minePerSec = float(miningAmount) * 1000 / cycleTime
text = "{0}/s".format(formatAmount(minePerSec, 3, 0, 3))
tooltip = "Yield per second"
return text, tooltip
elif itemGroup == "Logistic Drone":
armorAmount = stuff.getModifiedItemAttr("armorDamageAmount")
@@ -442,9 +442,9 @@ class Miscellanea(ViewColumn):
cycleTime = stuff.getModifiedItemAttr("duration")
if not miningAmount or not cycleTime:
return "", None
minePerHour = (float(miningAmount) * 1000 / cycleTime) * 3600
text = "{0}/h".format(formatAmount(minePerHour, 3, 0, 3))
tooltip = "Mining Yield per hour"
minePerSec = float(miningAmount) * 1000 / cycleTime
text = "{0}/s".format(formatAmount(minePerSec, 3, 0, 3))
tooltip = "Yield per second"
return text, tooltip
elif itemGroup == "Micro Jump Drive":
cycleTime = stuff.getModifiedItemAttr("duration") / 1000

View File

@@ -22,7 +22,7 @@ from gui.bitmapLoader import BitmapLoader
from gui.utils.numberFormatter import formatAmount
from eos.types import Drone, Cargo
import wx
import service
from service.market import Market
class Price(ViewColumn):
name = "Price"
@@ -36,7 +36,7 @@ class Price(ViewColumn):
if stuff.item is None or stuff.item.group.name == "Ship Modifiers":
return ""
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
price = sMkt.getPriceNow(stuff.item.ID)
if not price or not price.price or not price.isValid:
@@ -50,7 +50,7 @@ class Price(ViewColumn):
return formatAmount(price, 3, 3, 9, currency=True)
def delayedText(self, mod, display, colItem):
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
def callback(item):
price = sMkt.getPriceNow(item.ID)
text = formatAmount(price.price, 3, 3, 9, currency=True) if price.price else ""

View File

@@ -21,13 +21,12 @@ from gui.viewColumn import ViewColumn
from gui.bitmapLoader import BitmapLoader
from gui.utils.numberFormatter import formatAmount
import wx
import service
class PropertyDisplay(ViewColumn):
name = "prop"
def __init__(self, fittingView, params):
ViewColumn.__init__(self, fittingView)
sAttr = service.Attribute.getInstance()
sAttr = Attribute.getInstance()
attributeSlave = params["attributeSlave"] or params["property"]
# This function can throw an exception if the database isn't sane
# We need to do a sanity check before this runs

View File

@@ -2,7 +2,6 @@ import wx
import gui.globalEvents as GE
import gui.chromeTabs
import gui.mainFrame
import service
class BlankPage(wx.Panel):
def __init__(self, parent):
@@ -23,7 +22,7 @@ class BlankPage(wx.Panel):
def pageChanged(self, event):
if self.parent.IsActive(self):
fitID = None
# sFit = service.Fit.getInstance()
# sFit = Fit.getInstance()
# sFit.switchFit(fitID)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))

View File

@@ -1,6 +1,5 @@
import wx
from gui.bitmapLoader import BitmapLoader
import service
class BaseValidator(wx.PyValidator):
def __init__(self):

View File

@@ -19,7 +19,6 @@
import wx
import wx.lib.newevent
import service
import gui.mainFrame
import gui.marketBrowser
import gui.display as d
@@ -32,6 +31,9 @@ from gui.bitmapLoader import BitmapLoader
import gui.builtinViews.emptyView
from gui.utils.exportHtml import exportHtml
from service.fit import Fit
from service.market import Market
import gui.globalEvents as GE
#Tab spawning handler
@@ -55,7 +57,7 @@ class FitSpawner(gui.multiSwitch.TabSpawner):
pass
if count < 0:
startup = getattr(event, "startup", False) # see OpenFitsThread in gui.mainFrame
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
openFitInNew = sFit.serviceFittingOptions["openFitInNew"]
mstate = wx.GetMouseState()
@@ -207,7 +209,7 @@ class FittingView(d.Display):
def pageChanged(self, event):
if self.parent.IsActive(self):
fitID = self.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.switchFit(fitID)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -262,7 +264,7 @@ class FittingView(d.Display):
try:
# Sometimes there is no active page after deletion, hence the try block
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.refreshFit(self.getActiveFit())
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.activeFitID))
except wx._core.PyDeadObjectError:
@@ -282,7 +284,7 @@ class FittingView(d.Display):
fitID = event.fitID
startup = getattr(event, "startup", False)
self.activeFitID = fitID
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
self.updateTab()
if not startup or startup == 2: # see OpenFitsThread in gui.mainFrame
self.Show(fitID is not None)
@@ -293,7 +295,7 @@ class FittingView(d.Display):
event.Skip()
def updateTab(self):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.getActiveFit(), basic=True)
bitmap = BitmapLoader.getImage("race_%s_small" % fit.ship.item.race, "gui")
@@ -308,7 +310,7 @@ class FittingView(d.Display):
itemID = event.itemID
fitID = self.activeFitID
if fitID != None:
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
if sFit.isAmmo(itemID):
modules = []
sel = self.GetFirstSelected()
@@ -337,7 +339,7 @@ class FittingView(d.Display):
self.click(event)
def removeModule(self, module):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.activeFitID)
populate = sFit.removeModule(self.activeFitID, fit.modules.index(module))
@@ -351,7 +353,7 @@ class FittingView(d.Display):
dstRow, _ = self.HitTest((x, y))
if dstRow != -1 and dstRow not in self.blanks:
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
moduleChanged = sFit.changeModule(fitID, self.mods[dstRow].position, srcIdx)
if moduleChanged is None:
@@ -367,7 +369,7 @@ class FittingView(d.Display):
if dstRow != -1 and dstRow not in self.blanks:
module = self.mods[dstRow]
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.moveCargoToModule(self.mainFrame.getActiveFit(), module.position, srcIdx, mstate.CmdDown() and module.isEmpty)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit()))
@@ -375,7 +377,7 @@ class FittingView(d.Display):
def swapItems(self, x, y, srcIdx):
'''Swap two modules in fitting window'''
mstate = wx.GetMouseState()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.activeFitID)
if mstate.CmdDown():
@@ -408,7 +410,7 @@ class FittingView(d.Display):
known to the display, and not the backend, so it's safe.
'''
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.activeFitID)
slotOrder = [Slot.SUBSYSTEM, Slot.HIGH, Slot.MED, Slot.LOW, Slot.RIG, Slot.SERVICE]
@@ -481,7 +483,7 @@ class FittingView(d.Display):
if self.activeFitID is None:
return
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
selection = []
sel = self.GetFirstSelected()
contexts = []
@@ -505,7 +507,7 @@ class FittingView(d.Display):
sel = self.GetNextSelected(sel)
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.activeFitID)
contexts.append(("fittingShip", "Ship" if not fit.isStructure else "Citadel"))
@@ -537,7 +539,7 @@ class FittingView(d.Display):
else:
mods = self.getSelectedMods()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
ctrl = wx.GetMouseState().CmdDown() or wx.GetMouseState().MiddleDown()
click = "ctrl" if ctrl is True else "right" if event.GetButton() == 3 else "left"
@@ -571,7 +573,7 @@ class FittingView(d.Display):
self.Freeze()
d.Display.refresh(self, stuff)
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.activeFitID)
slotMap = {}
@@ -637,7 +639,7 @@ class FittingView(d.Display):
for i in xrange(len(self.DEFAULT_COLS)):
columnsWidths.append(0)
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
try:
fit = sFit.getFit(self.activeFitID)
except:

View File

@@ -1,6 +1,5 @@
import wx.gizmos
import gui.fleetBrowser
import service
from gui.bitmapLoader import BitmapLoader
#Tab spawning handler

View File

@@ -1,10 +1,10 @@
import wx
import service
import gui.display as d
from gui.bitmapLoader import BitmapLoader
import gui.PFSearchBox as SBox
from gui.marketBrowser import SearchBox
from wx.lib.buttons import GenBitmapButton
from service.market import Market
class BaseImplantEditorView (wx.Panel):
def addMarketViewImage(self, iconFile):
@@ -71,7 +71,7 @@ class BaseImplantEditorView (wx.Panel):
# Populate the market tree
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
for mktGrp in sMkt.getImplantTree():
iconId = self.addMarketViewImage(sMkt.getIconByMarketGroup(mktGrp))
childId = self.availableImplantsTree.AppendItem(root, mktGrp.name, iconId, data=wx.TreeItemData(mktGrp.ID))
@@ -126,7 +126,7 @@ class BaseImplantEditorView (wx.Panel):
def expandLookup(self, event):
tree = self.availableImplantsTree
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
parent = event.Item
child, _ = tree.GetFirstChild(parent)
text = tree.GetItemText(child)
@@ -235,7 +235,7 @@ class ItemView(d.Display):
self.update(self.items)
def scheduleSearch(self, event=None):
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
search = self.searchBox.GetLineText(0)
# Make sure we do not count wildcard as search symbol

View File

@@ -18,12 +18,12 @@
#===============================================================================
import wx
import service
import gui.display as d
import gui.marketBrowser as mb
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu
import globalEvents as GE
from service.fit import Fit
class CargoViewDrop(wx.PyDropTarget):
def __init__(self, dropFn):
@@ -75,7 +75,7 @@ class CargoView(d.Display):
if data[0] == "fitting":
self.swapModule(x, y, int(data[1]))
elif data[0] == "market":
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.addCargo(self.mainFrame.getActiveFit(), int(data[1]), 1)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit()))
@@ -94,7 +94,7 @@ class CargoView(d.Display):
keycode = event.GetKeyCode()
if keycode == wx.WXK_DELETE or keycode == wx.WXK_NUMPAD_DELETE:
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
row = self.GetFirstSelected()
if row != -1:
sFit.removeCargo(fitID, self.GetItemData(row))
@@ -103,7 +103,7 @@ class CargoView(d.Display):
def swapModule(self, x, y, modIdx):
'''Swap a module from fitting window with cargo'''
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.mainFrame.getActiveFit())
dstRow, _ = self.HitTest((x, y))
mstate = wx.GetMouseState()
@@ -125,7 +125,7 @@ class CargoView(d.Display):
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit()))
def fitChanged(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
self.Parent.Parent.DisablePage(self, not fit or fit.isStructure)
@@ -161,7 +161,7 @@ class CargoView(d.Display):
col = self.getColumn(event.Position)
if col != self.getColIndex(State):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
cargo = self.cargo[self.GetItemData(row)]
sFit.removeCargo(fitID, self.original.index(cargo))
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -174,11 +174,11 @@ class CargoView(d.Display):
def spawnMenu(self):
sel = self.GetFirstSelected()
if sel != -1:
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.mainFrame.getActiveFit())
cargo = fit.cargo[sel]
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
sourceContext = "cargoItem"
itemContext = sMkt.getCategoryByItem(cargo.item).name

View File

@@ -22,11 +22,14 @@ import wx
import wx.lib.newevent
import wx.gizmos
from gui.bitmapLoader import BitmapLoader
import service
from gui.contextMenu import ContextMenu
import gui.globalEvents as GE
from gui.builtinViews.implantEditor import BaseImplantEditorView
from gui.builtinViews.entityEditor import EntityEditor, BaseValidator
from service.fit import Fit
from service.character import Character
from service.network import AuthenticationError, TimeoutError
from service.market import Market
class CharacterTextValidor(BaseValidator):
@@ -60,7 +63,7 @@ class CharacterEntityEditor(EntityEditor):
self.SetEditorValidator(CharacterTextValidor)
def getEntitiesFromContext(self):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
charList = sorted(sChar.getCharacterList(), key=lambda c: c.name)
# Do some processing to ensure that we have All 0 and All 5 at the top
@@ -76,21 +79,21 @@ class CharacterEntityEditor(EntityEditor):
return charList
def DoNew(self, name):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
return sChar.new(name)
def DoRename(self, entity, name):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
sChar.rename(entity, name)
def DoCopy(self, entity, name):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
copy = sChar.copy(entity)
sChar.rename(copy, name)
return copy
def DoDelete(self, entity):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
sChar.delete(entity)
@@ -104,7 +107,7 @@ class CharacterEditor(wx.Frame):
self.mainFrame = parent
#self.disableWin = wx.WindowDisabler(self)
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNFACE))
@@ -181,7 +184,7 @@ class CharacterEditor(wx.Frame):
self.Destroy()
def saveChar(self, event):
sChr = service.Character.getInstance()
sChr = Character.getInstance()
char = self.entityEditor.getActiveEntity()
sChr.saveCharacter(char.ID)
wx.PostEvent(self, GE.CharListUpdated())
@@ -192,7 +195,7 @@ class CharacterEditor(wx.Frame):
dlg.ShowModal()
def revertChar(self, event):
sChr = service.Character.getInstance()
sChr = Character.getInstance()
char = self.entityEditor.getActiveEntity()
sChr.revertCharacter(char.ID)
wx.PostEvent(self, GE.CharListUpdated())
@@ -223,7 +226,7 @@ class CharacterEditor(wx.Frame):
event.Skip()
def Destroy(self):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
if fitID is not None:
sFit.clearFit(fitID)
@@ -296,7 +299,7 @@ class SkillTreeView (wx.Panel):
self.Layout()
def populateSkillTree(self, event=None):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
char = self.charEditor.entityEditor.getActiveEntity()
dirtyGroups = set([skill.item.group.ID for skill in char.dirtySkills])
@@ -326,7 +329,7 @@ class SkillTreeView (wx.Panel):
tree.Delete(child)
#Get the real intrestin' stuff
sChar = service.Character.getInstance()
sChar = Character.getInstance()
char = self.charEditor.entityEditor.getActiveEntity()
for id, name in sChar.getSkills(tree.GetPyData(root)):
iconId = self.skillBookImageId
@@ -348,7 +351,7 @@ class SkillTreeView (wx.Panel):
return
char = self.charEditor.entityEditor.getActiveEntity()
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
if char.name not in ("All 0", "All 5"):
self.levelChangeMenu.selection = sMkt.getItem(self.skillTreeListCtrl.GetPyData(item))
self.PopupMenu(self.levelChangeMenu)
@@ -359,7 +362,7 @@ class SkillTreeView (wx.Panel):
def changeLevel(self, event):
level = self.levelIds.get(event.Id)
sChar = service.Character.getInstance()
sChar = Character.getInstance()
char = self.charEditor.entityEditor.getActiveEntity()
selection = self.skillTreeListCtrl.GetSelection()
skillID = self.skillTreeListCtrl.GetPyData(selection)
@@ -405,19 +408,19 @@ class ImplantEditorView(BaseImplantEditorView):
self.determineEnabled()
def getImplantsFromContext(self):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
char = self.Parent.Parent.entityEditor.getActiveEntity()
return sChar.getImplants(char.ID)
def addImplantToContext(self, item):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
char = self.Parent.Parent.entityEditor.getActiveEntity()
sChar.addImplant(char.ID, item.ID)
def removeImplantFromContext(self, implant):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
char = self.Parent.Parent.entityEditor.getActiveEntity()
sChar.removeImplant(char.ID, implant)
@@ -536,7 +539,7 @@ class APIView (wx.Panel):
self.charChanged(None)
def charChanged(self, event):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
activeChar = self.charEditor.entityEditor.getActiveEntity()
ID, key, char, chars = sChar.getApiDetails(activeChar.ID)
@@ -575,13 +578,13 @@ class APIView (wx.Panel):
self.stStatus.SetLabel("Invalid keyID or vCode!")
return
sChar = service.Character.getInstance()
sChar = Character.getInstance()
try:
activeChar = self.charEditor.entityEditor.getActiveEntity()
list = sChar.apiCharList(activeChar.ID, self.inputID.GetLineText(0), self.inputKey.GetLineText(0))
except service.network.AuthenticationError, e:
except AuthenticationError, e:
self.stStatus.SetLabel("Authentication failure. Please check keyID and vCode combination.")
except service.network.TimeoutError, e:
except TimeoutError, e:
self.stStatus.SetLabel("Request timed out. Please check network connectivity and/or proxy settings.")
except Exception, e:
self.stStatus.SetLabel("Error:\n%s"%e.message)
@@ -601,7 +604,7 @@ class APIView (wx.Panel):
charName = self.charChoice.GetString(self.charChoice.GetSelection())
if charName:
try:
sChar = service.Character.getInstance()
sChar = Character.getInstance()
activeChar = self.charEditor.entityEditor.getActiveEntity()
sChar.apiFetch(activeChar.ID, charName)
self.stStatus.SetLabel("Successfully fetched %s\'s skills from EVE API." % charName)
@@ -614,7 +617,7 @@ class SaveCharacterAs(wx.Dialog):
wx.Dialog.__init__(self, parent, title="Save Character As...", size=wx.Size(300, 60))
self.charID = charID
self.parent = parent
sChar = service.Character.getInstance()
sChar = Character.getInstance()
name = sChar.getCharName(charID)
bSizer1 = wx.BoxSizer(wx.HORIZONTAL)
@@ -631,7 +634,7 @@ class SaveCharacterAs(wx.Dialog):
self.button.Bind(wx.EVT_BUTTON, self.change)
def change(self, event):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
sChar.saveCharacterAs(self.charID, self.input.GetLineText(0))
wx.PostEvent(self.parent, GE.CharListUpdated())

View File

@@ -18,10 +18,11 @@
#===============================================================================
import wx
import service
from gui.bitmapLoader import BitmapLoader
import gui.globalEvents as GE
import gui.mainFrame
from service.character import Character
from service.fit import Fit
class CharacterSelection(wx.Panel):
def __init__(self, parent):
@@ -76,7 +77,7 @@ class CharacterSelection(wx.Panel):
def refreshCharacterList(self, event=None):
choice = self.charChoice
sChar = service.Character.getInstance()
sChar = Character.getInstance()
activeChar = self.getActiveCharacter()
choice.Clear()
@@ -94,7 +95,7 @@ class CharacterSelection(wx.Panel):
charID = sChar.all5ID()
self.selectChar(charID)
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.changeChar(fitID, charID)
choice.Append(u"\u2015 Open Character Editor \u2015", -1)
@@ -104,7 +105,7 @@ class CharacterSelection(wx.Panel):
event.Skip()
def refreshApi(self, event):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
ID, key, charName, chars = sChar.getApiDetails(self.getActiveCharacter())
if charName:
try:
@@ -117,7 +118,7 @@ class CharacterSelection(wx.Panel):
def charChanged(self, event):
fitID = self.mainFrame.getActiveFit()
charID = self.getActiveCharacter()
sChar = service.Character.getInstance()
sChar = Character.getInstance()
if charID == -1:
# revert to previous character
@@ -129,7 +130,7 @@ class CharacterSelection(wx.Panel):
else:
self.btnRefresh.Enable(False)
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.changeChar(fitID, charID)
self.charCache = self.charChoice.GetCurrentSelection()
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -148,7 +149,7 @@ class CharacterSelection(wx.Panel):
def fitChanged(self, event):
self.charChoice.Enable(event.fitID != None)
choice = self.charChoice
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
currCharID = choice.GetClientData(choice.GetCurrentSelection())
fit = sFit.getFit(event.fitID)
newCharID = fit.character.ID if fit is not None else None
@@ -156,7 +157,7 @@ class CharacterSelection(wx.Panel):
self.skillReqsStaticBitmap.SetBitmap(self.cleanSkills)
self.skillReqsStaticBitmap.SetToolTipString("No active fit")
else:
sCharacter = service.Character.getInstance()
sCharacter = Character.getInstance()
reqs = sCharacter.checkRequirements(fit)
sCharacter.skillReqsDict = {'charname':fit.character.name, 'skills':[]}
if len(reqs) == 0:
@@ -175,7 +176,7 @@ class CharacterSelection(wx.Panel):
self.skillReqsStaticBitmap.SetToolTipString(tip.strip())
if newCharID == None:
sChar = service.Character.getInstance()
sChar = Character.getInstance()
self.selectChar(sChar.all5ID())
elif currCharID != newCharID:
@@ -187,7 +188,7 @@ class CharacterSelection(wx.Panel):
def _buildSkillsTooltip(self, reqs, currItem = "", tabulationLevel = 0):
tip = ""
sCharacter = service.Character.getInstance()
sCharacter = Character.getInstance()
if tabulationLevel == 0:
for item, subReqs in reqs.iteritems():
@@ -210,7 +211,7 @@ class CharacterSelection(wx.Panel):
return tip
def _buildSkillsTooltipCondensed(self, reqs, currItem = "", tabulationLevel = 0, skillsMap = {}):
sCharacter = service.Character.getInstance()
sCharacter = Character.getInstance()
if tabulationLevel == 0:
for item, subReqs in reqs.iteritems():

View File

@@ -25,7 +25,8 @@ import gui.utils.fonts as fonts
from gui.bitmapLoader import BitmapLoader
import gui.utils.fonts as fonts
import service
from service.fit import Fit
_PageChanging, EVT_NOTEBOOK_PAGE_CHANGING = wx.lib.newevent.NewEvent()
_PageChanged, EVT_NOTEBOOK_PAGE_CHANGED = wx.lib.newevent.NewEvent()
@@ -699,7 +700,7 @@ class PFTabsContainer(wx.Panel):
self.containerHeight = height
self.startDrag = False
self.dragging = False
self.sFit = service.Fit.getInstance()
self.sFit = Fit.getInstance()
self.inclination = 7
if canAdd:

View File

@@ -20,11 +20,13 @@
import wx
import gui.display as d
import gui.globalEvents as GE
import service
import gui.droneView
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu
import eos.types
from service.fit import Fit
from service.market import Market
class DummyItem:
@@ -88,7 +90,7 @@ class CommandView(d.Display):
keycode = event.GetKeyCode()
if keycode == wx.WXK_DELETE or keycode == wx.WXK_NUMPAD_DELETE:
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
row = self.GetFirstSelected()
if row != -1:
sFit.removeCommand(fitID, self.get(row))
@@ -99,7 +101,7 @@ class CommandView(d.Display):
if type == "fit":
activeFit = self.mainFrame.getActiveFit()
if activeFit:
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
draggedFit = sFit.getFit(fitID)
sFit.addCommandFit(activeFit, draggedFit)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit))
@@ -118,7 +120,7 @@ class CommandView(d.Display):
return fit.name
def fitChanged(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
self.Parent.Parent.DisablePage(self, not fit or fit.isStructure)
@@ -168,7 +170,7 @@ class CommandView(d.Display):
col = self.getColumn(event.Position)
if col == self.getColIndex(State):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.toggleCommandFit(fitID, item)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -183,7 +185,7 @@ class CommandView(d.Display):
if sel != -1:
item = self.get(sel)
if item is None: return
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
fitSrcContext = "commandFit"
fitItemContext = item.name
context = ((fitSrcContext,fitItemContext),)
@@ -204,6 +206,6 @@ class CommandView(d.Display):
col = self.getColumn(event.Position)
if col != self.getColIndex(State):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.removeCommand(fitID, self.get(row))
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))

View File

@@ -4,7 +4,6 @@ import json
import wx
import requests
import service
from service.crest import CrestModes
from eos.types import Cargo
@@ -23,7 +22,7 @@ class CrestFittings(wx.Frame):
self.mainFrame = parent
mainSizer = wx.BoxSizer(wx.VERTICAL)
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
characterSelectSizer = wx.BoxSizer( wx.HORIZONTAL )
@@ -90,7 +89,7 @@ class CrestFittings(wx.Frame):
event.Skip()
def updateCharList(self):
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
chars = sCrest.getCrestCharacters()
if len(chars) == 0:
@@ -123,7 +122,7 @@ class CrestFittings(wx.Frame):
event.Skip()
def getActiveCharacter(self):
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
if sCrest.settings.get('mode') == CrestModes.IMPLICIT:
return sCrest.implicitCharacter.ID
@@ -132,7 +131,7 @@ class CrestFittings(wx.Frame):
return self.charChoice.GetClientData(selection) if selection is not None else None
def fetchFittings(self, event):
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
try:
waitDialog = wx.BusyInfo("Fetching fits, please wait...", parent=self)
fittings = sCrest.getFittings(self.getActiveCharacter())
@@ -150,12 +149,12 @@ class CrestFittings(wx.Frame):
if not selection:
return
data = self.fitTree.fittingsTreeCtrl.GetPyData(selection)
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fits = sFit.importFitFromBuffer(data)
self.mainFrame._openAfterImport(fits)
def deleteFitting(self, event):
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
selection = self.fitView.fitSelection
if not selection:
return
@@ -180,7 +179,7 @@ class ExportToEve(wx.Frame):
self.mainFrame = parent
self.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_BTNFACE))
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
mainSizer = wx.BoxSizer(wx.VERTICAL)
hSizer = wx.BoxSizer(wx.HORIZONTAL)
@@ -217,7 +216,7 @@ class ExportToEve(wx.Frame):
self.Centre(wx.BOTH)
def updateCharList(self):
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
chars = sCrest.getCrestCharacters()
if len(chars) == 0:
@@ -245,7 +244,7 @@ class ExportToEve(wx.Frame):
event.Skip()
def getActiveCharacter(self):
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
if sCrest.settings.get('mode') == CrestModes.IMPLICIT:
return sCrest.implicitCharacter.ID
@@ -254,7 +253,7 @@ class ExportToEve(wx.Frame):
return self.charChoice.GetClientData(selection) if selection is not None else None
def exportFitting(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
self.statusbar.SetStatusText("", 0)
@@ -264,7 +263,7 @@ class ExportToEve(wx.Frame):
return
self.statusbar.SetStatusText("Sending request and awaiting response", 1)
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
try:
data = sFit.exportCrest(fitID)
@@ -321,7 +320,7 @@ class CrestMgmt(wx.Dialog):
event.Skip()
def popCharList(self):
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
chars = sCrest.getCrestCharacters()
self.lcCharacters.DeleteAllItems()
@@ -335,7 +334,7 @@ class CrestMgmt(wx.Dialog):
self.lcCharacters.SetColumnWidth(1, wx.LIST_AUTOSIZE)
def addChar(self, event):
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
uri = sCrest.startServer()
webbrowser.open(uri)
@@ -343,7 +342,7 @@ class CrestMgmt(wx.Dialog):
item = self.lcCharacters.GetFirstSelected()
if item > -1:
charID = self.lcCharacters.GetItemData(item)
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
sCrest.delCrestCharacter(charID)
self.popCharList()

View File

@@ -19,12 +19,13 @@
import wx
import service
import gui.globalEvents as GE
import gui.marketBrowser as mb
import gui.display as d
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu
from service.fit import Fit
from service.market import Market
class DroneViewDrop(wx.PyDropTarget):
def __init__(self, dropFn):
@@ -141,7 +142,7 @@ class DroneView(d.Display):
wx.PostEvent(self.mainFrame, mb.ItemSelected(itemID=int(data[1])))
def _merge(self, src, dst):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
if sFit.mergeDrones(fitID, self.drones[src], self.drones[dst]):
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -151,7 +152,7 @@ class DroneView(d.Display):
'Fighter Bombers', 'Combat Utility Drones',
'Electronic Warfare Drones', 'Logistic Drones', 'Mining Drones', 'Salvage Drones')
def droneKey(self, drone):
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
groupName = sMkt.getMarketGroupByItem(drone.item).name
@@ -159,7 +160,7 @@ class DroneView(d.Display):
drone.item.name)
def fitChanged(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
self.Parent.Parent.DisablePage(self, not fit or fit.isStructure)
@@ -193,7 +194,7 @@ class DroneView(d.Display):
def addItem(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(fitID)
@@ -218,7 +219,7 @@ class DroneView(d.Display):
def removeDrone(self, drone):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.removeDrone(fitID, self.original.index(drone))
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -229,7 +230,7 @@ class DroneView(d.Display):
col = self.getColumn(event.Position)
if col == self.getColIndex(State):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
drone = self.drones[row]
sFit.toggleDrone(fitID, self.original.index(drone))
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -244,7 +245,7 @@ class DroneView(d.Display):
if sel != -1:
drone = self.drones[sel]
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
sourceContext = "droneItem"
itemContext = sMkt.getCategoryByItem(drone.item).name
menu = ContextMenu.getMenu((drone,), (sourceContext, itemContext))

View File

@@ -19,7 +19,6 @@
import wx
import service
import gui.globalEvents as GE
import gui.marketBrowser as mb
import gui.mainFrame
@@ -27,6 +26,7 @@ import gui.display as d
from gui.builtinViewColumns.state import State
from eos.types import Slot
from gui.contextMenu import ContextMenu
from service.fit import Fit
class FighterViewDrop(wx.PyDropTarget):
def __init__(self, dropFn):
@@ -81,7 +81,7 @@ class FighterView(wx.Panel):
self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged)
def fitChanged(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
activeFitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(activeFitID)
@@ -215,7 +215,7 @@ class FighterDisplay(d.Display):
'Electronic Warfare Drones', 'Logistic Drones', 'Mining Drones', 'Salvage Drones',
'Light Fighters', 'Heavy Fighters', 'Support Fighters')
def droneKey(self, drone):
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
groupName = sMkt.getMarketGroupByItem(drone.item).name
print groupName
@@ -224,7 +224,7 @@ class FighterDisplay(d.Display):
'''
def fitChanged(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
self.Parent.Parent.Parent.DisablePage(self.Parent, not fit)
@@ -259,7 +259,7 @@ class FighterDisplay(d.Display):
def addItem(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
trigger = sFit.addFighter(fitID, event.itemID)
if trigger:
@@ -278,7 +278,7 @@ class FighterDisplay(d.Display):
def removeFighter(self, fighter):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.removeFighter(fitID, self.original.index(fighter))
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -289,7 +289,7 @@ class FighterDisplay(d.Display):
col = self.getColumn(event.Position)
if col == self.getColIndex(State):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fighter = self.fighters[row]
sFit.toggleFighter(fitID, self.original.index(fighter))
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -304,7 +304,7 @@ class FighterDisplay(d.Display):
if sel != -1:
fighter = self.fighters[sel]
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
sourceContext = "fighterItem"
itemContext = sMkt.getCategoryByItem(fighter.item).name
menu = ContextMenu.getMenu((fighter,), (sourceContext, itemContext))

View File

@@ -19,11 +19,16 @@
import wx
from wx.lib.scrolledpanel import ScrolledPanel
import service
import gui.mainFrame
import gui.shipBrowser
import gui.globalEvents as GE
from service.fit import Fit
from service.fleet import Fleet
from service.character import Character
from service.market import Market
from gui import characterEditor as CharEditor
class GangView ( ScrolledPanel ):
@@ -157,14 +162,14 @@ class GangView ( ScrolledPanel ):
event.Skip()
return
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fleetSrv = service.Fleet.getInstance()
fleetSrv = Fleet.getInstance()
activeFitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(activeFitID)
sChar = service.Character.getInstance()
sChar = Character.getInstance()
charList = sChar.getCharacterList()
if activeFitID:
@@ -211,11 +216,11 @@ class GangView ( ScrolledPanel ):
for id in self.fleet:
if location == self.fleet[id]['stText']: type = id
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
boostee = sFit.getFit(activeFitID)
booster = None
fleetSrv = service.Fleet.getInstance()
fleetSrv = Fleet.getInstance()
if type == 0: fleetSrv.setLinearFleetCom(boostee, booster)
if type == 1: fleetSrv.setLinearWingCom(boostee, booster)
@@ -231,7 +236,7 @@ class GangView ( ScrolledPanel ):
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFitID))
def fitRenamed(self, event):
fleetSrv = service.Fleet.getInstance()
fleetSrv = Fleet.getInstance()
activeFitID = self.mainFrame.getActiveFit()
if activeFitID:
@@ -241,10 +246,10 @@ class GangView ( ScrolledPanel ):
def fitSelected(self, event):
''' Fires when active fit is selected and when booster is saved to fit. Update the UI to reflect changes '''
fleetSrv = service.Fleet.getInstance()
fleetSrv = Fleet.getInstance()
activeFitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID or activeFitID)
self.Parent.Parent.DisablePage(self, not fit or fit.isStructure)
@@ -291,12 +296,12 @@ class GangView ( ScrolledPanel ):
activeFitID = self.mainFrame.getActiveFit()
if activeFitID:
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
boostee = sFit.getFit(activeFitID)
booster = sFit.getFit(fitID)
fleetSrv = service.Fleet.getInstance()
fleetSrv = Fleet.getInstance()
if type == 0: fleetSrv.setLinearFleetCom(boostee, booster)
if type == 1: fleetSrv.setLinearWingCom(boostee, booster)
@@ -306,8 +311,8 @@ class GangView ( ScrolledPanel ):
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFitID))
def RefreshBoosterFits(self, event = None):
sFit = service.Fit.getInstance()
sMkt = service.Market.getInstance()
sFit = Fit.getInstance()
sMkt = Market.getInstance()
fitList = sFit.getBoosterFits()
for id in self.fleet:
@@ -336,7 +341,7 @@ class GangView ( ScrolledPanel ):
choice.SetSelection(0)
def RefreshCharacterList(self, event = None):
sChar = service.Character.getInstance()
sChar = Character.getInstance()
charList = sChar.getCharacterList()
for id in self.fleet:
choice = self.fleet[id]['chChar']
@@ -365,7 +370,7 @@ class GangView ( ScrolledPanel ):
#Those are drags coming from pyfa sources, NOT builtin wx drags
self.draggedFitID = None
if type == "fit":
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.mainFrame.getActiveFit())
if fit and not fit.isStructure:
@@ -384,7 +389,7 @@ class GangView ( ScrolledPanel ):
type = self.options.index(menuItem.GetText())
if self.draggedFitID:
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
draggedFit = sFit.getFit(self.draggedFitID)
self.AddCommander(draggedFit.ID, type)
@@ -392,7 +397,7 @@ class GangView ( ScrolledPanel ):
def OnFitChoiceSelected(self, event):
''' Fired when booster choice is selected '''
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
# set type via choice box used
chFit = event.GetEventObject()

View File

@@ -24,8 +24,8 @@ import gui.display
import gui.globalEvents as GE
from gui.graph import Graph
import service
import gui.mainFrame
from service.fit import Fit
enabled = True
mplImported = False
@@ -78,7 +78,7 @@ class GraphFrame(wx.Frame):
self.mainSizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(self.mainSizer)
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.mainFrame.getActiveFit())
self.fits = [fit] if fit is not None else []
self.fitList = FitList(self)
@@ -242,7 +242,7 @@ class GraphFrame(wx.Frame):
self.draw()
def AppendFitToList(self, fitID):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(fitID)
if fit not in self.fits:
self.fits.append(fit)

View File

@@ -18,7 +18,6 @@
#===============================================================================
import wx
import service
import gui.display as d
import gui.marketBrowser as mb
import gui.mainFrame
@@ -26,6 +25,7 @@ from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu
import globalEvents as GE
from eos.types import ImplantLocation
from service.fit import Fit
class ImplantView(wx.Panel):
@@ -56,7 +56,7 @@ class ImplantView(wx.Panel):
self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged)
def fitChanged(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
activeFitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(activeFitID)
if fit:
@@ -70,7 +70,7 @@ class ImplantView(wx.Panel):
def OnRadioSelect(self, event):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.toggleImplantSource(fitID, ImplantLocation.FIT if self.rbFit.GetValue() else ImplantLocation.CHARACTER)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -107,7 +107,7 @@ class ImplantDisplay(d.Display):
event.Skip()
def fitChanged(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
self.Parent.Parent.Parent.DisablePage(self.Parent, not fit or fit.isStructure)
@@ -137,7 +137,7 @@ class ImplantDisplay(d.Display):
event.Skip()
def addItem(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
fit = sFit.getFit(fitID)
@@ -161,7 +161,7 @@ class ImplantDisplay(d.Display):
def removeImplant(self, implant):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.removeImplant(fitID, self.original.index(implant))
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -172,7 +172,7 @@ class ImplantDisplay(d.Display):
col = self.getColumn(event.Position)
if col == self.getColIndex(State):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.toggleImplant(fitID, row)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -185,7 +185,7 @@ class ImplantDisplay(d.Display):
sel = self.GetFirstSelected()
menu = None
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.mainFrame.getActiveFit())
if not fit:
@@ -194,7 +194,7 @@ class ImplantDisplay(d.Display):
if sel != -1:
implant = fit.appliedImplants[sel]
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
sourceContext = "implantItem" if fit.implantSource == ImplantLocation.FIT else "implantItemChar"
itemContext = sMkt.getCategoryByItem(implant.item).name

View File

@@ -26,11 +26,12 @@ import wx.lib.mixins.listctrl as listmix
import wx.html
from eos.types import Fit, Ship, Citadel, Module, Skill, Booster, Implant, Drone, Mode, Fighter
from gui.utils.numberFormatter import formatAmount
import service
import config
from gui.contextMenu import ContextMenu
from gui.utils.numberFormatter import formatAmount
import csv
from service.market import Market
from service.attribute import Attribute
try:
from collections import OrderedDict
@@ -72,7 +73,7 @@ class ItemStatsDialog(wx.Dialog):
itmContext = None
item = getattr(victim, "item", None) if srcContext.lower() not in ("projectedcharge", "fittingcharge") else getattr(victim, "charge", None)
if item is None:
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
item = sMkt.getItem(victim.ID)
victim = None
self.context = itmContext
@@ -152,7 +153,7 @@ class ItemStatsContainer ( wx.Panel ):
def __init__( self, parent, stuff, item, context = None):
wx.Panel.__init__ ( self, parent )
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
mainSizer = wx.BoxSizer( wx.VERTICAL )
@@ -494,15 +495,15 @@ class ItemParams (wx.Panel):
def TranslateValueUnit(self, value, unitName, unitDisplayName):
def itemIDCallback():
item = service.Market.getInstance().getItem(value)
item = Market.getInstance().getItem(value)
return "%s (%d)" % (item.name, value) if item is not None else str(value)
def groupIDCallback():
group = service.Market.getInstance().getGroup(value)
group = Market.getInstance().getGroup(value)
return "%s (%d)" % (group.name, value) if group is not None else str(value)
def attributeIDCallback():
attribute = service.Attribute.getInstance().getAttributeInfo(value)
attribute = Attribute.getInstance().getAttributeInfo(value)
return "%s (%d)" % (attribute.name.capitalize(), value)
trans = {"Inverse Absolute Percent": (lambda: (1-value)*100, unitName),
@@ -664,7 +665,7 @@ class ItemCompare(wx.Panel):
self.paramList.InsertColumn(len(self.attrs)+1, "Price")
self.paramList.SetColumnWidth(len(self.attrs)+1, 60)
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
sMkt.getPrices([x.ID for x in self.items], self.processPrices)
for item in self.items:
@@ -687,15 +688,15 @@ class ItemCompare(wx.Panel):
def TranslateValueUnit(self, value, unitName, unitDisplayName):
def itemIDCallback():
item = service.Market.getInstance().getItem(value)
item = Market.getInstance().getItem(value)
return "%s (%d)" % (item.name, value) if item is not None else str(value)
def groupIDCallback():
group = service.Market.getInstance().getGroup(value)
group = Market.getInstance().getGroup(value)
return "%s (%d)" % (group.name, value) if group is not None else str(value)
def attributeIDCallback():
attribute = service.Attribute.getInstance().getAttributeInfo(value)
attribute = Attribute.getInstance().getAttributeInfo(value)
return "%s (%d)" % (attribute.name.capitalize(), value)
trans = {"Inverse Absolute Percent": (lambda: (1 - value) * 100, unitName),

View File

@@ -29,7 +29,6 @@ from codecs import open
from wx._core import PyDeadObjectError
from wx.lib.wordwrap import wordwrap
import service
import config
import threading
import webbrowser
@@ -58,6 +57,13 @@ from gui.utils.clipboard import toClipboard, fromClipboard
from gui.fleetBrowser import FleetBrowser
from gui.updateDialog import UpdateDialog
from gui.builtinViews import *
from gui import graphFrame
from service.settings import SettingsProvider
from service.fit import Fit
from service.character import Character
from service.crest import Crest
from service.update import Update
# import this to access override setting
from eos.modifiedAttributeDict import ModifiedAttributeDict
@@ -208,7 +214,7 @@ class MainFrame(wx.Frame):
self.LoadPreviousOpenFits()
#Check for updates
self.sUpdate = service.Update.getInstance()
self.sUpdate = Update.getInstance()
self.sUpdate.CheckUpdate(self.ShowUpdateBox)
if not 'wxMac' in wx.PlatformInfo or ('wxMac' in wx.PlatformInfo and wx.VERSION >= (3,0)):
@@ -223,9 +229,9 @@ class MainFrame(wx.Frame):
dlg.ShowModal()
def LoadPreviousOpenFits(self):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
self.prevOpenFits = service.SettingsProvider.getInstance().getSettings("pyfaPrevOpenFits", {"enabled": False, "pyfaOpenFits": []})
self.prevOpenFits = SettingsProvider.getInstance().getSettings("pyfaPrevOpenFits", {"enabled": False, "pyfaOpenFits": []})
fits = self.prevOpenFits['pyfaOpenFits']
# Remove any fits that cause exception when fetching (non-existent fits)
@@ -245,7 +251,7 @@ class MainFrame(wx.Frame):
def LoadMainFrameAttribs(self):
mainFrameDefaultAttribs = {"wnd_width": 1000, "wnd_height": 700, "wnd_maximized": False, "browser_width": 300, "market_height": 0, "fitting_height": -200}
self.mainFrameAttribs = service.SettingsProvider.getInstance().getSettings("pyfaMainWindowAttribs", mainFrameDefaultAttribs)
self.mainFrameAttribs = SettingsProvider.getInstance().getSettings("pyfaMainWindowAttribs", mainFrameDefaultAttribs)
if self.mainFrameAttribs["wnd_maximized"]:
width = mainFrameDefaultAttribs["wnd_width"]
@@ -319,7 +325,7 @@ class MainFrame(wx.Frame):
self.prevOpenFits['pyfaOpenFits'].append(m())
# save all teh settingz
service.SettingsProvider.getInstance().saveAll()
SettingsProvider.getInstance().saveAll()
event.Skip()
def ExitApp(self, event):
@@ -372,7 +378,7 @@ class MainFrame(wx.Frame):
def showExportDialog(self, event):
""" Export active fit """
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.getActiveFit())
defaultFile = "%s - %s.xml"%(fit.ship.item.name, fit.name) if fit else None
@@ -540,7 +546,7 @@ class MainFrame(wx.Frame):
dlg.Show()
def updateTitle(self, event):
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
char = sCrest.implicitCharacter
if char:
t = time.gmtime(char.eve.expires-time.time())
@@ -575,7 +581,7 @@ class MainFrame(wx.Frame):
self.SetTitle(self.title)
menu = self.GetMenuBar()
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
if type == CrestModes.IMPLICIT:
menu.SetLabel(menu.ssoLoginId, "Login to EVE")
@@ -588,7 +594,7 @@ class MainFrame(wx.Frame):
menu.Enable(menu.exportToEveId, not enable)
def ssoHandler(self, event):
sCrest = service.Crest.getInstance()
sCrest = Crest.getInstance()
if sCrest.settings.get('mode') == CrestModes.IMPLICIT:
if sCrest.implicitCharacter is not None:
sCrest.logout()
@@ -610,7 +616,7 @@ class MainFrame(wx.Frame):
menu.SetLabel(menu.toggleOverridesId, "Turn Overrides Off" if ModifiedAttributeDict.OVERRIDES else "Turn Overrides On")
def saveChar(self, event):
sChr = service.Character.getInstance()
sChr = Character.getInstance()
charID = self.charSelection.getActiveCharacter()
sChr.saveCharacter(charID)
wx.PostEvent(self, GE.CharListUpdated())
@@ -621,7 +627,7 @@ class MainFrame(wx.Frame):
dlg.ShowModal()
def revertChar(self, event):
sChr = service.Character.getInstance()
sChr = Character.getInstance()
charID = self.charSelection.getActiveCharacter()
sChr.revertCharacter(charID)
wx.PostEvent(self, GE.CharListUpdated())
@@ -659,31 +665,31 @@ class MainFrame(wx.Frame):
self.marketBrowser.search.Focus()
def clipboardEft(self):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
toClipboard(sFit.exportFit(self.getActiveFit()))
def clipboardEftImps(self):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
toClipboard(sFit.exportEftImps(self.getActiveFit()))
def clipboardDna(self):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
toClipboard(sFit.exportDna(self.getActiveFit()))
def clipboardCrest(self):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
toClipboard(sFit.exportCrest(self.getActiveFit()))
def clipboardXml(self):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
toClipboard(sFit.exportXml(None, self.getActiveFit()))
def clipboardMultiBuy(self):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
toClipboard(sFit.exportMultiBuy(self.getActiveFit()))
def importFromClipboard(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
try:
fits = sFit.importFitFromBuffer(fromClipboard(), self.getActiveFit())
except:
@@ -709,7 +715,7 @@ class MainFrame(wx.Frame):
def exportSkillsNeeded(self, event):
""" Exports skills needed for active fit and active character """
sCharacter = service.Character.getInstance()
sCharacter = Character.getInstance()
saveDialog = wx.FileDialog(self, "Export Skills Needed As...",
wildcard = "EVEMon skills training file (*.emp)|*.emp|" \
"EVEMon skills training XML file (*.xml)|*.xml|" \
@@ -737,7 +743,7 @@ class MainFrame(wx.Frame):
def fileImportDialog(self, event):
"""Handles importing single/multiple EVE XML / EFT cfg fit files"""
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
dlg = wx.FileDialog(self, "Open One Or More Fitting Files",
wildcard = "EVE XML fitting files (*.xml)|*.xml|" \
"EFT text fitting files (*.cfg)|*.cfg|" \
@@ -767,7 +773,7 @@ class MainFrame(wx.Frame):
if '.' not in os.path.basename(filePath):
filePath += ".xml"
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
max = sFit.countAllFits()
self.progressDialog = wx.ProgressDialog("Backup fits",
@@ -779,7 +785,7 @@ class MainFrame(wx.Frame):
def exportHtml(self, event):
from gui.utils.exportHtml import exportHtml
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
settings = service.settings.HTMLExportSettings.getInstance()
max = sFit.countAllFits()
@@ -865,7 +871,7 @@ class MainFrame(wx.Frame):
if dlg.ShowModal() == wx.ID_OK:
self.waitDialog = wx.BusyInfo("Importing Character...")
sCharacter = service.Character.getInstance()
sCharacter = Character.getInstance()
sCharacter.importCharacter(dlg.GetPaths(), self.importCharacterCallback)
def importCharacterCallback(self):
@@ -878,7 +884,8 @@ class MainFrame(wx.Frame):
def openGraphFrame(self, event):
if not self.graphFrame:
self.graphFrame = GraphFrame(self)
if gui.graphFrame.enabled:
if graphFrame.enabled:
self.graphFrame.Show()
else:
self.graphFrame.SetFocus()

View File

@@ -23,7 +23,8 @@ from gui.bitmapLoader import BitmapLoader
import gui.mainFrame
import gui.graphFrame
import gui.globalEvents as GE
import service
from service.crest import Crest
from service.character import Character
if not 'wxMac' in wx.PlatformInfo or ('wxMac' in wx.PlatformInfo and wx.VERSION >= (3,0)):
from service.crest import CrestModes
@@ -120,7 +121,7 @@ class MainMenuBar(wx.MenuBar):
windowMenu.AppendItem(preferencesItem)
if not 'wxMac' in wx.PlatformInfo or ('wxMac' in wx.PlatformInfo and wx.VERSION >= (3,0)):
self.sCrest = service.Crest.getInstance()
self.sCrest = Crest.getInstance()
# CREST Menu
crestMenu = wx.Menu()
@@ -164,7 +165,7 @@ class MainMenuBar(wx.MenuBar):
self.Enable(wx.ID_COPY, enable)
self.Enable(self.exportSkillsNeededId, enable)
sChar = service.Character.getInstance()
sChar = Character.getInstance()
charID = self.mainFrame.charSelection.getActiveCharacter()
char = sChar.getCharacter(charID)

View File

@@ -18,11 +18,12 @@
#===============================================================================
import wx
import service
import gui.display as d
from gui.cachingImageList import CachingImageList
from gui.contextMenu import ContextMenu
import gui.PFSearchBox as SBox
from service.market import Market
from service.attribute import Attribute
from gui.bitmapLoader import BitmapLoader
@@ -45,7 +46,7 @@ class MarketBrowser(wx.Panel):
vbox.Add(self.splitter, 1, wx.EXPAND)
# Grab market service instance and create child objects
self.sMkt = service.Market.getInstance()
self.sMkt = Market.getInstance()
self.searchMode = False
self.marketView = MarketTree(self.splitter, self)
self.itemView = ItemView(self.splitter, self)
@@ -416,7 +417,7 @@ class ItemView(d.Display):
def populate(self, items):
if len(items) > 0:
# Get dictionary with meta level attribute
sAttr = service.Attribute.getInstance()
sAttr = Attribute.getInstance()
attrs = sAttr.getAttributeInfo("metaLevel")
sMkt = self.sMkt
self.metalvls = sMkt.directAttrRequest(items, attrs)
@@ -432,7 +433,7 @@ class ItemView(d.Display):
def refresh(self, items):
if len(items) > 1:
# Get dictionary with meta level attribute
sAttr = service.Attribute.getInstance()
sAttr = Attribute.getInstance()
attrs = sAttr.getAttributeInfo("metaLevel")
sMkt = self.sMkt
self.metalvls = sMkt.directAttrRequest(items, attrs)

View File

@@ -1,8 +1,10 @@
import wx
import service
import gui.globalEvents as GE
import gui.mainFrame
from service.fit import Fit
class NotesView(wx.Panel):
def __init__(self, parent):
@@ -19,7 +21,7 @@ class NotesView(wx.Panel):
self.Bind(wx.EVT_TIMER, self.delayedSave, self.saveTimer)
def fitChanged(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
self.Parent.Parent.DisablePage(self, not fit or fit.isStructure)
@@ -38,7 +40,7 @@ class NotesView(wx.Panel):
self.saveTimer.Start(1000, True)
def delayedSave(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.lastFitId)
newNotes = self.editNotes.GetValue()
fit.notes = newNotes

View File

@@ -19,11 +19,11 @@
import wx
from gui.bitmapLoader import BitmapLoader
import service
from wx.lib.intctrl import IntCtrl
from gui.utils.clipboard import toClipboard, fromClipboard
from service.damagePattern import ImportError
from gui.builtinViews.entityEditor import EntityEditor, BaseValidator
from service.damagePattern import DamagePattern, ImportError
###########################################################################
## Class DmgPatternEditorDlg
###########################################################################
@@ -59,26 +59,26 @@ class DmgPatternEntityEditor(EntityEditor):
self.SetEditorValidator(DmgPatternTextValidor)
def getEntitiesFromContext(self):
sDP = service.DamagePattern.getInstance()
sDP = DamagePattern.getInstance()
choices = sorted(sDP.getDamagePatternList(), key=lambda p: p.name)
return [c for c in choices if c.name != "Selected Ammo"]
def DoNew(self, name):
sDP = service.DamagePattern.getInstance()
sDP = DamagePattern.getInstance()
return sDP.newPattern(name)
def DoRename(self, entity, name):
sDP = service.DamagePattern.getInstance()
sDP = DamagePattern.getInstance()
sDP.renamePattern(entity, name)
def DoCopy(self, entity, name):
sDP = service.DamagePattern.getInstance()
sDP = DamagePattern.getInstance()
copy = sDP.copyPattern(entity)
sDP.renamePattern(copy, name)
return copy
def DoDelete(self, entity):
sDP = service.DamagePattern.getInstance()
sDP = DamagePattern.getInstance()
sDP.deletePattern(entity)
class DmgPatternEditorDlg(wx.Dialog):
@@ -208,7 +208,7 @@ class DmgPatternEditorDlg(wx.Dialog):
if event is not None:
event.Skip()
service.DamagePattern.getInstance().saveChanges(p)
DamagePattern.getInstance().saveChanges(p)
def restrict(self):
for type in self.DAMAGE_TYPES:
@@ -251,11 +251,11 @@ class DmgPatternEditorDlg(wx.Dialog):
def importPatterns(self, event):
text = fromClipboard()
if text:
sDP = service.DamagePattern.getInstance()
sDP = DamagePattern.getInstance()
try:
sDP.importPatterns(text)
self.stNotice.SetLabel("Patterns successfully imported from clipboard")
except service.damagePattern.ImportError, e:
except ImportError, e:
self.stNotice.SetLabel(str(e))
except Exception, e:
self.stNotice.SetLabel("Could not import from clipboard: unknown errors")
@@ -265,6 +265,6 @@ class DmgPatternEditorDlg(wx.Dialog):
self.stNotice.SetLabel("Could not import from clipboard")
def exportPatterns(self, event):
sDP = service.DamagePattern.getInstance()
sDP = DamagePattern.getInstance()
toClipboard( sDP.exportPatterns() )
self.stNotice.SetLabel("Patterns exported to clipboard")

View File

@@ -20,11 +20,11 @@
import wx
import gui.display as d
import gui.globalEvents as GE
import service
import gui.droneView
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu
import eos.types
from service.fit import Fit
class DummyItem:
@@ -91,7 +91,7 @@ class ProjectedView(d.Display):
# if source is coming from projected, we are trying to combine drones.
self.mergeDrones(x, y, int(data[1]))
elif data[0] == "market":
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
sFit.project(fitID, int(data[1]))
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.mainFrame.getActiveFit()))
@@ -100,7 +100,7 @@ class ProjectedView(d.Display):
keycode = event.GetKeyCode()
if keycode == wx.WXK_DELETE or keycode == wx.WXK_NUMPAD_DELETE:
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
row = self.GetFirstSelected()
if row != -1:
sFit.removeProjected(fitID, self.get(row))
@@ -111,7 +111,7 @@ class ProjectedView(d.Display):
if type == "fit":
activeFit = self.mainFrame.getActiveFit()
if activeFit:
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
draggedFit = sFit.getFit(fitID)
sFit.project(activeFit, draggedFit)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit))
@@ -135,7 +135,7 @@ class ProjectedView(d.Display):
def _merge(self, src, dst):
dstDrone = self.get(dst)
if isinstance(dstDrone, eos.types.Drone):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = self.mainFrame.getActiveFit()
if sFit.mergeDrones(fitID, self.get(src), dstDrone, True):
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -159,7 +159,7 @@ class ProjectedView(d.Display):
return fit.name
def fitChanged(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
self.Parent.Parent.DisablePage(self, not fit or fit.isStructure)
@@ -231,7 +231,7 @@ class ProjectedView(d.Display):
col = self.getColumn(event.Position)
if col == self.getColIndex(State):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.toggleProjected(fitID, item, "right" if event.Button == 3 else "left")
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
@@ -246,7 +246,7 @@ class ProjectedView(d.Display):
if sel != -1:
item = self.get(sel)
if item is None: return
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
if isinstance(item, eos.types.Drone):
srcContext = "projectedDrone"
itemContext = sMkt.getCategoryByItem(item.item).name
@@ -287,6 +287,6 @@ class ProjectedView(d.Display):
col = self.getColumn(event.Position)
if col != self.getColIndex(State):
fitID = self.mainFrame.getActiveFit()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.removeProjected(fitID, self.get(row))
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))

View File

@@ -13,12 +13,13 @@ from gui.marketBrowser import SearchBox
import gui.display as d
import gui.globalEvents as GE
from gui.bitmapLoader import BitmapLoader
import service
import csv
import eos.db
import logging
from service.market import Market
logger = logging.getLogger(__name__)
class AttributeEditor( wx.Frame ):
@@ -108,7 +109,7 @@ class AttributeEditor( wx.Frame ):
self.itemView.updateItems(True)
def OnExport(self, event):
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
items = sMkt.getItemsWithOverrides()
defaultFile = "pyfa_overrides.csv"
@@ -131,7 +132,7 @@ class AttributeEditor( wx.Frame ):
"Confirm Delete", wx.YES | wx.NO | wx.ICON_EXCLAMATION)
if dlg.ShowModal() == wx.ID_YES:
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
items = sMkt.getItemsWithOverrides()
# We can't just delete overrides, as loaded items will still have
# them assigned. Deleting them from the database won't propagate
@@ -152,7 +153,7 @@ class ItemView(d.Display):
def __init__(self, parent):
d.Display.__init__(self, parent)
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
self.things = sMkt.getItemsWithOverrides()
self.items = self.things
@@ -173,14 +174,14 @@ class ItemView(d.Display):
self.update(self.items)
def updateItems(self, updateDisplay=False):
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
self.things = sMkt.getItemsWithOverrides()
self.items = self.things
if updateDisplay:
self.update(self.things)
def scheduleSearch(self, event=None):
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
search = self.searchBox.GetLineText(0)
# Make sure we do not count wildcard as search symbol

View File

@@ -19,10 +19,10 @@
import wx
from gui.bitmapLoader import BitmapLoader
import service
from gui.utils.clipboard import toClipboard, fromClipboard
from service.targetResists import ImportError
from gui.builtinViews.entityEditor import EntityEditor, BaseValidator
from service.targetResists import TargetResists
class TargetResistsTextValidor(BaseValidator):
@@ -56,26 +56,26 @@ class TargetResistsEntityEditor(EntityEditor):
self.SetEditorValidator(TargetResistsTextValidor)
def getEntitiesFromContext(self):
sTR = service.TargetResists.getInstance()
sTR = TargetResists.getInstance()
choices = sorted(sTR.getTargetResistsList(), key=lambda p: p.name)
return choices
def DoNew(self, name):
sTR = service.TargetResists.getInstance()
sTR = TargetResists.getInstance()
return sTR.newPattern(name)
def DoRename(self, entity, name):
sTR = service.TargetResists.getInstance()
sTR = TargetResists.getInstance()
sTR.renamePattern(entity, name)
def DoCopy(self, entity, name):
sTR = service.TargetResists.getInstance()
sTR = TargetResists.getInstance()
copy = sTR.copyPattern(entity)
sTR.renamePattern(copy, name)
return copy
def DoDelete(self, entity):
sTR = service.TargetResists.getInstance()
sTR = TargetResists.getInstance()
sTR.deletePattern(entity)
class ResistsEditorDlg(wx.Dialog):
@@ -224,7 +224,7 @@ class ResistsEditorDlg(wx.Dialog):
if event is not None:
event.Skip()
service.TargetResists.getInstance().saveChanges(p)
TargetResists.getInstance().saveChanges(p)
except ValueError:
editObj.SetForegroundColour(wx.RED)
@@ -264,7 +264,7 @@ class ResistsEditorDlg(wx.Dialog):
text = fromClipboard()
if text:
sTR = service.TargetResists.getInstance()
sTR = TargetResists.getInstance()
try:
sTR.importPatterns(text)
self.stNotice.SetLabel("Patterns successfully imported from clipboard")
@@ -279,6 +279,6 @@ class ResistsEditorDlg(wx.Dialog):
def exportPatterns(self, event):
"Event fired when export to clipboard button is clicked"
sTR = service.TargetResists.getInstance()
sTR = TargetResists.getInstance()
toClipboard( sTR.exportPatterns() )
self.stNotice.SetLabel("Patterns exported to clipboard")

View File

@@ -20,11 +20,11 @@
import wx
from gui.bitmapLoader import BitmapLoader
from gui.builtinViews.implantEditor import BaseImplantEditorView
import service
from gui.utils.clipboard import toClipboard, fromClipboard
from service.implantSet import ImportError
import logging
from gui.builtinViews.entityEditor import EntityEditor, BaseValidator
from service.implantSet import ImplantSets
logger = logging.getLogger(__name__)
@@ -59,25 +59,25 @@ class ImplantSetEntityEditor(EntityEditor):
self.SetEditorValidator(ImplantTextValidor)
def getEntitiesFromContext(self):
sIS = service.ImplantSets.getInstance()
sIS = ImplantSets.getInstance()
return sorted(sIS.getImplantSetList(), key=lambda c: c.name)
def DoNew(self, name):
sIS = service.ImplantSets.getInstance()
sIS = ImplantSets.getInstance()
return sIS.newSet(name)
def DoRename(self, entity, name):
sIS = service.ImplantSets.getInstance()
sIS = ImplantSets.getInstance()
sIS.renameSet(entity, name)
def DoCopy(self, entity, name):
sIS = service.ImplantSets.getInstance()
sIS = ImplantSets.getInstance()
copy = sIS.copySet(entity)
sIS.renameSet(copy, name)
return copy
def DoDelete(self, entity):
sIS = service.ImplantSets.getInstance()
sIS = ImplantSets.getInstance()
sIS.deleteSet(entity)
@@ -91,20 +91,20 @@ class ImplantSetEditor(BaseImplantEditorView):
self.Parent.entityEditor.Bind(wx.EVT_CHOICE, self.contextChanged)
def getImplantsFromContext(self):
sIS = service.ImplantSets.getInstance()
sIS = ImplantSets.getInstance()
set = self.Parent.entityEditor.getActiveEntity()
if set:
return sIS.getImplants(set.ID)
return []
def addImplantToContext(self, item):
sIS = service.ImplantSets.getInstance()
sIS = ImplantSets.getInstance()
set = self.Parent.entityEditor.getActiveEntity()
sIS.addImplant(set.ID, item.ID)
def removeImplantFromContext(self, implant):
sIS = service.ImplantSets.getInstance()
sIS = ImplantSets.getInstance()
set = self.Parent.entityEditor.getActiveEntity()
sIS.removeImplant(set.ID, implant)
@@ -191,7 +191,7 @@ class ImplantSetEditorDlg(wx.Dialog):
text = fromClipboard()
if text:
sIS = service.ImplantSets.getInstance()
sIS = ImplantSets.getInstance()
try:
sIS.importSets(text)
self.stNotice.SetLabel("Patterns successfully imported from clipboard")
@@ -209,6 +209,6 @@ class ImplantSetEditorDlg(wx.Dialog):
def exportPatterns(self, event):
"Event fired when export to clipboard button is clicked"
sIS = service.ImplantSets.getInstance()
sIS = ImplantSets.getInstance()
toClipboard(sIS.exportSets())
self.stNotice.SetLabel("Sets exported to clipboard")

View File

@@ -19,7 +19,8 @@ import gui.sfBrowserItem as SFItem
from gui.contextMenu import ContextMenu
import gui.utils.fonts as fonts
import service
from service.fit import Fit
from service.market import Market
import gui.utils.fonts as fonts
FitRenamed, EVT_FIT_RENAMED = wx.lib.newevent.NewEvent()
@@ -437,7 +438,7 @@ class NavigationPanel(SFItem.SFBrowserItem):
if stage == 3:
shipID = self.Parent.GetStageData(stage)
shipName = self.Parent.GetStage3ShipName()
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = sFit.newFit(shipID, "%s fit" %shipName)
self.shipBrowser.fitIDMustEditName = fitID
wx.PostEvent(self.Parent,Stage3Selected(shipID=shipID))
@@ -671,8 +672,8 @@ class ShipBrowser(wx.Panel):
self.navpanel.ShowNewFitButton(False)
self.navpanel.ShowSwitchEmptyGroupsButton(False)
sMkt = service.Market.getInstance()
sFit = service.Fit.getInstance()
sMkt = Market.getInstance()
sFit = Fit.getInstance()
self.lpane.ShowLoading(False)
self.lpane.Freeze()
@@ -718,7 +719,7 @@ class ShipBrowser(wx.Panel):
categoryID = self._stage2Data
ships = list(data[1])
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
ships.sort(key=self.raceNameKey)
racesList = []
@@ -789,7 +790,7 @@ class ShipBrowser(wx.Panel):
self.lpane.RemoveAllChildren()
sMkt = service.Market.getInstance()
sMkt = Market.getInstance()
sMkt.getShipListDelayed(categoryID, self.stage2Callback)
self._stage2Data = categoryID
@@ -819,8 +820,8 @@ class ShipBrowser(wx.Panel):
self._lastStage = self._activeStage
self._activeStage = 3
sFit = service.Fit.getInstance()
sMkt = service.Market.getInstance()
sFit = Fit.getInstance()
sMkt = Market.getInstance()
ship = sMkt.getItem(shipID)
categoryID = ship.group.ID
@@ -875,8 +876,8 @@ class ShipBrowser(wx.Panel):
self._lastStage = self._activeStage
self._activeStage = 4
sMkt = service.Market.getInstance()
sFit = service.Fit.getInstance()
sMkt = Market.getInstance()
sFit = Fit.getInstance()
query = event.text
self.lpane.Freeze()
@@ -1162,7 +1163,7 @@ class ShipItem(SFItem.SFBrowserItem):
self.Bind(wx.EVT_CONTEXT_MENU, self.OnShowPopup)
self.marketInstance = service.Market.getInstance()
self.marketInstance = Market.getInstance()
self.baseItem = self.marketInstance.getItem(self.shipID)
#=======================================================================\
@@ -1249,7 +1250,7 @@ class ShipItem(SFItem.SFBrowserItem):
def createNewFit(self, event=None):
self.tcFitName.Show(False)
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = sFit.newFit(self.shipID, self.tcFitName.GetValue())
wx.PostEvent(self.shipBrowser,Stage3Selected(shipID=self.shipID, back=False))
@@ -1538,7 +1539,7 @@ class FitItem(SFItem.SFBrowserItem):
self.Bind(wx.EVT_RIGHT_UP, self.OnContextMenu)
def OnToggleBooster(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
sFit.toggleBoostFit(self.fitID)
self.fitBooster = not self.fitBooster
self.boosterBtn.Show(self.fitBooster)
@@ -1549,7 +1550,7 @@ class FitItem(SFItem.SFBrowserItem):
def OnProjectToFit(self, event):
activeFit = self.mainFrame.getActiveFit()
if activeFit:
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
projectedFit = sFit.getFit(self.fitID)
sFit.project(activeFit, projectedFit)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit))
@@ -1558,7 +1559,7 @@ class FitItem(SFItem.SFBrowserItem):
def OnAddCommandFit(self, event):
activeFit = self.mainFrame.getActiveFit()
if activeFit:
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
commandFit = sFit.getFit(self.fitID)
sFit.addCommandFit(activeFit, commandFit)
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=activeFit))
@@ -1576,7 +1577,7 @@ class FitItem(SFItem.SFBrowserItem):
def OnContextMenu(self, event):
''' Handles context menu for fit. Dragging is handled by MouseLeftUp() '''
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.mainFrame.getActiveFit())
if not fit:
@@ -1666,7 +1667,7 @@ class FitItem(SFItem.SFBrowserItem):
self.copyFit()
def copyFit(self, event=None):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fitID = sFit.copyFit(self.fitID)
self.shipBrowser.fitIDMustEditName = fitID
wx.PostEvent(self.shipBrowser,Stage3Selected(shipID=self.shipID))
@@ -1686,7 +1687,7 @@ class FitItem(SFItem.SFBrowserItem):
self.Refresh()
def renameFit(self, event=None):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
self.tcFitName.Show(False)
self.editWasShown = 0
fitName = self.tcFitName.GetValue()
@@ -1720,7 +1721,7 @@ class FitItem(SFItem.SFBrowserItem):
else:
self.deleted = True
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
sFit.deleteFit(self.fitID)

View File

@@ -19,7 +19,7 @@
import wx
from gui.statsView import StatsView
import service
from service.fit import Fit
from gui.pyfatogglepanel import TogglePanel
import gui.builtinStatsViews
from gui.contextMenu import ContextMenu
@@ -33,7 +33,7 @@ class StatsPane(wx.Panel):
"priceViewFull",]
def fitChanged(self, event):
sFit = service.Fit.getInstance()
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
for view in self.views:
view.refreshPanel(fit)

View File

@@ -20,7 +20,6 @@
import wx
from gui.bitmapLoader import BitmapLoader
import config
import service
import dateutil.parser
class UpdateDialog(wx.Dialog):

View File

@@ -1,7 +1,9 @@
import threading
import time
import service
import wx
from service.settings import HTMLExportSettings
from service.fit import Fit
from service.market import Market
class exportHtml():
_instance = None
@@ -16,7 +18,7 @@ class exportHtml():
self.thread = exportHtmlThread()
def refreshFittingHtml(self, force=False, callback=False):
settings = service.settings.HTMLExportSettings.getInstance()
settings = HTMLExportSettings.getInstance()
if force or settings.getEnabled():
self.thread.stop()
@@ -39,9 +41,9 @@ class exportHtmlThread(threading.Thread):
if self.stopRunning:
return
sMkt = service.Market.getInstance()
sFit = service.Fit.getInstance()
settings = service.settings.HTMLExportSettings.getInstance()
sMkt = Market.getInstance()
sFit = Fit.getInstance()
settings = HTMLExportSettings.getInstance()
timestamp = time.localtime(time.time())
localDate = "%d/%02d/%02d %02d:%02d" % (timestamp[0], timestamp[1], timestamp[2], timestamp[3], timestamp[4])