Merge branch 'master' into development

This commit is contained in:
blitzmann
2017-06-01 00:32:06 -04:00
15 changed files with 107 additions and 37 deletions

View File

@@ -24,6 +24,7 @@ import gui.globalEvents as GE
import gui.marketBrowser as marketBrowser
from gui.builtinViewColumns.state import State
from gui.contextMenu import ContextMenu
from gui.utils.staticHelpers import DragDropHelper
from service.fit import Fit
@@ -37,7 +38,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

@@ -20,6 +20,7 @@
# noinspection PyPackageRequirements
import wx
from logbook import Logger
from eos.saveddata.cargo import Cargo
from eos.saveddata.implant import Implant
from eos.saveddata.drone import Drone
@@ -30,6 +31,8 @@ from service.fit import Fit as FitSvc
from gui.viewColumn import ViewColumn
import gui.mainFrame
pyfalog = Logger(__name__)
class BaseName(ViewColumn):
name = "Base Name"
@@ -56,8 +59,13 @@ class BaseName(ViewColumn):
# we need a little more information for the projected view
fitID = self.mainFrame.getActiveFit()
info = stuff.getProjectionInfo(fitID)
if info:
return "%dx %s (%s)" % (stuff.getProjectionInfo(fitID).amount, stuff.name, stuff.ship.item.name)
pyfalog.warning("Projected View trying to display things that aren't there. stuff: {}, info: {}", repr(stuff),
info)
return "<unknown>"
else:
return "%s (%s)" % (stuff.name, stuff.ship.item.name)
elif isinstance(stuff, Rack):

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):
@@ -273,7 +278,9 @@ class FittingView(d.Display):
We also refresh the fit of the new current page in case
delete fit caused change in stats (projected)
"""
pyfalog.debug("FittingView::fitRemoved")
if event.fitID == self.getActiveFit():
pyfalog.debug(" Deleted fit is currently active")
self.parent.DeletePage(self.parent.GetPageIndex(self))
try:
@@ -282,7 +289,7 @@ class FittingView(d.Display):
sFit.refreshFit(self.getActiveFit())
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=self.activeFitID))
except wx._core.PyDeadObjectError:
pyfalog.error("Caught dead object")
pyfalog.warning("Caught dead object")
pass
event.Skip()

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

@@ -19,17 +19,21 @@
# noinspection PyPackageRequirements
import wx
from logbook import Logger
import gui.display as d
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
from eos.saveddata.fighter import Fighter as es_Fighter
from eos.saveddata.module import Module as es_Module
pyfalog = Logger(__name__)
class DummyItem(object):
def __init__(self, txt):
@@ -52,7 +56,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 +132,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):
@@ -170,6 +177,7 @@ class ProjectedView(d.Display):
def fitChanged(self, event):
sFit = Fit.getInstance()
fit = sFit.getFit(event.fitID)
pyfalog.debug("ProjectedView::fitChanged: {}", repr(fit))
self.Parent.Parent.DisablePage(self, not fit or fit.isStructure)
@@ -182,6 +190,7 @@ class ProjectedView(d.Display):
stuff = []
if fit is not None:
pyfalog.debug(" Collecting list of stuff to display in ProjectedView")
self.modules = fit.projectedModules[:]
self.drones = fit.projectedDrones[:]
self.fighters = fit.projectedFighters[:]

View File

@@ -1811,6 +1811,11 @@ class FitItem(SFItem.SFBrowserItem):
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
# need to delete from import cache before actually deleting fit
if self.shipBrowser.GetActiveStage() == 5:
if fit in self.shipBrowser.lastdata: # remove fit from import cache
self.shipBrowser.lastdata.remove(fit)
sFit.deleteFit(self.fitID)
# Notify other areas that a fit has been deleted
@@ -1818,8 +1823,6 @@ class FitItem(SFItem.SFBrowserItem):
# todo: would a simple RefreshList() work here instead of posting that a stage has been selected?
if self.shipBrowser.GetActiveStage() == 5:
if fit in self.shipBrowser.lastdata: # remove fit from import cache
self.shipBrowser.lastdata.remove(fit)
wx.PostEvent(self.shipBrowser, ImportSelected(fits=self.shipBrowser.lastdata))
elif self.shipBrowser.GetActiveStage() == 4:
wx.PostEvent(self.shipBrowser, SearchSelected(text=self.shipBrowser.navpanel.lastSearch, back=True))

View File

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