📄 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 + -