Viewing file: LyricsConfigureDialog.py (4.5 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# -*- Mode: python; coding: utf-8; tab-width: 8; indent-tabs-mode: t; -*- # # Copyright (C) 2007 James Livingston # Copyright (C) 2007 Sirio BolaƱos Puchet # # 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. # # The Rhythmbox authors hereby grants permission for non-GPL compatible # GStreamer plugins to be used and distributed together with GStreamer # and Rhythmbox. This permission is above and beyond the permissions granted # by the GPL license by which Rhythmbox is covered. If you modify this code # you may extend this exception to your version of the code, but you are not # obligated to do so. If you do not wish to do so, delete this exception # statement from your 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 St, Fifth Floor, Boston, MA 02110-1301 USA.
import gobject, gtk, gtk.glade import gconf from os import system, path
class LyricsConfigureDialog (object): def __init__(self, glade_file, gconf_keys): self.gconf = gconf.client_get_default() self.gconf_keys = gconf_keys self.gladexml = gtk.glade.XML(glade_file) self.dialog = self.gladexml.get_widget("preferences_dialog")
self.toggle1 = self.gladexml.get_widget("engine1") self.toggle2 = self.gladexml.get_widget("engine2") self.toggle3 = self.gladexml.get_widget("engine3") self.toggle4 = self.gladexml.get_widget("engine4") self.toggle5 = self.gladexml.get_widget("engine5") self.choose_button = self.gladexml.get_widget("choose_button") self.path_display = self.gladexml.get_widget("path_display")
self.choose_button.connect("clicked", self.choose_callback) self.dialog.connect("response", self.dialog_response)
# set fields from gconf engines, self.folder = self.get_prefs() if self.folder is None: self.folder = '~/.lyrics' self.path_display.set_text(self.folder) self.toggle1.set_active('astraweb.com' in engines) self.toggle2.set_active('lyrc.com.ar' in engines) self.toggle3.set_active('leoslyrics.com' in engines) self.toggle4.set_active('lyricwiki.org' in engines) self.toggle5.set_active('winampcn.com' in engines)
def dialog_response(self, dialog, response): if response == gtk.RESPONSE_OK: self.set_values() self.dialog.hide() elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT: self.dialog.hide() else: print "unexpected response type"
def set_values(self): engines = [] if self.toggle1.get_active(): engines.append('astraweb.com') if self.toggle2.get_active(): engines.append('lyrc.com.ar') if self.toggle3.get_active(): engines.append('leoslyrics.com') if self.toggle4.get_active(): engines.append('lyricwiki.org') if self.toggle5.get_active(): engines.append('winampcn.com')
if len(self.path_display.get_text()) is not 0: self.folder = self.path_display.get_text()
self.gconf.set_list(self.gconf_keys['engines'], gconf.VALUE_STRING, engines) self.gconf.set_string(self.gconf_keys['folder'], self.folder)
def choose_callback(self, widget): def response_handler(widget, response): if response == gtk.RESPONSE_OK: path = self.chooser.get_filename() self.chooser.destroy() self.path_display.set_text(path) else: self.chooser.destroy()
buttons = (gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE, gtk.STOCK_OK, gtk.RESPONSE_OK) self.chooser = gtk.FileChooserDialog(title=_("Choose lyrics folder..."), parent=None, action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, buttons=buttons) self.chooser.connect("response", response_handler) self.chooser.set_modal(True) self.chooser.set_transient_for(self.dialog) self.chooser.present()
def get_dialog (self): return self.dialog def get_prefs (self): try: engines = gconf.client_get_default().get_list(self.gconf_keys['engines'], gconf.VALUE_STRING) if engines is None: engines = [] except gobject.GError, e: print e engines = [] folder = gconf.client_get_default().get_string(self.gconf_keys['folder'])
print "lyric engines: " + str (engines) print "lyric folder: " + folder return (engines, folder)
|