   JIdeTool
    Borland C++ 5.x Add-On
    Copyright (c) 2000-2001 by Jogy
    www.jogy.net


Description
 JIdeTool is collection of Add-On tools for Borland C++ 5.x
 The tools are:
 - project rebuilding
 - change target settings
 - export and import project nodes and subnodes
 - generate a text file list of all .cpp and .h files in the project
 - sort subnodes in alphabetical order (BC++ 5.02 only)
 - search and replace substring in subnode names (BC++ 5.02 only)
 - automatic creation of project output folders (intermediate and final)


Revision history
v 1.9
 - Added tool for automatic creation of project output folders.
   Added enabling and disabling of individual tools from the setup.

v 1.8
 - Added the Change all Targets Settings tool.

v 1.7
 - Redesigned the layout of the Project Rebuild dialog
   and made it's settings to be remembered.

v 1.6a
 - Fixed the tools so they can be used with BC++ 5.01. The last two tools
   use Add-On interfaces that are only available under Borland C++ 5.02,
   so they are not available under 5.01.

v 1.6
 - Added converting of AppExpert targets to normal ones when rebuilding a project.

v 1.5
 - Added Project Rebuild Dialog which allows to set or clear Target options like CodeGuard,
   Diagnostic Libs, etc.
 - Fixed the problem with the IDE reporting error in the .pdl file

v 1.4
 - Added tools to export and import all subnodes of a given node to allow transferring of
nodes between projects

v 1.3
 - Added tool to generate text file which lists all source files from the current project.

v 1.2
 - Added fuctionality to sort the subnodes of a given node. This is independent from the project rebuild.
Sort Nodes is added in the View submenu of the project context menu.

v 1.1
 - Renamed the DLL to JIDETOOL.DLL due to conflict with some Java add-ons.
 - Added the SETBCW util, which is run after instalation to set the SaveAsText and ReadAsText options in BCW5.INI.
 - When a Source Pool in the original project was not Excluded from it's parent, this setting was not transferred to the new project. 
   This is fixed now.
 - When a Target node has it's defines local override cleared in the original project, this was not transferred. This is fixed now.

v 1.0
 - Initial release of the tool.


Project Rebuilding
 Borland C++ 5.x .ide files have the tendency to grow very large and the
 IDE becomes very unstable when working with .ide files over 10MB in size.
 This problem can be solved by rebuilding the project from scratch.
 JIdeTool can help this process. It creates a text file which contains the
 node tree of the current project, closes the project, then creates a new
 project and restores the nodes tree structure.
 The drawback is that only some of the individual node options can be 
 transferred to the new project - Include, Library, Source, Intermediate
 and Final Directories, Defines, Build Attributes. All other options,
 mainly the compiler and linker settings are inaccessible to the Add-On
 interface. A partial solution is to keep these settings in Style Sheets.
 When the option Transfer Style Sheets is selected, the program
 puts the settings SaveAsText=1 and ReadAsText=1 in the file <WINDIR>\BCW5.INI,
 forcing the IDE to save the style sheets in a .pdl file, and to read them
 in the new project.
 Another limitation is that AppExpert targets are converted to non-AppExpert.
 The program warns about this.


 Usage: In the Tools menu there are two new entries:  Project Rebuild
 and Project Restore.
 Project Rebuild opens a dialog, which allows you to change some of the
 Target Expert Libraries settings when rebuilding the project -
 Turn on/off CodeGuard, Multithreading, Diagnostic libraries and
 Static/Dynamic linking. For each of these options: "Leave as is" means that
 the option will be left as is in the current project. "Turn on" means that
 the option will be turned on, and "Turn off" means that the option will be
 turned off. This is useful for example to turn off CodeGuard everywhere in
 a large project with a lot of targets.
 Another set of option is "Transfer None/Style Sheets/Style Sheets and Tools".
 Style Sheets and Tools can be transferred from one project to another by the
 use of .pdl files. The problem is that the .pdl file generated by BC++ 5.02 ide
 have two problems: first, there are entries "{  ToolFlag =  }", which lead to
 error when reading the .pdl file and second - no path is  given for the Implib
 tool, and it cannot be used. When rebuilding, the .pdl file will be corrected
 by JIdeTool, but there may still be problems with some tools.
 Another option is "Force Targets without any children to be Nodes". In some case
 the Project Rebuild can set incorrectly some nodes to be targets. I have exeprienced
 this with import .lib nodes with no children. If you have the same problem, try to
 check on this option.
 The last option is "Clear local overrides". When checked, the local overrides for
 Include, Library, Source, Intermediate, Final Directories, and Defines will not
 be transferred.

 When rebuilding the project, the old one will be saved in a file with the extension .id0.
 Project Restore will restore the old project from the .id0 file and delete the rebuilt one.


Change all Targets Settings
 This tool is useful for quickly changing the settings of all Targets in the project.
 The settings that can be changed are CodeGuard, Multithreading, Diagnostic libraries,
 Static/Dynamic linking and the Style Sheet.

 Usage: In the Tools menu there is the entry Change all Targets Settings.
 It opens a dialog, which is used to specify which settings to be changed.
 Note that Style Sheets are referenced by their number, where 0 clears
 the Style Sheet for the target.
 It is not advisable to switch to another application during
 the change process, since this will cancel it, and probably
 send some keystrokes to the activated application.



Export and Import Project Nodes and Subnodes
 This tool is useful for transferring a branch of nodes from
 one project to another. It uses the same approach as the
 Project Rebuild and thus has the same limitations.

 Usage: In the Tools menu there are two new entries:  Export Branch
 and Import Branch.
 Export Branch open a File Save dialog. Select the location and name
 for the exported file, and a .idx file will be created, which contains
 the selected nodes and all their subnodes.
 Import Branch opens a File Open dialog. Select the location and name
 of the exported .idx file, and the nodes within it will be placed as
 children of the currently selected node.


Generate a Text File List of all .cpp and .h Files in the Project
 This tool is useful for creating a list of the project source files,
 which then can be imported in a source documenting tool like Doc-o-matic.

 Usage: In the Tool menu is added the entry Generate Text File. It will
 create a text file with the name of the project and extension .lst.
 The file will contain a list of the soource files one per line.


Sort Subnodes in Alphabetical Order
 This tool sorts the subnodes of a given node in alphabetical order
 based on the node type and node name. It works only with BC++ 5.02!

 Usage: In the View submenu of the project context menu is added the
 entry Sort Nodes.


Search and Replace Substring in Subnode Names
 This tool allows search and replace in the subnodes of a given node.
 It works only with BC++ 5.02!

 Usage: In the View submenu of the project context menu is added the
 entry Search and Replace Node Names.  It opens a dialog, which allows
 the user to enter the strings to be searched and replaced.

Automatic creation of project output folders (intermediate and final)
 This tool intercepts the Project Make and Project Build commands,
 scans all project nodes and creates their intermediate and final
 output folder if neccessary.

 Usage: There is no user interface to this tool, it is automaticaly invoked.
 Note that it will try to create folders for all targets and nodes in the
 current project, regardless of which one is being build.

