diff --git a/gui/builtinContextMenus/__init__.py b/gui/builtinContextMenus/__init__.py index a10ffd859..50a336303 100644 --- a/gui/builtinContextMenus/__init__.py +++ b/gui/builtinContextMenus/__init__.py @@ -26,6 +26,7 @@ from gui.builtinContextMenus import droneSplitStack from gui.builtinContextMenus import itemVariationChange from gui.builtinContextMenus import moduleMutations from gui.builtinContextMenus import moduleFill +from gui.builtinContextMenus import moduleMutatedExport from gui.builtinContextMenus import skillAffectors # Market stuff from gui.builtinContextMenus import itemFill diff --git a/gui/builtinContextMenus/moduleMutatedExport.py b/gui/builtinContextMenus/moduleMutatedExport.py new file mode 100644 index 000000000..e0fda5a67 --- /dev/null +++ b/gui/builtinContextMenus/moduleMutatedExport.py @@ -0,0 +1,31 @@ +import gui.mainFrame +from gui.contextMenu import ContextMenuSingle +from gui.utils.clipboard import toClipboard +from service.port.muta import renderMutant + + +class ExportMutatedModule(ContextMenuSingle): + + def __init__(self): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + + def display(self, callingWindow, srcContext, mainItem): + if srcContext != 'fittingModule': + return False + if self.mainFrame.getActiveFit() is None: + return False + if mainItem is None: + return False + if not mainItem.isMutated: + return False + return True + + def getText(self, callingWindow, itmContext, mainItem): + return 'Copy Module to Clipboard' + + def activate(self, callingWindow, fullContext, mainItem, i): + export = renderMutant(mainItem, prefix=' ') + toClipboard(export) + + +ExportMutatedModule.register() diff --git a/service/port/muta.py b/service/port/muta.py index 7e742ecdc..3686475fb 100644 --- a/service/port/muta.py +++ b/service/port/muta.py @@ -19,7 +19,7 @@ from eos.db.gamedata.queries import getAttributeInfo, getDynamicItem -from gui.utils.numberFormatter import roundToPrec +from eos.utils.float import floatUnerr from service.port.shared import fetchItem @@ -31,9 +31,8 @@ def renderMutant(mutant, firstPrefix='', prefix=''): mutatedAttrs[attrName] = mutator.value exportLines.append('{}{}'.format(firstPrefix, mutant.baseItem.name)) exportLines.append('{}{}'.format(prefix, mutant.mutaplasmid.item.name)) - # Round to 7th significant number to avoid exporting float errors customAttrsLine = ', '.join( - '{} {}'.format(a, roundToPrec(mutatedAttrs[a], 7)) + '{} {}'.format(a, floatUnerr(mutatedAttrs[a])) for a in sorted(mutatedAttrs)) exportLines.append('{}{}'.format(prefix, customAttrsLine)) return '\n'.join(exportLines)