[rhythmbox/gobject-introspection: 18/34] port lyrics plugin to gi
- From: Jonathan Matthew <jmatthew src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rhythmbox/gobject-introspection: 18/34] port lyrics plugin to gi
- Date: Wed, 14 Jul 2010 05:57:35 +0000 (UTC)
commit 5388a52acea700f60290888be440590c438bf3ba
Author: Jonathan Matthew <jonathan d14n org>
Date: Tue Jul 13 13:46:22 2010 +1000
port lyrics plugin to gi
plugins/lyrics/lyrics/LyricsConfigureDialog.py | 33 ++++++------
plugins/lyrics/lyrics/LyricsParse.py | 10 ++--
plugins/lyrics/lyrics/__init__.py | 65 ++++++++++++------------
3 files changed, 54 insertions(+), 54 deletions(-)
---
diff --git a/plugins/lyrics/lyrics/LyricsConfigureDialog.py b/plugins/lyrics/lyrics/LyricsConfigureDialog.py
index 1a5877d..284d429 100644
--- a/plugins/lyrics/lyrics/LyricsConfigureDialog.py
+++ b/plugins/lyrics/lyrics/LyricsConfigureDialog.py
@@ -27,16 +27,18 @@
from LyricsSites import lyrics_sites
-import gobject, gtk
-import gconf
+import gobject
+import gi
+
from os import system, path
+from gi.repository import Gtk, GConf
class LyricsConfigureDialog (object):
def __init__(self, builder_file, gconf_keys):
- self.gconf = gconf.client_get_default()
+ self.gconf = GConf.Client.get_default()
self.gconf_keys = gconf_keys
- builder = gtk.Builder()
+ builder = Gtk.Builder()
builder.add_from_file(builder_file)
self.dialog = builder.get_object("preferences_dialog")
@@ -58,7 +60,7 @@ class LyricsConfigureDialog (object):
self.site_checks = {}
for s in lyrics_sites:
site_id = s['id']
- checkbutton = gtk.CheckButton(label = s['name'])
+ checkbutton = Gtk.CheckButton(label = s['name'])
checkbutton.set_active(s['id'] in engines)
self.site_checks[site_id] = checkbutton
site_box.pack_start(checkbutton)
@@ -66,10 +68,10 @@ class LyricsConfigureDialog (object):
site_box.show_all()
def dialog_response(self, dialog, response):
- if response == gtk.RESPONSE_OK:
+ if response == Gtk.ResponseType.OK:
self.set_values()
self.dialog.hide()
- elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
+ elif response == Gtk.ResponseType.CANCEL or response == Gtk.ResponseType.DELETE_EVENT:
self.dialog.hide()
else:
print "unexpected response type"
@@ -88,23 +90,23 @@ class LyricsConfigureDialog (object):
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_list(self.gconf_keys['engines'], GConf.ValueType.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:
+ if response == Gtk.ResponseType.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..."),
+ buttons = (Gtk.STOCK_CLOSE, Gtk.ResponseTypeCLOSE,
+ Gtk.STOCK_OK, Gtk.ResponseType.OK)
+ self.chooser = Gtk.FileChooserDialog(title=_("Choose lyrics folder..."),
parent=None,
- action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
+ action=Gtk.FileChooserAction.SELECT_FOLDER,
buttons=buttons)
self.chooser.connect("response", response_handler)
self.chooser.set_modal(True)
@@ -116,15 +118,14 @@ class LyricsConfigureDialog (object):
def get_prefs (self):
try:
- engines = gconf.client_get_default().get_list(self.gconf_keys['engines'], gconf.VALUE_STRING)
+ engines = GConf.Client.get_default().get_list(self.gconf_keys['engines'], GConf.ValueType.STRING)
if engines is None:
engines = []
except gobject.GError, e:
print e
engines = []
- folder = gconf.client_get_default().get_string(self.gconf_keys['folder'])
+ folder = GConf.Client.get_default().get_string(self.gconf_keys['folder'])
print "lyric engines: " + str (engines)
print "lyric folder: " + folder
return (engines, folder)
-
diff --git a/plugins/lyrics/lyrics/LyricsParse.py b/plugins/lyrics/lyrics/LyricsParse.py
index 1636b72..610791a 100644
--- a/plugins/lyrics/lyrics/LyricsParse.py
+++ b/plugins/lyrics/lyrics/LyricsParse.py
@@ -24,13 +24,14 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
import urllib
import re
import gobject
-import gconf
import rb
+import gi
+from gi.repository import GConf
+
from LyricsSites import lyrics_sites
class Parser (object):
@@ -39,7 +40,8 @@ class Parser (object):
self.artist = artist
try:
- self.engines = gconf.client_get_default().get_list(gconf_keys['engines'], gconf.VALUE_STRING)
+ gconf = GConf.Client.get_default()
+ self.engines = gconf.get_list(gconf_keys['engines'], gconf.VALUE_STRING)
if self.engines is None:
self.engines = []
except gobject.GError, e:
@@ -68,5 +70,3 @@ class Parser (object):
def get_lyrics(self, callback, *data):
rb.Coroutine (self.searcher, callback, *data).begin ()
-
-
diff --git a/plugins/lyrics/lyrics/__init__.py b/plugins/lyrics/lyrics/__init__.py
index 49f4372..beba592 100644
--- a/plugins/lyrics/lyrics/__init__.py
+++ b/plugins/lyrics/lyrics/__init__.py
@@ -25,14 +25,13 @@
# 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.
-#
-# TODO:
-# - check that the lyrics returned even remotely match the request?
import os, re
-import gtk
-import gconf
-import rhythmdb, rb
+import gi
+
+import rb
+from gi.repository import Gtk, GConf
+from gi.repository import RB, RhythmDB
import LyricsParse
from LyricsConfigureDialog import LyricsConfigureDialog
@@ -58,18 +57,18 @@ gconf_keys = { 'engines' : '/apps/rhythmbox/plugins/lyrics/engines',
def create_lyrics_view():
- tview = gtk.TextView()
- tview.set_wrap_mode(gtk.WRAP_WORD)
+ tview = Gtk.TextView()
+ tview.set_wrap_mode(Gtk.WrapMode.WORD)
tview.set_editable(False)
tview.set_left_margin(6)
tview.set_size_request (0, 0)
- sw = gtk.ScrolledWindow()
+ sw = Gtk.ScrolledWindow()
sw.add(tview)
- sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- sw.set_shadow_type(gtk.SHADOW_IN)
+ sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
+ sw.set_shadow_type(Gtk.ShadowType.IN)
- vbox = gtk.VBox(spacing=12)
+ vbox = Gtk.VBox(spacing=12)
vbox.pack_start(sw, expand=True)
return (vbox, tview.get_buffer(), tview)
@@ -108,8 +107,8 @@ def get_artist_and_title(db, entry):
if stream_song_title is not None:
(artist, title) = extract_artist_and_title(stream_song_title)
else:
- artist = db.entry_get(entry, rhythmdb.PROP_ARTIST)
- title = db.entry_get(entry, rhythmdb.PROP_TITLE)
+ artist = db.entry_get(entry, RhythmDB.PropType.ARTIST)
+ title = db.entry_get(entry, RhythmDB.PropType.TITLE)
return (artist, title)
def extract_artist_and_title(stream_song_title):
@@ -128,9 +127,9 @@ def extract_artist_and_title(stream_song_title):
return (artist, title)
def build_cache_path(artist, title):
- folder = gconf.client_get_default().get_string(gconf_keys['folder'])
+ folder = GConf.Client.get_default().get_string(gconf_keys['folder'])
if folder is None or folder == "":
- folder = os.path.join(rb.user_cache_dir(), "lyrics")
+ folder = os.path.join(RB.user_cache_dir(), "lyrics")
lyrics_folder = os.path.expanduser (folder)
if not os.path.exists (lyrics_folder):
@@ -226,15 +225,15 @@ class LyricPane(object):
self.get_lyrics()
- self.edit = gtk.ToggleButton(_("_Edit"))
+ self.edit = Gtk.ToggleButton(label=_("_Edit"))
self.edit.connect('toggled', edit_callback)
- self.discard = gtk.Button(_("_Search again"))
+ self.discard = Gtk.Button(label=_("_Search again"))
self.discard.connect('clicked', discard_callback)
- self.clear = gtk.Button(stock=gtk.STOCK_CLEAR)
+ self.clear = Gtk.Button(stock=Gtk.STOCK_CLEAR)
self.clear.connect('clicked', clear_callback)
- self.hbox = gtk.HButtonBox()
+ self.hbox = Gtk.HButtonBox()
self.hbox.set_spacing (6)
- self.hbox.set_layout(gtk.BUTTONBOX_END)
+ self.hbox.set_layout(Gtk.ButtonBoxStyle.END)
self.hbox.add(self.edit)
self.hbox.add(self.clear)
self.hbox.add(self.discard)
@@ -291,20 +290,20 @@ class LyricPane(object):
lyrics_grabber.search_lyrics(self.__got_lyrics)
-class LyricWindow (gtk.Window):
+class LyricWindow (Gtk.Window):
def __init__(self, shell):
- gtk.Window.__init__(self)
+ Gtk.Window.__init__(self)
self.shell = shell
self.set_border_width(12)
- close = gtk.Button(stock=gtk.STOCK_CLOSE)
+ close = Gtk.Button(stock=Gtk.STOCK_CLOSE)
close.connect('clicked', lambda w: self.destroy())
(lyrics_view, buffer, tview) = create_lyrics_view()
self.buffer = buffer
- bbox = gtk.HButtonBox()
- bbox.set_layout(gtk.BUTTONBOX_END)
+ bbox = Gtk.HButtonBox()
+ bbox.set_layout(Gtk.ButtonBoxStyle.END)
bbox.pack_start(close)
lyrics_view.pack_start(bbox, expand=False)
@@ -318,7 +317,7 @@ class LyricWindow (gtk.Window):
def destroy(self):
sp = self.shell.get_player ()
sp.disconnect (self.ppc_id)
- gtk.Window.destroy(self)
+ Gtk.Window.destroy(self)
def playing_property_changed(self, player, uri, prop, old_val, new_val):
if (prop == STREAM_SONG_TITLE):
@@ -336,20 +335,20 @@ class LyricWindow (gtk.Window):
lyrics_grabber.search_lyrics(self.__got_lyrics)
-class LyricsDisplayPlugin(rb.Plugin):
+class LyricsDisplayPlugin(RB.Plugin):
def __init__ (self):
- rb.Plugin.__init__ (self)
+ RB.Plugin.__init__ (self)
self.window = None
def activate (self, shell):
self.shell = shell
- self.action = gtk.Action ('ViewSongLyrics', _('Song L_yrics'),
- _('Display lyrics for the playing song'),
- 'rb-song-lyrics')
+ self.action = Gtk.Action (name='ViewSongLyrics', label=_('Song L_yrics'),
+ tooltip=_('Display lyrics for the playing song'),
+ stock='rb-song-lyrics')
self.activate_id = self.action.connect ('activate', self.show_song_lyrics, shell)
- self.action_group = gtk.ActionGroup ('SongLyricsPluginActions')
+ self.action_group = Gtk.ActionGroup (name='SongLyricsPluginActions')
self.action_group.add_action_with_accel (self.action, "<control>L")
uim = shell.get_ui_manager ()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]