achievement_info.py (3005B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\ui\chip\achievement_info.py 2 import threadutils 3 from carbonui import uiconst 4 from carbonui.primitives.containerAutoSize import ContainerAutoSize 5 6 class AchievementInfoChips(ContainerAutoSize): 7 default_height = 18 8 default_display = False 9 10 def __init__(self, character_id, display_title = True, display_score = True, *args, **kwargs): 11 super(AchievementInfoChips, self).__init__(*args, **kwargs) 12 self._character_id = character_id 13 self.display_title = display_title 14 self.display_score = display_score 15 self.title_chip = None 16 self.score_chip = None 17 self.update() 18 self.connect_signals() 19 20 def Close(self): 21 try: 22 self.disconnect_signals() 23 finally: 24 super(AchievementInfoChips, self).Close() 25 26 def connect_signals(self): 27 pass 28 29 def disconnect_signals(self): 30 pass 31 32 @property 33 def character_id(self): 34 return self._character_id 35 36 @character_id.setter 37 def character_id(self, character_id): 38 self._character_id = character_id 39 self.update() 40 41 @threadutils.highlander_threaded 42 def update(self, animate = True): 43 self.clear() 44 if not self.character_id: 45 return 46 self.update_character_title(animate) 47 self.update_achievement_score(animate) 48 49 def clear(self): 50 self.Flush() 51 self.display = False 52 self.title_chip = None 53 self.score_chip = None 54 55 def update_character_title(self, animate): 56 if not self.display_title: 57 return 58 self.display = True 59 from achievement_system.client.ui.chip.character_title import CharacterTitleChip 60 self.title_chip = CharacterTitleChip(name='character_title_chip', parent=self, align=uiconst.TOLEFT, character_id=self._character_id, animate=animate, padRight=8) 61 self.title_chip.on_update.connect(self.on_title_update) 62 63 def update_achievement_score(self, animate): 64 if not self.display_score: 65 return 66 self.display = True 67 from achievement_system.client.ui.chip.achievement_score import AchievementScoreChip 68 self.score_chip = AchievementScoreChip(name='achievement_score_chip', parent=self, align=uiconst.TOLEFT, character_id=self._character_id, animate=animate) 69 self.score_chip.on_update.connect(self.on_score_update) 70 71 def on_title_update(self): 72 self.update_display() 73 74 def on_score_update(self): 75 self.update_display() 76 77 def update_display(self): 78 has_title = self.title_chip and self.title_chip.display 79 has_score = self.score_chip and self.score_chip.display 80 if not self.display_title: 81 self.display = has_score 82 return 83 if not self.display_score: 84 self.display = has_title 85 return 86 self.display = has_title or has_score