예제 #1
0
 def __on_button_clicked(self, button):
     """
         Popup menu for track relative to button
         @param button as Gtk.Button
     """
     self.__context_timeout_id = None
     image = self.__menu_button.get_image()
     if self.__context is None:
         image.set_from_icon_name("go-next-symbolic", Gtk.IconSize.MENU)
         self.__context = ContextWidget(self._track, button)
         self.__context.set_property("halign", Gtk.Align.END)
         self.__context.show()
         self._duration_label.hide()
         self._grid.insert_next_to(button, Gtk.PositionType.LEFT)
         self._grid.attach_next_to(self.__context, button,
                                   Gtk.PositionType.LEFT, 1, 1)
         self.set_indicator(Lp().player.current_track.id == self._track.id,
                            False)
     else:
         image.set_from_icon_name("go-previous-symbolic", Gtk.IconSize.MENU)
         self.__context.destroy()
         self._duration_label.show()
         self.__context = None
         self.set_indicator(Lp().player.current_track.id == self._track.id,
                            utils.is_loved(self._track.id))
예제 #2
0
 def __on_indicator_button_release_event(self, button, event):
     """
         Popup menu for track relative to button
         @param button as Gtk.Button
         @param event as Gdk.EventButton
     """
     def on_hide(widget):
         self.__on_indicator_button_release_event(button, event)
     self.__context_timeout_id = None
     image = self.__menu_button.get_image()
     if self.__context is None:
         image.set_from_icon_name("go-next-symbolic",
                                  Gtk.IconSize.MENU)
         self.__context = ContextWidget(self._track, button)
         self.__context.connect("hide", on_hide)
         self.__context.set_property("halign", Gtk.Align.END)
         self.__context.show()
         self._duration_label.hide()
         self._grid.insert_next_to(button, Gtk.PositionType.LEFT)
         self._grid.attach_next_to(self.__context, button,
                                   Gtk.PositionType.LEFT, 1, 1)
         self.set_indicator(App().player.current_track.id == self._track.id,
                            False)
     else:
         image.set_from_icon_name("go-previous-symbolic",
                                  Gtk.IconSize.MENU)
         self.__context.destroy()
         self._duration_label.show()
         self.__context = None
         self.set_indicator(App().player.current_track.id == self._track.id,
                            self._track.loved)
     return True
예제 #3
0
 def __on_indicator_button_release_event(self, button, event, box, disc):
     """
         Popup menu for track relative to button
         @param button as Gtk.Button
         @param event as Gdk.EventButton
         @param box as Gtk.Box
         @param disc as Disc
     """
     def on_hide(widget):
         button.emit("clicked")
     from lollypop.widgets_context import ContextWidget
     context_widget = None
     for child in box.get_children():
         if isinstance(child, ContextWidget):
             context_widget = child
             break
     image = button.get_image()
     if context_widget is None:
         image.set_from_icon_name("go-previous-symbolic",
                                  Gtk.IconSize.MENU)
         context_widget = ContextWidget(disc, button)
         context_widget.connect("hide", on_hide)
         context_widget.show()
         box.add(context_widget)
     else:
         image.set_from_icon_name("go-next-symbolic",
                                  Gtk.IconSize.MENU)
         context_widget.destroy()
     return True
예제 #4
0
 def _on_context_clicked(self, button):
     """
         Show context widget
         @param button as Gtk.Button
     """
     image = button.get_image()
     if self.__context is None:
         image.set_from_icon_name('go-previous-symbolic', Gtk.IconSize.MENU)
         self.__context = ContextWidget(self._album, button)
         self.__context.set_property('halign', Gtk.Align.START)
         self.__context.set_property('valign', Gtk.Align.CENTER)
         self.__context.show()
         self.__header.insert_next_to(button, Gtk.PositionType.RIGHT)
         self.__header.attach_next_to(self.__context, button,
                                      Gtk.PositionType.RIGHT, 1, 1)
     else:
         image.set_from_icon_name('go-next-symbolic', Gtk.IconSize.MENU)
         self.__context.destroy()
         self.__context = None
예제 #5
0
 def __on_context_clicked(self, button):
     """
         Show context widget
         @param button as Gtk.Button
     """
     def on_hide(widget):
         button.emit("clicked")
     image = button.get_image()
     if self.__context is None:
         image.set_from_icon_name("go-previous-symbolic",
                                  Gtk.IconSize.MENU)
         self.__context = ContextWidget(self._album, button)
         self.__context.connect("hide", on_hide)
         self.__context.set_property("halign", Gtk.Align.START)
         self.__context.set_property("valign", Gtk.Align.CENTER)
         self.__context.show()
         self.__header.insert_next_to(button, Gtk.PositionType.RIGHT)
         self.__header.attach_next_to(self.__context, button,
                                      Gtk.PositionType.RIGHT, 1, 1)
     else:
         image.set_from_icon_name("go-next-symbolic",
                                  Gtk.IconSize.MENU)
         self.__context.destroy()
         self.__context = None