JIdeTool Borland C++ 5.x Add-On Copyright (c) 2000-2004 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.91 - Fixed a memory leak (thanks to Sebastian Ledesma) 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 (now done by SETUP program). - 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 \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.