From 1bf4e7498d52c6e483d530d33ee072fc3ef1578a Mon Sep 17 00:00:00 2001 From: Corollax Date: Mon, 6 Dec 2010 02:57:03 -0600 Subject: [PATCH 1/6] Fix a warning on performance committing as cnc commands --- gui/builtinViewColumns/attributeDisplay.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/builtinViewColumns/attributeDisplay.py b/gui/builtinViewColumns/attributeDisplay.py index a36798921..d00fd6b7c 100644 --- a/gui/builtinViewColumns/attributeDisplay.py +++ b/gui/builtinViewColumns/attributeDisplay.py @@ -61,7 +61,7 @@ class AttributeDisplay(ViewColumn): sMarket = service.Market.getInstance() #Hack into our master view and add a callback for ourselves to know when to query def refresh(stuff): - self.directInfo = sMarket.directRequest(stuff, info.ID) if stuff is not None else None + self.directInfo = sMarket.directRequest(stuff, info.ID) if stuff else None originalRefresh(stuff) fittingView.refresh = refresh From c703252ee599f149ce8e3e7915090e57ff9dd6fe Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Mon, 6 Dec 2010 13:20:49 +0200 Subject: [PATCH 2/6] Moved gauges settings into preferences dialog --- gui/builtinPreferenceViews/__init__.py | 2 +- gui/builtinPreferenceViews/dummyView.py | 4 +- .../pyfaGaugePreferences.py | 101 ++++++++---------- gui/mainMenuBar.py | 2 +- gui/preferenceDialog.py | 19 +++- gui/preferenceView.py | 5 + icons/pref-gauges_big.png | Bin 0 -> 5180 bytes 7 files changed, 71 insertions(+), 62 deletions(-) create mode 100644 icons/pref-gauges_big.png diff --git a/gui/builtinPreferenceViews/__init__.py b/gui/builtinPreferenceViews/__init__.py index b4478713f..7bd3c3e15 100644 --- a/gui/builtinPreferenceViews/__init__.py +++ b/gui/builtinPreferenceViews/__init__.py @@ -1 +1 @@ -__all__ = ["dummyView"] +__all__ = ["pyfaGaugePreferences"] diff --git a/gui/builtinPreferenceViews/dummyView.py b/gui/builtinPreferenceViews/dummyView.py index 58e5e800d..8cdb606a1 100644 --- a/gui/builtinPreferenceViews/dummyView.py +++ b/gui/builtinPreferenceViews/dummyView.py @@ -17,9 +17,9 @@ # along with pyfa. If not, see . #=============================================================================== -from gui.preferenceView import PreferenceView import wx - +from gui.preferenceView import PreferenceView +from gui import bitmapLoader class DummyView(PreferenceView): title = "Dummy" diff --git a/gui/builtinPreferenceViews/pyfaGaugePreferences.py b/gui/builtinPreferenceViews/pyfaGaugePreferences.py index ca09c825e..b81798841 100755 --- a/gui/builtinPreferenceViews/pyfaGaugePreferences.py +++ b/gui/builtinPreferenceViews/pyfaGaugePreferences.py @@ -1,15 +1,11 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -########################################################################### -## Python code generated with wxFormBuilder (version May 4 2010) -## http://www.wxformbuilder.org/ -## -## PLEASE DO "NOT" EDIT THIS FILE! -########################################################################### import wx import copy +from gui.preferenceView import PreferenceView +from gui import bitmapLoader ########################################################################### ## Class PFGaugePref @@ -168,155 +164,153 @@ class PFGaugePreview(wx.Window): dc.DrawLabel(formatStr.format(value), rect, wx.ALIGN_CENTER) -class PFGaugePref ( wx.Dialog): +class PFGaugePref ( PreferenceView): + title = "Pyfa Gauge Theme" + def populatePanel( self, panel ): - def __init__( self ): - wx.Dialog.__init__ ( self, None, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size( 500,261 ), style = wx.DEFAULT_DIALOG_STYLE ) - - self.SetTitle("Pyfa's Gauges colors editor") self.InitDefaultColours() mainSizer = wx.BoxSizer( wx.VERTICAL ) gSizer1 = wx.BoxSizer( wx.HORIZONTAL ) - self.st0100 = wx.StaticText( self, wx.ID_ANY, u"0 - 100", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) + self.st0100 = wx.StaticText( panel, wx.ID_ANY, u"0 - 100", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) self.st0100.Wrap( -1 ) gSizer1.Add( self.st0100, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp0100S = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp0100S = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer1.Add( self.cp0100S, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp0100E = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp0100E = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer1.Add( self.cp0100E, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.gauge0100S = PFGaugePreview( self, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge0100S = PFGaugePreview( panel, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer1.Add( self.gauge0100S, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge0100M = PFGaugePreview( self, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge0100M = PFGaugePreview( panel, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer1.Add( self.gauge0100M, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge0100E = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge0100E = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer1.Add( self.gauge0100E, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.LEFT, 5 ) mainSizer.Add( gSizer1, 0, wx.EXPAND, 5 ) gSizer2 = wx.BoxSizer( wx.HORIZONTAL ) - self.st100101 = wx.StaticText( self, wx.ID_ANY, u"100 - 101", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) + self.st100101 = wx.StaticText( panel, wx.ID_ANY, u"100 - 101", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) self.st100101.Wrap( -1 ) gSizer2.Add( self.st100101, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp100101S = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp100101S = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer2.Add( self.cp100101S, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp100101E = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp100101E = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer2.Add( self.cp100101E, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.gauge100101S = PFGaugePreview( self, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge100101S = PFGaugePreview( panel, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer2.Add( self.gauge100101S, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge100101M = PFGaugePreview( self, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge100101M = PFGaugePreview( panel, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer2.Add( self.gauge100101M, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge100101E = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge100101E = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer2.Add( self.gauge100101E, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.LEFT, 5 ) mainSizer.Add( gSizer2, 0, wx.EXPAND, 5 ) gSizer3 = wx.BoxSizer( wx.HORIZONTAL ) - self.st101103 = wx.StaticText( self, wx.ID_ANY, u"101 - 103", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) + self.st101103 = wx.StaticText( panel, wx.ID_ANY, u"101 - 103", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) self.st101103.Wrap( -1 ) gSizer3.Add( self.st101103, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp101103S = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp101103S = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer3.Add( self.cp101103S, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp101103E = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp101103E = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer3.Add( self.cp101103E, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.gauge101103S = PFGaugePreview( self, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge101103S = PFGaugePreview( panel, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer3.Add( self.gauge101103S, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge101103M = PFGaugePreview( self, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge101103M = PFGaugePreview( panel, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer3.Add( self.gauge101103M, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge101103E = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge101103E = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer3.Add( self.gauge101103E, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.LEFT, 5 ) mainSizer.Add( gSizer3, 0, wx.EXPAND, 5 ) gSizer4 = wx.BoxSizer( wx.HORIZONTAL ) - self.st103105 = wx.StaticText( self, wx.ID_ANY, u"103 - 105", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) + self.st103105 = wx.StaticText( panel, wx.ID_ANY, u"103 - 105", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) self.st103105.Wrap( -1 ) gSizer4.Add( self.st103105, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp103105S = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp103105S = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer4.Add( self.cp103105S, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.cp103105E = wx.ColourPickerCtrl( self, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) + self.cp103105E = wx.ColourPickerCtrl( panel, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE | wx.CLRP_SHOW_LABEL ) gSizer4.Add( self.cp103105E, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) - self.gauge103105S = PFGaugePreview( self, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge103105S = PFGaugePreview( panel, wx.ID_ANY, 33, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer4.Add( self.gauge103105S, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge103105M = PFGaugePreview( self, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge103105M = PFGaugePreview( panel, wx.ID_ANY, 66, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer4.Add( self.gauge103105M, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 ) - self.gauge103105E = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) + self.gauge103105E = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER ) gSizer4.Add( self.gauge103105E, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.LEFT, 5 ) mainSizer.Add( gSizer4, 0, wx.EXPAND, 5 ) footerSizer = wx.BoxSizer( wx.VERTICAL ) - self.sl1 = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) + self.sl1 = wx.StaticLine( panel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) footerSizer.Add( self.sl1, 0, wx.EXPAND |wx.ALL, 5 ) previewSizer = wx.BoxSizer( wx.HORIZONTAL ) - self.wndPreview0100 = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) + self.wndPreview0100 = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) previewSizer.Add( self.wndPreview0100, 1, wx.ALIGN_CENTER_VERTICAL, 5 ) - self.wndPreview100101 = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) + self.wndPreview100101 = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) previewSizer.Add( self.wndPreview100101, 1, wx.ALIGN_CENTER_VERTICAL, 5 ) - self.wndPreview101103 = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) + self.wndPreview101103 = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) previewSizer.Add( self.wndPreview101103, 1, wx.ALIGN_CENTER_VERTICAL, 5 ) - self.wndPreview103105 = PFGaugePreview( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) + self.wndPreview103105 = PFGaugePreview( panel, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, 0) previewSizer.Add( self.wndPreview103105, 1, wx.ALIGN_CENTER_VERTICAL, 5 ) footerSizer.Add( previewSizer, 1, wx.EXPAND | wx.ALL, 5 ) buttonsSizer = wx.BoxSizer( wx.HORIZONTAL ) - self.cbLink = wx.CheckBox( self, wx.ID_ANY, u"Link Colors", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.cbLink = wx.CheckBox( panel, wx.ID_ANY, u"Link Colors", wx.DefaultPosition, wx.DefaultSize, 0 ) buttonsSizer.Add( self.cbLink, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT | wx.LEFT, 5 ) - self.sliderGradientStart = wx.Slider( self, wx.ID_ANY, self.gradientStart, 0, 255, wx.DefaultPosition, (127,-1), wx.SL_HORIZONTAL|wx.SL_LABELS ) + self.sliderGradientStart = wx.Slider( panel, wx.ID_ANY, self.gradientStart, 0, 255, wx.DefaultPosition, (127,-1), wx.SL_HORIZONTAL|wx.SL_LABELS ) buttonsSizer.Add( self.sliderGradientStart, 1, wx.EXPAND | wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5 ) - self.btnRestore = wx.Button( self, wx.ID_ANY, u"Restore Defaults", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.btnRestore = wx.Button( panel, wx.ID_ANY, u"Restore Defaults", wx.DefaultPosition, wx.DefaultSize, 0 ) buttonsSizer.Add( self.btnRestore, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5 ) - self.btnDump = wx.Button( self, wx.ID_ANY, u"Dump Colors", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.btnDump = wx.Button( panel, wx.ID_ANY, u"Dump Colors", wx.DefaultPosition, wx.DefaultSize, 0 ) buttonsSizer.Add( self.btnDump, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5 ) - self.btnOk = wx.Button( self, wx.ID_ANY, u"OK", wx.DefaultPosition, wx.DefaultSize, 0 ) + self.btnOk = wx.Button( panel, wx.ID_ANY, u"Apply", wx.DefaultPosition, wx.DefaultSize, 0 ) buttonsSizer.Add( self.btnOk, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5 ) footerSizer.Add( buttonsSizer, 1, wx.ALIGN_RIGHT, 5 ) mainSizer.Add( footerSizer, 0, wx.EXPAND, 5 ) - self.SetSizer( mainSizer ) + panel.SetSizer( mainSizer ) self.SetColours() - self.Fit() - self.Layout() +# self.Fit() +# self.Layout() self.sliderGradientStart.Bind(wx.EVT_SCROLL, self.OnGradientStartScroll) self.btnRestore.Bind(wx.EVT_BUTTON, self.RestoreDefaults) @@ -335,6 +329,8 @@ class PFGaugePref ( wx.Dialog): self.cp103105S.Bind( wx.EVT_COLOURPICKER_CHANGED, self.OnColourChanged ) self.cp103105E.Bind( wx.EVT_COLOURPICKER_CHANGED, self.OnColourChanged ) + def getImage(self): + return bitmapLoader.getBitmap("pref-gauges_big", "icons") def InitDefaultColours(self): self.c0100S = wx.Colour(191, 191, 191, 255) @@ -436,7 +432,7 @@ class PFGaugePref ( wx.Dialog): event.Skip() def OnOk(self, event): - self.Close() + #Apply New Settings event.Skip() def DumpColours(self, event): @@ -502,9 +498,4 @@ class PFGaugePref ( wx.Dialog): def __del__( self ): pass -if __name__ == '__main__': - app = wx.PySimpleApp() - dlg = PFGaugePref() - dlg.ShowModal() - dlg.Destroy() - app.MainLoop() +PFGaugePref.register() \ No newline at end of file diff --git a/gui/mainMenuBar.py b/gui/mainMenuBar.py index bd2db801e..ea677c744 100644 --- a/gui/mainMenuBar.py +++ b/gui/mainMenuBar.py @@ -81,7 +81,7 @@ class MainMenuBar(wx.MenuBar): # graphFrameItem.Enable(gui.graphFrame.enabled) windowMenu.AppendItem(graphFrameItem) - #windowMenu.Append(wx.ID_PREFERENCES) + windowMenu.Append(wx.ID_PREFERENCES) # Help menu helpMenu = wx.Menu() diff --git a/gui/preferenceDialog.py b/gui/preferenceDialog.py index 82a353225..614fc7568 100644 --- a/gui/preferenceDialog.py +++ b/gui/preferenceDialog.py @@ -22,19 +22,32 @@ from gui.preferenceView import PreferenceView class PreferenceDialog(wx.Dialog): def __init__(self, parent): - wx.Dialog.__init__(self, parent, id=wx.ID_ANY, size=wx.Size(600, 400), style=wx.DEFAULT_DIALOG_STYLE) + wx.Dialog.__init__(self, parent, id=wx.ID_ANY, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE) + self.SetTitle("pyfa - Preferences") + mainSizer = wx.BoxSizer(wx.VERTICAL) + self.listbook = wx.Listbook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.listbook.GetListView().SetMinSize((500, -1)) self.listbook.GetListView().SetSize((500, -1)) + self.imageList = wx.ImageList(64,64) + self.listbook.SetImageList(self.imageList) + mainSizer.Add(self.listbook, 1, wx.EXPAND | wx.ALL, 5) self.SetSizer(mainSizer) - self.Layout() self.Centre(wx.BOTH) for title, prefView in PreferenceView.views.iteritems(): page = wx.Panel(self.listbook) + bmp = prefView.getImage() + if bmp: + imgID = self.imageList.Add(bmp) + else: + imgID = -1 prefView.populatePanel(page) - self.listbook.AddPage(page, title) + self.listbook.AddPage(page, title, imageId = imgID) + + self.Fit() + self.Layout() \ No newline at end of file diff --git a/gui/preferenceView.py b/gui/preferenceView.py index 86e8a2537..8833d8cb7 100644 --- a/gui/preferenceView.py +++ b/gui/preferenceView.py @@ -17,6 +17,8 @@ # along with pyfa. If not, see . #=============================================================================== +import wx + class PreferenceView(object): views = {} def __init__(self): @@ -36,5 +38,8 @@ class PreferenceView(object): def refreshPanel(self, fit): raise NotImplementedError() + def getImage(self): + return wx.NullBitmap + from gui.builtinPreferenceViews import * diff --git a/icons/pref-gauges_big.png b/icons/pref-gauges_big.png new file mode 100644 index 0000000000000000000000000000000000000000..72f74a3bb231391ed1a27f973b28461cb56cbba4 GIT binary patch literal 5180 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 Date: Mon, 6 Dec 2010 13:37:38 +0200 Subject: [PATCH 3/6] Added a nice icon for preferences dialog --- gui/mainFrame.py | 2 +- gui/mainMenuBar.py | 8 +++++--- gui/preferenceDialog.py | 5 ++++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/gui/mainFrame.py b/gui/mainFrame.py index f9e84e294..07c47d071 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -296,7 +296,7 @@ class MainFrame(wx.Frame): # Backup fits self.Bind(wx.EVT_MENU, self.backupToXml, id=menuBar.backupFitsId) # Preference dialog - self.Bind(wx.EVT_MENU, self.showPreferenceDialog, id=wx.ID_PREFERENCES) + self.Bind(wx.EVT_MENU, self.showPreferenceDialog, id = menuBar.preferencesId) #Clipboard exports self.Bind(wx.EVT_MENU, self.exportToClipboard, id=wx.ID_COPY) diff --git a/gui/mainMenuBar.py b/gui/mainMenuBar.py index ea677c744..93e97c9e4 100644 --- a/gui/mainMenuBar.py +++ b/gui/mainMenuBar.py @@ -30,6 +30,7 @@ class MainMenuBar(wx.MenuBar): self.damagePatternEditorId = wx.NewId() self.graphFrameId = wx.NewId() self.backupFitsId = wx.NewId() + self.preferencesId = wx.NewId() self.mainFrame = gui.mainFrame.MainFrame.getInstance() @@ -78,10 +79,11 @@ class MainMenuBar(wx.MenuBar): graphFrameItem = wx.MenuItem(windowMenu, self.graphFrameId, "Graphs\tCTRL+G") graphFrameItem.SetBitmap(bitmapLoader.getBitmap("graphs_small", "icons")) -# graphFrameItem.Enable(gui.graphFrame.enabled) windowMenu.AppendItem(graphFrameItem) - - windowMenu.Append(wx.ID_PREFERENCES) + preferencesItem = wx.MenuItem(windowMenu, self.preferencesId, "Preferences\tCTRL+P") + preferencesItem.SetBitmap(bitmapLoader.getBitmap("preferences_small", "icons")) + windowMenu.AppendItem(preferencesItem) +# graphFrameItem.Enable(gui.graphFrame.enabled) # Help menu helpMenu = wx.Menu() diff --git a/gui/preferenceDialog.py b/gui/preferenceDialog.py index 614fc7568..63be6f369 100644 --- a/gui/preferenceDialog.py +++ b/gui/preferenceDialog.py @@ -19,12 +19,15 @@ import wx from gui.preferenceView import PreferenceView +import bitmapLoader + class PreferenceDialog(wx.Dialog): def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE) self.SetTitle("pyfa - Preferences") - + i = wx.IconFromBitmap(bitmapLoader.getBitmap("preferences_small", "icons")) + self.SetIcon(i) mainSizer = wx.BoxSizer(wx.VERTICAL) self.listbook = wx.Listbook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) From 78015b2c33fa4113690ffe5f3d65fef3d0a1c2ac Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Mon, 6 Dec 2010 13:38:27 +0200 Subject: [PATCH 4/6] Added missing icon from previous commit --- icons/preferences_small.png | Bin 0 -> 584 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/preferences_small.png diff --git a/icons/preferences_small.png b/icons/preferences_small.png new file mode 100644 index 0000000000000000000000000000000000000000..565a9330e0a156dff5bed2c9fad8c95a44344ba4 GIT binary patch literal 584 zcmV-O0=NB%P)g}f4o)2%U3C;eEDoiEh?94d(rV57VIF#8VqzW$HrDC|#U`x@QDbgi zVl)t9GGz&YY#D?gc%>hISA+_EBpnXt#pnC`p6@xw0$8TCbULjhlgVx(kuc)%xbgqq zR5+DNDFRN0!y)7Gm}oT0i39}h4h928qY?Rho^UvPGJ#kuW|-Amtrn`Pmd&+bFo@sp z$LI4IQw7BG?|#2ewOS<<3VjL$0=lMY^m;wqZujv5kx1l%Sl;V&Iy4#$ip3&@LV2!7vhhN=PCz%^9v24`qb(+m4W?!q-&~=?ssf5GfnAmJKV;3bvpDm0(NhahZ=&^sqo6Odj6>)Dq_3p~4~ zvb`d3Mydwjt&Df^hVmLtI2x=U&h9(JVYX-!y~z3zi;1>=LY;o(bL$(Yf$lf)dMf0-u^0HrpTG Wk@)HE*94aU0000 Date: Mon, 6 Dec 2010 14:25:38 +0200 Subject: [PATCH 5/6] Applied magic to marketBrowser.ItemView, now it automaticaly resizes Name column in order to have all columns visible ( used listmix.ListCtrlAutoWidthMixin; also column manual resize is blocked - it produces nasty effects in conjuction with listmix.ListCtrlAutoWidthMixin ) --- gui/marketBrowser.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/gui/marketBrowser.py b/gui/marketBrowser.py index 09159314b..ca179d906 100644 --- a/gui/marketBrowser.py +++ b/gui/marketBrowser.py @@ -17,11 +17,13 @@ # along with pyfa. If not, see . #=============================================================================== +import wx +import service +import wx.lib.mixins.listctrl as listmix import gui.display as d from gui.cachingImageList import CachingImageList from gui.contextMenu import ContextMenu -import wx -import service + ItemSelected, ITEM_SELECTED = wx.lib.newevent.NewEvent() @@ -197,7 +199,7 @@ class MarketTree(wx.TreeCtrl): self.SelectItem(item) self.marketBrowser.itemView.searching = False -class ItemView(d.Display): +class ItemView(d.Display, listmix.ListCtrlAutoWidthMixin): DEFAULT_COLS = ["Base Icon", "Base Name", "attr:power,,,True", @@ -205,7 +207,10 @@ class ItemView(d.Display): def __init__(self, parent, marketBrowser): d.Display.__init__(self, parent) + listmix.ListCtrlAutoWidthMixin.__init__(self) marketBrowser.Bind(wx.EVT_TREE_SEL_CHANGED, self.selectionMade) + + self.setResizeColumn(2) self.searching = False self.marketBrowser = marketBrowser self.marketView = marketBrowser.marketView @@ -220,6 +225,12 @@ class ItemView(d.Display): self.Bind(wx.EVT_CONTEXT_MENU, self.contextMenu) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.itemActivated) + # Deny column resize (we use ListCtrlAutoWidthMixin and it won't play nice with really big number of items in the list) + # This is overrides Display.resizeSkip ( EVT_LIST_COL_BEGIN_DRAG ) + + def resizeSkip(self, event): + event.Veto() + def itemActivated(self, event): #Check if something is selected, if so, spawn the menu for it sel = self.GetFirstSelected() From a777aba6e503dc647baf7c27af78b1bdda2fed93 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Mon, 6 Dec 2010 14:43:19 +0200 Subject: [PATCH 6/6] Force a fake ctrl resize on populate/refresh in marketBrowser.ItemView in order to have the columns resized ( ListCtrlAutoWidthMixin listens on wx.EVT_SIZE and resizes columns when that event is produced - on wxgtk this event isn't generated ) --- gui/marketBrowser.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gui/marketBrowser.py b/gui/marketBrowser.py index ca179d906..61f4eb28e 100644 --- a/gui/marketBrowser.py +++ b/gui/marketBrowser.py @@ -344,6 +344,10 @@ class ItemView(d.Display, listmix.ListCtrlAutoWidthMixin): self.active = stuff d.Display.populate(self, stuff) + self.SetSize((-1, -1)) + def refresh(self, stuff): stuff.sort(key=self.itemSort) d.Display.refresh(self, stuff) + + self.SetSize((-1, -1))