Hello community,

here is the log from the commit of package gnome-music for openSUSE:Factory 
checked in at 2020-02-22 19:01:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnome-music (Old)
 and      /work/SRC/openSUSE:Factory/.gnome-music.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnome-music"

Sat Feb 22 19:01:38 2020 rev:49 rq:775298 version:3.34.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnome-music/gnome-music.changes  2020-01-10 
17:46:51.118143820 +0100
+++ /work/SRC/openSUSE:Factory/.gnome-music.new.26092/gnome-music.changes       
2020-02-22 19:01:53.581808335 +0100
@@ -1,0 +2,7 @@
+Sat Feb 15 17:08:12 UTC 2020 - Bjørn Lie <[email protected]>
+
+- Update to version 3.34.4:
+  + Various crash and bugfixes.
+  + Updated translations.
+
+-------------------------------------------------------------------

Old:
----
  gnome-music-3.34.3.tar.xz

New:
----
  gnome-music-3.34.4.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gnome-music.spec ++++++
--- /var/tmp/diff_new_pack.1ryP75/_old  2020-02-22 19:01:54.537810186 +0100
+++ /var/tmp/diff_new_pack.1ryP75/_new  2020-02-22 19:01:54.541810195 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           gnome-music
-Version:        3.34.3
+Version:        3.34.4
 Release:        0
 Summary:        Music Player for GNOME
 License:        SUSE-GPL-2.0-with-plugin-exception AND LGPL-2.1-or-later

++++++ gnome-music-3.34.3.tar.xz -> gnome-music-3.34.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/NEWS new/gnome-music-3.34.4/NEWS
--- old/gnome-music-3.34.3/NEWS 2020-01-05 01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/NEWS 2020-02-15 14:33:51.000000000 +0100
@@ -1,3 +1,16 @@
+Overview of changes in 3.34.4
+=============================
+
+* Various crash and bugfixes
+
+Thanks to our contributors this release:
+ Chinmay Gurjar
+ Jean Felder
+ Marinus Schraal
+
+Translation updated:
+ Italian
+
 Overview of changes in 3.34.3
 =============================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-music-3.34.3/data/org.gnome.Music.appdata.xml.in.in 
new/gnome-music-3.34.4/data/org.gnome.Music.appdata.xml.in.in
--- old/gnome-music-3.34.3/data/org.gnome.Music.appdata.xml.in.in       
2020-01-05 01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/data/org.gnome.Music.appdata.xml.in.in       
2020-02-15 14:33:51.000000000 +0100
@@ -28,6 +28,13 @@
     </screenshot>
   </screenshots>
   <releases>
+    <release version="3.34.3" date="2020-02-15">
+      <description>
+        <p>
+          Bugfixes and translation updates.
+        </p>
+      </description>
+    </release>
     <release version="3.34.1" date="2019-10-25">
       <description>
         <p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/data/ui/AboutDialog.ui.in 
new/gnome-music-3.34.4/data/ui/AboutDialog.ui.in
--- old/gnome-music-3.34.3/data/ui/AboutDialog.ui.in    2020-01-05 
01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/data/ui/AboutDialog.ui.in    2020-02-15 
14:33:51.000000000 +0100
@@ -34,6 +34,7 @@
 Bruce Cowan
 Carlos Garnacho
 Carlos Soriano
+Chinmay Gurjar
 Christophe van den Abbeele
 Christopher Davis
 Clayton G. Hobbs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/gnomemusic/coremodel.py 
new/gnome-music-3.34.4/gnomemusic/coremodel.py
--- old/gnome-music-3.34.3/gnomemusic/coremodel.py      2020-01-05 
01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/coremodel.py      2020-02-15 
14:33:51.000000000 +0100
@@ -67,7 +67,6 @@
     __gsignals__ = {
         "artists-loaded": (GObject.SignalFlags.RUN_FIRST, None, ()),
         "playlist-loaded": (GObject.SignalFlags.RUN_FIRST, None, (int,)),
-        "playlists-loaded": (GObject.SignalFlags.RUN_FIRST, None, ()),
     }
 
     active_playlist = GObject.Property(type=Playlist, default=None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-music-3.34.3/gnomemusic/grilowrappers/grltrackerplaylists.py 
new/gnome-music-3.34.4/gnomemusic/grilowrappers/grltrackerplaylists.py
--- old/gnome-music-3.34.3/gnomemusic/grilowrappers/grltrackerplaylists.py      
2020-01-05 01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/grilowrappers/grltrackerplaylists.py      
2020-02-15 14:33:51.000000000 +0100
@@ -145,7 +145,6 @@
             self._window.notifications_popup.pop_loading()
             return
         if not media:
-            self._coremodel.emit("playlists-loaded")
             self._window.notifications_popup.pop_loading()
             return
 
@@ -202,15 +201,10 @@
         query = """
         DELETE {
             ?playlist a rdfs:Resource .
-            ?entry a rdfs:Resource .
-
         }
         WHERE {
             ?playlist a nmm:Playlist ;
                       a nfo:MediaList .
-            OPTIONAL {
-                ?playlist nfo:hasMediaFileListEntry ?entry .
-            }
             FILTER (
             tracker:id(?playlist) = %(playlist_id)s
             )
@@ -698,11 +692,13 @@
                 if error:
                     print("ERROR", error)
                     self._window.notifications_popup.pop_loading()
+                    self.emit("playlist-loaded")
                     return
 
                 if not media:
                     self.props.count = self._model.get_n_items()
                     self._window.notifications_popup.pop_loading()
+                    self.emit("playlist-loaded")
                     return
 
                 coresong = CoreSong(media, self._coreselection, self._grilo)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/gnomemusic/mpris.py 
new/gnome-music-3.34.4/gnomemusic/mpris.py
--- old/gnome-music-3.34.3/gnomemusic/mpris.py  2020-01-05 01:10:46.000000000 
+0100
+++ new/gnome-music-3.34.4/gnomemusic/mpris.py  2020-02-15 14:33:51.000000000 
+0100
@@ -46,6 +46,7 @@
         :param str path: object path
         """
         self._path = path
+        self._signals = None
         Gio.bus_get(Gio.BusType.SESSION, None, self._bus_get_sync, name)
 
     def _bus_get_sync(self, source, res, name):
@@ -124,6 +125,9 @@
             invocation.return_value(None)
 
     def _dbus_emit_signal(self, signal_name, values):
+        if self._signals is None:
+            return
+
         signal = self._signals[signal_name]
         parameters = []
         for arg_name, arg_signature in signal['args'].items():
@@ -299,8 +303,11 @@
             "playlist-loaded", self._on_player_playlist_changed)
 
         self._playlists_model = self._coremodel.props.playlists_sort
-        self._playlists_loaded_id = self._coremodel.connect(
-            "playlists-loaded", self._on_playlists_loaded)
+        n_items = self._playlists_model.get_n_items()
+        self._on_playlists_items_changed(
+            self._playlists_model, 0, n_items, n_items)
+        self._playlists_model.connect(
+            "items-changed", self._on_playlists_items_changed)
 
         self._player_playlist_type = None
         self._path_list = []
@@ -312,7 +319,6 @@
         self._previous_loop_status = ""
         self._previous_mpris_playlist = self._get_active_playlist()
         self._previous_playback_status = "Stopped"
-        self._previous_playlist_count = 0
 
     @log
     def _get_playback_status(self):
@@ -603,33 +609,19 @@
         self._properties_changed(
             MPRIS.MEDIA_PLAYER2_PLAYLISTS_IFACE, properties, [])
 
-    def _on_playlists_loaded(self, klass):
-        self._coremodel.disconnect(self._playlists_loaded_id)
-        for playlist in self._playlists_model:
-            playlist.connect("notify::title", self._on_playlist_renamed)
-            playlist.connect(
-                "notify::active", self._on_player_playlist_changed)
+    def _on_playlists_items_changed(self, model, position, removed, added):
+        if added > 0:
+            for i in range(added):
+                playlist = model[position + i]
+                playlist.connect("notify::title", self._on_playlist_renamed)
+                playlist.connect(
+                    "notify::active", self._on_player_playlist_changed)
 
-        self._playlists_model.connect(
-            "items-changed", self._on_playlists_count_changed)
-        self._on_playlists_count_changed(None, None, 0, 0)
-
-    @log
-    def _on_playlists_count_changed(self, model, position, removed, added):
-        playlist_count = self._playlists_model.get_n_items()
-        if playlist_count == self._previous_playlist_count:
-            return
-
-        self._previous_playlist_count = playlist_count
+        playlist_count = model.get_n_items()
         properties = {"PlaylistCount": GLib.Variant("u", playlist_count)}
         self._properties_changed(
             MPRIS.MEDIA_PLAYER2_PLAYLISTS_IFACE, properties, [])
 
-        if added == 0:
-            return
-
-        model[position].connect("notify::title", self._on_playlist_renamed)
-
     @log
     def _on_playlist_renamed(self, playlist, param):
         mpris_playlist = self._get_mpris_playlist_from_playlist(playlist)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/gnomemusic/scrobbler.py 
new/gnome-music-3.34.4/gnomemusic/scrobbler.py
--- old/gnome-music-3.34.3/gnomemusic/scrobbler.py      2020-01-05 
01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/scrobbler.py      2020-02-15 
14:33:51.000000000 +0100
@@ -48,11 +48,11 @@
     def __init__(self):
         super().__init__()
 
+        self._client = None
         self._reset_attributes()
         Goa.Client.new(None, self._new_client_callback)
 
     def _reset_attributes(self):
-        self._client = None
         self._account = None
         self._authentication = None
         self._disabled = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/gnomemusic/views/albumsview.py 
new/gnome-music-3.34.4/gnomemusic/views/albumsview.py
--- old/gnome-music-3.34.3/gnomemusic/views/albumsview.py       2020-01-05 
01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/views/albumsview.py       2020-02-15 
14:33:51.000000000 +0100
@@ -199,14 +199,17 @@
         self._headerbar.props.subtitle = corealbum.props.artist
 
     def _toggle_all_selection(self, selected):
-        """
-        Selects or unselects all items without sending the notify::active
-        signal for performance purposes.
+        """Selects or deselects all items.
         """
         with self._window._app.props.coreselection.freeze_notify():
-            for child in self._flowbox.get_children():
-                child.props.selected = selected
-                child.props.corealbum.props.selected = selected
+            if self.get_visible_child() == self._album_widget:
+                if selected is True:
+                    self._album_widget.select_all()
+                else:
+                    self._album_widget.select_none()
+            else:
+                for child in self._flowbox.get_children():
+                    child.props.selected = selected
 
     def select_all(self):
         self._toggle_all_selection(True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/gnomemusic/views/artistsview.py 
new/gnome-music-3.34.4/gnomemusic/views/artistsview.py
--- old/gnome-music-3.34.3/gnomemusic/views/artistsview.py      2020-01-05 
01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/views/artistsview.py      2020-02-15 
14:33:51.000000000 +0100
@@ -61,6 +61,8 @@
         self._application = application
         self._artists = {}
 
+        self._selected_artist = None
+
         self._window = application.props.window
         self._coremodel = application.props.coremodel
         self._model = self._coremodel.props.artists_sort
@@ -153,6 +155,9 @@
             artist_tile.props.selected = not artist_tile.props.selected
             return
 
+        selected_row = self._sidebar.get_selected_row()
+        self._selected_artist = selected_row.get_child().props.coreartist
+
         # Prepare a new artist_albums_widget here
         coreartist = artist_tile.props.coreartist
         if coreartist.props.artist in self._loaded_artists:
@@ -196,6 +201,18 @@
             self._sidebar.props.selection_mode = Gtk.SelectionMode.NONE
         else:
             self._sidebar.props.selection_mode = Gtk.SelectionMode.SINGLE
+            selected_row = self._sidebar.get_row_at_index(0)
+            if selected_row is None:
+                self._selected_artist = None
+                return
+
+            for row in self._sidebar:
+                if row.get_child().props.coreartist == self._selected_artist:
+                    selected_row = row
+                    break
+
+            self._sidebar.select_row(selected_row)
+            self._selected_artist = None
 
     @log
     def _toggle_all_selection(self, selected):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/gnomemusic/views/playlistsview.py 
new/gnome-music-3.34.4/gnomemusic/views/playlistsview.py
--- old/gnome-music-3.34.3/gnomemusic/views/playlistsview.py    2020-01-05 
01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/views/playlistsview.py    2020-02-15 
14:33:51.000000000 +0100
@@ -62,6 +62,10 @@
         self._window = application.props.window
         self._player = player
 
+        # This indicates if the current list has been empty and has
+        # had no user interaction since.
+        self._untouched_list = True
+
         self._song_popover = PlaylistContextMenu(self._view)
 
         play_song = Gio.SimpleAction.new('play_song', None)
@@ -108,11 +112,12 @@
 
         self._sidebar.bind_model(self._model, self._add_playlist_to_sidebar)
 
-        self._loaded_id = self._coremodel.connect(
-            "playlists-loaded", self._on_playlists_loaded)
         self._active_playlist_id = self._coremodel.connect(
             "notify::active-playlist", self._on_active_playlist_changed)
 
+        self._model.connect("items-changed", self._on_playlists_model_changed)
+        self._on_playlists_model_changed(self._model, 0, 0, 0)
+
         # Selection is only possible from the context menu
         self.disconnect(self._selection_mode_id)
 
@@ -147,11 +152,24 @@
         row = PlaylistTile(playlist)
         return row
 
-    def _on_playlists_loaded(self, klass):
-        self._coremodel.disconnect(self._loaded_id)
-        first_row = self._sidebar.get_row_at_index(0)
-        self._sidebar.select_row(first_row)
-        first_row.emit("activate")
+    def _on_playlists_model_changed(self, model, position, removed, added):
+        if model.get_n_items() == 0:
+            self._untouched_list = True
+            return
+        elif self._untouched_list is True:
+            first_row = self._sidebar.get_row_at_index(0)
+            self._sidebar.select_row(first_row)
+            self._on_playlist_activated(self._sidebar, first_row, True)
+            return
+
+        if removed == 0:
+            return
+
+        row_next = (self._sidebar.get_row_at_index(position)
+                    or self._sidebar.get_row_at_index(position - 1))
+        if row_next:
+            self._sidebar.select_row(row_next)
+            self._on_playlist_activated(self._sidebar, row_next, True)
 
     @log
     def _on_view_right_clicked(self, gesture, n_press, x, y):
@@ -204,8 +222,11 @@
             coresong)
 
     @log
-    def _on_playlist_activated(self, sidebar, row, data=None):
+    def _on_playlist_activated(self, sidebar, row, untouched=False):
         """Update view with content from selected playlist"""
+        if untouched is False:
+            self._untouched_list = False
+
         playlist = row.props.playlist
 
         if self.rename_active:
@@ -253,7 +274,7 @@
             return
 
         self._sidebar.select_row(row)
-        row.emit('activate')
+        self._on_playlist_activated(self._sidebar, row, True)
         if playlist.props.model.get_n_items() > 0:
             self._song_activated(None)
         else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/gnomemusic/views/searchview.py 
new/gnome-music-3.34.4/gnomemusic/views/searchview.py
--- old/gnome-music-3.34.3/gnomemusic/views/searchview.py       2020-01-05 
01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/views/searchview.py       2020-02-15 
14:33:51.000000000 +0100
@@ -22,7 +22,9 @@
 # code, but you are not obligated to do so.  If you do not wish to do so,
 # delete this exception statement from your version.
 
+from enum import IntEnum
 from gettext import gettext as _
+
 from gi.repository import Gdk, GObject, Gtk
 
 from gnomemusic import log
@@ -45,9 +47,19 @@
 
     __gtype_name__ = "SearchView"
 
+    class State(IntEnum):
+        """The different states of SearchView
+        """
+        MAIN = 0
+        ALL_ALBUMS = 1
+        ALL_ARTISTS = 2
+        ALBUM = 3
+        ARTIST = 4
+
     search_state = GObject.Property(type=int, default=Search.State.NONE)
     selected_items_count = GObject.Property(type=int, default=0, minimum=0)
     selection_mode = GObject.Property(type=bool, default=False)
+    state = GObject.Property(type=int, default=State.MAIN)
 
     _album_header = Gtk.Template.Child()
     _album_flowbox = Gtk.Template.Child()
@@ -324,6 +336,7 @@
         # Update and display the album widget if not in selection mode
         self._album_widget.update(corealbum)
 
+        self.props.state = SearchView.State.ALBUM
         self._headerbar.props.state = HeaderBar.State.SEARCH
         self._headerbar.props.title = corealbum.props.title
         self._headerbar.props.subtitle = corealbum.props.artist
@@ -338,7 +351,7 @@
             return
 
         artist_albums_widget = ArtistAlbumsWidget(
-            coreartist, self._application, False)
+            coreartist, self._application, True)
         # FIXME: Recreating a view here. Alternate solution is used
         # in AlbumsView: one view created and an update function.
         # Settle on one design.
@@ -352,6 +365,7 @@
             "selection-mode", artist_albums_widget, "selection-mode",
             GObject.BindingFlags.BIDIRECTIONAL)
 
+        self.props.state = SearchView.State.ARTIST
         self._headerbar.props.state = HeaderBar.State.SEARCH
         self._headerbar.props.title = coreartist.props.artist
         self._headerbar.props.subtitle = None
@@ -361,6 +375,7 @@
 
     @Gtk.Template.Callback()
     def _on_all_artists_clicked(self, widget, event, user_data=None):
+        self.props.state = SearchView.State.ALL_ARTISTS
         self._headerbar.props.state = HeaderBar.State.SEARCH
         self._headerbar.props.title = _("Artists Results")
         self._headerbar.props.subtitle = None
@@ -375,6 +390,7 @@
 
     @Gtk.Template.Callback()
     def _on_all_albums_clicked(self, widget, event, user_data=None):
+        self.props.state = SearchView.State.ALL_ALBUMS
         self._headerbar.props.state = HeaderBar.State.SEARCH
         self._headerbar.props.title = _("Albums Results")
         self._headerbar.props.subtitle = None
@@ -388,20 +404,36 @@
         self.props.search_mode_active = False
 
     def _select_all(self, value):
-        with self._model.freeze_notify():
-            def song_select(child):
-                song_widget = child.get_child()
-                song_widget.props.selected = value
-
-            def album_select(child):
-                child.props.selected = value
-
-            def artist_select(child):
-                child.props.selected = value
-
-            self._songs_listbox.foreach(song_select)
-            self._album_flowbox.foreach(album_select)
-            self._artist_flowbox.foreach(artist_select)
+        def child_select(child):
+            child.props.selected = value
+
+        if self.props.state == SearchView.State.MAIN:
+            with self._model.freeze_notify():
+                def song_select(child):
+                    song_widget = child.get_child()
+                    song_widget.props.coresong.props.selected = value
+
+                self._songs_listbox.foreach(song_select)
+                self._album_flowbox.foreach(child_select)
+                self._artist_flowbox.foreach(child_select)
+        elif self.props.state == SearchView.State.ALL_ALBUMS:
+            with self._model.freeze_notify():
+                self._album_all_flowbox.foreach(child_select)
+        elif self.props.state == SearchView.State.ALL_ARTISTS:
+            with self._model.freeze_notify():
+                self._artist_all_flowbox.foreach(child_select)
+        elif self.props.state == SearchView.State.ALBUM:
+            view = self.get_visible_child()
+            if value is True:
+                view.select_all()
+            else:
+                view.select_none()
+        elif self.props.state == SearchView.State.ARTIST:
+            view = self.get_visible_child().get_child().get_child()
+            if value is True:
+                view.select_all()
+            else:
+                view.select_none()
 
     def select_all(self):
         self._select_all(True)
@@ -420,6 +452,7 @@
 
         self.set_visible_child(self._search_results)
         self.props.search_mode_active = True
+        self.props.state = SearchView.State.MAIN
         self._headerbar.props.state = HeaderBar.State.MAIN
 
     @log
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/gnomemusic/widgets/albumwidget.py 
new/gnome-music-3.34.4/gnomemusic/widgets/albumwidget.py
--- old/gnome-music-3.34.3/gnomemusic/widgets/albumwidget.py    2020-01-05 
01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/widgets/albumwidget.py    2020-02-15 
14:33:51.000000000 +0100
@@ -52,6 +52,8 @@
         self._parent_view = parent_view
         self._player = player
 
+        self.connect("notify::selection-mode", self._on_selection_mode_changed)
+
     @log
     def update(self, corealbum):
         """Update the album widget.
@@ -180,6 +182,10 @@
     def select_none(self):
         self._listbox.select_none()
 
+    def _on_selection_mode_changed(self, widget, value):
+        if not self.props.selection_mode:
+            self.select_none()
+
     @GObject.Property(
         type=Grl.Media, default=None, flags=GObject.ParamFlags.READABLE)
     def album(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-music-3.34.3/gnomemusic/widgets/artistalbumwidget.py 
new/gnome-music-3.34.4/gnomemusic/widgets/artistalbumwidget.py
--- old/gnome-music-3.34.3/gnomemusic/widgets/artistalbumwidget.py      
2020-01-05 01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/widgets/artistalbumwidget.py      
2020-02-15 14:33:51.000000000 +0100
@@ -94,6 +94,16 @@
     def _create_widget(self, disc):
         disc_box = self._create_disc_box(disc.props.disc_nr, disc.model)
 
+        self._disc_list_box.bind_property(
+            "selection-mode-allowed", disc_box, "selection-mode-allowed",
+            GObject.BindingFlags.BIDIRECTIONAL
+            | GObject.BindingFlags.SYNC_CREATE)
+
+        self._disc_list_box.bind_property(
+            "selection-mode", disc_box, "selection-mode",
+            GObject.BindingFlags.BIDIRECTIONAL
+            | GObject.BindingFlags.SYNC_CREATE)
+
         return disc_box
 
     def _create_disc_box(self, disc_nr, album_model):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-music-3.34.3/gnomemusic/widgets/disclistboxwidget.py 
new/gnome-music-3.34.4/gnomemusic/widgets/disclistboxwidget.py
--- old/gnome-music-3.34.3/gnomemusic/widgets/disclistboxwidget.py      
2020-01-05 01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/widgets/disclistboxwidget.py      
2020-02-15 14:33:51.000000000 +0100
@@ -193,9 +193,3 @@
             return
 
         self._selection_mode = value
-
-        def set_selection_mode(child):
-            print("set selection mode on", child)
-            child.props.selection_mode = value
-
-        self.foreach(set_selection_mode)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-music-3.34.3/gnomemusic/widgets/notificationspopup.py 
new/gnome-music-3.34.4/gnomemusic/widgets/notificationspopup.py
--- old/gnome-music-3.34.3/gnomemusic/widgets/notificationspopup.py     
2020-01-05 01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/widgets/notificationspopup.py     
2020-02-15 14:33:51.000000000 +0100
@@ -81,8 +81,11 @@
         Popup is displayed if a loading is active or if a playlist
         deletion is in progress.
         """
-        invisible = ((self._loading_notification._counter == 0)
-                     and (len(self._grid.get_children()) <= 2))
+        loading_finished = self._loading_notification._counter == 0
+        no_other_notif = (len(self._grid.get_children()) == 1
+                          or (len(self._grid.get_children()) == 2
+                              and notification != self._loading_notification))
+        invisible = loading_finished and no_other_notif
 
         if not invisible:
             if remove:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gnome-music-3.34.3/gnomemusic/widgets/playlistcontrols.py 
new/gnome-music-3.34.4/gnomemusic/widgets/playlistcontrols.py
--- old/gnome-music-3.34.3/gnomemusic/widgets/playlistcontrols.py       
2020-01-05 01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/gnomemusic/widgets/playlistcontrols.py       
2020-02-15 14:33:51.000000000 +0100
@@ -81,7 +81,7 @@
         if not new_name:
             return
 
-        self.props.playlist.props.title = new_name
+        self.props.playlist.rename(new_name)
         self.disable_rename_playlist()
 
     @log
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/gnomemusic/window.py 
new/gnome-music-3.34.4/gnomemusic/window.py
--- old/gnome-music-3.34.3/gnomemusic/window.py 2020-01-05 01:10:46.000000000 
+0100
+++ new/gnome-music-3.34.4/gnomemusic/window.py 2020-02-15 14:33:51.000000000 
+0100
@@ -305,23 +305,15 @@
     def _select_all(self, action=None, param=None):
         if not self.props.selection_mode:
             return
-        if self._headerbar.props.state == HeaderBar.State.MAIN:
-            view = self.props.active_view
-        else:
-            view = self.props.active_view.get_visible_child()
 
-        view.select_all()
+        self.props.active_view.select_all()
 
     @log
     def _select_none(self, action=None, param=None):
         if not self.props.selection_mode:
             return
-        if self._headerbar.props.state == HeaderBar.State.MAIN:
-            view = self.props.active_view
-            view.unselect_all()
-        else:
-            view = self.props.active_view.get_visible_child()
-            view.select_none()
+
+        self.props.active_view.unselect_all()
 
     @log
     def _on_key_press(self, widget, event):
@@ -459,12 +451,7 @@
         ]
         allowed = self.curr_view not in no_selection_mode
         self._headerbar.props.selection_mode_allowed = allowed
-
-        # Disable renaming playlist if it was active when leaving
-        # Playlist view
-        if (self.prev_view == self.views[View.PLAYLIST]
-                and self.views[View.PLAYLIST].rename_active):
-            self.views[View.PLAYLIST].disable_rename_playlist()
+        self._search_headerbar.props.selection_mode_allowed = allowed
 
     @log
     def _toggle_view(self, view_enum):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/meson.build 
new/gnome-music-3.34.4/meson.build
--- old/gnome-music-3.34.3/meson.build  2020-01-05 01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/meson.build  2020-02-15 14:33:51.000000000 +0100
@@ -1,5 +1,5 @@
 project('gnome-music',
-    version: '3.34.3',
+    version: '3.34.4',
     meson_version: '>= 0.46.0'
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnome-music-3.34.3/po/it.po 
new/gnome-music-3.34.4/po/it.po
--- old/gnome-music-3.34.3/po/it.po     2020-01-05 01:10:46.000000000 +0100
+++ new/gnome-music-3.34.4/po/it.po     2020-02-15 14:33:51.000000000 +0100
@@ -1,5 +1,6 @@
 # Italian translation of Gnome Music.
 # Copyright (C) 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Free Software 
Foundation, Inc.
+# Copyright (C) 2020 Free Software Foundation, Inc.
 #
 # Convenzioni usate:
 #
@@ -12,14 +13,14 @@
 #   Bonjour/Zeroconf ed il widget che permette di filtrare
 #   per artista/album/autore. Il primo è browser, il
 #   secondo catalogo (ove possibile distinguere)
-# Milo Casagrande <[email protected]>, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 
2019.
+# Milo Casagrande <[email protected]>, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 
2019, 2020.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-music\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-music/issues\n";
-"POT-Creation-Date: 2019-09-02 16:56+0000\n"
-"PO-Revision-Date: 2019-09-04 15:01+0200\n"
+"POT-Creation-Date: 2019-11-10 13:01+0000\n"
+"PO-Revision-Date: 2020-01-31 13:20+0100\n"
 "Last-Translator: Milo Casagrande <[email protected]>\n"
 "Language-Team: Italian <[email protected]>\n"
 "Language: it\n"
@@ -56,12 +57,12 @@
 "Trova brani nella propria collezione musicale, attraverso servizi DLNA o per "
 "qualche cosa di nuovo è possibile usare servizi come Jamendo e Magnatune."
 
-#: data/org.gnome.Music.appdata.xml.in.in:52
+#: data/org.gnome.Music.appdata.xml.in.in:65
 msgid "The GNOME Music developers"
 msgstr "Gli sviluppatori di GNOME Musica"
 
 #: data/org.gnome.Music.desktop.in.in:3 gnomemusic/application.py:59
-#: gnomemusic/window.py:76
+#: gnomemusic/window.py:77
 msgid "Music"
 msgstr "Musica"
 
@@ -264,7 +265,7 @@
 #: data/ui/help-overlay.ui:24
 msgctxt "shortcut window"
 msgid "Search"
-msgstr "Search"
+msgstr "Cerca"
 
 #: data/ui/help-overlay.ui:31
 msgctxt "shortcut window"
@@ -289,7 +290,7 @@
 #: data/ui/help-overlay.ui:58
 msgctxt "shortcut window"
 msgid "Next song"
-msgstr "Brano successiv0"
+msgstr "Brano successivo"
 
 #: data/ui/help-overlay.ui:65
 msgctxt "shortcut window"
@@ -430,7 +431,7 @@
 msgid "View All"
 msgstr "Visualizza tutti"
 
-#: data/ui/SearchView.ui:97 gnomemusic/views/albumsview.py:61
+#: data/ui/SearchView.ui:97 gnomemusic/views/albumsview.py:63
 msgid "Albums"
 msgstr "Album"
 
@@ -455,27 +456,27 @@
 msgstr "Aggiungi a _playlist"
 
 #. TRANSLATORS: this is a playlist name
-#: gnomemusic/grilowrappers/grltrackerplaylists.py:673
+#: gnomemusic/grilowrappers/grltrackerplaylists.py:727
 msgid "Most Played"
 msgstr "Più ascoltati"
 
 #. TRANSLATORS: this is a playlist name
-#: gnomemusic/grilowrappers/grltrackerplaylists.py:707
+#: gnomemusic/grilowrappers/grltrackerplaylists.py:764
 msgid "Never Played"
 msgstr "Mai ascoltati"
 
 #. TRANSLATORS: this is a playlist name
-#: gnomemusic/grilowrappers/grltrackerplaylists.py:740
+#: gnomemusic/grilowrappers/grltrackerplaylists.py:800
 msgid "Recently Played"
 msgstr "Ascoltati di recente"
 
 #. TRANSLATORS: this is a playlist name
-#: gnomemusic/grilowrappers/grltrackerplaylists.py:784
+#: gnomemusic/grilowrappers/grltrackerplaylists.py:846
 msgid "Recently Added"
 msgstr "Aggiunti di recente"
 
 #. TRANSLATORS: this is a playlist name
-#: gnomemusic/grilowrappers/grltrackerplaylists.py:827
+#: gnomemusic/grilowrappers/grltrackerplaylists.py:891
 msgid "Favorite Songs"
 msgstr "Brani preferiti"
 
@@ -515,43 +516,43 @@
 msgid "Unknown Artist"
 msgstr "Artista sconosciuto"
 
-#: gnomemusic/views/emptyview.py:79
+#: gnomemusic/views/emptyview.py:80
 msgid "Music folder"
 msgstr "Cartella Musica"
 
 #. TRANSLATORS: This is a label to display a link to open user's music
 #. folder. {} will be replaced with the translated text 'Music folder'
-#: gnomemusic/views/emptyview.py:83
+#: gnomemusic/views/emptyview.py:84
 msgid "The contents of your {} will appear here."
 msgstr "Il contenuto della propria «{}» apparirà qui."
 
-#: gnomemusic/views/emptyview.py:119
+#: gnomemusic/views/emptyview.py:120
 msgid "Hey DJ"
 msgstr "Hey DJ"
 
-#: gnomemusic/views/emptyview.py:129 gnomemusic/views/emptyview.py:135
+#: gnomemusic/views/emptyview.py:130 gnomemusic/views/emptyview.py:136
 msgid "No music found"
 msgstr "Nessuna musica trovata"
 
-#: gnomemusic/views/emptyview.py:137
+#: gnomemusic/views/emptyview.py:138
 msgid "Try a different search"
 msgstr "Provare con un'altra ricerca"
 
-#: gnomemusic/views/emptyview.py:143
+#: gnomemusic/views/emptyview.py:144
 msgid "GNOME Music could not connect to Tracker"
 msgstr "Impossibile collegarsi a Tracker"
 
-#: gnomemusic/views/emptyview.py:146
+#: gnomemusic/views/emptyview.py:147
 msgid "Your music files cannot be indexed without Tracker running"
 msgstr ""
 "Non è possibile indicizzare i propri file musicali senza Tracker in "
 "esecuzione"
 
-#: gnomemusic/views/emptyview.py:154
+#: gnomemusic/views/emptyview.py:155
 msgid "Your system Tracker version seems outdated"
 msgstr "La versione di Tracker del sistema non sembra essere recente"
 
-#: gnomemusic/views/emptyview.py:157
+#: gnomemusic/views/emptyview.py:158
 msgid "Music needs Tracker version 2.2.0 or higher"
 msgstr "Musica necessita della versione 2.0.0, o successive, di Tracker"
 
@@ -559,15 +560,15 @@
 msgid "Playlists"
 msgstr "Playlist"
 
-#: gnomemusic/views/searchview.py:365
+#: gnomemusic/views/searchview.py:366
 msgid "Artists Results"
 msgstr "Risultati artisti"
 
-#: gnomemusic/views/searchview.py:379
+#: gnomemusic/views/searchview.py:380
 msgid "Albums Results"
 msgstr "Risultati album"
 
-#: gnomemusic/widgets/albumwidget.py:147
+#: gnomemusic/widgets/albumwidget.py:145
 msgid "{} minute"
 msgid_plural "{} minutes"
 msgstr[0] "{} minuto"


Reply via email to