← Back to team overview

openshot.code team mailing list archive

[Branch ~openshot.code/openshot/main] Rev 504: Applied a patch from Emil to fix bug #820569, to ensure consistency of the right click menu when ...

 

------------------------------------------------------------
revno: 504
committer: Andy Finch <we.rocked.in79@xxxxxxxxx>
branch nick: openshot
timestamp: Tue 2011-08-16 22:08:06 +0100
message:
  Applied a patch from Emil to fix bug #820569, to ensure consistency of the right click menu when switching between the detail and thumbnail views in the project tree.
modified:
  openshot/windows/MainGTK.py
  openshot/windows/ui/Main_tree_popup.ui


--
lp:openshot
https://code.launchpad.net/~openshot.code/openshot/main

Your team OpenShot Code is subscribed to branch lp:openshot.
To unsubscribe from this branch go to https://code.launchpad.net/~openshot.code/openshot/main/+edit-subscription
=== modified file 'openshot/windows/MainGTK.py'
--- openshot/windows/MainGTK.py	2011-08-16 20:12:18 +0000
+++ openshot/windows/MainGTK.py	2011-08-16 21:08:06 +0000
@@ -2624,15 +2624,17 @@
 				
 			return True
 		
+	# double click event for thumbnail file view
 	def on_icvFileIcons_button_press_event(self, widget, event, *args):
 		"""This shows the right click menu"""
 
 		if (event.button == 3):
-			#iconview is active
+			# iconview is active
 			selected = self.icvFileIcons.get_selected_items()
+			model = self.icvFileIcons.get_model()
 			
-			#show the right click menu
-			mnu = mnuTree(None, selected, form=self, project=self.project)
+			# show the right click menu
+			mnu = mnuTree(model, selected, form=self, project=self.project)
 			mnu.showmnu(event, widget)
 
 
@@ -3914,149 +3916,194 @@
 		# get correct gettext method
 		_ = self._
 		
-		#Show the right click menu.
-		#dynamically show menu items depending on tree contents.
-		#The Add Folder & Add File items are in the ui file - we always want them.
+		# Show the right click menu.
+		# dynamically show menu items depending on tree contents.
+		# The Add Folder & Add File items are in the ui file - we always want them.
 		
 		if self.form.scrFileTree.get_property('visible') == True:
 			name = "treeFiles"
 		else:
 			name = "icvFileIcons"
 
+		# Option Construction
+
+		# Create Folder
+		mnuCreateFolder = gtk.ImageMenuItem(gtk.STOCK_DIRECTORY)
+		mnuCreateFolder.get_children()[0].set_label(_("Create Folder"))
+		mnuCreateFolder.connect('activate',self.on_mnuAddNewFolder_activate)
+
+		# Add to Timeline...
+		mnuAddToTimeline = gtk.ImageMenuItem(gtk.STOCK_ADD)
+		mnuAddToTimeline.get_children()[0].set_label(_("Add to Timeline..."))
+		mnuAddToTimeline.connect('activate',self.on_mnuAddToTimeline_activate)
+		
+		# Preview File
+		mnuPreview = gtk.ImageMenuItem(gtk.STOCK_MEDIA_PLAY)
+		mnuPreview.get_children()[0].set_label(_("Preview File"))
+		mnuPreview.connect('activate',self.on_mnuPreview_activate)
+				
+		# Convert To Image Sequence
+		mnuConvertToImages = gtk.ImageMenuItem(gtk.STOCK_CONVERT)
+		mnuConvertToImages.get_children()[0].set_label(_("Convert To Image Sequence"))
+		mnuConvertToImages.connect('activate',self.on_mnuConvertToImages_activate)
+				
+		# Thumbnail View
+		mnuThumbView = gtk.ImageMenuItem(gtk.STOCK_FULLSCREEN)
+		mnuThumbView.get_children()[0].set_label(_("Thumbnail View"))
+		mnuThumbView.connect('activate',self.on_mnuThumbView_activate)
+		
+		# Detail View
+		mnuDetailView = gtk.ImageMenuItem(gtk.STOCK_LEAVE_FULLSCREEN)
+		mnuDetailView.get_children()[0].set_label(_("Detail View"))
+		mnuDetailView.connect('activate',self.on_mnuDetailView_activate)
+		
+		# Move File(s) to folder
+		mnuMoveFile = gtk.ImageMenuItem(gtk.STOCK_GO_FORWARD)
+		mnuMoveFile.get_children()[0].set_label(_("Move File(s) to Folder"))
+			
+		# Populate the sub menu with available folders
+		folders =  self.project.project_folder.ListFolders()
+		mnuSubMenu = gtk.Menu()
+		for folder in folders:
+			item = gtk.ImageMenuItem(gtk.STOCK_OPEN)
+			item.get_children()[0].set_label(folder)					
+			item.connect("activate", self.move_file_to_folder, folder)
+			mnuSubMenu.add(item)
+		
+		# Remove from Folder
+		if folders:
+			mnuSeparator = gtk.SeparatorMenuItem()
+			mnuSubMenu.add(mnuSeparator)
+					
+			item = gtk.ImageMenuItem(gtk.STOCK_REMOVE)
+			item.get_children()[0].set_label(_("Remove from Folder"))					
+			item.connect("activate", self.move_file_to_folder, _("Remove from Folder"))
+			mnuSubMenu.add(item)
+		else:
+			# Gray out the "Move File(s) to Folder" option
+			mnuMoveFile.set_sensitive(False)
+		
+		# Add folders sub-menu to menu
+		mnuMoveFile.set_submenu(mnuSubMenu)
+				
+		# Edit Title (Simple)
+		mnuEditTitle = gtk.ImageMenuItem(gtk.STOCK_EDIT)
+		mnuEditTitle.get_children()[0].set_label(_("Edit Title (Simple)"))
+		mnuEditTitle.connect('activate',self.on_mnuEditTitle_activate, "simple")
+		
+		# Edit Title (Inkscape)
+		mnuEditTitle1 = gtk.ImageMenuItem(gtk.STOCK_EDIT)
+		mnuEditTitle1.get_children()[0].set_label(_("Edit Title (Inkscape)"))
+		mnuEditTitle1.connect('activate',self.on_mnuEditTitle_activate, "advanced")
+		
+		# Remove From Project
+		mnuRemoveFile = gtk.ImageMenuItem(gtk.STOCK_DELETE)
+		mnuRemoveFile.get_children()[0].set_label(_("Remove from Project"))
+		mnuRemoveFile.connect('activate',self.on_mnuRemoveFile_activate)
+		
+		# Upload to Web
+		mnuUploadToWeb = gtk.ImageMenuItem(gtk.STOCK_NETWORK)
+		mnuUploadToWeb.get_children()[0].set_label(_("Upload to Web"))
+		mnuUploadToWeb.connect('activate',self.on_mnuUploadToWeb_activate)
+
+		# File Properties
+		mnuFileProperties = gtk.ImageMenuItem(gtk.STOCK_PROPERTIES)
+		mnuFileProperties.get_children()[0].set_label(_("File Properties"))
+		mnuFileProperties.connect('activate', self.on_FileProperties_activate)
+		
+		# Menu Composition
+		
+		if name == "treeFiles":
+			# Create Folder
+			self.mnuTree.add(mnuCreateFolder)
+			
+		# Separator
+		mnuSeparator = gtk.SeparatorMenuItem()
+		self.mnuTree.add(mnuSeparator)
+		
 		if self.selected:
-			
+			# Determine type of selected item
+		
 			is_video_selected = False
 			is_svg_selected = False
-			
-			# Add To Timeline
-			mnuAddToTimeline = gtk.ImageMenuItem(gtk.STOCK_ADD)
-			mnuAddToTimeline.get_children()[0].set_label(_("Add to Timeline..."))
-			mnuAddToTimeline.connect('activate',self.on_mnuAddToTimeline_activate)
-			self.mnuTree.add(mnuAddToTimeline)
-			
-			# Preview File
-			mnuPreview = gtk.ImageMenuItem(gtk.STOCK_MEDIA_PLAY)
-			mnuPreview.get_children()[0].set_label(_("Preview File"))
-			mnuPreview.connect('activate',self.on_mnuPreview_activate)
-			self.mnuTree.add(mnuPreview)
-			
-			mnuSeparator1 = gtk.SeparatorMenuItem()
-			self.mnuTree.add(mnuSeparator1)
-
-			#View options depend on what view is active
-			if name == "treeFiles":
-				
-				iters = [self.model.get_iter(path) for path in self.selected]
-				for iter in iters:
-					# remove from the file object
-					filename = self.model.get_value(iter, 1)
+			is_folder_selected = False
+			
+			iters = [self.model.get_iter(path) for path in self.selected]
+			for iter in iters:
+				# remove from the file object
+				filename = self.model.get_value(iter, 1)
+				if name == "treeFiles":
 					unique_id = self.model.get_value(iter, 4)
-					
-					# get file object
-					f = self.project.project_folder.FindFileByID(unique_id)
-					if f:
-						if f.file_type == "video":
-							is_video_selected = True
-						if f.file_type == "image" and ".svg" in f.name:
-							is_svg_selected = True
-
-				# show convert to image sequence (if video is selected)
-				if is_video_selected:
-					mnuConvertToImages = gtk.ImageMenuItem(gtk.STOCK_CONVERT)
-					mnuConvertToImages.get_children()[0].set_label(_("Convert To Image Sequence"))
-					mnuConvertToImages.connect('activate',self.on_mnuConvertToImages_activate)
-					self.mnuTree.add(mnuConvertToImages)
-				
-				# add thumbnail option
-				mnuThumbView = gtk.ImageMenuItem(gtk.STOCK_FULLSCREEN)
-				mnuThumbView.get_children()[0].set_label(_("Thumbnail view"))
-				mnuThumbView.connect('activate',self.on_mnuThumbView_activate)
-				self.mnuTree.add(mnuThumbView)
-				
-				#Move Files to folder
-				mnuMoveFile = gtk.ImageMenuItem(gtk.STOCK_GO_FORWARD)
-				mnuMoveFile.get_children()[0].set_label(_("Move File(s) to Folder"))
-				self.mnuTree.add(mnuMoveFile)
-				
-				folders =  self.project.project_folder.ListFolders()
-				mnuSubMenu = gtk.Menu()
-				
-				#populate the sub menu with available folders
-				for folder in folders:
-					item = gtk.ImageMenuItem(gtk.STOCK_OPEN)
-					item.get_children()[0].set_label(folder)					
-					item.connect("activate", self.move_file_to_folder, folder)
-					mnuSubMenu.add(item)
-					
-				#add remove from folder
-				if folders:
-					mnuSeparator = gtk.SeparatorMenuItem()
-					mnuSubMenu.add(mnuSeparator)
-					
-					item = gtk.ImageMenuItem(gtk.STOCK_REMOVE)
-					item.get_children()[0].set_label(_("Remove from Folder"))					
-					item.connect("activate", self.move_file_to_folder, _("Remove from Folder"))
-					mnuSubMenu.add(item)
-				
-				# add sub-menu to menu
-				mnuMoveFile.set_submenu(mnuSubMenu)
-			else:
-				# add detail view toggle
-				mnuDetailView = gtk.ImageMenuItem(gtk.STOCK_LEAVE_FULLSCREEN)
-				mnuDetailView.get_children()[0].set_label(_("Detail view"))
-				mnuDetailView.connect('activate',self.on_mnuDetailView_activate)
-				self.mnuTree.add(mnuDetailView)
-
-			mnuSeparator = gtk.SeparatorMenuItem()
-			self.mnuTree.add(mnuSeparator)
-					
+				else:
+					unique_id = self.model.get_value(iter, 3)
+			
+				# get file object
+				f = self.project.project_folder.FindFileByID(unique_id)
+				if f:
+					if f.file_type == "video":
+						is_video_selected = True
+					if f.file_type == "image" and ".svg" in f.name:
+						is_svg_selected = True
+				else:
+					is_folder_selected = True
+			
+			if not is_folder_selected:
+				# Add To Timeline
+				self.mnuTree.add(mnuAddToTimeline)
+		
+				# Add Preview File
+				self.mnuTree.add(mnuPreview)
+				
+				# Separator
+				mnuSeparator = gtk.SeparatorMenuItem()
+				self.mnuTree.add(mnuSeparator)
+			
+			# Add Convert to Image Sequence (if video is selected)
+			if is_video_selected:
+				self.mnuTree.add(mnuConvertToImages)
+			
+			if not is_folder_selected:
+				if name == "treeFiles":
+					# Add Move Files to Folder
+					self.mnuTree.add(mnuMoveFile)
+				
+					# Add Thumbnail View
+					self.mnuTree.add(mnuThumbView)
+				else:
+					# Add Detail View
+					self.mnuTree.add(mnuDetailView)
+				
+			# Add Edit Title options (if image is selected)
 			if is_svg_selected:
-				mnuEditTitle = gtk.ImageMenuItem(gtk.STOCK_EDIT)
-				mnuEditTitle.get_children()[0].set_label(_("Edit Title (Simple)"))
-				mnuEditTitle.connect('activate',self.on_mnuEditTitle_activate, "simple")
 				self.mnuTree.add(mnuEditTitle)
-				
-				mnuEditTitle1 = gtk.ImageMenuItem(gtk.STOCK_EDIT)
-				mnuEditTitle1.get_children()[0].set_label(_("Edit Title (Inkscape)"))
-				mnuEditTitle1.connect('activate',self.on_mnuEditTitle_activate, "advanced")
 				self.mnuTree.add(mnuEditTitle1)
-
-			#Remove File
-			mnuRemoveFile = gtk.ImageMenuItem(gtk.STOCK_DELETE)
-			mnuRemoveFile.get_children()[0].set_label(_("Remove from Project"))
-			mnuRemoveFile.connect('activate',self.on_mnuRemoveFile_activate)
+		
+			# Add separator (if folder isn't selected)
+			if not is_folder_selected:
+				mnuSeparator = gtk.SeparatorMenuItem()
+				self.mnuTree.add(mnuSeparator)
+		
+			# Add Remove From Project
 			self.mnuTree.add(mnuRemoveFile)
-
+		
+			# Separator
 			mnuSeparator = gtk.SeparatorMenuItem()
 			self.mnuTree.add(mnuSeparator)
-			
-			# show convert to image sequence (if video is selected)
+		
+			# Add Upload to Web (if video is selected)
 			if is_video_selected:
-				mnuUploadToWeb = gtk.ImageMenuItem(gtk.STOCK_NETWORK)
-				mnuUploadToWeb.get_children()[0].set_label(_("Upload to Web"))
-				mnuUploadToWeb.connect('activate',self.on_mnuUploadToWeb_activate)
 				self.mnuTree.add(mnuUploadToWeb)
 
-			#File properties
-			mnuFileProperties = gtk.ImageMenuItem(gtk.STOCK_PROPERTIES)
-			mnuFileProperties.get_children()[0].set_label(_("File Properties"))
-			mnuFileProperties.connect('activate', self.on_FileProperties_activate)
-			self.mnuTree.add(mnuFileProperties)
-
+			# File properties (if folder isn't selected)
+			if not is_folder_selected:
+				self.mnuTree.add(mnuFileProperties)
+		
 		else:
-
-			# no item selected
 			if name == "treeFiles":
-				# add thumbnail option
-				mnuThumbView = gtk.ImageMenuItem(gtk.STOCK_FULLSCREEN)
-				mnuThumbView.get_children()[0].set_label(_("Thumbnail view"))
-				mnuThumbView.connect('activate',self.on_mnuThumbView_activate)
+				# Add Thumbnail View
 				self.mnuTree.add(mnuThumbView)
 			else:
-				# add detail view toggle
-				mnuDetailView = gtk.ImageMenuItem(gtk.STOCK_LEAVE_FULLSCREEN)
-				mnuDetailView.get_children()[0].set_label(_("Detail view"))
-				mnuDetailView.connect('activate',self.on_mnuDetailView_activate)
+				# Add Detail View
 				self.mnuTree.add(mnuDetailView)
 
 		self.mnuTree.show_all()

=== modified file 'openshot/windows/ui/Main_tree_popup.ui'
--- openshot/windows/ui/Main_tree_popup.ui	2010-08-29 03:42:32 +0000
+++ openshot/windows/ui/Main_tree_popup.ui	2011-08-16 21:08:06 +0000
@@ -16,22 +16,6 @@
         <property name="image">gtk-add</property>
       </object>
     </child>
-    <child>
-      <object class="GtkImageMenuItem" id="mnuAddNewFolder">
-        <property name="label" translatable="yes">Create Folder...</property>
-        <property name="visible">True</property>
-        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-        <property name="use_stock">False</property>
-        <property name="accel_group">accelgroup1</property>
-        <signal name="activate" handler="on_mnuAddNewFolder_activate"/>
-        <property name="image">gtk-directory</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkSeparatorMenuItem" id="menuitem5">
-        <property name="visible">True</property>
-      </object>
-    </child>
   </object>
   <object class="GtkAccelGroup" id="accelgroup1"/>