Exemple #1
0
 def edit(self, widget):
     """
         Edit radio
         @param widget as Gtk.Widget
     """
     self._popover = RadioPopover(self._name, self._radios_manager)
     self._popover.set_relative_to(widget)
     self._popover.show()
Exemple #2
0
 def _on_new_clicked(self, widget):
     """
         Show popover for adding a new radio
         @param widget as Gtk.Widget
     """
     popover = RadioPopover('', self._radios_manager)
     popover.set_relative_to(widget)
     popover.show()
Exemple #3
0
 def edit(self, widget):
     """
         Edit radio
         @param widget as Gtk.Widget
     """
     self._popover = RadioPopover(self._name, self._radios_manager)
     self._popover.set_relative_to(widget)
     self._popover.show()
Exemple #4
0
 def _on_edit_press_event(self, widget, event):
     """
         Edit radio
         @param: widget as Gtk.EventBox
         @param: event as Gdk.Event
     """
     popover = RadioPopover(self.__name, self.__radios_manager)
     popover.set_relative_to(widget)
     popover.connect('closed', self._on_pop_cover_closed)
     self._lock_overlay = True
     popover.show()
Exemple #5
0
 def __on_edit_clicked(self, button):
     """
         Edit radio
         @param button as Gtk.Button
     """
     from lollypop.pop_radio import RadioPopover
     popover = RadioPopover(self._radio_id, self.__radios)
     popover.set_relative_to(button)
     popover.connect("closed", self._on_popover_closed)
     self._lock_overlay = True
     popover.popup()
 def _on_edit_press_event(self, widget, event):
     """
         Edit radio
         @param: widget as Gtk.EventBox
         @param: event as Gdk.Event
     """
     popover = RadioPopover(self._name, self._radios_manager)
     popover.set_relative_to(widget)
     popover.connect('closed', self._on_pop_cover_closed)
     self._lock_overlay = True
     popover.show()
Exemple #7
0
 def _on_new_clicked(self, widget):
     """
         Show popover for adding a new radio
         @param widget as Gtk.Widget
     """
     popover = RadioPopover('', self._radios_manager)
     popover.set_relative_to(widget)
     popover.show()
Exemple #8
0
 def _on_new_clicked(self, widget):
     """
         Show popover for adding a new radio
         @param widget as Gtk.Widget
     """
     from lollypop.pop_radio import RadioPopover
     popover = RadioPopover(None, self.__radios)
     popover.set_relative_to(widget)
     popover.popup()
Exemple #9
0
class RadioWidget(Gtk.Bin, AlbumWidget):
    """
        Widget with radio cover and title
    """

    def __init__(self, name, radios_manager):
        """
            Init radio widget
            @param name as string
            @param radios_manager as RadiosManager
        """
        Gtk.Bin.__init__(self)
        AlbumWidget.__init__(self, None)
        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/RadioWidget.ui')
        builder.connect_signals(self)
        self._cover = builder.get_object('cover')
        self._color = builder.get_object('color')
        self._name = name
        self._radios_manager = radios_manager
        self._popover = None
        self._title = builder.get_object('title')
        self._title.set_label(name)
        self.update_state()
        self.add(builder.get_object('widget'))
        self.set_cover()
        self.set_property('halign', Gtk.Align.START)

    def set_sensitive(self, b):
        """
            Ignore set sensitive
        """
        pass

    def get_id(self):
        """
            Return widget id (same value for all radio widgets)
        """
        return Type.RADIOS

    def do_get_preferred_width(self):
        """
            Set maximum width
        """
        widths = self._cover.get_preferred_width()
        return (widths[0] + 8, widths[1] + 8)

    def set_name(self, name):
        """
            Set radio name
            @param name as string
        """
        self._name = name
        self._title.set_label(name)

    def get_name(self):
        """
            Return radio name
            @return name as string
        """
        return self._name

    def set_cover(self):
        """
            Set cover for album if state changed
        """
        if self._cover is None:
            return
        surface = Lp().art.get_radio_artwork(
                    self._name,
                    ArtSize.BIG*self._cover.get_scale_factor())
        self._cover.set_from_surface(surface)
        del surface

    def update_cover(self):
        """
            Update cover for radio
        """
        if self._cover is None:
            return
        surface = Lp().art.get_radio_artwork(
                    self._name,
                    ArtSize.BIG*self._cover.get_scale_factor())
        self._cover.set_from_surface(surface)
        del surface

    def update_state(self):
        """
            Update widget state
        """
        selected = Lp().player.current_track.id == Type.RADIOS and\
            self._name == Lp().player.current_track.album_artist
        if selected:
            self._color.get_style_context().add_class(
                                                    'cover-frame-selected')
        else:
            self._color.get_style_context().remove_class(
                                                    'cover-frame-selected')

    def edit(self, widget):
        """
            Edit radio
            @param widget as Gtk.Widget
        """
        self._popover = RadioPopover(self._name, self._radios_manager)
        self._popover.set_relative_to(widget)
        self._popover.show()

#######################
# PRIVATE             #
#######################
    def _on_title_press(self, widget, event):
        """
            Edit radio
            @param widget as Gtk.Widget
            @param event as Gdk.Event
        """
        self.edit(widget)

    def _on_cover_press(self, widget, event):
        """
            Edit radio on right click
            @param widget as Gtk.Widget
            @param event as Gdk.Event
        """
        if event.button != 1:
            self.edit(widget)

    def _on_eventbox_realize1(self, eventbox):
        """
            Change cursor over cover eventbox
            @param eventbox as Gdk.Eventbox
        """
        eventbox.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.HAND1))

    def _on_eventbox_realize2(self, eventbox):
        """
            Change cursor over title eventbox
            @param eventbox as Gdk.Eventbox
        """
        eventbox.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.PENCIL))
Exemple #10
0
 def _on_new_clicked(self, widget):
     popover = RadioPopover('', self._radios_manager)
     popover.set_relative_to(widget)
     popover.show()
Exemple #11
0
class RadioWidget(AlbumWidget):
    """
        Init radio widget
        @param name as string
        @param radios_manager as RadiosManager
    """
    def __init__(self, name, radios_manager):
        AlbumWidget.__init__(self, None)
        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/RadioWidget.ui')
        builder.connect_signals(self)
        self._cover = builder.get_object('cover')

        self._name = name
        self._radios_manager = radios_manager
        self._popover = None

        self._title = builder.get_object('title')
        self._title.set_label(name)

        self.add(builder.get_object('widget'))
        self.set_cover()
        self.set_property('halign', Gtk.Align.START)
        # Set minimum width
        self.set_property('width-request', ArtSize.BIG+ArtSize.BORDER*2)

    """
        Ignore set sensitive
    """
    def set_sensitive(self, b):
        pass

    """
        Return widget id (same value for all radio widgets)
    """
    def get_id(self):
        return Type.RADIOS

    """
        Set maximum width
    """
    def do_get_preferred_width(self):
        return (ArtSize.BIG+ArtSize.BORDER*2, ArtSize.BIG+ArtSize.BORDER*2)

    """
        Set radio name
        @param name as string
    """
    def set_name(self, name):
        self._name = name
        self._title.set_label(name)

    """
        Return radio name
        @return name as string
    """
    def get_name(self):
        return self._name

    """
        Set cover for album if state changed
        @param force as bool
    """
    def set_cover(self, force=False):
        selected = Lp.player.current_track.id == Type.RADIOS and\
            self._name == Lp.player.current_track.artist
        if self._cover is not None and (selected != self._selected or force):
            self._selected = selected
            pixbuf = Lp.art.get_radio(self._name,
                                      ArtSize.BIG,
                                      selected)
            self._cover.set_from_pixbuf(pixbuf)
            del pixbuf

    """
        Update cover for album id id needed
    """
    def update_cover(self):
        if self._cover is not None:
            self._selected = Lp.player.current_track.id == Type.RADIOS\
                and self._name == Lp.player.current_track.artist
            pixbuf = Lp.art.get_radio(self._name,
                                      ArtSize.BIG,
                                      self._selected)
            self._cover.set_from_pixbuf(pixbuf)
            del pixbuf

#######################
# PRIVATE             #
#######################
    """
        Edit radio
        @param widget as Gtk.Widget
        @param event as Gdk.Event
    """
    def _on_button_press(self, widget, event):
        self._popover = RadioPopover(self._name, self._radios_manager)
        self._popover.set_relative_to(widget)
        self._popover.show()

    """
        Change cursor over cover eventbox
        @param eventbox as Gdk.Eventbox
    """
    def _on_eventbox_realize1(self, eventbox):
        eventbox.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.HAND1))

    """
        Change cursor over title eventbox
        @param eventbox as Gdk.Eventbox
    """
    def _on_eventbox_realize2(self, eventbox):
        eventbox.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.PENCIL))
Exemple #12
0
 def _on_button_press(self, widget, event):
     self._popover = RadioPopover(self._name, self._radios_manager)
     self._popover.set_relative_to(widget)
     self._popover.show()
Exemple #13
0
class RadioWidget(AlbumWidget):
    """
        Widget with radio cover and title
    """

    def __init__(self, name, radios_manager):
        """
            Init radio widget
            @param name as string
            @param radios_manager as RadiosManager
        """
        AlbumWidget.__init__(self, None)
        builder = Gtk.Builder()
        builder.add_from_resource("/org/gnome/Lollypop/RadioWidget.ui")
        builder.connect_signals(self)
        self._cover = builder.get_object("cover")

        self._name = name
        self._radios_manager = radios_manager
        self._popover = None

        self._title = builder.get_object("title")
        self._title.set_label(name)

        self.add(builder.get_object("widget"))
        self.set_cover()
        self.set_property("halign", Gtk.Align.START)

    def set_sensitive(self, b):
        """
            Ignore set sensitive
        """
        pass

    def get_id(self):
        """
            Return widget id (same value for all radio widgets)
        """
        return Type.RADIOS

    def do_get_preferred_width(self):
        """
            Set maximum width
        """
        return self._cover.get_preferred_width()

    def set_name(self, name):
        """
            Set radio name
            @param name as string
        """
        self._name = name
        self._title.set_label(name)

    def get_name(self):
        """
            Return radio name
            @return name as string
        """
        return self._name

    def set_cover(self, force=False):
        """
            Set cover for album if state changed
            @param force as bool
        """
        selected = Lp.player.current_track.id == Type.RADIOS and self._name == Lp.player.current_track.artist
        if self._cover is not None and (selected != self._selected or force):
            self._selected = selected
            surface = Lp.art.get_radio(self._name, ArtSize.BIG * self._cover.get_scale_factor(), selected)
            self._cover.set_from_surface(surface)
            del surface

    def update_cover(self):
        """
            Update cover for album id id needed
        """
        if self._cover is not None:
            self._selected = Lp.player.current_track.id == Type.RADIOS and self._name == Lp.player.current_track.artist
            surface = Lp.art.get_radio(self._name, ArtSize.BIG * self._cover.get_scale_factor(), self._selected)
            self._cover.set_from_surface(surface)
            del surface

    def edit(self, widget):
        """
            Edit radio
            @param widget as Gtk.Widget
        """
        self._popover = RadioPopover(self._name, self._radios_manager)
        self._popover.set_relative_to(widget)
        self._popover.show()

    #######################
    # PRIVATE             #
    #######################
    def _on_title_press(self, widget, event):
        """
            Edit radio
            @param widget as Gtk.Widget
            @param event as Gdk.Event
        """
        self.edit(widget)

    def _on_cover_press(self, widget, event):
        """
            Edit radio on right click
            @param widget as Gtk.Widget
            @param event as Gdk.Event
        """
        if event.button != 1:
            self.edit(widget)

    def _on_eventbox_realize1(self, eventbox):
        """
            Change cursor over cover eventbox
            @param eventbox as Gdk.Eventbox
        """
        eventbox.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.HAND1))

    def _on_eventbox_realize2(self, eventbox):
        """
            Change cursor over title eventbox
            @param eventbox as Gdk.Eventbox
        """
        eventbox.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.PENCIL))
Exemple #14
0
class RadioWidget(Gtk.Bin, AlbumWidget):
    """
        Widget with radio cover and title
    """

    def __init__(self, name, radios_manager):
        """
            Init radio widget
            @param name as string
            @param radios_manager as RadiosManager
        """
        Gtk.Bin.__init__(self)
        AlbumWidget.__init__(self, None)
        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Lollypop/RadioWidget.ui')
        builder.connect_signals(self)
        self._cover = builder.get_object('cover')
        self._color = builder.get_object('color')
        self._name = name
        self._radios_manager = radios_manager
        self._popover = None
        self._title = builder.get_object('title')
        self._title.set_label(name)
        self.update_state()
        self.add(builder.get_object('widget'))
        self.set_cover()
        self.set_property('halign', Gtk.Align.START)

    def set_sensitive(self, b):
        """
            Ignore set sensitive
        """
        pass

    def get_id(self):
        """
            Return widget id (same value for all radio widgets)
        """
        return Type.RADIOS

    def do_get_preferred_width(self):
        """
            Set maximum width
        """
        widths = self._cover.get_preferred_width()
        return (widths[0] + 8, widths[1] + 8)

    def set_name(self, name):
        """
            Set radio name
            @param name as string
        """
        self._name = name
        self._title.set_label(name)

    def get_name(self):
        """
            Return radio name
            @return name as string
        """
        return self._name

    def set_cover(self):
        """
            Set cover for album if state changed
        """
        if self._cover is None:
            return
        surface = Lp().art.get_radio_artwork(
                    self._name,
                    ArtSize.BIG*self._cover.get_scale_factor())
        self._cover.set_from_surface(surface)
        del surface

    def update_cover(self):
        """
            Update cover for radio
        """
        if self._cover is None:
            return
        surface = Lp().art.get_radio_artwork(
                    self._name,
                    ArtSize.BIG*self._cover.get_scale_factor())
        self._cover.set_from_surface(surface)
        del surface

    def update_state(self):
        """
            Update widget state
        """
        selected = Lp().player.current_track.id == Type.RADIOS and\
            self._name == Lp().player.current_track.album_artist
        if selected:
            self._color.get_style_context().add_class(
                                                    'cover-frame-selected')
        else:
            self._color.get_style_context().remove_class(
                                                    'cover-frame-selected')

    def edit(self, widget):
        """
            Edit radio
            @param widget as Gtk.Widget
        """
        self._popover = RadioPopover(self._name, self._radios_manager)
        self._popover.set_relative_to(widget)
        self._popover.show()

#######################
# PRIVATE             #
#######################
    def _on_title_press(self, widget, event):
        """
            Edit radio
            @param widget as Gtk.Widget
            @param event as Gdk.Event
        """
        self.edit(widget)

    def _on_cover_press(self, widget, event):
        """
            Edit radio on right click
            @param widget as Gtk.Widget
            @param event as Gdk.Event
        """
        if event.button != 1:
            self.edit(widget)

    def _on_eventbox_realize1(self, eventbox):
        """
            Change cursor over cover eventbox
            @param eventbox as Gdk.Eventbox
        """
        eventbox.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.HAND1))

    def _on_eventbox_realize2(self, eventbox):
        """
            Change cursor over title eventbox
            @param eventbox as Gdk.Eventbox
        """
        eventbox.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.PENCIL))