Hello community, here is the log from the commit of package lollypop for openSUSE:Factory checked in at 2019-11-03 12:16:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lollypop (Old) and /work/SRC/openSUSE:Factory/.lollypop.new.2990 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "lollypop" Sun Nov 3 12:16:17 2019 rev:106 rq:744774 version:1.2.4 Changes: -------- --- /work/SRC/openSUSE:Factory/lollypop/lollypop.changes 2019-10-31 22:23:16.512156588 +0100 +++ /work/SRC/openSUSE:Factory/.lollypop.new.2990/lollypop.changes 2019-11-03 12:16:18.740925503 +0100 @@ -1,0 +2,11 @@ +Fri Nov 01 15:18:51 UTC 2019 - antoine.belvire@opensuse.org + +- Update to version 1.2.4: + * Fix network unavailable message in lyrics view + (glgo#World/lollypop#2100). + * Fix a crash when updating music database after moving files + (glgo#World/lollypop#2102). + * Fix a crash upon drag and drop (glgo#World/lollypop#2101). + * Don't display empty discs (glgo#World/lollypop#2099). + +------------------------------------------------------------------- Old: ---- lollypop-1.2.3.tar.xz New: ---- lollypop-1.2.4.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lollypop.spec ++++++ --- /var/tmp/diff_new_pack.SCn83t/_old 2019-11-03 12:16:20.500927673 +0100 +++ /var/tmp/diff_new_pack.SCn83t/_new 2019-11-03 12:16:20.548927732 +0100 @@ -17,7 +17,7 @@ Name: lollypop -Version: 1.2.3 +Version: 1.2.4 Release: 0 Summary: GNOME music playing application License: GPL-3.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.SCn83t/_old 2019-11-03 12:16:20.748927979 +0100 +++ /var/tmp/diff_new_pack.SCn83t/_new 2019-11-03 12:16:20.760927993 +0100 @@ -1,7 +1,7 @@ <services> <service mode="disabled" name="tar_scm"> <param name="changesgenerate">enable</param> - <param name="revision">1.2.3</param> + <param name="revision">1.2.4</param> <param name="scm">git</param> <param name="url">https://gitlab.gnome.org/World/lollypop.git</param> <param name="versionformat">@PARENT_TAG@</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.SCn83t/_old 2019-11-03 12:16:20.844928097 +0100 +++ /var/tmp/diff_new_pack.SCn83t/_new 2019-11-03 12:16:20.868928126 +0100 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">https://gitlab.gnome.org/World/lollypop.git</param> - <param name="changesrevision">aea8d9b47c87ce8432806cbb0864da1e7fa39db8</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">eebbd079235de8fdd37a6c64b50f2eed83dde537</param></service></servicedata> \ No newline at end of file ++++++ lollypop-1.2.3.tar.xz -> lollypop-1.2.4.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/data/org.gnome.Lollypop.appdata.xml.in new/lollypop-1.2.4/data/org.gnome.Lollypop.appdata.xml.in --- old/lollypop-1.2.3/data/org.gnome.Lollypop.appdata.xml.in 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/data/org.gnome.Lollypop.appdata.xml.in 2019-11-01 15:43:12.000000000 +0100 @@ -17,7 +17,7 @@ </ul> </description> <releases> - <release version="1.2.3" date="2019-10-30"> + <release version="1.2.4" date="2019-11-01"> <description> </description> </release> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/database_albums.py new/lollypop-1.2.4/lollypop/database_albums.py --- old/lollypop-1.2.3/lollypop/database_albums.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/database_albums.py 2019-11-01 15:43:12.000000000 +0100 @@ -752,28 +752,18 @@ result = sql.execute(request, filters) return list(itertools.chain(*result)) - def get_discs(self, album_id, genre_ids): + def get_discs(self, album_id): """ Get disc numbers @param album_id as int - @param genre_ids as [int] @return [disc as int] """ - genre_ids = remove_static(genre_ids) with SqlCursor(App().db) as sql: - filters = (album_id,) - filters += tuple(genre_ids) request = "SELECT DISTINCT discnumber\ - FROM tracks, track_genres\ + FROM tracks\ WHERE tracks.album_id=?\ - AND track_genres.track_id = tracks.rowid" - if genre_ids: - request += " AND (" - for genre_id in genre_ids: - request += "track_genres.genre_id=? OR " - request += "1=0)" - request += " ORDER BY discnumber" - result = sql.execute(request, filters) + ORDER BY discnumber" + result = sql.execute(request, (album_id,)) return list(itertools.chain(*result)) def get_track_uris(self, album_id): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/helper_dnd.py new/lollypop-1.2.4/lollypop/helper_dnd.py --- old/lollypop-1.2.3/lollypop/helper_dnd.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/helper_dnd.py 2019-11-01 15:43:12.000000000 +0100 @@ -24,6 +24,8 @@ """ __gsignals__ = { + "dnd-insert": (GObject.SignalFlags.RUN_FIRST, None, + (GObject.TYPE_PYOBJECT, int)), "dnd-finished": (GObject.SignalFlags.RUN_FIRST, None, ()), } @@ -37,7 +39,6 @@ self.__listbox = listbox self.__view_type = view_type self.__drag_begin_rows = [] - self.__gestures_to_block = [] self.__autoscroll_timeout_id = None self.__begin_scrolled_y = 0 self.__gesture = Gtk.GestureDrag.new(listbox) @@ -47,13 +48,6 @@ self.__gesture.connect("drag-end", self.__on_drag_end) self.__gesture.connect("drag-update", self.__on_drag_update) - def add_to_block_list(self, gesture): - """ - Group gesture with self - @param gesture as Gtk.Gesture - """ - self.__gestures_to_block.append(gesture) - @property def gesture(self): """ @@ -123,12 +117,12 @@ direction) index = album_row.get_index() if split_album_row is not None: - self.__listbox.insert(split_album_row, index) + self.emit("dnd-insert", split_album_row, index) index += 1 elif direction == Gtk.DirectionType.DOWN: index += 1 for row in new_rows: - self.__listbox.insert(row, index) + self.emit("dnd-insert", row, index) index += 1 else: index = dest_row.get_index() @@ -136,7 +130,7 @@ if direction == Gtk.DirectionType.DOWN: index += 1 for row in new_rows: - self.__listbox.insert(row, index) + self.emit("dnd-insert", row, index) index += 1 # Calculate update range for row in src_rows: @@ -330,8 +324,6 @@ if row is None: return if self.__drag_begin_rows and row not in self.__drag_begin_rows: - for to_block in self.__gestures_to_block: - to_block.set_state(Gtk.EventSequenceState.DENIED) row_height = row.get_allocated_height() (row_x, row_y) = row.translate_coordinates(self.__listbox, 0, 0) @@ -339,8 +331,9 @@ direction = Gtk.DirectionType.UP elif y > row_y - row_height / 2: direction = Gtk.DirectionType.DOWN - self.__do_drag_and_drop(self.__drag_begin_rows, - row, direction) + GLib.idle_add(self.__do_drag_and_drop, + self.__drag_begin_rows, + row, direction) def __on_drag_update(self, gesture, x, y): """ @@ -377,4 +370,3 @@ self.__autoscroll_timeout_id = GLib.idle_add(self.__autoscroll, scrolled, -diff / 10000) - gesture.set_state(Gtk.EventSequenceState.CLAIMED) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/menu_objects.py new/lollypop-1.2.4/lollypop/menu_objects.py --- old/lollypop-1.2.3/lollypop/menu_objects.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/menu_objects.py 2019-11-01 15:43:12.000000000 +0100 @@ -68,6 +68,9 @@ @param track as Track """ Gio.Menu.__init__(self) + from lollypop.menu_artist import ArtistAlbumsMenu + menu = ArtistAlbumsMenu(track.artist_ids[0], ViewType.DEFAULT) + self.append_section(_("Artist"), menu) if not track.storage_type & StorageType.EPHEMERAL: section = Gio.Menu() section.append_submenu(_("Playlists"), PlaylistsMenu(track)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/objects_album.py new/lollypop-1.2.4/lollypop/objects_album.py --- old/lollypop-1.2.3/lollypop/objects_album.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/objects_album.py 2019-11-01 15:43:12.000000000 +0100 @@ -310,7 +310,9 @@ @return [Disc] """ if not self._discs: - disc_numbers = self.db.get_discs(self.id, self.genre_ids) - self._discs = [Disc(self, number, self.__disallow_ignored_tracks) - for number in disc_numbers] + disc_numbers = self.db.get_discs(self.id) + for disc_number in disc_numbers: + disc = Disc(self, disc_number, self.__disallow_ignored_tracks) + if disc.tracks: + self._discs.append(disc) return self._discs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/tagreader.py new/lollypop-1.2.4/lollypop/tagreader.py --- old/lollypop-1.2.3/lollypop/tagreader.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/tagreader.py 2019-11-01 15:43:12.000000000 +0100 @@ -448,7 +448,39 @@ continue if m.data[0:4] == b"POPM": # Get tag - popm = m.data[11] + """ + Location of rating for common media players: + - Plain POPM is located in m.data[11] + - Media Monkey is located in m.data[19] and + we are searching m.data[10:40] for "no@email" + - WinAMP is located in m.data[28] and we are searching + m.data[10:40] for "rating@winamp.com" + - Windows Media Player is located in m.data[40] and + we are searching m.data[10:40] for + "Windows Media Player 9 Series" + """ + if m.data[10:40].find(b"Windows Media Player 9 Series") >= 0: + location = 40 + Logger.debug( + "Rating type: Windows Media Player Location:" + " %s Rating: %s", location, m.data[location]) + elif m.data[10:40].find(b"rating@winamp.com") >= 0: + location = 28 + Logger.debug( + "Rating type: WinAMP Location: %s Rating: %s", + location, m.data[location]) + elif m.data[10:40].find(b"no@email") >= 0: + location = 19 + Logger.debug( + "Rating type: MediaMonkey Location: %s Rating: %s", + location, m.data[location]) + else: + location = 11 + Logger.debug( + "Rating type: none Location: %s Rating: %s", + location, m.data[location]) + + popm = m.data[location] if popm == 0: value = 0 elif popm == 1: @@ -459,8 +491,10 @@ value = 3 elif popm == 196: value = 4 - else: + elif popm == 255: value = 5 + else: + value = 0 return value return 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/view_albums_box.py new/lollypop-1.2.4/lollypop/view_albums_box.py --- old/lollypop-1.2.3/lollypop/view_albums_box.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/view_albums_box.py 2019-11-01 15:43:12.000000000 +0100 @@ -152,8 +152,8 @@ child.destroy() break - if scan_update == ScanUpdate.ADDED and\ - self._genre_ids[0] != Type.NONE: # AlbumsLineView + if scan_update == ScanUpdate.ADDED and self._genre_ids and\ + Type.NONE not in self._genre_ids: # AlbumsLineView album_ids = App().window.container.get_view_album_ids( self._genre_ids, self._artist_ids) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/view_albums_list.py new/lollypop-1.2.4/lollypop/view_albums_list.py --- old/lollypop-1.2.3/lollypop/view_albums_list.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/view_albums_list.py 2019-11-01 15:43:12.000000000 +0100 @@ -14,7 +14,6 @@ from lollypop.utils import popup_widget from lollypop.view_lazyloading import LazyLoadingView -from lollypop.objects_album import Album from lollypop.define import App, ViewType, MARGIN from lollypop.controller_view import ViewController, ViewControllerType from lollypop.widgets_row_album import AlbumRow @@ -38,7 +37,6 @@ self.__width = 0 self.__genre_ids = genre_ids self.__artist_ids = artist_ids - self.__albums = [] self.__reveals = [] # Calculate default album height based on current pango context # We may need to listen to screen changes @@ -54,36 +52,45 @@ if view_type & ViewType.DND: from lollypop.helper_dnd import DNDHelper self.__dnd_helper = DNDHelper(self._box, view_type) - self.__dnd_helper.add_to_block_list(self.multi_press_gesture) + self.__dnd_helper.connect("dnd-insert", self.__on_dnd_insert) self.add_widget(self._box) - def set_reveal(self, albums): + def add_reveal_albums(self, albums): """ - Set albums to reveal on populate + Add albums to reveal list @param albums as [Album] """ - self.__reveals = list(albums) + self.__reveals += list(albums) - def insert_album(self, album, reveal, position): + def insert_album(self, album, index): """ - Add an album + Insert album at index @param album as Album - @param reveal as bool - @param position as int + @param index as int """ - self.__albums.append(album) - self.__reveals.append(album) - row = self.__row_for_album(album) - row.populate() + children = self.children + if index < len(children) + 1 and children[index].album.id == album.id: + children[index].tracks_view.append_rows(album.tracks) + else: + row = AlbumRow(album, self.__height, self._view_type) + row.populate() + self.insert_row(row, index) + + def insert_row(self, row, index): + """ + Insert row at index + @param row as AlbumRow + @param index as int + """ + row.connect("activated", self.__on_row_activated) row.show() - self._box.insert(row, position) + self._box.insert(row, index) def populate(self, albums): """ Populate widget with album rows @param albums as [Album] """ - self.__albums = albums for child in self._box.get_children(): GLib.idle_add(child.destroy) LazyLoadingView.populate(self, albums) @@ -130,14 +137,6 @@ "view_type": self.view_type} @property - def albums(self): - """ - Get albums - @return [Album] - """ - return self.__albums - - @property def dnd_helper(self): """ Get Drag & Drop helper @@ -172,7 +171,8 @@ """ if self.destroyed: return None - row = self.__row_for_album(album) + row = AlbumRow(album, self.__height, self._view_type) + row.connect("activated", self.__on_row_activated) row.show() self._box.add(row) return row @@ -204,28 +204,6 @@ for child in self.children: child.tracks_view.update_duration(track_id) - def _on_album_updated(self, scanner, album_id, added): - """ - Handles changes in collection - @param scanner as CollectionScanner - @param album_id as int - @param added as bool - """ - if self._view_type & (ViewType.SEARCH | ViewType.DND): - return - if added: - album_ids = App().window.container.get_view_album_ids( - self.__genre_ids, - self.__artist_ids) - if album_id not in album_ids: - return - index = album_ids.index(album_id) - self.insert_album(Album(album_id), False, index) - else: - for child in self._box.get_children(): - if child.album.id == album_id: - child.destroy() - def _on_primary_long_press_gesture(self, x, y): """ Show row menu @@ -302,15 +280,6 @@ if style_context.has_class("drag-down"): row.reveal(True) - def __row_for_album(self, album): - """ - Get a row for track id - @param album as Album - """ - row = AlbumRow(album, self.__height, self._view_type) - row.connect("activated", self.__on_row_activated) - return row - def __get_current_ordinate(self): """ If current track in widget, return it ordinate, @@ -323,6 +292,15 @@ y = child.translate_coordinates(self._box, 0, 0)[1] return y + def __on_dnd_insert(self, dnd_helper, row, index): + """ + Insert row at index + @param dnd_helper as DNDHelper + @param row as AlbumRow + @param index as int + """ + self.insert_row(row, index) + def __on_row_activated(self, row, track): """ Start playback diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/view_current_albums.py new/lollypop-1.2.4/lollypop/view_current_albums.py --- old/lollypop-1.2.3/lollypop/view_current_albums.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/view_current_albums.py 2019-11-01 15:43:12.000000000 +0100 @@ -58,7 +58,7 @@ albums = App().player.albums if albums: if len(albums) == 1: - self.__view.set_reveal(albums) + self.__view.add_reveal_albums(albums) self.__view.populate(albums) self.show_placeholder(False) else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/view_lyrics.py new/lollypop-1.2.4/lollypop/view_lyrics.py --- old/lollypop-1.2.3/lollypop/view_lyrics.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/view_lyrics.py 2019-11-01 15:43:12.000000000 +0100 @@ -273,7 +273,7 @@ """ if lyrics is None: self.__lyrics_label.set_text( - _("You have disabled lyrics search in network settings !")) + _("Network not available")) elif lyrics == "": if filtered: self.__lyrics_label.set_text(_("No lyrics found ") + "😓") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/view_playlists.py new/lollypop-1.2.4/lollypop/view_playlists.py --- old/lollypop-1.2.3/lollypop/view_playlists.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/view_playlists.py 2019-11-01 15:43:12.000000000 +0100 @@ -69,7 +69,7 @@ Populate view """ def on_load(albums): - self._view.set_reveal(albums) + self._view.add_reveal_albums(albums) self._view.populate(albums) def load(): @@ -177,7 +177,8 @@ track = Track(App().tracks.get_id_by_uri(uri)) album = Album(track.album.id) album.set_tracks([track]) - self._view.insert_album(album, True, -1) + self._view.add_reveal_albums([album]) + self._view.insert_album(album, -1) def _on_playlist_track_removed(self, playlists, playlist_id, uri): """ @@ -248,7 +249,7 @@ """ def on_load(albums): self._banner.spinner.stop() - self._view.set_reveal(albums) + self._view.add_reveal_albums(albums) self._view.populate(albums) def load(): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/view_search.py new/lollypop-1.2.4/lollypop/view_search.py --- old/lollypop-1.2.3/lollypop/view_search.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/view_search.py 2019-11-01 15:43:12.000000000 +0100 @@ -41,6 +41,7 @@ Gtk.Bin.__init__(self) self.__timeout_id = None self.__current_search = "" + self.__search_empty = True self.__cancellable = Gio.Cancellable() self._empty_message = _("Search for artists, albums and tracks") self._empty_icon_name = "edit-find-symbolic" @@ -98,6 +99,7 @@ Populate search in db based on text entry current text """ + self.__search_empty = True self.__view.stop() self.__view.clear() self.cancel() @@ -206,15 +208,18 @@ @param spotify as SpotifyHelper @param album as Album """ + self.__search_empty = False self.show_placeholder(False) - self.__view.insert_album(album, len(album.tracks) == 1, -1) + if len(album.tracks) == 1: + self.__view.add_reveal_albums([album]) + self.__view.insert_album(album, -1) def _on_search_finished(self, *ignore): """ Stop spinner and show placeholder if not result """ self.__banner.spinner.stop() - if not self.__view.albums: + if self.__search_empty: self.show_placeholder(True, _("No results for this search")) ####################### @@ -252,13 +257,14 @@ @param result as [(int, Album, bool)] """ if result: + self.__search_empty = False albums = [] reveal_albums = [] for (album, in_tracks) in result: albums.append(album) if in_tracks: reveal_albums.append(album) - self.__view.set_reveal(reveal_albums) + self.__view.add_reveal_albums(reveal_albums) self.__view.populate(albums) self.show_placeholder(False) self.__banner.play_button.set_sensitive(True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/view_tracks.py new/lollypop-1.2.4/lollypop/view_tracks.py --- old/lollypop-1.2.3/lollypop/view_tracks.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/view_tracks.py 2019-11-01 15:43:12.000000000 +0100 @@ -10,7 +10,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -from gi.repository import GLib, Gtk, Gdk, Gio, Pango, GObject +from gi.repository import GLib, Gtk, Gio, Pango, GObject from gettext import gettext as _ @@ -114,7 +114,9 @@ """ self.__init() self.__album.append_track(track) - self.__add_tracks(self._tracks_widget_left[-1], [track]) + for key in self._tracks_widget_left.keys(): + self.__add_tracks(self._tracks_widget_left[key], [track]) + return def append_rows(self, tracks): """ @@ -124,7 +126,9 @@ """ self.__init() self.__album.append_tracks(tracks) - self.__add_tracks(self._tracks_widget_left[-1], tracks) + for key in self._tracks_widget_left.keys(): + self.__add_tracks(self._tracks_widget_left[key], tracks) + return def get_current_ordinate(self, parent): """ @@ -299,8 +303,6 @@ Init main widget """ if self.__responsive_widget is None: - if self.__view_type & ViewType.DND: - self.connect("key-press-event", self.__on_key_press_event) self.__responsive_widget = Gtk.Grid() self.__responsive_widget.set_column_spacing(20) self.__responsive_widget.set_column_homogeneous(True) @@ -421,18 +423,6 @@ """ emit_signal(self, "track-removed", row) - def __on_key_press_event(self, widget, event): - """ - Handle keyboard events (DEL, ...) - @param widget as Gtk.Widget - @param event as Gdk.EventKey - """ - if event.keyval == Gdk.KEY_Delete: - for child in self.children: - if child.get_state_flags() & Gtk.StateFlags.SELECTED: - pass - # TODO and remove signal usage - def __on_disc_button_press_event(self, button, event, disc): """ Add disc to playback diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/lollypop/widgets_tracks.py new/lollypop-1.2.4/lollypop/widgets_tracks.py --- old/lollypop-1.2.3/lollypop/widgets_tracks.py 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/lollypop/widgets_tracks.py 2019-11-01 15:43:12.000000000 +0100 @@ -92,7 +92,6 @@ row = self.get_row_at_y(y) if row is None: return - if event.state & Gdk.ModifierType.CONTROL_MASK and\ self.__view_type & ViewType.DND: self.set_selection_mode(Gtk.SelectionMode.MULTIPLE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/meson.build new/lollypop-1.2.4/meson.build --- old/lollypop-1.2.3/meson.build 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/meson.build 2019-11-01 15:43:12.000000000 +0100 @@ -1,5 +1,5 @@ project('lollypop', - version: '1.2.3', + version: '1.2.4', meson_version: '>= 0.40.0' ) i18n = import('i18n') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.2.3/subprojects/po/nb_NO.po new/lollypop-1.2.4/subprojects/po/nb_NO.po --- old/lollypop-1.2.3/subprojects/po/nb_NO.po 2019-10-30 18:50:37.000000000 +0100 +++ new/lollypop-1.2.4/subprojects/po/nb_NO.po 2019-11-01 15:43:12.000000000 +0100 @@ -9,7 +9,7 @@ "Project-Id-Version: https://hosted.weblate.org/projects/gnumdk/\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-24 07:26+0200\n" -"PO-Revision-Date: 2019-10-25 10:31+0000\n" +"PO-Revision-Date: 2019-10-30 20:33+0000\n" "Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n" "Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/gnumdk/" "lollypop/nb_NO/>\n" @@ -18,7 +18,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 3.9.1-dev\n" +"X-Generator: Weblate 3.10-dev\n" #: ../data/org.gnome.Lollypop.gschema.xml:29 msgid "Window size" @@ -171,7 +171,7 @@ #: ../data/org.gnome.Lollypop.gschema.xml:169 msgid "Show tracks in artist view" -msgstr "" +msgstr "Vis spor i artistvisning" #: ../data/org.gnome.Lollypop.gschema.xml:174 ../data/SettingsAppearance.ui:138 #: ../data/SettingsAppearance.ui:152 @@ -1220,7 +1220,7 @@ #: ../lollypop/menu_edit.py:184 msgid "Please install Easytag or Kid3" -msgstr "" +msgstr "Installer Easytag eller Kid3" #: ../lollypop/menu_genre.py:43 ../lollypop/menu_objects.py:56 #: ../lollypop/menu_objects.py:74 ../lollypop/menu_objects.py:97 @@ -1243,7 +1243,7 @@ #: ../lollypop/menu_playback.py:47 ../lollypop/menu_playlist.py:61 msgid "Show tracks number" -msgstr "" +msgstr "Vis spornummer" #: ../lollypop/menu_playback.py:48 ../lollypop/shown.py:41 #: ../lollypop/widgets_banner_current_albums.py:62 @@ -1421,7 +1421,7 @@ #: ../lollypop/shown.py:29 msgid "Little played albums" -msgstr "" +msgstr "Sjeldent spilte album" #: ../lollypop/shown.py:31 ../lollypop/widgets_banner_radios.py:39 msgid "Radios" @@ -1473,7 +1473,7 @@ #: ../lollypop/shown.py:72 msgid "Little played tracks" -msgstr "" +msgstr "Sjeldent spilte spor" #: ../lollypop/shown.py:73 msgid "All tracks"
participants (1)
-
root