📄 configreader.py
字号:
self.buffering_checkbox = wxCheckBox(panel, -1, "Enable read/write buffering *") self.buffering_checkbox.SetFont(self.default_font) self.buffering_checkbox.SetValue(self.config['buffer_reads']) self.breakup_checkbox = wxCheckBox(panel, -1, "Break-up seed bitfield to foil ISP manipulation") self.breakup_checkbox.SetFont(self.default_font) self.breakup_checkbox.SetValue(self.config['breakup_seed_bitfield']) self.autoflush_checkbox = wxCheckBox(panel, -1, "Flush data to disk every 5 minutes") self.autoflush_checkbox.SetFont(self.default_font) self.autoflush_checkbox.SetValue(self.config['auto_flush']) if sys.version_info >= (2,3) and socket.has_ipv6: self.ipv6enabled_checkbox = wxCheckBox(panel, -1, "Initiate and receive connections via IPv6 *") self.ipv6enabled_checkbox.SetFont(self.default_font) self.ipv6enabled_checkbox.SetValue(self.config['ipv6_enabled']) self.gui_forcegreenonfirewall_checkbox = wxCheckBox(panel, -1, "Force icon to display green when firewalled") self.gui_forcegreenonfirewall_checkbox.SetFont(self.default_font) self.gui_forcegreenonfirewall_checkbox.SetValue(self.config['gui_forcegreenonfirewall']) self.minport_data = wxSpinCtrl(panel, -1, '', (-1,-1), (self.FONT*8, -1)) self.minport_data.SetFont(self.default_font) self.minport_data.SetRange(1,65535) self.minport_data.SetValue(self.config['minport']) self.maxport_data = wxSpinCtrl(panel, -1, '', (-1,-1), (self.FONT*8, -1)) self.maxport_data.SetFont(self.default_font) self.maxport_data.SetRange(1,65535) self.maxport_data.SetValue(self.config['maxport']) self.randomport_checkbox = wxCheckBox(panel, -1, "randomize") self.randomport_checkbox.SetFont(self.default_font) self.randomport_checkbox.SetValue(self.config['random_port']) self.gui_font_data = wxSpinCtrl(panel, -1, '', (-1,-1), (self.FONT*5, -1)) self.gui_font_data.SetFont(self.default_font) self.gui_font_data.SetRange(8,16) self.gui_font_data.SetValue(self.config['gui_font']) self.gui_ratesettingsdefault_data=wxChoice(panel, -1, choices = ratesettingslist) self.gui_ratesettingsdefault_data.SetFont(self.default_font) self.gui_ratesettingsdefault_data.SetStringSelection(self.config['gui_ratesettingsdefault']) self.maxdownload_data = wxSpinCtrl(panel, -1, '', (-1,-1), (self.FONT*7, -1)) self.maxdownload_data.SetFont(self.default_font) self.maxdownload_data.SetRange(0,5000) self.maxdownload_data.SetValue(self.config['max_download_rate']) self.gui_ratesettingsmode_data=wxRadioBox(panel, -1, 'Rate Settings Mode', choices = [ 'none', 'basic', 'full' ] ) self.gui_ratesettingsmode_data.SetFont(self.default_font) self.gui_ratesettingsmode_data.SetStringSelection(self.config['gui_ratesettingsmode']) if (sys.platform == 'win32'): self.win32_taskbar_icon_checkbox = wxCheckBox(panel, -1, "Minimize to system tray") self.win32_taskbar_icon_checkbox.SetFont(self.default_font) self.win32_taskbar_icon_checkbox.SetValue(self.config['win32_taskbar_icon']) # self.upnp_checkbox = wxCheckBox(panel, -1, "Enable automatic UPnP port forwarding")# self.upnp_checkbox.SetFont(self.default_font)# self.upnp_checkbox.SetValue(self.config['upnp_nat_access']) self.upnp_data=wxChoice(panel, -1, choices = ['disabled', 'type 1 (fast)', 'type 2 (slow)']) self.upnp_data.SetFont(self.default_font) self.upnp_data.SetSelection(self.config['upnp_nat_access']) self.gui_default_savedir_ctrl = wxTextCtrl(parent = panel, id = -1, value = self.config['gui_default_savedir'], size = (26*self.FONT, -1), style = wxTE_PROCESS_TAB) self.gui_default_savedir_ctrl.SetFont(self.default_font) self.gui_savemode_data=wxRadioBox(panel, -1, 'Ask where to save: *', choices = [ 'always', 'never', 'auto-resume' ] ) self.gui_savemode_data.SetFont(self.default_font) self.gui_savemode_data.SetSelection(1-self.config['gui_saveas_ask']) self.checkingcolor_icon = wxEmptyBitmap(16,16) self.checkingcolor_iconptr = wxStaticBitmap(panel, -1, self.checkingcolor_icon) self.setColorIcon(self.checkingcolor_icon, self.checkingcolor_iconptr, self.checkingcolor) self.downloadcolor_icon = wxEmptyBitmap(16,16) self.downloadcolor_iconptr = wxStaticBitmap(panel, -1, self.downloadcolor_icon) self.setColorIcon(self.downloadcolor_icon, self.downloadcolor_iconptr, self.downloadcolor) self.seedingcolor_icon = wxEmptyBitmap(16,16) self.seedingcolor_iconptr = wxStaticBitmap(panel, -1, self.seedingcolor_icon) self.setColorIcon(self.seedingcolor_icon, self.downloadcolor_iconptr, self.seedingcolor) rowsizer = wxFlexGridSizer(cols = 2, hgap = 20) block12sizer = wxFlexGridSizer(cols = 1, vgap = 7) block1sizer = wxFlexGridSizer(cols = 1, vgap = 2) if (sys.platform == 'win32'): block1sizer.Add(self.win32_taskbar_icon_checkbox)# block1sizer.Add(self.upnp_checkbox) block1sizer.Add(self.gui_stretchwindow_checkbox) block1sizer.Add(self.gui_displaystats_checkbox) block1sizer.Add(self.gui_displaymiscstats_checkbox) block1sizer.Add(self.security_checkbox) block1sizer.Add(self.autokick_checkbox) block1sizer.Add(self.buffering_checkbox) block1sizer.Add(self.breakup_checkbox) block1sizer.Add(self.autoflush_checkbox) if sys.version_info >= (2,3) and socket.has_ipv6: block1sizer.Add(self.ipv6enabled_checkbox) block1sizer.Add(self.gui_forcegreenonfirewall_checkbox) block12sizer.Add(block1sizer) colorsizer = wxStaticBoxSizer(wxStaticBox(panel, -1, "Gauge Colors:"), wxVERTICAL) colorsizer1 = wxFlexGridSizer(cols = 7) colorsizer1.Add(StaticText(' Checking: '), 1, wxALIGN_BOTTOM) colorsizer1.Add(self.checkingcolor_iconptr, 1, wxALIGN_BOTTOM) colorsizer1.Add(StaticText(' Downloading: '), 1, wxALIGN_BOTTOM) colorsizer1.Add(self.downloadcolor_iconptr, 1, wxALIGN_BOTTOM) colorsizer1.Add(StaticText(' Seeding: '), 1, wxALIGN_BOTTOM) colorsizer1.Add(self.seedingcolor_iconptr, 1, wxALIGN_BOTTOM) colorsizer1.Add(StaticText(' ')) minsize = self.checkingcolor_iconptr.GetBestSize() minsize.SetHeight(minsize.GetHeight()+5) colorsizer1.SetMinSize(minsize) colorsizer.Add(colorsizer1) block12sizer.Add(colorsizer, 1, wxALIGN_LEFT) rowsizer.Add(block12sizer) block3sizer = wxFlexGridSizer(cols = 1) portsettingsSizer = wxStaticBoxSizer(wxStaticBox(panel, -1, "Port Range:*"), wxVERTICAL) portsettingsSizer1 = wxGridSizer(cols = 2, vgap = 1) portsettingsSizer1.Add(StaticText('From: '), 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT) portsettingsSizer1.Add(self.minport_data, 1, wxALIGN_BOTTOM) portsettingsSizer1.Add(StaticText('To: '), 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT) portsettingsSizer1.Add(self.maxport_data, 1, wxALIGN_BOTTOM) portsettingsSizer.Add(portsettingsSizer1) portsettingsSizer.Add(self.randomport_checkbox, 1, wxALIGN_CENTER) block3sizer.Add(portsettingsSizer, 1, wxALIGN_CENTER) block3sizer.Add(StaticText(' ')) block3sizer.Add(self.gui_ratesettingsmode_data, 1, wxALIGN_CENTER) block3sizer.Add(StaticText(' ')) ratesettingsSizer = wxFlexGridSizer(cols = 1, vgap = 2) ratesettingsSizer.Add(StaticText('Default Rate Setting: *'), 1, wxALIGN_CENTER) ratesettingsSizer.Add(self.gui_ratesettingsdefault_data, 1, wxALIGN_CENTER) block3sizer.Add(ratesettingsSizer, 1, wxALIGN_CENTER) if (sys.platform == 'win32'): block3sizer.Add(StaticText(' ')) upnpSizer = wxFlexGridSizer(cols = 1, vgap = 2) upnpSizer.Add(StaticText('UPnP Port Forwarding: *'), 1, wxALIGN_CENTER) upnpSizer.Add(self.upnp_data, 1, wxALIGN_CENTER) block3sizer.Add(upnpSizer, 1, wxALIGN_CENTER) rowsizer.Add(block3sizer) colsizer.Add(rowsizer) block4sizer = wxFlexGridSizer(cols = 3, hgap = 15) savepathsizer = wxFlexGridSizer(cols = 2, vgap = 1) savepathsizer.Add(StaticText('Default Save Path: *')) savepathsizer.Add(StaticText(' ')) savepathsizer.Add(self.gui_default_savedir_ctrl, 1, wxEXPAND) savepathButton = wxButton(panel, -1, '...', size = (18,18))# savepathButton.SetFont(self.default_font) savepathsizer.Add(savepathButton, 0, wxALIGN_CENTER) savepathsizer.Add(self.gui_savemode_data, 0, wxALIGN_CENTER) block4sizer.Add(savepathsizer, -1, wxALIGN_BOTTOM) fontsizer = wxFlexGridSizer(cols = 1, vgap = 2) fontsizer.Add(StaticText('')) fontsizer.Add(StaticText('Font: *'), 1, wxALIGN_CENTER) fontsizer.Add(self.gui_font_data, 1, wxALIGN_CENTER) block4sizer.Add(fontsizer, 1, wxALIGN_CENTER_VERTICAL) dratesettingsSizer = wxFlexGridSizer(cols = 1, vgap = 2) dratesettingsSizer.Add(StaticText('Default Max'), 1, wxALIGN_CENTER) dratesettingsSizer.Add(StaticText('Download Rate'), 1, wxALIGN_CENTER) dratesettingsSizer.Add(StaticText('(kB/s): *'), 1, wxALIGN_CENTER) dratesettingsSizer.Add(self.maxdownload_data, 1, wxALIGN_CENTER) dratesettingsSizer.Add(StaticText('(0 = disabled)'), 1, wxALIGN_CENTER) block4sizer.Add(dratesettingsSizer, 1, wxALIGN_CENTER_VERTICAL) colsizer.Add(block4sizer, 0, wxALIGN_CENTER)# colsizer.Add(StaticText(' ')) savesizer = wxGridSizer(cols = 4, hgap = 10) saveButton = wxButton(panel, -1, 'Save')# saveButton.SetFont(self.default_font) savesizer.Add(saveButton, 0, wxALIGN_CENTER) cancelButton = wxButton(panel, -1, 'Cancel')# cancelButton.SetFont(self.default_font) savesizer.Add(cancelButton, 0, wxALIGN_CENTER) defaultsButton = wxButton(panel, -1, 'Revert to Defaults')# defaultsButton.SetFont(self.default_font) savesizer.Add(defaultsButton, 0, wxALIGN_CENTER) advancedButton = wxButton(panel, -1, 'Advanced...')# advancedButton.SetFont(self.default_font) savesizer.Add(advancedButton, 0, wxALIGN_CENTER) colsizer.Add(savesizer, 1, wxALIGN_CENTER) resizewarningtext=StaticText('* These settings will not take effect until the next time you start BitTorrent', self.FONT-2) colsizer.Add(resizewarningtext, 1, wxALIGN_CENTER) border = wxBoxSizer(wxHORIZONTAL) border.Add(colsizer, 1, wxEXPAND | wxALL, 4) panel.SetSizer(border) panel.SetAutoLayout(True) self.advancedConfig = {} def setDefaults(evt, self = self): try: self.minport_data.SetValue(self.defaults['minport']) self.maxport_data.SetValue(self.defaults['maxport']) self.randomport_checkbox.SetValue(self.defaults['random_port']) self.gui_stretchwindow_checkbox.SetValue(self.defaults['gui_stretchwindow']) self.gui_displaystats_checkbox.SetValue(self.defaults['gui_displaystats']) self.gui_displaymiscstats_checkbox.SetValue(self.defaults['gui_displaymiscstats']) self.security_checkbox.SetValue(self.defaults['security']) self.autokick_checkbox.SetValue(self.defaults['auto_kick']) self.buffering_checkbox.SetValue(self.defaults['buffer_reads']) self.breakup_checkbox.SetValue(self.defaults['breakup_seed_bitfield']) self.autoflush_checkbox.SetValue(self.defaults['auto_flush']) if sys.version_info >= (2,3) and socket.has_ipv6: self.ipv6enabled_checkbox.SetValue(self.defaults['ipv6_enabled']) self.gui_forcegreenonfirewall_checkbox.SetValue(self.defaults['gui_forcegreenonfirewall']) self.gui_font_data.SetValue(self.defaults['gui_font']) self.gui_ratesettingsdefault_data.SetStringSelection(self.defaults['gui_ratesettingsdefault']) self.maxdownload_data.SetValue(self.defaults['max_download_rate']) self.gui_ratesettingsmode_data.SetStringSelection(self.defaults['gui_ratesettingsmode']) self.gui_default_savedir_ctrl.SetValue(self.defaults['gui_default_savedir']) self.gui_savemode_data.SetSelection(1-self.defaults['gui_saveas_ask']) self.checkingcolor = HexToColor(self.defaults['gui_checkingcolor']) self.setColorIcon(self.checkingcolor_icon, self.checkingcolor_iconptr, self.checkingcolor) self.downloadcolor = HexToColor(self.defaults['gui_downloadcolor']) self.setColorIcon(self.downloadcolor_icon, self.downloadcolor_iconptr, self.downloadcolor) self.seedingcolor = HexToColor(self.defaults['gui_seedingcolor']) self.setColorIcon(self.seedingcolor_icon, self.seedingcolor_iconptr, self.seedingcolor) if (sys.platform == 'win32'): self.win32_taskbar_icon_checkbox.SetValue(self.defaults['win32_taskbar_icon'])# self.upnp_checkbox.SetValue(self.defaults['upnp_nat_access']) self.upnp_data.SetSelection(self.defaults['upnp_nat_access']) # reset advanced too self.advancedConfig = {} for key in ['ip', 'bind', 'min_peers', 'max_initiate', 'display_interval', 'alloc_type', 'alloc_rate', 'max_files_open', 'max_connections', 'super_seeder', 'ipv6_binds_v4', 'double_check', 'triple_check', 'lock_files', 'lock_while_reading', 'expire_cache_data']: self.advancedConfig[key] = self.defaults[key] self.CloseAdvanced() except: self.parent.exception() def saveConfigs(evt, self = self): try: self.config['gui_stretchwindow']=int(self.gui_stretchwindow_checkbox.GetValue())
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -