infoPanelSearch.py (2879B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\infoPanels\infoPanelSearch.py 2 from carbonui import uiconst 3 from carbonui.control.singlelineedits.singleLineEditText import SingleLineEditText 4 from carbonui.uianimations import animations 5 from carbonui.uicore import uicore 6 from eve.client.script.ui.control.eveLoadingWheel import LoadingWheel 7 from eve.client.script.ui.shared.infoPanels.const import infoPanelConst 8 from eve.client.script.ui.shared.infoPanels.InfoPanelBase import InfoPanelBase 9 from eve.client.script.ui.shared.pointerTool.pointerToolConst import UNIQUE_NAME_SEARCH_INFO_PANEL 10 from eve.client.script.ui.util import searchUtil 11 from eve.common.script.search import const as search_const 12 from localization import GetByLabel 13 from uihider import UiHiderMixin 14 15 class InfoPanelSearch(UiHiderMixin, InfoPanelBase): 16 default_name = 'InfoPanelSearch' 17 uniqueUiName = UNIQUE_NAME_SEARCH_INFO_PANEL 18 panelTypeID = infoPanelConst.PANEL_SEARCH 19 label = 'UI/Search/SearchNewEden' 20 default_iconTexturePath = 'res:/UI/Texture/Classes/InfoPanels/search.png' 21 default_isModeFixed = True 22 hasSettings = False 23 __notifyevents__ = InfoPanelBase.__notifyevents__ + ['OnSetSearchBarFocus'] 24 25 def ApplyAttributes(self, attributes): 26 super(InfoPanelSearch, self).ApplyAttributes(attributes) 27 self.loadingWheel = LoadingWheel(parent=self.headerBtnCont, align=uiconst.CENTERRIGHT, pos=(6, 0, 16, 16), state=uiconst.UI_DISABLED, opacity=0.0) 28 self.searchEdit = SingleLineEditText(name='searchEdit', parent=self.headerCont, align=uiconst.TOALL, OnSetFocus=self.OnEditSetFocus, OnFocusLost=self.OnEditFocusLost, OnReturn=self.Search, width=0, padding=(0, 2, 0, 2), hintText=GetByLabel('UI/Search/SearchForAnything')) 29 self.searchEdit.ShowClearButton() 30 self.headerButton.Enable() 31 self.headerButton.OnClick = self.Search 32 33 def ConstructHeaderButton(self): 34 return self.ConstructSimpleHeaderButton() 35 36 def Search(self, *args): 37 text = self.searchEdit.text 38 if not text: 39 return 40 self.searchEdit.RegisterHistory() 41 duration = 0.15 42 animations.FadeIn(self.loadingWheel, duration=duration) 43 animations.FadeOut(self.headerButton, duration=duration) 44 try: 45 searchUtil.GetResultsInNewWindow(self.searchEdit.GetText(), search_const.all_result_types, includeUiElements=True) 46 finally: 47 animations.FadeOut(self.loadingWheel, duration=duration) 48 animations.FadeIn(self.headerButton, duration=duration) 49 50 def OnEditFocusLost(self, *args): 51 if not self.searchEdit.text: 52 self.searchEdit.Clear() 53 54 def OnEditSetFocus(self, *args): 55 self.searchEdit.Clear() 56 57 def OnSetSearchBarFocus(self): 58 uicore.registry.SetFocus(self.searchEdit)