Fix #256
This commit is contained in:
@@ -21,7 +21,7 @@ evemonMinVersion = "4081"
|
||||
|
||||
# Database version (int ONLY)
|
||||
# Increment every time we need to flag for user database upgrade/modification
|
||||
dbversion = 4
|
||||
dbversion = 5
|
||||
|
||||
pyfaPath = None
|
||||
savePath = None
|
||||
|
||||
8
eos/db/migrations/upgrade5.py
Normal file
8
eos/db/migrations/upgrade5.py
Normal file
@@ -0,0 +1,8 @@
|
||||
"""
|
||||
Migration 5
|
||||
|
||||
Simply deletes damage profiles with a blank name. See GH issue #256
|
||||
"""
|
||||
|
||||
def upgrade(saveddata_engine):
|
||||
saveddata_engine.execute('DELETE FROM damagePatterns WHERE name LIKE ?', ("",))
|
||||
@@ -28,11 +28,11 @@ from service.damagePattern import ImportError
|
||||
## Class DmgPatternEditorDlg
|
||||
###########################################################################
|
||||
|
||||
class DmgPatternEditorDlg (wx.Dialog):
|
||||
class DmgPatternEditorDlg(wx.Dialog):
|
||||
DAMAGE_TYPES = ("em", "thermal", "kinetic", "explosive")
|
||||
|
||||
def __init__(self, parent):
|
||||
wx.Dialog.__init__ (self, parent, id = wx.ID_ANY, title = u"Damage Pattern Editor", size = wx.Size( 400,240 ))
|
||||
wx.Dialog.__init__(self, parent, id = wx.ID_ANY, title = u"Damage Pattern Editor", size = wx.Size( 400,240 ))
|
||||
|
||||
self.block = False
|
||||
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
|
||||
@@ -244,13 +244,7 @@ class DmgPatternEditorDlg (wx.Dialog):
|
||||
self.block = False
|
||||
self.ValuesUpdated()
|
||||
|
||||
def newPattern(self,event):
|
||||
sDP = service.DamagePattern.getInstance()
|
||||
p = sDP.newPattern()
|
||||
self.choices.append(p)
|
||||
id = self.ccDmgPattern.Append(p.name)
|
||||
self.ccDmgPattern.SetSelection(id)
|
||||
|
||||
def newPattern(self, event):
|
||||
self.restrict()
|
||||
# reset values
|
||||
for type in self.DAMAGE_TYPES:
|
||||
@@ -258,9 +252,10 @@ class DmgPatternEditorDlg (wx.Dialog):
|
||||
editObj.SetValue(0)
|
||||
|
||||
self.btnSave.SetLabel("Create")
|
||||
self.Refresh()
|
||||
self.renamePattern()
|
||||
|
||||
def renamePattern(self,event=None):
|
||||
def renamePattern(self, event=None):
|
||||
if event is not None:
|
||||
self.btnSave.SetLabel("Rename")
|
||||
|
||||
@@ -268,7 +263,12 @@ class DmgPatternEditorDlg (wx.Dialog):
|
||||
self.namePicker.Show()
|
||||
self.headerSizer.Replace(self.ccDmgPattern, self.namePicker)
|
||||
self.namePicker.SetFocus()
|
||||
self.namePicker.SetValue(self.getActivePattern().name)
|
||||
|
||||
if event is not None: # Rename mode
|
||||
self.btnSave.SetLabel("Rename")
|
||||
self.namePicker.SetValue(self.getActivePattern().name)
|
||||
else: # Create mode
|
||||
self.namePicker.SetValue("")
|
||||
|
||||
for btn in (self.new, self.rename, self.delete, self.copy):
|
||||
btn.Hide()
|
||||
@@ -284,19 +284,25 @@ class DmgPatternEditorDlg (wx.Dialog):
|
||||
newName = self.namePicker.GetLineText(0)
|
||||
self.stNotice.SetLabel("")
|
||||
|
||||
p = self.getActivePattern()
|
||||
for pattern in self.choices:
|
||||
if pattern.name == newName and p != pattern:
|
||||
self.stNotice.SetLabel("Name already used, please choose another")
|
||||
return
|
||||
|
||||
if newName == "":
|
||||
self.stNotice.SetLabel("Invalid name.")
|
||||
return
|
||||
|
||||
sDP = service.DamagePattern.getInstance()
|
||||
if event.EventObject.Label == "Create":
|
||||
p = sDP.newPattern()
|
||||
else:
|
||||
# we are renaming, so get the current selection
|
||||
p = self.getActivePattern()
|
||||
|
||||
for pattern in self.choices:
|
||||
if pattern.name == newName and p != pattern:
|
||||
self.stNotice.SetLabel("Name already used, please choose another")
|
||||
return
|
||||
|
||||
sDP.renamePattern(p, newName)
|
||||
|
||||
self.updateChoices(newName)
|
||||
self.headerSizer.Replace(self.namePicker, self.ccDmgPattern)
|
||||
self.ccDmgPattern.Show()
|
||||
self.namePicker.Hide()
|
||||
@@ -335,7 +341,7 @@ class DmgPatternEditorDlg (wx.Dialog):
|
||||
def __del__( self ):
|
||||
pass
|
||||
|
||||
def updateChoices(self):
|
||||
def updateChoices(self, select=None):
|
||||
"Gathers list of patterns and updates choice selections"
|
||||
sDP = service.DamagePattern.getInstance()
|
||||
self.choices = sDP.getDamagePatternList()
|
||||
@@ -348,10 +354,14 @@ class DmgPatternEditorDlg (wx.Dialog):
|
||||
self.choices.sort(key=lambda p: p.name)
|
||||
self.ccDmgPattern.Clear()
|
||||
|
||||
for choice in map(lambda p: p.name, self.choices):
|
||||
for i, choice in enumerate(map(lambda p: p.name, self.choices)):
|
||||
self.ccDmgPattern.Append(choice)
|
||||
|
||||
self.ccDmgPattern.SetSelection(0)
|
||||
if select is not None and choice == select:
|
||||
self.ccDmgPattern.SetSelection(i)
|
||||
|
||||
if select is None:
|
||||
self.ccDmgPattern.SetSelection(0)
|
||||
self.patternChanged()
|
||||
|
||||
def importPatterns(self, event):
|
||||
|
||||
@@ -23,12 +23,12 @@ import service
|
||||
from gui.utils.clipboard import toClipboard, fromClipboard
|
||||
from service.targetResists import ImportError
|
||||
|
||||
class ResistsEditorDlg (wx.Dialog):
|
||||
class ResistsEditorDlg(wx.Dialog):
|
||||
|
||||
DAMAGE_TYPES = ("em", "thermal", "kinetic", "explosive")
|
||||
|
||||
def __init__(self, parent):
|
||||
wx.Dialog.__init__ (self, parent, id = wx.ID_ANY, title = u"Target Resists Editor", size = wx.Size( 350,240 ))
|
||||
wx.Dialog.__init__(self, parent, id = wx.ID_ANY, title = u"Target Resists Editor", size = wx.Size( 350,240 ))
|
||||
|
||||
self.block = False
|
||||
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
|
||||
|
||||
Reference in New Issue
Block a user