[gnome-music] playlist: deleting playlist in quick succession
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music] playlist: deleting playlist in quick succession
- Date: Mon, 14 Mar 2016 20:09:42 +0000 (UTC)
commit 76a6e8f109807ea204cddf623a1eaf523187aa12
Author: Prashant Tyagi <prashanttyagi221295 gmail com>
Date: Tue Mar 15 00:15:25 2016 +0530
playlist: deleting playlist in quick succession
deleting playlist in quick succession should only
effect last playlist.
https://bugzilla.gnome.org/show_bug.cgi?id=744831
gnomemusic/view.py | 15 ++++++++-------
gnomemusic/window.py | 12 +++++++++---
2 files changed, 17 insertions(+), 10 deletions(-)
---
diff --git a/gnomemusic/view.py b/gnomemusic/view.py
index 4d19036..d851741 100644
--- a/gnomemusic/view.py
+++ b/gnomemusic/view.py
@@ -870,6 +870,7 @@ class Playlist(ViewContainer):
self.current_playlist = None
self.current_playlist_index = None
self.pl_todelete = None
+ self.pl_todelete_index = None
self.really_delete = True
self.songs_count = 0
self.window = window
@@ -1202,26 +1203,26 @@ class Playlist(ViewContainer):
@log
def stage_playlist_for_deletion(self):
self.model.clear()
+ self.pl_todelete_index = self.current_playlist_index
_iter = self.playlists_sidebar.get_generic_view().get_selection().get_selected()[1]
-
+ self.pl_todelete = self.playlists_model.get_value(_iter, 5)
+
if not _iter:
return
iter_next = self.playlists_model.iter_next(_iter)\
or self.playlists_model.iter_previous(_iter)
+ self.playlists_model.remove(_iter)
+
if iter_next:
selection = self.playlists_sidebar.get_generic_view().get_selection()
selection.select_iter(iter_next)
self.playlists_sidebar.emit('item-activated', '0',
self.playlists_model.get_path(iter_next))
- playlist = self.playlists_model.get_value(_iter, 5)
- self.pl_todelete = playlist
- self.playlists_model.remove(_iter)
-
@log
- def undo_playlist_deletion(self, deletion_index):
- self._add_playlist_item_to_model(self.pl_todelete, index=deletion_index)
+ def undo_playlist_deletion(self):
+ self._add_playlist_item_to_model(self.pl_todelete, self.pl_todelete_index)
@log
def _on_delete_activate(self, menuitem, data=None):
diff --git a/gnomemusic/window.py b/gnomemusic/window.py
index a41d974..7e91726 100644
--- a/gnomemusic/window.py
+++ b/gnomemusic/window.py
@@ -76,6 +76,7 @@ class Window(Gtk.ApplicationWindow):
self.prev_view = None
self.curr_view = None
+ self.pl_todelete_notification = None
size_setting = self.settings.get_value('window-size')
if isinstance(size_setting[0], int) and isinstance(size_setting[1], int):
@@ -345,6 +346,11 @@ class Window(Gtk.ApplicationWindow):
@log
def _init_playlist_removal_notification(self):
+ if self.pl_todelete_notification:
+ self.views[3].really_delete = False
+ self.pl_todelete_notification.destroy()
+ Views.playlists.delete_playlist(self.views[3].pl_todelete)
+
self.notification = Gd.Notification()
self.notification.set_timeout(20)
@@ -360,14 +366,14 @@ 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.pl_todelete_notification = self.notification
self.notification.connect("dismissed", self._playlist_removal_notification_dismissed)
undo_button.connect("clicked", self._undo_deletion)
@log
def _playlist_removal_notification_dismissed(self, widget):
+ self.pl_todelete_notification = None
if self.views[3].really_delete:
Views.playlists.delete_playlist(self.views[3].pl_todelete)
else:
@@ -377,7 +383,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.notification.deletion_index)
+ self.views[3].undo_playlist_deletion()
@log
def _on_key_press(self, widget, event):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]