openshot.code team mailing list archive
-
openshot.code team
-
Mailing list archive
-
Message #00579
[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 ***"
+