Merge branch 'master' into wx3
This commit is contained in:
@@ -30,6 +30,7 @@ Stage1Selected, EVT_SB_STAGE1_SEL = wx.lib.newevent.NewEvent()
|
||||
Stage2Selected, EVT_SB_STAGE2_SEL = wx.lib.newevent.NewEvent()
|
||||
Stage3Selected, EVT_SB_STAGE3_SEL = wx.lib.newevent.NewEvent()
|
||||
SearchSelected, EVT_SB_SEARCH_SEL = wx.lib.newevent.NewEvent()
|
||||
ImportSelected, EVT_SB_IMPORT_SEL = wx.lib.newevent.NewEvent()
|
||||
|
||||
class PFWidgetsContainer(PFListPane):
|
||||
def __init__(self,parent):
|
||||
@@ -324,7 +325,7 @@ class RaceSelector(wx.Window):
|
||||
event.Skip()
|
||||
|
||||
class NavigationPanel(SFItem.SFBrowserItem):
|
||||
def __init__(self,parent, size = (-1,24)):
|
||||
def __init__(self,parent, size = (-1, 24)):
|
||||
SFItem.SFBrowserItem.__init__(self,parent,size = size)
|
||||
|
||||
self.rewBmpH = bitmapLoader.getBitmap("frewind_small","icons")
|
||||
@@ -352,7 +353,7 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
|
||||
self.padding = 4
|
||||
self.lastSearch = ""
|
||||
self.recentSearches = []
|
||||
self.recentSearches = [] # not used?
|
||||
self.inSearch = False
|
||||
|
||||
self.fontSmall = wx.Font(fonts.SMALL, wx.SWISS, wx.NORMAL, wx.NORMAL)
|
||||
@@ -371,23 +372,14 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
|
||||
self.Bind(wx.EVT_SIZE, self.OnResize)
|
||||
|
||||
|
||||
def OnScheduleSearch(self, event):
|
||||
search = self.BrowserSearchBox.GetValue()
|
||||
# Make sure we do not count wildcard as search symbol
|
||||
realsearch = search.replace("*", "")
|
||||
if len(realsearch) < 3 and len(realsearch) >= 0:
|
||||
if self.inSearch == True:
|
||||
self.inSearch = False
|
||||
if len(self.shipBrowser.browseHist) > 0:
|
||||
stage,data = self.shipBrowser.browseHist.pop()
|
||||
self.gotoStage(stage,data)
|
||||
else:
|
||||
if search:
|
||||
wx.PostEvent(self.shipBrowser,SearchSelected(text=search, back = False))
|
||||
self.inSearch = True
|
||||
else:
|
||||
self.inSearch = False
|
||||
if len(realsearch) >= 3:
|
||||
self.lastSearch = search
|
||||
wx.PostEvent(self.shipBrowser,SearchSelected(text=search, back = False))
|
||||
|
||||
|
||||
def ToggleSearchBox(self):
|
||||
if self.BrowserSearchBox.IsShown():
|
||||
@@ -401,8 +393,6 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
self.OnBrowserSearchBoxLostFocus(None)
|
||||
|
||||
def OnBrowserSearchBoxLostFocus(self, event):
|
||||
self.lastSearch = self.BrowserSearchBox.GetValue()
|
||||
self.BrowserSearchBox.ChangeValue("")
|
||||
self.BrowserSearchBox.Show(False)
|
||||
|
||||
def OnBrowserSearchBoxEsc(self, event):
|
||||
@@ -411,7 +401,6 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
else:
|
||||
event.Skip()
|
||||
|
||||
|
||||
def OnResize(self, event):
|
||||
self.Refresh()
|
||||
|
||||
@@ -449,7 +438,7 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
sFit = service.Fit.getInstance()
|
||||
fitID = sFit.newFit(shipID, "%s fit" %shipName)
|
||||
self.shipBrowser.fitIDMustEditName = fitID
|
||||
wx.PostEvent(self.Parent,Stage3Selected(shipID=shipID, back = True))
|
||||
wx.PostEvent(self.Parent,Stage3Selected(shipID=shipID))
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=fitID))
|
||||
|
||||
def OnHistoryReset(self):
|
||||
@@ -460,11 +449,11 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
def OnHistoryBack(self):
|
||||
if len(self.shipBrowser.browseHist) > 0:
|
||||
stage,data = self.shipBrowser.browseHist.pop()
|
||||
self.gotoStage(stage,data)
|
||||
self.gotoStage(stage, data)
|
||||
|
||||
def AdjustChannels(self, bitmap):
|
||||
img = wx.ImageFromBitmap(bitmap)
|
||||
img = img.AdjustChannels(1.05,1.05,1.05,1)
|
||||
img = img.AdjustChannels(1.05, 1.05, 1.05, 1)
|
||||
return wx.BitmapFromImage(img)
|
||||
|
||||
def UpdateElementsPos(self, mdc):
|
||||
@@ -536,20 +525,20 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
self.bkBitmap.mFactor = mFactor
|
||||
|
||||
|
||||
def gotoStage(self,stage, data = None):
|
||||
def gotoStage(self, stage, data=None):
|
||||
if stage == 1:
|
||||
wx.PostEvent(self.Parent,Stage1Selected())
|
||||
wx.PostEvent(self.Parent, Stage1Selected())
|
||||
elif stage == 2:
|
||||
wx.PostEvent(self.Parent,Stage2Selected(categoryID=data, back = True))
|
||||
wx.PostEvent(self.Parent, Stage2Selected(categoryID=data, back=True))
|
||||
elif stage == 3:
|
||||
wx.PostEvent(self.Parent,Stage3Selected(shipID=data, back = 1))
|
||||
wx.PostEvent(self.Parent, Stage3Selected(shipID=data))
|
||||
elif stage == 4:
|
||||
self.shipBrowser._activeStage = 4
|
||||
self.stStatus.SetLabel("Search: %s" % data.capitalize())
|
||||
self.Layout()
|
||||
wx.PostEvent(self.Parent,SearchSelected(text=data, back = True))
|
||||
wx.PostEvent(self.Parent, SearchSelected(text=data, back=True))
|
||||
elif stage == 5:
|
||||
wx.PostEvent(self.Parent, ImportSelected(fits=data))
|
||||
else:
|
||||
wx.PostEvent(self.Parent,Stage1Selected())
|
||||
wx.PostEvent(self.Parent, Stage1Selected())
|
||||
|
||||
|
||||
class ShipBrowser(wx.Panel):
|
||||
@@ -610,6 +599,7 @@ class ShipBrowser(wx.Panel):
|
||||
self.Bind(EVT_SB_STAGE1_SEL, self.stage1)
|
||||
self.Bind(EVT_SB_STAGE3_SEL, self.stage3)
|
||||
self.Bind(EVT_SB_SEARCH_SEL, self.searchStage)
|
||||
self.Bind(EVT_SB_IMPORT_SEL, self.importStage)
|
||||
|
||||
self.mainFrame.Bind(GE.FIT_CHANGED, self.RefreshList)
|
||||
|
||||
@@ -654,6 +644,8 @@ class ShipBrowser(wx.Panel):
|
||||
return self._stage2Data
|
||||
if stage == 3:
|
||||
return self._stage3Data
|
||||
if stage == 4:
|
||||
return self.navpanel.lastSearch
|
||||
return -1
|
||||
|
||||
def GetStage3ShipName(self):
|
||||
@@ -809,13 +801,15 @@ class ShipBrowser(wx.Panel):
|
||||
|
||||
self.lpane.ShowLoading(False)
|
||||
|
||||
if event.back == 0:
|
||||
self.browseHist.append( (2,self._stage2Data) )
|
||||
elif event.back == -1:
|
||||
if len(self.navpanel.recentSearches)>0:
|
||||
# If back is False, do not append to history. This could be us calling
|
||||
# the stage from previous history, creating / copying fit, etc.
|
||||
# We also have to use conditional for search stage since it's last data
|
||||
# is kept elsewhere
|
||||
if getattr(event, "back", False):
|
||||
if self._activeStage == 4 and self.navpanel.lastSearch != "":
|
||||
self.browseHist.append((4, self.navpanel.lastSearch))
|
||||
elif event.back > 0:
|
||||
self.browseHist.append( (2,event.back) )
|
||||
else:
|
||||
self.browseHist.append((self._activeStage, self.lastdata))
|
||||
|
||||
shipID = event.shipID
|
||||
self.lastdata = shipID
|
||||
@@ -868,11 +862,11 @@ class ShipBrowser(wx.Panel):
|
||||
self.navpanel.ShowSwitchEmptyGroupsButton(False)
|
||||
|
||||
if not event.back:
|
||||
if self._activeStage !=4:
|
||||
if len(self.browseHist) >0:
|
||||
self.browseHist.append( (self._activeStage, self.lastdata) )
|
||||
if self._activeStage != 4:
|
||||
if len(self.browseHist) > 0:
|
||||
self.browseHist.append((self._activeStage, self.lastdata))
|
||||
else:
|
||||
self.browseHist.append((1,0))
|
||||
self.browseHist.append((1, 0))
|
||||
self._lastStage = self._activeStage
|
||||
self._activeStage = 4
|
||||
|
||||
@@ -903,6 +897,46 @@ class ShipBrowser(wx.Panel):
|
||||
self.raceselect.Show(False)
|
||||
self.Layout()
|
||||
|
||||
def importStage(self, event):
|
||||
self.lpane.ShowLoading(False)
|
||||
|
||||
self.navpanel.ShowNewFitButton(False)
|
||||
self.navpanel.ShowSwitchEmptyGroupsButton(False)
|
||||
|
||||
if getattr(event, "back", False):
|
||||
self.browseHist.append((self._activeStage, self.lastdata))
|
||||
|
||||
self._lastStage = self._activeStage
|
||||
self._activeStage = 5
|
||||
|
||||
fits = event.fits
|
||||
|
||||
# sort by ship name, then fit name
|
||||
fits.sort(key=lambda fit: (fit.ship.item.name, fit.name))
|
||||
|
||||
self.lastdata = fits
|
||||
self.lpane.Freeze()
|
||||
self.lpane.RemoveAllChildren()
|
||||
|
||||
if fits:
|
||||
for fit in fits:
|
||||
self.lpane.AddWidget(FitItem(
|
||||
self.lpane,
|
||||
fit.ID, (
|
||||
fit.ship.item.name,
|
||||
fit.name,
|
||||
fit.booster,
|
||||
fit.timestamp),
|
||||
fit.ship.item.ID))
|
||||
self.lpane.RefreshList(doFocus=False)
|
||||
self.lpane.Thaw()
|
||||
|
||||
self.raceselect.RebuildRaces(self.RACE_ORDER)
|
||||
|
||||
if self.showRacesFilterInStage2Only:
|
||||
self.raceselect.Show(False)
|
||||
self.Layout()
|
||||
|
||||
class PFStaticText(wx.Panel):
|
||||
def __init__(self, parent, label=wx.EmptyString):
|
||||
wx.Panel.__init__ (self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size = parent.GetSize())
|
||||
@@ -1165,7 +1199,7 @@ class ShipItem(SFItem.SFBrowserItem):
|
||||
else:
|
||||
shipName, fittings = self.shipFittingInfo
|
||||
if fittings > 0:
|
||||
wx.PostEvent(self.shipBrowser,Stage3Selected(shipID=self.shipID, back = -1 if self.shipBrowser.GetActiveStage() == 4 else 0))
|
||||
wx.PostEvent(self.shipBrowser, Stage3Selected(shipID=self.shipID, back=True))
|
||||
else:
|
||||
self.newBtnCB()
|
||||
|
||||
@@ -1577,7 +1611,7 @@ class FitItem(SFItem.SFBrowserItem):
|
||||
sFit = service.Fit.getInstance()
|
||||
fitID = sFit.copyFit(self.fitID)
|
||||
self.shipBrowser.fitIDMustEditName = fitID
|
||||
wx.PostEvent(self.shipBrowser,Stage3Selected(shipID=self.shipID, back=True))
|
||||
wx.PostEvent(self.shipBrowser,Stage3Selected(shipID=self.shipID))
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=fitID))
|
||||
|
||||
def renameBtnCB(self):
|
||||
@@ -1620,18 +1654,22 @@ class FitItem(SFItem.SFBrowserItem):
|
||||
self.deleted = True
|
||||
|
||||
sFit = service.Fit.getInstance()
|
||||
fit = sFit.getFit(self.fitID)
|
||||
|
||||
sFit.deleteFit(self.fitID)
|
||||
|
||||
if self.shipBrowser.GetActiveStage() == 4:
|
||||
wx.PostEvent(self.shipBrowser,SearchSelected(text=self.shipBrowser.navpanel.lastSearch,back=True))
|
||||
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))
|
||||
else:
|
||||
wx.PostEvent(self.shipBrowser,Stage3Selected(shipID=self.shipID, back=True))
|
||||
wx.PostEvent(self.shipBrowser, Stage3Selected(shipID=self.shipID))
|
||||
|
||||
wx.PostEvent(self.mainFrame, FitRemoved(fitID=self.fitID))
|
||||
|
||||
def MouseLeftUp(self, event):
|
||||
|
||||
if self.dragging and self.dragged:
|
||||
self.dragging = False
|
||||
self.dragged = False
|
||||
|
||||
Reference in New Issue
Block a user