Thread: [Ap-python-commits] python/aptk playlist.py,1.8,1.9
Status: Beta
Brought to you by:
sjah
From: <sj...@us...> - 2002-07-26 14:33:02
|
Update of /cvsroot/ap-python/python/aptk In directory usw-pr-cvs1:/tmp/cvs-serv2493/aptk Modified Files: playlist.py Log Message: Add buttons to playlist widget. Fix problem when aptk crashed on empty lists. Index: playlist.py =================================================================== RCS file: /cvsroot/ap-python/python/aptk/playlist.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** playlist.py 25 Jul 2002 16:19:30 -0000 1.8 --- playlist.py 26 Jul 2002 14:32:54 -0000 1.9 *************** *** 206,219 **** self.__store.set (iter, self.__COLUMN_CURRENT, value) ! # Create value to mark new row ! value = self.__mark_pixbuf or self.__mark_label ! # Set ! self.__marked_path = (row, ) ! iter = self.__store.get_iter (self.__marked_path) ! self.__store.set (iter, self.__COLUMN_CURRENT, value) # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class PlaylistWindow (gtk.Window): def __init__ (self, pl, prop = None, prefix = ""): """Initializer.""" --- 206,235 ---- self.__store.set (iter, self.__COLUMN_CURRENT, value) ! if row != -1: ! # Create value to mark new row ! value = self.__mark_pixbuf or self.__mark_label ! # Set ! self.__marked_path = (row, ) ! iter = self.__store.get_iter (self.__marked_path) ! self.__store.set (iter, self.__COLUMN_CURRENT, value) ! ! def clear (self): ! """Clear list.""" ! ! self.__store.clear () # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # class PlaylistWindow (gtk.Window): + __properties = aptk.misc.WidgetProperties ([ + ('*.playlist.clear.button.label', 'Clear'), + ('*.playlist.remove.button.label', 'Remove'), + ('*.playlist.add.button.label', 'Add'), + ('*.playlist.sort.button.label', 'Sort'), + ('*.playlist.load.button.label', 'Load'), + ('*.playlist.save.button.label', 'Save'), + ('*.playlist.clear.confirm', 'Do you want to clear playlist?') + ]) + def __init__ (self, pl, prop = None, prefix = ""): """Initializer.""" *************** *** 224,241 **** # Create new properties whth our defaults added # prop = prop and (prop + self.__properties) or self.__properties prefix += '.playlist' # Init base class gtk.Window.__init__ (self) # Create and add list self.__list = List (prop, prefix) ! self.add (self.__list) self.__list.show () # Register this object as the playlist notifier self.__pl.register (self) # Connect signals self.connect ("destroy", self.__gtkcb_destroy) self.__list.get_treeview ().connect ("row-activated", self.__gtkcb_list_row_activated) --- 240,299 ---- # Create new properties whth our defaults added # prop = prop and (prop + self.__properties) or self.__properties + prop = prop and (prop + self.__properties) or self.__properties prefix += '.playlist' + # Properties + self.__clear_confirm = prop.get_value (prefix + ".clear.confirm") + # Init base class gtk.Window.__init__ (self) + self.set_border_width (2) + + # VBOX + vbox = gtk.VBox () + self.add (vbox) + vbox.show () + vbox.set_spacing (6) # Create and add list self.__list = List (prop, prefix) ! vbox.pack_start (self.__list) self.__list.show () + # Create hbox for buttons + hbox = gtk.HBox () + vbox.pack_end (hbox, expand = gtk.FALSE) + hbox.show () + + # Create buttons + self.add_button = aptk.misc.Button (prop, prefix + ".add") + hbox.pack_start (self.add_button, expand = gtk.FALSE) + self.add_button.show () + + self.remove_button = aptk.misc.Button (prop, prefix + ".remove") + hbox.pack_start (self.remove_button, expand = gtk.FALSE) + self.remove_button.show () + + self.sort_button = aptk.misc.Button (prop, prefix + ".sort") + hbox.pack_start (self.sort_button, expand = gtk.FALSE) + self.sort_button.show () + + self.clear_button = aptk.misc.Button (prop, prefix + ".clear") + hbox.pack_start (self.clear_button, expand = gtk.FALSE) + self.clear_button.show () + + self.load_button = aptk.misc.Button (prop, prefix + ".load") + hbox.pack_start (self.load_button, expand = gtk.FALSE) + self.load_button.show () + + self.save_button = aptk.misc.Button (prop, prefix + ".save") + hbox.pack_start (self.save_button, expand = gtk.FALSE) + self.save_button.show () + # Register this object as the playlist notifier self.__pl.register (self) # Connect signals + self.clear_button.connect ("clicked", self.__gtkcb_clear_clicked) self.connect ("destroy", self.__gtkcb_destroy) self.__list.get_treeview ().connect ("row-activated", self.__gtkcb_list_row_activated) *************** *** 286,289 **** --- 344,359 ---- gdk.threads_leave () + def cb_clear (self): + """Alsaplayer's callback.""" + + gdk.threads_enter () + self.__list.clear () + gdk.threads_leave () + + def cb_remove (self, start, end): + """Alsaplayer's callback.""" + + print "Remove: ", start, end + def __gtkcb_list_row_activated (self, tree, path, column): """Handler for a row activated signal.""" *************** *** 292,295 **** --- 362,384 ---- self.__pl.play (path [0] + 1) gdk.threads_enter () + + def __gtkcb_clear_clicked (self, w): + """Handler for clear button clicked signal.""" + + # Confirm this action + d = gtk.MessageDialog (self, + gtk.DIALOG_DESTROY_WITH_PARENT, + gtk.MESSAGE_QUESTION, + gtk.BUTTONS_YES_NO, + self.__clear_confirm) + + rc = d.run () + d.destroy () + + # Clear if answer is Yes + if rc == gtk.RESPONSE_YES: + gtk.threads_leave () + self.__pl.clear () + gtk.threads_enter () def __gtkcb_destroy (self, widget): |