"""
Copyright (C) 2007 Adolfo González Blázquez <code@infinicode.org>
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
of the License, 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.
If you find any bugs or have any suggestions email: code@infinicode.org
"""
import pygtk
pygtk.require("2.0")
import gtk
import gtk.glade
import gobject
import user
import os.path
class Preferences:
def __init__(self, gui):
self.gui = gui
self.prefs_dir = user.home + '/.mldonkeystats'
self.prefs_file = 'preferences'
self.file = 'mldstatsicon.glade'
self.__HOST = 'localhost'
self.__PORT = '4001'
self.__LOGIN = 'admin'
self.__PASSWORD = ''
self.read()
def get_host(self): return self.__HOST
def get_port(self): return self.__PORT
def get_login(self): return self.__LOGIN
def get_password(self): return self.__PASSWORD
def show(self):
prefs_tree = gtk.glade.XML(self.file)
self.host_entry = prefs_tree.get_widget('host_entry')
self.port_entry = prefs_tree.get_widget('port_entry')
self.login_entry = prefs_tree.get_widget('login_entry')
self.password_entry = prefs_tree.get_widget('password_entry')
self.prefs_window = prefs_tree.get_widget('prefs_window')
self.host_entry.set_text(self.get_host())
self.port_entry.set_text(self.get_port())
self.login_entry.set_text(self.get_login())
self.password_entry.set_text(self.get_password())
signals = {
'on_host_entry_changed': self.on_host_entry_changed,
'on_port_entry_changed': self.on_port_entry_changed,
'on_login_entry_changed': self.on_login_entry_changed,
'on_password_entry_changed': self.on_password_entry_changed,
'on_close_button_clicked': self.on_close_button_clicked,
'on_prefs_window_destroy': self.on_prefs_window_destroy,
}
prefs_tree.signal_autoconnect(signals)
def on_host_entry_changed(self, widget):
self.__HOST = widget.get_text()
def on_port_entry_changed(self, widget):
self.__PORT = widget.get_text()
def on_login_entry_changed(self, widget):
self.__LOGIN = widget.get_text()
def on_password_entry_changed(self, widget):
self.__PASSWORD = widget.get_text()
def on_close_button_clicked(self, widget):
self.prefs_window.destroy()
def on_prefs_window_destroy(self, widget):
self.save()
self.gui.start_reconnect(widget)
def save(self):
self.__HOST = self.host_entry.get_text()
self.__PORT = self.port_entry.get_text()
self.__LOGIN = self.login_entry.get_text()
self.__PASSWORD = self.password_entry.get_text()
if not os.path.isdir(self.prefs_dir):
os.mkdir(self.prefs_dir)
f = file(os.path.join(self.prefs_dir, self.prefs_file), 'w')
f.write(self.get_host()+'\n')
f.write(self.get_port()+'\n')
f.write(self.get_login()+'\n')
f.write(self.get_password()+'\n')
f.close()
def read(self):
if os.path.isdir(self.prefs_dir) and os.path.isfile(os.path.join(self.prefs_dir, self.prefs_file)):
f = file(os.path.join(self.prefs_dir, self.prefs_file), 'r')
self.__HOST = f.readline().rstrip()
self.__PORT = f.readline().rstrip()
self.__LOGIN = f.readline().rstrip()
self.__PASSWORD = f.readline().rstrip()