////////////////////////////////////////////////////////////////////////////
// ADOBE SYSTEMS INCORPORATED
// Copyright 2010 Adobe Systems Incorporated
// All Rights Reserved
// NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the
// terms of the Adobe license agreement accompanying it. If you have received this file from a
// source other than Adobe, then your use, modification, or distribution of it requires the prior
// written permission of Adobe.
// Adobe Photoshop QE / DI Pro Tools Team
// Email: DL-PS-External-Bugs-Tools@adobe.com
// Script File: MigrateAllPresets.jsx
// Script Dev: Kaori Mikawa, Barkin Aygun
// Script QE: Kyoko Itoda, Irina Satanovskaya
// This script carries over your presets and workspaces files from CS5.1, CS5, CS4 and CS3 in order,
// not picking up already existing ones.
// It does it quietly, and within Photoshop, is designed to run in first launch
/////////////////////////////////////////////////////////////////////////////
/*
// BEGIN__HARVEST_EXCEPTION_ZSTRING
$$$/JavaScripts/MigratePresets/Menu=Migrate Presets...
// END__HARVEST_EXCEPTION_ZSTRING
*/
#target photoshop;
$.localize = true;
try{
app.bringToFront();
app.displayDialogs = DialogModes.NO;
var migrationComplete = false;
var errorToQuit;
var versionstrs = new Array("CS5.1", "CS5", "CS4", "CS3");
var versionflags = new Array();
for (i = 0; i < versionstrs.length; i++) {
versionflags.push(false);
}
//ZSTRING
var titleFileMigration = localize("$$$/MigratePresets/DialogTitle=Migrate Presets");
var msgComplete = localize("$$$/MigratePresets/MessageComplete=Presets have been successfully migrated. Restart Photoshop for changes to take effect.");
var msgCompleteError = localize("$$$/MigratePresets/MessageError=An error occurred when migrating the presets. Preset migration failed.");
var msgAdmin = localize("$$$/MigratePresets/MessageAdmin=Administrative privileges are required to migrate these presets.");
var msgWrongVersion = localize("$$$/MigratePresets/MessageWrongVersion=This script is intended for Photoshop CS6. Launch Photoshop CS6 and try again.");
var noFileSelected = localize("$$$/MigratePresets/MessageNoFile=No file is selected to migrate.");
var msgMigrate =localize("$$$/MigratePresets/MessageConfirm=Would you like to migrate presets from the following versions?\n");
var titleConfirmDialog = localize("$$$/MigratePresets/ConfirmTitle=Migrate Presets From Previous Versions of Adobe Photoshop");
var curOS = getCurOS($.os);
var appVer = getAppVer();
var dirCommonFiles = getDirCommonFiles();
var dirUserData = getDirUserData();
var dirUserPreferencesMac = getDirUserPreferencesMac();
var dirUserPresets = new Folder(dirUserData + "/Adobe/Adobe Photoshop CS6/Presets");
var dirUserWorkspaces = new Folder();
if(curOS.match("mac")){
dirUserWorkspaces = new Folder(dirUserPreferencesMac + "/Adobe Photoshop CS6 Settings/WorkSpaces");
}else{
dirUserWorkspaces = new Folder(dirUserData + "/Adobe/Adobe Photoshop CS6/Adobe Photoshop CS6 Settings/WorkSpaces");
}
var fileItems = new Array();
var fileToMigrate = new Array();
var objFolderName = "";
// -----------------------------------------
// User Presets
// -----------------------------------------
var arrayUserFolderPresetsTo = new Array();
var arrayUserFolderPresetsFrom = new Array();
var arrayUserFolderPresetsDiff = new Array();
var arrayUserFolderPresetsDiffDont = new Array();
var userFolderPresetsDiffTotal = 0;
// -----------------------------------------
// User Workspaces
// -----------------------------------------
var arrayUserFolderWorkspacesTo = new Array();
var arrayUserFolderWorkspacesFrom = new Array();
var arrayUserFolderWorkspacesDiff = new Array();
var arrayUserFolderWorkspacesDiffDont = new Array();
var userFolderWorkspacesDiffTotal = 0;
var result = "success";
var ctrVersion = 0;
if (checkMigrateIsNecessary()) {
if(appVer == 13){
for (i = 0; i < versionstrs.length; i++){
if (versionflags[i] == true) {
msgMigrate = msgMigrate + "Adobe Photoshop " + versionstrs[i] +"\n";
}
ctrVersion = ctrVersion + 1;
}
if (confirm(msgMigrate, false, titleConfirmDialog)) {
for (i = 0; i < versionstrs.length; i++) {
if (versionflags[i] == true) {
migrateAll(versionstrs[i]);
}
}
} else {
result = "failure";
}
}else{
alert(msgWrongVersion, titleFileMigration);
}
} else {
result = "nothing";
}// else die quietly, since there is nothing to do
result;
}catch(e){
alertScriptError("Line: " + e.line +" - "+ e);
}
/****************************************
* checkMigrateIsNecessary
****************************************/
function checkMigrateIsNecessary()
{
var migrateNecessary= false;
for (i = 0; i < versionstrs.length; i++){
refreshDiffData(versionstrs[i]);
if (arrayUserFolderPresetsDiff.length == 0 && arrayUserFolderWorkspacesDiff.length == 0) {
versionflags[i] = false;
} else {
versionflags[i] = true;
migrateNecessary = true;
}
}
return migrateNecessary;
}
/****************************************
* migrateAll
****************************************/
function migrateAll(versionstr){
refreshDiffData(versionstr);
if (arrayUserFolderPresetsDiff.length == 0 && arrayUserFolderWorkspacesDiff.length == 0) {
return;
}
migrateFiles(arrayUserFolderPresetsDiff, versionstr);
migrateFiles(arrayUserFolderWorkspacesDiff, versionstr);
}
/****************************************
* refreshListBoxes
****************************************/
function refreshDiffData(versionstr){
dirUserPresetsFrom = new Folder(dirUserPresets.toString().replace(/CS6/g,versionstr));
dirUserWorkspacesFrom = new Folder(dirUserWorkspaces.toString().replace(/CS6/g,versionstr));
// -----------------------------------------
// User Presets
// -----------------------------------------
arrayUserFolderPresetsTo = getDirContents(dirUserPresets.getFiles());
arrayUserFolderPresetsFrom = getDirContents(dirUserPresetsFrom.getFiles());
arrayUserFolderPresetsDiff = getMissingFiles(arrayUserFolderPresetsFrom,arrayUserFolderPresetsTo);
arrayUserFolderPresetsDiffDont = new Array();
userFolderPresetsDiffTotal = arrayUserFolderPresetsDiff.length;
// -----------------------------------------
// User Workspaces
// -----------------------------------------
arrayUserFolderWorkspacesTo = getDirContents(dirUserWorkspaces.getFiles());
arrayUserFolderWorkspacesFrom = getDirContents(dirUserWorkspacesFrom.getFiles());
arrayUserFolderWorkspacesDiff = getMissingFiles(arrayUserFolderWorkspacesFrom,arrayUserFolderWorkspacesTo);
arrayUserFolderWorkspacesDiffDont = new Array();
userFolderWorkspacesDiffTotal = arrayUserFolderWorkspacesDiff.length;
}
/****************************************
* migrateFiles
****************************************/
function migrateFiles(filesToMigrate, versionstr){
//quietly return if there is nothing to migrate
if(filesToMigrate.length == 0){
return;
}
var migrationRes = showProgress();
if(!migrationRes){
alert(msgCompleteError, titleFileMigration, true);
}
function showProgress(){
try{
// var winProgBar = new Window("palette", " File Migrations");
// winProgBar.progBarLabel = winProgBar.add("statictext", [20, 20, 320, 35], " Migrating files...");
// winProgBar.center();
// winProgBar.show();
for(var i=0; i