示例#1
0
    def _setup_view(self):
        self._paned_main_list = Gtk.HPaned()
        self._paned_list_view = Gtk.HPaned()
        vgrid = Gtk.Grid()
        vgrid.set_orientation(Gtk.Orientation.VERTICAL)

        self._list_one = SelectionList()
        self._list_one.widget.show()
        self._list_two = SelectionList()
        self._list_one.connect('item-selected', self._on_list_one_selected)
        self._list_one.connect('populated', self._on_list_one_populated)
        self._list_two.connect('item-selected', self._on_list_two_selected)
        self._list_two.connect('populated', self._on_list_two_populated)

        self._progress = Gtk.ProgressBar()

        vgrid.add(self._stack)
        vgrid.add(self._progress)
        vgrid.show()

        separator = Gtk.Separator()
        separator.show()
        self._paned_list_view.add1(self._list_two.widget)
        self._paned_list_view.add2(vgrid)
        self._paned_main_list.add1(self._list_one.widget)
        self._paned_main_list.add2(self._paned_list_view)
        self._paned_main_list.set_position(
            Objects.settings.get_value("paned-mainlist-width").get_int32())
        self._paned_list_view.set_position(
            Objects.settings.get_value("paned-listview-width").get_int32())
        self._paned_main_list.show()
        self._paned_list_view.show()
 def __init__(self):
     """
         Init container
     """
     self._list_one = SelectionList(SelectionListMask.LIST_ONE)
     self._list_two = SelectionList(SelectionListMask.LIST_TWO)
     self._list_one.connect("item-selected", self.__on_list_one_selected)
     self._list_one.connect("populated", self.__on_list_one_populated)
     self._list_one.connect("pass-focus", self.__on_pass_focus)
     self._list_two.connect("item-selected", self.__on_list_two_selected)
     self._list_two.connect("pass-focus", self.__on_pass_focus)
示例#3
0
    def right_list(self):
        """
            Get right selection list
            @return SelectionList
        """
        def on_unmap(widget):
            """
                Hide right list on left list hidden
            """
            if not App().window.folded:
                self._hide_right_list()

        if self.__right_list is None:
            eventbox = Gtk.EventBox.new()
            eventbox.set_size_request(50, -1)
            eventbox.show()
            self.__right_list_grid = Gtk.Grid()
            style_context = self.__right_list_grid.get_style_context()
            style_context.add_class("left-gradient")
            style_context.add_class("opacity-transition-fast")
            self.__right_list = SelectionList(SelectionListMask.FASTSCROLL)
            self.__right_list.show()
            self.__right_list.scrolled.set_size_request(250, -1)
            self.__gesture = GesturesHelper(
                eventbox, primary_press_callback=self._hide_right_list)
            self.__right_list.listbox.connect("row-activated",
                                              self.__on_right_list_activated)
            self.__right_list_grid.add(eventbox)
            self.__right_list_grid.add(self.__right_list)
            self.__left_list.overlay.add_overlay(self.__right_list_grid)
            self.__left_list.connect("unmap", on_unmap)
            self.__left_list.connect("populated", self.__on_list_populated)
            self.__right_list.connect("populated", self.__on_list_populated)
        return self.__right_list
示例#4
0
 def left_list(self):
     """
         Get left selection list
         @return SelectionList
     """
     if self.__left_list is None:
         self.__left_list = SelectionList(SelectionListMask.FASTSCROLL)
         self.__left_list.listbox.connect("row-activated",
                                          self.__on_left_list_activated)
         self.__left_list.scrolled.set_size_request(300, -1)
     return self.__left_list
示例#5
0
 def _setup_lists(self):
     """
         Add and setup list one and list two
     """
     self._list_one = SelectionList(SelectionListMask.LIST_ONE)
     self._list_two = SelectionList(SelectionListMask.LIST_TWO)
     self._list_one.listbox.connect("row-activated",
                                    self.__on_list_one_activated)
     self._list_two.listbox.connect("row-activated",
                                    self.__on_list_two_activated)
     self._list_one.connect("populated", self.__on_list_one_populated)
     self._list_one.connect("pass-focus", self.__on_pass_focus)
     self._list_two.connect("pass-focus", self.__on_pass_focus)
     self._list_two.connect("map", self.__on_list_two_mapped)
     self._paned_two.add1(self._list_two)
     self._paned_one.add1(self._list_one)
     App().window.add_paned(self._paned_one, self._list_one)
     App().window.add_paned(self._paned_two, self._list_two)
     if App().window.is_adaptive:
         self._list_one.show()
         App().window.update_layout(True)
示例#6
0
    def __setup_view(self):
        """
            Setup window main view:
                - genre list
                - artist list
                - main view as artist view or album view
        """
        self._paned_main_list = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
        self._paned_list_view = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
        vgrid = Gtk.Grid()
        vgrid.set_orientation(Gtk.Orientation.VERTICAL)

        self.__list_one = SelectionList()
        if Lp().settings.get_value("show-navigation-list"):
            self.__list_one.show()
        self.__list_two = SelectionList()
        self.__list_one.connect("item-selected", self.__on_list_one_selected)
        self.__list_one.connect("populated", self.__on_list_populated)
        self.__list_one.connect("pass-focus", self.__on_pass_focus)
        self.__list_two.connect("item-selected", self.__on_list_two_selected)
        self.__list_two.connect("pass-focus", self.__on_pass_focus)

        self.__progress = ProgressBar()
        self.__progress.set_property("hexpand", True)

        vgrid.add(self.__stack)
        vgrid.add(self.__progress)
        vgrid.show()

        self._paned_list_view.add1(self.__list_two)
        self._paned_list_view.add2(vgrid)
        self._paned_main_list.add1(self.__list_one)
        self._paned_main_list.add2(self._paned_list_view)
        self._paned_main_list.set_position(
            Lp().settings.get_value("paned-mainlist-width").get_int32())
        self._paned_list_view.set_position(
            Lp().settings.get_value("paned-listview-width").get_int32())
        self._paned_main_list.show()
        self._paned_list_view.show()
示例#7
0
    def _setup_view(self):
        """
            Setup window main view:
                - genre list
                - artist list
                - main view as artist view or album view
        """
        self._paned_main_list = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
        self._paned_list_view = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)
        vgrid = Gtk.Grid()
        vgrid.set_orientation(Gtk.Orientation.VERTICAL)

        self._list_one = SelectionList()
        self._list_one.show()
        self._list_two = SelectionList()
        self._list_one.connect('item-selected', self._on_list_one_selected)
        self._list_one.connect('populated', self._on_list_populated)
        self._list_two.connect('item-selected', self._on_list_two_selected)

        self._progress = Gtk.ProgressBar()
        self._progress.set_property('hexpand', True)

        vgrid.add(self._stack)
        vgrid.add(self._progress)
        vgrid.show()

        separator = Gtk.Separator()
        separator.show()
        self._paned_list_view.add1(self._list_two)
        self._paned_list_view.add2(vgrid)
        self._paned_main_list.add1(self._list_one)
        self._paned_main_list.add2(self._paned_list_view)
        self._paned_main_list.set_position(
            Lp.settings.get_value('paned-mainlist-width').get_int32())
        self._paned_list_view.set_position(
            Lp.settings.get_value('paned-listview-width').get_int32())
        self._paned_main_list.show()
        self._paned_list_view.show()
示例#8
0
 def __init__(self):
     """
         Init container
     """
     self.__left_list = None
     self.__right_list = None
     self._sidebar = SelectionList(SelectionListMask.SIDEBAR)
     self._sidebar.show()
     self._sidebar.listbox.connect("row-activated",
                                   self.__on_sidebar_activated)
     self._sidebar.connect("populated", self.__on_sidebar_populated)
     items = ShownLists.get(SelectionListMask.SIDEBAR)
     self._sidebar.populate(items)
     self._stack.connect("set-sidebar-id", self.__on_set_sidebar_id)
     self._stack.connect("set-selection-ids", self.__on_set_selection_ids)
示例#9
0
    def __init__(self, device):
        """
            Init view
            @param device as Device
        """
        View.__init__(self)
        self.__timeout_id = None
        self.__device = device
        self.__selected_ids = []
        builder = Gtk.Builder()
        builder.add_from_resource("/org/gnome/Lollypop/DeviceManagerView.ui")
        self.__memory_combo = builder.get_object("memory_combo")
        self.__syncing_btn = builder.get_object("sync_btn")
        # FIXME Wait for translation
        _("Synchronize")
        self.__syncing_btn.set_label(_("Synchronize %s") % "")
        builder.connect_signals(self)
        self.__device_widget = DeviceManagerWidget(self)
        self.__device_widget.mtp_sync.connect("sync-finished",
                                              self.__on_sync_finished)
        self.__device_widget.mtp_sync.connect("sync-errors",
                                              self.__on_sync_errors)
        self.__device_widget.show()
        self.__infobar = builder.get_object("infobar")
        self.__error_label = builder.get_object("error_label")
        self.__paned = builder.get_object("paned")
        self.__selection_list = SelectionList(SelectionListMask.LIST_ONE)
        self.__selection_list.connect("item-selected", self.__on_item_selected)
        self.__selection_list.mark_as(SelectionListMask.ARTISTS)
        self.__selection_list.show()
        self.__paned.add1(self.__selection_list)
        self.__paned.add2(builder.get_object("device_view"))
        builder.get_object("device_view").attach(self._scrolled, 0, 3, 4, 1)
        self.add(self.__paned)
        self.__paned.set_position(
            App().settings.get_value("paned-device-width").get_int32())

        self.__update_list_device()
        self.__sanitize_non_mtp()
示例#10
0
    def __init__(self, parent):
        """
            Init widget
            @param device as Device
            @param parent as Gtk.Widget
        """
        Gtk.Bin.__init__(self)
        MtpSync.__init__(self)
        self.__parent = parent
        self.__stop = False
        self._uri = None

        builder = Gtk.Builder()
        builder.add_from_resource("/org/gnome/Lollypop/DeviceManagerWidget.ui")
        widget = builder.get_object("widget")
        self.__error_label = builder.get_object("error-label")
        self.__switch_albums = builder.get_object("switch_albums")
        self.__switch_albums.set_state(Lp().settings.get_value("sync-albums"))
        self.__switch_mp3 = builder.get_object("switch_mp3")
        self.__switch_normalize = builder.get_object("switch_normalize")
        if not self._check_encoder_status():
            self.__switch_mp3.set_sensitive(False)
            self.__switch_normalize.set_sensitive(False)
            self.__switch_mp3.set_tooltip_text(
                _("You need to install " + "gstreamer-plugins-ugly"))
        else:
            self.__switch_mp3.set_state(Lp().settings.get_value("convert-mp3"))
        self.__menu_items = builder.get_object("menu-items")
        self.__menu = builder.get_object("menu")

        self.__model = Gtk.ListStore(bool, str, int)

        self.__selection_list = SelectionList(False)
        self.__selection_list.connect("item-selected", self.__on_item_selected)
        widget.attach(self.__selection_list, 1, 1, 1, 1)
        self.__selection_list.set_hexpand(True)

        self.__view = builder.get_object("view")
        self.__view.set_model(self.__model)

        builder.connect_signals(self)

        self.add(widget)

        self.__infobar = builder.get_object("infobar")
        self.__infobar_label = builder.get_object("infobarlabel")

        renderer0 = Gtk.CellRendererToggle()
        renderer0.set_property("activatable", True)
        renderer0.connect("toggled", self.__on_item_toggled)
        column0 = Gtk.TreeViewColumn(" ✓", renderer0, active=0)
        column0.set_clickable(True)
        column0.connect("clicked", self.__on_column0_clicked)

        renderer1 = CellRendererAlbum()
        self.__column1 = Gtk.TreeViewColumn("", renderer1, album=2)

        renderer2 = Gtk.CellRendererText()
        renderer2.set_property("ellipsize-set", True)
        renderer2.set_property("ellipsize", Pango.EllipsizeMode.END)
        self.__column2 = Gtk.TreeViewColumn("", renderer2, markup=1)
        self.__column2.set_expand(True)

        self.__view.append_column(column0)
        self.__view.append_column(self.__column1)
        self.__view.append_column(self.__column2)