From f76f44e9f321a6a6fc74460946a294d4408e8dc8 Mon Sep 17 00:00:00 2001 From: Ebag333 Date: Thu, 15 Dec 2016 15:20:29 -0800 Subject: [PATCH] Fix port references, imports, and add some logging --- gui/mainFrame.py | 9 ++++++--- service/port.py | 40 +++++++++++++++++++++------------------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 6d94c970b..f033fe32f 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -19,6 +19,7 @@ import sys import os.path +import logging import sqlalchemy import wx @@ -84,6 +85,8 @@ if 'wxMac' not in wx.PlatformInfo or ('wxMac' in wx.PlatformInfo and wx.VERSION print("Error loading Attribute Editor: %s.\nAccess to Attribute Editor is disabled." % e.message) disableOverrideEditor = True +logger = logging.getLogger("pyfa.gui.mainFrame") + # dummy panel(no paint no erasebk) class PFPanel(wx.Panel): @@ -702,11 +705,11 @@ class MainFrame(wx.Frame): toClipboard(Port.exportMultiBuy(fit)) def importFromClipboard(self, event): - sFit = Fit.getInstance() + clipboard = fromClipboard() try: - fits = sFit.importFitFromBuffer(fromClipboard(), self.getActiveFit()) + fits = Port().importFitFromBuffer(clipboard, self.getActiveFit()) except: - pass + logger.error("Attempt to import failed:\n%s", clipboard) else: self._openAfterImport(fits) diff --git a/service/port.py b/service/port.py index a59dc78e3..4bf9b061c 100644 --- a/service/port.py +++ b/service/port.py @@ -31,11 +31,11 @@ from codecs import open import xml.parsers.expat from eos import db -from service.fit import Fit +from service.fit import Fit as svcFit import wx -from eos.types import State, Slot, Module, Cargo, Ship, Drone, Implant, Booster, Citadel, Fighter +from eos.types import State, Slot, Module, Cargo, Ship, Drone, Implant, Booster, Citadel, Fighter, Fit from service.crest import Crest from service.market import Market @@ -77,6 +77,7 @@ class Port(object): returns """ defcodepage = locale.getpreferredencoding() + sFit = svcFit.getInstance() fits = [] for path in paths: @@ -148,9 +149,9 @@ class Port(object): numFits = len(fits) for i, fit in enumerate(fits): # Set some more fit attributes and save - fit.character = self.character - fit.damagePattern = self.pattern - fit.targetResists = self.targetResists + fit.character = sFit.character + fit.damagePattern = sFit.pattern + fit.targetResists = sFit.targetResists db.save(fit) IDs.append(fit.ID) if callback: # Pulse @@ -163,11 +164,12 @@ class Port(object): return True, fits def importFitFromBuffer(self, bufferStr, activeFit=None): + sFit = svcFit.getInstance() _, fits = Port.importAuto(bufferStr, activeFit=activeFit) for fit in fits: - fit.character = self.character - fit.damagePattern = self.pattern - fit.targetResists = self.targetResists + fit.character = sFit.character + fit.damagePattern = sFit.pattern + fit.targetResists = sFit.targetResists db.save(fit) return fits @@ -182,7 +184,7 @@ class Port(object): nested_dict = lambda: collections.defaultdict(nested_dict) fit = nested_dict() sCrest = Crest.getInstance() - sFit = Fit.getInstance() + sFit = svcFit.getInstance() eve = sCrest.eve @@ -352,7 +354,7 @@ class Port(object): continue # Recalc to get slot numbers correct for T3 cruisers - Fit.getInstance().recalc(f) + svcFit.getInstance().recalc(f) for module in moduleList: if module.fits(f): @@ -433,7 +435,7 @@ class Port(object): moduleList.append(m) # Recalc to get slot numbers correct for T3 cruisers - Fit.getInstance().recalc(f) + svcFit.getInstance().recalc(f) for module in moduleList: if module.fits(f): @@ -565,7 +567,7 @@ class Port(object): moduleList.append(m) # Recalc to get slot numbers correct for T3 cruisers - Fit.getInstance().recalc(fit) + svcFit.getInstance().recalc(fit) for m in moduleList: if m.fits(fit): @@ -752,7 +754,7 @@ class Port(object): moduleList.append(m) # Recalc to get slot numbers correct for T3 cruisers - Fit.getInstance().recalc(f) + svcFit.getInstance().recalc(f) for module in moduleList: if module.fits(f): @@ -837,7 +839,7 @@ class Port(object): continue # Recalc to get slot numbers correct for T3 cruisers - Fit.getInstance().recalc(f) + svcFit.getInstance().recalc(f) for module in moduleList: if module.fits(f): @@ -855,7 +857,7 @@ class Port(object): offineSuffix = " /OFFLINE" export = "[%s, %s]\n" % (fit.ship.item.name, fit.name) stuff = {} - sFit = Fit.getInstance() + sFit = svcFit.getInstance() for module in fit.modules: slot = module.slot if slot not in stuff: @@ -981,7 +983,7 @@ class Port(object): doc = xml.dom.minidom.Document() fittings = doc.createElement("fittings") doc.appendChild(fittings) - sFit = Fit.getInstance() + sFit = svcFit.getInstance() for i, fit in enumerate(fits): try: @@ -1064,7 +1066,7 @@ class Port(object): def exportMultiBuy(fit): export = "%s\n" % (fit.ship.item.name) stuff = {} - sFit = Fit.getInstance() + sFit = svcFit.getInstance() for module in fit.modules: slot = module.slot if slot not in stuff: @@ -1115,7 +1117,7 @@ class FitBackupThread(threading.Thread): def run(self): path = self.path - sFit = Fit.getInstance() + sFit = svcFit.getInstance() allFits = map(lambda x: x[0], sFit.getAllFits()) backedUpFits = sFit.exportXml(self.callback, *allFits) backupFile = open(path, "w", encoding="utf-8") @@ -1133,7 +1135,7 @@ class FitImportThread(threading.Thread): self.callback = callback def run(self): - sFit = Fit.getInstance() + sFit = svcFit.getInstance() success, result = sFit.importFitFromFiles(self.paths, self.callback) if not success: # there was an error during processing