added revised preferences allowing to configure what providers to be used and in what order
Esse commit está contido em:
@@ -94,21 +94,26 @@ class CoverArtAlbumSearchPlugin(GObject.Object, Peas.Activatable):
|
||||
|
||||
gs = GSetting()
|
||||
setting = gs.get_setting(gs.Path.PLUGIN)
|
||||
if setting[gs.PluginKey.EMBEDDED_SEARCH]:
|
||||
searches.append(CoverAlbumSearch())
|
||||
if setting[gs.PluginKey.LOCAL_SEARCH]:
|
||||
searches.append(LocalSearch())
|
||||
if setting[gs.PluginKey.CACHE_SEARCH]:
|
||||
searches.append(OldCacheSearch())
|
||||
if setting[gs.PluginKey.LASTFM_SEARCH]:
|
||||
searches.append(LastFMSearch())
|
||||
if setting[gs.PluginKey.MUSICBRAINZ_SEARCH]:
|
||||
searches.append(MusicBrainzSearch())
|
||||
if setting[gs.PluginKey.DISCOGS_SEARCH]:
|
||||
searches.append(DiscogsSearch())
|
||||
if setting[gs.PluginKey.COVERARTARCHIVE_SEARCH]:
|
||||
searches.append(CoverartArchiveSearch())
|
||||
current_providers = setting[gs.PluginKey.PROVIDERS]
|
||||
|
||||
current_list = current_providers.split(',')
|
||||
|
||||
for provider in current_list:
|
||||
if provider == SearchPreferences.EMBEDDED_SEARCH:
|
||||
searches.append(CoverAlbumSearch())
|
||||
if provider == SearchPreferences.LOCAL_SEARCH:
|
||||
searches.append(LocalSearch())
|
||||
if provider == SearchPreferences.CACHE_SEARCH:
|
||||
searches.append(OldCacheSearch())
|
||||
if provider == SearchPreferences.LASTFM_SEARCH:
|
||||
searches.append(LastFMSearch())
|
||||
if provider == SearchPreferences.MUSICBRAINZ_SEARCH:
|
||||
searches.append(MusicBrainzSearch())
|
||||
if provider == SearchPreferences.DISCOGS_SEARCH:
|
||||
searches.append(DiscogsSearch())
|
||||
if provider == SearchPreferences.COVERARTARCHIVE_SEARCH:
|
||||
searches.append(CoverartArchiveSearch())
|
||||
|
||||
s = CoverSearch(store, key, last_time, searches)
|
||||
|
||||
return s.next_search(True)
|
||||
|
||||
@@ -24,6 +24,8 @@ from gi.repository import RB
|
||||
from gi.repository import Peas
|
||||
|
||||
import rb
|
||||
import copy
|
||||
from collections import OrderedDict
|
||||
|
||||
class GSetting:
|
||||
'''
|
||||
@@ -45,13 +47,7 @@ class GSetting:
|
||||
PLUGIN='org.gnome.rhythmbox.plugins.coverart_search_providers')
|
||||
|
||||
self.PluginKey = self._enum(
|
||||
EMBEDDED_SEARCH='embedded-search',
|
||||
DISCOGS_SEARCH='discogs-search',
|
||||
COVERARTARCHIVE_SEARCH='coverartarchive-search',
|
||||
LOCAL_SEARCH='local-search',
|
||||
CACHE_SEARCH='cache-search',
|
||||
LASTFM_SEARCH='lastfm-search',
|
||||
MUSICBRAINZ_SEARCH='musicbrainz-search')
|
||||
PROVIDERS='providers')
|
||||
|
||||
self.setting = {}
|
||||
|
||||
@@ -111,38 +107,113 @@ class SearchPreferences(GObject.Object, PeasGtk.Configurable):
|
||||
__gtype_name__ = 'CoverArtSearchProvidersPreferences'
|
||||
object = GObject.property(type=GObject.Object)
|
||||
|
||||
EMBEDDED_SEARCH='embedded-search'
|
||||
DISCOGS_SEARCH='discogs-search'
|
||||
COVERARTARCHIVE_SEARCH='coverartarchive-search'
|
||||
LOCAL_SEARCH='local-search'
|
||||
CACHE_SEARCH='cache-search'
|
||||
LASTFM_SEARCH='lastfm-search'
|
||||
MUSICBRAINZ_SEARCH='musicbrainz-search'
|
||||
|
||||
def __init__(self):
|
||||
'''
|
||||
Initialises the preferences, getting an instance of the settings saved
|
||||
by Gio.
|
||||
'''
|
||||
GObject.Object.__init__(self)
|
||||
gs = GSetting()
|
||||
self.settings = gs.get_setting(gs.Path.PLUGIN)
|
||||
|
||||
def do_create_configure_widget(self):
|
||||
'''
|
||||
Creates the plugin's preferences dialog
|
||||
'''
|
||||
|
||||
self.gs = GSetting()
|
||||
self.settings = self.gs.get_setting(self.gs.Path.PLUGIN)
|
||||
|
||||
self.provider = OrderedDict()
|
||||
|
||||
self.provider[self.EMBEDDED_SEARCH] = _("Embedded coverart")
|
||||
self.provider[self.LOCAL_SEARCH] = _("Local folder coverart")
|
||||
self.provider[self.CACHE_SEARCH] = _("Cached coverart")
|
||||
self.provider[self.LASTFM_SEARCH] = _("LastFM Internet Provider")
|
||||
self.provider[self.MUSICBRAINZ_SEARCH] = _("MusicBrainz Internet Provider")
|
||||
self.provider[self.DISCOGS_SEARCH] = _("Discogs Internet Provider")
|
||||
self.provider[self.COVERARTARCHIVE_SEARCH] = _("Coverart Archive Internet Provider")
|
||||
|
||||
|
||||
current_providers = copy.deepcopy(self.provider)
|
||||
|
||||
current = self.settings[self.gs.PluginKey.PROVIDERS]
|
||||
current_list = current.split(',')
|
||||
|
||||
# create the ui
|
||||
self.builder = Gtk.Builder()
|
||||
self.builder.add_from_file(rb.find_plugin_file(self, "ui/coverart_search_providers_prefs.ui"))
|
||||
#self.builder.connect_signals(self)
|
||||
gs = GSetting()
|
||||
# bind the toggles to the settings
|
||||
self.search = {}
|
||||
self._checkboxbind('embedded_checkbox', gs.PluginKey.EMBEDDED_SEARCH)
|
||||
self._checkboxbind('discogs_checkbox', gs.PluginKey.DISCOGS_SEARCH)
|
||||
self._checkboxbind('archive_checkbox', gs.PluginKey.COVERARTARCHIVE_SEARCH)
|
||||
self._checkboxbind('local_checkbox', gs.PluginKey.LOCAL_SEARCH)
|
||||
self._checkboxbind('cache_checkbox', gs.PluginKey.CACHE_SEARCH)
|
||||
self._checkboxbind('lastfm_checkbox', gs.PluginKey.LASTFM_SEARCH)
|
||||
self._checkboxbind('musicbrainz_checkbox', gs.PluginKey.MUSICBRAINZ_SEARCH)
|
||||
builder = Gtk.Builder()
|
||||
builder.add_from_file(rb.find_plugin_file(self, "ui/coverart_search_providers_prefs.ui"))
|
||||
builder.connect_signals(self)
|
||||
self.provider_liststore = builder.get_object('provider_liststore')
|
||||
self.search_liststore = builder.get_object('search_liststore')
|
||||
self.provider_list = builder.get_object('provider_list')
|
||||
self.search_list = builder.get_object('search_list')
|
||||
|
||||
for key in current_list:
|
||||
del current_providers[key]
|
||||
self.search_liststore.append([self.provider[key], key])
|
||||
|
||||
for key, value in current_providers.items():
|
||||
self.provider_liststore.append( [value, key] )
|
||||
|
||||
# return the dialog
|
||||
return self.builder.get_object('maingrid')
|
||||
return builder.get_object('maingrid')
|
||||
|
||||
def _checkboxbind(self, field, key):
|
||||
self.search[field] = self.builder.get_object(field)
|
||||
self.settings.bind(key,
|
||||
self.search[field], 'active', Gio.SettingsBindFlags.DEFAULT)
|
||||
def back_clicked(self, *args):
|
||||
|
||||
if len(self.search_liststore) == 1:
|
||||
return # keep at least one search provider
|
||||
|
||||
model, iterval = self.search_list.get_selection().get_selected()
|
||||
|
||||
if iterval:
|
||||
key = self.search_liststore[iterval][1]
|
||||
self.provider_liststore.append([self.provider[key], key])
|
||||
self.search_liststore.remove(iterval)
|
||||
|
||||
self._store_search_providers()
|
||||
|
||||
def forward_clicked(self, *args):
|
||||
model, iterval = self.provider_list.get_selection().get_selected()
|
||||
|
||||
if iterval:
|
||||
key = self.provider_liststore[iterval][1]
|
||||
self.search_liststore.append([self.provider[key], key])
|
||||
self.provider_liststore.remove(iterval)
|
||||
|
||||
self._store_search_providers()
|
||||
|
||||
def _store_search_providers(self):
|
||||
item = self.search_liststore.get_iter_first ()
|
||||
current_providers = []
|
||||
|
||||
while ( item != None ):
|
||||
current_providers.append (self.search_liststore.get_value (item, 1))
|
||||
item = self.search_liststore.iter_next(item)
|
||||
|
||||
self.settings[self.gs.PluginKey.PROVIDERS] = ','.join(current_providers)
|
||||
|
||||
def on_up_button_clicked(self, *args):
|
||||
selection = self.search_list.get_selection()
|
||||
sel = selection.get_selected()
|
||||
if not sel[1] == None:
|
||||
previous = self.search_liststore.iter_previous(sel[1])
|
||||
if previous:
|
||||
self.search_liststore.swap(sel[1], previous)
|
||||
self._store_search_providers()
|
||||
|
||||
|
||||
def on_down_button_clicked(self, *args):
|
||||
selection = self.search_list.get_selection()
|
||||
sel = selection.get_selected()
|
||||
if not sel[1] == None:
|
||||
next = self.search_liststore.iter_next(sel[1])
|
||||
if next:
|
||||
self.search_liststore.swap(sel[1], next)
|
||||
self._store_search_providers()
|
||||
|
||||
@@ -1,40 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schemalist>
|
||||
<schema path="/org/gnome/rhythmbox/plugins/coverart_search_providers/" id="org.gnome.rhythmbox.plugins.coverart_search_providers">
|
||||
<key type="b" name="embedded-search">
|
||||
<default>true</default>
|
||||
<summary>Search coverart embedded in files</summary>
|
||||
<description>Search coverart embedded in files.</description>
|
||||
</key>
|
||||
<key type="b" name="discogs-search">
|
||||
<default>false</default>
|
||||
<summary>Search for coverart on DISCOGS</summary>
|
||||
<description>Search coverart on the internet service DISCOGS.</description>
|
||||
</key>
|
||||
<key type="b" name="coverartarchive-search">
|
||||
<default>false</default>
|
||||
<summary>Search for coverart on CoverartArchive.org</summary>
|
||||
<description>Search coverart on the internet service CoverartArchive.</description>
|
||||
</key>
|
||||
<key type="b" name="local-search">
|
||||
<default>true</default>
|
||||
<summary>Search for coverart in the albums local folder</summary>
|
||||
<description>Search coverart in the albums local folder</description>
|
||||
</key>
|
||||
<key type="b" name="cache-search">
|
||||
<default>true</default>
|
||||
<summary>Search for coverart in the local cache</summary>
|
||||
<description>Search coverart in the local cache</description>
|
||||
</key>
|
||||
<key type="b" name="lastfm-search">
|
||||
<default>false</default>
|
||||
<summary>Search for coverart on LastFM</summary>
|
||||
<description>Search coverart on the internet service LastFM.</description>
|
||||
</key>
|
||||
<key type="b" name="musicbrainz-search">
|
||||
<default>false</default>
|
||||
<summary>Search for coverart on MusicBrainz</summary>
|
||||
<description>Search coverart on the internet service MusicBrainz.</description>
|
||||
<key type="s" name="providers">
|
||||
<default>'embedded-search,local-search,cache-search'</default>
|
||||
<summary>list of search providers</summary>
|
||||
<description>list of search providers, by default local disk based search providers.</description>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
|
||||
@@ -1,6 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.0 -->
|
||||
<object class="GtkImage" id="image1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-go-back</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-go-forward</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-go-up</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="image4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-go-down</property>
|
||||
</object>
|
||||
<object class="GtkListStore" id="provider_liststore">
|
||||
<columns>
|
||||
<!-- column-name provider -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name key -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkListStore" id="search_liststore">
|
||||
<columns>
|
||||
<!-- column-name search -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name key -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkGrid" id="maingrid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
@@ -18,7 +54,7 @@
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Providers</property>
|
||||
<property name="label" translatable="yes">Choose Search Providers:</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@@ -27,17 +63,172 @@
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="embedded_checkbox">
|
||||
<property name="label" translatable="yes">Search for embedded coverart</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<object class="GtkGrid" id="grid1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="has_tooltip">True</property>
|
||||
<property name="tooltip_text" translatable="yes">Search for coverart embedded within tracks for an album</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="provider_list">
|
||||
<property name="height_request">200</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="model">provider_liststore</property>
|
||||
<property name="headers_clickable">False</property>
|
||||
<property name="enable_search">False</property>
|
||||
<property name="show_expanders">False</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="treeview-selection1"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="min_width">200</property>
|
||||
<property name="title" translatable="yes">Provider</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderertext1"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="search_list">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="model">search_liststore</property>
|
||||
<property name="headers_clickable">False</property>
|
||||
<property name="reorderable">True</property>
|
||||
<property name="enable_search">False</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="treeview-selection2"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="treeviewcolumn2">
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="min_width">200</property>
|
||||
<property name="title" translatable="yes">Search</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderertext2"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="box1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="back_button">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="image">image1</property>
|
||||
<signal name="clicked" handler="back_clicked" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="forward_button">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="image">image2</property>
|
||||
<signal name="clicked" handler="forward_clicked" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="box2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="up_button">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="image">image3</property>
|
||||
<signal name="clicked" handler="on_up_button_clicked" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="down_button">
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="image">image4</property>
|
||||
<signal name="clicked" handler="on_down_button_clicked" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">3</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@@ -45,112 +236,6 @@
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="local_checkbox">
|
||||
<property name="label" translatable="yes">Search in local folder</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="cache_checkbox">
|
||||
<property name="label" translatable="yes">Search in cache folder</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="lastfm_checkbox">
|
||||
<property name="label" translatable="yes">Search on LastFM</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="musicbrainz_checkbox">
|
||||
<property name="label" translatable="yes">Search on MusicBrainz</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="discogs_checkbox">
|
||||
<property name="label" translatable="yes">Search on DISCOGS</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="has_tooltip">True</property>
|
||||
<property name="tooltip_text" translatable="yes">Search for coverart on the internet provider DISCOGS</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="archive_checkbox">
|
||||
<property name="label" translatable="yes">Search on Cover Art Archive</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="has_tooltip">True</property>
|
||||
<property name="tooltip_text" translatable="yes">Search for coverart on the internet provider Cover Art Archive</property>
|
||||
<property name="use_action_appearance">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário