本文整理汇总了Python中lollypop.selectionlist.SelectionList.populate方法的典型用法代码示例。如果您正苦于以下问题:Python SelectionList.populate方法的具体用法?Python SelectionList.populate怎么用?Python SelectionList.populate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类lollypop.selectionlist.SelectionList
的用法示例。
在下文中一共展示了SelectionList.populate方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from lollypop.selectionlist import SelectionList [as 别名]
# 或者: from lollypop.selectionlist.SelectionList import populate [as 别名]
class Container:
def __init__(self):
# Try to update db on start, will be done after list one populating
# finished
self._need_to_update_db = Lp.settings.get_value('auto-update') or\
Lp.tracks.is_empty()
# Index will start at -VOLUMES
self._devices = {}
self._devices_index = Type.DEVICES
self._show_genres = Lp.settings.get_value('show-genres')
self._stack = ViewContainer(500)
self._stack.show()
self._setup_view()
self._setup_scanner()
(list_one_id, list_two_id) = self._get_saved_view_state()
self._list_one.select_id(list_one_id)
self._list_two.select_id(list_two_id)
# Volume manager
self._vm = Gio.VolumeMonitor.get()
self._vm.connect('mount-added', self._on_mount_added)
self._vm.connect('mount-removed', self._on_mount_removed)
Lp.playlists.connect('playlists-changed',
self._update_lists)
"""
Update db at startup only if needed
"""
def update_db(self):
# Stop previous scan
if Lp.scanner.is_locked():
Lp.scanner.stop()
GLib.timeout_add(250, self.update_db)
else:
# Something (device manager) is using progress bar
progress = None
if not self._progress.is_visible():
progress = self._progress
Lp.scanner.update(progress)
"""
Return current selected genre
@return genre id as int
"""
def get_genre_id(self):
if self._show_genres:
return self._list_one.get_selected_id()
else:
return None
"""
Init list one
"""
def init_list_one(self):
self._update_list_one(None)
"""
Save view state
"""
def save_view_state(self):
Lp.settings.set_value("list-one",
GLib.Variant('i',
self._list_one.get_selected_id()))
Lp.settings.set_value("list-two",
GLib.Variant('i',
self._list_two.get_selected_id()))
"""
Show playlist manager for object_id
Current view stay present in ViewContainer
@param object id as int
@param genre id as int
@param is_album as bool
"""
def show_playlist_manager(self, object_id, genre_id, is_album):
view = PlaylistsManageView(object_id, genre_id, is_album,
self._stack.get_allocated_width()/2)
view.show()
self._stack.add(view)
self._stack.set_visible_child(view)
start_new_thread(view.populate, ())
"""
Show playlist editor for playlist
Current view stay present in ViewContainer
@param playlist name as str
"""
def show_playlist_editor(self, playlist_name):
view = PlaylistEditView(playlist_name,
self._stack.get_allocated_width()/2)
view.show()
self._stack.add(view)
self._stack.set_visible_child(view)
start_new_thread(view.populate, ())
"""
Get main widget
#.........这里部分代码省略.........
示例2: __init__
# 需要导入模块: from lollypop.selectionlist import SelectionList [as 别名]
# 或者: from lollypop.selectionlist.SelectionList import populate [as 别名]
class Container:
"""
Container for main view
"""
def __init__(self):
"""
Init container
"""
self._pulse_timeout = None
# Index will start at -VOLUMES
self._devices = {}
self._devices_index = Type.DEVICES
self._show_genres = Lp().settings.get_value('show-genres')
self._stack = ViewContainer(500)
self._stack.show()
self._setup_view()
self._setup_scanner()
(list_one_ids, list_two_ids) = self._get_saved_view_state()
if list_one_ids and list_one_ids[0] != Type.NONE:
self._list_one.select_ids(list_one_ids)
if list_two_ids and list_two_ids[0] != Type.NONE:
self._list_two.select_ids(list_two_ids)
# Volume manager
self._vm = Gio.VolumeMonitor.get()
self._vm.connect('mount-added', self._on_mount_added)
self._vm.connect('mount-removed', self._on_mount_removed)
for mount in self._vm.get_mounts():
self._add_device(mount, False)
Lp().playlists.connect('playlists-changed',
self._update_playlists)
def update_db(self):
"""
Update db at startup only if needed
"""
# Stop previous scan
if Lp().scanner.is_locked():
Lp().scanner.stop()
GLib.timeout_add(250, self.update_db)
else:
# Something (device manager) is using progress bar
if not self._progress.is_visible():
Lp().scanner.update(self._progress)
def get_genre_id(self):
"""
Return current selected genre
@return genre id as int
"""
if self._show_genres:
return self._list_one.get_selected_id()
else:
return None
def init_list_one(self):
"""
Init list one
"""
self._update_list_one(None)
def save_view_state(self):
"""
Save view state
"""
Lp().settings.set_value(
"list-one-ids",
GLib.Variant('ai',
self._list_one.get_selected_ids()))
Lp().settings.set_value(
"list-two-ids",
GLib.Variant('ai',
self._list_two.get_selected_ids()))
def show_playlist_manager(self, object_id, genre_ids,
artist_ids, is_album):
"""
Show playlist manager for object_id
Current view stay present in ViewContainer
@param object id as int
@param genre ids as [int]
@param artist ids as [int]
@param is_album as bool
"""
view = PlaylistsManageView(object_id, genre_ids, artist_ids, is_album)
view.populate()
view.show()
self._stack.add(view)
self._stack.set_visible_child(view)
def show_playlist_editor(self, playlist_id):
"""
Show playlist editor for playlist
Current view stay present in ViewContainer
@param playlist id as int
@param playlist name as str
"""
#.........这里部分代码省略.........
示例3: __init__
# 需要导入模块: from lollypop.selectionlist import SelectionList [as 别名]
# 或者: from lollypop.selectionlist.SelectionList import populate [as 别名]
class Container:
def __init__(self):
# Index will start at -VOLUMES
self._devices = {}
self._devices_index = Navigation.DEVICES
self._show_genres = Objects.settings.get_value('show-genres')
self._stack = ViewContainer(500)
self._stack.show()
self._setup_view()
self._setup_scanner()
self._list_one_restore = Navigation.POPULARS
self._list_two_restore = None
if Objects.settings.get_value('save-state'):
self._restore_view_state()
# Volume manager
self._vm = Gio.VolumeMonitor.get()
self._vm.connect('mount-added', self._on_mount_added)
self._vm.connect('mount-removed', self._on_mount_removed)
Objects.playlists.connect("playlists-changed",
self.update_lists)
"""
Update db at startup only if needed
@param force as bool to force update (if possible)
"""
def update_db(self, force=False):
if not self._progress.is_visible():
if force or Objects.tracks.is_empty():
self._scanner.update(False)
elif Objects.settings.get_value('startup-scan') or\
Objects.settings.get_value('force-scan'):
self._scanner.update(True)
"""
Save view state
"""
def save_view_state(self):
Objects.settings.set_value("list-one",
GLib.Variant(
'i',
self._list_one.get_selected_id()))
Objects.settings.set_value("list-two",
GLib.Variant(
'i',
self._list_two.get_selected_id()))
"""
Show playlist manager for object_id
Current view stay present in ViewContainer
@param object id as int
@param genre id as int
@param is_album as bool
"""
def show_playlist_manager(self, object_id, genre_id, is_album):
old_view = self._stack.get_visible_child()
view = PlaylistManageView(object_id, genre_id, is_album,
self._stack.get_allocated_width()/2)
view.show()
self._stack.add(view)
self._stack.set_visible_child(view)
start_new_thread(view.populate, ())
# Keep previous view,
if isinstance(old_view, PlaylistManageView):
old_view.destroy()
"""
Show playlist editor for playlist
Current view stay present in ViewContainer
@param playlist name as str
"""
def show_playlist_editor(self, playlist_name):
old_view = self._stack.get_visible_child()
view = PlaylistEditView(playlist_name,
self._stack.get_allocated_width()/2)
view.show()
self._stack.add(view)
self._stack.set_visible_child(view)
start_new_thread(view.populate, ())
# Keep previous view,
if isinstance(old_view, PlaylistEditView):
old_view.destroy()
"""
Update lists
@param updater as GObject
"""
def update_lists(self, updater=None):
self._update_list_one(updater)
self._update_list_two(updater)
"""
Load external files
@param files as [Gio.Files]
"""
def load_external(self, files):
#.........这里部分代码省略.........
示例4: Window
# 需要导入模块: from lollypop.selectionlist import SelectionList [as 别名]
# 或者: from lollypop.selectionlist.SelectionList import populate [as 别名]
#.........这里部分代码省略.........
"""
Init the filter list
@param widget as unused
"""
def _init_main_list(self, widget):
if self._list_one.widget.is_visible():
self._update_genres()
else:
self._init_genres()
"""
Init list with genres or artist
If update, only update list content
@param obj as unused, bool
"""
def _setup_list_one(self, obj = None, update = None):
if self._list_one_signal:
self._list_one.disconnect(self._list_one_signal)
active = self._toolbar.get_view_genres_btn().get_active()
if active:
items = Objects["genres"].get_ids()
else:
self._list_two.widget.hide()
items = Objects["artists"].get_ids(ALL)
if len(Objects["albums"].get_compilations(ALL)) > 0:
items.insert(0, (COMPILATIONS, _("Compilations")))
items.insert(0, (ALL, _("All artists")))
items.insert(0, (POPULARS, _("Popular albums")))
if update:
self._list_one.update(items, not active)
else:
self._list_one.populate(items, not active)
# If was empty
if not self._list_one_signal:
self._list_one.select_first()
if self._loading:
self._stack.get_visible_child().hide()
self._list_one.select_first()
self._update_view_albums(POPULARS)
self._loading = False
self._list_one.widget.show()
if active:
self._list_one_signal = self._list_one.connect('item-selected', self._setup_list_two)
else:
self._list_one_signal = self._list_one.connect('item-selected', self._update_view_artists, None)
"""
Init list two with artist based on genre
@param obj as unused, genre id as int
"""
def _setup_list_two(self, obj, genre_id):
if self._list_two_signal:
self._list_two.disconnect(self._list_two_signal)
if genre_id == POPULARS:
self._list_two.widget.hide()
self._list_two_signal = None
else:
values = Objects["artists"].get_ids(genre_id)
if len(Objects["albums"].get_compilations(genre_id)) > 0:
示例5: Window
# 需要导入模块: from lollypop.selectionlist import SelectionList [as 别名]
# 或者: from lollypop.selectionlist.SelectionList import populate [as 别名]
#.........这里部分代码省略.........
self._list_genres = SelectionList("Genre", 150)
self._list_artists = SelectionList("Artist", 200)
self._view = LoadingView()
separator = Gtk.Separator()
separator.show()
self._box.add(self._list_genres.widget)
self._box.add(separator)
self._box.add(self._list_artists.widget)
self._box.add(self._view)
self.add(self._box)
self._box.show()
self.show()
"""
Run collection update on mapped window
Pass _update_genre() as collection scanned callback
"""
def _on_mapped_window(self, obj, data):
if self._db.is_empty():
self._scanner.update(self._update_genres)
else:
genres = self._db.get_all_genres()
self._update_genres(genres)
"""
Update genres list with genres
"""
def _update_genres(self, genres):
genres.insert(0, (-1, _("All genres")))
genres.insert(0, (-2, _("Populars albums")))
self._list_genres.populate(genres)
self._list_genres.connect('item-selected', self._update_artists)
self._list_genres.widget.show()
self._list_genres.select_first()
"""
Update artist list for genre_id
"""
def _update_artists(self, obj, genre_id):
if self._artist_signal_id:
self._list_artists.disconnect(self._artist_signal_id)
if genre_id == -1:
self._list_artists.populate(self._db.get_all_artists(), True)
self._update_view_albums(self, -1)
self._list_artists.widget.show()
elif genre_id == -2:
self._update_view_populars_albums()
self._list_artists.widget.hide()
else:
self._list_artists.populate(self._db.get_artists_by_genre_id(genre_id), True)
self._update_view_albums(self, genre_id)
self._list_artists.widget.show()
self._artist_signal_id = self._list_artists.connect('item-selected', self._update_view_artist)
self._genre_id = genre_id
"""
Update artist view for artist_id
"""
def _update_view_artist(self, obj, artist_id):
self._box.remove(self._view)
self._view.destroy()
self._view = ArtistView(self._db, self._player, self._genre_id, artist_id)
self._box.add(self._view)
示例6: __init__
# 需要导入模块: from lollypop.selectionlist import SelectionList [as 别名]
# 或者: from lollypop.selectionlist.SelectionList import populate [as 别名]
class Container:
"""
Container for main view
"""
def __init__(self):
"""
Init container
"""
self.__pulse_timeout = None
# Index will start at -VOLUMES
self.__devices = {}
self.__devices_index = Type.DEVICES
self.__show_genres = Lp().settings.get_value('show-genres')
self.__stack = ViewContainer(500)
self.__stack.show()
self.__setup_view()
self.__setup_scanner()
(list_one_ids, list_two_ids) = self.__get_saved_view_state()
if list_one_ids and list_one_ids[0] != Type.NONE:
self.__list_one.select_ids(list_one_ids)
if list_two_ids and list_two_ids[0] != Type.NONE:
self.__list_two.select_ids(list_two_ids)
# Volume manager
self.__vm = Gio.VolumeMonitor.get()
self.__vm.connect('mount-added', self.__on_mount_added)
self.__vm.connect('mount-removed', self.__on_mount_removed)
for mount in self.__vm.get_mounts():
self.__add_device(mount, False)
Lp().playlists.connect('playlists-changed',
self.__update_playlists)
def update_db(self):
"""
Update db at startup only if needed
"""
# Stop previous scan
if Lp().scanner.is_locked():
Lp().scanner.stop()
GLib.timeout_add(250, self.update_db)
else:
Lp().scanner.update()
def get_genre_id(self):
"""
Return current selected genre
@return genre id as int
"""
if self.__show_genres:
return self.__list_one.get_selected_id()
else:
return None
def init_list_one(self):
"""
Init list one
"""
self.__update_list_one(None)
def save_view_state(self):
"""
Save view state
"""
Lp().settings.set_value(
"list-one-ids",
GLib.Variant('ai',
self.__list_one.selected_ids))
Lp().settings.set_value(
"list-two-ids",
GLib.Variant('ai',
self.__list_two.selected_ids))
def show_playlist_manager(self, object_id, genre_ids,
artist_ids, is_album):
"""
Show playlist manager for object_id
Current view stay present in ViewContainer
@param object id as int
@param genre ids as [int]
@param artist ids as [int]
@param is_album as bool
"""
from lollypop.view_playlists import PlaylistsManageView
current = self.__stack.get_visible_child()
view = PlaylistsManageView(object_id, genre_ids, artist_ids, is_album)
view.populate()
view.show()
self.__stack.add(view)
self.__stack.set_visible_child(view)
current.disable_overlay()
def show_playlist_editor(self, playlist_id):
"""
Show playlist editor for playlist
Current view stay present in ViewContainer
@param playlist id as int
@param playlist name as str
#.........这里部分代码省略.........
示例7: __init__
# 需要导入模块: from lollypop.selectionlist import SelectionList [as 别名]
# 或者: from lollypop.selectionlist.SelectionList import populate [as 别名]
class Container:
"""
Container for main view
"""
def __init__(self):
"""
Init container
"""
# Index will start at -VOLUMES
self._devices = {}
self._devices_index = Type.DEVICES
self._show_genres = Lp.settings.get_value("show-genres")
self._stack = ViewContainer(500)
self._stack.show()
self._setup_view()
self._setup_scanner()
(list_one_id, list_two_id) = self._get_saved_view_state()
self._list_one.select_id(list_one_id)
self._list_two.select_id(list_two_id)
# Volume manager
self._vm = Gio.VolumeMonitor.get()
self._vm.connect("mount-added", self._on_mount_added)
self._vm.connect("mount-removed", self._on_mount_removed)
Lp.playlists.connect("playlists-changed", self._update_lists)
def update_db(self):
"""
Update db at startup only if needed
"""
# Stop previous scan
if Lp.scanner.is_locked():
Lp.scanner.stop()
GLib.timeout_add(250, self.update_db)
else:
# Something (device manager) is using progress bar
progress = None
if not self._progress.is_visible():
progress = self._progress
Lp.scanner.update(progress)
def get_genre_id(self):
"""
Return current selected genre
@return genre id as int
"""
if self._show_genres:
return self._list_one.get_selected_id()
else:
return None
def init_list_one(self):
"""
Init list one
"""
self._update_list_one(None)
def save_view_state(self):
"""
Save view state
"""
Lp.settings.set_value("list-one", GLib.Variant("i", self._list_one.get_selected_id()))
Lp.settings.set_value("list-two", GLib.Variant("i", self._list_two.get_selected_id()))
def show_playlist_manager(self, object_id, genre_id, is_album):
"""
Show playlist manager for object_id
Current view stay present in ViewContainer
@param object id as int
@param genre id as int
@param is_album as bool
"""
view = PlaylistsManageView(object_id, genre_id, is_album)
view.populate()
view.show()
self._stack.add(view)
self._stack.set_visible_child(view)
def show_playlist_editor(self, playlist_name):
"""
Show playlist editor for playlist
Current view stay present in ViewContainer
@param playlist name as str
"""
view = PlaylistEditView(playlist_name)
view.show()
self._stack.add(view)
self._stack.set_visible_child(view)
view.populate()
def main_widget(self):
"""
Get main widget
@return Gtk.HPaned
"""
return self._paned_main_list
#.........这里部分代码省略.........