[gnome-music] on undo playlist deletion, put playlist back at original spot in sidebar
- From: Vadim Rutkovsky <vrutkovsky src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music] on undo playlist deletion, put playlist back at original spot in sidebar
- Date: Sat, 28 Feb 2015 15:33:49 +0000 (UTC)
commit 61fb2f7d6b69a24f268e4e5f2f9aa05bc09773de
Author: Maia <maia mcc gmail com>
Date: Thu Feb 19 16:15:08 2015 -0500
on undo playlist deletion, put playlist back at original spot in sidebar
https://bugzilla.gnome.org/show_bug.cgi?id=744832
gnomemusic/view.py | 15 ++++++++++-----
gnomemusic/window.py | 6 ++++--
2 files changed, 14 insertions(+), 7 deletions(-)
---
diff --git a/gnomemusic/view.py b/gnomemusic/view.py
index f4487b3..1a3570c 100644
--- a/gnomemusic/view.py
+++ b/gnomemusic/view.py
@@ -826,6 +826,7 @@ class Playlist(ViewContainer):
self.iter_to_clean = None
self.iter_to_clean_model = None
self.current_playlist = None
+ self.current_playlist_index = None
self.pl_todelete = None
self.really_delete = True
self.songs_count = 0
@@ -975,13 +976,15 @@ class Playlist(ViewContainer):
self._add_playlist_item_to_model(item)
@log
- def _add_playlist_item_to_model(self, item):
+ def _add_playlist_item_to_model(self, item, index=None):
+ if index is None:
+ index = -1
if not item:
self.window.notification.dismiss()
self.emit('playlists-loaded')
return
_iter = self.playlists_model.insert_with_valuesv(
- -1,
+ index,
[2, 5],
[albumArtCache.get_media_title(item), item])
if self.playlists_model.iter_n_children(None) == 1:
@@ -1074,6 +1077,7 @@ class Playlist(ViewContainer):
self.current_playlist = playlist
self.name_label.set_text(playlist_name)
+ self.current_playlist_index = int(path.to_string())
# if the active queue has been set by this playlist,
# use it as model, otherwise build the liststore
@@ -1163,6 +1167,7 @@ class Playlist(ViewContainer):
def stage_playlist_for_deletion(self):
self.model.clear()
_iter = self.playlists_sidebar.get_generic_view().get_selection().get_selected()[1]
+
if not _iter:
return
@@ -1179,13 +1184,13 @@ class Playlist(ViewContainer):
self.playlists_model.remove(_iter)
@log
- def undo_playlist_deletion(self):
- self._add_playlist_item_to_model(self.pl_todelete)
+ def undo_playlist_deletion(self, deletion_index):
+ self._add_playlist_item_to_model(self.pl_todelete, index=deletion_index)
@log
def _on_delete_activate(self, menuitem, data=None):
self.window._init_playlist_removal_notification()
- self.delete_selected_playlist()
+ self.stage_playlist_for_deletion()
@log
def _on_playlist_created(self, playlists, item):
diff --git a/gnomemusic/window.py b/gnomemusic/window.py
index 5359695..8935357 100644
--- a/gnomemusic/window.py
+++ b/gnomemusic/window.py
@@ -336,6 +336,8 @@ class Window(Gtk.ApplicationWindow):
self.notification.show_all()
self._overlay.add_overlay(self.notification)
+ self.notification.deletion_index = self.views[3].current_playlist_index
+
self.notification.connect("dismissed", self._playlist_removal_notification_dismissed)
undo_button.connect("clicked", self._undo_deletion)
@@ -350,7 +352,7 @@ class Window(Gtk.ApplicationWindow):
def _undo_deletion(self, widget):
self.views[3].really_delete = False
self.notification.dismiss()
- self.views[3].undo_playlist_deletion()
+ self.views[3].undo_playlist_deletion(self.notification.deletion_index)
@log
def _on_key_press(self, widget, event):
@@ -372,7 +374,7 @@ class Window(Gtk.ApplicationWindow):
if (event.keyval == Gdk.KEY_Delete):
if self._stack.get_visible_child() == self.views[3]:
self._init_playlist_removal_notification()
- self.views[3].delete_selected_playlist()
+ self.views[3].stage_playlist_for_deletion()
# Close search bar after Esc is pressed
if event.keyval == Gdk.KEY_Escape:
self.toolbar.searchbar.show_bar(False)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]