Merge branch 'master' of evefit.org:pyfa
This commit is contained in:
@@ -19,47 +19,117 @@
|
|||||||
|
|
||||||
import wx
|
import wx
|
||||||
import service
|
import service
|
||||||
|
import config
|
||||||
|
|
||||||
class ImportDialog(wx.Dialog):
|
class ImportDialog(wx.Dialog):
|
||||||
def __init__(self, parent):
|
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)
|
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.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
|
||||||
|
self.SetMinSize((500,300))
|
||||||
|
|
||||||
|
self._fitsFromFile = None
|
||||||
|
self._fitsFromEdit = None
|
||||||
|
|
||||||
mainSizer = wx.BoxSizer(wx.VERTICAL)
|
mainSizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
|
|
||||||
headerSizer = wx.BoxSizer(wx.HORIZONTAL)
|
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)
|
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)
|
headerSizer.Add(self.cFilePicker, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
|
||||||
|
|
||||||
mainSizer.Add(headerSizer, 0, wx.EXPAND, 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)
|
contentSizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
|
|
||||||
self.tcPreview = wx.TextCtrl(self, wx.ID_ANY, u"", style=wx.TE_READONLY)
|
self.tcEdit = wx.TextCtrl(self, wx.ID_ANY, u"", style=wx.TE_MULTILINE)
|
||||||
contentSizer.Add(self.tcPreview, 1, wx.EXPAND, 5)
|
self.tcEdit.SetMinSize( wx.Size( -1,250 ) )
|
||||||
|
contentSizer.Add(self.tcEdit, 1, wx.EXPAND, 5)
|
||||||
|
|
||||||
mainSizer.Add(contentSizer, 1, wx.EXPAND, 5)
|
mainSizer.Add(contentSizer, 1, wx.EXPAND, 5)
|
||||||
|
|
||||||
footerSizer = wx.BoxSizer(wx.HORIZONTAL)
|
footerSizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||||
|
|
||||||
self.ckbPreview = wx.CheckBox(self, wx.ID_ANY, u"Preview")
|
|
||||||
footerSizer.Add(self.ckbPreview, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
|
|
||||||
|
|
||||||
self.btnOK = wx.Button(self, wx.ID_ANY, u"OK", wx.DefaultPosition, wx.DefaultSize, 0)
|
self.stStatus = wx.StaticText( self, wx.ID_ANY, u"Status: File mode.", wx.DefaultPosition, wx.DefaultSize, 0 )
|
||||||
footerSizer.Add(self.btnOK, 0, wx.ALL, 5)
|
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)
|
mainSizer.Add(footerSizer, 0, wx.EXPAND, 5)
|
||||||
|
|
||||||
self.SetSizer(mainSizer)
|
self.SetSizer(mainSizer)
|
||||||
self.Layout()
|
|
||||||
|
|
||||||
|
self.tbtnEdit.SetValue( True )
|
||||||
|
self.tcEdit.Show(False)
|
||||||
|
|
||||||
|
self.Layout()
|
||||||
|
self.Fit()
|
||||||
|
|
||||||
|
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)
|
self.Centre(wx.BOTH)
|
||||||
|
|
||||||
def importFits(self, event):
|
|
||||||
|
def ImportFittings( self, event ):
|
||||||
sFit = service.Fit.getInstance()
|
sFit = service.Fit.getInstance()
|
||||||
self.tcPreview.SetLabel(sFit.importFit(event.Path))
|
if self._toggleEdit == -1:
|
||||||
|
if self._fitsFromFile:
|
||||||
|
sFit.saveImportedFits(self._fitsFromFile)
|
||||||
|
self.stStatus.SetLabel("Status: %d fit(s) imported" % len(self._fitsFromFile))
|
||||||
|
self._fitsFromFile = None
|
||||||
|
else:
|
||||||
|
self.stStatus.SetLabel("Status: No fits were specified. Use Browse button.")
|
||||||
|
else:
|
||||||
|
buffer = self.tcEdit.GetValue()
|
||||||
|
if len(buffer) != 0:
|
||||||
|
self._fitsFromEdit = sFit.importFitFromBuffer(buffer)
|
||||||
|
sFit.saveImportedFits(self._fitsFromEdit)
|
||||||
|
self.stStatus.SetLabel("Status: %d fit(s) imported" % len(self._fitsFromEdit))
|
||||||
|
else:
|
||||||
|
self.stStatus.SetLabel("Status: Nothing specified.")
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
|
|
||||||
|
def prepareFileFits(self, event):
|
||||||
|
sFit = service.Fit.getInstance()
|
||||||
|
self._fitsFromFile = sFit.importFit(event.Path)
|
||||||
|
self.stStatus.SetLabel("Found %d fit(s)." % len(self._fitsFromFile))
|
||||||
|
|
||||||
|
def ImportFromFile( self, event ):
|
||||||
|
print event.Path
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
|
def CloseDlg( self, event ):
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
|
def SwitchEditCtrl( self, event ):
|
||||||
|
self._toggleEdit *= -1
|
||||||
|
if self._toggleEdit == -1:
|
||||||
|
self.tcEdit.Show(False)
|
||||||
|
self.cFilePicker.Enable( True )
|
||||||
|
self.stStatus.SetLabel("Status: File mode.")
|
||||||
|
else:
|
||||||
|
self.tcEdit.Show(True)
|
||||||
|
self.cFilePicker.Enable( False )
|
||||||
|
self.stStatus.SetLabel("Status: Text edit mode.")
|
||||||
|
self.Layout()
|
||||||
|
self.Fit()
|
||||||
|
event.Skip()
|
||||||
|
|
||||||
class ExportDialog(wx.Dialog):
|
class ExportDialog(wx.Dialog):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
|
|||||||
@@ -268,9 +268,15 @@ class Fit(object):
|
|||||||
def importFit(self, path):
|
def importFit(self, path):
|
||||||
f = file(path)
|
f = file(path)
|
||||||
type, fits = eos.types.Fit.importAuto(f.read())
|
type, fits = eos.types.Fit.importAuto(f.read())
|
||||||
output = ""
|
|
||||||
|
return fits
|
||||||
|
|
||||||
|
def importFitFromBuffer(self, buffer):
|
||||||
|
type,fits = eos.types.Fit.importAuto(buffer)
|
||||||
|
|
||||||
|
return fits
|
||||||
|
|
||||||
|
def saveImportedFits(self, fits):
|
||||||
for fit in fits:
|
for fit in fits:
|
||||||
eos.db.save(fit)
|
eos.db.save(fit)
|
||||||
output += "Importing %s (%s)" % (fit.name, fit.ship.item.name)
|
#should return -1 in case of errors
|
||||||
|
|
||||||
return output
|
|
||||||
Reference in New Issue
Block a user