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

overviewSettingsWnd.py (6635B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\overviewSettings\overviewSettingsWnd.py
      2 import localization
      3 import overviewPresets.overviewSettingsConst as oConst
      4 from carbonui import uiconst
      5 from carbonui.control.window import Window
      6 from carbonui.primitives.container import Container
      7 from carbonui.util.various_unsorted import SortListOfTuples
      8 from eve.client.script.ui.control.draggableShareContainer import DraggableShareContainer
      9 from carbonui.control.tabGroup import TabGroup
     10 from eve.client.script.ui.inflight.overviewSettings.appearancePanel import AppearancePanel
     11 from eve.client.script.ui.inflight.overviewSettings.columnsPanel import ColumnsPanel
     12 from eve.client.script.ui.inflight.overviewSettings.historyPanel import HistoryPanel
     13 from eve.client.script.ui.inflight.overviewSettings.miscPanel import MiscPanel
     14 from eve.client.script.ui.inflight.overviewSettings.shipsPanel import ShipsPanel
     15 from eve.client.script.ui.inflight.overviewSettings.tabPresetsPanel import TabPresetPanel
     16 from eve.client.script.ui.inflight.overviewSettings.tabsPanel import TabsPanel
     17 from localization import GetByLabel
     18 from menu import MenuLabel
     19 
     20 class OverviewSettingsWnd(Window):
     21     __guid__ = 'form.OverviewSettings'
     22     __notifyevents__ = ['OnOverviewPresetLoaded', 'OnOverviewTabsReconstructed', 'OnReloadingOverviewProfile']
     23     default_windowID = 'overviewsettings'
     24     default_captionLabelPath = 'UI/Overview/OverviewSettings'
     25     default_height = 600
     26     default_width = 520
     27     default_minSize = (520, 500)
     28     default_scope = uiconst.SCOPE_INFLIGHT
     29 
     30     def ApplyAttributes(self, attributes):
     31         super(OverviewSettingsWnd, self).ApplyAttributes(attributes)
     32         self.overviewPresetSvc = sm.GetService('overviewPresetSvc')
     33         presetName = attributes.get('presetName', None)
     34         self.topParent = Container(name='topParent', parent=self.sr.maincontainer, align=uiconst.TOTOP, height=52, clipChildren=True, idx=self.sr.main.GetOrder())
     35         self.AddDraggableCont()
     36         self.settingCheckboxes = []
     37         self.tabsPanel = TabsPanel(parent=self.sr.main)
     38         self.appearancePanel = AppearancePanel(parent=self.sr.main)
     39         self.shipsPanel = ShipsPanel(parent=self.sr.main)
     40         self.miscPanel = MiscPanel(parent=self.sr.main)
     41         self.tabPresetPanel = TabPresetPanel(parent=self.sr.main)
     42         self.columnsPanel = ColumnsPanel(parent=self.sr.main)
     43         self.historyPanel = HistoryPanel(parent=self.sr.main)
     44         self.Maximize()
     45         self.state = uiconst.UI_NORMAL
     46         settingsTabs = [[GetByLabel('UI/Overview/Tabs'),
     47           self.tabsPanel,
     48           self,
     49           oConst.TAB_TABS,
     50           None],
     51          [GetByLabel('UI/Overview/Filters'),
     52           self.tabPresetPanel,
     53           self,
     54           oConst.TAB_FILTERS,
     55           None],
     56          [GetByLabel('UI/Generic/Appearance'),
     57           self.appearancePanel,
     58           self,
     59           oConst.TAB_APPEARANCE,
     60           None],
     61          [GetByLabel('UI/Common/ItemTypes/Ships'),
     62           self.shipsPanel,
     63           self,
     64           oConst.TAB_SHIPS,
     65           None],
     66          [GetByLabel('UI/Generic/Misc'),
     67           self.miscPanel,
     68           self,
     69           oConst.TAB_MISC,
     70           None],
     71          [GetByLabel('UI/Overview/ProfileHistory'),
     72           self.historyPanel,
     73           self,
     74           oConst.TAB_HISTORY,
     75           None]]
     76         self.tabGroup = TabGroup(name='overviewsettingsTab', height=18, align=uiconst.TOTOP, parent=self.sr.main, idx=0, tabs=settingsTabs, groupID='overviewsettingsTab', UIIDPrefix='overviewSettingsTab', autoSelect=False)
     77         if presetName:
     78             self.EditPreset(presetName)
     79         else:
     80             self.tabGroup.AutoSelect()
     81 
     82     def EditPreset(self, presetName):
     83         self.tabGroup.SelectByID(oConst.TAB_FILTERS)
     84         self.tabPresetPanel.LoadPreset(presetName)
     85 
     86     def AddDraggableCont(self):
     87         currentText = self.overviewPresetSvc.GetOverviewName()
     88         defaultText = localization.GetByLabel('UI/Overview/DefaultOverviewName', charID=session.charid)
     89         configName = 'overviewProfileName'
     90         shareContainer = DraggableShareContainer(parent=self.topParent, currentText=currentText, defaultText=defaultText, configName=configName, getDragDataFunc=self.overviewPresetSvc.GetShareData, hintText=localization.GetByLabel('UI/Overview/SharableOverviewIconHint'))
     91         self.overviewNameEdit = shareContainer.sharedNameLabel
     92         self.topParent.height = self.overviewNameEdit.height + 10
     93 
     94     def RefreshOverviewName(self):
     95         currentText = self.overviewPresetSvc.GetOverviewName()
     96         self.overviewNameEdit.SetValue(currentText)
     97         self.overviewNameEdit.OnEditFieldChanged()
     98 
     99     def OnOverviewPresetLoaded(self, label, preset):
    100         self.tabsPanel.RefreshOverviewTab()
    101 
    102     def ExportSettings(self, *args):
    103         pass
    104 
    105     def GetMenuMoreOptions(self):
    106         menuData = super(OverviewSettingsWnd, self).GetMenuMoreOptions()
    107         menuData += self.GetPresetsMenu()
    108         return menuData
    109 
    110     def GetPresetsMenu(self):
    111         p = self.overviewPresetSvc.GetAllPresets().keys()
    112         p.sort()
    113         for name in self.overviewPresetSvc.GetDefaultOverviewPresetNames():
    114             if name in p:
    115                 p.remove(name)
    116 
    117         m = []
    118         m += [None, (MenuLabel('UI/Commands/ExportOverviewSettings'), sm.GetService('tactical').ExportOverviewSettings), (MenuLabel('UI/Overview/ImportOverviewSettings'), sm.GetService('tactical').ImportOverviewSettings)]
    119         dm = []
    120         for label in p:
    121             if self.overviewPresetSvc.IsUnsavedPreset(label):
    122                 continue
    123             dm.append((label.lower(), (label, self.overviewPresetSvc.DeletePreset, (label,))))
    124 
    125         if dm:
    126             m.append(None)
    127             dm = SortListOfTuples(dm)
    128             m.append((MenuLabel('UI/Common/Delete'), dm))
    129         return m
    130 
    131     def Load(self, key):
    132         if key == oConst.TAB_COLUMNS:
    133             self.columnsPanel.LoadColumns()
    134         elif key == oConst.TAB_APPEARANCE:
    135             self.appearancePanel.AutoSelectTab()
    136         elif key == oConst.TAB_SHIPS:
    137             self.shipsPanel.LoadShips()
    138         elif key in (oConst.TAB_MISC, oConst.TAB_TABS):
    139             pass
    140         elif key == oConst.TAB_HISTORY:
    141             self.historyPanel.LoadHistory()
    142 
    143     def OnOverviewTabsReconstructed(self):
    144         sm.GetService('bracket').UpdateLabels()
    145         self.tabsPanel.RefreshOverviewTab()
    146 
    147     def OnReloadingOverviewProfile(self):
    148         self.RefreshOverviewName()
    149         self.historyPanel.LoadHistory()
    150         self.tabGroup.AutoSelect()