Skip to content

Commit

Permalink
Fix #256
Browse files Browse the repository at this point in the history
  • Loading branch information
blitzmann committed Feb 8, 2015
1 parent 7b8bb79 commit ef62f10
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 23 deletions.
2 changes: 1 addition & 1 deletion config.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

# Database version (int ONLY)
# Increment every time we need to flag for user database upgrade/modification
dbversion = 4
dbversion = 5

pyfaPath = None
savePath = None
Expand Down
8 changes: 8 additions & 0 deletions eos/db/migrations/upgrade5.py
Original file line number Diff line number Diff line change
@@ -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 ?', ("",))
50 changes: 30 additions & 20 deletions gui/patternEditor.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@
## 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)
Expand Down Expand Up @@ -244,31 +244,31 @@ def patternChanged(self, event=None):
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:
editObj = getattr(self, "%sEdit"%type)
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")

self.ccDmgPattern.Hide()
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()
Expand All @@ -284,19 +284,25 @@ def processRename(self, event):
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()
Expand Down Expand Up @@ -335,7 +341,7 @@ def deletePattern(self,event):
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()
Expand All @@ -348,10 +354,14 @@ def updateChoices(self):
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):
Expand Down
4 changes: 2 additions & 2 deletions gui/resistsEditor.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@
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)
Expand Down

0 comments on commit ef62f10

Please sign in to comment.