← Back to team overview

openshot.code team mailing list archive

[Branch ~openshot.code/openshot/main] Rev 688: Ensure the config file format is ascii - a config file from an old version of OpenShot could stil...

 

------------------------------------------------------------
revno: 688
committer: Andy Finch <we.rocked.in79@xxxxxxxxx>
branch nick: openshot
timestamp: Wed 2012-09-05 21:10:28 +0100
message:
  Ensure the config file format is ascii - a config file from an old version of OpenShot could still get saved in Binary format. Also fixed the indentation in save_project.py.
  
  Oh, and the last commit (687) message wasn't very clear. That was to apply a patch to make OpenShot show in the Sound Preferences.
modified:
  openshot/classes/project.py
  openshot/classes/save_project.py


--
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/classes/project.py'
--- openshot/classes/project.py	2011-01-30 17:33:27 +0000
+++ openshot/classes/project.py	2012-09-05 20:10:28 +0000
@@ -333,7 +333,7 @@
 		
 		# get preferences to see whether to save in binary or ascii form
 		from windows import preferences
-		self.file_type = preferences.Settings.general["project_file_type"]
+		self.file_type = "ascii"
 		
 		# call the save method
 		save_project.save_project(self, file_path)

=== modified file 'openshot/classes/save_project.py'
--- openshot/classes/save_project.py	2011-09-22 19:59:16 +0000
+++ openshot/classes/save_project.py	2012-09-05 20:10:28 +0000
@@ -23,140 +23,135 @@
 from classes import files
 
 def save_project(project_object, file_path):
-		project = project_object
-			
-		# create thumbnail folder (if it doesn't exist)
-		if os.path.exists(os.path.join(project_object.folder, "thumbnail")) == False:
-			# create new thumbnail folder
-			os.mkdir(os.path.join(project_object.folder, "thumbnail"))
-			
-		# copy all temp thumbnails to this project's folder (if it's different)
-		if project.USER_DIR != project_object.folder:
-			# different path, so copy thumbnails, adjust paths
-			copy_files(os.path.join(project.USER_DIR, "thumbnail"), os.path.join(project_object.folder, "thumbnail"))
-
-			# Loop through the files, and update file path for images and image sequences
-			for item in project_object.project_folder.items:
-				
-				# Is this item a File (i.e. ignore folders)
-				if isinstance(item, files.OpenShotFile):
-	
-					# Get file path info for this item
-					(dirName, fname) = os.path.split(item.name)
-					(thumbdirName, thumbfname) = os.path.split(item.thumb_location)
-	
-					# Update the thumbnail location
-					item.thumb_location = os.path.join(project_object.folder, "thumbnail", thumbfname)
-					
-					# if image sequence and in the .openshot folder
-					if item.file_type == "image sequence" and project.USER_DIR in item.name:
-						# Determine folder name of image sequence 
-						(rootFolder, blenderFolderName) = os.path.split(dirName)
-						
-						# create new folder (if needed)
-						if os.path.exists(os.path.join(project_object.folder, blenderFolderName)) == False:
-							# create new thumbnail folder
-							os.mkdir(os.path.join(project_object.folder, blenderFolderName))
-						
-						# Copy files to new project folder
-						copy_files(dirName, os.path.join(project_object.folder, blenderFolderName))
-						
-						# Update Path to Image Sequence
-						item.name = os.path.join(project_object.folder, blenderFolderName, fname)
-					
-					elif item.file_type == "image" and ".svg" in item.name and "thumbnail" in item.name:
-						# UPDATE TITLES... so they move with the project
-						item.name = os.path.join(project_object.folder, "thumbnail", fname)
-					
-
-
-		# clear the following temporary properties which can't be pickeled
-		old_form = project_object.form
-		old_play_head = project_object.sequences[0].play_head
-		old_ruler_time = project_object.sequences[0].ruler_time
-		old_play_head_line = project_object.sequences[0].play_head_line
-		old_thumbnailer = project_object.thumbnailer
-		old_theme_settings = project_object.theme_settings
-		project_object.mlt_profile = None
-		
-		project_object.sequences[0].play_head = None
-		project_object.sequences[0].ruler_time = None
-		project_object.sequences[0].play_head_line = None
-		project_object.form = None
-		project_object.theme_settings = None
-		project_object.thumbnailer = None
-
-		# check whether using binary or ascii file
-		if project.file_type == "binary":
-			file_is_binary = True
-		else:
-			file_is_binary = False
-				
-		# serialize the project object
-		myFile = file(file_path, "wb")
-		pickle.dump(project_object, myFile, file_is_binary)
-		
-		# re-attach some variables (that aren't pickleable)
-		project_object.form = old_form
-		project_object.sequences[0].play_head = old_play_head
-		project_object.sequences[0].ruler_time = old_ruler_time
-		project_object.sequences[0].play_head_line = old_play_head_line
-		project_object.theme_settings = old_theme_settings
-		project_object.thumbnailer = old_thumbnailer
-		
-		# update the thumbnailer's project reference
-		project_object.thumbnailer.set_project(project_object)
-		
-		# update project references in the menus
-		project_object.form.mnuTrack1.project = project_object
-		project_object.form.mnuClip1.project = project_object
-		project_object.form.mnuMarker1.project = project_object
-		project_object.form.mnuTransition1.project = project_object
-		project_object.form.mnuFadeSubMenu1.project = project_object
-		project_object.form.mnuAnimateSubMenu1.project = project_object
-		project_object.form.mnuPositionSubMenu1.project = project_object
-		
-		# disable save button on form
-		project_object.set_project_modified(is_modified=False, refresh_xml=True)
-		
-		# add project file to recent files
-		manager = gtk.recent_manager_get_default()
-		manager.add_item('file://' + file_path)
-		
-		# output the file path
-		print "project saved! - %s" % (project_object.name)
-			   
+	project = project_object
+
+	# create thumbnail folder (if it doesn't exist)
+	if os.path.exists(os.path.join(project_object.folder, "thumbnail")) == False:
+		# create new thumbnail folder
+		os.mkdir(os.path.join(project_object.folder, "thumbnail"))
+
+	# copy all temp thumbnails to this project's folder (if it's different)
+	if project.USER_DIR != project_object.folder:
+		# different path, so copy thumbnails, adjust paths
+		copy_files(os.path.join(project.USER_DIR, "thumbnail"), os.path.join(project_object.folder, "thumbnail"))
+
+		# Loop through the files, and update file path for images and image sequences
+		for item in project_object.project_folder.items:
+
+			# Is this item a File (i.e. ignore folders)
+			if isinstance(item, files.OpenShotFile):
+
+				# Get file path info for this item
+				(dirName, fname) = os.path.split(item.name)
+				(thumbdirName, thumbfname) = os.path.split(item.thumb_location)
+
+				# Update the thumbnail location
+				item.thumb_location = os.path.join(project_object.folder, "thumbnail", thumbfname)
+
+				# if image sequence and in the .openshot folder
+				if item.file_type == "image sequence" and project.USER_DIR in item.name:
+					# Determine folder name of image sequence 
+					(rootFolder, blenderFolderName) = os.path.split(dirName)
+
+					# create new folder (if needed)
+					if os.path.exists(os.path.join(project_object.folder, blenderFolderName)) == False:
+						# create new thumbnail folder
+						os.mkdir(os.path.join(project_object.folder, blenderFolderName))
+
+					# Copy files to new project folder
+					copy_files(dirName, os.path.join(project_object.folder, blenderFolderName))
+
+					# Update Path to Image Sequence
+					item.name = os.path.join(project_object.folder, blenderFolderName, fname)
+
+				elif item.file_type == "image" and ".svg" in item.name and "thumbnail" in item.name:
+					# UPDATE TITLES... so they move with the project
+					item.name = os.path.join(project_object.folder, "thumbnail", fname)
+
+
+
+	# clear the following temporary properties which can't be pickeled
+	old_form = project_object.form
+	old_play_head = project_object.sequences[0].play_head
+	old_ruler_time = project_object.sequences[0].ruler_time
+	old_play_head_line = project_object.sequences[0].play_head_line
+	old_thumbnailer = project_object.thumbnailer
+	old_theme_settings = project_object.theme_settings
+	project_object.mlt_profile = None
+
+	project_object.sequences[0].play_head = None
+	project_object.sequences[0].ruler_time = None
+	project_object.sequences[0].play_head_line = None
+	project_object.form = None
+	project_object.theme_settings = None
+	project_object.thumbnailer = None
+
+	
+	# serialize the project object
+	#Force Ascii file type (an old config file could still have binary type set)
+	myFile = file(file_path, "wb")
+	pickle.dump(project_object, myFile, False)
+
+	# re-attach some variables (that aren't pickleable)
+	project_object.form = old_form
+	project_object.sequences[0].play_head = old_play_head
+	project_object.sequences[0].ruler_time = old_ruler_time
+	project_object.sequences[0].play_head_line = old_play_head_line
+	project_object.theme_settings = old_theme_settings
+	project_object.thumbnailer = old_thumbnailer
+
+	# update the thumbnailer's project reference
+	project_object.thumbnailer.set_project(project_object)
+
+	# update project references in the menus
+	project_object.form.mnuTrack1.project = project_object
+	project_object.form.mnuClip1.project = project_object
+	project_object.form.mnuMarker1.project = project_object
+	project_object.form.mnuTransition1.project = project_object
+	project_object.form.mnuFadeSubMenu1.project = project_object
+	project_object.form.mnuAnimateSubMenu1.project = project_object
+	project_object.form.mnuPositionSubMenu1.project = project_object
+
+	# disable save button on form
+	project_object.set_project_modified(is_modified=False, refresh_xml=True)
+
+	# add project file to recent files
+	manager = gtk.recent_manager_get_default()
+	manager.add_item('file://' + file_path)
+
+	# output the file path
+	print "project saved! - %s" % (project_object.name)
+
 
 
 def copy_files(path, target_folder):
 
 	# verify this folder exists
 	if os.path.exists(path):
-		
+
 		# loop through all files in this folder
 		for child_path in os.listdir(path):
-			
+
 			# get full child path
 			source_path = os.path.join(path, child_path)
 			target_path = os.path.join(target_folder, child_path)
-			
+
 			if os.path.isdir(source_path) == True:
-				
+
 				if os.path.exists(target_path) == False:
 					# create the folder in the target folder
 					os.mkdir(target_path)
-					
+
 				# copy all the files in this sub-folder
 				copy_files(source_path, target_path)
 
 			else:
-				
+
 				# copy the thumbnail to the new location (if it doesn't exit)
 				if os.path.exists(target_path) == False:
 					shutil.copyfile(source_path, target_path)
-		
-	#except IOError:
-	#	# print error message
-	#	print "*** error saving file ***"
-		  
-		  
+
+			#except IOError:
+			#	# print error message
+			#	print "*** error saving file ***"
+