Ticket #3357: 0001-Subtoolbar-with-Clear-and-Remove-buttons-SL-3357.patch
File 0001-Subtoolbar-with-Clear-and-Remove-buttons-SL-3357.patch, 5.3 KB (added by humitos, 12 years ago) |
---|
-
new file icons/edit-clear.svg
From 0b4f3423d224248c86874486634ad3b811086520 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann <humitos@gmail.com> Date: Tue, 5 Jun 2012 19:13:18 -0300 Subject: [PATCH Jukebox] Subtoolbar with "Clear" and "Remove" buttons SL #3357 There is a new Toolbar that contains "Clear Playlist" and "Remove selected track(s) from the playlist" buttons. Signed-off-by: Manuel Kaufmann <humitos@gmail.com> --- icons/edit-clear.svg | 7 +++++++ jukeboxactivity.py | 40 ++++++++++++++++++++++++++++++++++++++++ widgets.py | 12 ++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 icons/edit-clear.svg diff --git a/icons/edit-clear.svg b/icons/edit-clear.svg new file mode 100644 index 0000000..edbe99f
- + 1 <?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [ 2 <!ENTITY stroke_color "#010101"> 3 <!ENTITY fill_color "#FFFFFF"> 4 ]><svg enable-background="new 0 0 55 55" height="55px" version="1.1" viewBox="0 0 55 55" width="55px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px"><g display="block" id="edit-clear"> 5 <path d="M5,10.033v34.934h45V10.033H5z M37.575,35.1c0.684,0.683,0.684,1.793,0,2.476 c-0.341,0.342-0.789,0.513-1.237,0.513s-0.896-0.171-1.238-0.513l-7.601-7.602l-7.602,7.602c-0.342,0.342-0.79,0.513-1.237,0.513 s-0.895-0.171-1.237-0.513c-0.684-0.683-0.684-1.793,0-2.476l7.601-7.601l-7.601-7.602c-0.684-0.684-0.684-1.791,0-2.474 c0.683-0.684,1.791-0.684,2.474,0l7.602,7.601l7.601-7.601c0.683-0.684,1.793-0.684,2.476,0c0.684,0.683,0.684,1.791,0,2.474 l-7.602,7.602L37.575,35.1z" fill="&fill_color;"/> 6 </g></svg> 7 -
jukeboxactivity.py
diff --git a/jukeboxactivity.py b/jukeboxactivity.py index cc277b7..1766b40 100644
a b from sugar.datastore import datastore 33 33 34 34 OLD_TOOLBAR = False 35 35 try: 36 from sugar.graphics.toolbutton import ToolButton 36 37 from sugar.graphics.toolbarbox import ToolbarBox 37 38 from sugar.graphics.toolbarbox import ToolbarButton 38 39 from sugar.activity.widgets import StopButton … … class JukeboxActivity(activity.Activity): 89 90 toolbox.add_toolbar(_('View'), _view_toolbar) 90 91 _view_toolbar.show() 91 92 93 _playlist_toolbar = gtk.Toolbar() 94 erase_playlist_entry = ToolButton(icon_name='edit-delete') 95 erase_playlist_entry.connect('clicked', 96 self._erase_playlist_entry_clicked_cb) 97 _playlist_toolbar.insert(erase_playlist_entry, -1) 98 99 clear_playlist = ToolButton(icon_name='edit-clear') 100 clear_playlist.connect('clicked', self._clear_playlist_clicked_cb) 101 _playlist_toolbar.insert(clear_playlist, -1) 102 _playlist_toolbar.show_all() 103 104 toolbox.add_toolbar(_('Playlist'), _playlist_toolbar) 105 92 106 toolbox.show() 93 107 94 108 toolbar.grab_focus() … … class JukeboxActivity(activity.Activity): 120 134 toolbar_box.toolbar.insert(view_toolbar_button, -1) 121 135 view_toolbar_button.show() 122 136 137 _playlist_toolbar = gtk.Toolbar() 138 erase_playlist_entry = ToolButton(icon_name='edit-delete') 139 erase_playlist_entry.set_tooltip(_('Remove selected track(s)' \ 140 ' from the playlist')) 141 erase_playlist_entry.connect('clicked', 142 self._erase_playlist_entry_clicked_cb) 143 _playlist_toolbar.insert(erase_playlist_entry, -1) 144 145 clear_playlist = ToolButton(icon_name='edit-clear') 146 clear_playlist.set_tooltip(_('Clear Playlist')) 147 clear_playlist.connect('clicked', self._clear_playlist_clicked_cb) 148 _playlist_toolbar.insert(clear_playlist, -1) 149 _playlist_toolbar.show_all() 150 151 playlist_toolbar_button = ToolbarButton( 152 page=_playlist_toolbar, 153 icon_name='view-source') 154 toolbar_box.toolbar.insert(playlist_toolbar_button, -1) 155 123 156 self.control = Control(toolbar_box.toolbar, self) 124 157 125 158 separator = gtk.SeparatorToolItem() … … class JukeboxActivity(activity.Activity): 573 606 574 607 return True 575 608 609 def _erase_playlist_entry_clicked_cb(self, widget): 610 self.playlist_widget.delete_selected_items() 611 612 def _clear_playlist_clicked_cb(self, widget): 613 self.playlist = [] 614 self.playlist_widget.clear() 615 576 616 def __go_fullscreen_cb(self, toolbar): 577 617 self.fullscreen() 578 618 -
widgets.py
diff --git a/widgets.py b/widgets.py index 67c5bc4..8befd9e 100644
a b class PlayListWidget(gtk.ScrolledWindow): 85 85 86 86 def set_cursor(self, index): 87 87 self.listview.set_cursor((index,)) 88 89 def clear(self): 90 self.treemodel.clear() 91 self._playlist = None 92 93 def delete_selected_items(self): 94 selection = self.listview.get_selection() 95 sel_model, sel_rows = self.listview.get_selection().get_selected_rows() 96 for row in sel_rows: 97 self._playlist.pop(row[0]) 98 self.treemodel.remove(self.treemodel.get_iter(row)) 99 self.update(self._playlist)