Merge branch 'master' of evefit.org:pyfa
This commit is contained in:
@@ -28,6 +28,7 @@ class ActivityCheckbox(ViewColumn):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.resizable = False
|
||||
self.size = 24
|
||||
self.maxsize = self.size
|
||||
self.mask = wx.LIST_MASK_WIDTH
|
||||
for name, state in (("checked", wx.CONTROL_CHECKED), ("unchecked", 0)):
|
||||
bitmap = wx.EmptyBitmap(16, 16)
|
||||
|
||||
@@ -51,7 +51,7 @@ class MaxRange(ViewColumn):
|
||||
|
||||
if params["displayName"] or self.imageId == -1:
|
||||
self.columnText = info.displayName if info.displayName != "" else info.name
|
||||
self.mask |= wx.LIST_MASK_IMAGE
|
||||
self.mask |= wx.LIST_MASK_TEXT
|
||||
|
||||
def getText(self, stuff):
|
||||
maxRange = stuff.maxRange if hasattr(stuff, "maxRange") else stuff.getModifiedItemAttr("maxRange")
|
||||
|
||||
@@ -27,6 +27,7 @@ class ModuleAmmoIcon(ViewColumn):
|
||||
def __init__(self, fittingView, params):
|
||||
ViewColumn.__init__(self, fittingView)
|
||||
self.size = 16
|
||||
self.maxsize = self.size
|
||||
self.mask = wx.LIST_MASK_IMAGE
|
||||
self.columnText = ""
|
||||
|
||||
|
||||
@@ -29,7 +29,9 @@ class Display(wx.ListCtrl):
|
||||
self.imageList = wx.ImageList(16, 16)
|
||||
self.SetImageList(self.imageList, wx.IMAGE_LIST_SMALL)
|
||||
self.activeColumns = []
|
||||
self.Bind(wx.EVT_LIST_COL_BEGIN_DRAG, self.resizeChecker)
|
||||
self.columnsMinWidth = []
|
||||
self.Bind(wx.EVT_LIST_COL_END_DRAG, self.resizeChecker)
|
||||
self.Bind(wx.EVT_LIST_COL_BEGIN_DRAG, self.resizeSkip)
|
||||
|
||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||
|
||||
@@ -45,6 +47,7 @@ class Display(wx.ListCtrl):
|
||||
col = ViewColumn.getColumn(colName)(self, None)
|
||||
|
||||
self.addColumn(i, col)
|
||||
self.columnsMinWidth.append(self.GetColumnWidth(i))
|
||||
i += 1
|
||||
|
||||
info = wx.ListItem()
|
||||
@@ -76,13 +79,23 @@ class Display(wx.ListCtrl):
|
||||
def resizeChecker(self, event):
|
||||
# we veto header cell resize by default till we find a way
|
||||
# to assure a minimal size for the resized header cell
|
||||
column = event.GetColumn()
|
||||
wx.CallAfter(self.checkColumnSize,column)
|
||||
event.Skip()
|
||||
|
||||
event.Veto()
|
||||
def resizeSkip(self, event):
|
||||
column = event.GetColumn()
|
||||
colItem = self.activeColumns[column]
|
||||
if self.activeColumns[column].maxsize != -1:
|
||||
event.Veto()
|
||||
else:
|
||||
event.Skip()
|
||||
|
||||
# if self.activeColumns[event.Column].resizable is False:
|
||||
# event.Veto()
|
||||
# else:
|
||||
# self.activeColumns[event.Column].resized = True
|
||||
def checkColumnSize(self,column):
|
||||
colItem = self.activeColumns[column]
|
||||
if self.GetColumnWidth(column) < self.columnsMinWidth[column]:
|
||||
self.SetColumnWidth(column,self.columnsMinWidth[column])
|
||||
colItem.resized = True
|
||||
|
||||
def clearItemImages(self):
|
||||
for i in xrange(self.imageList.ImageCount - 1, self.imageListBase, -1):
|
||||
@@ -142,8 +155,22 @@ class Display(wx.ListCtrl):
|
||||
self.SetItemData(item, id)
|
||||
|
||||
self.Freeze()
|
||||
for i,col in enumerate(self.activeColumns):
|
||||
self.SetColumnWidth(i, col.size)
|
||||
if 'wxMSW' in wx.PlatformInfo:
|
||||
for i,col in enumerate(self.activeColumns):
|
||||
if not col.resized:
|
||||
self.SetColumnWidth(i, col.size)
|
||||
else:
|
||||
for i, col in enumerate(self.activeColumns):
|
||||
if not col.resized:
|
||||
if col.size == wx.LIST_AUTOSIZE_USEHEADER:
|
||||
self.SetColumnWidth(i, wx.LIST_AUTOSIZE_USEHEADER)
|
||||
headerWidth = self.GetColumnWidth(i)
|
||||
self.SetColumnWidth(i, wx.LIST_AUTOSIZE)
|
||||
baseWidth = self.GetColumnWidth(i)
|
||||
if baseWidth < headerWidth:
|
||||
self.SetColumnWidth(i, headerWidth)
|
||||
else:
|
||||
self.SetColumnWidth(i, col.size)
|
||||
self.Thaw()
|
||||
|
||||
for sel in selection:
|
||||
|
||||
@@ -32,6 +32,7 @@ class ViewColumn(object):
|
||||
self.imageId = -1
|
||||
self.size = wx.LIST_AUTOSIZE_USEHEADER
|
||||
self.mask = 0
|
||||
self.maxsize = -1
|
||||
|
||||
|
||||
@classmethod
|
||||
|
||||
Reference in New Issue
Block a user