34 Replies Latest reply: Nov 24, 2014 8:24 AM by SamLaundon RSS

    Path to Photoshop Plugins/Panels Assets Folder

    SamLaundon Community Member

      I am one of those who is scrambling to recreate a panel that was made in Configurator to HTML5 so please bear with me.

       

      For a javascript I am trying to find the path to a file in the "assets" folder within my panel for both Mac & Windows. I want the path to open a specific file. Here is the base code:

       

      function selLss1(){var idOpn = charIDToTypeID( "Opn " );

          var desc176 = new ActionDescriptor();

          var idnull = charIDToTypeID( "null" );

          desc176.putPath( idnull, new File( "/assets/file.psd" ) );

      executeAction( idOpn, desc176, DialogModes.NO );

      }

       

      "/assets/file.psd" is the file and I need to know how to tell Photoshop how to find and open this file in Mac's and Windows.

       

      Thanks in Advance - Sam

        • 1. Re: Path to Photoshop Plugins/Panels Assets Folder
          Tom Ruark Adobe Employee

          In your panel code get the path to your extension like this:

                  gPanelPath = gCSInterface.getSystemPath(SystemPath.EXTENSION);

                  gCSInterface.evalScript("WhereAmI('" + gPanelPath + "');");

           

          Then pick it up in your Photoshop JavaScript like this:

          var myPanelPath = "";

           

          function WhereAmI(inLocation) {

               myPanelPath = inLocation;

          }

           

          And then change your File line to this:

              desc176.putPath( idnull, new File( myPanelPath + "/assets/file.psd" ) );

           

          The single quote and double quote I use above may not copy paste well so double check that if you get errors when trying to run. I didn't actually run the code above so hopefully I don't have a syntax error.

          • 2. Re: Path to Photoshop Plugins/Panels Assets Folder
            SamLaundon Community Member

            Thanks Tom - you may not remember, but last week you helped me solve a problem that helped me create a working panel. I am very new to javascript so bear with me.

             

            In your panel code get the path to your extension like this:

                    gPanelPath = gCSInterface.getSystemPath(SystemPath.EXTENSION);

                    gCSInterface.evalScript("WhereAmI('" + gPanelPath + "');");

            By panel code, where do you mean to put the above. I am building on the "Hello World" extension for Photoshop and have a main.js file and a hotscripts.jsx file. Is the "WhereAmI(" the extension name?

             

            Then pick it up in your Photoshop JavaScript like this:

            var myPanelPath = "";

            I am assuming that this would go in the main.js file. Yes?

             

            function WhereAmI(inLocation) {

                 myPanelPath = inLocation;

            }

            This too would go in the main.js file. Yes?

             

            Thanks again - Sam

            • 3. Re: Path to Photoshop Plugins/Panels Assets Folder
              Tom Ruark Adobe Employee

              Sorry, it is confusing. I usually try to say "Photoshop JavaScript"  and "HTML JavaScript" the "HTML JavaScript" is the panel code. main.js in your project. That would be the gCSInterface code above.

               

              You should have a jsx file as well. That is the "Photoshop JavaScript" where the other two blocks of code would go.

               

              If you are still having trouble...send me a private message and then we can post our results back here once we have it squared away.

              • 4. Re: Path to Photoshop Plugins/Panels Assets Folder
                SamLaundon Community Member

                Yeah for sure it is confusing. I post follow-up question here because it may help others.

                This is what I have for my main.js file.

                (function () {

                    'use strict';

                 

                    var csInterface = new CSInterface();  

                    // Reloads extension panel

                    function reloadPanel() {

                        location.reload();

                    }

                 

                   function init() {

                               

                        themeManager.init();

                       

                        $("#btn_reload").click(reloadPanel);

                 

                /*The file in the Panels asset folder*/

                         $("#btn_file-1").click(function () {

                            csInterface.evalScript('selFile1()');

                        });     

                    }

                      

                    init();

                 

                }());

                 

                This is what is in my hotscript.jsx folder:

                /*The file in the Panels asset folder*/

                function selFile1(){var idOpn = charIDToTypeID( "Opn " );

                    var desc176 = new ActionDescriptor();

                    var idnull = charIDToTypeID( "null" );

                    desc176.putPath( idnull, new File( "/ExtensionName/assets/file-1.psd" ) );

                executeAction( idOpn, desc176, DialogModes.NO );

                }

                 

                Thanks again - Sam

                • 5. Re: Path to Photoshop Plugins/Panels Assets Folder
                  Tom Ruark Adobe Employee

                  Replace your csInterface.evalScript('selFile1()'); with these two lines:

                   

                  var myPanelPath = csInterface.getSystemPath(SystemPath.EXTENSION);

                  csInterface.evalScript("selFile1('" + myPanelPath + "');"); // this line is ... doubleQoute selFile1 singleQoute doubleQuote + myPanelPath + doubleQuote singleQuote );doubleQoute ); << i hope that makes sense

                   

                  Then change your hostscript.jsx routine to look like this:

                  function selFile1(inPanelLocation)

                  {

                     var idOpn = charIDToTypeID( "Opn " );

                      var desc176 = new ActionDescriptor();

                      var idnull = charIDToTypeID( "null" );

                      desc176.putPath( idnull, new File( inPanelLocation + "/ExtensionName/assets/file-1.psd" ) );

                  executeAction( idOpn, desc176, DialogModes.NO );

                  }

                  • 6. Re: Path to Photoshop Plugins/Panels Assets Folder
                    SamLaundon Community Member

                    Thanks Tom - I will get back to you when I work on this tomorrow. Got to go.

                     

                    Thanks again - Sam

                    • 7. Re: Path to Photoshop Plugins/Panels Assets Folder
                      SamLaundon Community Member

                      Hi Tom - tried out your solution and it is not working yet. Here is what I did:

                      In main.js file:

                       

                      /*LSS All*/

                               $("#btn_lss-1").click(function () {

                                  var myPanelPath = csInterface.getSystemPath(SystemPath.EXTENSION);

                        csInterface.evalScript("selLssall('" + myPanelPath + "');");

                              });

                       

                      In the hotscript.jsx file:

                      /*LSS 1*/

                      function selLssall(inPanelLocation)

                      {

                         var idOpn = charIDToTypeID( "Opn " );

                          var desc176 = new ActionDescriptor();

                          var idnull = charIDToTypeID( "null" );

                          desc176.putPath( idnull, new File( inPanelLocation + "/Lorin Smile Styles/lss/lss-1.psd" ) );

                      executeAction( idOpn, desc176, DialogModes.NO );

                      }

                       

                      Lssall - is the file reference

                      Lorin Smile Styles - is the extension name. I tried changing that to what the manifest.xml file said (com.example.lss) instead of Lorin Smile Styles, but that did not work.

                      las - is the assists folder

                      lss-1.psd is the file.

                       

                      I ran the script through the extension panel and the hostscript.jsx  through Extendscript, but no results from either. No file open.

                       

                      I am sure it is probably a syntax issue on my part.

                       

                      I am on a Mac if that makes any difference.

                       

                      Thanks again for your help - Sam

                      • 8. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                        Tom Ruark Adobe Employee

                        I think you should remove the Lorin Smile Styles/ from your full path. It is already included. What helps me is old school debugging when trying to figure things out. Just stick in some alert('what is going on: ' + inPanelLocation); in strategic locations. The alert works both in HTML JS and Photoshop JSX. Don't put to many of them in as you might lock up Photoshop and sometimes the alerts go behind the application which is annoying. I put one in onResize and that caused me to force quit Photoshop! There is debugging available with the Chrome debugger but I rarely use it. Just a well placed alert will usually be enough to move me along in my discovery.

                         

                        I've attached a working example with parts of your code in it. I didn't use jQuery. Like I said, I like old school and have yet to discover what jQuery brings to the table in simple examples. My colleague disagrees with me!

                        • 9. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                          SamLaundon Community Member

                          Hi Tom - I like you solution, much simpler and the best part is it WORKS! I have to do a little recoding to use your solution, but that is all.

                           

                          One other question if you do not mind. I have video tutorials online for my clients and I want to create a link in the extension panel that takes them to their default browser. I have tried to use the code below, but it has not worked. Any ideas.

                           

                          index.html

                          <head>

                          <a href="url">Video - SmilePix E-Z Tutorials</a>

                             <script>

                          CSInterface.prototype.openURLInDefaultBrowser = function(url)

                          {

                              return cep.util.openURLInDefaultBrowser("http://smilepix.com/sezi/");

                          };

                             </script>

                          </head>

                           

                          <body>

                          <a href="url">Video - SmilePix E-Z Tutorials</a>

                          </body>

                           

                          Thanks Tom you are a Prince. Your help has allowed me to progress in the translation of my Configurator panels to HTML5 panels. As you probably know, there are many out there trying to do the same thing since Adobe came out last Wednesday with Photoshop CC 2014.

                           

                          Sam

                          • 10. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                            Tom Ruark Adobe Employee

                            Here is what I do.

                            In your script tag or .js file:

                            function ShowMovie() {

                                gCSInterface.openURLInDefaultBrowser("http://av.adobe.com/russellbrown/papertextureprohtml_help.mov");

                                LoseFocus();

                            }

                            In your HTML:

                            <a id="btnVideo" data-locale="keyWatchVideo" target="_blank" class="button" onclick="ShowMovie()" >Watch a video tutorial</a>

                            • 11. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                              SamLaundon Community Member

                              Thanks Tom - it is not working for me. Probably a coding issue.

                               

                              Here is what I have:

                               

                              In index.html file:

                              <a id="btn_link" data-locale="keyWatchVideo" target="_blank" class="button" onclick="ShowMovie()" >SmilePix E-Z Tutorial Videos</a>

                               

                              In main.js file:

                              /*Link*/

                                        $("#btn_link").click(function () {

                                          csInterface.evalScript('selLink()');

                                      });

                               

                              In hotscript.jsx fie:

                              /*Links*/

                              function selLink() {

                                 gCSInterface.openURLInDefaultBrowser("http://smilepix.com");

                                  LoseFocus();

                              }

                              One again thanks - Sam

                              • 12. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                                Tom Ruark Adobe Employee

                                You want the gCSInterface.openURLInDefaultBrowser("http://smilepix.com"); in the main.js file.

                                 

                                      $("#btn_link").click(function () {

                                            csInterface.openURLInDefaultBrowser("http://smilepix.com");

                                        });

                                • 13. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                                  SamLaundon Community Member

                                  Perfect Tom - works like a charm.

                                   

                                  One last question and I hope not to bother you anymore.

                                   

                                  This is going back to the last script you helped me with in opening a file from the extension panels folder (everything is working perfectly). I want to add one last item to the script that automatically closes the file from the extension folder without saving. These are template files that I do not want the user changing.

                                   

                                  The steps of the script are:

                                  1. Open the file from the extensions folder

                                  2. Duplicate the layer to another open file

                                  3. Close the file - This is where I want the file closed without saving in case the user duplicates the layer in to the same file that came from the extension folder.

                                   

                                  I have this code, but do not know how or where to put it:

                                  app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);

                                   

                                  /* LSS 1  */

                                   

                                  // Open File

                                  function selLssall(inPanelLocation)

                                  {

                                    var idOpn = charIDToTypeID( "Opn " );

                                      var desc176 = new ActionDescriptor();

                                      var idnull = charIDToTypeID( "null" );

                                      desc176.putPath( idnull, new File( inPanelLocation + "/lss/lss-1.psd" ) );

                                    executeAction( idOpn, desc176, DialogModes.NO );

                                  // Duplicate Layer and select the file to insert the layer into

                                      ErrStrs = {};

                                  ErrStrs.USER_CANCELLED=localize("$$$/ScriptingSupport/Error/UserCancelled=User cancelled the operation");

                                  try {var idDplc = charIDToTypeID( 'Dplc' );    

                                      var desc1020 = new ActionDescriptor();    

                                      var idnull = charIDToTypeID( 'null' );        

                                      var ref834 = new ActionReference();        

                                      var idLyrsp = charIDToTypeID( 'Lyr ' );        

                                      var idOrdn = charIDToTypeID( 'Ordn' );        

                                      var idTrgt = charIDToTypeID( 'Trgt' );        

                                      ref834.putEnumerated( idLyrsp, idOrdn, idTrgt );    

                                      desc1020.putReference( idnull, ref834 );

                                      executeAction( idDplc, desc1020, DialogModes.ALL );

                                      } catch(e){if (e.toString().indexOf(ErrStrs.USER_CANCELLED)!=-1) {;

                                              } else{alert(localize("$$$/ScriptingSupport/Error/CommandNotAvailable=The command is currently not available"));}}

                                  // Close File - this is where I want the file close with out saving it

                                      ErrStrs = {};

                                  ErrStrs.USER_CANCELLED=localize("$$$/ScriptingSupport/Error/UserCancelled=User cancelled the operation");

                                  try {var idClssp = charIDToTypeID( 'Cls ' );

                                      executeAction( idClssp, undefined, DialogModes.ALL );

                                      } catch(e){if (e.toString().indexOf(ErrStrs.USER_CANCELLED)!=-1) {;

                                              } else{alert(localize("$$$/ScriptingSupport/Error/CommandNotAvailable=The command is currently not available"));}}

                                  }

                                   

                                  One again thanks - Sam

                                  • 14. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                                    Tom Ruark Adobe Employee

                                    In the // Close File selection you have DialogModes.ALL, asking the user to save the file if modified, in the case they duplicate to your template file.

                                     

                                    Change it from this:

                                      executeAction( idClssp, undefined, DialogModes.ALL );

                                    to this:

                                        executeAction( idClssp, undefined, DialogModes.NO );

                                    • 15. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                                      SamLaundon Community Member

                                      Tom - when I use: executeAction( idClssp, undefined, DialogModes.NO );

                                       

                                      I get a Photoshop dialogue that says "The command is currently not available".

                                       

                                      Sam

                                      • 16. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                                        Tom Ruark Adobe Employee

                                        Do you have any documents open when you get to that line of code?

                                        • 17. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                                          SamLaundon Community Member

                                          Yes, I have one file that is open. It is a file that the file that the extension file layer is suppose to be placed in, but I want to have the close without saving incase the user duplicates the layer by mistake in the extension file.

                                          • 18. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                                            SamLaundon Community Member

                                            Hi Tom - I tried the executeAction( idClssp, undefined, DialogModes.NO ); with no other document and I still get "The command is currently not available".

                                             

                                            Any ideas - Sam

                                            • 19. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                                              Tom Ruark Adobe Employee

                                              No. That doesn't make sense. Are you sure it is the close command that is giving that error? Change your other strings so you can tell which "command is currently not available" is firing.

                                              • 20. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                                                SamLaundon Community Member

                                                Hi Tom

                                                 

                                                This is where the close script begins in the script:

                                                // Close   

                                                    ErrStrs = {};

                                                ErrStrs.USER_CANCELLED=localize("$$$/ScriptingSupport/Error/UserCancelled=User cancelled the operation");

                                                try {var idClssp = charIDToTypeID( 'Cls ' );

                                                    executeAction( idClssp, undefined, DialogModes.ALL );

                                                    } catch(e){if (e.toString().indexOf(ErrStrs.USER_CANCELLED)!=-1) {;

                                                            } else{alert(localize("$$$/ScriptingSupport/Error/CommandNotAvailable=The command is currently not available"));}}

                                                }

                                                 

                                                I don't know how to do what you suggested. More importantly, this is no essential to my project. If the user saves to the same file that has been opened it is no big deal. The scrip on that PSD file will still work with a duplicate layer in it.

                                                 

                                                Thanks for trying to figure it out - Sam

                                                • 21. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                  SamLaundon Community Member

                                                  Hi Tom - hopefully one final question.

                                                   

                                                  I am trying to take the open in default browser solution you gave me and applying to another panel. I am working on the panel you gave me the script for opening a file from the extension folder.

                                                   

                                                  Index.html:

                                                  <a id="btn_link" data-locale="keyWatchVideo" target="_blank" class="button" onClick="ShowMovie()" >SmilePix E-Z Tutorial Videos</a>

                                                   

                                                  This is the beginning of the script in the main.js:

                                                  (function () {

                                                      'use strict';

                                                      var csInterface = new CSInterface();

                                                      function init() {               

                                                          themeManager.init();  

                                                      }      

                                                      init();

                                                  }());

                                                   

                                                  // LSS Opens PSD file

                                                  try {

                                                  var csInterface = new CSInterface();

                                                  var btnSample = window.document.getElementById( 'btn_lss-1-all' );

                                                  btnSample.onclick = function() {

                                                    var myPanelPath = csInterface.getSystemPath(SystemPath.EXTENSION);

                                                    csInterface.evalScript("selLss1all('" + myPanelPath + "');");

                                                  };

                                                  } catch( e ) {

                                                    alert( e );

                                                  }

                                                   

                                                  How would I use the above to go to a URL in the users default browser (http:smilepix.com)?

                                                   

                                                  Thanks and have a great weekend - Sam

                                                  • 22. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                    lesavage Adobe Employee

                                                    Hi Sam,

                                                    In your JS add the following line:

                                                    csInterface.openURLInDefaultBrowser("http://smilepix.com");

                                                    Kind regards,

                                                    Lea

                                                    • 23. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                      SamLaundon Community Member

                                                      Hi Tom - I figured it out. Had the wrong CSInterface.js in the lib folder.

                                                       

                                                      Again thanks so much for all your help. I would have never been able to convert my Configurator panes to HTML5 without your help.

                                                       

                                                      Sam

                                                      • 24. Re: Re: Path to Photoshop Plugins/Panels Assets Folder
                                                        SamLaundon Community Member

                                                        Well I thought I was done, but in testing my panels I have discovered that shortcuts don't work after i run a script. The example I have below is to run "Auto Tone" on an image. If I try use the shortcut key command+Z nothing happens. If I press the "undo" script button on the panel, the previous command is undone.

                                                         

                                                        Is there an "exit script" that need to place in each command so the script is ended and shortcut keys work? If I select another tool from the tools pallet and then try the undo shortcut, it works.

                                                         

                                                        Here is an example code:

                                                        /*Auto Tone*/

                                                        function selAutotone(){ErrStrs = {}; ErrStrs.USER_CANCELLED=localize("$$$/ScriptingSupport/Error/UserCancelled=User cancelled the operation");

                                                        try {var idLvls = charIDToTypeID( 'Lvls' );    

                                                            var desc853 = new ActionDescriptor();    

                                                            var idAuto = charIDToTypeID( 'Auto' );    

                                                            desc853.putBoolean( idAuto, true ); executeAction( idLvls, desc853, DialogModes.ALL );

                                                            } catch(e){if (e.toString().indexOf(ErrStrs.USER_CANCELLED)!=-1) {;

                                                                    } else{alert(localize("$$$/ScriptingSupport/Error/CommandNotAvailable=The command is currently not available"));}}

                                                        }

                                                         

                                                        Thank you - Sam

                                                        • 25. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                          Tom Ruark Adobe Employee

                                                          Run this code to move the focus from your panel to Photoshop. This code goes in your panel code (usually a js file) and not Photoshop code (usually a jsx file). Use your csInterface object as well. Your version might not be gCSInterface. Find the code that calls selAutotone in your js file and add a LoseFocus() after it. Including the text below.

                                                           

                                                          ///////////////////////////////////////////////////////////////////////////////

                                                          // Function: LoseFocus

                                                          // Usage: Return keyboard focus back to Photoshop so Ctrl-N and others work

                                                          // Input: <nothing>

                                                          // Return: <nothing>

                                                          ///////////////////////////////////////////////////////////////////////////////

                                                          function LoseFocus() {

                                                              var csEvent = new CSEvent("com.adobe.PhotoshopLoseFocus", "APPLICATION");

                                                              csEvent.extensionId = gExtensionId;

                                                              gCSInterface.dispatchEvent(csEvent);

                                                          }

                                                          • 26. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                            SamLaundon Community Member

                                                            Hi Tom - thanks for getting back to me on this. I have a number of .js files. Would I add the code you gave me to one of them?

                                                            .JS Files:

                                                            CSInterface.js

                                                            jquery-2.0.2.min.js

                                                            jquery-ui.js

                                                            themeManager.js

                                                            main.js

                                                             

                                                            Thanks - Sam

                                                            • 27. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                              Tom Ruark Adobe Employee

                                                              Probably main.js. Is that where you call selAutotone?

                                                              • 28. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                                SamLaundon Community Member

                                                                I tried it in the main.js, but it did not work. Also tried it in the Photoshop.jsx file with no effect.

                                                                 

                                                                In the main.js file is this:

                                                                /*Auto Tone*/

                                                                          $("#btn_autotone").click(function () {

                                                                            csInterface.evalScript('selAutotone()');

                                                                        });

                                                                 

                                                                in the Photoshop.jsx file is this:

                                                                /*Auto Tone*/

                                                                function selAutotone(){ErrStrs = {};

                                                                ErrStrs.USER_CANCELLED=localize("$$$/ScriptingSupport/Error/UserCancelled=User cancelled the operation");

                                                                try {var idLvls = charIDToTypeID( 'Lvls' );    

                                                                    var desc853 = new ActionDescriptor();    

                                                                    var idAuto = charIDToTypeID( 'Auto' );    

                                                                    desc853.putBoolean( idAuto, true ); executeAction( idLvls, desc853, DialogModes.ALL );

                                                                    } catch(e){if (e.toString().indexOf(ErrStrs.USER_CANCELLED)!=-1) {;

                                                                            } else{alert(localize("$$$/ScriptingSupport/Error/CommandNotAvailable=The command is currently not available"));}}

                                                                }

                                                                • 29. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                                  Tom Ruark Adobe Employee

                                                                  Try replacing this line:

                                                                   

                                                                  csInterface.evalScript('selAutotone()');

                                                                   

                                                                  With these lines (make sure you have a gExtensionId variable defined with the id of your extension) :

                                                                   

                                                                  csInterface.evalScript('selAutotone()');

                                                                  var csEvent = new CSEvent("com.adobe.PhotoshopLoseFocus", "APPLICATION");

                                                                  csEvent.extensionId = gExtensionId;

                                                                  csInterface.dispatchEvent(csEvent);

                                                                  • 30. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                                    SamLaundon Community Member

                                                                    Hi Tom - sorry for my ignorance, but I do not understand:

                                                                     

                                                                    "make sure you have a gExtensionId variable defined with the id of your extension"

                                                                     

                                                                    How do I define the id?

                                                                    • 31. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                                      Tom Ruark Adobe Employee

                                                                      In your manifest.xml you should have a line like this:

                                                                      <Extension Id="com.adobe.emailer.html">

                                                                       

                                                                      So for my panel I would have the following line:

                                                                       

                                                                      csEvent.extensionId = "com.adobe.emailer.html";

                                                                       

                                                                      Find your id and edit accordingly.

                                                                      • 32. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                                        SamLaundon Community Member

                                                                        Like this?

                                                                         

                                                                        <ExtensionList>

                                                                        <Extension Id="com.smilepix.sezi" Version="1.1.0" />

                                                                        <csEvent.extensionId = "com.smilepix.sezi"; />

                                                                        </ExtensionList>

                                                                        • 33. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                                          SamLaundon Community Member

                                                                          Hi Tom - I hope you are around to help me with my last question. Just need to fix this issue and my panels are ready to launch.

                                                                           

                                                                          What is strange about this is that the undo shortcut (com or con Z) works on every other button such as Levels, Curves, ect. It just does not work on Auto Tone, Auto Contrast and Auto Color.

                                                                           

                                                                          Sam

                                                                          • 34. Re: Path to Photoshop Plugins/Panels Assets Folder
                                                                            SamLaundon Community Member

                                                                            Hi Tom - I hope you are still monitoring this thread:

                                                                             

                                                                            My Two plugins are loading slower in Photoshop CC 15.2.1 on a Mac

                                                                            Since updating to the latest version, two plugins I created for Photoshop CC are loading very slow. At times I need to click in the panel to make it load. Prior to the update the plugins loaded fine and the still load quickly in Photoshop CC ver 14.2.1.

                                                                             

                                                                            This slow loading is on a Mac. The plugins still load fine on Windows 7.

                                                                             

                                                                            Thanks - Sam