Add possibility to export formatted DNA

This commit is contained in:
DarkPhoenix
2019-05-04 02:38:19 +03:00
parent 4b6c881dca
commit 7f2121e98d
4 changed files with 27 additions and 10 deletions

View File

@@ -23,13 +23,14 @@ from collections import OrderedDict
# noinspection PyPackageRequirements
import wx
from eos.db import getFit
from gui.utils.clipboard import toClipboard
from service.const import PortMultiBuyOptions
from service.port import EfsPort, Port
from service.port.dna import DNA_OPTIONS
from service.port.eft import EFT_OPTIONS
from service.port.multibuy import MULTIBUY_OPTIONS
from service.settings import SettingsProvider
from service.port import EfsPort, Port
from service.const import PortMultiBuyOptions
from eos.db import getFit
from gui.utils.clipboard import toClipboard
class CopySelectDialog(wx.Dialog):
@@ -60,7 +61,7 @@ class CopySelectDialog(wx.Dialog):
("EFT", (CopySelectDialog.copyFormatEft, EFT_OPTIONS)),
("MultiBuy", (CopySelectDialog.copyFormatMultiBuy, MULTIBUY_OPTIONS)),
("ESI", (CopySelectDialog.copyFormatEsi, None)),
("DNA", (CopySelectDialog.copyFormatDna, None)),
("DNA", (CopySelectDialog.copyFormatDna, DNA_OPTIONS)),
("EFS", (CopySelectDialog.copyFormatEfs, None)),
# ("XML", (CopySelectDialog.copyFormatXml, None)),
))
@@ -166,7 +167,7 @@ class CopySelectDialog(wx.Dialog):
def exportDna(self, options, callback):
fit = getFit(self.mainFrame.getActiveFit())
Port.exportDna(fit, callback)
Port.exportDna(fit, options, callback)
def exportEsi(self, options, callback):
fit = getFit(self.mainFrame.getActiveFit())

View File

@@ -81,6 +81,14 @@ class PortEftRigSize(IntEnum):
CAPITAL = 4
@unique
class PortDnaOptions(IntEnum):
"""
Contains different types of items for DNA export
"""
FORMATTING = 1
@unique
class GuiAttrGroup(IntEnum):
"""
@@ -101,4 +109,4 @@ class GuiAttrGroup(IntEnum):
JUMP_SYSTEMS = auto()
PROPULSIONS = auto()
FIGHTERS = auto()
SHIP_GROUP = auto()
SHIP_GROUP = auto()

View File

@@ -32,12 +32,17 @@ from eos.saveddata.fit import Fit
from eos.saveddata.module import Module
from eos.saveddata.ship import Ship
from gui.fitCommands.helpers import activeStateLimit
from service.const import PortDnaOptions
from service.fit import Fit as svcFit
from service.market import Market
pyfalog = Logger(__name__)
DNA_OPTIONS = (
(PortDnaOptions.FORMATTING, 'Formatting Tags', 'Include formatting tags to paste fit directly into corp bulletins, MOTD, etc.', True),
)
def importDna(string, fitName=None):
sMkt = Market.getInstance()
@@ -130,7 +135,7 @@ def importDna(string, fitName=None):
return f
def exportDna(fit, callback):
def exportDna(fit, options, callback):
dna = str(fit.shipID)
subsystems = [] # EVE cares which order you put these in
mods = OrderedDict()
@@ -178,6 +183,9 @@ def exportDna(fit, callback):
text = dna + "::"
if options[PortDnaOptions.FORMATTING]:
text = '<url=fitting:{}>{}</url>'.format(text, fit.name)
if callback:
callback(text)
else:

View File

@@ -272,8 +272,8 @@ class Port(object):
return importDna(string, fitName=fitName)
@staticmethod
def exportDna(fit, callback=None):
return exportDna(fit, callback=callback)
def exportDna(fit, options, callback=None):
return exportDna(fit, options, callback=callback)
# ESI-related methods
@staticmethod