diff --git a/gui/builtinPreferenceViews/pyfaCrestPreferences.py b/gui/builtinPreferenceViews/pyfaCrestPreferences.py index 1cd5b05ba..308999953 100644 --- a/gui/builtinPreferenceViews/pyfaCrestPreferences.py +++ b/gui/builtinPreferenceViews/pyfaCrestPreferences.py @@ -115,6 +115,6 @@ class PFCrestPref ( PreferenceView): self.inputClientSecret.Disable() def getImage(self): - return BitmapLoader.getBitmap("prefs_proxy", "gui") + return BitmapLoader.getBitmap("eve", "gui") PFCrestPref.register() diff --git a/gui/mainMenuBar.py b/gui/mainMenuBar.py index 7c6bd0396..95772fdbc 100644 --- a/gui/mainMenuBar.py +++ b/gui/mainMenuBar.py @@ -139,6 +139,7 @@ class MainMenuBar(wx.MenuBar): self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged) pub.subscribe(self.ssoLogin, 'login_success') pub.subscribe(self.ssoLogout, 'logout_success') + pub.subscribe(self.updateCrest, 'crest_changed') def fitChanged(self, event): enable = event.fitID is not None @@ -168,3 +169,13 @@ class MainMenuBar(wx.MenuBar): self.SetLabel(self.ssoLoginId, "Login to EVE") self.Enable(self.eveFittingsId, False) self.Enable(self.exportToEveId, False) + + def updateCrest(self, message): + bool = self.sCrest.settings.get('mode') == CrestModes.IMPLICIT or len(self.sCrest.getCrestCharacters()) == 0 + self.Enable(self.eveFittingsId, not bool) + self.Enable(self.exportToEveId, not bool) + if self.sCrest.settings.get('mode') == CrestModes.IMPLICIT: + self.SetLabel(self.ssoLoginId, "Login to EVE") + else: + self.SetLabel(self.ssoLoginId, "Manage Characters") + diff --git a/imgs/gui/eve.png b/imgs/gui/eve.png new file mode 100644 index 000000000..07bb38363 Binary files /dev/null and b/imgs/gui/eve.png differ diff --git a/service/crest.py b/service/crest.py index 01b2aab53..a6d95ca15 100644 --- a/service/crest.py +++ b/service/crest.py @@ -45,11 +45,13 @@ class Crest(): @classmethod def restartService(cls): - # This is hear to reseed pycrest values when changing preferences + # This is here to reseed pycrest values when changing preferences # We first stop the server n case one is running, as creating a new # instance doesn't do this. - cls._instance.stopServer() + if cls._instance.httpd: + cls._instance.stopServer() cls._instance = Crest() + wx.CallAfter(pub.sendMessage, 'crest_changed', message=None) return cls._instance def __init__(self): @@ -121,6 +123,7 @@ class Crest(): return char.eve.get('https://api-sisi.testeveonline.com/characters/%d/fittings/'%char.ID) def postFitting(self, charID, json): + #@todo: new fitting ID can be recovered from Location header, ie: Location -> https://api-sisi.testeveonline.com/characters/1611853631/fittings/37486494/ char = self.getCrestCharacter(charID) return char.eve.post('https://api-sisi.testeveonline.com/characters/%d/fittings/'%char.ID, data=json)