import threading import time import service import wx class exportHtml(): _instance = None @classmethod def getInstance(cls): if cls._instance == None: cls._instance = exportHtml() return cls._instance def __init__(self): self.thread = exportHtmlThread() def refreshFittingHtml(self, force = False, callback = False): settings = service.settings.HTMLExportSettings.getInstance() if (force or settings.getEnabled()): self.thread.stop() self.thread = exportHtmlThread(callback) self.thread.start() class exportHtmlThread(threading.Thread): def __init__(self, callback = False): threading.Thread.__init__(self) self.callback = callback self.stopRunning = False def stop(self): self.stopRunning = True def run(self): # wait 1 second just in case a lot of modifications get made time.sleep(1); if self.stopRunning: return; sMarket = service.Market.getInstance() sFit = service.Fit.getInstance() settings = service.settings.HTMLExportSettings.getInstance() HTML = """ Pyfa Fittings

Pyfa fits

""" HTML += '
""" try: FILE = open(settings.getPath(), "w") FILE.write(HTML.encode('utf-8')); FILE.close(); except IOError: print "Failed to write to " + settings.getPath() pass if self.callback: wx.CallAfter(self.callback)