Merge branch 'master' of evefit.org:pyfa

This commit is contained in:
Lucas Thode
2010-11-26 12:00:16 -06:00
9 changed files with 80 additions and 23 deletions

View File

@@ -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()

View File

@@ -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:

View File

@@ -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":

View File

@@ -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()

View File

@@ -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)

View File

@@ -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)

View File

@@ -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):

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB