~ubuntu-branches/ubuntu/precise/bittornado/precise

« back to all changes in this revision

Viewing changes to BitTornado/ConfigReader.py

  • Committer: Barry Warsaw
  • Date: 2011-08-10 23:17:46 UTC
  • mfrom: (7.1.1 bittornado)
  • Revision ID: barry@python.org-20110810231746-5buiob6p54m266s8
Tags: 0.3.18-10ubuntu2
* switch to dh_python2 (LP: #788514)
  - install btmakemetafile.py and btcompletedir.py via pyinstall
  - add build depend on python-all
  - bump debhelper depend to 7 for dh_auto_install

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#written by John Hoffman
2
2
 
3
3
from ConnChoice import *
4
 
from wxPython.wx import *
 
4
import wx
5
5
from types import IntType, FloatType, StringType
6
6
from download_bt1 import defaults
7
7
from ConfigDir import ConfigDir
16
16
    True = 1
17
17
    False = 0
18
18
    
19
 
try:
20
 
    wxFULL_REPAINT_ON_RESIZE
21
 
except:
22
 
    wxFULL_REPAINT_ON_RESIZE = 0        # fix for wx pre-2.5
23
 
 
24
19
if (sys.platform == 'win32'):
25
20
    _FONT = 9
26
21
else:
28
23
 
29
24
def HexToColor(s):
30
25
    r,g,b = s.split(' ')
31
 
    return wxColour(red=int(r,16), green=int(g,16), blue=int(b,16))
 
26
    return wx.Colour(red=int(r,16), green=int(g,16), blue=int(b,16))
32
27
    
33
28
def hex2(c):
34
29
    h = hex(c)[2:]
71
66
]
72
67
 
73
68
def setwxconfigfiledefaults():
74
 
    CHECKINGCOLOR = ColorToHex(wxSystemSettings_GetColour(wxSYS_COLOUR_3DSHADOW))        
75
 
    DOWNLOADCOLOR = ColorToHex(wxSystemSettings_GetColour(wxSYS_COLOUR_ACTIVECAPTION))
 
69
    CHECKINGCOLOR = ColorToHex(wx.SystemSettings_GetColour(wx.SYS_COLOUR_3DSHADOW))
 
70
    DOWNLOADCOLOR = ColorToHex(wx.SystemSettings_GetColour(wx.SYS_COLOUR_ACTIVECAPTION))
76
71
    
77
72
    configFileDefaults.extend([
78
73
        ('gui_checkingcolor', CHECKINGCOLOR,
89
84
class configReader:
90
85
 
91
86
    def __init__(self):
92
 
        self.configfile = wxConfig("BitTorrent",style=wxCONFIG_USE_LOCAL_FILE)
 
87
        self.configfile = wx.Config("BitTorrent",style=wx.CONFIG_USE_LOCAL_FILE)
93
88
        self.configMenuBox = None
94
89
        self.advancedMenuBox = None
95
90
        self.cryptoMenuBox = None
133
128
 
134
129
 
135
130
    def importOldGUIConfig(self):
136
 
        oldconfig = wxConfig("BitTorrent",style=wxCONFIG_USE_LOCAL_FILE)
 
131
        oldconfig = wx.Config("BitTorrent",style=wx.CONFIG_USE_LOCAL_FILE)
137
132
        cont, s, i = oldconfig.GetFirstEntry()
138
133
        if not cont:
139
134
            oldconfig.DeleteAll()
195
190
        return self.configDir.getTorrentData(t)
196
191
 
197
192
    def setColorIcon(self, xxicon, xxiconptr, xxcolor):
198
 
        idata = wxMemoryDC()
 
193
        idata = wx.MemoryDC()
199
194
        idata.SelectObject(xxicon)
200
 
        idata.SetBrush(wxBrush(xxcolor,wxSOLID))
 
195
        idata.SetBrush(wx.Brush(xxcolor,wx.SOLID))
201
196
        idata.DrawRectangle(0,0,16,16)
202
 
        idata.SelectObject(wxNullBitmap)
 
197
        idata.SelectObject(wx.NullBitmap)
203
198
        xxiconptr.Refresh()
204
199
 
205
200
 
206
201
    def getColorFromUser(self, parent, colInit):
207
 
        data = wxColourData()
 
202
        data = wx.ColourData()
208
203
        if colInit.Ok():
209
204
            data.SetColour(colInit)
210
205
        data.SetCustomColour(0, self.checkingcolor)
211
206
        data.SetCustomColour(1, self.downloadcolor)
212
207
        data.SetCustomColour(2, self.seedingcolor)
213
 
        dlg = wxColourDialog(parent,data)
 
208
        dlg = wx.ColourDialog(parent,data)
214
209
        if not dlg.ShowModal():
215
210
            return colInit
216
211
        return dlg.GetColourData().GetColour()
220
215
      self.parent = parent
221
216
      try:
222
217
        self.FONT = self.config['gui_font']
223
 
        self.default_font = wxFont(self.FONT, wxDEFAULT, wxNORMAL, wxNORMAL, False)
 
218
        self.default_font = wx.Font(self.FONT, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False)
224
219
        self.checkingcolor = HexToColor(self.config['gui_checkingcolor'])
225
220
        self.downloadcolor = HexToColor(self.config['gui_downloadcolor'])
226
221
        self.seedingcolor = HexToColor(self.config['gui_seedingcolor'])
228
223
        if (self.configMenuBox is not None):
229
224
            try:
230
225
                self.configMenuBox.Close()
231
 
            except wxPyDeadObjectError, e:
 
226
            except wx.PyDeadObjectError, e:
232
227
                self.configMenuBox = None
233
228
 
234
 
        self.configMenuBox = wxFrame(None, -1, 'BitTornado Preferences', size = (1,1),
235
 
                            style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE)
 
229
        self.configMenuBox = wx.Frame(None, -1, 'BitTornado Preferences', size = (1,1),
 
230
                            style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE)
236
231
        if (sys.platform == 'win32'):
237
232
            self.icon = self.parent.icon
238
233
            self.configMenuBox.SetIcon(self.icon)
239
234
 
240
 
        panel = wxPanel(self.configMenuBox, -1)
 
235
        panel = wx.Panel(self.configMenuBox, -1)
241
236
        self.panel = panel
242
237
 
243
238
        def StaticText(text, font = self.FONT, underline = False, color = None, panel = panel):
244
 
            x = wxStaticText(panel, -1, text, style = wxALIGN_LEFT)
245
 
            x.SetFont(wxFont(font, wxDEFAULT, wxNORMAL, wxNORMAL, underline))
 
239
            x = wx.StaticText(panel, -1, text, style = wx.ALIGN_LEFT)
 
240
            x.SetFont(wx.Font(font, wx.DEFAULT, wx.NORMAL, wx.NORMAL, underline))
246
241
            if color is not None:
247
242
                x.SetForegroundColour(color)
248
243
            return x
249
244
 
250
 
        colsizer = wxFlexGridSizer(cols = 1, vgap = 8)
 
245
        colsizer = wx.FlexGridSizer(cols = 1, vgap = 8)
251
246
 
252
 
        self.gui_stretchwindow_checkbox = wxCheckBox(panel, -1, "Stretch window to fit torrent name *")
 
247
        self.gui_stretchwindow_checkbox = wx.CheckBox(panel, -1, "Stretch window to fit torrent name *")
253
248
        self.gui_stretchwindow_checkbox.SetFont(self.default_font)
254
249
        self.gui_stretchwindow_checkbox.SetValue(self.config['gui_stretchwindow'])
255
250
 
256
 
        self.gui_displaystats_checkbox = wxCheckBox(panel, -1, "Display peer and seed statistics")
 
251
        self.gui_displaystats_checkbox = wx.CheckBox(panel, -1, "Display peer and seed statistics")
257
252
        self.gui_displaystats_checkbox.SetFont(self.default_font)
258
253
        self.gui_displaystats_checkbox.SetValue(self.config['gui_displaystats'])
259
254
 
260
 
        self.gui_displaymiscstats_checkbox = wxCheckBox(panel, -1, "Display miscellaneous other statistics")
 
255
        self.gui_displaymiscstats_checkbox = wx.CheckBox(panel, -1, "Display miscellaneous other statistics")
261
256
        self.gui_displaymiscstats_checkbox.SetFont(self.default_font)
262
257
        self.gui_displaymiscstats_checkbox.SetValue(self.config['gui_displaymiscstats'])
263
258
 
264
 
        self.buffering_checkbox = wxCheckBox(panel, -1, "Enable read/write buffering *")
 
259
        self.buffering_checkbox = wx.CheckBox(panel, -1, "Enable read/write buffering *")
265
260
        self.buffering_checkbox.SetFont(self.default_font)
266
261
        self.buffering_checkbox.SetValue(self.config['buffer_reads'])
267
262
 
268
 
        self.breakup_checkbox = wxCheckBox(panel, -1, "Break-up seed bitfield to foil ISP manipulation")
 
263
        self.breakup_checkbox = wx.CheckBox(panel, -1, "Break-up seed bitfield to foil ISP manipulation")
269
264
        self.breakup_checkbox.SetFont(self.default_font)
270
265
        self.breakup_checkbox.SetValue(self.config['breakup_seed_bitfield'])
271
266
 
272
 
        self.autoflush_checkbox = wxCheckBox(panel, -1, "Flush data to disk every 5 minutes")
 
267
        self.autoflush_checkbox = wx.CheckBox(panel, -1, "Flush data to disk every 5 minutes")
273
268
        self.autoflush_checkbox.SetFont(self.default_font)
274
269
        self.autoflush_checkbox.SetValue(self.config['auto_flush'])
275
270
 
276
271
        if sys.version_info >= (2,3) and socket.has_ipv6:
277
 
            self.ipv6enabled_checkbox = wxCheckBox(panel, -1, "Initiate and receive connections via IPv6 *")
 
272
            self.ipv6enabled_checkbox = wx.CheckBox(panel, -1, "Initiate and receive connections via IPv6 *")
278
273
            self.ipv6enabled_checkbox.SetFont(self.default_font)
279
274
            self.ipv6enabled_checkbox.SetValue(self.config['ipv6_enabled'])
280
275
 
281
 
        self.gui_forcegreenonfirewall_checkbox = wxCheckBox(panel, -1,
 
276
        self.gui_forcegreenonfirewall_checkbox = wx.CheckBox(panel, -1,
282
277
                            "Force icon to display green when firewalled")
283
278
        self.gui_forcegreenonfirewall_checkbox.SetFont(self.default_font)
284
279
        self.gui_forcegreenonfirewall_checkbox.SetValue(self.config['gui_forcegreenonfirewall'])
285
280
 
286
 
        cryptoButton = wxButton(panel, -1, 'Encryption/Security Settings...')
 
281
        cryptoButton = wx.Button(panel, -1, 'Encryption/Security Settings...')
287
282
 
288
 
        self.minport_data = wxSpinCtrl(panel, -1, '', (-1,-1), (self.FONT*8, -1))
 
283
        self.minport_data = wx.SpinCtrl(panel, -1, '', (-1,-1), (self.FONT*8, -1))
289
284
        self.minport_data.SetFont(self.default_font)
290
285
        self.minport_data.SetRange(1,65535)
291
286
        self.minport_data.SetValue(self.config['minport'])
292
287
 
293
 
        self.maxport_data = wxSpinCtrl(panel, -1, '', (-1,-1), (self.FONT*8, -1))
 
288
        self.maxport_data = wx.SpinCtrl(panel, -1, '', (-1,-1), (self.FONT*8, -1))
294
289
        self.maxport_data.SetFont(self.default_font)
295
290
        self.maxport_data.SetRange(1,65535)
296
291
        self.maxport_data.SetValue(self.config['maxport'])
297
292
        
298
 
        self.randomport_checkbox = wxCheckBox(panel, -1, "randomize")
 
293
        self.randomport_checkbox = wx.CheckBox(panel, -1, "randomize")
299
294
        self.randomport_checkbox.SetFont(self.default_font)
300
295
        self.randomport_checkbox.SetValue(self.config['random_port'])
301
296
        
302
 
        self.gui_font_data = wxSpinCtrl(panel, -1, '', (-1,-1), (self.FONT*5, -1))
 
297
        self.gui_font_data = wx.SpinCtrl(panel, -1, '', (-1,-1), (self.FONT*5, -1))
303
298
        self.gui_font_data.SetFont(self.default_font)
304
299
        self.gui_font_data.SetRange(8,16)
305
300
        self.gui_font_data.SetValue(self.config['gui_font'])
306
301
 
307
 
        self.gui_ratesettingsdefault_data=wxChoice(panel, -1, choices = ratesettingslist)
 
302
        self.gui_ratesettingsdefault_data=wx.Choice(panel, -1, choices = ratesettingslist)
308
303
        self.gui_ratesettingsdefault_data.SetFont(self.default_font)
309
304
        self.gui_ratesettingsdefault_data.SetStringSelection(self.config['gui_ratesettingsdefault'])
310
305
 
311
 
        self.maxdownload_data = wxSpinCtrl(panel, -1, '', (-1,-1), (self.FONT*7, -1))
 
306
        self.maxdownload_data = wx.SpinCtrl(panel, -1, '', (-1,-1), (self.FONT*7, -1))
312
307
        self.maxdownload_data.SetFont(self.default_font)
313
308
        self.maxdownload_data.SetRange(0,5000)
314
309
        self.maxdownload_data.SetValue(self.config['max_download_rate'])
315
310
 
316
 
        self.gui_ratesettingsmode_data=wxRadioBox(panel, -1, 'Rate Settings Mode',
 
311
        self.gui_ratesettingsmode_data=wx.RadioBox(panel, -1, 'Rate Settings Mode',
317
312
                 choices = [ 'none', 'basic', 'full' ] )
318
313
        self.gui_ratesettingsmode_data.SetFont(self.default_font)
319
314
        self.gui_ratesettingsmode_data.SetStringSelection(self.config['gui_ratesettingsmode'])
320
315
 
321
316
        if (sys.platform == 'win32'):
322
 
            self.win32_taskbar_icon_checkbox = wxCheckBox(panel, -1, "Minimize to system tray")
 
317
            self.win32_taskbar_icon_checkbox = wx.CheckBox(panel, -1, "Minimize to system tray")
323
318
            self.win32_taskbar_icon_checkbox.SetFont(self.default_font)
324
319
            self.win32_taskbar_icon_checkbox.SetValue(self.config['win32_taskbar_icon'])
325
320
            
326
 
            self.upnp_data=wxChoice(panel, -1,
 
321
            self.upnp_data=wx.Choice(panel, -1,
327
322
                        choices = ['disabled', 'type 1 (fast)', 'type 2 (slow)'])
328
323
            self.upnp_data.SetFont(self.default_font)
329
324
            self.upnp_data.SetSelection(self.config['upnp_nat_access'])
330
325
 
331
 
        self.gui_default_savedir_ctrl = wxTextCtrl(parent = panel, id = -1, 
 
326
        self.gui_default_savedir_ctrl = wx.TextCtrl(parent = panel, id = -1,
332
327
                            value = self.config['gui_default_savedir'],        
333
 
                            size = (26*self.FONT, -1), style = wxTE_PROCESS_TAB)
 
328
                            size = (26*self.FONT, -1), style = wx.TE_PROCESS_TAB)
334
329
        self.gui_default_savedir_ctrl.SetFont(self.default_font)
335
330
 
336
 
        self.gui_savemode_data=wxRadioBox(panel, -1, 'Ask where to save: *',
 
331
        self.gui_savemode_data=wx.RadioBox(panel, -1, 'Ask where to save: *',
337
332
                 choices = [ 'always', 'never', 'auto-resume' ] )
338
333
        self.gui_savemode_data.SetFont(self.default_font)
339
334
        self.gui_savemode_data.SetSelection(1-self.config['gui_saveas_ask'])
340
335
 
341
 
        self.checkingcolor_icon = wxEmptyBitmap(16,16)
342
 
        self.checkingcolor_iconptr = wxStaticBitmap(panel, -1, self.checkingcolor_icon)
 
336
        self.checkingcolor_icon = wx.EmptyBitmap(16,16)
 
337
        self.checkingcolor_iconptr = wx.StaticBitmap(panel, -1, self.checkingcolor_icon)
343
338
        self.setColorIcon(self.checkingcolor_icon, self.checkingcolor_iconptr, self.checkingcolor)
344
339
 
345
 
        self.downloadcolor_icon = wxEmptyBitmap(16,16)
346
 
        self.downloadcolor_iconptr = wxStaticBitmap(panel, -1, self.downloadcolor_icon)
 
340
        self.downloadcolor_icon = wx.EmptyBitmap(16,16)
 
341
        self.downloadcolor_iconptr = wx.StaticBitmap(panel, -1, self.downloadcolor_icon)
347
342
        self.setColorIcon(self.downloadcolor_icon, self.downloadcolor_iconptr, self.downloadcolor)
348
343
 
349
 
        self.seedingcolor_icon = wxEmptyBitmap(16,16)
350
 
        self.seedingcolor_iconptr = wxStaticBitmap(panel, -1, self.seedingcolor_icon)
 
344
        self.seedingcolor_icon = wx.EmptyBitmap(16,16)
 
345
        self.seedingcolor_iconptr = wx.StaticBitmap(panel, -1, self.seedingcolor_icon)
351
346
        self.setColorIcon(self.seedingcolor_icon, self.downloadcolor_iconptr, self.seedingcolor)
352
347
        
353
 
        rowsizer = wxFlexGridSizer(cols = 2, hgap = 20)
354
 
 
355
 
        block12sizer = wxFlexGridSizer(cols = 1, vgap = 12)
356
 
 
357
 
        block1sizer = wxFlexGridSizer(cols = 1, vgap = 2)
 
348
        rowsizer = wx.FlexGridSizer(cols = 2, hgap = 20)
 
349
 
 
350
        block12sizer = wx.FlexGridSizer(cols = 1, vgap = 12)
 
351
 
 
352
        block1sizer = wx.FlexGridSizer(cols = 1, vgap = 2)
358
353
        if (sys.platform == 'win32'):
359
354
            block1sizer.Add(self.win32_taskbar_icon_checkbox)
360
355
        block1sizer.Add(self.gui_stretchwindow_checkbox)
367
362
            block1sizer.Add(self.ipv6enabled_checkbox)
368
363
        block1sizer.Add(self.gui_forcegreenonfirewall_checkbox)
369
364
        block12sizer.Add(block1sizer)
370
 
        block12sizer.Add(cryptoButton, 0, wxALIGN_CENTER)
 
365
        block12sizer.Add(cryptoButton, 0, wx.ALIGN_CENTER)
371
366
 
372
 
        colorsizer = wxStaticBoxSizer(wxStaticBox(panel, -1, "Gauge Colors:"), wxVERTICAL)
373
 
        colorsizer1 = wxFlexGridSizer(cols = 7)
374
 
        colorsizer1.Add(StaticText('           Checking: '), 1, wxALIGN_BOTTOM)
375
 
        colorsizer1.Add(self.checkingcolor_iconptr, 1, wxALIGN_BOTTOM)
376
 
        colorsizer1.Add(StaticText('   Downloading: '), 1, wxALIGN_BOTTOM)
377
 
        colorsizer1.Add(self.downloadcolor_iconptr, 1, wxALIGN_BOTTOM)
378
 
        colorsizer1.Add(StaticText('   Seeding: '), 1, wxALIGN_BOTTOM)
379
 
        colorsizer1.Add(self.seedingcolor_iconptr, 1, wxALIGN_BOTTOM)
 
367
        colorsizer = wx.StaticBoxSizer(wx.StaticBox(panel, -1, "Gauge Colors:"), wx.VERTICAL)
 
368
        colorsizer1 = wx.FlexGridSizer(cols = 7)
 
369
        colorsizer1.Add(StaticText('           Checking: '), 1, wx.ALIGN_BOTTOM)
 
370
        colorsizer1.Add(self.checkingcolor_iconptr, 1, wx.ALIGN_BOTTOM)
 
371
        colorsizer1.Add(StaticText('   Downloading: '), 1, wx.ALIGN_BOTTOM)
 
372
        colorsizer1.Add(self.downloadcolor_iconptr, 1, wx.ALIGN_BOTTOM)
 
373
        colorsizer1.Add(StaticText('   Seeding: '), 1, wx.ALIGN_BOTTOM)
 
374
        colorsizer1.Add(self.seedingcolor_iconptr, 1, wx.ALIGN_BOTTOM)
380
375
        colorsizer1.Add(StaticText('  '))
381
376
        minsize = self.checkingcolor_iconptr.GetBestSize()
382
377
        minsize.SetHeight(minsize.GetHeight()+5)
383
378
        colorsizer1.SetMinSize(minsize)
384
379
        colorsizer.Add(colorsizer1)
385
380
       
386
 
        block12sizer.Add(colorsizer, 1, wxALIGN_LEFT)
 
381
        block12sizer.Add(colorsizer, 1, wx.ALIGN_LEFT)
387
382
 
388
383
        rowsizer.Add(block12sizer)
389
384
 
390
 
        block3sizer = wxFlexGridSizer(cols = 1)
 
385
        block3sizer = wx.FlexGridSizer(cols = 1)
391
386
 
392
 
        portsettingsSizer = wxStaticBoxSizer(wxStaticBox(panel, -1, "Port Range:*"), wxVERTICAL)
393
 
        portsettingsSizer1 = wxGridSizer(cols = 2, vgap = 1)
394
 
        portsettingsSizer1.Add(StaticText('From: '), 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT)
395
 
        portsettingsSizer1.Add(self.minport_data, 1, wxALIGN_BOTTOM)
396
 
        portsettingsSizer1.Add(StaticText('To: '), 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT)
397
 
        portsettingsSizer1.Add(self.maxport_data, 1, wxALIGN_BOTTOM)
 
387
        portsettingsSizer = wx.StaticBoxSizer(wx.StaticBox(panel, -1, "Port Range:*"), wx.VERTICAL)
 
388
        portsettingsSizer1 = wx.GridSizer(cols = 2, vgap = 1)
 
389
        portsettingsSizer1.Add(StaticText('From: '), 1, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT)
 
390
        portsettingsSizer1.Add(self.minport_data, 1, wx.ALIGN_BOTTOM)
 
391
        portsettingsSizer1.Add(StaticText('To: '), 1, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT)
 
392
        portsettingsSizer1.Add(self.maxport_data, 1, wx.ALIGN_BOTTOM)
398
393
        portsettingsSizer.Add(portsettingsSizer1)
399
 
        portsettingsSizer.Add(self.randomport_checkbox, 1, wxALIGN_CENTER)
400
 
        block3sizer.Add(portsettingsSizer, 1, wxALIGN_CENTER)
401
 
        block3sizer.Add(StaticText(' '))
402
 
        block3sizer.Add(self.gui_ratesettingsmode_data, 1, wxALIGN_CENTER)
403
 
        block3sizer.Add(StaticText(' '))
404
 
        ratesettingsSizer = wxFlexGridSizer(cols = 1, vgap = 2)
405
 
        ratesettingsSizer.Add(StaticText('Default Rate Setting: *'), 1, wxALIGN_CENTER)
406
 
        ratesettingsSizer.Add(self.gui_ratesettingsdefault_data, 1, wxALIGN_CENTER)
407
 
        block3sizer.Add(ratesettingsSizer, 1, wxALIGN_CENTER)
 
394
        portsettingsSizer.Add(self.randomport_checkbox, 1, wx.ALIGN_CENTER)
 
395
        block3sizer.Add(portsettingsSizer, 1, wx.ALIGN_CENTER)
 
396
        block3sizer.Add(StaticText(' '))
 
397
        block3sizer.Add(self.gui_ratesettingsmode_data, 1, wx.ALIGN_CENTER)
 
398
        block3sizer.Add(StaticText(' '))
 
399
        ratesettingsSizer = wx.FlexGridSizer(cols = 1, vgap = 2)
 
400
        ratesettingsSizer.Add(StaticText('Default Rate Setting: *'), 1, wx.ALIGN_CENTER)
 
401
        ratesettingsSizer.Add(self.gui_ratesettingsdefault_data, 1, wx.ALIGN_CENTER)
 
402
        block3sizer.Add(ratesettingsSizer, 1, wx.ALIGN_CENTER)
408
403
        if (sys.platform == 'win32'):
409
404
            block3sizer.Add(StaticText(' '))
410
 
            upnpSizer = wxFlexGridSizer(cols = 1, vgap = 2)
411
 
            upnpSizer.Add(StaticText('UPnP Port Forwarding: *'), 1, wxALIGN_CENTER)
412
 
            upnpSizer.Add(self.upnp_data, 1, wxALIGN_CENTER)
413
 
            block3sizer.Add(upnpSizer, 1, wxALIGN_CENTER)
 
405
            upnpSizer = wx.FlexGridSizer(cols = 1, vgap = 2)
 
406
            upnpSizer.Add(StaticText('UPnP Port Forwarding: *'), 1, wx.ALIGN_CENTER)
 
407
            upnpSizer.Add(self.upnp_data, 1, wx.ALIGN_CENTER)
 
408
            block3sizer.Add(upnpSizer, 1, wx.ALIGN_CENTER)
414
409
        
415
410
        rowsizer.Add(block3sizer)
416
411
        colsizer.Add(rowsizer)
417
412
 
418
 
        block4sizer = wxFlexGridSizer(cols = 3, hgap = 15)        
419
 
        savepathsizer = wxFlexGridSizer(cols = 2, vgap = 1)
 
413
        block4sizer = wx.FlexGridSizer(cols = 3, hgap = 15)
 
414
        savepathsizer = wx.FlexGridSizer(cols = 2, vgap = 1)
420
415
        savepathsizer.Add(StaticText('Default Save Path: *'))
421
416
        savepathsizer.Add(StaticText(' '))
422
 
        savepathsizer.Add(self.gui_default_savedir_ctrl, 1, wxEXPAND)
423
 
        savepathButton = wxButton(panel, -1, '...', size = (18,18))
 
417
        savepathsizer.Add(self.gui_default_savedir_ctrl, 1, wx.EXPAND)
 
418
        savepathButton = wx.Button(panel, -1, '...', size = (18,18))
424
419
#        savepathButton.SetFont(self.default_font)
425
 
        savepathsizer.Add(savepathButton, 0, wxALIGN_CENTER)
426
 
        savepathsizer.Add(self.gui_savemode_data, 0, wxALIGN_CENTER)
427
 
        block4sizer.Add(savepathsizer, -1, wxALIGN_BOTTOM)
 
420
        savepathsizer.Add(savepathButton, 0, wx.ALIGN_CENTER)
 
421
        savepathsizer.Add(self.gui_savemode_data, 0, wx.ALIGN_CENTER)
 
422
        block4sizer.Add(savepathsizer, -1, wx.ALIGN_BOTTOM)
428
423
 
429
 
        fontsizer = wxFlexGridSizer(cols = 1, vgap = 2)
 
424
        fontsizer = wx.FlexGridSizer(cols = 1, vgap = 2)
430
425
        fontsizer.Add(StaticText(''))
431
 
        fontsizer.Add(StaticText('Font: *'), 1, wxALIGN_CENTER)
432
 
        fontsizer.Add(self.gui_font_data, 1, wxALIGN_CENTER)
433
 
        block4sizer.Add(fontsizer, 1, wxALIGN_CENTER_VERTICAL)
 
426
        fontsizer.Add(StaticText('Font: *'), 1, wx.ALIGN_CENTER)
 
427
        fontsizer.Add(self.gui_font_data, 1, wx.ALIGN_CENTER)
 
428
        block4sizer.Add(fontsizer, 1, wx.ALIGN_CENTER_VERTICAL)
434
429
 
435
 
        dratesettingsSizer = wxFlexGridSizer(cols = 1, vgap = 2)
436
 
        dratesettingsSizer.Add(StaticText('Default Max'), 1, wxALIGN_CENTER)
437
 
        dratesettingsSizer.Add(StaticText('Download Rate'), 1, wxALIGN_CENTER)
438
 
        dratesettingsSizer.Add(StaticText('(kB/s): *'), 1, wxALIGN_CENTER)
439
 
        dratesettingsSizer.Add(self.maxdownload_data, 1, wxALIGN_CENTER)
440
 
        dratesettingsSizer.Add(StaticText('(0 = disabled)'), 1, wxALIGN_CENTER)
 
430
        dratesettingsSizer = wx.FlexGridSizer(cols = 1, vgap = 2)
 
431
        dratesettingsSizer.Add(StaticText('Default Max'), 1, wx.ALIGN_CENTER)
 
432
        dratesettingsSizer.Add(StaticText('Download Rate'), 1, wx.ALIGN_CENTER)
 
433
        dratesettingsSizer.Add(StaticText('(kB/s): *'), 1, wx.ALIGN_CENTER)
 
434
        dratesettingsSizer.Add(self.maxdownload_data, 1, wx.ALIGN_CENTER)
 
435
        dratesettingsSizer.Add(StaticText('(0 = disabled)'), 1, wx.ALIGN_CENTER)
441
436
        
442
 
        block4sizer.Add(dratesettingsSizer, 1, wxALIGN_CENTER_VERTICAL)
443
 
 
444
 
        colsizer.Add(block4sizer, 0, wxALIGN_CENTER)
445
 
 
446
 
        savesizer = wxGridSizer(cols = 4, hgap = 10)
447
 
        saveButton = wxButton(panel, -1, 'Save')
 
437
        block4sizer.Add(dratesettingsSizer, 1, wx.ALIGN_CENTER_VERTICAL)
 
438
 
 
439
        colsizer.Add(block4sizer, 0, wx.ALIGN_CENTER)
 
440
 
 
441
        savesizer = wx.GridSizer(cols = 4, hgap = 10)
 
442
        saveButton = wx.Button(panel, -1, 'Save')
448
443
#        saveButton.SetFont(self.default_font)
449
 
        savesizer.Add(saveButton, 0, wxALIGN_CENTER)
 
444
        savesizer.Add(saveButton, 0, wx.ALIGN_CENTER)
450
445
 
451
 
        cancelButton = wxButton(panel, -1, 'Cancel')
 
446
        cancelButton = wx.Button(panel, -1, 'Cancel')
452
447
#        cancelButton.SetFont(self.default_font)
453
 
        savesizer.Add(cancelButton, 0, wxALIGN_CENTER)
 
448
        savesizer.Add(cancelButton, 0, wx.ALIGN_CENTER)
454
449
 
455
 
        defaultsButton = wxButton(panel, -1, 'Revert to Defaults')
 
450
        defaultsButton = wx.Button(panel, -1, 'Revert to Defaults')
456
451
#        defaultsButton.SetFont(self.default_font)
457
 
        savesizer.Add(defaultsButton, 0, wxALIGN_CENTER)
 
452
        savesizer.Add(defaultsButton, 0, wx.ALIGN_CENTER)
458
453
 
459
 
        advancedButton = wxButton(panel, -1, 'Advanced...')
 
454
        advancedButton = wx.Button(panel, -1, 'Advanced...')
460
455
#        advancedButton.SetFont(self.default_font)
461
 
        savesizer.Add(advancedButton, 0, wxALIGN_CENTER)
462
 
        colsizer.Add(savesizer, 1, wxALIGN_CENTER)
 
456
        savesizer.Add(advancedButton, 0, wx.ALIGN_CENTER)
 
457
        colsizer.Add(savesizer, 1, wx.ALIGN_CENTER)
463
458
 
464
459
        resizewarningtext=StaticText('* These settings will not take effect until the next time you start BitTorrent', self.FONT-2)
465
 
        colsizer.Add(resizewarningtext, 1, wxALIGN_CENTER)
 
460
        colsizer.Add(resizewarningtext, 1, wx.ALIGN_CENTER)
466
461
 
467
 
        border = wxBoxSizer(wxHORIZONTAL)
468
 
        border.Add(colsizer, 1, wxEXPAND | wxALL, 4)
 
462
        border = wx.BoxSizer(wx.HORIZONTAL)
 
463
        border.Add(colsizer, 1, wx.EXPAND | wx.ALL, 4)
469
464
        
470
465
        panel.SetSizer(border)
471
466
        panel.SetAutoLayout(True)
578
573
            d = self.gui_default_savedir_ctrl.GetValue()
579
574
            if d == '':
580
575
                d = self.config['last_saved']
581
 
            dl = wxDirDialog(self.panel, 'Choose a default directory to save to', 
582
 
                d, style = wxDD_DEFAULT_STYLE | wxDD_NEW_DIR_BUTTON)
583
 
            if dl.ShowModal() == wxID_OK:
 
576
            dl = wx.DirDialog(self.panel, 'Choose a default directory to save to',
 
577
                d, style = wx.DD_DEFAULT_STYLE | wx.DD_NEW_DIR_BUTTON)
 
578
            if dl.ShowModal() == wx.ID_OK:
584
579
                self.gui_default_savedir_ctrl.SetValue(dl.GetPath())
585
580
          except:
586
581
            self.parent.exception()
609
604
          except:
610
605
            self.parent.exception()
611
606
            
612
 
        EVT_BUTTON(self.configMenuBox, saveButton.GetId(), saveConfigs)
613
 
        EVT_BUTTON(self.configMenuBox, cancelButton.GetId(), cancelConfigs)
614
 
        EVT_BUTTON(self.configMenuBox, defaultsButton.GetId(), setDefaults)
615
 
        EVT_BUTTON(self.configMenuBox, advancedButton.GetId(), self.advancedMenu)
616
 
        EVT_BUTTON(self.configMenuBox, cryptoButton.GetId(), self.cryptoMenu)
617
 
        EVT_BUTTON(self.configMenuBox, savepathButton.GetId(), savepath_set)
618
 
        EVT_LEFT_DOWN(self.checkingcolor_iconptr, checkingcoloricon_set)
619
 
        EVT_LEFT_DOWN(self.downloadcolor_iconptr, downloadcoloricon_set)
620
 
        EVT_LEFT_DOWN(self.seedingcolor_iconptr, seedingcoloricon_set)
 
607
        wx.EVT_BUTTON(self.configMenuBox, saveButton.GetId(), saveConfigs)
 
608
        wx.EVT_BUTTON(self.configMenuBox, cancelButton.GetId(), cancelConfigs)
 
609
        wx.EVT_BUTTON(self.configMenuBox, defaultsButton.GetId(), setDefaults)
 
610
        wx.EVT_BUTTON(self.configMenuBox, advancedButton.GetId(), self.advancedMenu)
 
611
        wx.EVT_BUTTON(self.configMenuBox, cryptoButton.GetId(), self.cryptoMenu)
 
612
        wx.EVT_BUTTON(self.configMenuBox, savepathButton.GetId(), savepath_set)
 
613
        wx.EVT_LEFT_DOWN(self.checkingcolor_iconptr, checkingcoloricon_set)
 
614
        wx.EVT_LEFT_DOWN(self.downloadcolor_iconptr, downloadcoloricon_set)
 
615
        wx.EVT_LEFT_DOWN(self.seedingcolor_iconptr, seedingcoloricon_set)
621
616
 
622
617
        self.configMenuBox.Show ()
623
618
        border.Fit(panel)
631
626
        if self.configMenuBox is not None:
632
627
            try:
633
628
                self.configMenuBox.Close ()
634
 
            except wxPyDeadObjectError, e:
 
629
            except wx.PyDeadObjectError, e:
635
630
                pass
636
631
            self.configMenuBox = None
637
632
 
647
642
        if (self.advancedMenuBox is not None):
648
643
            try:
649
644
                self.advancedMenuBox.Close ()
650
 
            except wxPyDeadObjectError, e:
 
645
            except wx.PyDeadObjectError, e:
651
646
                self.advancedMenuBox = None
652
647
 
653
 
        self.advancedMenuBox = wxFrame(None, -1, 'BitTornado Advanced Preferences', size = (1,1),
654
 
                            style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE)
 
648
        self.advancedMenuBox = wx.Frame(None, -1, 'BitTornado Advanced Preferences', size = (1,1),
 
649
                            style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE)
655
650
        if (sys.platform == 'win32'):
656
651
            self.advancedMenuBox.SetIcon(self.icon)
657
652
 
658
 
        panel = wxPanel(self.advancedMenuBox, -1)
 
653
        panel = wx.Panel(self.advancedMenuBox, -1)
659
654
 
660
655
        def StaticText(text, font = self.FONT, underline = False, color = None, panel = panel):
661
 
            x = wxStaticText(panel, -1, text, style = wxALIGN_LEFT)
662
 
            x.SetFont(wxFont(font, wxDEFAULT, wxNORMAL, wxNORMAL, underline))
 
656
            x = wx.StaticText(panel, -1, text, style = wx.ALIGN_LEFT)
 
657
            x.SetFont(wx.Font(font, wx.DEFAULT, wx.NORMAL, wx.NORMAL, underline))
663
658
            if color is not None:
664
659
                x.SetForegroundColour(color)
665
660
            return x
666
661
 
667
 
        colsizer = wxFlexGridSizer(cols = 1, hgap = 13, vgap = 13)
 
662
        colsizer = wx.FlexGridSizer(cols = 1, hgap = 13, vgap = 13)
668
663
        warningtext = StaticText('CHANGE THESE SETTINGS AT YOUR OWN RISK', self.FONT+4, True, 'Red')
669
 
        colsizer.Add(warningtext, 1, wxALIGN_CENTER)
 
664
        colsizer.Add(warningtext, 1, wx.ALIGN_CENTER)
670
665
 
671
 
        self.ip_data = wxTextCtrl(parent = panel, id = -1, 
 
666
        self.ip_data = wx.TextCtrl(parent = panel, id = -1,
672
667
                    value = self.advancedConfig['ip'],
673
 
                    size = (self.FONT*13, int(self.FONT*2.2)), style = wxTE_PROCESS_TAB)
 
668
                    size = (self.FONT*13, int(self.FONT*2.2)), style = wx.TE_PROCESS_TAB)
674
669
        self.ip_data.SetFont(self.default_font)
675
670
        
676
 
        self.bind_data = wxTextCtrl(parent = panel, id = -1, 
 
671
        self.bind_data = wx.TextCtrl(parent = panel, id = -1,
677
672
                    value = self.advancedConfig['bind'],
678
 
                    size = (self.FONT*13, int(self.FONT*2.2)), style = wxTE_PROCESS_TAB)
 
673
                    size = (self.FONT*13, int(self.FONT*2.2)), style = wx.TE_PROCESS_TAB)
679
674
        self.bind_data.SetFont(self.default_font)
680
675
        
681
676
        if sys.version_info >= (2,3) and socket.has_ipv6:
682
 
            self.ipv6bindsv4_data=wxChoice(panel, -1,
 
677
            self.ipv6bindsv4_data=wx.Choice(panel, -1,
683
678
                             choices = ['separate sockets', 'single socket'])
684
679
            self.ipv6bindsv4_data.SetFont(self.default_font)
685
680
            self.ipv6bindsv4_data.SetSelection(self.advancedConfig['ipv6_binds_v4'])
686
681
 
687
 
        self.minpeers_data = wxSpinCtrl(panel, -1, '', (-1,-1), (self.FONT*7, -1))
 
682
        self.minpeers_data = wx.SpinCtrl(panel, -1, '', (-1,-1), (self.FONT*7, -1))
688
683
        self.minpeers_data.SetFont(self.default_font)
689
684
        self.minpeers_data.SetRange(10,100)
690
685
        self.minpeers_data.SetValue(self.advancedConfig['min_peers'])
691
686
        # max_initiate = 2*minpeers
692
687
 
693
 
        self.displayinterval_data = wxSpinCtrl(panel, -1, '', (-1,-1), (self.FONT*7, -1))
 
688
        self.displayinterval_data = wx.SpinCtrl(panel, -1, '', (-1,-1), (self.FONT*7, -1))
694
689
        self.displayinterval_data.SetFont(self.default_font)
695
690
        self.displayinterval_data.SetRange(100,2000)
696
691
        self.displayinterval_data.SetValue(int(self.advancedConfig['display_interval']*1000))
697
692
 
698
 
        self.alloctype_data=wxChoice(panel, -1,
 
693
        self.alloctype_data=wx.Choice(panel, -1,
699
694
                         choices = ['normal', 'background', 'pre-allocate', 'sparse'])
700
695
        self.alloctype_data.SetFont(self.default_font)
701
696
        self.alloctype_data.SetStringSelection(self.advancedConfig['alloc_type'])
702
697
 
703
 
        self.allocrate_data = wxSpinCtrl(panel, -1, '', (-1,-1), (self.FONT*7,-1))
 
698
        self.allocrate_data = wx.SpinCtrl(panel, -1, '', (-1,-1), (self.FONT*7,-1))
704
699
        self.allocrate_data.SetFont(self.default_font)
705
700
        self.allocrate_data.SetRange(1,100)
706
701
        self.allocrate_data.SetValue(int(self.advancedConfig['alloc_rate']))
707
702
 
708
 
        self.locking_data=wxChoice(panel, -1,
 
703
        self.locking_data=wx.Choice(panel, -1,
709
704
                           choices = ['no locking', 'lock while writing', 'lock always'])
710
705
        self.locking_data.SetFont(self.default_font)
711
706
        if self.advancedConfig['lock_files']:
716
711
        else:
717
712
            self.locking_data.SetSelection(0)
718
713
 
719
 
        self.doublecheck_data=wxChoice(panel, -1,
 
714
        self.doublecheck_data=wx.Choice(panel, -1,
720
715
                           choices = ['no extra checking', 'double-check', 'triple-check'])
721
716
        self.doublecheck_data.SetFont(self.default_font)
722
717
        if self.advancedConfig['double_check']:
728
723
            self.doublecheck_data.SetSelection(0)
729
724
 
730
725
        self.maxfilesopen_choices = ['50', '100', '200', 'no limit ']
731
 
        self.maxfilesopen_data=wxChoice(panel, -1, choices = self.maxfilesopen_choices)
 
726
        self.maxfilesopen_data=wx.Choice(panel, -1, choices = self.maxfilesopen_choices)
732
727
        self.maxfilesopen_data.SetFont(self.default_font)
733
728
        setval = self.advancedConfig['max_files_open']
734
729
        if setval == 0:
740
735
        self.maxfilesopen_data.SetStringSelection(setval)
741
736
 
742
737
        self.maxconnections_choices = ['no limit ', '20', '30', '40', '50', '60', '100', '200']
743
 
        self.maxconnections_data=wxChoice(panel, -1, choices = self.maxconnections_choices)
 
738
        self.maxconnections_data=wx.Choice(panel, -1, choices = self.maxconnections_choices)
744
739
        self.maxconnections_data.SetFont(self.default_font)
745
740
        setval = self.advancedConfig['max_connections']
746
741
        if setval == 0:
751
746
            setval = self.maxconnections_choices[0]
752
747
        self.maxconnections_data.SetStringSelection(setval)
753
748
 
754
 
        self.superseeder_data=wxChoice(panel, -1,
 
749
        self.superseeder_data=wx.Choice(panel, -1,
755
750
                         choices = ['normal', 'super-seed'])
756
751
        self.superseeder_data.SetFont(self.default_font)
757
752
        self.superseeder_data.SetSelection(self.advancedConfig['super_seeder'])
758
753
 
759
754
        self.expirecache_choices = ['never ', '3', '5', '7', '10', '15', '30', '60', '90']
760
 
        self.expirecache_data=wxChoice(panel, -1, choices = self.expirecache_choices)
 
755
        self.expirecache_data=wx.Choice(panel, -1, choices = self.expirecache_choices)
761
756
        setval = self.advancedConfig['expire_cache_data']
762
757
        if setval == 0:
763
758
            setval = 'never '
769
764
        self.expirecache_data.SetStringSelection(setval)
770
765
       
771
766
 
772
 
        twocolsizer = wxFlexGridSizer(cols = 2, hgap = 20)
773
 
        datasizer = wxFlexGridSizer(cols = 2, vgap = 2)
774
 
        datasizer.Add(StaticText('Local IP: '), 1, wxALIGN_CENTER_VERTICAL)
 
767
        twocolsizer = wx.FlexGridSizer(cols = 2, hgap = 20)
 
768
        datasizer = wx.FlexGridSizer(cols = 2, vgap = 2)
 
769
        datasizer.Add(StaticText('Local IP: '), 1, wx.ALIGN_CENTER_VERTICAL)
775
770
        datasizer.Add(self.ip_data)
776
 
        datasizer.Add(StaticText('IP to bind to: '), 1, wxALIGN_CENTER_VERTICAL)
 
771
        datasizer.Add(StaticText('IP to bind to: '), 1, wx.ALIGN_CENTER_VERTICAL)
777
772
        datasizer.Add(self.bind_data)
778
773
        if sys.version_info >= (2,3) and socket.has_ipv6:
779
 
            datasizer.Add(StaticText('IPv6 socket handling: '), 1, wxALIGN_CENTER_VERTICAL)
 
774
            datasizer.Add(StaticText('IPv6 socket handling: '), 1, wx.ALIGN_CENTER_VERTICAL)
780
775
            datasizer.Add(self.ipv6bindsv4_data)
781
 
        datasizer.Add(StaticText('Minimum number of peers: '), 1, wxALIGN_CENTER_VERTICAL)
 
776
        datasizer.Add(StaticText('Minimum number of peers: '), 1, wx.ALIGN_CENTER_VERTICAL)
782
777
        datasizer.Add(self.minpeers_data)
783
 
        datasizer.Add(StaticText('Display interval (ms): '), 1, wxALIGN_CENTER_VERTICAL)
 
778
        datasizer.Add(StaticText('Display interval (ms): '), 1, wx.ALIGN_CENTER_VERTICAL)
784
779
        datasizer.Add(self.displayinterval_data)
785
 
        datasizer.Add(StaticText('Disk allocation type:'), 1, wxALIGN_CENTER_VERTICAL)
 
780
        datasizer.Add(StaticText('Disk allocation type:'), 1, wx.ALIGN_CENTER_VERTICAL)
786
781
        datasizer.Add(self.alloctype_data)
787
 
        datasizer.Add(StaticText('Allocation rate (MiB/s):'), 1, wxALIGN_CENTER_VERTICAL)
 
782
        datasizer.Add(StaticText('Allocation rate (MiB/s):'), 1, wx.ALIGN_CENTER_VERTICAL)
788
783
        datasizer.Add(self.allocrate_data)
789
 
        datasizer.Add(StaticText('File locking:'), 1, wxALIGN_CENTER_VERTICAL)
 
784
        datasizer.Add(StaticText('File locking:'), 1, wx.ALIGN_CENTER_VERTICAL)
790
785
        datasizer.Add(self.locking_data)
791
 
        datasizer.Add(StaticText('Extra data checking:'), 1, wxALIGN_CENTER_VERTICAL)
 
786
        datasizer.Add(StaticText('Extra data checking:'), 1, wx.ALIGN_CENTER_VERTICAL)
792
787
        datasizer.Add(self.doublecheck_data)
793
 
        datasizer.Add(StaticText('Max files open:'), 1, wxALIGN_CENTER_VERTICAL)
 
788
        datasizer.Add(StaticText('Max files open:'), 1, wx.ALIGN_CENTER_VERTICAL)
794
789
        datasizer.Add(self.maxfilesopen_data)
795
 
        datasizer.Add(StaticText('Max peer connections:'), 1, wxALIGN_CENTER_VERTICAL)
 
790
        datasizer.Add(StaticText('Max peer connections:'), 1, wx.ALIGN_CENTER_VERTICAL)
796
791
        datasizer.Add(self.maxconnections_data)
797
 
        datasizer.Add(StaticText('Default seeding mode:'), 1, wxALIGN_CENTER_VERTICAL)
 
792
        datasizer.Add(StaticText('Default seeding mode:'), 1, wx.ALIGN_CENTER_VERTICAL)
798
793
        datasizer.Add(self.superseeder_data)
799
 
        datasizer.Add(StaticText('Expire resume data(days):'), 1, wxALIGN_CENTER_VERTICAL)
 
794
        datasizer.Add(StaticText('Expire resume data(days):'), 1, wx.ALIGN_CENTER_VERTICAL)
800
795
        datasizer.Add(self.expirecache_data)
801
796
        
802
797
        twocolsizer.Add(datasizer)
803
798
 
804
 
        infosizer = wxFlexGridSizer(cols = 1)
 
799
        infosizer = wx.FlexGridSizer(cols = 1)
805
800
        self.hinttext = StaticText('', self.FONT, False, 'Blue')
806
 
        infosizer.Add(self.hinttext, 1, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL)
 
801
        infosizer.Add(self.hinttext, 1, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL)
807
802
        infosizer.SetMinSize((180,100))
808
 
        twocolsizer.Add(infosizer, 1, wxEXPAND)
 
803
        twocolsizer.Add(infosizer, 1, wx.EXPAND)
809
804
 
810
805
        colsizer.Add(twocolsizer)
811
806
 
812
 
        savesizer = wxGridSizer(cols = 3, hgap = 20)
813
 
        okButton = wxButton(panel, -1, 'OK')
 
807
        savesizer = wx.GridSizer(cols = 3, hgap = 20)
 
808
        okButton = wx.Button(panel, -1, 'OK')
814
809
#        okButton.SetFont(self.default_font)
815
 
        savesizer.Add(okButton, 0, wxALIGN_CENTER)
 
810
        savesizer.Add(okButton, 0, wx.ALIGN_CENTER)
816
811
 
817
 
        cancelButton = wxButton(panel, -1, 'Cancel')
 
812
        cancelButton = wx.Button(panel, -1, 'Cancel')
818
813
#        cancelButton.SetFont(self.default_font)
819
 
        savesizer.Add(cancelButton, 0, wxALIGN_CENTER)
 
814
        savesizer.Add(cancelButton, 0, wx.ALIGN_CENTER)
820
815
 
821
 
        defaultsButton = wxButton(panel, -1, 'Revert to Defaults')
 
816
        defaultsButton = wx.Button(panel, -1, 'Revert to Defaults')
822
817
#        defaultsButton.SetFont(self.default_font)
823
 
        savesizer.Add(defaultsButton, 0, wxALIGN_CENTER)
824
 
        colsizer.Add(savesizer, 1, wxALIGN_CENTER)
 
818
        savesizer.Add(defaultsButton, 0, wx.ALIGN_CENTER)
 
819
        colsizer.Add(savesizer, 1, wx.ALIGN_CENTER)
825
820
 
826
821
        resizewarningtext=StaticText('None of these settings will take effect until the next time you start BitTorrent', self.FONT-2)
827
 
        colsizer.Add(resizewarningtext, 1, wxALIGN_CENTER)
 
822
        colsizer.Add(resizewarningtext, 1, wx.ALIGN_CENTER)
828
823
 
829
 
        border = wxBoxSizer(wxHORIZONTAL)
830
 
        border.Add(colsizer, 1, wxEXPAND | wxALL, 4)
 
824
        border = wx.BoxSizer(wx.HORIZONTAL)
 
825
        border.Add(colsizer, 1, wx.EXPAND | wx.ALL, 4)
831
826
        
832
827
        panel.SetSizer(border)
833
828
        panel.SetAutoLayout(True)
1024
1019
                                  "client will keep this data before\n" +
1025
1020
                                  "deleting it to free disk space.")
1026
1021
 
1027
 
        EVT_BUTTON(self.advancedMenuBox, okButton.GetId(), saveConfigs)
1028
 
        EVT_BUTTON(self.advancedMenuBox, cancelButton.GetId(), cancelConfigs)
1029
 
        EVT_BUTTON(self.advancedMenuBox, defaultsButton.GetId(), setDefaults)
1030
 
        EVT_ENTER_WINDOW(self.ip_data, ip_hint)
1031
 
        EVT_ENTER_WINDOW(self.bind_data, bind_hint)
 
1022
        wx.EVT_BUTTON(self.advancedMenuBox, okButton.GetId(), saveConfigs)
 
1023
        wx.EVT_BUTTON(self.advancedMenuBox, cancelButton.GetId(), cancelConfigs)
 
1024
        wx.EVT_BUTTON(self.advancedMenuBox, defaultsButton.GetId(), setDefaults)
 
1025
        wx.EVT_ENTER_WINDOW(self.ip_data, ip_hint)
 
1026
        wx.EVT_ENTER_WINDOW(self.bind_data, bind_hint)
1032
1027
        if sys.version_info >= (2,3) and socket.has_ipv6:
1033
 
            EVT_ENTER_WINDOW(self.ipv6bindsv4_data, ipv6bindsv4_hint)
1034
 
        EVT_ENTER_WINDOW(self.minpeers_data, minpeers_hint)
1035
 
        EVT_ENTER_WINDOW(self.displayinterval_data, displayinterval_hint)
1036
 
        EVT_ENTER_WINDOW(self.alloctype_data, alloctype_hint)
1037
 
        EVT_ENTER_WINDOW(self.allocrate_data, allocrate_hint)
1038
 
        EVT_ENTER_WINDOW(self.locking_data, locking_hint)
1039
 
        EVT_ENTER_WINDOW(self.doublecheck_data, doublecheck_hint)
1040
 
        EVT_ENTER_WINDOW(self.maxfilesopen_data, maxfilesopen_hint)
1041
 
        EVT_ENTER_WINDOW(self.maxconnections_data, maxconnections_hint)
1042
 
        EVT_ENTER_WINDOW(self.superseeder_data, superseeder_hint)
1043
 
        EVT_ENTER_WINDOW(self.expirecache_data, expirecache_hint)
 
1028
            wx.EVT_ENTER_WINDOW(self.ipv6bindsv4_data, ipv6bindsv4_hint)
 
1029
        wx.EVT_ENTER_WINDOW(self.minpeers_data, minpeers_hint)
 
1030
        wx.EVT_ENTER_WINDOW(self.displayinterval_data, displayinterval_hint)
 
1031
        wx.EVT_ENTER_WINDOW(self.alloctype_data, alloctype_hint)
 
1032
        wx.EVT_ENTER_WINDOW(self.allocrate_data, allocrate_hint)
 
1033
        wx.EVT_ENTER_WINDOW(self.locking_data, locking_hint)
 
1034
        wx.EVT_ENTER_WINDOW(self.doublecheck_data, doublecheck_hint)
 
1035
        wx.EVT_ENTER_WINDOW(self.maxfilesopen_data, maxfilesopen_hint)
 
1036
        wx.EVT_ENTER_WINDOW(self.maxconnections_data, maxconnections_hint)
 
1037
        wx.EVT_ENTER_WINDOW(self.superseeder_data, superseeder_hint)
 
1038
        wx.EVT_ENTER_WINDOW(self.expirecache_data, expirecache_hint)
1044
1039
 
1045
1040
        self.advancedMenuBox.Show ()
1046
1041
        border.Fit(panel)
1053
1048
        if self.advancedMenuBox is not None:
1054
1049
            try:
1055
1050
                self.advancedMenuBox.Close()
1056
 
            except wxPyDeadObjectError, e:
 
1051
            except wx.PyDeadObjectError, e:
1057
1052
                self.advancedMenuBox = None
1058
1053
 
1059
1054
 
1067
1062
        if (self.cryptoMenuBox is not None):
1068
1063
            try:
1069
1064
                self.cryptoMenuBox.Close ()
1070
 
            except wxPyDeadObjectError, e:
 
1065
            except wx.PyDeadObjectError, e:
1071
1066
                self.cryptoMenuBox = None
1072
1067
 
1073
 
        self.cryptoMenuBox = wxFrame(None, -1, 'BitTornado Encryption/Security Preferences', size = (1,1),
1074
 
                            style = wxDEFAULT_FRAME_STYLE|wxFULL_REPAINT_ON_RESIZE)
 
1068
        self.cryptoMenuBox = wx.Frame(None, -1, 'BitTornado Encryption/Security Preferences', size = (1,1),
 
1069
                            style = wx.DEFAULT_FRAME_STYLE|wx.FULL_REPAINT_ON_RESIZE)
1075
1070
        if (sys.platform == 'win32'):
1076
1071
            self.cryptoMenuBox.SetIcon(self.icon)
1077
1072
 
1078
 
        panel = wxPanel(self.cryptoMenuBox, -1)
 
1073
        panel = wx.Panel(self.cryptoMenuBox, -1)
1079
1074
#        self.panel = panel
1080
1075
 
1081
1076
        def StaticText(text, font = self.FONT, underline = False, color = None, panel = panel):
1082
 
            x = wxStaticText(panel, -1, text, style = wxALIGN_LEFT)
1083
 
            x.SetFont(wxFont(font, wxDEFAULT, wxNORMAL, wxNORMAL, underline))
 
1077
            x = wx.StaticText(panel, -1, text, style = wx.ALIGN_LEFT)
 
1078
            x.SetFont(wx.Font(font, wx.DEFAULT, wx.NORMAL, wx.NORMAL, underline))
1084
1079
            if color is not None:
1085
1080
                x.SetForegroundColour(color)
1086
1081
            return x
1087
1082
 
1088
 
        colsizer = wxFlexGridSizer(cols = 1, hgap = 13, vgap = 13)
 
1083
        colsizer = wx.FlexGridSizer(cols = 1, hgap = 13, vgap = 13)
1089
1084
 
1090
 
        self.cryptomode_data=wxRadioBox(panel, -1, 'Encryption',
1091
 
                style = wxRA_SPECIFY_COLS, majorDimension = 1,
 
1085
        self.cryptomode_data=wx.RadioBox(panel, -1, 'Encryption',
 
1086
                style = wx.RA_SPECIFY_COLS, majorDimension = 1,
1092
1087
                choices = [
1093
1088
                    'no encryption permitted',
1094
1089
                    'encryption enabled (default)',
1108
1103
        if not CRYPTO_OK:   # no crypto library in place
1109
1104
            self.cryptomode_data.Enable(False)
1110
1105
 
1111
 
        self.security_checkbox = wxCheckBox(panel, -1, "Don't allow multiple connections from the same IP")
 
1106
        self.security_checkbox = wx.CheckBox(panel, -1, "Don't allow multiple connections from the same IP")
1112
1107
        self.security_checkbox.SetFont(self.default_font)
1113
1108
        self.security_checkbox.SetValue(self.cryptoConfig['security'])
1114
1109
 
1115
 
        self.autokick_checkbox = wxCheckBox(panel, -1, "Kick/ban clients that send you bad data")
 
1110
        self.autokick_checkbox = wx.CheckBox(panel, -1, "Kick/ban clients that send you bad data")
1116
1111
        self.autokick_checkbox.SetFont(self.default_font)
1117
1112
        self.autokick_checkbox.SetValue(self.cryptoConfig['auto_kick'])
1118
1113
 
1119
1114
        colsizer.Add(self.cryptomode_data)
1120
1115
 
1121
 
        block2sizer = wxFlexGridSizer(cols = 1, vgap = 2)
 
1116
        block2sizer = wx.FlexGridSizer(cols = 1, vgap = 2)
1122
1117
        block2sizer.Add(self.security_checkbox)
1123
1118
        block2sizer.Add(self.autokick_checkbox)
1124
1119
        colsizer.Add(block2sizer)
1125
1120
 
1126
 
        savesizer = wxGridSizer(cols = 3, hgap = 20)
1127
 
        okButton = wxButton(panel, -1, 'OK')
1128
 
        savesizer.Add(okButton, 0, wxALIGN_CENTER)
1129
 
 
1130
 
        cancelButton = wxButton(panel, -1, 'Cancel')
1131
 
        savesizer.Add(cancelButton, 0, wxALIGN_CENTER)
1132
 
 
1133
 
        defaultsButton = wxButton(panel, -1, 'Revert to Defaults')
1134
 
        savesizer.Add(defaultsButton, 0, wxALIGN_CENTER)
1135
 
        colsizer.Add(savesizer, 1, wxALIGN_CENTER)
 
1121
        savesizer = wx.GridSizer(cols = 3, hgap = 20)
 
1122
        okButton = wx.Button(panel, -1, 'OK')
 
1123
        savesizer.Add(okButton, 0, wx.ALIGN_CENTER)
 
1124
 
 
1125
        cancelButton = wx.Button(panel, -1, 'Cancel')
 
1126
        savesizer.Add(cancelButton, 0, wx.ALIGN_CENTER)
 
1127
 
 
1128
        defaultsButton = wx.Button(panel, -1, 'Revert to Defaults')
 
1129
        savesizer.Add(defaultsButton, 0, wx.ALIGN_CENTER)
 
1130
        colsizer.Add(savesizer, 1, wx.ALIGN_CENTER)
1136
1131
 
1137
1132
        resizewarningtext=StaticText('None of these settings will take effect until the next time you start BitTorrent', self.FONT-2)
1138
 
        colsizer.Add(resizewarningtext, 1, wxALIGN_CENTER)
 
1133
        colsizer.Add(resizewarningtext, 1, wx.ALIGN_CENTER)
1139
1134
 
1140
 
        border = wxBoxSizer(wxHORIZONTAL)
1141
 
        border.Add(colsizer, 1, wxEXPAND | wxALL, 4)
 
1135
        border = wx.BoxSizer(wx.HORIZONTAL)
 
1136
        border.Add(colsizer, 1, wx.EXPAND | wx.ALL, 4)
1142
1137
        
1143
1138
        panel.SetSizer(border)
1144
1139
        panel.SetAutoLayout(True)
1174
1169
        def cancelConfigs(evt, self = self):            
1175
1170
            self.cryptoMenuBox.Close()
1176
1171
 
1177
 
        EVT_BUTTON(self.cryptoMenuBox, okButton.GetId(), saveConfigs)
1178
 
        EVT_BUTTON(self.cryptoMenuBox, cancelButton.GetId(), cancelConfigs)
1179
 
        EVT_BUTTON(self.cryptoMenuBox, defaultsButton.GetId(), setDefaults)
 
1172
        wx.EVT_BUTTON(self.cryptoMenuBox, okButton.GetId(), saveConfigs)
 
1173
        wx.EVT_BUTTON(self.cryptoMenuBox, cancelButton.GetId(), cancelConfigs)
 
1174
        wx.EVT_BUTTON(self.cryptoMenuBox, defaultsButton.GetId(), setDefaults)
1180
1175
 
1181
1176
        self.cryptoMenuBox.Show ()
1182
1177
        border.Fit(panel)
1189
1184
        if self.cryptMenuBox is not None:
1190
1185
            try:
1191
1186
                self.cryptMenuBox.Close()
1192
 
            except wxPyDeadObjectError, e:
 
1187
            except wx.PyDeadObjectError, e:
1193
1188
                self.cryptMenuBox = None
1194
1189
 
1195
1190