alacarte r353 - in trunk: . Alacarte



Author: twatkins
Date: Sun Feb 17 05:41:50 2008
New Revision: 353
URL: http://svn.gnome.org/viewvc/alacarte?rev=353&view=rev

Log:
2008-02-16  Travis Watkins  <amaranth ubuntu com>

        * Alacarte/MainWindow.py:
          - disable New Separator button when an item is not selected
            thanks to Mike Pechkin
          - hopefully fix problem with editing properties on menus without
            .directory files
          - make sure DnD operations are allowed allowed for the inside
            the alacarte window and not between instances of alacarte
          - update view on item theme change, thanks Jared Moore
        * Alacarte/Makefile.am:
          - install .py files to the correct location, thanks Todd Zullinger
        * Alacarte/MenuEditor.py:
          - make sure you can't move a menu into itself
            thanks Benjamin Gramlich
          - hopefully fix bug 486937 (which doesn't make sense)
        * alacarte.desktop.in.in:
          - disable StartupNotify as a poor man's fix for property windows
            going under the main application window


Modified:
   trunk/Alacarte/MainWindow.py
   trunk/Alacarte/Makefile.am
   trunk/Alacarte/MenuEditor.py
   trunk/ChangeLog
   trunk/alacarte.desktop.in.in
   trunk/alacarte.glade

Modified: trunk/Alacarte/MainWindow.py
==============================================================================
--- trunk/Alacarte/MainWindow.py	(original)
+++ trunk/Alacarte/MainWindow.py	Sun Feb 17 05:41:50 2008
@@ -61,6 +61,7 @@
 		self.tree.get_widget('edit_properties').set_sensitive(False)
 		self.tree.get_widget('move_up_button').set_sensitive(False)
 		self.tree.get_widget('move_down_button').set_sensitive(False)
+		self.tree.get_widget('new_separator_button').set_sensitive(False)
 		accelgroup = gtk.AccelGroup()
 		keyval, modifier = gtk.accelerator_parse('<Ctrl>Z')
 		accelgroup.connect_group(keyval, modifier, gtk.ACCEL_VISIBLE, self.on_mainwindow_undo)
@@ -357,7 +358,15 @@
 			file_path = os.path.join(util.getUserItemPath(), item.get_desktop_file_id())
 			file_type = 'Item'
 		elif item.get_type() == gmenu.TYPE_DIRECTORY:
-			file_path = os.path.join(util.getUserDirectoryPath(), os.path.split(item.get_desktop_file_path())[1])
+			if item.get_desktop_file_path() == None:
+				file_path = util.getUniqueFileId('alacarte-made', '.directory')
+				parser = util.DesktopParser(file_path, 'Directory')
+				parser.set('Name', item.get_name())
+				parser.set('Comment', item.get_comment())
+				parser.set('Icon', item.get_icon())
+				parser.write(open(file_path))
+			else:
+				file_path = os.path.join(util.getUserDirectoryPath(), os.path.split(item.get_desktop_file_path())[1])
 			file_type = 'Menu'
 
 		if not os.path.isfile(file_path):
@@ -382,6 +391,7 @@
 		self.tree.get_widget('edit_properties').set_sensitive(False)
 		self.tree.get_widget('move_up_button').set_sensitive(False)
 		self.tree.get_widget('move_down_button').set_sensitive(False)
+		self.tree.get_widget('new_separator_button').set_sensitive(False)
 
 	def on_menu_tree_drag_data_get(self, treeview, context, selection, target_id, etime):
 		menus, iter = treeview.get_selection().get_selected()
@@ -397,6 +407,8 @@
 				context.finish(False, False, etime)
 				return False
 			if selection.target in ('ALACARTE_ITEM_ROW', 'ALACARTE_MENU_ROW'):
+				if self.drag_data == None:
+					return False
 				item = self.drag_data
 				new_parent = menus[path][2]
 				treeview.get_selection().select_path(path)
@@ -408,6 +420,7 @@
 				else:
 					context.finish(False, False, etime) 
 				context.finish(True, True, etime)
+		self.drag_data = None
 
 	def on_item_tree_show_toggled(self, cell, path):
 		item = self.item_store[path][3]
@@ -423,6 +436,7 @@
 		items, iter = treeview.get_selection().get_selected()
 		item = items[iter][3]
 		self.tree.get_widget('edit_delete').set_sensitive(True)
+		self.tree.get_widget('new_separator_button').set_sensitive(True)
 		if self.editor.canRevert(item):
 			self.tree.get_widget('edit_revert_to_original').set_sensitive(True)
 		else:
@@ -482,6 +496,8 @@
 			drop_info = treeview.get_dest_row_at_pos(x, y)
 			before = None
 			after = None
+			if self.drag_data == None:
+				return False
 			item = self.drag_data
 			if drop_info:
 				path, position = drop_info
@@ -531,6 +547,7 @@
 				self.editor.createItem(parent, parser.get('Icon'), parser.get('Name', self.editor.locale), parser.get('Comment', self.editor.locale), parser.get('Exec'), parser.get('Terminal'), before, after)
 			elif file_info.mime_type in ('application/x-shellscript', 'application/x-executable'):
 				self.editor.createItem(parent, None, os.path.split(file_path)[1].strip(), None, file_path.replace('file://', '').strip(), False, before, after)
+		self.drag_data = None
 
 	def on_item_tree_key_press_event(self, item_tree, event):
 		if event.keyval == gtk.keysyms.Delete:
@@ -596,6 +613,9 @@
 			pass
 		gobject.timeout_add(10, self.quit)
 
+	def on_style_set(self, *args):
+		self.loadUpdates()
+
 	def quit(self):
 		self.editor.quit()
 		gtk.main_quit()		

Modified: trunk/Alacarte/Makefile.am
==============================================================================
--- trunk/Alacarte/Makefile.am	(original)
+++ trunk/Alacarte/Makefile.am	Sun Feb 17 05:41:50 2008
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 
-appdir = $(pyexecdir)/Alacarte
+appdir = $(pythondir)/Alacarte
 app_PYTHON = __init__.py MainWindow.py MenuEditor.py util.py
 nodist_app_PYTHON = config.py
 

Modified: trunk/Alacarte/MenuEditor.py
==============================================================================
--- trunk/Alacarte/MenuEditor.py	(original)
+++ trunk/Alacarte/MenuEditor.py	Sun Feb 17 05:41:50 2008
@@ -315,6 +315,11 @@
 			parent = parent.get_parent()
 			if parent == menu:
 				return False
+
+		#don't move a menu into itself
+		if new_parent == menu:
+			return False
+
 		#can't move between top-level menus
 		if self.__getMenu(menu) != self.__getMenu(new_parent):
 			return False
@@ -374,6 +379,9 @@
 	def revertMenu(self, menu):
 		if not self.canRevert(menu):
 			return
+		#wtf happened here? oh well, just bail
+		if not menu.get_desktop_file_path():
+			return
 		self.__addUndo([menu,])
 		file_id = os.path.split(menu.get_desktop_file_path())[1]
 		path = os.path.join(util.getUserDirectoryPath(), file_id)

Modified: trunk/alacarte.desktop.in.in
==============================================================================
--- trunk/alacarte.desktop.in.in	(original)
+++ trunk/alacarte.desktop.in.in	Sun Feb 17 05:41:50 2008
@@ -5,7 +5,7 @@
 Exec=alacarte
 Terminal=false
 Type=Application
-StartupNotify=true
+StartupNotify=false
 Categories=GNOME;Settings;DesktopSettings;
 NotShowIn=KDE;
 Icon=alacarte

Modified: trunk/alacarte.glade
==============================================================================
--- trunk/alacarte.glade	(original)
+++ trunk/alacarte.glade	Sun Feb 17 05:41:50 2008
@@ -72,6 +72,7 @@
   <property name="has_separator">False</property>
   <signal name="close" handler="on_close_button_clicked" last_modification_time="Wed, 26 Apr 2006 18:46:45 GMT"/>
   <signal name="destroy" handler="on_close_button_clicked" last_modification_time="Fri, 28 Apr 2006 10:49:37 GMT"/>
+  <signal name="style-set" handler="on_style_set"/>
   <accelerator key="Escape" modifiers="0" signal="close"/>
 
   <child internal-child="vbox">



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]