55 lines
1.6 KiB
Python
Executable File
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()
|