[gnome-music] disable deletion of smart playlists
- From: Vadim Rutkovsky <vrutkovsky src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music] disable deletion of smart playlists
- Date: Sat, 28 Feb 2015 15:33:54 +0000 (UTC)
commit 910eaad32831fd8c6f20c654f696b0ee408d1792
Author: Maia <maia mcc gmail com>
Date: Fri Feb 20 13:43:34 2015 -0500
disable deletion of smart playlists
(revised -- disables delete button rather than popping up a "can't delete this playlist" notification")
https://bugzilla.gnome.org/show_bug.cgi?id=743884
gnomemusic/playlists.py | 5 +++++
gnomemusic/view.py | 20 +++++++++++++++++---
gnomemusic/window.py | 3 +--
3 files changed, 23 insertions(+), 5 deletions(-)
---
diff --git a/gnomemusic/playlists.py b/gnomemusic/playlists.py
index 2b3e030..d9143d8 100644
--- a/gnomemusic/playlists.py
+++ b/gnomemusic/playlists.py
@@ -76,6 +76,11 @@ class StaticPlaylists:
# TRANSLATORS: this is a playlist name
TITLE = _("Favorite Songs")
+ @classmethod
+ def get_protected_ids(self):
+ return [str(cls.ID) for name, cls in inspect.getmembers(StaticPlaylists)
+ if inspect.isclass(cls) and not (name == "__class__")]
+
class Playlists(GObject.GObject):
__gsignals__ = {
diff --git a/gnomemusic/view.py b/gnomemusic/view.py
index 1a3570c..a630fbf 100644
--- a/gnomemusic/view.py
+++ b/gnomemusic/view.py
@@ -782,9 +782,9 @@ class Playlist(ViewContainer):
playlistPlayAction = Gio.SimpleAction.new('playlist_play', None)
playlistPlayAction.connect('activate', self._on_play_activate)
window.add_action(playlistPlayAction)
- playlistDeleteAction = Gio.SimpleAction.new('playlist_delete', None)
- playlistDeleteAction.connect('activate', self._on_delete_activate)
- window.add_action(playlistDeleteAction)
+ self.playlistDeleteAction = Gio.SimpleAction.new('playlist_delete', None)
+ self.playlistDeleteAction.connect('activate', self._on_delete_activate)
+ window.add_action(self.playlistDeleteAction)
self._grid.insert_row(0)
self._grid.attach(self.headerbar, 1, 0, 1, 1)
@@ -1111,6 +1111,12 @@ class Playlist(ViewContainer):
self.songs_count = 0
self._update_songs_count()
+ # disable delete button if current playlist is a smart playlist
+ if self.current_playlist_is_protected():
+ self.playlistDeleteAction.set_enabled(False)
+ else:
+ self.playlistDeleteAction.set_enabled(True)
+
@log
def _add_item(self, source, param, item, remaining=0, data=None):
self._add_item_to_model(item, self.model)
@@ -1164,6 +1170,14 @@ class Playlist(ViewContainer):
return False
@log
+ def current_playlist_is_protected(self):
+ current_playlist_id = self.current_playlist.get_id()
+ if current_playlist_id in StaticPlaylists.get_protected_ids():
+ return True
+ else:
+ return False
+
+ @log
def stage_playlist_for_deletion(self):
self.model.clear()
_iter = self.playlists_sidebar.get_generic_view().get_selection().get_selected()[1]
diff --git a/gnomemusic/window.py b/gnomemusic/window.py
index 8935357..7ca1570 100644
--- a/gnomemusic/window.py
+++ b/gnomemusic/window.py
@@ -373,8 +373,7 @@ class Window(Gtk.ApplicationWindow):
else:
if (event.keyval == Gdk.KEY_Delete):
if self._stack.get_visible_child() == self.views[3]:
- self._init_playlist_removal_notification()
- self.views[3].stage_playlist_for_deletion()
+ self.views[3]._on_delete_activate(None)
# 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]