rpms/wallpapoz/devel wallpapoz-0.4.1-rev92-delete-one-wallpaper.patch, NONE, 1.1 wallpapoz.spec, 1.34, 1.35

Mamoru Tasaka mtasaka at fedoraproject.org
Sun Jun 13 08:50:57 UTC 2010


Author: mtasaka

Update of /cvs/extras/rpms/wallpapoz/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv19016/devel

Modified Files:
	wallpapoz.spec 
Added Files:
	wallpapoz-0.4.1-rev92-delete-one-wallpaper.patch 
Log Message:
* Sun Jun 13 2010 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> - 0.4.1-23.svn92_trunk
- Don't remove a wallpaper from workspace when only one wallpaper is left
  (bug 567136)
- Also some fixes for gtk menu sensitive issue (after some movement for
  wallpapers)


wallpapoz-0.4.1-rev92-delete-one-wallpaper.patch:
 wallpapoz |   63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 59 insertions(+), 4 deletions(-)

--- NEW FILE wallpapoz-0.4.1-rev92-delete-one-wallpaper.patch ---
--- wallpapoz-0.4.1-svn92_trunk/src/wallpapoz.deleteone	2010-06-13 03:08:43.000000000 +0900
+++ wallpapoz-0.4.1-svn92_trunk/src/wallpapoz	2010-06-13 17:33:06.000000000 +0900
@@ -833,6 +833,16 @@
     # list to put our lowest iter in every related workspace
     lowest_iter_list = []
 
+    # FIXME
+    # FIXME
+    # Currently copy_iter_list can be NoneType, e.g. when
+    # - Select one wallpaper in a workspace
+    # - and delete it
+    # - next choose "Edit -> "Delete Wallpaperz""
+    # Well, bugish, however anyway workaround...
+    if not copy_iter_list:
+      return lowest_iter_list
+
     # indication we have done with this workspace
     done_workspace = True
 
@@ -899,8 +909,16 @@
     # do the remaining job, get the lowest iter from last workspace if we have not done withlast workspace
     if not done_workspace:
 
-      lowest_iter_list.append(
-	  self.store.get_iter( (parent_number_index, iter_workspace_index+1) ) )
+      # Umm... the original code raises ValueError if trying to delete
+      # a wallpaper from a workspace, if only one wallpaper existed.
+      # Need further investigation, however anyway workaround...
+      new_iter = []
+      try:
+        new_iter = self.store.get_iter((parent_number_index, iter_workspace_index + 1))
+      except ValueError:
+        pass
+      if new_iter:
+        lowest_iter_list.append(new_iter)
 
     return lowest_iter_list
 
@@ -983,6 +1001,11 @@
   def cut_and_reordering_treeiter(self):
     lowest_iter_list = self.reordering_node_after_cut_and_paste( self.selected_iter )
 
+    # workaround for the case that trying to remove a wallpaper from
+    # the workspace where only one wallpaper exists
+    if not lowest_iter_list:
+	return
+
     # iterate to cut ( really!!! ) the iter from selected iter list
     for single_iter in self.selected_iter:
 
@@ -993,6 +1016,9 @@
     for single_iter in lowest_iter_list:
       self.order_treeiter_from_lowest_iter(single_iter)
 
+    # Finally update selection view
+    self.treeview_selection_changed(None)
+
   # order treeiter in one workspace or in list mode from lowest iter ( more efficient )
   def order_treeiter_from_lowest_iter(self, single_iter):
       # get the path
@@ -1209,6 +1235,22 @@
   # it display another image, and disable/enable some menu
   def treeview_selection_changed(self, widget):
     position_iter = self.get_selected_iter_of_treeview("anything")
+
+    if not position_iter:
+      # Nothing is selected, unfortunately this can happen
+      self.main_window.get_widget("rename_workspace").set_sensitive(False)
+      self.rename_workspace_menu.set_sensitive(False)
+      self.main_window.get_widget("change_wallpaper").set_sensitive(False)
+      self.change_wallpaper_menu.set_sensitive(False)
+      self.main_window.get_widget("cut").set_sensitive(False)
+      self.cut_menu.set_sensitive(False)
+      self.main_window.get_widget("copy").set_sensitive(False)
+      self.copy_menu.set_sensitive(False)
+      self.main_window.get_widget("delete_wallpapers").set_sensitive(False)
+      self.delete_wallpapers_menu.set_sensitive(False)
+      # Nothing left
+      return
+
     if type(self.store) == gtk.TreeStore:
       parent = self.store.iter_parent(position_iter)
       # parent node, enable: rename_workspace
@@ -1224,8 +1266,21 @@
 	self.cut_menu.set_sensitive(True)
 	self.main_window.get_widget("copy").set_sensitive(True)
 	self.copy_menu.set_sensitive(True)
-	self.main_window.get_widget("delete_wallpapers").set_sensitive(True)
-	self.delete_wallpapers_menu.set_sensitive(True)
+
+	# See create_configuration_file
+	# Check if there are at least 2 wallpapers
+	childiter = self.store.iter_children(parent)
+	childiter = self.store.iter_next(childiter)
+
+	# Only show "Delete wallpapers" menu if there are at least 2 wallpapers
+	# in a workspace
+	if childiter:
+	  self.main_window.get_widget("delete_wallpapers").set_sensitive(True)
+	  self.delete_wallpapers_menu.set_sensitive(True)
+	else:
+	  self.main_window.get_widget("delete_wallpapers").set_sensitive(False)
+	  self.delete_wallpapers_menu.set_sensitive(False)
+
       # parent node
       else:
 	self.main_window.get_widget("rename_workspace").set_sensitive(True)


Index: wallpapoz.spec
===================================================================
RCS file: /cvs/extras/rpms/wallpapoz/devel/wallpapoz.spec,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -p -r1.34 -r1.35
--- wallpapoz.spec	12 Jun 2010 17:17:47 -0000	1.34
+++ wallpapoz.spec	13 Jun 2010 08:50:57 -0000	1.35
@@ -8,7 +8,7 @@
 %define         mainver         0.4.1
 %undefine         betaver
 %define         svnver          svn92_trunk
-%define         fedorarel       22
+%define         fedorarel       23
 
 %define         rel             %{?betaver:0.}%{fedorarel}%{?svnver:.%svnver}%{?betaver:.%betaver}
 
@@ -46,7 +46,12 @@ Patch7:		wallpapoz-0.4.1-rev92-animated-
 # Non-utf8 directory can return NoneType with filechooser_widget.get_filename
 # bug 603351
 Patch8:		wallpapoz-0.4.1-rev92-nonutf8-directory.patch
-BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+# Don't remove a wallpaper from a workspace if there is only one
+# wallpaper left.
+# bug 567136
+# Also some fixes about gtk menu sensitive issue (after doing some movement
+# for wallpapers)
+Patch9:		wallpapoz-0.4.1-rev92-delete-one-wallpaper.patch
 
 BuildArch:      noarch
 
@@ -83,6 +88,7 @@ wallpapers for different workspaces or v
 %patch6 -p1 -b .kill_multi
 %patch7 -p1 -b .anime
 %patch8 -p1 -b .nonutf8
+%patch9 -p1 -b .deleteone
 
 %build
 
@@ -129,6 +135,12 @@ desktop-file-install \
 %{_datadir}/applications/fedora-%{name}.desktop
 
 %changelog
+* Sun Jun 13 2010 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> - 0.4.1-23.svn92_trunk
+- Don't remove a wallpaper from workspace when only one wallpaper is left
+  (bug 567136)
+- Also some fixes for gtk menu sensitive issue (after some movement for
+  wallpapers)
+
 * Sun Jun 13 2010 Mamoru Tasaka <mtasaka at ioa.s.u-tokyo.ac.jp> - 0.4.1-22.svn92_trunk
 - Make wallpapoz gui ignore non-utf8 directory correctly
   (filechooser_widget.get_filename can return NoneType, bug 603351)



More information about the scm-commits mailing list