From 817a1b11ee04f81e20364390f564f9f46eab3e74 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Mon, 8 Nov 2010 00:37:10 +0300 Subject: [PATCH 1/4] Also search limited issue ships, closes #294 --- service/market.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/market.py b/service/market.py index df22f5389..e2d41e5d5 100644 --- a/service/market.py +++ b/service/market.py @@ -206,7 +206,7 @@ class Market(): results = eos.db.searchItems(name) ships = [] for item in results: - if item.category.name == "Ship" and (item.published or item.name in self.FORCED_SHIPS): + if item.category.name == "Ship" and (item.published or item.name in self.FORCED_SHIPS or item.name in self.LIMITED_EDITION): ships.append((item.ID, item.name, item.race)) return ships From 8e87a395454a7b89509e3bf931abf3945f16cf04 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Mon, 8 Nov 2010 08:33:33 +0200 Subject: [PATCH 2/4] Got Alpha? --- miniframe.py | 200 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 151 insertions(+), 49 deletions(-) diff --git a/miniframe.py b/miniframe.py index 5f485b861..ead9e6a8d 100644 --- a/miniframe.py +++ b/miniframe.py @@ -100,7 +100,7 @@ class PFTabRenderer: def InitColors(self): self.tabColor = wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW) self.leftColor = self.CalculateColor(self.tabColor, 0x1F) - self.rightColor = self.CalculateColor(self.tabColor, 0x2F) + self.rightColor = self.CalculateColor(self.tabColor, 0x20) self.gradientStartColor = self.CalculateColor(self.tabColor, 0x17 if self.selected else 0x27) def CalculateColor(self, color, delta): @@ -234,7 +234,7 @@ class PFTabRenderer: lrect = wx.Rect() lrect.left=inc - 1 lrect.top=0 - lrect.width = contentWidth + lrect.width = contentWidth+1 lrect.height = 1 mdc.GradientFillLinear(lrect,self.leftColor,self.rightColor, wx.EAST) if not self.selected: @@ -263,7 +263,7 @@ class PFTabRenderer: else: break - text = "%s%s" % (text[:count],".." if len(text)>count else "") + text = "%s%s" % (text[:count],"." if len(text)>count else "") tx,ty = mdc.GetTextExtent(text) @@ -277,35 +277,21 @@ class PFTabRenderer: self.tabBitmap = canvas -class MiniFrame(wx.Frame): - def __init__(self): - wx.Frame.__init__(self, None, -1, 'MEGA Frame', - size=(1000, 100), style = wx.FRAME_SHAPED) - self.Bind(wx.EVT_CLOSE, self.OnCloseWindow) +class PFTabsContainer(wx.Window): + def __init__(self, parent, pos = (0,0), size = (100,24), id = wx.ID_ANY): + wx.Window.__init__(self, parent, id , pos, size , style = 0) + self.tabs = [] + width, height = size + self.height = height + self.reserved = 24 + self.tabContainerWidth = width - self.reserved + self.tabShadow = None + self.Bind(wx.EVT_PAINT, self.OnPaint) - self.Bind(wx.EVT_ERASE_BACKGROUND,self.OnErase) - self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) + self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnErase) self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp) self.Bind(wx.EVT_MOTION, self.OnMotion) - self.drag = False - self.font8px = wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL, False) - self.tabs = [] - self.tabMinWidth = 100000 - for i in xrange(5): - tab = PFTabRenderer((120,24),"Pyfa TAB #%d Aw" % i) - tx,ty = tab.GetMinSize() - if self.tabMinWidth > tx: - self.tabMinWidth = tx - self.tabs.append(tab) - self.tabs[2].SetSelected() - for tab in self.tabs: - tab.SetSize((self.tabMinWidth, 24)) - - self.Refresh() - - def OnLeftDown(self, event): - event.Skip() def OnLeftUp(self, event): mposx,mposy = event.GetPosition() seltab = None @@ -314,7 +300,7 @@ class MiniFrame(wx.Frame): if tab.GetSelected(): oldSelTab = tab break - + count = 0 for tab in self.tabs: tabRegion = tab.GetTabRegion() closeBtnReg = tab.GetCloseButtonRegion() @@ -325,6 +311,7 @@ class MiniFrame(wx.Frame): if closeBtnReg.Contains(mposx, mposy): print "Close tab: %s" % tab.text + self.DeleteTab(count) return if tabRegion.Contains(mposx, mposy): @@ -334,13 +321,10 @@ class MiniFrame(wx.Frame): self.Refresh() print "Selected: %s" %tab.text break + count += 1 event.Skip() + def OnMotion(self, event): -# if self.drag: -# pos = self.ClientToScreen(event.GetPosition()) -# pos.x -= self.dpos.x -# pos.y -= self.dpos.y -# self.SetPosition(pos) mposx,mposy = event.GetPosition() for tab in self.tabs: closeBtnReg = tab.GetCloseButtonRegion() @@ -354,11 +338,6 @@ class MiniFrame(wx.Frame): self.Refresh() event.Skip() - def OnErase(self, event): - pass - def OnCloseWindow(self, event): - self.Destroy() - def OnPaint(self, event): rect = self.GetRect() @@ -366,13 +345,14 @@ class MiniFrame(wx.Frame): mdc = wx.BufferedPaintDC(self) mdc.SelectObject(canvas) + selected = 0 + mdc.SetBackground (wx.Brush(wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW))) mdc.Clear() selected = None selpos = 0 tabsWidth = 0 - offset = 10 for tab in self.tabs: tabsWidth += tab.tabWidth - tab.lrZoneWidth/2 @@ -384,19 +364,141 @@ class MiniFrame(wx.Frame): width = tab.tabWidth - tab.lrZoneWidth/2 pos -= width if not tab.IsSelected(): - mdc.DrawBitmap(tab.Render(),pos+offset,10, True) - tab.SetPosition((pos + offset, 10)) + mdc.DrawBitmap(self.efxBmp, pos, 0) + mdc.DrawBitmap(tab.Render(), pos, 0, True) + tab.SetPosition((pos, 0)) else: selected = tab - selpos = pos + offset + selpos = pos if selected: - mdc.DrawBitmap(selected.Render(), selpos,10,True) - selected.SetPosition((selpos, 10)) + mdc.DrawBitmap(self.efxBmp, selpos, 0, True) + mdc.DrawBitmap(selected.Render(), selpos, 0, True) + selected.SetPosition((selpos, 0)) - mdc.SetPen( wx.Pen("#D0D0D0", width = 1 ) ) - mdc.DrawLine(10,34,10,100) - mdc.DrawLine(10,100,tabsWidth + 18,100) - mdc.DrawLine(tabsWidth+18,100,tabsWidth+18,33) + def OnErase(self, event): + pass + + def CreateShadow(self): + self.tabShadow = PFTabRenderer( (self.tabMinWidth, self.height)) + + def AddTab(self, title = wx.EmptyString, img = None): + self.ClearTabsSelected() + + tabRenderer = PFTabRenderer( (120,self.height), title, img) + tabRenderer.SetSelected(True) + + self.tabs.append( tabRenderer ) + self.AdjustTabsSize() + self.Refresh() + + def ClearTabsSelected(self): + for tab in self.tabs: + tab.SetSelected(False) + + def DeleteTab(self, tab): + tabRenderer = self.tabs[tab] + wasSelected = tabRenderer.GetSelected() + self.tabs.remove(tabRenderer) + + if tabRenderer: + del tabRenderer + if wasSelected and self.GetTabsCount() > 0: + if tab > self.GetTabsCount() -1: + self.tabs[self.GetTabsCount() - 1].SetSelected(True) + self.AdjustTabsSize() + self.Refresh() + + def GetTabsCount(self): + return len(self.tabs) + + def AdjustTabsSize(self): + self.tabMinWidth = 9000000 # Really, it should be over 9000 + for tab in self.tabs: + tx,ty = tab.GetMinSize() + if self.tabMinWidth > tx: + self.tabMinWidth = tx + if self.GetTabsCount() * self.tabMinWidth > self.tabContainerWidth: + self.tabMinWidth = (self.tabContainerWidth - self.reserved) / self.GetTabsCount() + for tab in self.tabs: + tab.SetSize( (self.tabMinWidth, self.height) ) + self.CreateShadow() + + shadowBmp = self.tabShadow.Render() + + simg = shadowBmp.ConvertToImage() + simg.InitAlpha() + simg = simg.Blur(2) + simg = simg.AdjustChannels(0.8,0.8,0.8,0.3) + + self.efxBmp = wx.BitmapFromImage(simg) + +class MiniFrame(wx.Frame): + def __init__(self): + wx.Frame.__init__(self, None, -1, 'MEGA Frame', + size=(1000, 100), style = wx.FRAME_SHAPED) + self.Bind(wx.EVT_CLOSE, self.OnCloseWindow) +# self.Bind(wx.EVT_PAINT, self.OnPaint) +# self.Bind(wx.EVT_ERASE_BACKGROUND,self.OnErase) +# self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) +# self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp) +# self.Bind(wx.EVT_MOTION, self.OnMotion) + self.SetBackgroundColour( (0xff,0xff,0xff)) + + self.drag = False + self.font8px = wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL, False) + self.tabContainer = PFTabsContainer(self, (0,5), (1000,24)) + self.tabContainer.Show() + for i in xrange(10): + self.tabContainer.AddTab("Pyfa TAB #%d Aw" % i) + + self.Refresh() + + def OnLeftDown(self, event): + event.Skip() + + def OnErase(self, event): + pass + def OnCloseWindow(self, event): + self.Destroy() + + +# def OnPaint(self, event): +# rect = self.GetRect() +# canvas = wx.EmptyBitmap(rect.width, rect.height) +# mdc = wx.BufferedPaintDC(self) +# mdc.SelectObject(canvas) +# +# mdc.SetBackground (wx.Brush(wx.SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW))) +# mdc.Clear() +# +# selected = None +# selpos = 0 +# tabsWidth = 0 +# offset = 10 +# +# for tab in self.tabs: +# tabsWidth += tab.tabWidth - tab.lrZoneWidth/2 +# +# pos = tabsWidth +# +# for i in xrange(len(self.tabs) - 1, -1, -1): +# tab = self.tabs[i] +# width = tab.tabWidth - tab.lrZoneWidth/2 +# pos -= width +# if not tab.IsSelected(): +# mdc.DrawBitmap(tab.Render(),pos+offset,10, True) +# tab.SetPosition((pos + offset, 10)) +# else: +# selected = tab +# selpos = pos + offset +# if selected: +# mdc.DrawBitmap(selected.Render(), selpos,10,True) +# selected.SetPosition((selpos, 10)) +# +# mdc.SetPen( wx.Pen("#D0D0D0", width = 1 ) ) +# mdc.DrawLine(10,34,10,100) +# mdc.DrawLine(10,100,tabsWidth + 18,100) +# mdc.DrawLine(tabsWidth+18,100,tabsWidth+18,33) if __name__ == '__main__': app = wx.PySimpleApp() From 26455c1010e02fa16fb131e8154e1488d4bc24b6 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Mon, 8 Nov 2010 09:08:51 +0200 Subject: [PATCH 3/4] Really, dont create a bitmap with Over9000 px width --- miniframe.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/miniframe.py b/miniframe.py index ead9e6a8d..1e3e02755 100644 --- a/miniframe.py +++ b/miniframe.py @@ -285,6 +285,7 @@ class PFTabsContainer(wx.Window): self.height = height self.reserved = 24 self.tabContainerWidth = width - self.reserved + self.tabMinWidth = 0 self.tabShadow = None self.Bind(wx.EVT_PAINT, self.OnPaint) @@ -412,13 +413,16 @@ class PFTabsContainer(wx.Window): return len(self.tabs) def AdjustTabsSize(self): - self.tabMinWidth = 9000000 # Really, it should be over 9000 + tabMinWidth = 9000000 # Really, it should be over 9000 for tab in self.tabs: tx,ty = tab.GetMinSize() - if self.tabMinWidth > tx: - self.tabMinWidth = tx - if self.GetTabsCount() * self.tabMinWidth > self.tabContainerWidth: - self.tabMinWidth = (self.tabContainerWidth - self.reserved) / self.GetTabsCount() + if tabMinWidth > tx: + tabMinWidth = tx + if self.GetTabsCount() >0: + if self.GetTabsCount() * tabMinWidth > self.tabContainerWidth: + self.tabMinWidth = (self.tabContainerWidth - self.reserved) / self.GetTabsCount() + else: + self.tabMinWidth = 0 for tab in self.tabs: tab.SetSize( (self.tabMinWidth, self.height) ) self.CreateShadow() From 01369ddcfe7b4b17564c7d79e20dc99f1a21d722 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Mon, 8 Nov 2010 09:21:55 +0200 Subject: [PATCH 4/4] Stuff --- miniframe.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/miniframe.py b/miniframe.py index 1e3e02755..2d5f64953 100644 --- a/miniframe.py +++ b/miniframe.py @@ -108,7 +108,7 @@ class PFTabRenderer: if bkR + bkG + bkB > 127*3: scale = - delta else: - scale = delta + scale = delta*2 return wx.Colour(bkR + scale, bkG + scale, bkR + scale) def InitTabRegions(self): @@ -263,7 +263,8 @@ class PFTabRenderer: else: break - text = "%s%s" % (text[:count],"." if len(text)>count else "") +# text = "%s%s" % (text[:count],"." if len(text)>count else "") + text = "%s" % text[:count] tx,ty = mdc.GetTextExtent(text)