def __init__(self, sidebar=True): """ Init Selection list ui @param sidebar as bool """ Gtk.Overlay.__init__(self) self.__was_visible = False self.__timeout = None self.__to_select_ids = [] self.__modifier = False self.__populating = False self.__updating = False # Sort disabled if False self.__is_artists = False builder = Gtk.Builder() builder.add_from_resource('/org/gnome/Lollypop/SelectionList.ui') builder.connect_signals(self) self.__selection = builder.get_object('selection') self.__selection.set_select_function(self.__selection_validation) self.__model = builder.get_object('model') self.__model.set_sort_column_id(0, Gtk.SortType.ASCENDING) self.__model.set_sort_func(0, self.__sort_items) self.__view = builder.get_object('view') if sidebar: self.__view.get_style_context().add_class('sidebar') self.__view.set_row_separator_func(self.__row_separator_func) self.__renderer0 = CellRendererArtist() self.__renderer0.set_property('ellipsize-set', True) self.__renderer0.set_property('ellipsize', Pango.EllipsizeMode.END) self.__renderer1 = Gtk.CellRendererPixbuf() # 16px for Gtk.IconSize.MENU self.__renderer1.set_fixed_size(16, -1) column = Gtk.TreeViewColumn('') column.set_expand(True) column.pack_start(self.__renderer0, True) column.add_attribute(self.__renderer0, 'text', 1) column.add_attribute(self.__renderer0, 'artist', 1) column.add_attribute(self.__renderer0, 'rowid', 0) column.pack_start(self.__renderer1, False) column.add_attribute(self.__renderer1, 'icon-name', 2) self.__view.append_column(column) self.__view.set_property('has_tooltip', True) self.__scrolled = Gtk.ScrolledWindow() self.__scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.__scrolled.add(self.__view) self.__scrolled.show() self.add(self.__scrolled) if Gtk.get_minor_version() > 14: self.__fast_scroll = FastScroll(self.__view, self.__model, self.__scrolled) self.add_overlay(self.__fast_scroll) else: self.__fast_scroll = None self.__scrolled.connect('enter-notify-event', self.__on_enter_notify) self.__scrolled.connect('leave-notify-event', self.__on_leave_notify) Lp().art.connect('artist-artwork-changed', self.__on_artist_artwork_changed)
def __init__(self, base_type): """ Init Selection list ui @param base_type as SelectionListMask """ Gtk.Overlay.__init__(self) BaseView.__init__(self) self.__base_type = base_type self.__timeout = None self.__modifier = False self.__populating = False self.__mask = 0 builder = Gtk.Builder() builder.add_from_resource("/org/gnome/Lollypop/SelectionList.ui") builder.connect_signals(self) self.__selection = builder.get_object("selection") self.__selection.set_select_function(self.__selection_validation) self.__selection.connect("changed", self.__on_selection_changed) self.__model = Gtk.ListStore(int, str, str, str) self.__model.set_sort_column_id(0, Gtk.SortType.ASCENDING) self.__model.set_sort_func(0, self.__sort_items) self.__view = builder.get_object("view") self.__view.set_model(self.__model) if base_type in [ SelectionListMask.LIST_ONE, SelectionListMask.LIST_TWO ]: self.__view.get_style_context().add_class("sidebar") self.__view.set_row_separator_func(self.__row_separator_func) self.__renderer0 = CellRendererArtist() self.__renderer0.set_property("ellipsize-set", True) self.__renderer0.set_property("ellipsize", Pango.EllipsizeMode.END) self.__renderer1 = Gtk.CellRendererPixbuf() # 16px for Gtk.IconSize.MENU self.__renderer1.set_fixed_size(16, -1) column = Gtk.TreeViewColumn("") column.set_expand(True) column.pack_start(self.__renderer0, True) column.add_attribute(self.__renderer0, "text", 1) column.add_attribute(self.__renderer0, "artist", 1) column.add_attribute(self.__renderer0, "rowid", 0) column.pack_start(self.__renderer1, False) column.add_attribute(self.__renderer1, "icon-name", 2) self.__view.append_column(column) self.__view.set_property("has_tooltip", True) self.__scrolled = Gtk.ScrolledWindow() self.__scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.__scrolled.add(self.__view) self.__scrolled.show() self.add(self.__scrolled) self.__fast_scroll = FastScroll(self.__view, self.__model, self.__scrolled) self.add_overlay(self.__fast_scroll) self.__scrolled.connect("enter-notify-event", self.__on_enter_notify) self.__scrolled.connect("leave-notify-event", self.__on_leave_notify) App().art.connect("artist-artwork-changed", self.__on_artist_artwork_changed)
def __init__(self, mode): """ Init Selection list ui @param mode as SelectionMode """ Gtk.ScrolledWindow.__init__(self) self.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.__mode = mode self.__last_motion_event = None self.__previous_motion_y = 0.0 self.__timeout = None self.__to_select_ids = [] self.__modifier = False self.__updating = False # Sort disabled if False self.__is_artists = False self.__popover = SelectionPopover() builder = Gtk.Builder() builder.add_from_resource('/org/gnome/Lollypop/SelectionList.ui') builder.connect_signals(self) self.__selection = builder.get_object('selection') self.__selection.set_select_function(self.__selection_validation) self.__model = builder.get_object('model') self.__model.set_sort_column_id(0, Gtk.SortType.ASCENDING) self.__model.set_sort_func(0, self.__sort_items) self.__view = builder.get_object('view') self.__view.set_row_separator_func(self.__row_separator_func) self.__renderer0 = CellRendererArtist() self.__renderer0.set_property('ellipsize-set', True) self.__renderer0.set_property('ellipsize', Pango.EllipsizeMode.END) self.__renderer1 = Gtk.CellRendererPixbuf() # 16px for Gtk.IconSize.MENU self.__renderer1.set_fixed_size(16, -1) column = Gtk.TreeViewColumn('') column.set_expand(True) column.pack_start(self.__renderer0, True) column.add_attribute(self.__renderer0, 'text', 1) column.add_attribute(self.__renderer0, 'artist', 1) column.add_attribute(self.__renderer0, 'rowid', 0) column.pack_start(self.__renderer1, False) column.add_attribute(self.__renderer1, 'icon-name', 2) self.__view.append_column(column) self.__view.set_property('has_tooltip', True) self.add(self.__view) self.connect('motion_notify_event', self.__on_motion_notify) self.get_vadjustment().connect('value_changed', self.__on_scroll) self.connect('enter-notify-event', self.__on_enter_notify) self.connect('leave-notify-event', self.__on_leave_notify) Lp().art.connect('artist-artwork-changed', self.__on_artist_artwork_changed)
def __init__(self, fast_scroll): """ Init Selection list ui @param fast scroll as bool """ Gtk.Bin.__init__(self) self.__last_motion_event = None self.__previous_motion_y = 0.0 self.__timeout = None self.__to_select_ids = [] self.__modifier = False self.__populating = False self.__updating = False # Sort disabled if False self.__is_artists = False self.__fast_scroll = fast_scroll # Show button to scroll to top self.__popover = SelectionPopover() builder = Gtk.Builder() builder.add_from_resource('/org/gnome/Lollypop/SelectionList.ui') builder.connect_signals(self) self.__selection = builder.get_object('selection') self.__selection.set_select_function(self.__selection_validation) self.__model = builder.get_object('model') self.__model.set_sort_column_id(0, Gtk.SortType.ASCENDING) self.__model.set_sort_func(0, self.__sort_items) self.__view = builder.get_object('view') self.__view.set_row_separator_func(self.__row_separator_func) self.__renderer0 = CellRendererArtist() self.__renderer0.set_property('ellipsize-set', True) self.__renderer0.set_property('ellipsize', Pango.EllipsizeMode.END) self.__renderer1 = Gtk.CellRendererPixbuf() # 16px for Gtk.IconSize.MENU self.__renderer1.set_fixed_size(16, -1) column = Gtk.TreeViewColumn('') column.set_expand(True) column.pack_start(self.__renderer0, True) column.add_attribute(self.__renderer0, 'text', 1) column.add_attribute(self.__renderer0, 'artist', 1) column.add_attribute(self.__renderer0, 'rowid', 0) column.pack_start(self.__renderer1, False) column.add_attribute(self.__renderer1, 'icon-name', 2) self.__view.append_column(column) self.__view.set_property('has_tooltip', True) self.__scrolled = Gtk.ScrolledWindow() self.__scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.__scrolled.add(self.__view) self.__scrolled.show() if self.__fast_scroll: self.__scrolled.set_vexpand(True) self.__scrolled.set_hexpand(True) grid = Gtk.Grid() grid.set_orientation(Gtk.Orientation.VERTICAL) grid.show() self.__button = Gtk.Button.new_from_icon_name( 'go-up-symbolic', Gtk.IconSize.MENU) self.__button.get_style_context().add_class('fast-scroll-button') self.__button.connect('clicked', self.__on_button_clicked) grid.add(self.__scrolled) grid.add(self.__button) self.add(grid) else: self.add(self.__scrolled) self.connect('motion_notify_event', self.__on_motion_notify) self.__scrolled.get_vadjustment().connect('value_changed', self.__on_scroll) self.__scrolled.connect('enter-notify-event', self.__on_enter_notify) self.__scrolled.connect('leave-notify-event', self.__on_leave_notify) Lp().art.connect('artist-artwork-changed', self.__on_artist_artwork_changed)