cleanup
This commit is contained in:
@@ -319,6 +319,7 @@ def getVariations(itemids, groupIDs=None, where=None, eager=None):
|
||||
|
||||
return vars
|
||||
|
||||
|
||||
@cachedQuery(1, "attr")
|
||||
def getAttributeInfo(attr, eager=None):
|
||||
if isinstance(attr, basestring):
|
||||
|
||||
@@ -10,8 +10,6 @@ https://community.eveonline.com/news/patch-notes/patch-notes-for-july-2017-relea
|
||||
conversion. Best effort ftw
|
||||
"""
|
||||
|
||||
import sqlalchemy
|
||||
|
||||
conversion = {
|
||||
frozenset([30046, 29969, 30139, 30122, 30090]): (45627, 45590, 45601, 45615),
|
||||
frozenset([30046, 29969, 30139, 30122, 30088]): (45627, 45590, 45601, 45614),
|
||||
|
||||
@@ -4,8 +4,6 @@ Migration 26
|
||||
- Deletes invalid command fit relationships caused by a bug (see #1244)
|
||||
"""
|
||||
|
||||
import sqlalchemy
|
||||
|
||||
|
||||
def upgrade(saveddata_engine):
|
||||
saveddata_engine.execute("DELETE FROM commandFits WHERE boosterID NOT IN (SELECT ID FROM fits) OR boostedID NOT IN (SELECT ID FROM fits)")
|
||||
|
||||
@@ -18,29 +18,28 @@
|
||||
# ===============================================================================
|
||||
|
||||
from sqlalchemy import Table, Column, ForeignKey, Integer, Boolean, DateTime
|
||||
from sqlalchemy.ext.associationproxy import association_proxy
|
||||
from sqlalchemy.orm import mapper, relation
|
||||
import datetime
|
||||
|
||||
from eos.db import saveddata_meta
|
||||
from eos.saveddata.booster import Booster
|
||||
from eos.saveddata.boosterSideEffect import BoosterSideEffect
|
||||
from eos.saveddata.fit import Fit
|
||||
|
||||
boosters_table = Table("boosters", saveddata_meta,
|
||||
Column("ID", Integer, primary_key=True),
|
||||
Column("itemID", Integer),
|
||||
Column("fitID", Integer, ForeignKey("fits.ID"), nullable=False),
|
||||
Column("active", Boolean),
|
||||
Column("created", DateTime, nullable=True, default=datetime.datetime.now),
|
||||
Column("modified", DateTime, nullable=True, onupdate=datetime.datetime.now),
|
||||
Column("ID", Integer, primary_key=True),
|
||||
Column("itemID", Integer),
|
||||
Column("fitID", Integer, ForeignKey("fits.ID"), nullable=False),
|
||||
Column("active", Boolean),
|
||||
Column("created", DateTime, nullable=True, default=datetime.datetime.now),
|
||||
Column("modified", DateTime, nullable=True, onupdate=datetime.datetime.now),
|
||||
)
|
||||
|
||||
|
||||
booster_side_effect_table = Table("boosterSideEffects", saveddata_meta,
|
||||
Column("boosterID", Integer, ForeignKey("boosters.ID"), primary_key=True, index=True),
|
||||
Column("effectID", Integer, nullable=False, primary_key=True),
|
||||
Column("active", Boolean, default=False))
|
||||
Column("boosterID", Integer, ForeignKey("boosters.ID"), primary_key=True, index=True),
|
||||
Column("effectID", Integer, nullable=False, primary_key=True),
|
||||
Column("active", Boolean, default=False)
|
||||
)
|
||||
|
||||
|
||||
mapper(Booster, boosters_table,
|
||||
|
||||
@@ -191,7 +191,7 @@ class ProjectedView(d.Display):
|
||||
|
||||
stuff = []
|
||||
if fit is not None:
|
||||
#pyfalog.debug(" Collecting list of stuff to display in ProjectedView")
|
||||
# pyfalog.debug(" Collecting list of stuff to display in ProjectedView")
|
||||
self.modules = fit.projectedModules[:]
|
||||
self.drones = fit.projectedDrones[:]
|
||||
self.fighters = fit.projectedFighters[:]
|
||||
|
||||
@@ -9,7 +9,7 @@ from gui.utils.staticHelpers import DragDropHelper
|
||||
|
||||
from logbook import Logger
|
||||
|
||||
from gui.builtinMarketBrowser.events import *
|
||||
import events
|
||||
|
||||
pyfalog = Logger(__name__)
|
||||
|
||||
@@ -89,10 +89,10 @@ class ItemView(Display):
|
||||
for itemID in self.sMkt.serviceMarketRecentlyUsedModules["pyfaMarketRecentlyUsedModules"]:
|
||||
self.recentlyUsedModules.add(self.sMkt.getItem(itemID))
|
||||
|
||||
wx.PostEvent(self.mainFrame, ItemSelected(itemID=self.active[sel].ID))
|
||||
wx.PostEvent(self.mainFrame, events.ItemSelected(itemID=self.active[sel].ID))
|
||||
|
||||
def storeRecentlyUsedMarketItem(self, itemID):
|
||||
if len(self.sMkt.serviceMarketRecentlyUsedModules["pyfaMarketRecentlyUsedModules"]) > MAX_RECENTLY_USED_MODULES:
|
||||
if len(self.sMkt.serviceMarketRecentlyUsedModules["pyfaMarketRecentlyUsedModules"]) > events.MAX_RECENTLY_USED_MODULES:
|
||||
self.sMkt.serviceMarketRecentlyUsedModules["pyfaMarketRecentlyUsedModules"].pop(0)
|
||||
|
||||
self.sMkt.serviceMarketRecentlyUsedModules["pyfaMarketRecentlyUsedModules"].append(itemID)
|
||||
@@ -104,7 +104,7 @@ class ItemView(Display):
|
||||
if sel.IsOk():
|
||||
# Get data field of the selected item (which is a marketGroup ID if anything was selected)
|
||||
seldata = self.marketView.GetPyData(sel)
|
||||
if seldata is not None and seldata != RECENTLY_USED_MODULES:
|
||||
if seldata is not None and seldata != events.RECENTLY_USED_MODULES:
|
||||
# If market group treeview item doesn't have children (other market groups or dummies),
|
||||
# then it should have items in it and we want to request them
|
||||
if self.marketView.ItemHasChildren(sel) is False:
|
||||
@@ -117,7 +117,7 @@ class ItemView(Display):
|
||||
items = set()
|
||||
else:
|
||||
# If method was called but selection wasn't actually made or we have a hit on recently used modules
|
||||
if seldata == RECENTLY_USED_MODULES:
|
||||
if seldata == events.RECENTLY_USED_MODULES:
|
||||
items = self.recentlyUsedModules
|
||||
else:
|
||||
items = set()
|
||||
@@ -126,7 +126,7 @@ class ItemView(Display):
|
||||
self.updateItemStore(items)
|
||||
|
||||
# Set toggle buttons / use search mode flag if recently used modules category is selected (in order to have all modules listed and not filtered)
|
||||
if seldata is not RECENTLY_USED_MODULES:
|
||||
if seldata is not events.RECENTLY_USED_MODULES:
|
||||
self.setToggles()
|
||||
else:
|
||||
self.marketBrowser.searchMode = True
|
||||
|
||||
@@ -10,4 +10,4 @@ class SearchBox(PFSearchBox):
|
||||
self.SetSearchBitmap(searchBitmap)
|
||||
self.SetCancelBitmap(cancelBitmap)
|
||||
self.ShowSearchButton()
|
||||
self.ShowCancelButton()
|
||||
self.ShowCancelButton()
|
||||
|
||||
@@ -8,7 +8,7 @@ import gui.utils.colorUtils as colorUtils
|
||||
import gui.utils.drawUtils as drawUtils
|
||||
import gui.utils.fonts as fonts
|
||||
from gui.bitmapLoader import BitmapLoader
|
||||
from .events import *
|
||||
import events
|
||||
|
||||
pyfalog = Logger(__name__)
|
||||
|
||||
@@ -77,7 +77,7 @@ class CategoryItem(SFBrowserItem):
|
||||
|
||||
def selectCategory(self, event):
|
||||
categoryID = self.categoryID
|
||||
wx.PostEvent(self.shipBrowser, Stage2Selected(categoryID=categoryID, back=False))
|
||||
wx.PostEvent(self.shipBrowser, events.Stage2Selected(categoryID=categoryID, back=False))
|
||||
|
||||
def MouseLeftUp(self, event):
|
||||
self.selectCategory(event)
|
||||
|
||||
@@ -12,7 +12,7 @@ import gui.mainFrame
|
||||
import gui.utils.colorUtils as colorUtils
|
||||
import gui.utils.drawUtils as drawUtils
|
||||
import gui.utils.fonts as fonts
|
||||
from events import *
|
||||
import events
|
||||
from gui.bitmapLoader import BitmapLoader
|
||||
from gui.builtinShipBrowser.pfBitmapFrame import PFBitmapFrame
|
||||
from service.fit import Fit
|
||||
@@ -171,7 +171,7 @@ class FitItem(SFItem.SFBrowserItem):
|
||||
self.fitBooster = not self.fitBooster
|
||||
self.boosterBtn.Show(self.fitBooster)
|
||||
self.Refresh()
|
||||
wx.PostEvent(self.mainFrame, BoosterListUpdated())
|
||||
wx.PostEvent(self.mainFrame, events.BoosterListUpdated())
|
||||
event.Skip()
|
||||
|
||||
def OnProjectToFit(self, event):
|
||||
@@ -303,8 +303,8 @@ class FitItem(SFItem.SFBrowserItem):
|
||||
sFit = Fit.getInstance()
|
||||
fitID = sFit.copyFit(self.fitID)
|
||||
self.shipBrowser.fitIDMustEditName = fitID
|
||||
wx.PostEvent(self.shipBrowser, Stage3Selected(shipID=self.shipID))
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=fitID))
|
||||
wx.PostEvent(self.shipBrowser, events.Stage3Selected(shipID=self.shipID))
|
||||
wx.PostEvent(self.mainFrame, events.FitSelected(fitID=fitID))
|
||||
|
||||
def renameBtnCB(self):
|
||||
if self.tcFitName.IsShown():
|
||||
@@ -327,7 +327,7 @@ class FitItem(SFItem.SFBrowserItem):
|
||||
if fitName:
|
||||
self.fitName = fitName
|
||||
sFit.renameFit(self.fitID, self.fitName)
|
||||
wx.PostEvent(self.mainFrame, FitRenamed(fitID=self.fitID))
|
||||
wx.PostEvent(self.mainFrame, events.FitRenamed(fitID=self.fitID))
|
||||
else:
|
||||
self.tcFitName.SetValue(self.fitName)
|
||||
|
||||
@@ -368,15 +368,15 @@ class FitItem(SFItem.SFBrowserItem):
|
||||
sFit.deleteFit(self.fitID)
|
||||
|
||||
# Notify other areas that a fit has been deleted
|
||||
wx.PostEvent(self.mainFrame, FitRemoved(fitID=self.fitID))
|
||||
wx.PostEvent(self.mainFrame, events.FitRemoved(fitID=self.fitID))
|
||||
|
||||
# todo: would a simple RefreshList() work here instead of posting that a stage has been selected?
|
||||
if self.shipBrowser.GetActiveStage() == 5:
|
||||
wx.PostEvent(self.shipBrowser, ImportSelected(fits=self.shipBrowser.lastdata))
|
||||
wx.PostEvent(self.shipBrowser, events.ImportSelected(fits=self.shipBrowser.lastdata))
|
||||
elif self.shipBrowser.GetActiveStage() == 4:
|
||||
wx.PostEvent(self.shipBrowser, SearchSelected(text=self.shipBrowser.navpanel.lastSearch, back=True))
|
||||
wx.PostEvent(self.shipBrowser, events.SearchSelected(text=self.shipBrowser.navpanel.lastSearch, back=True))
|
||||
else:
|
||||
wx.PostEvent(self.shipBrowser, Stage3Selected(shipID=self.shipID))
|
||||
wx.PostEvent(self.shipBrowser, events.Stage3Selected(shipID=self.shipID))
|
||||
|
||||
def MouseLeftUp(self, event):
|
||||
if self.dragging and self.dragged:
|
||||
@@ -432,9 +432,9 @@ class FitItem(SFItem.SFBrowserItem):
|
||||
|
||||
def selectFit(self, event=None, newTab=False):
|
||||
if newTab:
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=self.fitID, startup=2))
|
||||
wx.PostEvent(self.mainFrame, events.FitSelected(fitID=self.fitID, startup=2))
|
||||
else:
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=self.fitID))
|
||||
wx.PostEvent(self.mainFrame, events.FitSelected(fitID=self.fitID))
|
||||
|
||||
def RestoreEditButton(self):
|
||||
self.tcFitName.Show(False)
|
||||
|
||||
@@ -8,7 +8,7 @@ import gui.mainFrame
|
||||
import gui.utils.colorUtils as colorUtils
|
||||
import gui.utils.drawUtils as drawUtils
|
||||
import gui.utils.fonts as fonts
|
||||
from events import *
|
||||
import events
|
||||
from gui.bitmapLoader import BitmapLoader
|
||||
from service.fit import Fit
|
||||
|
||||
@@ -87,7 +87,7 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
realsearch = search.replace("*", "")
|
||||
if len(realsearch) >= 3:
|
||||
self.lastSearch = search
|
||||
wx.PostEvent(self.shipBrowser, SearchSelected(text=search, back=False))
|
||||
wx.PostEvent(self.shipBrowser, events.SearchSelected(text=search, back=False))
|
||||
|
||||
def ToggleSearchBox(self):
|
||||
if self.BrowserSearchBox.IsShown():
|
||||
@@ -122,7 +122,7 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
self.btnRecent.normalBmp = self.recentBmpD
|
||||
|
||||
if emitEvent:
|
||||
wx.PostEvent(self.shipBrowser, Stage1Selected())
|
||||
wx.PostEvent(self.shipBrowser, events.Stage1Selected())
|
||||
else:
|
||||
self.shipBrowser.recentFits = True
|
||||
self.btnRecent.label = "Hide Recent Fits"
|
||||
@@ -131,7 +131,7 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
if emitEvent:
|
||||
sFit = Fit.getInstance()
|
||||
fits = sFit.getRecentFits()
|
||||
wx.PostEvent(self.shipBrowser, ImportSelected(fits=fits, back=True, recent=True))
|
||||
wx.PostEvent(self.shipBrowser, events.ImportSelected(fits=fits, back=True, recent=True))
|
||||
|
||||
def ToggleEmptyGroupsView(self):
|
||||
if self.shipBrowser.filterShipsWithNoFits:
|
||||
@@ -146,10 +146,10 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
stage = self.shipBrowser.GetActiveStage()
|
||||
|
||||
if stage == 1:
|
||||
wx.PostEvent(self.shipBrowser, Stage1Selected())
|
||||
wx.PostEvent(self.shipBrowser, events.Stage1Selected())
|
||||
elif stage == 2:
|
||||
categoryID = self.shipBrowser.GetStageData(stage)
|
||||
wx.PostEvent(self.shipBrowser, Stage2Selected(categoryID=categoryID, back=True))
|
||||
wx.PostEvent(self.shipBrowser, events.Stage2Selected(categoryID=categoryID, back=True))
|
||||
|
||||
def ShowNewFitButton(self, show):
|
||||
self.btnNew.Show(show)
|
||||
@@ -167,8 +167,8 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
sFit = Fit.getInstance()
|
||||
fitID = sFit.newFit(shipID, "%s fit" % shipName)
|
||||
self.shipBrowser.fitIDMustEditName = fitID
|
||||
wx.PostEvent(self.Parent, Stage3Selected(shipID=shipID))
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=fitID))
|
||||
wx.PostEvent(self.Parent, events.Stage3Selected(shipID=shipID))
|
||||
wx.PostEvent(self.mainFrame, events.FitSelected(fitID=fitID))
|
||||
|
||||
def OnHistoryReset(self):
|
||||
self.ToggleRecentShips(False, False)
|
||||
@@ -259,16 +259,15 @@ class NavigationPanel(SFItem.SFBrowserItem):
|
||||
def gotoStage(self, stage, data=None):
|
||||
self.shipBrowser.recentFits = False
|
||||
if stage == 1:
|
||||
wx.PostEvent(self.Parent, Stage1Selected())
|
||||
wx.PostEvent(self.Parent, events.Stage1Selected())
|
||||
elif stage == 2:
|
||||
wx.PostEvent(self.Parent, Stage2Selected(categoryID=data, back=True))
|
||||
wx.PostEvent(self.Parent, events.Stage2Selected(categoryID=data, back=True))
|
||||
elif stage == 3:
|
||||
wx.PostEvent(self.Parent, Stage3Selected(shipID=data))
|
||||
wx.PostEvent(self.Parent, events.Stage3Selected(shipID=data))
|
||||
elif stage == 4:
|
||||
self.shipBrowser._activeStage = 4
|
||||
wx.PostEvent(self.Parent, SearchSelected(text=data, back=True))
|
||||
wx.PostEvent(self.Parent, events.SearchSelected(text=data, back=True))
|
||||
elif stage == 5:
|
||||
wx.PostEvent(self.Parent, ImportSelected(fits=data))
|
||||
wx.PostEvent(self.Parent, events.ImportSelected(fits=data))
|
||||
else:
|
||||
wx.PostEvent(self.Parent, Stage1Selected())
|
||||
|
||||
wx.PostEvent(self.Parent, events.Stage1Selected())
|
||||
|
||||
@@ -20,4 +20,4 @@ class PFStaticText(wx.Panel):
|
||||
|
||||
@staticmethod
|
||||
def GetType():
|
||||
return -1
|
||||
return -1
|
||||
|
||||
@@ -6,7 +6,7 @@ from logbook import Logger
|
||||
import gui.utils.animEffects as animEffects
|
||||
import gui.utils.colorUtils as colorUtils
|
||||
import gui.utils.drawUtils as drawUtils
|
||||
from events import *
|
||||
import events
|
||||
from gui.bitmapLoader import BitmapLoader
|
||||
|
||||
pyfalog = Logger(__name__)
|
||||
@@ -134,7 +134,7 @@ class RaceSelector(wx.Window):
|
||||
|
||||
if stage == 2:
|
||||
categoryID = self.shipBrowser.GetStageData(stage)
|
||||
wx.PostEvent(self.shipBrowser, Stage2Selected(categoryID=categoryID, back=True))
|
||||
wx.PostEvent(self.shipBrowser, events.Stage2Selected(categoryID=categoryID, back=True))
|
||||
event.Skip()
|
||||
|
||||
def HitTest(self, mx, my):
|
||||
@@ -268,4 +268,3 @@ class RaceSelector(wx.Window):
|
||||
self.checkMaximize = False
|
||||
|
||||
event.Skip()
|
||||
|
||||
|
||||
@@ -255,7 +255,6 @@ class SFBrowserItem(wx.Window):
|
||||
self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
|
||||
self.Bind(wx.EVT_KEY_UP, self.OnKeyUp)
|
||||
|
||||
|
||||
if "wxMSW" in wx.PlatformInfo:
|
||||
self.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDown)
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import gui.mainFrame
|
||||
import gui.utils.colorUtils as colorUtils
|
||||
import gui.utils.drawUtils as drawUtils
|
||||
import gui.utils.fonts as fonts
|
||||
from events import *
|
||||
import events
|
||||
from gui.bitmapLoader import BitmapLoader
|
||||
from gui.contextMenu import ContextMenu
|
||||
from service.fit import Fit
|
||||
@@ -147,7 +147,7 @@ class ShipItem(SFItem.SFBrowserItem):
|
||||
else:
|
||||
shipName, shipTrait, fittings = self.shipFittingInfo
|
||||
if fittings > 0:
|
||||
wx.PostEvent(self.shipBrowser, Stage3Selected(shipID=self.shipID, back=True))
|
||||
wx.PostEvent(self.shipBrowser, events.Stage3Selected(shipID=self.shipID, back=True))
|
||||
else:
|
||||
self.newBtnCB()
|
||||
|
||||
@@ -186,8 +186,8 @@ class ShipItem(SFItem.SFBrowserItem):
|
||||
sFit = Fit.getInstance()
|
||||
fitID = sFit.newFit(self.shipID, self.tcFitName.GetValue())
|
||||
|
||||
wx.PostEvent(self.shipBrowser, Stage3Selected(shipID=self.shipID, back=False))
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=fitID))
|
||||
wx.PostEvent(self.shipBrowser, events.Stage3Selected(shipID=self.shipID, back=False))
|
||||
wx.PostEvent(self.mainFrame, events.FitSelected(fitID=fitID))
|
||||
|
||||
def UpdateElementsPos(self, mdc):
|
||||
rect = self.GetRect()
|
||||
@@ -289,5 +289,3 @@ class ShipItem(SFItem.SFBrowserItem):
|
||||
else:
|
||||
editCtl.SetSize((self.editWidth, -1))
|
||||
editCtl.SetPosition((fnEditPosX, fnEditPosY))
|
||||
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ import gui.mainFrame
|
||||
from gui.builtinMarketBrowser.events import ItemSelected, ITEM_SELECTED
|
||||
import gui.display as d
|
||||
from gui.contextMenu import ContextMenu
|
||||
from gui.builtinShipBrowser.events import *
|
||||
import gui.builtinShipBrowser.events as sbEvents
|
||||
import gui.multiSwitch
|
||||
from eos.saveddata.mode import Mode
|
||||
from eos.saveddata.module import Module, Slot, Rack
|
||||
@@ -50,7 +50,7 @@ class FitSpawner(gui.multiSwitch.TabSpawner):
|
||||
def __init__(self, multiSwitch):
|
||||
self.multiSwitch = multiSwitch
|
||||
self.mainFrame = mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||
mainFrame.Bind(EVT_FIT_SELECTED, self.fitSelected)
|
||||
mainFrame.Bind(sbEvents.EVT_FIT_SELECTED, self.fitSelected)
|
||||
self.multiSwitch.tabsContainer.handleDrag = self.handleDrag
|
||||
|
||||
def fitSelected(self, event):
|
||||
@@ -138,8 +138,8 @@ class FittingView(d.Display):
|
||||
self.Show(False)
|
||||
self.parent = parent
|
||||
self.mainFrame.Bind(GE.FIT_CHANGED, self.fitChanged)
|
||||
self.mainFrame.Bind(EVT_FIT_RENAMED, self.fitRenamed)
|
||||
self.mainFrame.Bind(EVT_FIT_REMOVED, self.fitRemoved)
|
||||
self.mainFrame.Bind(sbEvents.EVT_FIT_RENAMED, self.fitRenamed)
|
||||
self.mainFrame.Bind(sbEvents.EVT_FIT_REMOVED, self.fitRemoved)
|
||||
self.mainFrame.Bind(ITEM_SELECTED, self.appendItem)
|
||||
|
||||
self.Bind(wx.EVT_LEFT_DCLICK, self.removeItem)
|
||||
@@ -210,13 +210,13 @@ class FittingView(d.Display):
|
||||
def handleDrag(self, type, fitID):
|
||||
# Those are drags coming from pyfa sources, NOT builtin wx drags
|
||||
if type == "fit":
|
||||
wx.PostEvent(self.mainFrame, FitSelected(fitID=fitID))
|
||||
wx.PostEvent(self.mainFrame, sbEvents.FitSelected(fitID=fitID))
|
||||
|
||||
def Destroy(self):
|
||||
self.parent.Unbind(EVT_NOTEBOOK_PAGE_CHANGED, handler=self.pageChanged)
|
||||
self.mainFrame.Unbind(GE.FIT_CHANGED, handler=self.fitChanged)
|
||||
self.mainFrame.Unbind(EVT_FIT_RENAMED, handler=self.fitRenamed)
|
||||
self.mainFrame.Unbind(EVT_FIT_REMOVED, handler=self.fitRemoved)
|
||||
self.mainFrame.Unbind(sbEvents.EVT_FIT_RENAMED, handler=self.fitRenamed)
|
||||
self.mainFrame.Unbind(sbEvents.EVT_FIT_REMOVED, handler=self.fitRemoved)
|
||||
self.mainFrame.Unbind(ITEM_SELECTED, handler=self.appendItem)
|
||||
|
||||
d.Display.Destroy(self)
|
||||
|
||||
Reference in New Issue
Block a user