Merge branch 'master' of evefit.org:pyfa
This commit is contained in:
@@ -2,6 +2,7 @@ from gui.contextMenu import ContextMenu
|
||||
from gui.itemStats import ItemStatsDialog
|
||||
import gui.mainFrame
|
||||
import service
|
||||
import wx
|
||||
|
||||
class ItemStats(ContextMenu):
|
||||
def __init__(self):
|
||||
@@ -31,6 +32,28 @@ class ItemStats(ContextMenu):
|
||||
if context == "module" and stuff.isEmpty:
|
||||
return
|
||||
|
||||
dlg=ItemStatsDialog(stuff, context.capitalize() if context not in self.REPLACES else self.REPLACES[context])
|
||||
mstate = wx.GetMouseState()
|
||||
reuse = False
|
||||
|
||||
if mstate.ControlDown() or mstate.CmdDown():
|
||||
reuse = True
|
||||
|
||||
if self.mainFrame.GetActiveStatsWindow() == None and reuse:
|
||||
dlg=ItemStatsDialog(stuff, context.capitalize() if context not in self.REPLACES else self.REPLACES[context])
|
||||
|
||||
elif reuse:
|
||||
lastWnd = self.mainFrame.GetActiveStatsWindow()
|
||||
pos = lastWnd.GetPosition()
|
||||
maximized = lastWnd.IsMaximized()
|
||||
if not maximized:
|
||||
size = lastWnd.GetSize()
|
||||
else:
|
||||
size = wx.DefaultSize
|
||||
pos = wx.DefaultPosition
|
||||
dlg=ItemStatsDialog(stuff, context.capitalize() if context not in self.REPLACES else self.REPLACES[context], pos, size, maximized)
|
||||
lastWnd.closeEvent(None)
|
||||
|
||||
else:
|
||||
dlg=ItemStatsDialog(stuff, context.capitalize() if context not in self.REPLACES else self.REPLACES[context])
|
||||
|
||||
ItemStats.register()
|
||||
|
||||
@@ -214,7 +214,7 @@ class ResourcesViewFull(StatsView):
|
||||
gauge = getattr(self, "gauge%s%s" % (panel, capitalizedType))
|
||||
resUsed = getattr(fit,"%sUsed" % resourceType)
|
||||
|
||||
gauge.SetValueRange(resUsed, resMax[i]())
|
||||
gauge.SetValueRange(resUsed or 0, resMax[i]() or 0)
|
||||
|
||||
i+=1
|
||||
else:
|
||||
|
||||
@@ -122,9 +122,9 @@ class TargetingMiscViewFull(StatsView):
|
||||
if labelName is "labelScanRes":
|
||||
lockTime = "%s\n" % "Lock Times".center(28)
|
||||
for size, radius in RADII:
|
||||
left = "%s [%d]" % (size, radius)
|
||||
right = "%.1fs" % fit.calculateLockTime(radius)
|
||||
lockTime += "%-19s : %+5s\n" % (left, right)
|
||||
left = "%s [%d] " % (size, radius)
|
||||
right = "% .1fs" % fit.calculateLockTime(radius)
|
||||
lockTime += "%s\t%s\n" % (right,left)
|
||||
# print lockTime # THIS IS ALIGNED!
|
||||
label.SetToolTip(wx.ToolTip(lockTime))
|
||||
elif labelName is "labelSensorStr":
|
||||
|
||||
@@ -272,6 +272,7 @@ class PFTabRenderer:
|
||||
self.tabBackBitmap = None
|
||||
self.cbSize = 5
|
||||
self.padding = 4
|
||||
self.font = wx.FontFromPixelSize((0, self.fontSize), wx.SWISS, wx.NORMAL, wx.NORMAL, False)
|
||||
|
||||
self.tabImg = img
|
||||
self.position = (0, 0) # Not used internaly for rendering - helper for tab container
|
||||
@@ -355,8 +356,6 @@ class PFTabRenderer:
|
||||
self.tabRegion = None
|
||||
self.closeBtnRegion = None
|
||||
|
||||
self.font = wx.FontFromPixelSize((0, self.fontSize), wx.SWISS, wx.NORMAL, wx.NORMAL, False)
|
||||
|
||||
self.InitColors()
|
||||
self.InitBitmaps()
|
||||
|
||||
|
||||
@@ -18,10 +18,11 @@
|
||||
#===============================================================================
|
||||
|
||||
import wx
|
||||
import re
|
||||
import gui.mainFrame
|
||||
import bitmapLoader
|
||||
import sys
|
||||
import wx.lib.mixins.listctrl as listmix
|
||||
import wx.lib.mixins.listctrl as listmix
|
||||
import wx.html
|
||||
from eos.types import Ship, Module, Skill, Booster, Implant, Drone
|
||||
from util import formatAmount
|
||||
@@ -29,10 +30,10 @@ import service
|
||||
|
||||
class ItemStatsDialog(wx.Dialog):
|
||||
counter = 0
|
||||
def __init__(self, victim, context = None):
|
||||
def __init__(self, victim, context = None, pos = wx.DefaultPosition, size = wx.DefaultSize, maximized = False):
|
||||
wx.Dialog.__init__(self,
|
||||
gui.mainFrame.MainFrame.getInstance(),
|
||||
wx.ID_ANY, title="Item stats",
|
||||
wx.ID_ANY, title="Item stats", pos = pos, size = size,
|
||||
style = wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX |
|
||||
wx.MAXIMIZE_BOX | wx.RESIZE_BORDER| wx.SYSTEM_MENU)
|
||||
|
||||
@@ -65,11 +66,11 @@ class ItemStatsDialog(wx.Dialog):
|
||||
self.mainSizer.Add(self.container, 1, wx.EXPAND)
|
||||
self.SetSizer(self.mainSizer)
|
||||
|
||||
parent = gui.mainFrame.MainFrame.getInstance()
|
||||
self.parentWnd = gui.mainFrame.MainFrame.getInstance()
|
||||
|
||||
dlgsize = self.GetSize()
|
||||
psize = parent.GetSize()
|
||||
ppos = parent.GetPosition()
|
||||
psize = self.parentWnd.GetSize()
|
||||
ppos = self.parentWnd.GetPosition()
|
||||
|
||||
ItemStatsDialog.counter += 1
|
||||
self.dlgOrder = ItemStatsDialog.counter
|
||||
@@ -81,18 +82,32 @@ class ItemStatsDialog(wx.Dialog):
|
||||
|
||||
dlgx = ppos.x + counter * dlgStep
|
||||
dlgy = ppos.y + counter * dlgStep
|
||||
self.SetPosition((dlgx,dlgy))
|
||||
if pos == wx.DefaultPosition:
|
||||
self.SetPosition((dlgx,dlgy))
|
||||
else:
|
||||
self.SetPosition(pos)
|
||||
if maximized:
|
||||
self.Maximize(True)
|
||||
else:
|
||||
if size != wx.DefaultSize:
|
||||
self.SetSize(size)
|
||||
self.parentWnd.RegisterStatsWindow(self)
|
||||
|
||||
self.Show()
|
||||
|
||||
self.Bind(wx.EVT_CLOSE, self.closeEvent)
|
||||
self.Bind(wx.EVT_ACTIVATE, self.OnActivate)
|
||||
|
||||
def OnActivate(self, event):
|
||||
self.parentWnd.SetActiveStatsWindow(self)
|
||||
|
||||
def closeEvent(self, event):
|
||||
|
||||
if self.dlgOrder==ItemStatsDialog.counter:
|
||||
ItemStatsDialog.counter -= 1
|
||||
self.parentWnd.UnregisterStatsWindow(self)
|
||||
|
||||
self.Destroy()
|
||||
event.Skip()
|
||||
|
||||
###########################################################################
|
||||
## Class ItemStatsContainer
|
||||
@@ -172,8 +187,9 @@ class ItemDescription ( wx.Panel ):
|
||||
|
||||
|
||||
self.description = wx.html.HtmlWindow(self)
|
||||
|
||||
desc = item.description.replace("\r","<br>")
|
||||
desc = re.sub("<( *)font( *)color( *)=(.*)>", "<b>", desc)
|
||||
desc = re.sub("<( *)/( *)font( *)>","</b>", desc)
|
||||
|
||||
self.description.SetPage(desc)
|
||||
|
||||
|
||||
@@ -124,6 +124,8 @@ class MainFrame(wx.Frame):
|
||||
self.closePageId = wx.NewId()
|
||||
|
||||
self.graphFrame = None
|
||||
self.statsWnds = []
|
||||
self.activeStatsWnd = None
|
||||
|
||||
#Add menu
|
||||
self.SetMenuBar(MainMenuBar())
|
||||
@@ -134,6 +136,25 @@ class MainFrame(wx.Frame):
|
||||
#Show ourselves
|
||||
self.Show()
|
||||
|
||||
def SetActiveStatsWindow(self, wnd):
|
||||
self.activeStatsWnd = wnd
|
||||
|
||||
def GetActiveStatsWindow(self):
|
||||
|
||||
if self.activeStatsWnd in self.statsWnds:
|
||||
return self.activeStatsWnd
|
||||
|
||||
if len(self.statsWnds) > 0:
|
||||
return self.statsWnds[len(self.statsWnds) - 1]
|
||||
else:
|
||||
return None
|
||||
|
||||
def RegisterStatsWindow(self, wnd):
|
||||
self.statsWnds.append(wnd)
|
||||
|
||||
def UnregisterStatsWindow(self, wnd):
|
||||
self.statsWnds.remove(wnd)
|
||||
|
||||
def getActiveFit(self):
|
||||
p = self.fitMultiSwitch.GetSelectedPage()
|
||||
m = getattr(p, "getActiveFit", None)
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
|
||||
import wx
|
||||
import gui.chromeTabs
|
||||
import gui.mainFrame
|
||||
|
||||
class MultiSwitch(gui.chromeTabs.PFNotebook):
|
||||
def __init__(self, parent):
|
||||
@@ -44,10 +43,9 @@ class MultiSwitch(gui.chromeTabs.PFNotebook):
|
||||
|
||||
|
||||
def DeletePage(self, n, *args, **kwargs):
|
||||
if self.GetPageCount() > 1:
|
||||
gui.chromeTabs.PFNotebook.DeletePage(self, n, *args, **kwargs)
|
||||
else:
|
||||
gui.mainFrame.MainFrame.getInstance().Close()
|
||||
gui.chromeTabs.PFNotebook.DeletePage(self, n, *args, **kwargs)
|
||||
if self.GetPageCount() == 0:
|
||||
self.AddPage()
|
||||
|
||||
class BlankPage(wx.Panel):
|
||||
def __init__(self, parent):
|
||||
|
||||
@@ -842,7 +842,7 @@ class ShipItem(wx.Window):
|
||||
if shipID:
|
||||
self.shipBmp = bitmapLoader.getBitmap(str(shipID),"ships")
|
||||
if not self.shipBmp:
|
||||
self.shipBmp = wx.EmptyBitmap(32, 32)
|
||||
self.shipBmp = bitmapLoader.getBitmap("ship_no_image_big","icons")
|
||||
self.shipFittingInfo = shipFittingInfo
|
||||
self.shipName, self.shipFits = shipFittingInfo
|
||||
|
||||
@@ -1195,7 +1195,7 @@ class FitItem(wx.Window):
|
||||
if shipID:
|
||||
self.shipBmp = bitmapLoader.getBitmap(str(shipID),"ships")
|
||||
if not self.shipBmp:
|
||||
self.shipBmp = wx.EmptyBitmap(32, 32)
|
||||
self.shipBmp = bitmapLoader.getBitmap("ship_no_image_big","icons")
|
||||
|
||||
self.shipFittingInfo = shipFittingInfo
|
||||
self.shipName, self.fitName, self.timestamp = shipFittingInfo
|
||||
|
||||
BIN
icons/ship_no_image_big.png
Normal file
BIN
icons/ship_no_image_big.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
Reference in New Issue
Block a user