Files
pyfa/gui/builtinContextMenus/droneSplit.py

55 lines
1.6 KiB
Python
Executable File

from gui.contextMenu import ContextMenu
from gui.itemStats import ItemStatsDialog
import gui.mainFrame
import gui.fittingView
import service
import wx
class DroneSplit(ContextMenu):
def __init__(self):
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
def display(self, context, selection):
return context in ("drone") and selection[0].amount > 1
def getText(self, context, selection):
return "Split stack"
def activate(self, context, selection, i):
dlg = DroneSpinner(self.mainFrame, selection[0])
dlg.ShowModal()
dlg.Destroy()
DroneSplit.register()
class DroneSpinner(wx.Dialog):
def __init__(self, parent, drone):
wx.Dialog.__init__(self, parent, title="Select Amount", size=wx.Size(220, 60))
self.drone = drone
bSizer1 = wx.BoxSizer(wx.HORIZONTAL)
self.spinner = wx.SpinCtrl(self)
self.spinner.SetRange(1, drone.amount - 1)
self.spinner.SetValue(1)
bSizer1.Add(self.spinner, 0, wx.ALL, 5)
self.button = wx.Button(self, wx.ID_OK, u"Split")
bSizer1.Add(self.button, 0, wx.ALL, 5)
self.SetSizer(bSizer1)
self.Layout()
self.Centre(wx.BOTH)
self.button.Bind(wx.EVT_BUTTON, self.split)
def split(self, event):
sFit = service.Fit.getInstance()
mainFrame = gui.mainFrame.MainFrame.getInstance()
fitID = mainFrame.getActiveFit()
sFit.splitDroneStack(fitID, self.drone, self.spinner.GetValue())
wx.PostEvent(mainFrame, gui.fittingView.FitChanged(fitID=fitID))
event.Skip()