Merge branch 'master' of evefit.org:pyfa
This commit is contained in:
2
gui/builtinContextMenus/ammoPattern.py
Executable file → Normal file
2
gui/builtinContextMenus/ammoPattern.py
Executable file → Normal file
@@ -26,7 +26,7 @@ class AmmoPattern(ContextMenu):
|
||||
return False
|
||||
|
||||
def getText(self, context, selection):
|
||||
return "Set as damage pattern"
|
||||
return "Set as Damage Pattern"
|
||||
|
||||
def activate(self, context, selection, i):
|
||||
item = selection[0]
|
||||
|
||||
@@ -15,7 +15,8 @@ class DamagePattern(ContextMenu):
|
||||
def getText(self, context, selection):
|
||||
sDP = service.DamagePattern.getInstance()
|
||||
self.patterns = sDP.getDamagePatternList()
|
||||
self.patterns.sort(key=lambda p: p.name)
|
||||
self.patterns.sort( key=lambda p: (p.name in ["Selected Ammo",
|
||||
"Uniform"], p.name) )
|
||||
m = map(lambda p: p.name, self.patterns)
|
||||
return m
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ class ModuleAmmo(ViewColumn):
|
||||
name = "Module Ammo"
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.columnText = "Ammo"
|
||||
self.columnText = "Selected Ammo"
|
||||
|
||||
def getText(self, mod):
|
||||
return "%s (%s)" % (mod.charge.name, mod.numCharges) if mod.charge is not None else ""
|
||||
|
||||
@@ -1,276 +0,0 @@
|
||||
#===============================================================================
|
||||
# Copyright (C) 2010 Diego Duclos
|
||||
#
|
||||
# This file is part of pyfa.
|
||||
#
|
||||
# pyfa is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# pyfa is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with pyfa. If not, see <http://www.gnu.org/licenses/>.
|
||||
#===============================================================================
|
||||
|
||||
import wx
|
||||
import service
|
||||
import config
|
||||
import gui.mainFrame
|
||||
import os
|
||||
import gui.shipBrowser
|
||||
|
||||
class ImportDialog(wx.Dialog):
|
||||
def __init__(self, parent):
|
||||
wx.Dialog.__init__ (self, parent, id=wx.ID_ANY, title=u"Import fitting from ...", pos=wx.DefaultPosition, size=wx.Size(500, 300), style=wx.DEFAULT_DIALOG_STYLE)
|
||||
self._toggleEdit = -1
|
||||
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
|
||||
self.SetMinSize((500,300))
|
||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||
self._fitsFromFile = None
|
||||
self._fitsFromEdit = None
|
||||
|
||||
mainSizer = wx.BoxSizer(wx.VERTICAL)
|
||||
|
||||
headerSizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||
|
||||
self.cFilePicker = wx.FilePickerCtrl(self, wx.ID_ANY, wx.EmptyString, u"Select a fit file", u"*.*", style=wx.FLP_DEFAULT_STYLE | wx.FLP_FILE_MUST_EXIST | wx.FLP_CHANGE_DIR)
|
||||
headerSizer.Add(self.cFilePicker, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
|
||||
|
||||
self.tbtnEdit = wx.ToggleButton( self, wx.ID_ANY, u"Text Edit", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
headerSizer.Add( self.tbtnEdit, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5 )
|
||||
|
||||
|
||||
mainSizer.Add(headerSizer, 0, wx.EXPAND, 5)
|
||||
self.m_staticline2 = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
|
||||
self.m_staticline2.SetMinSize( wx.Size( 480,1 ) )
|
||||
mainSizer.Add( self.m_staticline2, 0, wx.EXPAND, 5 )
|
||||
contentSizer = wx.BoxSizer(wx.VERTICAL)
|
||||
|
||||
self.tcEdit = wx.TextCtrl(self, wx.ID_ANY, u"", style=wx.TE_MULTILINE)
|
||||
|
||||
contentSizer.Add(self.tcEdit, 1, wx.EXPAND, 5)
|
||||
|
||||
mainSizer.Add(contentSizer, 1, wx.EXPAND, 5)
|
||||
|
||||
footerSizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||
|
||||
|
||||
self.stStatus = wx.StaticText( self, wx.ID_ANY, u"Status: File mode.", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
self.stStatus.Wrap( -1 )
|
||||
footerSizer.Add( self.stStatus, 1, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5 )
|
||||
|
||||
self.btnImport = wx.Button( self, wx.ID_ANY, u"Import", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
footerSizer.Add( self.btnImport, 0, wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.BOTTOM|wx.RIGHT, 5 )
|
||||
|
||||
self.btnOK = wx.Button(self, wx.ID_OK, u"OK", wx.DefaultPosition, wx.DefaultSize, 0)
|
||||
footerSizer.Add(self.btnOK, 0, wx.TOP|wx.BOTTOM|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL, 5)
|
||||
|
||||
mainSizer.Add(footerSizer, 0, wx.EXPAND, 5)
|
||||
|
||||
self.SetSizer(mainSizer)
|
||||
|
||||
self.tbtnEdit.SetValue( False )
|
||||
self.tcEdit.Enable(False)
|
||||
self.btnImport.Enable(False)
|
||||
|
||||
self.Layout()
|
||||
|
||||
|
||||
self.Bind( wx.EVT_CLOSE, self.CloseDlg )
|
||||
self.btnOK.Bind( wx.EVT_BUTTON, self.CloseDlg )
|
||||
self.cFilePicker.Bind( wx.EVT_FILEPICKER_CHANGED, self.prepareFileFits )
|
||||
self.tbtnEdit.Bind( wx.EVT_TOGGLEBUTTON, self.SwitchEditCtrl )
|
||||
self.btnImport.Bind( wx.EVT_BUTTON, self.ImportFittings )
|
||||
self.Centre(wx.BOTH)
|
||||
|
||||
|
||||
def ImportFittings( self, event ):
|
||||
sFit = service.Fit.getInstance()
|
||||
if self._toggleEdit == -1:
|
||||
if self._fitsFromFile:
|
||||
try:
|
||||
IDs = sFit.saveImportedFits(self._fitsFromFile)
|
||||
self.stStatus.SetLabel("Status: %d fit(s) imported" % len(self._fitsFromFile))
|
||||
self._openAfterImport(len(self._fitsFromFile), IDs)
|
||||
except:
|
||||
self.stStatus.SetLabel("Status: Error importing from file!")
|
||||
self._fitsFromFile = None
|
||||
else:
|
||||
self.stStatus.SetLabel("Status: No fits were specified. Use Browse button.")
|
||||
else:
|
||||
buffer = self.tcEdit.GetValue()
|
||||
if len(buffer) != 0:
|
||||
try:
|
||||
self._fitsFromEdit = sFit.importFitFromBuffer(buffer)
|
||||
IDs = sFit.saveImportedFits(self._fitsFromEdit)
|
||||
self.stStatus.SetLabel("Status: %d fit(s) imported" % len(self._fitsFromEdit))
|
||||
self._openAfterImport(len(self._fitsFromEdit), IDs)
|
||||
except:
|
||||
self.stStatus.SetLabel("Status: Error importing from text editor!")
|
||||
else:
|
||||
self.stStatus.SetLabel("Status: Nothing specified.")
|
||||
event.Skip()
|
||||
|
||||
def _openAfterImport(self, importCount, fitIDs):
|
||||
if importCount == 1:
|
||||
if self.mainFrame.getActiveFit() != fitIDs[0]:
|
||||
wx.PostEvent(self.mainFrame, gui.shipBrowser.FitSelected(fitID=fitIDs[0]))
|
||||
|
||||
def prepareFileFits(self, event):
|
||||
sFit = service.Fit.getInstance()
|
||||
try:
|
||||
self._fitsFromFile = sFit.importFit(event.Path)
|
||||
self.stStatus.SetLabel("Status: Found %d fit(s)." % len(self._fitsFromFile))
|
||||
self.btnImport.Enable(True)
|
||||
except:
|
||||
self.stStatus.SetLabel("Status: Invalid fitting file!")
|
||||
|
||||
def CloseDlg( self, event ):
|
||||
event.Skip()
|
||||
|
||||
def SwitchEditCtrl( self, event ):
|
||||
self._toggleEdit *= -1
|
||||
if self._toggleEdit == -1:
|
||||
self.tcEdit.Enable(False)
|
||||
self.cFilePicker.Enable( True )
|
||||
self.stStatus.SetLabel("Status: File mode.")
|
||||
self.btnImport.Enable(False)
|
||||
else:
|
||||
self.tcEdit.Enable(True)
|
||||
self.cFilePicker.Enable( False )
|
||||
self.stStatus.SetLabel("Status: Text edit mode.")
|
||||
self.btnImport.Enable(True)
|
||||
|
||||
event.Skip()
|
||||
|
||||
class ExportDialog ( wx.Dialog ):
|
||||
|
||||
def __init__( self, parent ):
|
||||
wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u"Export fit as ...", pos = wx.DefaultPosition, size = wx.Size( -1,-1 ), style = wx.DEFAULT_DIALOG_STYLE )
|
||||
|
||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||
self.srvFit = service.fit.Fit.getInstance()
|
||||
|
||||
self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize )
|
||||
|
||||
mainSizer = wx.BoxSizer( wx.VERTICAL )
|
||||
|
||||
fileSizer = wx.BoxSizer( wx.HORIZONTAL )
|
||||
|
||||
self.cFileSavePicker = wx.FilePickerCtrl( self, wx.ID_ANY, wx.EmptyString, u"Select a file", u"XML files (*.xml)|*.xml|TXT files (*.txt)|*.txt", wx.DefaultPosition, wx.DefaultSize, wx.FLP_CHANGE_DIR|wx.FLP_OVERWRITE_PROMPT|wx.FLP_SAVE|wx.FLP_USE_TEXTCTRL )
|
||||
fileSizer.Add( self.cFileSavePicker, 1, wx.ALL, 5 )
|
||||
|
||||
mainSizer.Add( fileSizer, 0, wx.EXPAND, 5 )
|
||||
|
||||
self.m_staticline2 = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )
|
||||
self.m_staticline2.SetMinSize( wx.Size( 400,-1 ) )
|
||||
|
||||
mainSizer.Add( self.m_staticline2, 0, wx.EXPAND, 5 )
|
||||
|
||||
choiceSizer = wx.BoxSizer( wx.VERTICAL )
|
||||
|
||||
chCtrlChoices = [ u"XML file", u"EFT file", u"XML && EFT file" ]
|
||||
self.chCtrl = wx.RadioBox( self, wx.ID_ANY, u"Export type", wx.DefaultPosition, wx.DefaultSize, chCtrlChoices, 3, wx.RA_SPECIFY_COLS )
|
||||
self.chCtrl.SetSelection( 0 )
|
||||
choiceSizer.Add( self.chCtrl, 0, wx.EXPAND|wx.ALL, 5 )
|
||||
|
||||
mainSizer.Add( choiceSizer, 1, wx.EXPAND, 5 )
|
||||
|
||||
footerSizer = wx.BoxSizer( wx.HORIZONTAL )
|
||||
|
||||
self.stStatus = wx.StaticText( self, wx.ID_ANY, u"", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
self.stStatus.Wrap( -1 )
|
||||
footerSizer.Add( self.stStatus, 1, wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.BOTTOM|wx.LEFT, 5 )
|
||||
|
||||
self.btnExport = wx.Button( self, wx.ID_ANY, u"Export", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
footerSizer.Add( self.btnExport, 0, wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.BOTTOM, 5 )
|
||||
|
||||
self.btnOK = wx.Button( self, wx.ID_OK, u"OK", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||
footerSizer.Add( self.btnOK, 0, wx.TOP|wx.BOTTOM|wx.ALIGN_CENTER_VERTICAL, 5 )
|
||||
|
||||
mainSizer.Add( footerSizer, 0, wx.EXPAND, 5 )
|
||||
|
||||
self.SetSizer( mainSizer )
|
||||
self.Layout()
|
||||
|
||||
self.fitID = self.mainFrame.getActiveFit()
|
||||
self.fit = self.srvFit.getFit(self.fitID)
|
||||
if self.fit is None:
|
||||
self.stStatus.SetLabel("Error: please select a fit before trying to export!")
|
||||
self.cFileSavePicker.Enable( False )
|
||||
self.chCtrl.Enable( False )
|
||||
self.btnExport.Enable( False )
|
||||
else:
|
||||
self.stStatus.SetLabel("Selected fit: %s" % self.fit.name)
|
||||
self.filePath = os.path.join(config.staticPath,self.fit.name)
|
||||
self.cFileSavePicker.SetPath(self.filePath)
|
||||
mainSizer.Fit( self )
|
||||
|
||||
self.Centre( wx.BOTH )
|
||||
|
||||
# Connect Events
|
||||
self.cFileSavePicker.Bind( wx.EVT_FILEPICKER_CHANGED, self.OnFileChoose )
|
||||
self.btnOK.Bind( wx.EVT_BUTTON, self.Close )
|
||||
self.btnExport.Bind( wx.EVT_BUTTON, self.ExportFit )
|
||||
self.chCtrl.Bind( wx.EVT_RADIOBOX, self.OnExtSelect )
|
||||
|
||||
|
||||
# Virtual event handlers, overide them in your derived class
|
||||
def OnExtSelect( self, event ):
|
||||
# selection = self.chCtrl.GetSelection()
|
||||
# if selection == 0:
|
||||
# ext = "XML files (*.xml)|*.xml"
|
||||
# elif selection == 1:
|
||||
# ext = "TXT files (*.txt)|*.txt"
|
||||
# else:
|
||||
# ext = "XML files (*.xml)|*.xml|TXT files (*.txt)|*.txt"
|
||||
# self.cFileSavePicker.SetWildcard(ext)
|
||||
event.Skip()
|
||||
|
||||
def OnFileChoose( self, event ):
|
||||
self.filePath,ext = os.path.splitext(event.Path)
|
||||
self.cFileSavePicker.SetPath(self.filePath)
|
||||
if ext.lower() == ".xml":
|
||||
self.chCtrl.SetSelection(0)
|
||||
else:
|
||||
self.chCtrl.SetSelection(1)
|
||||
event.Skip()
|
||||
|
||||
def ExportFit( self, event ):
|
||||
extensions = ["xml", "txt"]
|
||||
sFit = service.Fit.getInstance()
|
||||
selection = self.chCtrl.GetSelection()
|
||||
if selection <2:
|
||||
filename = "%s.%s" %(self.filePath,extensions[selection])
|
||||
if selection == 0:
|
||||
output = sFit.exportXml(self.fitID)
|
||||
else:
|
||||
output = sFit.exportFit(self.fitID)
|
||||
|
||||
self.WriteFile(filename,output)
|
||||
else:
|
||||
xmlfname = "%s.%s" %(self.filePath,extensions[0])
|
||||
txtfname = "%s.%s" %(self.filePath,extensions[1])
|
||||
xmlbuff = sFit.exportXml(self.fitID)
|
||||
txtbuff = sFit.exportFit(self.fitID)
|
||||
self.WriteFile(xmlfname, xmlbuff)
|
||||
self.WriteFile(txtfname, txtbuff)
|
||||
self.stStatus.SetLabel("%s exported." % self.fit.name)
|
||||
self.chCtrl.Enable(False)
|
||||
self.cFileSavePicker.Enable(False)
|
||||
self.btnExport.Enable(False)
|
||||
event.Skip()
|
||||
|
||||
def Close( self, event ):
|
||||
|
||||
event.Skip()
|
||||
|
||||
def WriteFile(self,filename,buffer):
|
||||
ofile = file(filename,"w")
|
||||
ofile.write(buffer)
|
||||
ofile.close()
|
||||
@@ -28,7 +28,7 @@ import service
|
||||
class DmgPatternEditorDlg (wx.Dialog):
|
||||
|
||||
def __init__(self, parent):
|
||||
wx.Dialog.__init__ (self, parent, id = wx.ID_ANY, title = u"Damage Pattern Editor", size = wx.Size( 350,240 ))
|
||||
wx.Dialog.__init__ (self, parent, id = wx.ID_ANY, title = u"Damage Pattern Editor", size = wx.Size( 400,240 ))
|
||||
|
||||
self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
|
||||
|
||||
@@ -39,6 +39,11 @@ class DmgPatternEditorDlg (wx.Dialog):
|
||||
cDP = service.DamagePattern.getInstance()
|
||||
|
||||
self.choices = cDP.getDamagePatternList()
|
||||
# Remove "Uniform" and "Selected Ammo" Damage Patterns
|
||||
for dp in self.choices:
|
||||
if dp.name in ("Uniform", "Selected Ammo"):
|
||||
self.choices.remove(dp)
|
||||
# Sort the remaining list and continue on
|
||||
self.choices.sort(key=lambda p: p.name)
|
||||
self.ccDmgPattern = wx.Choice(self, choices=map(lambda p: p.name, self.choices))
|
||||
self.ccDmgPattern.Bind(wx.EVT_CHOICE, self.patternChanged)
|
||||
@@ -227,7 +232,7 @@ class DmgPatternEditorDlg (wx.Dialog):
|
||||
|
||||
def patternChanged(self, event=None):
|
||||
p = self.getActivePattern()
|
||||
if p.name == "Uniform":
|
||||
if p.name == "Uniform" or p.name == "Selected Ammo":
|
||||
self.restrict()
|
||||
else:
|
||||
self.unrestrict()
|
||||
|
||||
@@ -203,6 +203,8 @@ class HeaderPane (wx.Panel):
|
||||
def __init__(self, parent):
|
||||
wx.Panel.__init__ (self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(500, 32), style=wx.TAB_TRAVERSAL)
|
||||
|
||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||
|
||||
self.rewBmp = bitmapLoader.getBitmap("frewind_small","icons")
|
||||
self.forwBmp = bitmapLoader.getBitmap("fforward_small","icons")
|
||||
self.searchBmp = bitmapLoader.getBitmap("fsearch_small","icons")
|
||||
@@ -320,7 +322,7 @@ class HeaderPane (wx.Panel):
|
||||
if self.inPopup:
|
||||
return
|
||||
search = self.search.GetValue()
|
||||
if len(search) < 3 and len(search) >0:
|
||||
if len(search) < 3:
|
||||
if self.inSearch == True:
|
||||
self.inSearch = False
|
||||
if len(self.shipBrowser.browseHist) > 0:
|
||||
@@ -531,8 +533,9 @@ class HeaderPane (wx.Panel):
|
||||
shipID = self.Parent.GetStageData(stage)
|
||||
shipName = self.Parent.GetStage3ShipName()
|
||||
sFit = service.Fit.getInstance()
|
||||
sFit.newFit(shipID, "%s fit" %shipName)
|
||||
fitID = sFit.newFit(shipID, "%s fit" %shipName)
|
||||
wx.PostEvent(self.Parent,Stage3Selected(shipID=shipID, back = True))
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=fitID))
|
||||
event.Skip()
|
||||
|
||||
def OnForward(self,event):
|
||||
@@ -772,6 +775,8 @@ class ShipItem(wx.Window):
|
||||
size=(0, 38), style=0):
|
||||
wx.Window.__init__(self, parent, id, pos, size, style)
|
||||
|
||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||
|
||||
self._itemData = itemData
|
||||
|
||||
self.shipRace = itemData
|
||||
@@ -902,10 +907,11 @@ class ShipItem(wx.Window):
|
||||
|
||||
def createNewFit(self, event=None):
|
||||
sFit = service.Fit.getInstance()
|
||||
sFit.newFit(self.shipID, self.tcFitName.GetValue())
|
||||
fitID = sFit.newFit(self.shipID, self.tcFitName.GetValue())
|
||||
self.tcFitName.Show(False)
|
||||
self.editWasShown = 0
|
||||
wx.PostEvent(self.shipBrowser,Stage3Selected(shipID=self.shipID, back=False))
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=fitID))
|
||||
|
||||
def NHitTest(self, target, position, area):
|
||||
x, y = target
|
||||
@@ -1003,8 +1009,8 @@ class ShipItem(wx.Window):
|
||||
|
||||
mdc.DrawText(fformat %fittings if fittings >0 else fformat, textStart, ypos)
|
||||
|
||||
self.editPosX = rect.width - 20
|
||||
self.editPosY = (rect.height - 16) / 2
|
||||
self.editPosX = rect.width - self.newToggleBmp.GetWidth() -5
|
||||
self.editPosY = (rect.height - self.newToggleBmp.GetHeight()) / 2
|
||||
|
||||
mdc.DrawBitmap(self.newToggleBmp, self.editPosX, self.editPosY, 0)
|
||||
mdc.SetFont(wx.Font(7, wx.SWISS, wx.NORMAL, wx.NORMAL, False))
|
||||
@@ -1013,6 +1019,14 @@ class ShipItem(wx.Window):
|
||||
xtext, ytext = mdc.GetTextExtent(status)
|
||||
ytext = (rect.height - ytext)/2
|
||||
mdc.DrawText(status, self.editPosX - xtext -5,ytext)
|
||||
|
||||
if self.tcFitName.IsShown():
|
||||
fnEditSize = self.tcFitName.GetSize()
|
||||
wSize = self.GetSize()
|
||||
fnEditPosX = self.editPosX - fnEditSize.width -5
|
||||
fnEditPosY = (wSize.height - fnEditSize.height)/2
|
||||
self.tcFitName.SetPosition((fnEditPosX,fnEditPosY))
|
||||
|
||||
event.Skip()
|
||||
|
||||
class FitItem(wx.Window):
|
||||
@@ -1161,6 +1175,7 @@ class FitItem(wx.Window):
|
||||
sFit = service.Fit.getInstance()
|
||||
sFit.copyFit(self.fitID)
|
||||
wx.PostEvent(self.shipBrowser,Stage3Selected(shipID=self.shipID, back=True))
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=self.fitID))
|
||||
|
||||
def deleteFit(self, event=None):
|
||||
sFit = service.Fit.getInstance()
|
||||
@@ -1269,4 +1284,11 @@ class FitItem(wx.Window):
|
||||
mdc.DrawBitmap(self.copyBmp, self.copyPosX, self.copyPosY, 0)
|
||||
mdc.DrawBitmap(self.renameBmp, self.renamePosX, self.renamePosY, 0)
|
||||
mdc.DrawBitmap(self.deleteBmp, self.deletePosX, self.deletePosY, 0)
|
||||
|
||||
if self.tcFitName.IsShown():
|
||||
fnEditSize = self.tcFitName.GetSize()
|
||||
wSize = self.GetSize()
|
||||
fnEditPosX = self.copyPosX - fnEditSize.width -5
|
||||
fnEditPosY = (wSize.height - fnEditSize.height)/2
|
||||
self.tcFitName.SetPosition((fnEditPosX,fnEditPosY))
|
||||
event.Skip()
|
||||
|
||||
@@ -345,10 +345,10 @@ class Fit(object):
|
||||
|
||||
try:
|
||||
sDP = DamagePattern.getInstance()
|
||||
dp = sDP.getDamagePattern("Ammo")
|
||||
dp = sDP.getDamagePattern("Selected Ammo")
|
||||
except:
|
||||
dp = eos.types.DamagePattern()
|
||||
dp.name = "Ammo"
|
||||
dp.name = "Selected Ammo"
|
||||
|
||||
fit = eos.db.getFit(fitID)
|
||||
for attr in ("em", "thermal", "kinetic", "explosive"):
|
||||
|
||||
Reference in New Issue
Block a user