updated drag and drop behavior to not trigger a suspected wx bug on Mac

This commit is contained in:
Michael Ryan
2017-05-30 20:18:32 -05:00
parent cff3d0ee95
commit d09f21fe15
9 changed files with 47 additions and 14 deletions

View File

@@ -37,7 +37,8 @@ class BoosterViewDrop(wx.PyDropTarget):
def OnData(self, x, y, t):
if self.GetData():
data = self.dropData.GetText().split(':')
dragged_data = DragDropHelper.data
data = dragged_data.split(':')
self.dropFn(x, y, data)
return t

View File

@@ -38,6 +38,8 @@ from gui.chromeTabs import EVT_NOTEBOOK_PAGE_CHANGED
from service.fit import Fit
from service.market import Market
from gui.utils.staticHelpers import DragDropHelper
import gui.globalEvents as GE
pyfalog = Logger(__name__)
@@ -110,8 +112,9 @@ class FittingViewDrop(wx.PyDropTarget):
def OnData(self, x, y, t):
if self.GetData():
pyfalog.debug("fittingView: recieved drag: " + self.dropData.GetText())
data = self.dropData.GetText().split(':')
dragged_data = DragDropHelper.data
#pyfalog.debug("fittingView: recieved drag: " + self.dropData.GetText())
data = dragged_data.split(':')
self.dropFn(x, y, data)
return t
@@ -235,10 +238,12 @@ class FittingView(d.Display):
if row != -1 and row not in self.blanks and isinstance(self.mods[row], Module) and not self.mods[row].isEmpty:
data = wx.PyTextDataObject()
data.SetText("fitting:" + str(self.mods[row].modPosition))
dataStr = "fitting:" + str(self.mods[row].modPosition)
data.SetText(dataStr)
dropSource = wx.DropSource(self)
dropSource.SetData(data)
DragDropHelper.data = dataStr
dropSource.DoDragDrop()
def getSelectedMods(self):

View File

@@ -23,6 +23,7 @@ import gui.display as d
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu
import globalEvents as GE
from gui.utils.staticHelpers import DragDropHelper
from service.fit import Fit
from service.market import Market
@@ -37,7 +38,8 @@ class CargoViewDrop(wx.PyDropTarget):
def OnData(self, x, y, t):
if self.GetData():
data = self.dropData.GetText().split(':')
dragged_data = DragDropHelper.data
data = dragged_data.split(':')
self.dropFn(x, y, data)
return t
@@ -87,10 +89,12 @@ class CargoView(d.Display):
if row != -1:
data = wx.PyTextDataObject()
data.SetText("cargo:" + str(row))
dataStr = "cargo:" + str(row)
data.SetText(dataStr)
dropSource = wx.DropSource(self)
dropSource.SetData(data)
DragDropHelper.data = dataStr
dropSource.DoDragDrop()
def kbEvent(self, event):

View File

@@ -26,6 +26,7 @@ import gui.droneView
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu
from gui.builtinContextMenus.commandFits import CommandFits
from gui.utils.staticHelpers import DragDropHelper
from service.fit import Fit
from eos.saveddata.drone import Drone as es_Drone
@@ -51,7 +52,8 @@ class CommandViewDrop(wx.PyDropTarget):
def OnData(self, x, y, t):
if self.GetData():
data = self.dropData.GetText().split(':')
dragged_data = DragDropHelper.data
data = dragged_data.split(':')
self.dropFn(x, y, data)
return t
@@ -116,10 +118,12 @@ class CommandView(d.Display):
row = event.GetIndex()
if row != -1 and isinstance(self.get(row), es_Drone):
data = wx.PyTextDataObject()
data.SetText("command:" + str(self.GetItemData(row)))
dataStr = "command:" + str(self.GetItemData(row))
data.SetText(dataStr)
dropSource = wx.DropSource(self)
dropSource.SetData(data)
DragDropHelper.data = dataStr
dropSource.DoDragDrop()
@staticmethod

View File

@@ -25,6 +25,7 @@ from gui.marketBrowser import ITEM_SELECTED, ItemSelected
from gui.display import Display
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu
from gui.utils.staticHelpers import DragDropHelper
from service.fit import Fit
from service.market import Market
@@ -39,7 +40,8 @@ class DroneViewDrop(wx.PyDropTarget):
def OnData(self, x, y, t):
if self.GetData():
data = self.dropData.GetText().split(':')
dragged_data = DragDropHelper.data
data = dragged_data.split(':')
self.dropFn(x, y, data)
return t
@@ -122,10 +124,12 @@ class DroneView(Display):
row = event.GetIndex()
if row != -1:
data = wx.PyTextDataObject()
data.SetText("drone:" + str(row))
dataStr = "drone:" + str(row)
data.SetText(dataStr)
dropSource = wx.DropSource(self)
dropSource.SetData(data)
DragDropHelper.data = dataStr
dropSource.DoDragDrop()
def handleDragDrop(self, x, y, data):

View File

@@ -27,6 +27,7 @@ import gui.display as d
from gui.builtinViewColumns.state import State
from eos.saveddata.module import Slot
from gui.contextMenu import ContextMenu
from gui.utils.staticHelpers import DragDropHelper
from service.fit import Fit
from service.market import Market
@@ -41,7 +42,8 @@ class FighterViewDrop(wx.PyDropTarget):
def OnData(self, x, y, t):
if self.GetData():
data = self.dropData.GetText().split(':')
dragged_data = DragDropHelper.data
data = dragged_data.split(':')
self.dropFn(x, y, data)
return t
@@ -184,10 +186,12 @@ class FighterDisplay(d.Display):
row = event.GetIndex()
if row != -1:
data = wx.PyTextDataObject()
data.SetText("fighter:" + str(row))
dataStr = "fighter:" + str(row)
data.SetText(dataStr)
dropSource = wx.DropSource(self)
dropSource.SetData(data)
DragDropHelper.data = dataStr
dropSource.DoDragDrop()
def handleDragDrop(self, x, y, data):

View File

@@ -28,6 +28,7 @@ from gui.cachingImageList import CachingImageList
from gui.contextMenu import ContextMenu
from gui.bitmapLoader import BitmapLoader
from logbook import Logger
from utils.staticHelpers import DragDropHelper
pyfalog = Logger(__name__)
@@ -285,6 +286,7 @@ class ItemView(Display):
data.SetText(dataStr)
dropSource = wx.DropSource(self)
dropSource.SetData(data)
DragDropHelper.data = dataStr
dropSource.DoDragDrop()
def itemActivated(self, event=None):

View File

@@ -24,6 +24,7 @@ import gui.globalEvents as GE
import gui.droneView
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu
from gui.utils.staticHelpers import DragDropHelper
from service.fit import Fit
from service.market import Market
from eos.saveddata.drone import Drone as es_Drone
@@ -52,7 +53,8 @@ class ProjectedViewDrop(wx.PyDropTarget):
def OnData(self, x, y, t):
if self.GetData():
data = self.dropData.GetText().split(':')
dragged_data = DragDropHelper.data
data = dragged_data.split(':')
self.dropFn(x, y, data)
return t
@@ -127,10 +129,12 @@ class ProjectedView(d.Display):
row = event.GetIndex()
if row != -1 and isinstance(self.get(row), es_Drone):
data = wx.PyTextDataObject()
data.SetText("projected:" + str(self.GetItemData(row)))
dataStr = "projected:" + str(self.GetItemData(row))
data.SetText(dataStr)
dropSource = wx.DropSource(self)
dropSource.SetData(data)
DragDropHelper.data = dataStr
dropSource.DoDragDrop()
def mergeDrones(self, x, y, itemID):

View File

@@ -0,0 +1,5 @@
class DragDropHelper:
data = None
def __init__(self):
pass