|
/* |
|
------------------------------------------------------------------------------- |
|
Name: TB_Delete_Caption_Text.js |
|
|
|
Description: This script clears caption text from multiple captions across multiple panels. |
|
|
|
Usage: |
|
|
|
Author: Karl Olson & Corey Barnes |
|
|
|
Created: 2018/8/26 |
|
|
|
Modified: 2018/8/30 |
|
|
|
Version: v.1.1 |
|
|
|
Notes: Should be functionally the same as version 1.0, just with better structure and naming. |
|
|
|
------------------------------------------------------------------------------- |
|
*/ |
|
|
|
function DeleteCaptions() { |
|
MessageLog.trace("Delete Captions--------- "); |
|
|
|
var selectionManager = new SelectionManager; |
|
var captionManager = new CaptionManager; |
|
var currentPanelSelection = selectionManager.getPanelSelection(); |
|
if (currentPanelSelection.length <= 0) return; |
|
|
|
// Create a list of all caption box names. |
|
var captionNames = new Array(0); |
|
var numberOfCaptions = captionManager.numberOfPanelCaptions(); |
|
|
|
for (var j = 0; j < numberOfCaptions; ++j) { |
|
var captionName = captionManager.nameOfPanelCaption(j); |
|
if (captionNames.indexOf(captionName) == -1) |
|
captionNames.push(captionName); |
|
} |
|
|
|
// Create a dialog displaying all caption names as checkboxes. |
|
captionSelectionDialog = new Dialog; |
|
captionSelectionDialog.title = "Delete Captions Named..."; |
|
|
|
var group = new GroupBox; |
|
group.title = "Caption Names"; |
|
var checkBoxesArray = new Array(0); |
|
|
|
for (var i = 0; i < captionNames.length; ++i) { |
|
var aCheckBox = new CheckBox; |
|
aCheckBox.text = captionNames[i]; |
|
checkBoxesArray.push(aCheckBox); |
|
group.add(aCheckBox); |
|
} |
|
|
|
captionSelectionDialog.add(group); |
|
|
|
var rc = captionSelectionDialog.exec(); |
|
|
|
// If dialog cancelled, return |
|
if (!rc) { |
|
return; |
|
} |
|
|
|
// Retrieve the selected caption names group. |
|
|
|
var patterns = new Array(0); |
|
|
|
for (var i = 0; i < checkBoxesArray.length; ++i) { |
|
if (checkBoxesArray[i].checked == true) { |
|
patterns.push(checkBoxesArray[i].text); |
|
} |
|
} |
|
|
|
// Delete the caption text. |
|
scene.beginUndoRedoAccum("Delete Captions"); |
|
|
|
for (var i = 0; i < currentPanelSelection.length; i++) { |
|
for (var j = 0; j < patterns.length; j++) { |
|
captionManager.setPanelCaptionText(patterns[j], currentPanelSelection[i], ""); |
|
} |
|
} |
|
scene.endUndoRedoAccum(); |
|
|
|
// Prepare report. |
|
var finalMessage = "Captions cleared. :\n"; |
|
MessageBox.information(finalMessage); |
|
} |
Gonna post a new revision with hopefully easier to understand names and structure after this note.