NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

cleanupSkyhookEntryController.py (3231B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\sov\sovHub\skyhooksCleanup\cleanupSkyhookEntryController.py
      2 from carbonui import TextColor
      3 from clientsettings.setting import SessionSettingBool
      4 from eveexceptions import ExceptionEater
      5 from localization import GetByLabel
      6 import orbitalSkyhook.const as reinforceConst
      7 from signals import Signal
      8 from signals.signalUtil import ConnectSignals, DisconnectSignals
      9 from eve.client.script.ui import eveThemeColor
     10 MODE_ACQUIRE = 1
     11 MODE_DESTROY = 2
     12 
     13 class CleanupSkyhookEntryController(object):
     14 
     15     def __init__(self, slimItem, wndContoller):
     16         self._slimItem = slimItem
     17         self._wndContoller = wndContoller
     18         self._transitionMode = MODE_ACQUIRE
     19         self._processedValue = None
     20         self.checkedSettings = SessionSettingBool(True)
     21         self.on_entry_updated = Signal(signalName='on_entry_updated')
     22         self.on_mode_updated = Signal(signalName='on_mode_updated')
     23         signalsAndCallbacks = self.GetSignalsAndCallbacks()
     24         ConnectSignals(signalsAndCallbacks)
     25 
     26     def GetSignalsAndCallbacks(self):
     27         return [(self.checkedSettings.on_change, self.OnCheckboxChanged)]
     28 
     29     @property
     30     def itemID(self):
     31         return self._slimItem.itemID
     32 
     33     @property
     34     def typeID(self):
     35         return self._slimItem.typeID
     36 
     37     @property
     38     def locationText(self):
     39         return cfg.evelocations.Get(self._slimItem.planetID).name
     40 
     41     @property
     42     def ownerText(self):
     43         return cfg.eveowners.Get(self._slimItem.ownerID).name
     44 
     45     @property
     46     def processedValue(self):
     47         return self._processedValue
     48 
     49     @processedValue.setter
     50     def processedValue(self, value):
     51         self._processedValue = value
     52 
     53     @property
     54     def statusText(self):
     55         skyhookState = self._slimItem.skyhook_state
     56         labelPath = reinforceConst.STATE_LABELS.get(skyhookState, 'UI/Generic/Unknown')
     57         return GetByLabel(labelPath)
     58 
     59     @property
     60     def statusColor(self):
     61         skyhookState = self._slimItem.skyhook_state
     62         if skyhookState in [reinforceConst.STATE_ARMOR_REINFORCE, reinforceConst.STATE_HULL_REINFORCE]:
     63             return eveThemeColor.THEME_ALERT
     64         else:
     65             return TextColor.NORMAL
     66 
     67     def OnCheckboxChanged(self, *args):
     68         self.on_entry_updated()
     69 
     70     def OnEntryClicked(self):
     71         self.checkedSettings.toggle()
     72 
     73     def IsChecked(self):
     74         return self.checkedSettings.is_enabled()
     75 
     76     def IsInAcquireMode(self):
     77         return self._transitionMode == MODE_ACQUIRE
     78 
     79     def IsInDestroyMode(self):
     80         return self._transitionMode == MODE_DESTROY
     81 
     82     def IsProcessed(self):
     83         return bool(self._processedValue)
     84 
     85     def SetTransitMode(self, transitMode):
     86         self._transitionMode = transitMode
     87         self.on_mode_updated()
     88 
     89     def SetCheckedValue(self, newValue):
     90         if self.checkedSettings.get() == newValue:
     91             return
     92         self.checkedSettings.toggle()
     93 
     94     def __del__(self):
     95         with ExceptionEater('Deleting CleanupSkyhookEntryController'):
     96             signalsAndCallbacks = self.GetSignalsAndCallbacks()
     97             DisconnectSignals(signalsAndCallbacks)
     98             self._wndContoller = None