Merge branch 'master' into singularity

This commit is contained in:
DarkPhoenix
2015-07-04 12:45:15 +03:00
7 changed files with 65 additions and 48 deletions

View File

@@ -4,13 +4,8 @@ import time
import re import re
import os import os
def getVersion(db): def getAppVersion():
cursor = db.execute('PRAGMA user_version') # calculate app version based on upgrade files we have
return cursor.fetchone()[0]
def update(saveddata_engine):
dbVersion = getVersion(saveddata_engine)
appVersion = 0 appVersion = 0
for fname in os.listdir(os.path.join(os.path.dirname(__file__), "migrations")): for fname in os.listdir(os.path.join(os.path.dirname(__file__), "migrations")):
m = re.match("^upgrade(?P<index>\d+)\.py$", fname) m = re.match("^upgrade(?P<index>\d+)\.py$", fname)
@@ -18,6 +13,15 @@ def update(saveddata_engine):
continue continue
index = int(m.group("index")) index = int(m.group("index"))
appVersion = max(appVersion, index) appVersion = max(appVersion, index)
return appVersion
def getVersion(db):
cursor = db.execute('PRAGMA user_version')
return cursor.fetchone()[0]
def update(saveddata_engine):
dbVersion = getVersion(saveddata_engine)
appVersion = getAppVersion()
if dbVersion == appVersion: if dbVersion == appVersion:
return return

View File

@@ -56,6 +56,9 @@ class PFGeneralPref ( PreferenceView):
self.cbShowTooltip = wx.CheckBox( panel, wx.ID_ANY, u"Show tab tooltips", wx.DefaultPosition, wx.DefaultSize, 0 ) self.cbShowTooltip = wx.CheckBox( panel, wx.ID_ANY, u"Show tab tooltips", wx.DefaultPosition, wx.DefaultSize, 0 )
mainSizer.Add( self.cbShowTooltip, 0, wx.ALL|wx.EXPAND, 5 ) mainSizer.Add( self.cbShowTooltip, 0, wx.ALL|wx.EXPAND, 5 )
self.cbMarketShortcuts = wx.CheckBox( panel, wx.ID_ANY, u"Show market shortcuts", wx.DefaultPosition, wx.DefaultSize, 0 )
mainSizer.Add( self.cbMarketShortcuts, 0, wx.ALL|wx.EXPAND, 5 )
defCharSizer = wx.BoxSizer( wx.HORIZONTAL ) defCharSizer = wx.BoxSizer( wx.HORIZONTAL )
self.sFit = service.Fit.getInstance() self.sFit = service.Fit.getInstance()
@@ -69,6 +72,7 @@ class PFGeneralPref ( PreferenceView):
self.cbCompactSkills.SetValue(self.sFit.serviceFittingOptions["compactSkills"] or False) self.cbCompactSkills.SetValue(self.sFit.serviceFittingOptions["compactSkills"] or False)
self.cbReopenFits.SetValue(self.openFitsSettings["enabled"]) self.cbReopenFits.SetValue(self.openFitsSettings["enabled"])
self.cbShowTooltip.SetValue(self.sFit.serviceFittingOptions["showTooltip"] or False) self.cbShowTooltip.SetValue(self.sFit.serviceFittingOptions["showTooltip"] or False)
self.cbMarketShortcuts.SetValue(self.sFit.serviceFittingOptions["showMarketShortcuts"] or False)
self.cbGlobalChar.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalCharStateChange) self.cbGlobalChar.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalCharStateChange)
self.cbGlobalDmgPattern.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalDmgPatternStateChange) self.cbGlobalDmgPattern.Bind(wx.EVT_CHECKBOX, self.OnCBGlobalDmgPatternStateChange)
@@ -79,6 +83,7 @@ class PFGeneralPref ( PreferenceView):
self.cbCompactSkills.Bind(wx.EVT_CHECKBOX, self.onCBCompactSkills) self.cbCompactSkills.Bind(wx.EVT_CHECKBOX, self.onCBCompactSkills)
self.cbReopenFits.Bind(wx.EVT_CHECKBOX, self.onCBReopenFits) self.cbReopenFits.Bind(wx.EVT_CHECKBOX, self.onCBReopenFits)
self.cbShowTooltip.Bind(wx.EVT_CHECKBOX, self.onCBShowTooltip) self.cbShowTooltip.Bind(wx.EVT_CHECKBOX, self.onCBShowTooltip)
self.cbMarketShortcuts.Bind(wx.EVT_CHECKBOX, self.onCBShowShortcuts)
self.cbRackLabels.Enable(self.sFit.serviceFittingOptions["rackSlots"] or False) self.cbRackLabels.Enable(self.sFit.serviceFittingOptions["rackSlots"] or False)
@@ -135,6 +140,9 @@ class PFGeneralPref ( PreferenceView):
def onCBShowTooltip(self, event): def onCBShowTooltip(self, event):
self.sFit.serviceFittingOptions["showTooltip"] = self.cbShowTooltip.GetValue() self.sFit.serviceFittingOptions["showTooltip"] = self.cbShowTooltip.GetValue()
def onCBShowShortcuts(self, event):
self.sFit.serviceFittingOptions["showMarketShortcuts"] = self.cbMarketShortcuts.GetValue()
def getImage(self): def getImage(self):
return bitmapLoader.getBitmap("prefs_settings", "icons") return bitmapLoader.getBitmap("prefs_settings", "icons")

View File

@@ -55,6 +55,15 @@ class BaseName(ViewColumn):
return stuff.item.name return stuff.item.name
else: else:
item = getattr(stuff, "item", stuff) item = getattr(stuff, "item", stuff)
if service.Fit.getInstance().serviceFittingOptions["showMarketShortcuts"]:
marketShortcut = getattr(item, "marketShortcut", None)
if marketShortcut:
# use unicode subscript to display shortcut value
shortcut = unichr(marketShortcut+8320)+u" "
return shortcut+item.name
return item.name return item.name
BaseName.register() BaseName.register()

View File

@@ -39,7 +39,7 @@ import gui.globalEvents as GE
from gui import bitmapLoader from gui import bitmapLoader
from gui.mainMenuBar import MainMenuBar from gui.mainMenuBar import MainMenuBar
from gui.additionsPane import AdditionsPane from gui.additionsPane import AdditionsPane
from gui.marketBrowser import MarketBrowser from gui.marketBrowser import MarketBrowser, ItemSelected
from gui.multiSwitch import MultiSwitch from gui.multiSwitch import MultiSwitch
from gui.statsPane import StatsPane from gui.statsPane import StatsPane
from gui.shipBrowser import ShipBrowser, FitSelected, ImportSelected, Stage3Selected from gui.shipBrowser import ShipBrowser, FitSelected, ImportSelected, Stage3Selected
@@ -423,12 +423,6 @@ class MainFrame(wx.Frame):
ctabnext = wx.NewId() ctabnext = wx.NewId()
ctabprev = wx.NewId() ctabprev = wx.NewId()
self.additionstab1 = wx.NewId()
self.additionstab2 = wx.NewId()
self.additionstab3 = wx.NewId()
self.additionstab4 = wx.NewId()
self.additionstab5 = wx.NewId()
# Close Page # Close Page
self.Bind(wx.EVT_MENU, self.CloseCurrentPage, id=self.closePageId) self.Bind(wx.EVT_MENU, self.CloseCurrentPage, id=self.closePageId)
self.Bind(wx.EVT_MENU, self.HAddPage, id = self.addPageId) self.Bind(wx.EVT_MENU, self.HAddPage, id = self.addPageId)
@@ -437,12 +431,6 @@ class MainFrame(wx.Frame):
self.Bind(wx.EVT_MENU, self.CTabNext, id = ctabnext) self.Bind(wx.EVT_MENU, self.CTabNext, id = ctabnext)
self.Bind(wx.EVT_MENU, self.CTabPrev, id = ctabprev) self.Bind(wx.EVT_MENU, self.CTabPrev, id = ctabprev)
self.Bind(wx.EVT_MENU, self.AdditionsTabSelect, id = self.additionstab1)
self.Bind(wx.EVT_MENU, self.AdditionsTabSelect, id = self.additionstab2)
self.Bind(wx.EVT_MENU, self.AdditionsTabSelect, id = self.additionstab3)
self.Bind(wx.EVT_MENU, self.AdditionsTabSelect, id = self.additionstab4)
self.Bind(wx.EVT_MENU, self.AdditionsTabSelect, id = self.additionstab5)
actb = [(wx.ACCEL_CTRL, ord('T'), self.addPageId), actb = [(wx.ACCEL_CTRL, ord('T'), self.addPageId),
(wx.ACCEL_CMD, ord('T'), self.addPageId), (wx.ACCEL_CMD, ord('T'), self.addPageId),
@@ -462,41 +450,43 @@ class MainFrame(wx.Frame):
(wx.ACCEL_CMD, wx.WXK_TAB, ctabnext), (wx.ACCEL_CMD, wx.WXK_TAB, ctabnext),
(wx.ACCEL_CMD | wx.ACCEL_SHIFT, wx.WXK_TAB, ctabprev), (wx.ACCEL_CMD | wx.ACCEL_SHIFT, wx.WXK_TAB, ctabprev),
# Ctrl+age(Up/Down) # Ctrl+Page(Up/Down)
(wx.ACCEL_CTRL, wx.WXK_PAGEDOWN, ctabnext), (wx.ACCEL_CTRL, wx.WXK_PAGEDOWN, ctabnext),
(wx.ACCEL_CTRL, wx.WXK_PAGEUP, ctabprev), (wx.ACCEL_CTRL, wx.WXK_PAGEUP, ctabprev),
(wx.ACCEL_CMD, wx.WXK_PAGEDOWN, ctabnext), (wx.ACCEL_CMD, wx.WXK_PAGEDOWN, ctabnext),
(wx.ACCEL_CMD, wx.WXK_PAGEUP, ctabprev), (wx.ACCEL_CMD, wx.WXK_PAGEUP, ctabprev)
(wx.ACCEL_CTRL, ord('1'), self.additionstab1),
(wx.ACCEL_CTRL, ord('2'), self.additionstab2),
(wx.ACCEL_CTRL, ord('3'), self.additionstab3),
(wx.ACCEL_CTRL, ord('4'), self.additionstab4),
(wx.ACCEL_CTRL, ord('5'), self.additionstab5),
(wx.ACCEL_CMD, ord('1'), self.additionstab1),
(wx.ACCEL_CMD, ord('2'), self.additionstab2),
(wx.ACCEL_CMD, ord('3'), self.additionstab3),
(wx.ACCEL_CMD, ord('4'), self.additionstab4),
(wx.ACCEL_CMD, ord('5'), self.additionstab5)
] ]
# Ctrl/Cmd+# for addition pane selection
self.additionsSelect = []
for i in range(0, self.additionsPane.notebook.GetPageCount()):
self.additionsSelect.append(wx.NewId())
self.Bind(wx.EVT_MENU, self.AdditionsTabSelect, id=self.additionsSelect[i])
actb.append((wx.ACCEL_CMD, i+49, self.additionsSelect[i]))
actb.append((wx.ACCEL_CTRL, i+49, self.additionsSelect[i]))
# Alt+1-9 for market item selection
self.itemSelect = []
for i in range(0, 9):
self.itemSelect.append(wx.NewId())
self.Bind(wx.EVT_MENU, self.ItemSelect, id = self.itemSelect[i])
actb.append((wx.ACCEL_ALT, i + 49, self.itemSelect[i]))
atable = wx.AcceleratorTable(actb) atable = wx.AcceleratorTable(actb)
self.SetAcceleratorTable(atable) self.SetAcceleratorTable(atable)
def AdditionsTabSelect(self, event): def AdditionsTabSelect(self, event):
selTab = None selTab = self.additionsSelect.index(event.GetId())
if event.GetId() == self.additionstab1:
selTab = 0 if selTab <= self.additionsPane.notebook.GetPageCount():
if event.GetId() == self.additionstab2:
selTab = 1
if event.GetId() == self.additionstab3:
selTab = 2
if event.GetId() == self.additionstab4:
selTab = 3
if event.GetId() == self.additionstab5:
selTab = 4
if selTab is not None:
self.additionsPane.notebook.SetSelection(selTab) self.additionsPane.notebook.SetSelection(selTab)
def ItemSelect(self, event):
selItem = self.itemSelect.index(event.GetId())
if selItem < len(self.marketBrowser.itemView.active):
wx.PostEvent(self, ItemSelected(itemID=self.marketBrowser.itemView.active[selItem].ID))
def CTabNext(self, event): def CTabNext(self, event):
self.fitMultiSwitch.NextPage() self.fitMultiSwitch.NextPage()

View File

@@ -438,6 +438,11 @@ class ItemView(d.Display):
self.metalvls = sMkt.directAttrRequest(items, attrs) self.metalvls = sMkt.directAttrRequest(items, attrs)
# Re-sort stuff # Re-sort stuff
items.sort(key=self.itemSort) items.sort(key=self.itemSort)
for i, item in enumerate(items[:9]):
# set shortcut info for first 9 modules
item.marketShortcut = i+1
d.Display.refresh(self, items) d.Display.refresh(self, items)
def makeReverseMetaMap(self): def makeReverseMetaMap(self):

View File

@@ -97,7 +97,8 @@ class Fit(object):
"rackSlots": True, "rackSlots": True,
"rackLabels": True, "rackLabels": True,
"compactSkills": True, "compactSkills": True,
"showTooltip": True} "showTooltip": True,
"showMarketShortcuts": False}
self.serviceFittingOptions = SettingsProvider.getInstance().getSettings( self.serviceFittingOptions = SettingsProvider.getInstance().getSettings(
"pyfaServiceFittingOptions", serviceFittingDefaultOptions) "pyfaServiceFittingOptions", serviceFittingDefaultOptions)
@@ -893,7 +894,7 @@ class Fit(object):
State.ONLINE: State.ACTIVE} # Just in case State.ONLINE: State.ACTIVE} # Just in case
def __getProposedState(self, mod, click, proposedState=None): def __getProposedState(self, mod, click, proposedState=None):
if mod.slot in (Slot.RIG, Slot.SUBSYSTEM) or mod.isEmpty: if mod.slot is Slot.SUBSYSTEM or mod.isEmpty:
return State.ONLINE return State.ONLINE
currState = mod.state currState = mod.state

View File

@@ -55,4 +55,4 @@ else:
# If database does not exist, do not worry about migration. Simply # If database does not exist, do not worry about migration. Simply
# create and set version # create and set version
eos.db.saveddata_meta.create_all() eos.db.saveddata_meta.create_all()
eos.db.saveddata_engine.execute('PRAGMA user_version = %d'%config.dbversion) eos.db.saveddata_engine.execute('PRAGMA user_version = {}'.format(migration.getAppVersion()))