mirror of
https://github.com/logos-storage/deluge.git
synced 2026-01-12 18:13:09 +00:00
208 lines
13 KiB
Python
208 lines
13 KiB
Python
# -*- coding: utf-8 -*-
|
|
#
|
|
# Copyright (C) Marcos Pinto 2007 <markybob@gmail.com>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2, or (at your option)
|
|
# any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, write to:
|
|
# The Free Software Foundation, Inc.,
|
|
# 51 Franklin Street, Fifth Floor
|
|
# Boston, MA 02110-1301, USA.
|
|
#
|
|
# In addition, as a special exception, the copyright holders give
|
|
# permission to link the code of portions of this program with the OpenSSL
|
|
# library.
|
|
# You must obey the GNU General Public License in all respects for all of
|
|
# the code used other than OpenSSL. If you modify file(s) with this
|
|
# exception, you may extend this exception to your version of the file(s),
|
|
# but you are not obligated to do so. If you do not wish to do so, delete
|
|
# this exception statement from your version. If you delete this exception
|
|
# statement from all source files in the program, then also delete it here.
|
|
|
|
class WizardGTK:
|
|
def __init__(self):
|
|
import gtk
|
|
import gtk.glade
|
|
import os
|
|
import deluge
|
|
import deluge.common
|
|
import deluge.pref
|
|
self.wtree = gtk.glade.XML(deluge.common.get_glade_file("wizard.glade"), domain='deluge')
|
|
self.wtree.signal_autoconnect({'apply_prefs': self.apply_prefs,
|
|
'cancel': self.cancel,
|
|
'toggle': self.toggle,
|
|
'close': self.cancel})
|
|
|
|
self.window = self.wtree.get_widget("wizard")
|
|
#activate forward buttons for all pages
|
|
self.window.set_page_complete(self.wtree.get_widget('label1'), True)
|
|
self.window.set_page_complete(self.wtree.get_widget('vbox1'), True)
|
|
self.window.set_page_complete(self.wtree.get_widget('vbox2'), True)
|
|
self.window.set_page_complete(self.wtree.get_widget('vbox3'), True)
|
|
self.window.set_page_complete(self.wtree.get_widget('chk_send_info'), True)
|
|
config_file = deluge.common.CONFIG_DIR + "/prefs.state"
|
|
self.config = deluge.pref.Preferences(config_file, False,
|
|
defaults={"listen_on" : [6881,6889],
|
|
"send_info": True,
|
|
"random_port": False,
|
|
"max_active_torrents" : 8,
|
|
"max_upload_slots_global" : 15,
|
|
"max_connections_global" : 200,
|
|
"max_upload_speed" : -1,
|
|
"default_download_path" : os.path.expanduser("~/"),
|
|
"use_default_dir" : False
|
|
})
|
|
try:
|
|
self.config.load()
|
|
except IOError:
|
|
pass
|
|
else:
|
|
self.wtree.get_widget('spin_port_min').set_value(self.config.get("listen_on")[0])
|
|
self.wtree.get_widget('spin_port_max').set_value(self.config.get("listen_on")[1])
|
|
self.wtree.get_widget('chk_send_info').set_active(self.config.get("send_info"))
|
|
self.wtree.get_widget('chk_random_ports').set_active(self.config.get("random_port"))
|
|
self.wtree.get_widget('radio_save_all_to').set_active(self.config.get("use_default_dir"))
|
|
self.wtree.get_widget('download_path_button').set_filename(self.config.get("default_download_path"))
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(self.config.get("max_connections_global"))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(self.config.get("max_upload_slots_global"))
|
|
self.wtree.get_widget('spin_max_upload').set_value(self.config.get("max_upload_speed"))
|
|
self.wtree.get_widget('spin_torrents').set_value(self.config.get("max_active_torrents"))
|
|
|
|
#show wizard
|
|
self.window.show()
|
|
gtk.main()
|
|
|
|
def toggle(self, args=None):
|
|
self.wtree.get_widget('spin_port_min').set_sensitive(
|
|
not self.wtree.get_widget('chk_random_ports').get_active())
|
|
self.wtree.get_widget('spin_port_max').set_sensitive(
|
|
not self.wtree.get_widget('chk_random_ports').get_active())
|
|
if self.wtree.get_widget('combo_upload_line').get_active_text() == "28k":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('25'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('1'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('2'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('1'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "56k":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('30'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('3'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('2'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('1'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "64k":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('75'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('2'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('5'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('1'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "96k":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('75'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('3'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('7'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('1'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "128k":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('88'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('3'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('9'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('1'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "192k":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('90'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('3'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('17'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('1'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "256k":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('130'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('3'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('17'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('1'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "384k":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('230'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('4'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('35'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('3'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "512k":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('250'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('4'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('47'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('3'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "640k":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('375'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('4'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('60'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('4'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "768k":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('450'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('5'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('72'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('5'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "1Mbit":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('600'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('6'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('92'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('5'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "2Mbit":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('750'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('8'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('186'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('9'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "10Mbit":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('800'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('25'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('1120'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('15'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "20Mbit":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('850'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('30'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('2240'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('15'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "40Mbit":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('900'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('35'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('4480'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('15'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "50Mbit":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('950'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('50'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('5600'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('20'))
|
|
elif self.wtree.get_widget('combo_upload_line').get_active_text() == "100Mbit":
|
|
self.wtree.get_widget('spin_max_connections_global').set_value(float('1000'))
|
|
self.wtree.get_widget('spin_max_upload_slots_global').set_value(float('50'))
|
|
self.wtree.get_widget('spin_max_upload').set_value(float('11200'))
|
|
self.wtree.get_widget('spin_torrents').set_value(float('25'))
|
|
|
|
def create_file(self):
|
|
import os
|
|
import deluge
|
|
import deluge.common
|
|
f = open(os.path.join(deluge.common.CONFIG_DIR, 'firstrun'), 'w')
|
|
f.write("")
|
|
f.close
|
|
|
|
def cancel(self, args=None):
|
|
import gtk
|
|
self.create_file()
|
|
self.window.destroy()
|
|
gtk.main_quit()
|
|
|
|
def apply_prefs(self, args=None):
|
|
import gtk
|
|
self.create_file()
|
|
self.config.set('random_port', self.wtree.get_widget('chk_random_ports').get_active())
|
|
self.config.set("listen_on", [self.wtree.get_widget("spin_port_min").get_value(), self.wtree.get_widget("spin_port_max").get_value()])
|
|
self.config.set("send_info", self.wtree.get_widget("chk_send_info").get_active())
|
|
self.config.set("max_connections_global", int(self.wtree.get_widget('spin_max_connections_global').get_value()))
|
|
self.config.set("max_upload_slots_global", int(self.wtree.get_widget('spin_max_upload_slots_global').get_value()))
|
|
self.config.set("max_upload_speed", int(self.wtree.get_widget('spin_max_upload').get_value()))
|
|
self.config.set("max_active_torrents", int(self.wtree.get_widget('spin_torrents').get_value()))
|
|
self.config.set("use_default_dir", self.wtree.get_widget('radio_save_all_to').get_active())
|
|
self.config.set("default_download_path", self.wtree.get_widget('download_path_button').get_filename())
|
|
self.config.save()
|
|
gtk.main_quit()
|