diff --git a/gnomemusic/coremodel.py b/gnomemusic/coremodel.py index 17eb51673b182a36019252bb6ff71ed86178f38c..be395d07a0d4687a0dd1d7edb191d46af2f78eb2 100644 --- a/gnomemusic/coremodel.py +++ b/gnomemusic/coremodel.py @@ -232,10 +232,7 @@ class CoreModel(GObject.GObject): return def _on_items_changed(model, position, removed, added): - if removed > 0: - for i in list(range(removed)): - self._playlist_model.remove(position) - + songs_list = [] if added > 0: for i in list(range(added)): coresong = model[position + i] @@ -243,8 +240,6 @@ class CoreModel(GObject.GObject): coresong.props.media, self._coreselection, self.props.grilo) - self._playlist_model.insert(position + i, song) - song.bind_property( "state", coresong, "state", GObject.BindingFlags.SYNC_CREATE) @@ -253,6 +248,10 @@ class CoreModel(GObject.GObject): GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE) + songs_list.append(song) + + self._playlist_model.splice(position, removed, songs_list) + played_states = [SongWidget.State.PLAYING, SongWidget.State.PLAYED] for song in self._playlist_model: if song.props.state in played_states: