Merge branch 'master' into singularity
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()))
|
||||||
|
|||||||
Reference in New Issue
Block a user