68 lines
2.4 KiB
JavaScript
68 lines
2.4 KiB
JavaScript
////////////////////////////////////////////////////////////////////////////
|
|
// ADOBE SYSTEMS INCORPORATED
|
|
// Copyright 2008-2017 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.
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Works around the lack of a permanently enabled "Show Items from Subfolders" option (aka flat view).
|
|
// The default behaviour is to turn off the option when changing folders. This extension enables the
|
|
// flat view when the app starts and then keeps it enabled when changing folders. You can disable this
|
|
// behaviour by disabling the "Always Show Items from Subfolders" option.
|
|
|
|
function AlwaysFlatViewSetting() {
|
|
this.requiredContext = "\tAdobe Bridge must be running.\n";
|
|
this.menuID = "alwaysFlatViewSetting";
|
|
}
|
|
|
|
AlwaysFlatViewSetting.prototype.run = function() {
|
|
if (!this.canRun()) return false;
|
|
|
|
var toggleFlatView = function(enable) {
|
|
var task = 'MenuElement.find("FlatView").checked = ' + (enable ? 'true' : 'false');
|
|
app.scheduleTask(task, 0, false);
|
|
}
|
|
|
|
var label = "Always Show Items from Subfolders";
|
|
var menuItem = new MenuElement( "command", label, "after FlatView");
|
|
menuItem.canBeChecked = true;
|
|
menuItem.checked = true;
|
|
menuItem.onSelect = function() {
|
|
menuItem.checked = !menuItem.checked;
|
|
toggleFlatView(menuItem.checked);
|
|
}
|
|
|
|
// Triggered when changing folders or selecting some menu option.
|
|
onSelectItem = function(event) {
|
|
if (event.object instanceof Document && event.type == "selectionsChanged") {
|
|
if (menuItem.checked) {
|
|
toggleFlatView(true);
|
|
}
|
|
return {handled:false}; // continue handling all other event handlers
|
|
}
|
|
}
|
|
app.eventHandlers.push({handler: onSelectItem});
|
|
|
|
return true;
|
|
}
|
|
|
|
AlwaysFlatViewSetting.prototype.canRun = function() {
|
|
if (BridgeTalk.appName == "bridge") {
|
|
if (MenuElement.find(this.menuID)) {
|
|
return false; // Item already exists.
|
|
}
|
|
return true;
|
|
}
|
|
$.writeln("ERROR:: Cannot run AlwaysFlatViewSetting");
|
|
$.writeln(this.requiredContext);
|
|
return false;
|
|
}
|
|
|
|
if (typeof(AlwaysFlatViewSetting_unitTest ) == "undefined") {
|
|
new AlwaysFlatViewSetting().run();
|
|
}
|