Answered
That's the bit that is easier said than done...
By @Stephen Marsh
Yes it should be, anyway, thanks for the help
// 2025, use it at your own risk;
if (app.documents.length > 0) {
var theLayers = collectSelectedLayersWithoutColorAndLock ();
for (var m = 0; m < theLayers.length; m++) {
deleteLayerByID(theLayers[m][1], false)
}
};
////// collect bounds of selected layers //////
function collectSelectedLayersWithoutColorAndLock () {
// set to pixels;
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
// get selected layers;
var selectedLayers = new Array;
var ref = new ActionReference();
ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
var desc = executeActionGet(ref);
if (desc.getBoolean(stringIDToTypeID("hasBackgroundLayer")) == true) {var theAdd =0}
else {var theAdd = 1};
if( desc.hasKey( stringIDToTypeID( 'targetLayers' ) ) ){
desc = desc.getList( stringIDToTypeID( 'targetLayers' ));
var c = desc.count;
var selectedLayers = new Array();
// run through selected layers;
for(var i=0;i<c;i++){
var theIndex = desc.getReference( i ).getIndex()+theAdd;
// get id for solid color layers;
try {
var ref = new ActionReference();
ref.putIndex( charIDToTypeID("Lyr "), theIndex );
var layerDesc = executeActionGet(ref);
var checkColor = typeIDToStringID(layerDesc.getEnumerationValue(stringIDToTypeID("color")));
var checkLock = layerDesc.getObjectValue(stringIDToTypeID("layerLocking"));
var lockAll = checkLock.getBoolean(stringIDToTypeID("protectAll"));
var theName = layerDesc.getString(stringIDToTypeID('name'));
var theIdentifier = layerDesc.getInteger(stringIDToTypeID ("layerID"));
if (checkColor == "none" && lockAll == false) {selectedLayers.push([theName, theIdentifier, ])};
} catch (e) {};
};
// if only one:
}else{
var ref = new ActionReference();
ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
var layerDesc = executeActionGet(ref);
try {
var theName = layerDesc.getString(stringIDToTypeID('name'));
var checkColor = typeIDToStringID(layerDesc.getEnumerationValue(stringIDToTypeID("color")));
var checkLock = layerDesc.getObjectValue(stringIDToTypeID("layerLocking"));
var lockAll = checkLock.getBoolean(stringIDToTypeID("protectAll"));
var theIdentifier = layerDesc.getInteger(stringIDToTypeID ("layerID"));
if (checkColor == "none" && lockAll == false) {selectedLayers = [[theName, theIdentifier, ]]}
} catch (e) {};
};
// reset;
app.preferences.rulerUnits = originalRulerUnits;
return selectedLayers;
};
////// by paul riggott //////
function deleteLayerByID(ID) {
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putIdentifier(charIDToTypeID('Lyr '), ID);
desc.putReference( charIDToTypeID('null'), ref );
executeAction( charIDToTypeID('Dlt '), desc, DialogModes.NO );
};Sign up
Already have an account? Login
To post, reply, or follow discussions, please sign in with your Adobe ID.
Sign inSign in to Adobe Community
To post, reply, or follow discussions, please sign in with your Adobe ID.
Sign inEnter your E-mail address. We'll send you an e-mail with instructions to reset your password.
