Implement mutated item copy context menu

This commit is contained in:
DarkPhoenix
2019-08-07 15:44:12 +03:00
parent 788bbb5d25
commit 035c69c60a
3 changed files with 34 additions and 3 deletions

View File

@@ -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

View File

@@ -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()

View File

@@ -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)