Skip to content
This repository has been archived by the owner on Mar 3, 2023. It is now read-only.

Width and Height #1

Closed
GU5TAF opened this issue Jan 27, 2014 · 1 comment
Closed

Width and Height #1

GU5TAF opened this issue Jan 27, 2014 · 1 comment

Comments

@GU5TAF
Copy link

GU5TAF commented Jan 27, 2014

Added the ability to rename using %w and %h for width and height.

// (ctrl cmd r)
// Rename layer(s) like a boss

// The Brain
function rename(layerName, currIdx, width, height) {
    var per     = basename.search("%"),
    interSize   = 0
    isN         = true;

    // Interator
    if (per != -1 && per != basename.length && (basename[per + 1] == "N" || basename[per + 1] == "n")) {
        isN = basename[per + 1] == "N";

        for (var i = per + 1; i < basename.length; ++i) {
            if (isN) {
                if (basename[i] != "N") break
            } else if (basename[i] != "n") break;

            ++interSize;
        }

    }

    var inter       = isN ? selection.length() + 1 : 0,
    newLayerName    = basename;

    if (interSize > 0) {
        var interStr = (isN ? currIdx + 1 : selection.length() - currIdx).toString(10);

        while (interStr.length < interSize)
            interStr = "0" + interStr;

        newLayerName = newLayerName.substr(0, per) + interStr + newLayerName.substr(per + 1 + interSize);
    }

        // Add to current name
        if (newLayerName[0] == "+")
            newLayerName = layerName + basename.substring(1);

        // Wild Card Selector
        var wildCard = newLayerName.search("\\*");
        if (wildCard != -1)
            newLayerName = newLayerName.substr(0, wildCard) + layerName + newLayerName.substr(wildCard + 1);

        newLayerName = newLayerName.replace(new RegExp("%w", "ig"), width);
        newLayerName = newLayerName.replace(new RegExp("%h", "ig"), height);

        // Return new name
        return newLayerName;
    }

if (selection.length() > 0)
{
    // Show dialog
    var basename = [doc askForUserInput:'Rename Layer(s): eg. Item %N, Item %W, Item %H' initialValue:'Layer'].toString();

    // Run on all selections
    for (var i=0; i<selection.length(); i++) {
        var layer = selection[i]
          , frame = [layer frame]
          , width = [frame width]
          , height = [frame height]
          ;
        var name = rename([layer name], i, width, height);
        [layer setName:name];
    }
}
else
{
    // No layer selected
    [doc showMessage: "Rename it: You need to select at least one layer"];
}


// Run
@rodi01
Copy link
Owner

rodi01 commented Jan 27, 2014

Added it in. Great job on this @GU5TAF

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants