//////////////////////////////////////////////////////////////////////////// // 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... help // 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