From 9cbdc6055d5816185e181314c218cc28b20be571 Mon Sep 17 00:00:00 2001 From: DarkPhoenix Date: Fri, 10 Apr 2020 11:52:57 +0300 Subject: [PATCH] Add search timer to attribute overrides to prevent hangs --- gui/builtinMarketBrowser/itemView.py | 6 +++--- gui/propertyEditor.py | 11 ++++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gui/builtinMarketBrowser/itemView.py b/gui/builtinMarketBrowser/itemView.py index 00f76b6fa..67253c28f 100644 --- a/gui/builtinMarketBrowser/itemView.py +++ b/gui/builtinMarketBrowser/itemView.py @@ -1,15 +1,15 @@ import wx from logbook import Logger -from eos.saveddata.module import Module import gui.builtinMarketBrowser.pfSearchBox as SBox +from config import slotColourMap +from eos.saveddata.module import Module from gui.builtinMarketBrowser.events import ItemSelected, RECENTLY_USED_MODULES from gui.contextMenu import ContextMenu from gui.display import Display from gui.utils.staticHelpers import DragDropHelper -from service.attribute import Attribute from service.fit import Fit -from config import slotColourMap + pyfalog = Logger(__name__) diff --git a/gui/propertyEditor.py b/gui/propertyEditor.py index 18bb4e6fc..6847bb86c 100644 --- a/gui/propertyEditor.py +++ b/gui/propertyEditor.py @@ -13,6 +13,7 @@ from eos.db.gamedata.queries import getAttributeInfo, getItem from gui.auxFrame import AuxiliaryFrame from gui.bitmap_loader import BitmapLoader from gui.marketBrowser import SearchBox +from service.fit import Fit from service.market import Market @@ -170,12 +171,15 @@ class ItemView(d.Display): d.Display.__init__(self, parent) self.activeItems = [] + self.searchTimer = wx.Timer(self) + self.Bind(wx.EVT_TIMER, self.scheduleSearch, self.searchTimer) + self.searchBox = parent.Parent.Parent.searchBox # Bind search actions self.searchBox.Bind(SBox.EVT_TEXT_ENTER, self.scheduleSearch) self.searchBox.Bind(SBox.EVT_SEARCH_BTN, self.scheduleSearch) self.searchBox.Bind(SBox.EVT_CANCEL_BTN, self.clearSearch) - self.searchBox.Bind(SBox.EVT_TEXT, self.scheduleSearch) + self.searchBox.Bind(SBox.EVT_TEXT, self.delaySearch) self.update(Market.getInstance().getItemsWithOverrides()) @@ -188,6 +192,11 @@ class ItemView(d.Display): if updateDisplay: self.update(Market.getInstance().getItemsWithOverrides()) + def delaySearch(self, evt): + sFit = Fit.getInstance() + self.searchTimer.Stop() + self.searchTimer.Start(sFit.serviceFittingOptions["marketSearchDelay"], True) + def scheduleSearch(self, event=None): sMkt = Market.getInstance()