def __init__(self, app, parent): """ Init window and set transient for parent @param app as Gio.Application @param parent as Gtk.window """ Gtk.Window.__init__(self) self.set_title("Lollypop") PlaybackController.__init__(self) ProgressController.__init__(self) self.set_application(app) self.__timeout1 = None self.__timeout2 = None self.__signal1_id = None self.__signal2_id = None self.set_decorated(False) self.__parent = parent builder = Gtk.Builder() builder.add_from_resource('/org/gnome/Lollypop/FullScreen.ui') builder.connect_signals(self) # Calculate cover size screen = Gdk.Screen.get_default() monitor = screen.get_primary_monitor() geometry = screen.get_monitor_geometry(monitor) # We want 500 and 200 in full hd scale = self.get_scale_factor() if geometry.width > geometry.height: artsize = int(ArtSize.FULLSCREEN * geometry.width / 1920 / scale) else: artsize = int(ArtSize.FULLSCREEN * geometry.height / 1920 / scale) InfosController.__init__(self, artsize) self._play_btn = builder.get_object('play_btn') self._next_btn = builder.get_object('next_btn') self._prev_btn = builder.get_object('prev_btn') self._next_popover = NextPopover() self._next_popover.set_position(Gtk.PositionType.BOTTOM) self._play_image = builder.get_object('play_image') self._pause_image = builder.get_object('pause_image') close_btn = builder.get_object('close_btn') close_btn.connect('clicked', self.__destroy) self._cover = builder.get_object('cover') self._title_label = builder.get_object('title') self._artist_label = builder.get_object('artist') self._album_label = builder.get_object('album') self._datetime = builder.get_object('datetime') self._progress = builder.get_object('progress_scale') self._timelabel = builder.get_object('playback') self._total_time_label = builder.get_object('duration') self.connect('key-release-event', self.__on_key_release_event) self.add(builder.get_object('widget'))
def __init__(self, app): """ Init toolbar @param app as Gtk.Application """ Gtk.Bin.__init__(self) self.connect('show', self.__on_show) self.connect('hide', self.__on_hide) self.set_hexpand(True) self.__next_popover = NextPopover() self.__search = None self.__next_was_inhibited = False builder = Gtk.Builder() builder.add_from_resource('/org/gnome/Lollypop/ToolbarEnd.ui') builder.connect_signals(self) self.add(builder.get_object('end')) self.__grid_next = builder.get_object('grid-next') self.__shuffle_button = builder.get_object('shuffle-button') self.__shuffle_image = builder.get_object('shuffle-button-image') shuffleAction = Gio.SimpleAction.new('shuffle-button', None) shuffleAction.connect('activate', self.__activate_shuffle_button) app.add_action(shuffleAction) app.set_accels_for_action("app.shuffle-button", ["<Control>r"]) Lp().settings.connect('changed::shuffle', self.__on_shuffle_changed) self.__party_button = builder.get_object('party-button') party_action = Gio.SimpleAction.new('party', None) party_action.connect('activate', self.__activate_party_button) app.add_action(party_action) app.set_accels_for_action("app.party", ["<Control>p"]) self.__search_button = builder.get_object('search-button') search_action = Gio.SimpleAction.new('search', None) search_action.connect('activate', self._on_search_button_clicked) app.add_action(search_action) app.set_accels_for_action("app.search", ["<Control>f"]) self.__settings_button = builder.get_object('settings-button') self.__list_button = builder.get_object('list-button') self.__list_button.set_property('has-tooltip', True) self.__list_button.connect('query-tooltip', self.__on_list_button_query_tooltip) list_action = Gio.SimpleAction.new('list', None) list_action.connect('activate', self._on_list_button_clicked) app.add_action(list_action) app.set_accels_for_action("app.list", ["<Control>i"]) self.__list_popover = None Lp().player.connect('party-changed', self.__on_party_changed) Lp().player.connect('lock-changed', self.__on_lock_changed)
def __init__(self): """ Init toolbar """ Gtk.Bin.__init__(self) self.connect('show', self.__on_show) self.connect('hide', self.__on_hide) self.set_hexpand(True) self.__next_popover = NextPopover() self.__search = None self.__next_was_inhibited = False self.__timeout_id = None builder = Gtk.Builder() builder.add_from_resource('/org/gnome/Lollypop/ToolbarEnd.ui') builder.connect_signals(self) self.add(builder.get_object('end')) self.__grid_next = builder.get_object('grid-next') self.__shuffle_button = builder.get_object('shuffle-button') self.__shuffle_image = builder.get_object('shuffle-button-image') shuffleAction = Gio.SimpleAction.new('shuffle-button', None) shuffleAction.connect('activate', self.__activate_shuffle_button) Lp().add_action(shuffleAction) Lp().set_accels_for_action("app.shuffle-button", ["<Control>r"]) Lp().settings.connect('changed::shuffle', self.__on_playback_changed) Lp().settings.connect('changed::playback', self.__on_playback_changed) self.__party_button = builder.get_object('party-button') party_action = Gio.SimpleAction.new('party', None) party_action.connect('activate', self.__activate_party_button) Lp().add_action(party_action) Lp().set_accels_for_action("app.party", ["<Control>p"]) self.__search_button = builder.get_object('search-button') self.__helper = TouchHelper(self.__search_button, "search", "<Control>f") self.__helper.set_long_func(self.__on_search_long) self.__helper.set_short_func(self.__on_search_short) self.__settings_button = builder.get_object('settings-button') self.__list_button = builder.get_object('list-button') self.__list_button.set_property('has-tooltip', True) self.__list_button.connect('query-tooltip', self.__on_list_button_query_tooltip) self.__list_popover = None Lp().player.connect('party-changed', self.__on_party_changed) Lp().player.connect('lock-changed', self.__on_lock_changed)
def __init__(self, app, parent): """ Init window and set transient for parent @param app as Gio.Application @param parent as Gtk.window """ Gtk.Window.__init__(self) self.set_application(app) self._timeout1 = None self._timeout2 = None self._seeking = False self._signal1_id = None self._signal2_id = None self.set_decorated(False) builder = Gtk.Builder() builder.add_from_resource('/org/gnome/Lollypop/FullScreen.ui') main_widget = builder.get_object('fs') self.add(main_widget) self._prev_btn = builder.get_object('prev_btn') self._prev_btn.connect('clicked', self._on_prev_btn_clicked) self._play_btn = builder.get_object('play_btn') self._play_btn.connect('clicked', self._on_play_btn_clicked) self._next_btn = builder.get_object('next_btn') self._next_btn.connect('clicked', self._on_next_btn_clicked) self._next_popover = NextPopover() self._next_popover.set_position(Gtk.PositionType.BOTTOM) self._play_image = builder.get_object('play_image') self._pause_image = builder.get_object('pause_image') close_btn = builder.get_object('close_btn') close_btn.connect('clicked', self._destroy) self._cover = builder.get_object('cover') self._title = builder.get_object('title') self._artist = builder.get_object('artist') self._album = builder.get_object('album') self._datetime = builder.get_object('datetime') self._progress = builder.get_object('progress_scale') self._progress.connect('button-release-event', self._on_progress_release_button) self._progress.connect('button-press-event', self._on_progress_press_button) self._timelabel = builder.get_object('playback') self._total_time_label = builder.get_object('duration') self.connect('key-release-event', self._on_key_release_event)
def __init__(self, app): """ Init toolbar @param app as Gtk.Application """ Gtk.Bin.__init__(self) self._pop_next = NextPopover() builder = Gtk.Builder() builder.add_from_resource('/org/gnome/Lollypop/ToolbarEnd.ui') builder.connect_signals(self) self.add(builder.get_object('end')) self._shuffle_btn = builder.get_object('shuffle-button') self._shuffle_btn_image = builder.get_object('shuffle-button-image') Lp().settings.connect('changed::shuffle', self._shuffle_btn_aspect) self._party_btn = builder.get_object('party-button') party_action = Gio.SimpleAction.new('party', None) party_action.connect('activate', self._activate_party_button) app.add_action(party_action) app.set_accels_for_action("app.party", ["<Control>p"]) search_button = builder.get_object('search-button') self._search = SearchPopover(self) self._search.set_relative_to(search_button) searchAction = Gio.SimpleAction.new('search', None) searchAction.connect('activate', self._on_search_btn_clicked) app.add_action(searchAction) app.set_accels_for_action("app.search", ["<Control>f"]) self._queue_button = builder.get_object('queue-button') self._settings_button = builder.get_object('settings-button') Lp().player.connect('party-changed', self._on_party_changed)
def __init__(self, app, parent): """ Init window and set transient for parent @param app as Gio.Application @param parent as Gtk.window """ Gtk.Window.__init__(self) self.set_title("Lollypop") PlaybackController.__init__(self) ProgressController.__init__(self) self.set_application(app) self.__timeout1 = None self.__timeout2 = None self.__signal1_id = None self.__signal2_id = None self.set_decorated(False) self.__parent = parent builder = Gtk.Builder() builder.add_from_resource("/org/gnome/Lollypop/FullScreen.ui") builder.connect_signals(self) # Calculate cover size screen = Gdk.Screen.get_default() monitor = screen.get_primary_monitor() geometry = screen.get_monitor_geometry(monitor) # We want 500 and 200 in full hd if geometry.width > geometry.height: artsize = int(ArtSize.FULLSCREEN * geometry.width / 1920) else: artsize = int(ArtSize.FULLSCREEN * geometry.height / 1920) InfoController.__init__(self, artsize) widget = builder.get_object("widget") self._play_btn = builder.get_object("play_btn") self._next_btn = builder.get_object("next_btn") self._prev_btn = builder.get_object("prev_btn") self._next_popover = NextPopover() self._next_popover.set_position(Gtk.PositionType.BOTTOM) self._play_image = builder.get_object("play_image") self._pause_image = builder.get_object("pause_image") close_btn = builder.get_object("close_btn") preferences = Gio.Settings.new("org.gnome.desktop.wm.preferences") layout = preferences.get_value("button-layout").get_string() if layout.split(":")[0] == "close": widget.attach(close_btn, 0, 0, 1, 1) close_btn.set_property("halign", Gtk.Align.START) else: widget.attach(close_btn, 2, 0, 1, 1) close_btn.set_property("halign", Gtk.Align.END) self._cover = builder.get_object("cover") self._title_label = builder.get_object("title") self._artist_label = builder.get_object("artist") self._album_label = builder.get_object("album") self._datetime = builder.get_object("datetime") self._progress = builder.get_object("progress_scale") self._timelabel = builder.get_object("playback") self._total_time_label = builder.get_object("duration") self.connect("key-release-event", self.__on_key_release_event) self.add(widget)
def __init__(self): """ Init toolbar """ Gtk.Bin.__init__(self) self.set_hexpand(True) self.__search_popover = None self.__timeout_id = None builder = Gtk.Builder() builder.add_from_resource("/org/gnome/Lollypop/ToolbarEnd.ui") builder.connect_signals(self) self.__party_submenu = builder.get_object("party_submenu") self.add(builder.get_object("end")) # Map some settings to actions, can't use Gio.Settings.create_action() # because API does not support set_enabled() self.__shuffle_action = Gio.SimpleAction.new_stateful( "shuffle", GLib.VariantType.new("s"), GLib.Variant("s", "none")) self.__shuffle_action.set_state(App().settings.get_value("shuffle")) self.__shuffle_action.connect("change-state", self.__on_shuffle_change_state) self.__playback_action = Gio.SimpleAction.new_stateful( "playback", GLib.VariantType.new("s"), GLib.Variant("s", "none")) self.__playback_action.set_state(App().settings.get_value("playback")) self.__playback_action.connect("change-state", self.__on_playback_change_state) App().add_action(self.__shuffle_action) App().add_action(self.__playback_action) self.__shuffle_button = builder.get_object("shuffle-button") self.__shuffle_image = builder.get_object("shuffle-button-image") shuffle_button_action = Gio.SimpleAction.new("shuffle-button", None) shuffle_button_action.connect("activate", self.__on_shuffle_button_activate) App().add_action(shuffle_button_action) App().set_accels_for_action("app.shuffle-button", ["<Control>r"]) App().settings.connect("changed::shuffle", self.__on_playback_changed) App().settings.connect("changed::playback", self.__on_playback_changed) party_action = Gio.SimpleAction.new_stateful( "party", None, GLib.Variant.new_boolean(App().player.is_party)) party_action.connect("change-state", self.__on_party_mode_change_state) App().add_action(party_action) App().set_accels_for_action("app.party", ["<Control>p"]) scrobbling_disabled = App().settings.get_value("disable-scrobbling") scrobbling_action = Gio.SimpleAction.new_stateful( "scrobbling", None, GLib.Variant.new_boolean(not scrobbling_disabled)) scrobbling_action.connect("change-state", self.__on_scrobbling_mode_change_state) App().add_action(scrobbling_action) App().set_accels_for_action("app.scrobbling", ["<Control><Shift>s"]) self.__next_popover = NextPopover() self.__next_popover.set_relative_to(self.__shuffle_button) search_action = Gio.SimpleAction.new("search", None) self.__search_button = builder.get_object("search-button") search_action.connect("activate", self.__on_search_activate) App().add_action(search_action) App().set_accels_for_action("app.search", ["<Control>f"]) builder_menu = Gtk.Builder() builder_menu.add_from_resource("/org/gnome/Lollypop/Appmenu.ui") builder.get_object("settings-button").set_menu_model( builder_menu.get_object("app-menu")) self.__list_button = builder.get_object("list-button") self.__list_button.set_property("has-tooltip", True) self.__list_button.connect("query-tooltip", self.__on_list_button_query_tooltip) self.__list_popover = None App().player.connect("playlist-changed", self.__on_playlist_changed) self.__set_shuffle_icon()