totem r5891 - in trunk: . po src/plugins/jamendo
- From: pwithnall svn gnome org
- To: svn-commits-list gnome org
- Subject: totem r5891 - in trunk: . po src/plugins/jamendo
- Date: Sat, 3 Jan 2009 18:49:04 +0000 (UTC)
Author: pwithnall
Date: Sat Jan 3 18:49:04 2009
New Revision: 5891
URL: http://svn.gnome.org/viewvc/totem?rev=5891&view=rev
Log:
2009-01-03 Philip Withnall <philip tecnocode co uk>
* src/plugins/jamendo/Makefile.am:
* src/plugins/jamendo/jamendo.glade:
* src/plugins/jamendo/jamendo.py: Convert the Jamendo plugin to
GtkBuilder and fix some translation and UI issues. With
contributions
from izi <izimobil gmail com>. (Closes: #566123)
* po/POTFILES.in: Ensure Jamendo plugin's files are translated.
(Closes: #566123)
Added:
trunk/src/plugins/jamendo/jamendo.ui
Removed:
trunk/src/plugins/jamendo/jamendo.glade
Modified:
trunk/ChangeLog
trunk/po/ChangeLog
trunk/po/POTFILES.in
trunk/src/plugins/jamendo/Makefile.am
trunk/src/plugins/jamendo/jamendo.py
Modified: trunk/po/POTFILES.in
==============================================================================
--- trunk/po/POTFILES.in (original)
+++ trunk/po/POTFILES.in Sat Jan 3 18:49:04 2009
@@ -43,7 +43,8 @@
src/plugins/galago/totem-galago.c
[type: gettext/ini]src/plugins/gromit/gromit.totem-plugin.in
src/plugins/gromit/totem-gromit.c
-src/plugins/jamendo/jamendo.glade
+[type: gettext/glade]src/plugins/jamendo/jamendo.ui
+[type: gettext/ini]src/plugins/jamendo/jamendo.totem-plugin.in
src/plugins/jamendo/jamendo.py
[type: gettext/ini]src/plugins/lirc/lirc.totem-plugin.in
src/plugins/lirc/totem-lirc.c
Modified: trunk/src/plugins/jamendo/Makefile.am
==============================================================================
--- trunk/src/plugins/jamendo/Makefile.am (original)
+++ trunk/src/plugins/jamendo/Makefile.am Sat Jan 3 18:49:04 2009
@@ -6,7 +6,7 @@
%.totem-plugin: %.totem-plugin.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
plugin_DATA = $(plugin_in_files:.totem-plugin.in=.totem-plugin)
-ui_DATA = jamendo.glade
+ui_DATA = jamendo.ui
EXTRA_DIST = $(plugin_in_files) $(ui_DATA) jamendo.py
Modified: trunk/src/plugins/jamendo/jamendo.py
==============================================================================
--- trunk/src/plugins/jamendo/jamendo.py (original)
+++ trunk/src/plugins/jamendo/jamendo.py Sat Jan 3 18:49:04 2009
@@ -36,7 +36,6 @@
import gconf
import gobject
import gtk
-import gtk.glade
import pango
import socket
import threading
@@ -54,7 +53,7 @@
type=gtk.MESSAGE_ERROR,
buttons=gtk.BUTTONS_OK
)
- dlg.set_markup(_('You need to install the python simplejson module'))
+ dlg.set_markup(_('You need to install the Python simplejson module.'))
dlg.run()
dlg.destroy()
raise
@@ -83,60 +82,51 @@
self.gconf = gconf.client_get_default()
self.init_settings()
- # init glade interface
- f = os.path.join(os.path.dirname(__file__), 'jamendo.glade')
- self.glade = gtk.glade.XML(f)
- self.config_dialog = self.glade.get_widget('config_dialog')
- self.popup = self.glade.get_widget('popup_menu')
- self.window = self.glade.get_widget('mainwindow')
- self.container = self.glade.get_widget('mainwindow_container')
- self.notebook = self.glade.get_widget('notebook')
- self.search_entry = self.glade.get_widget('search_entry')
- self.search_combo = self.glade.get_widget('search_combo')
- # XXX active property set in glade file does not work
+ def activate(self, totem_object):
+ """
+ Plugin activation.
+ """
+ # Initialise the interface
+ self.builder = self.load_interface("jamendo.ui", True,
+ totem_object.get_main_window(), self)
+ self.config_dialog = self.builder.get_object('config_dialog')
+ self.popup = self.builder.get_object('popup_menu')
+ container = self.builder.get_object('container')
+ self.notebook = self.builder.get_object('notebook')
+ self.search_entry = self.builder.get_object('search_entry')
+ self.search_combo = self.builder.get_object('search_combo')
self.search_combo.set_active(0)
- self.album_button = self.glade.get_widget('album_button')
- self.previous_button = self.glade.get_widget('previous_button')
- self.next_button = self.glade.get_widget('next_button')
+ self.album_button = self.builder.get_object('album_button')
+ self.previous_button = self.builder.get_object('previous_button')
+ self.next_button = self.builder.get_object('next_button')
self.progressbars = [
- self.glade.get_widget('results_progressbar'),
- self.glade.get_widget('popular_progressbar'),
- self.glade.get_widget('latest_progressbar'),
+ self.builder.get_object('results_progressbar'),
+ self.builder.get_object('popular_progressbar'),
+ self.builder.get_object('latest_progressbar'),
]
self.treeviews = [
- self.glade.get_widget('results_treeview'),
- self.glade.get_widget('popular_treeview'),
- self.glade.get_widget('latest_treeview'),
+ self.builder.get_object('results_treeview'),
+ self.builder.get_object('popular_treeview'),
+ self.builder.get_object('latest_treeview'),
]
self.setup_treeviews()
- # connect signals to slots
- self.glade.signal_autoconnect({
- 'on_search_button_clicked': self.on_search_button_clicked,
- 'on_search_entry_activate': self.on_search_entry_activate,
- 'on_notebook_switch_page': self.on_notebook_switch_page,
- 'on_treeview_row_activated': self.on_treeview_row_activated,
- 'on_treeview_row_clicked': self.on_treeview_row_clicked,
- 'on_previous_button_clicked': self.on_previous_button_clicked,
- 'on_next_button_clicked': self.on_next_button_clicked,
- 'on_album_button_clicked': self.on_album_button_clicked,
- 'on_cancel_button_clicked': self.on_cancel_button_clicked,
- 'on_ok_button_clicked': self.on_ok_button_clicked,
- 'on_add_to_playlist_activate': self.on_add_to_playlist_activate,
- 'on_open_jamendo_album_page_activate':
- self.on_open_jamendo_album_page_activate,
- })
+ # Set up signals
+ self.builder.get_object('search_button').connect('clicked', self.on_search_button_clicked)
+ self.search_entry.connect('activate', self.on_search_entry_activate)
+ self.notebook.connect('switch-page', self.on_notebook_switch_page)
+ self.previous_button.connect('clicked', self.on_previous_button_clicked)
+ self.next_button.connect('clicked', self.on_next_button_clicked)
+ self.album_button.connect('clicked', self.on_album_button_clicked)
+ self.builder.get_object('cancel_button').connect('clicked', self.on_cancel_button_clicked)
+ self.builder.get_object('ok_button').connect('clicked', self.on_ok_button_clicked)
+ self.builder.get_object('add_to_playlist').connect('activate', self.on_add_to_playlist_activate)
+ self.builder.get_object('jamendo_album_page').connect('activate', self.on_open_jamendo_album_page_activate)
- self.reset()
-
- def activate(self, totem_object):
- """
- Plugin activation.
- """
self.totem = totem_object
- # unparent the container to embed it into totem sidebar
- self.container.unparent()
- self.totem.add_sidebar_page("jamendo", _("Jamendo"), self.container)
+ self.reset()
+ container.show_all()
+ self.totem.add_sidebar_page("jamendo", _("Jamendo"), container)
def deactivate(self, totem_object):
"""
@@ -150,9 +140,9 @@
"""
format = self.gconf.get_string('%s/format' % gconf_key)
num_per_page = self.gconf.get_int('%s/num_per_page' % gconf_key)
- combo = self.glade.get_widget('preferred_format_combo')
+ combo = self.builder.get_object('preferred_format_combo')
combo.set_active(self.AUDIO_FORMATS.index(format))
- spinbutton = self.glade.get_widget('album_num_spinbutton')
+ spinbutton = self.builder.get_object('album_num_spinbutton')
spinbutton.set_value(num_per_page)
return self.config_dialog
@@ -202,16 +192,6 @@
self.current_treeview = self.treeviews[0]
for w in self.treeviews:
w.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
- #w.set_rubber_banding(True)
- # build a treestore
- model = gtk.TreeStore(
- gobject.TYPE_PYOBJECT, # album or track dict
- gtk.gdk.Pixbuf, # album cover or track icon
- str, # album or track description
- str, # album or track duration
- str, # album or track tooltip
- )
- w.set_model(model)
# build pixbuf column
cell = gtk.CellRendererPixbuf()
@@ -229,12 +209,7 @@
col.set_attributes(cell, markup=2)
col.set_expand(True)
w.append_column(col)
- w.connect_after(
- 'size-allocate',
- self.on_treeview_size_allocate,
- col,
- cell
- )
+ w.connect_after('size-allocate', self.on_treeview_size_allocate, col, cell)
# duration column
cell = gtk.CellRendererText()
@@ -250,6 +225,11 @@
w.set_show_expanders(False) # we manage internally expand/collapse
w.set_tooltip_column(4) # set the tooltip column
+ # Connect signals
+ w.connect("button-press-event", self.on_treeview_row_clicked)
+ w.connect("row-activated", self.on_treeview_row_activated)
+
+
def add_treeview_item(self, treeview, album):
if not isinstance(album['image'], gtk.gdk.Pixbuf):
# album image pixbuf is not yet built
@@ -268,8 +248,10 @@
dur = self._format_duration(album['duration'])
# format tooltip
try:
- release = time.strptime(album['dates']['release'][0:10], '%Y-%m-%d')
- release = time.strftime('%x', release)
+ # Translators: this is the release date of an album in Python strptime format
+ release = time.strptime(album['dates']['release'][0:10], _('%Y-%m-%d'))
+ # Translators: this is the release time of an album in Python strftime format
+ release = time.strftime(_('%x'), release)
except:
release = ''
tip = '\n'.join([
@@ -287,7 +269,9 @@
icon = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, 1, 1)
for i, track in enumerate(album['tracks']):
# track title
- tt = '<small>%02d. %s</small>' % \
+ # Translators: this is the title of a track in Python format
+ # (first argument is the track number, second is the track title)
+ tt = ('<small>%s</small>' % _('%02d. %s')) % \
(i+1, self._format_str(track['name']))
# track duration
td = self._format_duration(track['duration'])
@@ -402,7 +386,7 @@
buttons=gtk.BUTTONS_OK
)
dlg.set_markup(
- '<b>%s</b>' % _('An error occured while fetching albums.')
+ '<b>%s</b>' % _('An error occurred while fetching albums.')
)
# managing exceptions with urllib is a real PITA... :(
if hasattr(exc, 'reason'):
@@ -414,9 +398,9 @@
except:
reason = str(exc)
reason = reason.capitalize()
- msg = _('Failed to connect to jamendo server.\n%s.') % reason
+ msg = _('Failed to connect to Jamendo server.\n%s.') % reason
elif hasattr(exc, 'code'):
- msg = _('The jamendo server returned code %s') % exc.code
+ msg = _('The Jamendo server returned code %s.') % exc.code
else:
msg = str(exc)
dlg.format_secondary_text(msg)
@@ -561,8 +545,8 @@
"""
Called when the user clicked ok in the config dialog.
"""
- combo = self.glade.get_widget('preferred_format_combo')
- spinbutton = self.glade.get_widget('album_num_spinbutton')
+ combo = self.builder.get_object('preferred_format_combo')
+ spinbutton = self.builder.get_object('album_num_spinbutton')
format = self.AUDIO_FORMATS[combo.get_active()]
self.gconf.set_string('%s/format' % gconf_key, format)
num_per_page = int(spinbutton.get_value())
@@ -646,8 +630,12 @@
try:
secs = int(secs)
if secs >= 3600:
- return time.strftime('%H:%M:%S', time.gmtime(secs))
- return time.strftime('%M:%S', time.gmtime(secs))
+ # Translators: time formatting (in Python strftime format) for the Jamendo plugin
+ # for times longer than an hour
+ return time.strftime(_('%H:%M:%S'), time.gmtime(secs))
+ # Translators: time formatting (in Python strftime format) for the Jamendo plugin
+ # for times shorter than an hour
+ return time.strftime(_('%M:%S'), time.gmtime(secs))
except:
return ''
Added: trunk/src/plugins/jamendo/jamendo.ui
==============================================================================
--- (empty file)
+++ trunk/src/plugins/jamendo/jamendo.ui Sat Jan 3 18:49:04 2009
@@ -0,0 +1,771 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+ <object class="GtkAdjustment" id="adjustment1">
+ <property name="upper">100</property>
+ <property name="lower">1</property>
+ <property name="page_increment">0</property>
+ <property name="step_increment">1</property>
+ <property name="page_size">0</property>
+ <property name="value">10</property>
+ </object>
+ <object class="GtkListStore" id="search_combo_model">
+ <columns>
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">By artist</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">By tag</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="preferred_format_combo_model">
+ <columns>
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0">Ogg</col>
+ </row>
+ <row>
+ <col id="0">MP3</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkTreeStore" id="results_treeview_model">
+ <columns>
+ <column type="PyObject"/>
+ <column type="GdkPixbuf"/>
+ <column type="gchararray"/>
+ <column type="gchararray"/>
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkTreeStore" id="popular_treeview_model">
+ <columns>
+ <column type="PyObject"/>
+ <column type="GdkPixbuf"/>
+ <column type="gchararray"/>
+ <column type="gchararray"/>
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkTreeStore" id="latest_treeview_model">
+ <columns>
+ <column type="PyObject"/>
+ <column type="GdkPixbuf"/>
+ <column type="gchararray"/>
+ <column type="gchararray"/>
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkUIManager" id="uimanager1">
+ <child>
+ <object class="GtkActionGroup" id="actiongroup1">
+ <child>
+ <object class="GtkAction" id="add_to_playlist">
+ <property name="stock_id">gtk-add</property>
+ <property name="name">add_to_playlist</property>
+ <property name="label" translatable="yes">_Add to Playlist</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkAction" id="jamendo_album_page">
+ <property name="stock_id">gtk-jump-to</property>
+ <property name="name">jamendo_album_page</property>
+ <property name="label" translatable="yes">_Open Jamendo Album Page in Browser</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <ui>
+ <popup name="popup_menu">
+ <menuitem action="add_to_playlist"/>
+ <menuitem action="jamendo_album_page"/>
+ </popup>
+ </ui>
+ </object>
+ <object class="GtkVBox" id="container">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkHBox" id="search_hbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkEntry" id="search_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"/>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">●</property>
+ <property name="activates_default">False</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="search_combo">
+ <property name="model">search_combo_model</property>
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="renderer1"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="search_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkImage" id="track_icon">
+ <property name="visible">True</property>
+ <property name="stock">gtk-find</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkNotebook" id="notebook">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_tabs">True</property>
+ <property name="show_border">True</property>
+ <property name="tab_pos">GTK_POS_TOP</property>
+ <property name="scrollable">False</property>
+ <property name="enable_popup">False</property>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkScrolledWindow" id="results_scrolledwindow">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+ <child>
+ <object class="GtkViewport" id="viewport1">
+ <property name="visible">True</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <object class="GtkVBox" id="results_vbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkTreeView" id="results_treeview">
+ <property name="model">results_treeview_model</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ <property name="rules_hint">False</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkProgressBar" id="results_progressbar">
+ <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+ <property name="fraction">0</property>
+ <property name="pulse_step">0.10000000149</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="results_tab_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Search Results</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">True</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkScrolledWindow" id="popular_scrolledwindow">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+ <child>
+ <object class="GtkViewport" id="viewport2">
+ <property name="visible">True</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <object class="GtkVBox" id="popular_vbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkTreeView" id="popular_treeview">
+ <property name="model">popular_treeview_model</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ <property name="rules_hint">False</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkProgressBar" id="popular_progressbar">
+ <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+ <property name="fraction">0</property>
+ <property name="pulse_step">0.10000000149</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="popular_tab_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Popular</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">True</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox3">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkScrolledWindow" id="latest_scrolledwindow">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+ <child>
+ <object class="GtkViewport" id="viewport3">
+ <property name="visible">True</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <object class="GtkVBox" id="latest_vbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkTreeView" id="latest_treeview">
+ <property name="model">latest_treeview_model</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ <property name="rules_hint">False</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkProgressBar" id="latest_progressbar">
+ <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+ <property name="fraction">0</property>
+ <property name="pulse_step">0.10000000149</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="latest_tab_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Latest Releases</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">True</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkButton" id="album_button">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkHBox" id="album_button_hbox">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkImage" id="album_button_image">
+ <property name="visible">True</property>
+ <property name="stock">gtk-jump-to</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="download_button_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Jamendo Album Page</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkButton" id="previous_button">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkImage" id="previous_button_image">
+ <property name="visible">True</property>
+ <property name="stock">gtk-go-back</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="next_button">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkImage" id="next_button_image">
+ <property name="visible">True</property>
+ <property name="stock">gtk-go-forward</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <object class="GtkDialog" id="config_dialog">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Jamendo Plugin Configuration</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+ <property name="modal">True</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <property name="has_separator">False</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="config_dialog_container">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="buttons">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <child>
+ <object class="GtkButton" id="cancel_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-cancel</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="ok_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-ok</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkTable" id="table">
+ <property name="visible">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">2</property>
+ <child>
+ <object class="GtkLabel" id="album_num_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Number of albums to _retrieve</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic-widget">album_num_spinbutton</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="album_num_spinbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="climb_rate">1</property>
+ <property name="digits">0</property>
+ <property name="numeric">False</property>
+ <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+ <property name="snap_to_ticks">False</property>
+ <property name="wrap">False</property>
+ <property name="adjustment">adjustment1</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="preferred_format_combo">
+ <property name="model">preferred_format_combo_model</property>
+ <property name="visible">True</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkCellRendererText" id="renderer2"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="preferred_format_label">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Preferred audio _format</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic-widget">preferred_format_combo</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_END</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">cancel_button</action-widget>
+ <action-widget response="0">ok_button</action-widget>
+ </action-widgets>
+ </object>
+ <object class="GtkMenu" constructor="uimanager1" id="popup_menu"/>
+</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]