Convert files to unix format. Convert C++ header names to C header names.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/3/head
Michele Calgaro 2 years ago
parent a0148cf62f
commit d017bd3725
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -1,298 +1,298 @@
2012-01-01 Version 1.2.0 2012-01-01 Version 1.2.0
[add] The Linux version has a menu entry in the application development menu now. [add] The Linux version has a menu entry in the application development menu now.
[add] The Linux version has a mime type association to some code files now, so that UiGUI is available as "open with". [add] The Linux version has a mime type association to some code files now, so that UiGUI is available as "open with".
[add] Added support for the Visual Basic beautifier VBSBeautifier. [add] Added support for the Visual Basic beautifier VBSBeautifier.
[add] Added support for the SQL beautifier Pl/Sql tidy. [add] Added support for the SQL beautifier Pl/Sql tidy.
[add] Updated the Artistic Style configuration to support Artistic Style version 2.02.1. [add] Updated the Artistic Style configuration to support Artistic Style version 2.02.1.
[add] Updated the Uncrustify configuration to support Uncrustify version 0.59. [add] Updated the Uncrustify configuration to support Uncrustify version 0.59.
[add] Updated the PerlTidy configuration to support PerlTidy version 1.74. [add] Updated the PerlTidy configuration to support PerlTidy version 1.74.
[add] Updated the Ruby Script Beautifier to version 2.9. [add] Updated the Ruby Script Beautifier to version 2.9.
[fix] Bug ID 3021933: Updated the Artistic Style configuration to support Artistic Style version 2.01. [fix] Bug ID 3021933: Updated the Artistic Style configuration to support Artistic Style version 2.01.
[fix] Bug ID 3021931: Fixed calling of Artistic Style version 1.22 and later. [fix] Bug ID 3021931: Fixed calling of Artistic Style version 1.22 and later.
[fix] Bug ID 3006513: Fixed compiling UiGUI using GCC 4.5 and later. [fix] Bug ID 3006513: Fixed compiling UiGUI using GCC 4.5 and later.
[fix] Bug ID 2942381: When loading an indenter configuration file, the settings displayed in the docking widget were correctly updated, but the code wasn't. [fix] Bug ID 2942381: When loading an indenter configuration file, the settings displayed in the docking widget were correctly updated, but the code wasn't.
[fix] Bug ID 2135872: A zombie process kept on running if UiGUI was quit during the update check in background if no internet connection is available. [fix] Bug ID 2135872: A zombie process kept on running if UiGUI was quit during the update check in background if no internet connection is available.
[fix] Bug ID 3175027: Uncrustify had wrong pop-up comments for two check-boxes. [fix] Bug ID 3175027: Uncrustify had wrong pop-up comments for two check-boxes.
[fix] Bug ID 2916163: The proxy settings are properly used and applied now. [fix] Bug ID 2916163: The proxy settings are properly used and applied now.
[fix] Made the JsDecoder integration be compatible with recent Qt versions. [fix] Made the JsDecoder integration be compatible with recent Qt versions.
[change] Changed the created shell scripts indenter config file reference. Now each created shell script has a corresponding config file being created in the same dir as the shell script, with the same name but different suffix. But since the config file is referenced by "./", when calling the script the working directory must be the same as the directory containing the config file. [change] Changed the created shell scripts indenter config file reference. Now each created shell script has a corresponding config file being created in the same dir as the shell script, with the same name but different suffix. But since the config file is referenced by "./", when calling the script the working directory must be the same as the directory containing the config file.
[change] Using TCLAP as command line parser instead of own command line parsing. [change] Using TCLAP as command line parser instead of own command line parsing.
[change] Setting a file name as parameter on the command line without any prefix will load this file instead of the last opened one. [change] Setting a file name as parameter on the command line without any prefix will load this file instead of the last opened one.
[change] Rewritten and improved the internal way how settings are connected to the UI. [change] Rewritten and improved the internal way how settings are connected to the UI.
[change] Refactored and cleaned up the code. [change] Refactored and cleaned up the code.
[change] Will no longer deliver binary bundles linked against Qt statically. Instead delivering all dependent DLLs and libs. [change] Will no longer deliver binary bundles linked against Qt statically. Instead delivering all dependent DLLs and libs.
2009-07-16 Version 1.1.0 2009-07-16 Version 1.1.0
[add] Added a logging class, that can catch debug output and make trace backs if any problems occur possible. [add] Added a logging class, that can catch debug output and make trace backs if any problems occur possible.
[add] Added an application icon for Mac OS X. [add] Added an application icon for Mac OS X.
[change] Feature Request ID 2596302 : Updated the greatcode.ini. Thanks to adxadx who has done this work! [change] Feature Request ID 2596302 : Updated the greatcode.ini. Thanks to adxadx who has done this work!
[change] Feature Request ID 2793216: Updated to Uncrustify 0.53. [change] Feature Request ID 2793216: Updated to Uncrustify 0.53.
[change] Updated to JsDecoder version 1.1.0 [change] Updated to JsDecoder version 1.1.0
[fix] Bug ID 2791229: If UiGUI was located in a path containing Unicode characters or such a path needed to be handed over to a called indenter, the indenter could get confused on Windows. So using the Windows 8.3 short path notation. [fix] Bug ID 2791229: If UiGUI was located in a path containing Unicode characters or such a path needed to be handed over to a called indenter, the indenter could get confused on Windows. So using the Windows 8.3 short path notation.
[fix] On Mac OS X the used default font wasn't monospaced. Switched back to use Courier on Mac. [fix] On Mac OS X the used default font wasn't monospaced. Switched back to use Courier on Mac.
2009-02-12 Version 1.0.2 2009-02-12 Version 1.0.2
[add] Feature Request ID 2498654 : Added support for the Fortran indenter F90ppr. http://universalindent.sf.net/issue/feature/2498654 [add] Feature Request ID 2498654 : Added support for the Fortran indenter F90ppr. http://universalindent.sf.net/issue/feature/2498654
[add] Made it possible to define "stdin" to be used for an indenter calling. [add] Made it possible to define "stdin" to be used for an indenter calling.
[change] Made the source code be compilable with the slightly older QScintilla version 2.2. [change] Made the source code be compilable with the slightly older QScintilla version 2.2.
[change] When starting the very first time without any existing application settings, do not show the mainwindow at position 0,0. On Mac the window couldn't be moved because the window title bar was hidden under the Mac menu bar. [change] When starting the very first time without any existing application settings, do not show the mainwindow at position 0,0. On Mac the window couldn't be moved because the window title bar was hidden under the Mac menu bar.
[change] When using a non Windows system the default editor font type is now Monospace instead of Courier. The latter was not found properly. [change] When using a non Windows system the default editor font type is now Monospace instead of Courier. The latter was not found properly.
[change] For security reason using a randomly generated temporary directory name on Unix based systems. [change] For security reason using a randomly generated temporary directory name on Unix based systems.
[change] Improved the GUI updates for the Notepad++ plugin a bit. Not what I would call "good" yet. [change] Improved the GUI updates for the Notepad++ plugin a bit. Not what I would call "good" yet.
[fix] Bug ID 2284777 : The Notepad++ plugin was falsely linked against Qt debug dlls, which were not included. http://universalindent.sf.net/issue/bug/2284777 [fix] Bug ID 2284777 : The Notepad++ plugin was falsely linked against Qt debug dlls, which were not included. http://universalindent.sf.net/issue/bug/2284777
[fix] Bug ID 2594251 : The new version available check didn't work anymore since version 1.0.1. http://universalindent.sf.net/issue/bug/2594251 [fix] Bug ID 2594251 : The new version available check didn't work anymore since version 1.0.1. http://universalindent.sf.net/issue/bug/2594251
[fix] Avoid a crash if an uigui ini file with faulty header info is read, where the indenter executable was empty. [fix] Avoid a crash if an uigui ini file with faulty header info is read, where the indenter executable was empty.
[fix] Some application settings were tried to be read from a wrong directory when running in multi user mode. [fix] Some application settings were tried to be read from a wrong directory when running in multi user mode.
2008-10-14 Version 1.0.1 2008-10-14 Version 1.0.1
[add] Feature Request ID 2161471 : Added support for the Python indenter pindent. [add] Feature Request ID 2161471 : Added support for the Python indenter pindent.
[add] Feature Request ID 1883444 : Added support for the JSP indenter JSPPP. [add] Feature Request ID 1883444 : Added support for the JSP indenter JSPPP.
[add] Feature Request ID 1867563 : Added support for the XML indenter XML Indent. [add] Feature Request ID 1867563 : Added support for the XML indenter XML Indent.
[add] Support for French language. Thanks to Erwan "leg". [add] Support for French language. Thanks to Erwan "leg".
[change] Some small translation corrections. [change] Some small translation corrections.
[change] Improved the "new version available" check. [change] Improved the "new version available" check.
[change] On Mac and Linux a one pixel frame was shown around the whole screen when about dialog is visible. Removed that. [change] On Mac and Linux a one pixel frame was shown around the whole screen when about dialog is visible. Removed that.
[change] Updated to Uncrustify version 0.49 from SVN repository. [change] Updated to Uncrustify version 0.49 from SVN repository.
[change] Using a new logo icon for UniversalIndentGUI. The logo was created by Erwan "leg". Thanks! [change] Using a new logo icon for UniversalIndentGUI. The logo was created by Erwan "leg". Thanks!
[fix] Bug ID 2173527 : Could not load Artistic Style config file properly if both parameters "--brackets=linux" and "--brackets=break-closing" were set. http://universalindent.sf.net/issue/2173527 [fix] Bug ID 2173527 : Could not load Artistic Style config file properly if both parameters "--brackets=linux" and "--brackets=break-closing" were set. http://universalindent.sf.net/issue/2173527
[fix] The distributed version of GNU Indent was using a misspelled configuration file, thus lieve preview didn't correctly work. Using original GNU Win32 version now. [fix] The distributed version of GNU Indent was using a misspelled configuration file, thus lieve preview didn't correctly work. Using original GNU Win32 version now.
[fix] In version 1.0.0 the creation of batch files for indenters undet Windows always created a bash/shell script instead of batch. [fix] In version 1.0.0 the creation of batch files for indenters undet Windows always created a bash/shell script instead of batch.
[fix] Keyboard shortcuts for enabling/disabling "Live Preview" and syntax highlighting didn't work. [fix] Keyboard shortcuts for enabling/disabling "Live Preview" and syntax highlighting didn't work.
2008-09-30 Version 1.0.0 non public release. Only presented for Qt Centre programming contest. 2008-09-30 Version 1.0.0 non public release. Only presented for Qt Centre programming contest.
[add] Made it possible to start UiGUI in different modes via parameters: Normal (full UI), plugin (only indenter menu, server active), server only. [add] Made it possible to start UiGUI in different modes via parameters: Normal (full UI), plugin (only indenter menu, server active), server only.
[add] Added a server functionality. Future plan is to let UiGUI run also as server so plugins from other editors can send indent requests over TCP/IP to it. Very early state right now. [add] Added a server functionality. Future plan is to let UiGUI run also as server so plugins from other editors can send indent requests over TCP/IP to it. Very early state right now.
[add] Created a plugin for Notepad++. This plugin shows the indenter parameter menu and lets the user indent the selected or whole text. Live preview works also. Still has some eventloop graphic update problems. [add] Created a plugin for Notepad++. This plugin shows the indenter parameter menu and lets the user indent the selected or whole text. Live preview works also. Still has some eventloop graphic update problems.
[add] Added support for two (rather simple) Ruby beautifiers, ruby_formatter and rbeautify. [add] Added support for two (rather simple) Ruby beautifiers, ruby_formatter and rbeautify.
[add] Feature Request ID 1985475 : Added the possibility to reset all indenter parameters to default values. http://universalindent.sf.net/issue/1985475 [add] Feature Request ID 1985475 : Added the possibility to reset all indenter parameters to default values. http://universalindent.sf.net/issue/1985475
[add] Feature Request ID 1989585 : Added a context menu in indenter parameters widget and moved all functions handling these actions from the main window to the indent handler. http://universalindent.sf.net/issue/1989585 [add] Feature Request ID 1989585 : Added a context menu in indenter parameters widget and moved all functions handling these actions from the main window to the indent handler. http://universalindent.sf.net/issue/1989585
[add] Feature Request ID 1977033 : Now supporting the Cobol intender Cobol Beautifier. http://universalindent.sf.net/issue/1977033 [add] Feature Request ID 1977033 : Now supporting the Cobol intender Cobol Beautifier. http://universalindent.sf.net/issue/1977033
[add] Feature Request ID 2080832 : Now showing the cursors current line and column number in the statusbars down right corner. http://universalindent.sf.net/issue/2080832 [add] Feature Request ID 2080832 : Now showing the cursors current line and column number in the statusbars down right corner. http://universalindent.sf.net/issue/2080832
[change] Using Qt >= 4.4.x now and thereby implemented an animated 3D about dialog. [change] Using Qt >= 4.4.x now and thereby implemented an animated 3D about dialog.
[change] Using QScintilla >= 2.3 now and thereby added support for Cmake, Fortran[77], Pascal, PostScript, TCL, VHDL, XML and YAML. [change] Using QScintilla >= 2.3 now and thereby added support for Cmake, Fortran[77], Pascal, PostScript, TCL, VHDL, XML and YAML.
[change] Reformatted the about dialog to only contain one QTextEdit. Also added some more links to that text. [change] Reformatted the about dialog to only contain one QTextEdit. Also added some more links to that text.
[change] Limited the size of the combobox showing the indenters because with the supported programming languages in the name, the comobox was to large in width. [change] Limited the size of the combobox showing the indenters because with the supported programming languages in the name, the comobox was to large in width.
[change] Prevent php file from being tried to be executed directly. That could happen if the file has the execution flag set. However that should never be the case, so this is a workaround. [change] Prevent php file from being tried to be executed directly. That could happen if the file has the execution flag set. However that should never be the case, so this is a workaround.
[change] Added a new class UiguiIniFileParser which will replace the currently used QSettings for reading the indenter parameters. Thus parameters appear in the menu in the same order as in the ini file and are no longer alphabetically sorted. [change] Added a new class UiguiIniFileParser which will replace the currently used QSettings for reading the indenter parameters. Thus parameters appear in the menu in the same order as in the ini file and are no longer alphabetically sorted.
[change] Redesigned the user interface and code a bit. The indenter selection combo box along with the manual button are now placed in docking widget where all indenter parameters are placed. This is done in preparation to pull out the complete indent handler, so it can be used as plugin for Notepad++ or Eclipse etc.] [change] Redesigned the user interface and code a bit. The indenter selection combo box along with the manual button are now placed in docking widget where all indenter parameters are placed. This is done in preparation to pull out the complete indent handler, so it can be used as plugin for Notepad++ or Eclipse etc.]
[change] Made reading the indenter config files more tolerant. If the user disobeys case sensitivity when editing the config file by hand, the values are correctly parsed anyway. [change] Made reading the indenter config files more tolerant. If the user disobeys case sensitivity when editing the config file by hand, the values are correctly parsed anyway.
[change] Feature Request ID 1989587 : There is no longer any need to have a current value setting in the ini files. A default value is enough. http://universalindent.sf.net/issue/1989587 [change] Feature Request ID 1989587 : There is no longer any need to have a current value setting in the ini files. A default value is enough. http://universalindent.sf.net/issue/1989587
[change] Completely removed QT3Support functions. [change] Completely removed QT3Support functions.
[change] Removed all compiler warnings. [change] Removed all compiler warnings.
[change] Changed the way internal settings are handled. Using QObject propertys for connected setting name now. [change] Changed the way internal settings are handled. Using QObject propertys for connected setting name now.
[fix] The by each indenter supported programming languages, written in braces, are removed from the created shell scripts name. [fix] The by each indenter supported programming languages, written in braces, are removed from the created shell scripts name.
[fix] Corrected the move/mv commands parameter in the created shell and batch script when calling recursive. [fix] Corrected the move/mv commands parameter in the created shell and batch script when calling recursive.
[fix] Bug ID 1986471 : The file modification flag did not work properly. Reason was that QScintilla can not set its textedit component modified flag to true by a function call. http://universalindent.sf.net/issue/1986471 [fix] Bug ID 1986471 : The file modification flag did not work properly. Reason was that QScintilla can not set its textedit component modified flag to true by a function call. http://universalindent.sf.net/issue/1986471
2008-05-26 Version 0.8.2 2008-05-26 Version 0.8.2
[add] Feature Request ID 1971206 : Now showing by the indenter supported programming languages next to indenter name. [add] Feature Request ID 1971206 : Now showing by the indenter supported programming languages next to indenter name.
[add] Feature Request ID 1971181 : Added support for the HTML indenter HTB. [add] Feature Request ID 1971181 : Added support for the HTML indenter HTB.
[add] Feature Request ID 1867562 : Added support for the HTML indenter hindent. [add] Feature Request ID 1867562 : Added support for the HTML indenter hindent.
[add] Added support for the php indenter phpStylist version 1.0. [add] Added support for the php indenter phpStylist version 1.0.
[add] Added the possibility to directly setting php files as indenter. The suffix .php is recognized and php used as default interpreter. [add] Added the possibility to directly setting php files as indenter. The suffix .php is recognized and php used as default interpreter.
[add] Extended the created batch/shell script so it is able to indent only one file given as parameter or a whole directory recursively with a defined file suffix. [add] Extended the created batch/shell script so it is able to indent only one file given as parameter or a whole directory recursively with a defined file suffix.
[add] Feature Request ID 1885911 : Added the possibility to open a file on applications start, that is handed over as parameter on the command line. [add] Feature Request ID 1885911 : Added the possibility to open a file on applications start, that is handed over as parameter on the command line.
[add] Feature Request ID 1729429 : Added the possibility to drag'n drop in any source code file for opening it. [add] Feature Request ID 1729429 : Added the possibility to drag'n drop in any source code file for opening it.
[change] Created indenter shell scripts now automatically have the executable flag set to true. [change] Created indenter shell scripts now automatically have the executable flag set to true.
[change] Completed the support for all perl tidy parameters. [change] Completed the support for all perl tidy parameters.
[change] Updated to uncrustify version 0.46. [change] Updated to uncrustify version 0.46.
[fix] Bug ID 1933074 : On Unix systems the user config files were stored in his home dir in the subfolder ".config". Now they are directly stored in ".universalindentgui". [fix] Bug ID 1933074 : On Unix systems the user config files were stored in his home dir in the subfolder ".config". Now they are directly stored in ".universalindentgui".
[fix] Fixed a bug where the string "<html><body>" was prepended to the output code. Occurred for example when using the shell indenter. [fix] Fixed a bug where the string "<html><body>" was prepended to the output code. Occurred for example when using the shell indenter.
2008-03-27 Version 0.8.1 2008-03-27 Version 0.8.1
[add] Feature Request ID 1909450 : Added support for the PEAR PHP beautifier. Thus PHP beautifying is also possible on Linux and Mac OS X. (Needs the PEAR package "PHP_Beautifier" to be installed and a path entry pointing to the PHP dir.) [add] Feature Request ID 1909450 : Added support for the PEAR PHP beautifier. Thus PHP beautifying is also possible on Linux and Mac OS X. (Needs the PEAR package "PHP_Beautifier" to be installed and a path entry pointing to the PHP dir.)
[add] Added support and translations for Russian and Ukrainian language. Thanks to Oleksandr (http://korytskyy.lviv.ua). [add] Added support and translations for Russian and Ukrainian language. Thanks to Oleksandr (http://korytskyy.lviv.ua).
[add] Feature Request ID 1901935 : From now on files are saved with the same encoding as they were opened and no longer always UTF-8. Also it is possible to save the file with any other encoding. [add] Feature Request ID 1901935 : From now on files are saved with the same encoding as they were opened and no longer always UTF-8. Also it is possible to save the file with any other encoding.
[change] The detection whether to run in portable mode now depends on where the "config" folder resides and no longer the "indenters" folder. This is needed to be able to correctly run on Windows multiuser systems. [change] The detection whether to run in portable mode now depends on where the "config" folder resides and no longer the "indenters" folder. This is needed to be able to correctly run on Windows multiuser systems.
[change] Removed the word "beta" whereever it occurred, since UiGUI isn't that beta anymore. [change] Removed the word "beta" whereever it occurred, since UiGUI isn't that beta anymore.
[fix] Bug ID 1910773 : On Unix systems the globally available files, like indenters, translations etc are not longer installed to /etc/universalindentgui but to /usr/share/universalindentgui. [fix] Bug ID 1910773 : On Unix systems the globally available files, like indenters, translations etc are not longer installed to /etc/universalindentgui but to /usr/share/universalindentgui.
2008-01-17 Version 0.8.0 Beta 2008-01-17 Version 0.8.0 Beta
[add] Feature Request ID 1849297 : Added support for indenters written in JavaScript using an internal interpreter. Have a look into the README.txt to get to know, what steps are needed for that. [add] Feature Request ID 1849297 : Added support for indenters written in JavaScript using an internal interpreter. Have a look into the README.txt to get to know, what steps are needed for that.
[add] Added support for a simple JavaScript indenter written in JavaScript itself. [add] Added support for a simple JavaScript indenter written in JavaScript itself.
[add] Added support for a simple shell code indenter written in awk. [add] Added support for a simple shell code indenter written in awk.
[add] Feature Request ID 1736946 : It is now possible to run any indenter that is available in the global environment via a path entry. [add] Feature Request ID 1736946 : It is now possible to run any indenter that is available in the global environment via a path entry.
[add] Feature Request ID 1852483 : Indenters written in script languages, like perl, are now also supported, if they have a correct shebang. [add] Feature Request ID 1852483 : Indenters written in script languages, like perl, are now also supported, if they have a correct shebang.
[add] Added support for the well known perltidy. The uigui ini file is completed up to the category and including "Line Break Control". Rest needs to be done. [add] Added support for the well known perltidy. The uigui ini file is completed up to the category and including "Line Break Control". Rest needs to be done.
[add] Feature Request ID 1866599 : Adapted the used paths for settings, temporary files and the one containing indenter ini files to be conform with systems that use strict user rights management. Most this concerns Linux, where the binary resides inside a bin dir and user specific settings are stored in his home dir. Short: now supporting multiuser systems and also have a portable mode, where modifications are only on local media. [add] Feature Request ID 1866599 : Adapted the used paths for settings, temporary files and the one containing indenter ini files to be conform with systems that use strict user rights management. Most this concerns Linux, where the binary resides inside a bin dir and user specific settings are stored in his home dir. Short: now supporting multiuser systems and also have a portable mode, where modifications are only on local media.
[add] Feature Request ID 1730360 : Along with real support for multiuser systems, each user can have his own indenter settings. These won't be overwritten by an update, what was the case before. [add] Feature Request ID 1730360 : Along with real support for multiuser systems, each user can have his own indenter settings. These won't be overwritten by an update, what was the case before.
[add] Feature Request ID 1867628 : Added a button to the toolbar near the indenter selection that opens the indenters online manual. [add] Feature Request ID 1867628 : Added a button to the toolbar near the indenter selection that opens the indenters online manual.
[add] Feature Request ID 1867660 : Created a simple man page for unix based systems. [add] Feature Request ID 1867660 : Created a simple man page for unix based systems.
[add] The by the qmake projekt file resulting makefile has a directive for install on unix based systems now. [add] The by the qmake projekt file resulting makefile has a directive for install on unix based systems now.
[add] Added example files for most supported programming languages, so each indenter can be tested. [add] Added example files for most supported programming languages, so each indenter can be tested.
[change] The source code archive is now in a Unix conform format and naming convention. [change] The source code archive is now in a Unix conform format and naming convention.
[change] The used paths have changed. The "data" directory has been renamed to indenters and includes only the uigui ini files and maybe some indenter binaries. Futher a config and a temp directory are used. [change] The used paths have changed. The "data" directory has been renamed to indenters and includes only the uigui ini files and maybe some indenter binaries. Futher a config and a temp directory are used.
[change] In case of an error during calling the indenter, its standard output is appended to the error dialog. [change] In case of an error during calling the indenter, its standard output is appended to the error dialog.
[change] Corrected some misspelling. [change] Corrected some misspelling.
[change] Renamed htmltidy to tidy because that is its official name and also the name of the binary in all Linux packages. [change] Renamed htmltidy to tidy because that is its official name and also the name of the binary in all Linux packages.
[fix] Bug ID 1855460 : The parameter settings of the indenter were only saved, if preview is turned on. Now the settings are always remembered. [fix] Bug ID 1855460 : The parameter settings of the indenter were only saved, if preview is turned on. Now the settings are always remembered.
[fix] Bug ID 1854156 : The syntax highlighter did not switch to perl if a file with suffix .pl or .pm was loaded. [fix] Bug ID 1854156 : The syntax highlighter did not switch to perl if a file with suffix .pl or .pm was loaded.
2007-11-22 Version 0.7.1 Beta 2007-11-22 Version 0.7.1 Beta
[add] Feature Request ID 1833814 : Added support for building on MacOSX. [add] Feature Request ID 1833814 : Added support for building on MacOSX.
[change] Feature Request ID 1836486 : Update to latest version of Uncrustify. [change] Feature Request ID 1836486 : Update to latest version of Uncrustify.
[change] Update to latest version of Artistic Styler. [change] Update to latest version of Artistic Styler.
2007-11-11 Version 0.7.0 Beta 2007-11-11 Version 0.7.0 Beta
[add] Feature Request ID 1826733 : If the called indenter returns an error message, you can chose to not show the same error again. Helpful for HTMLtidy since it often shows a long, repeating error list. [add] Feature Request ID 1826733 : If the called indenter returns an error message, you can chose to not show the same error again. Helpful for HTMLtidy since it often shows a long, repeating error list.
[add] Feature Request ID 1805974 : Added an option to clear the list of recently opened files. [add] Feature Request ID 1805974 : Added an option to clear the list of recently opened files.
[add] Feature Request ID 1760997 : Added some code lines to example.cpp to test whether an indenter correctly handles preprocessor defines. [add] Feature Request ID 1760997 : Added some code lines to example.cpp to test whether an indenter correctly handles preprocessor defines.
[add] Feature Request ID 1752551 : If the user manually checks for updates a progress/busy dialog will be shown. [add] Feature Request ID 1752551 : If the user manually checks for updates a progress/busy dialog will be shown.
[add] Feature Request ID 1736932 : The user gets shown a dialog if he has manually checked for an update and no new one is available. [add] Feature Request ID 1736932 : The user gets shown a dialog if he has manually checked for an update and no new one is available.
[change] The update check is now enabled by default. [change] The update check is now enabled by default.
[change] Slighty changes made to the settings dialog; put texts in front of the changed value. [change] Slighty changes made to the settings dialog; put texts in front of the changed value.
[fix] Bug ID 1807179 : GNU Indent didn't work properly on Windows system, after the dlls libiconv-2.dll and libintl-2.dll were removed. Readded them. [fix] Bug ID 1807179 : GNU Indent didn't work properly on Windows system, after the dlls libiconv-2.dll and libintl-2.dll were removed. Readded them.
[fix] Bug ID 1805976 : The HTML export didn't produce any output. Fixed that, but still has not syntax formatting. [fix] Bug ID 1805976 : The HTML export didn't produce any output. Fixed that, but still has not syntax formatting.
[fix] Bug ID 1815023 : Mixed traditional with simplified chinese translation. Now preferring to use english text instead of mixing if no traditional translation is available. [fix] Bug ID 1815023 : Mixed traditional with simplified chinese translation. Now preferring to use english text instead of mixing if no traditional translation is available.
[fix] Bug ID 1815120 : The font of the editor component was wrong (not monospaced), if syntax highlighting was turned off. [fix] Bug ID 1815120 : The font of the editor component was wrong (not monospaced), if syntax highlighting was turned off.
2007-06-13 Version 0.6.1 Beta 2007-06-13 Version 0.6.1 Beta
[add] Feature Request ID 1729433 : Added a recently opened file menu. [add] Feature Request ID 1729433 : Added a recently opened file menu.
[add] Feature Request ID 1704290 : Added possibiltiy to integrate into an IDE, editor or other as external tool. This is donw by creating a batch/shell script which accepts a file as parameter and calls the indenter with the in UniversalIndentGUI made settings. [add] Feature Request ID 1704290 : Added possibiltiy to integrate into an IDE, editor or other as external tool. This is donw by creating a batch/shell script which accepts a file as parameter and calls the indenter with the in UniversalIndentGUI made settings.
[add] Feature Request ID 1673659 : The string parameter in the uigui ini files for each indenter can now also be a list of strings divided by "|" sign. As result the parameter name with value will be written to the indenter config file for each of the values. [add] Feature Request ID 1673659 : The string parameter in the uigui ini files for each indenter can now also be a list of strings divided by "|" sign. As result the parameter name with value will be written to the indenter config file for each of the values.
[add] Feature Request ID 1730180 : UniversalIndentGUI can automatically check on start, whether a new version is available. This setting is disabled by default and can be enabled in the settings. [add] Feature Request ID 1730180 : UniversalIndentGUI can automatically check on start, whether a new version is available. This setting is disabled by default and can be enabled in the settings.
[add] Added support for HTML Tidy. The executable is contained in the release package. [add] Added support for HTML Tidy. The executable is contained in the release package.
[add] Feature Request ID 1736432 : The width of the dock widget containing the indenter parameters is now restored on program start. [add] Feature Request ID 1736432 : The width of the dock widget containing the indenter parameters is now restored on program start.
[change] The about dialog shows now a credits scroller to say thanks to all people, who have helped me somehow. [change] The about dialog shows now a credits scroller to say thanks to all people, who have helped me somehow.
[fix] Bug ID 1733499 : UniversalIndentGui crashed if inside of an indenter ini file the category number of one parameter was higher than the available categories. [fix] Bug ID 1733499 : UniversalIndentGui crashed if inside of an indenter ini file the category number of one parameter was higher than the available categories.
[fix] Bug ID 1735586 : Some dialogs had untranslated buttons. For example yes, no, cancel were not translated. [fix] Bug ID 1735586 : Some dialogs had untranslated buttons. For example yes, no, cancel were not translated.
2007-06-03 Version 0.6.0 Beta 2007-06-03 Version 0.6.0 Beta
[add] Feature Request ID 1700557 : Added a settings dialog for handling more possible settings with better usabiltiy. [add] Feature Request ID 1700557 : Added a settings dialog for handling more possible settings with better usabiltiy.
[add] Feature Request ID 1700556 : Added option to load last file or not on startup. [add] Feature Request ID 1700556 : Added option to load last file or not on startup.
[add] Feature Request ID 1684011 : Added option to set the width used to display tabs (default is four spaces). [add] Feature Request ID 1684011 : Added option to set the width used to display tabs (default is four spaces).
[add] Feature Request ID 1651718 : Added multiple choices, for the indenter configuration, with for the user readable text. Before the text inside of the combo boxes for the indenter parameters was exactly the same text as the command line parameter of the indenter. Now with "ChoicesReadable" a list with the same length as "Choices" can be used to insert readable text into the combo box. If this list is not set, the content of "Choices" will be used. [add] Feature Request ID 1651718 : Added multiple choices, for the indenter configuration, with for the user readable text. Before the text inside of the combo boxes for the indenter parameters was exactly the same text as the command line parameter of the indenter. Now with "ChoicesReadable" a list with the same length as "Choices" can be used to insert readable text into the combo box. If this list is not set, the content of "Choices" will be used.
[add] Partly Japanese translation. Thanks to Nirvash. [add] Partly Japanese translation. Thanks to Nirvash.
[add] The language selection show the countries flag in front of its name to identify the language faster. [add] The language selection show the countries flag in front of its name to identify the language faster.
[add] Feature Request ID 1657253 : If now configuration ini file for any indenter can be found, a warning will be displayed. [add] Feature Request ID 1657253 : If now configuration ini file for any indenter can be found, a warning will be displayed.
[change] Feature Request ID 1723228 : The default font for all syntax highlighters is now mono spaced, Courier. [change] Feature Request ID 1723228 : The default font for all syntax highlighters is now mono spaced, Courier.
[change] Along with the settings dialog cleaned up the user interface. Moved some not that often needed settings away to the settings dialog. [change] Along with the settings dialog cleaned up the user interface. Moved some not that often needed settings away to the settings dialog.
[change] The full text of the GPL in the about dialog did slow down the program startup and translation. Now only a hint and link to the GPL is given in the about dialog. [change] The full text of the GPL in the about dialog did slow down the program startup and translation. Now only a hint and link to the GPL is given in the about dialog.
[fix] Bug ID 1692511 : UniversalIndentGui crashed, if a by the syntax highlighter unsupported file extension was opened. [fix] Bug ID 1692511 : UniversalIndentGui crashed, if a by the syntax highlighter unsupported file extension was opened.
[fix] Bug ID 1727538 : The setting for syntax highlighting was allways enabled on startup, even if disabled on closing. [fix] Bug ID 1727538 : The setting for syntax highlighting was allways enabled on startup, even if disabled on closing.
[fix] Bug ID 1729026 : The highlighting style was not correct when changed to another highlighter than the current. Only after toggling preview for example the style was correct. [fix] Bug ID 1729026 : The highlighting style was not correct when changed to another highlighter than the current. Only after toggling preview for example the style was correct.
[fix] The editors column showing the line numbers did not adapt its width to the maximum line number. [fix] The editors column showing the line numbers did not adapt its width to the maximum line number.
2007-03-19 Version 0.5.1 Beta 2007-03-19 Version 0.5.1 Beta
[add] Supporting syntax highlightning for the programming language D. [add] Supporting syntax highlightning for the programming language D.
[change] The live typing and indenting feature was not adapted to QScintilla. Now works again (depending on the used indenter). [change] The live typing and indenting feature was not adapted to QScintilla. Now works again (depending on the used indenter).
[fix] Bug ID 1678783 : Files other encoded than ascii were not displayed correctly. Now allways displaying files using UTF-8 encoding. [fix] Bug ID 1678783 : Files other encoded than ascii were not displayed correctly. Now allways displaying files using UTF-8 encoding.
[fix] Bug ID 1678783 : The new syntax highlighter selection menu was not translated. [fix] Bug ID 1678783 : The new syntax highlighter selection menu was not translated.
[fix] When file was reloaded with other encoding the file was allways set to be modified even if it wasn't. [fix] When file was reloaded with other encoding the file was allways set to be modified even if it wasn't.
2007-03-14 Version 0.5.0 Beta 2007-03-14 Version 0.5.0 Beta
[add/change] Using QScintilla as editing component, which is by far more mighty than the before uses QTextEdit. Have a look inside the development area for details. [add/change] Using QScintilla as editing component, which is by far more mighty than the before uses QTextEdit. Have a look inside the development area for details.
[add] Because of QScintilla, added syntax highlightning for bash, batch, cpp, csharp, css, diff, html, idl, java, javascript, lua, makefile, perl, pov, ini, python, ruby, sql and tex. [add] Because of QScintilla, added syntax highlightning for bash, batch, cpp, csharp, css, diff, html, idl, java, javascript, lua, makefile, perl, pov, ini, python, ruby, sql and tex.
[add] Also added code folding for previously mentioned languages. [add] Also added code folding for previously mentioned languages.
[add] Added support for the indenter "phpCB" phpCodeBeatufier. (Thanks to Nelson Tai) The executable is not included in the UiGui release, because I am not sure about the license of phpCB right now. [add] Added support for the indenter "phpCB" phpCodeBeatufier. (Thanks to Nelson Tai) The executable is not included in the UiGui release, because I am not sure about the license of phpCB right now.
[add] The output of an indenter can now be read from stdout, by setting "stdout" for "outputFileParameter". [add] The output of an indenter can now be read from stdout, by setting "stdout" for "outputFileParameter".
[add] Feature Request ID 1673549 : The order of the indenter call parameters for input file, output file and options[file] is now selectable in three states: pio, ipo, iop. [add] Feature Request ID 1673549 : The order of the indenter call parameters for input file, output file and options[file] is now selectable in three states: pio, ipo, iop.
[add] Feature Request ID 1675503 : The last set encoding is being remembered and used on loading last file. [add] Feature Request ID 1675503 : The last set encoding is being remembered and used on loading last file.
[add] Feature Request ID 1669822 : The last window position, size and maximized state is stored in the settings and restored. [add] Feature Request ID 1669822 : The last window position, size and maximized state is stored in the settings and restored.
[add] Feature Request ID 1673670 : Made it possible to switch between visible and invisible white space characters, like spaces and tabs. [add] Feature Request ID 1673670 : Made it possible to switch between visible and invisible white space characters, like spaces and tabs.
[change] The "personal" configuration files of each indenter (like gc.cfg) are no longer included in a release, so these settings can be loaded into UiGui after updating. [change] The "personal" configuration files of each indenter (like gc.cfg) are no longer included in a release, so these settings can be loaded into UiGui after updating.
[fix] Bug ID 1678783: If the current opened file had no save name yet, only the path was written to the settings file, causing an error on next start. [fix] Bug ID 1678783: If the current opened file had no save name yet, only the path was written to the settings file, causing an error on next start.
2007-02-25 Version 0.4.2 Beta 2007-02-25 Version 0.4.2 Beta
[add] Support for the indenter CSSTidy has been added. [add] Support for the indenter CSSTidy has been added.
[add] Support for new language: Taiwan (Chinese). [add] Support for new language: Taiwan (Chinese).
[change] For easier translation the about dialog has been redesigned a bit. [change] For easier translation the about dialog has been redesigned a bit.
2007-02-11 Version 0.4.1 Beta 2007-02-11 Version 0.4.1 Beta
[add] Support for the indenter Uncrustify has been added. [add] Support for the indenter Uncrustify has been added.
[add] Feature Request ID 1651719: A binary release for Linux AMD64 is now available. [add] Feature Request ID 1651719: A binary release for Linux AMD64 is now available.
[add] Feature Request ID 1657251: If only a win32 executable exists under Linux, wine will be used to call it. Now a test will be mad if wine is installed and an error message will show up if not installed. [add] Feature Request ID 1657251: If only a win32 executable exists under Linux, wine will be used to call it. Now a test will be mad if wine is installed and an error message will show up if not installed.
[change] Some changes mad to the Artistic Styler ini file as suggested by its author Jim Pattee. [change] Some changes mad to the Artistic Styler ini file as suggested by its author Jim Pattee.
[change] Put the file open button at first position in the toolbar, because normally this is the first step one would do, if he tries to find the optimal indenter and settings for himself. [change] Put the file open button at first position in the toolbar, because normally this is the first step one would do, if he tries to find the optimal indenter and settings for himself.
[change] The background in the about dialog has been changed to look equal on all systems. [change] The background in the about dialog has been changed to look equal on all systems.
[change] The error message dialogs had small optical enhancements to be more readable. [change] The error message dialogs had small optical enhancements to be more readable.
[fix] Bug ID 1657255: If an error occurred during the try to call the indenter, a message box is being shown, but the mouse cursor still indicated that the application is being busy. [fix] Bug ID 1657255: If an error occurred during the try to call the indenter, a message box is being shown, but the mouse cursor still indicated that the application is being busy.
[fix] Bug ID 1651071: Changing the file encoding did not affect the code sent to the indenter, so the code while preview turned on, had wrong encoding (still seems to have some encoding problems under Linux). [fix] Bug ID 1651071: Changing the file encoding did not affect the code sent to the indenter, so the code while preview turned on, had wrong encoding (still seems to have some encoding problems under Linux).
[fix] Bug ID 1650222: On Windows systems there were two DLLs missing to run GNU Indent ("libiconv-2.dll" and "libintl-2.dll") [fix] Bug ID 1650222: On Windows systems there were two DLLs missing to run GNU Indent ("libiconv-2.dll" and "libintl-2.dll")
[fix] Bug ID 1649918: The indenter was not called after first program start, so preview updated first after changing a setting or the code. [fix] Bug ID 1649918: The indenter was not called after first program start, so preview updated first after changing a setting or the code.
2007-02-01 Version 0.4 Beta 2007-02-01 Version 0.4 Beta
[add] All parameters of GNU Indent have been added. [add] All parameters of GNU Indent have been added.
[add] From now on the indenter BCPP is included. [add] From now on the indenter BCPP is included.
[add] The loaded source file encoding is now convertable by the menu entry "Reopen File with other Encoding". This way chinese encoding etc. is possible to load. (Suggest for this submitted by Nelson, Bug ID 1643541) [add] The loaded source file encoding is now convertable by the menu entry "Reopen File with other Encoding". This way chinese encoding etc. is possible to load. (Suggest for this submitted by Nelson, Bug ID 1643541)
[add] A subdirectory "doc" has been added, containing the file "iniFileFormat.html" with info how to write ini files for new indenters. [add] A subdirectory "doc" has been added, containing the file "iniFileFormat.html" with info how to write ini files for new indenters.
[change] Updated the astyle executable and the ini file to version 1.20.1 [change] Updated the astyle executable and the ini file to version 1.20.1
[change] Restructured the gui design a little bit. Using a moveable dock widget for the indenter settings now. Using a toolbar that can also be placed at the bottom. [change] Restructured the gui design a little bit. Using a moveable dock widget for the indenter settings now. Using a toolbar that can also be placed at the bottom.
[change] Made it possible to change the language without the need to restart the application. [change] Made it possible to change the language without the need to restart the application.
[change] Line numbers are now geyed out, because this is more decent and selecting the numbers is no longer possible. [change] Line numbers are now geyed out, because this is more decent and selecting the numbers is no longer possible.
[change] The link to the homepage in the about dialog now really opens the website. [change] The link to the homepage in the about dialog now really opens the website.
[change] The linux version is now statically linked against Qt so there should be no problems with wrong Qt versions installed or even no Qt libraries installed. [change] The linux version is now statically linked against Qt so there should be no problems with wrong Qt versions installed or even no Qt libraries installed.
[fix] Bug ID 1553601: If no uigui ini file was found the application stopped with an exception. [fix] Bug ID 1553601: If no uigui ini file was found the application stopped with an exception.
2006-09-04 Version 0.3.1 Beta 2006-09-04 Version 0.3.1 Beta
[add] Language selector and german translation added. [add] Language selector and german translation added.
2006-08-25 Version 0.3 Beta 2006-08-25 Version 0.3 Beta
[add] A message box will show up at opening a source file or program exit, if the source code has been changed, and ask whether to save the file or not. [add] A message box will show up at opening a source file or program exit, if the source code has been changed, and ask whether to save the file or not.
[add] The symbol "*" will be shown in the window title in front of the source file name if the source code has been changed. [add] The symbol "*" will be shown in the window title in front of the source file name if the source code has been changed.
[add] By a settings menu entry the tool tips for the indenter parameter settings can be en/disabled because they can be annoying. [add] By a settings menu entry the tool tips for the indenter parameter settings can be en/disabled because they can be annoying.
[add] A settings file is from now on used to remember the last selected indenter and last opened source code file. [add] A settings file is from now on used to remember the last selected indenter and last opened source code file.
[add] The source code can now be exported as a PDF or HTML document. [add] The source code can now be exported as a PDF or HTML document.
[add] Some commands are now faster available by keyboard shortcuts. [add] Some commands are now faster available by keyboard shortcuts.
[fix] The calling name in the indenter ini file for GreatCode was written lower case while the real file name was upper case, which resulted in a program calling error. [fix] The calling name in the indenter ini file for GreatCode was written lower case while the real file name was upper case, which resulted in a program calling error.
[fix] Corrected the tab order for the gui elements. [fix] Corrected the tab order for the gui elements.
[change] Optimized speed when switching between the available indenters. If the indenters ini file is large, this still takes some time. [change] Optimized speed when switching between the available indenters. If the indenters ini file is large, this still takes some time.
2006-08-11 Version 0.2.5 Alpha 2006-08-11 Version 0.2.5 Alpha
[add] when loading or saving either a source code or config file the load/save dialog will open in the files directory and not allways in the UniversalIndentGUI dir [add] when loading or saving either a source code or config file the load/save dialog will open in the files directory and not allways in the UniversalIndentGUI dir
[add] currently made settings for the indenter can be saved to any file [add] currently made settings for the indenter can be saved to any file
[add] the menue entries for loading and saving the indenter config file have now icons [add] the menue entries for loading and saving the indenter config file have now icons
[add] the currently opened source code file name and path will be shown in the window title bar [add] the currently opened source code file name and path will be shown in the window title bar
[add] a error dialog that will be shown once if the indenter executable for the selected indenter does not exist [add] a error dialog that will be shown once if the indenter executable for the selected indenter does not exist
[fix] turning syntax highlight on/off did first take effect after toggle of preview [fix] turning syntax highlight on/off did first take effect after toggle of preview
[fix] the image in the about dialog box was not allways visible [fix] the image in the about dialog box was not allways visible
2006-08-03 Version 0.2.4 Alpha 2006-08-03 Version 0.2.4 Alpha
[change] the windows version does no longer need any dlls due to static linking and removing bind to mingwm10.dll [change] the windows version does no longer need any dlls due to static linking and removing bind to mingwm10.dll
[change] the windows version of the GNU Indent is replaced by a DJGPP compiled GNU Indent version, that needs no further DLLs [change] the windows version of the GNU Indent is replaced by a DJGPP compiled GNU Indent version, that needs no further DLLs
[add] possibility to save the shown/indented source code [add] possibility to save the shown/indented source code
[fix] the file extension used to call the selected indenter. It is now equal to the loaded source file extension so the indenter recognizes the source code language [fix] the file extension used to call the selected indenter. It is now equal to the loaded source file extension so the indenter recognizes the source code language
[fix] unnecessary calls of the indenter removed [fix] unnecessary calls of the indenter removed
[fix] indenter was not called if preview was activated and indenter changed [fix] indenter was not called if preview was activated and indenter changed
[fix] under linux the file mask for the open source file dialog did not work correctly [fix] under linux the file mask for the open source file dialog did not work correctly
2006-07-16 Version 0.2.3 Alpha 2006-07-16 Version 0.2.3 Alpha
[add] possibility to edit the source code while preview is active and see how it is formatted. So that is real live ;-) [add] possibility to edit the source code while preview is active and see how it is formatted. So that is real live ;-)
2006-07-14 Version 0.2.2 Alpha 2006-07-14 Version 0.2.2 Alpha
[add] ini file for GNU Indent with some first settings (if any one wants to write more in it let me know) [add] ini file for GNU Indent with some first settings (if any one wants to write more in it let me know)
[add] a menu bar for more pleasent and common use of the program (some not yet used menu items are disabled) [add] a menu bar for more pleasent and common use of the program (some not yet used menu items are disabled)
[add] an about dialog [add] an about dialog
[add] some icons for better look and feel (can you feel it ;-) ) [add] some icons for better look and feel (can you feel it ;-) )
[fix] a bug under linux which caused an endless loop if text was edited [fix] a bug under linux which caused an endless loop if text was edited
2006-07-07 Version 0.2.1.1 Alpha (win32 only) 2006-07-07 Version 0.2.1.1 Alpha (win32 only)
- previously compiled using Visual Studio 2005 Express, whereby an additional installation of a redistributable package was needed to run UniversalIndentGUI. To avoid this and not force the user to install anything, now using mingw to compile. - previously compiled using Visual Studio 2005 Express, whereby an additional installation of a redistributable package was needed to run UniversalIndentGUI. To avoid this and not force the user to install anything, now using mingw to compile.
2006-07-04 Version 0.2.1 Alpha 2006-07-04 Version 0.2.1 Alpha
[add] function to load config file (not the uigui ini file) of every indenter (and reenabled load config file button) [add] function to load config file (not the uigui ini file) of every indenter (and reenabled load config file button)
[add] use of a default value when loading a indenter config file and not all parameters are set. [add] use of a default value when loading a indenter config file and not all parameters are set.
[add] all documented default parameters of GreatCode and Astyle to their ini files. [add] all documented default parameters of GreatCode and Astyle to their ini files.
[fix] loading of file mask for source code file after changing indenter [fix] loading of file mask for source code file after changing indenter
[fix] call of indenter failed under win32 if a linux binary exists. [fix] call of indenter failed under win32 if a linux binary exists.
2006-06-30 Version 0.2.0 Alpha 2006-06-30 Version 0.2.0 Alpha
[add] missing parameters for flexible indenter ini file format [add] missing parameters for flexible indenter ini file format
[add] complete Astyle ini file [add] complete Astyle ini file
[add] multiple choice combobox for parameters [add] multiple choice combobox for parameters
[add] checkbox in front of numeric and string parameters to enable/disable them. If disabled indenters default value is used [add] checkbox in front of numeric and string parameters to enable/disable them. If disabled indenters default value is used
2006-06-28 2006-06-28
[add] working ini file for Astyle (right now only few boolean parameters) [add] working ini file for Astyle (right now only few boolean parameters)
[change] ini file format for booleans to reach the planned flexibility [change] ini file format for booleans to reach the planned flexibility
2006-06-23 2006-06-23
[add] combobox in the upper left showing available indenters (found by searching for uigui_*.ini file). at the moment only GreatCode and testwise Astyle [add] combobox in the upper left showing available indenters (found by searching for uigui_*.ini file). at the moment only GreatCode and testwise Astyle
[add] more detailed info if the indenter call results in an error [add] more detailed info if the indenter call results in an error
[add] icon for executable [add] icon for executable
[change] style/format of the ini file. Still not all planned features implemented [change] style/format of the ini file. Still not all planned features implemented
- some bugfixes, as you can say this in a preAlpha - some bugfixes, as you can say this in a preAlpha
2006-06-07 2006-06-07
[change] unnecessary gui menu removed [change] unnecessary gui menu removed
[fix] corrected ini file for great code (only in executable release) [fix] corrected ini file for great code (only in executable release)
[add] made call of windows version of GreatCode under Linux possible by using wine [add] made call of windows version of GreatCode under Linux possible by using wine

@ -1,12 +1,12 @@
How to install UniversalIndentGUI How to install UniversalIndentGUI
--------------------------------- ---------------------------------
Well, there is no need to install this application at all. While you are reading this file, Well, there is no need to install this application at all. While you are reading this file,
you obviously already have unpacked the archive and thats all you need to do. You can start you obviously already have unpacked the archive and thats all you need to do. You can start
the program by calling its executable. On Windows thats "UniversalIndentGUI.exe" and on any the program by calling its executable. On Windows thats "UniversalIndentGUI.exe" and on any
other system it is "UniversalIndentGUI". other system it is "UniversalIndentGUI".
No additional libraries are needed. No additional libraries are needed.
For information about how to build UniversalIndentGUI from source, have a look into the For information about how to build UniversalIndentGUI from source, have a look into the
file readme.html. file readme.html.

File diff suppressed because it is too large Load Diff

@ -1,59 +1,59 @@
000000* An example illustrating the use of a programmer defined paragraphs 000000* An example illustrating the use of a programmer defined paragraphs
* and perform-thru * and perform-thru
identification division. identification division.
program-id. level88. program-id. level88.
author. kik. author. kik.
environment division. environment division.
configuration section. configuration section.
special-names. special-names.
console is crt console is crt
decimal-point is comma. decimal-point is comma.
data division. data division.
working-storage section. working-storage section.
77 transaction-kode pic 99. 77 transaction-kode pic 99.
88 valid-kode value 4, 8 thru 15. 88 valid-kode value 4, 8 thru 15.
88 create value 10. 88 create value 10.
88 destroy value 15. 88 destroy value 15.
procedure division. procedure division.
main section. main section.
* *
* Some code leading to "transacion-kode" getting a value * Some code leading to "transacion-kode" getting a value
* *
move 10 to transaction-kode. move 10 to transaction-kode.
* *
* Testing the conditions * Testing the conditions
* *
if valid-kode then if valid-kode then
if create then if create then
perform p-create thru p-create-end perform p-create thru p-create-end
else else
if destroy then if destroy then
perform p-destroy thru p-destroy-end perform p-destroy thru p-destroy-end
else else
perform ordinary-transaction perform ordinary-transaction
thru ordinary-transaction-end. thru ordinary-transaction-end.
* *
p-create. p-create.
* some creation code * some creation code
p-create-end. p-create-end.
exit. exit.
p-destroy. p-destroy.
* some destruction code * some destruction code
p-destroy-end. p-destroy-end.
exit. exit.
ordinary-transaction. ordinary-transaction.
* some ordinary data processing code * some ordinary data processing code
ord-trns-1. ord-trns-1.
ord-trns-2. ord-trns-2.
ordinary-transaction-end. ordinary-transaction-end.
exit. exit.

@ -1,349 +1,349 @@
#include <a.h> #include <a.h>
#include <a.h> #include <a.h>
#include <a.h> #include <a.h>
using namespace a.b.c a; using namespace a.b.c a;
PREPROCESSOR() PREPROCESSOR()
BEGIN_MESSAGE_MAP() BEGIN_MESSAGE_MAP()
ON_COMMAND() ON_COMMAND()
END_MESSAGE_MAP() END_MESSAGE_MAP()
extern struct x y; extern struct x y;
static const class Example : static const class Example :
Int1, Int2, Int3 Int1, Int2, Int3
{ {
public: public:
Example::~Example() : Example::~Example() :
S1(), S1(),
S2(), S2(),
S3() { S3() {
// if statements with empty braces // if statements with empty braces
if( x ) { } if( x ) { }
else if( x ) { } else if( x ) { }
else { } else { }
// if statements with exactly one braced statement // if statements with exactly one braced statement
if( x ) { if( x ) {
statement; statement;
} }
else if( x ) { else if( x ) {
statement; statement;
} }
else { else {
statement; statement;
} }
// special 'if' cases // special 'if' cases
if( x ) { if( x ) {
statement; statement;
} }
else { else {
statement; statement;
} }
if( x ) { if( x ) {
statement; statement;
statement; statement;
} }
else { else {
statement; statement;
statement; statement;
} }
// if statements with a single implicit substatement // if statements with a single implicit substatement
if( x ) if( x )
statement; statement;
else if( x ) else if( x )
statement; statement;
else else
statement; statement;
// if statements with multiple statements // if statements with multiple statements
if( x ) { if( x ) {
statement; statement;
statement; statement;
} }
else if( x ) { else if( x ) {
statement; statement;
statement; statement;
} }
else { else {
statement; statement;
statement; statement;
} }
// while statements with a single implicit substatement // while statements with a single implicit substatement
while( x ) while( x )
statement; statement;
// while statements with a single implicit 'if' substatement // while statements with a single implicit 'if' substatement
while( x ) while( x )
if( x ) if( x )
statement; statement;
// while with multiple statements // while with multiple statements
while( x ) { while( x ) {
statement; statement;
statement; statement;
} }
// labeled statement // labeled statement
label: label:
statement; statement;
// for statements with a single braced statement // for statements with a single braced statement
for ( x; x; x ) { for ( x; x; x ) {
statement; statement;
} }
// do statements with a single braced substatement // do statements with a single braced substatement
do { do {
statement; statement;
} while ( false ); } while ( false );
// do statement with an empty block // do statement with an empty block
do { } while ( x ); do { } while ( x );
// local blocks // local blocks
{ {
statement; statement;
} }
/* Switch blocks: /* Switch blocks:
* *
* You can have case substatements be aligned by giving an example like: * You can have case substatements be aligned by giving an example like:
* *
* case 1: statement; * case 1: statement;
* *
* statement; * statement;
* *
* statement; * statement;
* *
* etc... * etc...
*/ */
switch( c ) { switch( c ) {
case 1: case 1:
case 2: case 2:
case 3: case 3:
statement; statement;
statement; statement;
statement; statement;
case 4: case 4:
break; // case with exactly one substatement break; // case with exactly one substatement
default: default:
break; break;
} }
} }
void method( const myClass<item> &x, int [][][] c, ... ) { void method( const myClass<item> &x, int [][][] c, ... ) {
// try-catch-finally with empty bodies // try-catch-finally with empty bodies
try { } try { }
catch(Throwable e) { } catch(Throwable e) { }
finally { } finally { }
// try-catch-finally with exactly one statement // try-catch-finally with exactly one statement
try { try {
statement; statement;
} }
catch( Throwable t ) { catch( Throwable t ) {
statement; statement;
} }
finally { finally {
statement; statement;
} }
// try-catch-finally with multiple statements // try-catch-finally with multiple statements
try { try {
statement; statement;
statement; statement;
} }
catch( Throwable e ) { catch( Throwable e ) {
statement; statement;
statement; statement;
} }
finally { finally {
statement; statement;
statement; statement;
statement; statement;
} }
} }
}; };
// enum statement // enum statement
static typedef enum x static typedef enum x
{ {
x, x,
y, y,
z, z,
}; };
// simple typedef // simple typedef
typedef interface static short int x; typedef interface static short int x;
namespace x namespace x
{ {
// template header // template header
template <class T> template <class T>
x y z v() const; x y z v() const;
// pure virtual function, using c-style formal parameters with double parens // pure virtual function, using c-style formal parameters with double parens
void v(()) = 0; void v(()) = 0;
// function with one single line statement and c-style formal parameters // function with one single line statement and c-style formal parameters
void v(( int i )) { void v(( int i )) {
statement; statement;
}; };
// function with no statements // function with no statements
myClass<myType>::method() { } myClass<myType>::method() { }
}; };
template <T> class x template <T> class x
{ {
public: public:
// operator declarations // operator declarations
int operator +(); int operator +();
int operator [](); int operator []();
// template method // template method
static void A<x>::method() [][][] { static void A<x>::method() [][][] {
asm asm
{ {
- Assembler statements - - Assembler statements -
The outside braces are formatted but the asm code is passed through The outside braces are formatted but the asm code is passed through
unchanged. unchanged.
} }
asm Single line assembler statements are also just passed through asm Single line assembler statements are also just passed through
} }
extern void oldStyleFunction() extern void oldStyleFunction()
int a; int a;
int b; int b;
int c; { int c; {
// various simple statements // various simple statements
long int a, b, c; long int a, b, c;
long double [] i; long double [] i;
goto x; goto x;
delete [] x; delete [] x;
delete [][][] x; delete [][][] x;
return x; return x;
continue label; continue label;
throw e; throw e;
// c-style function calls with double parens // c-style function calls with double parens
b((a, b, c)); b((a, b, c));
a(()); a(());
// expressions // expressions
new Object()->field.method(); new Object()->field.method();
s = "string" s = "string"
"split across lines"; "split across lines";
method(a, B::C, 'd'); method(a, B::C, 'd');
z = j[0][0][0] || k * 3 >> ++i + "0" > i++ & (i) == !j; z = j[0][0][0] || k * 3 >> ++i + "0" > i++ & (i) == !j;
int *v; int *v;
int &v; int &v;
x = x * *x; x = x * *x;
(int *)x; (int *)x;
int (*functionPointer)( x, y, z ); int (*functionPointer)( x, y, z );
h[0] += a ? b : ((int)c).d; h[0] += a ? b : ((int)c).d;
new Handler(); new Handler();
} }
} a, b, c; // struct instances } a, b, c; // struct instances
class Class2 class Class2
{ {
/* Array creation with multiple non-array elements. /* Array creation with multiple non-array elements.
* *
* If you give this example with the elements on the same line, then * If you give this example with the elements on the same line, then
* Polystyle will automatically vertically align them into a grid when it * Polystyle will automatically vertically align them into a grid when it
* fits your code to the page. An alternate style is to have each * fits your code to the page. An alternate style is to have each
* element on its own line, like this: * element on its own line, like this:
* { * {
* x, * x,
* y * y
* z * z
* } * }
*/ */
boolean *bools1 = boolean *bools1 =
{ {
x, y, z x, y, z
}; };
// array creation with a single element // array creation with a single element
boolean bools2 = { x }; boolean bools2 = { x };
// array creation with no elements // array creation with no elements
boolean bools3 = { }; boolean bools3 = { };
// multidimensional array creation // multidimensional array creation
const int *** array = const int *** array =
{ {
{ 1, 2, 3 }, { 1, 2, 3 },
{ 1, 2, 3 }, { 1, 2, 3 },
{ 1, 2, 3 }, { 1, 2, 3 },
}; };
}; };
#if x #if x
#define x #define x
#elif a #elif a
#define x #define x
#else #else
#define x #define x
#define x #define x
#define x #define x
#endif #endif
// see if multi line macros are safely handled: // see if multi line macros are safely handled:
#define multilinemacro do { x= x+5; } while (0); \ #define multilinemacro do { x= x+5; } while (0); \
printf("a multilinemacro"); \ printf("a multilinemacro"); \
printf("a multilinemacro2"); printf("a multilinemacro2");

@ -1,272 +1,272 @@
/* General /* General
/*******************************/ /*******************************/
body body
{ {
font-size: Small; font-size: Small;
margin: 30px 0 20px 0; margin: 30px 0 20px 0;
background: url(images/background.jpg); background: url(images/background.jpg);
} }
span span
{ {
font-family: Tahoma,serif; font-family: Tahoma,serif;
} }
/* Page /* Page
/*******************************/ /*******************************/
#page #page
{ {
width: 808px; width: 808px;
margin: 0 auto; margin: 0 auto;
position: relative; position: relative;
} }
/* Links general /* Links general
/*******************************/ /*******************************/
a a
{ {
color: #36b; color: #36b;
} }
a:link { text-decoration:none; } a:link { text-decoration:none; }
a:visited { text-decoration:none; } a:visited { text-decoration:none; }
a:active { text-decoration:none; } a:active { text-decoration:none; }
a:focus { text-decoration:none; } a:focus { text-decoration:none; }
a:hover { text-decoration:underline; } a:hover { text-decoration:underline; }
/* Links external /* Links external
/*******************************/ /*******************************/
a.external a.external
{ {
background: url("images/externallinks.png") center right no-repeat; background: url("images/externallinks.png") center right no-repeat;
padding-right: 13px; padding-right: 13px;
} }
/* Header /* Header
/*******************************/ /*******************************/
#header #header
{ {
float: left; float: left;
width: 800px; width: 800px;
height: 171px; height: 171px;
background-image: url(images/banner.jpg); background-image: url(images/banner.jpg);
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: left bottom; background-position: left bottom;
padding-left: 20px; padding-left: 20px;
} }
/* Tabs /* Tabs
/*******************************/ /*******************************/
#tabs #tabs
{ {
} }
#tabs ul #tabs ul
{ {
list-style: none; list-style: none;
display: inline; display: inline;
} }
#tabs li #tabs li
{ {
width: 125px; width: 125px;
float: left; float: left;
background-image: url(images/tab3.jpg); background-image: url(images/tab3.jpg);
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center top; background-position: center top;
text-align: center; text-align: center;
} }
#tabs li a #tabs li a
{ {
font-family: sans-serif; font-family: sans-serif;
font-size: 100%; font-size: 100%;
font-weight: normal; font-weight: normal;
color: black; color: black;
height: 28px; height: 28px;
padding: 21px 0 0 0; padding: 21px 0 0 0;
display: block; display: block;
} }
#tabs li a:link { text-decoration:none; } #tabs li a:link { text-decoration:none; }
#tabs li a:visited { text-decoration:none; } #tabs li a:visited { text-decoration:none; }
#tabs li a:active { text-decoration:none; } #tabs li a:active { text-decoration:none; }
#tabs li a:focus { text-decoration:none; } #tabs li a:focus { text-decoration:none; }
#tabs li a:hover #tabs li a:hover
{ {
width: 125px; width: 125px;
float: left; float: left;
background-image: url(images/tab3hover.jpg); background-image: url(images/tab3hover.jpg);
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center top; background-position: center top;
text-align: center; text-align: center;
} }
#tabs #current #tabs #current
{ {
background-image: url(images/tab3_selected.jpg); background-image: url(images/tab3_selected.jpg);
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center top; background-position: center top;
margin-top: -5px; margin-top: -5px;
} }
#tabs #current a #tabs #current a
{ {
background-image: url(images/tab3_selected.jpg); background-image: url(images/tab3_selected.jpg);
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center top; background-position: center top;
padding: 27px 0; padding: 27px 0;
height: 17px; height: 17px;
font-weight: bold; font-weight: bold;
} }
/* Main /* Main
*******************************/ *******************************/
#main #main
{ {
background-image: url(images/page_middle.png); background-image: url(images/page_middle.png);
background-repeat: repeat-y; background-repeat: repeat-y;
float: left; float: left;
} }
/* Content /* Content
/*******************************/ /*******************************/
#content #content
{ {
padding: 22px; padding: 22px;
margin: 0; margin: 0;
width: 541px; width: 541px;
float: left; float: left;
} }
#content h1, h2, h3, h4, h5, h6, h7, #content h2 a #content h1, h2, h3, h4, h5, h6, h7, #content h2 a
{ {
font-family: Tahoma,serif; font-family: Tahoma,serif;
margin-bottom: 10px; margin-bottom: 10px;
margin-top: 10px; margin-top: 10px;
} }
#content h1 #content h1
{ {
font-size: x-large; font-size: x-large;
} }
#content h2 #content h2
{ {
font-size: large; font-size: large;
} }
#content p, #content ul, #content a, #content ol #content p, #content ul, #content a, #content ol
{ {
margin-top: 10px; margin-top: 10px;
font-family: verdana, sans-serif; font-family: verdana, sans-serif;
} }
/* Progress /* Progress
/*******************************/ /*******************************/
.progressframe .progressframe
{ {
border: 1px black solid; border: 1px black solid;
width: 100%; width: 100%;
} }
.progress .progress
{ {
font-family: Tahoma,serif; font-family: Tahoma,serif;
font-weight: bold; font-weight: bold;
/*padding-left: 10px;*/ /*padding-left: 10px;*/
background-color: red; background-color: red;
color: white; color: white;
} }
.p0 { width: 0%; color: black; background-color: white; } .p0 { width: 0%; color: black; background-color: white; }
.p5 { width: 5%; background-color: rgb(240,16,0); } .p5 { width: 5%; background-color: rgb(240,16,0); }
.p10 { width: 10%; background-color: rgb(240,32,0); } .p10 { width: 10%; background-color: rgb(240,32,0); }
.p15 { width: 15%; background-color: rgb(240,48,0); } .p15 { width: 15%; background-color: rgb(240,48,0); }
.p20 { width: 20%; background-color: rgb(240,64,0); } .p20 { width: 20%; background-color: rgb(240,64,0); }
.p25 { width: 25%; background-color: rgb(240,80,0); } .p25 { width: 25%; background-color: rgb(240,80,0); }
.p30 { width: 30%; background-color: rgb(240,80,0); } .p30 { width: 30%; background-color: rgb(240,80,0); }
.p35 { width: 35%; background-color: rgb(240,96,0); } .p35 { width: 35%; background-color: rgb(240,96,0); }
.p40 { width: 40%; background-color: rgb(240,96,0); } .p40 { width: 40%; background-color: rgb(240,96,0); }
.p45 { width: 45%; background-color: rgb(240,112,0); } .p45 { width: 45%; background-color: rgb(240,112,0); }
.p50 { width: 50%; background-color: rgb(240,112,0); } .p50 { width: 50%; background-color: rgb(240,112,0); }
.p55 { width: 55%; background-color: rgb(224,128,0); } .p55 { width: 55%; background-color: rgb(224,128,0); }
.p60 { width: 60%; background-color: rgb(208,144,0); } .p60 { width: 60%; background-color: rgb(208,144,0); }
.p65 { width: 65%; background-color: rgb(192,160,0); } .p65 { width: 65%; background-color: rgb(192,160,0); }
.p70 { width: 70%; background-color: rgb(176,176,0); } .p70 { width: 70%; background-color: rgb(176,176,0); }
.p75 { width: 75%; background-color: rgb(176,176,0); } .p75 { width: 75%; background-color: rgb(176,176,0); }
.p80 { width: 80%; background-color: rgb(160,192,0); } .p80 { width: 80%; background-color: rgb(160,192,0); }
.p85 { width: 85%; background-color: rgb(160,192,0); } .p85 { width: 85%; background-color: rgb(160,192,0); }
.p90 { width: 90%; background-color: rgb(144,208,0); } .p90 { width: 90%; background-color: rgb(144,208,0); }
.p95 { width: 95%; background-color: rgb(144,208,0); } .p95 { width: 95%; background-color: rgb(144,208,0); }
.p100 { width: 100%; background-color: green; } .p100 { width: 100%; background-color: green; }
/* Sidebar /* Sidebar
/*******************************/ /*******************************/
#sidebar #sidebar
{ {
margin: 0; margin: 0;
padding: 10px; padding: 10px;
width: 195px; width: 195px;
font-family: verdana, sans-serif; font-family: verdana, sans-serif;
float: right; float: right;
} }
#sidebar a #sidebar a
{ {
border : none; border : none;
} }
#sidebar a:link { text-decoration:none; } #sidebar a:link { text-decoration:none; }
#sidebar a:visited { text-decoration:none; } #sidebar a:visited { text-decoration:none; }
#sidebar a:active { text-decoration:none; } #sidebar a:active { text-decoration:none; }
#sidebar a:focus { text-decoration:none; } #sidebar a:focus { text-decoration:none; }
#sidebar a:hover { text-decoration:underline; } #sidebar a:hover { text-decoration:underline; }
#sidebar a img #sidebar a img
{ {
border : none; border : none;
} }
#sidebar h1 #sidebar h1
{ {
font-size: 10pt; font-size: 10pt;
font-weight: bold; font-weight: bold;
margin-bottom: 0; margin-bottom: 0;
} }
#sidebar ul #sidebar ul
{ {
vertical-align: middle; vertical-align: middle;
} }
#sidebar li #sidebar li
{ {
list-style-image: url(images/icon_page.gif); list-style-image: url(images/icon_page.gif);
} }
/* Footer /* Footer
/*******************************/ /*******************************/
#footer #footer
{ {
font-family: verdana, sans-serif; font-family: verdana, sans-serif;
background: url(images/page_bottom.png); background: url(images/page_bottom.png);
font-size: x-small; font-size: x-small;
font-weight: bold; font-weight: bold;
color: #CCCCCC; color: #CCCCCC;
height: 44px; height: 44px;
width: 800px; width: 800px;
clear: both; clear: both;
} }
#footer p #footer p
{ {
padding: 0px 0 0 20px; padding: 0px 0 0 20px;
} }
#footer a #footer a
{ {
color: #CCE0F5; color: #CCE0F5;
} }

@ -1,33 +1,33 @@
module module1 module module1
! Identity of a utility ! Identity of a utility
! ____________________________________________________________________ ! ____________________________________________________________________
character (len=*), parameter :: xyz = & character (len=*), parameter :: xyz = &
"I am just a more or less long string." "I am just a more or less long string."
character (len=*), parameter :: zhlp = '( & character (len=*), parameter :: zhlp = '( &
&"This program is free software; you can redistribute it and/or modify"/& &"This program is free software; you can redistribute it and/or modify"/&
&"____________________________________________________________________")' &"____________________________________________________________________")'
integer:: n integer:: n
contains contains
recursive subroutine sub1(x) recursive subroutine sub1(x)
integer,intent(inout):: x integer,intent(inout):: x
integer:: y integer:: y
y=0 y=0
if (x<n) then if (x<n) then
x= x + 1 x= x + 1
y =x**2 y =x**2
print *, 'x = ', x,', y = ', y print *, 'x = ', x,', y = ', y
call sub1(x) call sub1(x)
print *, 'x = ', x,', y = ', y print *, 'x = ', x,', y = ', y
end if end if
end subroutine sub1 end subroutine sub1
end module module1 end module module1
program main program main
use module1 use module1
integer:: x = 0 integer:: x = 0
print *, 'Enter number of repeats' print *, 'Enter number of repeats'
read (*,*) n read (*,*) n
call sub1(x) call sub1(x)
end program main end program main

@ -1,4 +1,4 @@
<?php <?php
if($code == BAD){$action = REWRITE;}else{$action = KEEP;} if($code == BAD){$action = REWRITE;}else{$action = KEEP;}
for($i=0; $i<10;$i++){while($j>0){$j++;doCall($i+$j);if($k){$k/=10;}}} for($i=0; $i<10;$i++){while($j>0){$j++;doCall($i+$j);if($k){$k/=10;}}}
?> ?>

@ -1,55 +1,55 @@
print "Help Desk -- What Editor do you use?"; print "Help Desk -- What Editor do you use?";
chomp($editor = <STDIN>); chomp($editor = <STDIN>);
if ($editor =~ /emacs/i) { if ($editor =~ /emacs/i) {
print "Why aren't you using vi?\n"; print "Why aren't you using vi?\n";
} elsif ($editor =~ /vi/i) { } elsif ($editor =~ /vi/i) {
print "Why aren't you using emacs?\n"; print "Why aren't you using emacs?\n";
} else { } else {
print "I think that's the problem\n"; print "I think that's the problem\n";
} }
{ {
L9140: L9140:
if ($msccom::obj==$msccom::food) { if ($msccom::obj==$msccom::food) {
goto L8142; goto L8142;
} }
if ($msccom::obj==$msccom::bird||$msccom::obj==$msccom::snake||$msccom::obj==$msccom::clam||$msccom::obj==$msccom::oyster||$msccom::obj==$msccom::dwarf||$msccom::obj==$msccom::dragon||$msccom::obj==$msccom::troll||$msccom::obj==$msccom::bear) { if ($msccom::obj==$msccom::bird||$msccom::obj==$msccom::snake||$msccom::obj==$msccom::clam||$msccom::obj==$msccom::oyster||$msccom::obj==$msccom::dwarf||$msccom::obj==$msccom::dragon||$msccom::obj==$msccom::troll||$msccom::obj==$msccom::bear) {
$msccom::spk=71; $msccom::spk=71;
} }
goto L2011; goto L2011;
# #
# DRINK. IF NO OBJECT, ASSUME WATER AND LOOK FOR IT HERE. IF WATER IS # DRINK. IF NO OBJECT, ASSUME WATER AND LOOK FOR IT HERE. IF WATER IS
# THE BOTTLE, DRINK THAT, ELSE MUST BE AT A WATER LOC, SO DRINK STREAM. # THE BOTTLE, DRINK THAT, ELSE MUST BE AT A WATER LOC, SO DRINK STREAM.
# #
L9150: L9150:
if ($msccom::obj==0&&$liqloc->($placom::loc)!=$msccom::water&&($liq->(0)!=$msccom::water||!$here->($msccom::bottle))) { if ($msccom::obj==0&&$liqloc->($placom::loc)!=$msccom::water&&($liq->(0)!=$msccom::water||!$here->($msccom::bottle))) {
goto L8000; goto L8000;
} }
if ($msccom::obj!=0&&$msccom::obj!=$msccom::water) { if ($msccom::obj!=0&&$msccom::obj!=$msccom::water) {
$msccom::spk=110; $msccom::spk=110;
} }
if ($msccom::spk==110||$liq->(0)!=$msccom::water||!$here->($msccom::bottle)) { if ($msccom::spk==110||$liq->(0)!=$msccom::water||!$here->($msccom::bottle)) {
goto L2011; goto L2011;
} }
$placom::prop->($msccom::bottle)=1; $placom::prop->($msccom::bottle)=1;
$placom::place->($msccom::water)=0; $placom::place->($msccom::water)=0;
$msccom::spk=74; $msccom::spk=74;
goto L2011; goto L2011;
# #
# RUB. YIELDS VARIOUS SNIDE REMARKS. # RUB. YIELDS VARIOUS SNIDE REMARKS.
# #
L9160: L9160:
if ($msccom::obj!=$placom::lamp) { if ($msccom::obj!=$placom::lamp) {
$msccom::spk=76; $msccom::spk=76;
} }
goto L2011; goto L2011;
# #
# THROW. SAME AS DISCARD UNLESS AXE. THEN SAME AS ATTACK EXCEPT IGNOR # THROW. SAME AS DISCARD UNLESS AXE. THEN SAME AS ATTACK EXCEPT IGNOR
# AND IF DWARF IS PRESENT THEN ONE MIGHT BE KILLED. (ONLY WAY TO DO SO # AND IF DWARF IS PRESENT THEN ONE MIGHT BE KILLED. (ONLY WAY TO DO SO
# AXE ALSO SPECIAL FOR DRAGON, BEAR, AND TROLL. TREASURES SPECIAL FOR # AXE ALSO SPECIAL FOR DRAGON, BEAR, AND TROLL. TREASURES SPECIAL FOR
# #
L9170: L9170:
if ($toting->($msccom::rod2)&&$msccom::obj==$msccom::rod&&!$toting->($msccom::rod)) { if ($toting->($msccom::rod2)&&$msccom::obj==$msccom::rod&&!$toting->($msccom::rod)) {
$msccom::obj=$msccom::rod2; $msccom::obj=$msccom::rod2;
} }
} }

@ -1,23 +1,23 @@
#! /usr/bin/env python #! /usr/bin/env python
"Replace CRLF with LF in argument files. Print names of changed files." "Replace CRLF with LF in argument files. Print names of changed files."
import sys, os import sys, os
def main(): def main():
for filename in sys.argv[1:]: for filename in sys.argv[1:]:
if os.path.isdir(filename): if os.path.isdir(filename):
print filename, "Directory!" print filename, "Directory!"
continue continue
data = open(filename, "rb").read() data = open(filename, "rb").read()
if '\0' in data: if '\0' in data:
print filename, "Binary!" print filename, "Binary!"
continue continue
newdata = data.replace("\r\n", "\n") newdata = data.replace("\r\n", "\n")
if newdata != data: if newdata != data:
print filename print filename
f = open(filename, "wb") f = open(filename, "wb")
f.write(newdata) f.write(newdata)
f.close() f.close()
if __name__ == '__main__': if __name__ == '__main__':
main() main()

@ -1,37 +1,37 @@
CREATE PACKAGE BODY b IS CREATE PACKAGE BODY b IS
PROCEDURE proc1 IS PROCEDURE proc1 IS
BEGIN BEGIN
IF 7 <> 5 THEN IF 7 <> 5 THEN
FOR rec IN (SELECT * FROM dual FOR rec IN (SELECT * FROM dual
WHERE g = 5) LOOP WHERE g = 5) LOOP
NULL; NULL;
END LOOP; END LOOP;
END IF; END IF;
END; END;
PROCEDURE recurse IS PROCEDURE recurse IS
b number:=5; b number:=5;
d456 number:=456; d456 number:=456;
BEGIN BEGIN
recurse; recurse;
proc1; proc1;
a := (a + 1 a := (a + 1
+4 +4
+ 5 + 5
+ 8); + 8);
c := f + 4 + 34; c := f + 4 + 34;
total := earth +sky; total := earth +sky;
--this is comment --this is comment
uk:=h; uk:=h;
g:=l; g:=l;
exception exception
when no_data then when no_data then
hello; hello;
END; END;
BEGIN BEGIN
NULL; NULL;
END; END;

@ -1,50 +1,50 @@
Dim docRoot As New ChilkatXml Dim docRoot As New ChilkatXml
Dim success As Long Dim success As Long
docRoot.Tag = "myDoc" docRoot.Tag = "myDoc"
' To zip compress the content, set this flag to 1 ' To zip compress the content, set this flag to 1
Dim zipContent As Long Dim zipContent As Long
zipContent = 0 zipContent = 0
' To 128-bit AES encrypt the content, set this flag to 1 ' To 128-bit AES encrypt the content, set this flag to 1
Dim encryptContent As Long Dim encryptContent As Long
encryptContent = 0 encryptContent = 0
Dim encryptPassword As String Dim encryptPassword As String
encryptPassword = "" encryptPassword = ""
Dim pdfNode As ChilkatXml Dim pdfNode As ChilkatXml
Set pdfNode = docRoot.NewChild("pdf","") Set pdfNode = docRoot.NewChild("pdf","")
' Embed a PDF into XML ' Embed a PDF into XML
success = pdfNode.SetBinaryContentFromFile("sample.pdf",zipContent,encryptContent,encryptPassword) success = pdfNode.SetBinaryContentFromFile("sample.pdf",zipContent,encryptContent,encryptPassword)
If (success <> 1) Then If (success <> 1) Then
MsgBox pdfNode.LastErrorText MsgBox pdfNode.LastErrorText
Exit Sub Exit Sub
End If End If
MsgBox pdfNode.LastErrorText MsgBox pdfNode.LastErrorText
' Display the entire XML document: ' Display the entire XML document:
Text1.Text = Text1.Text & docRoot.GetXml() & vbCrLf Text1.Text = Text1.Text & docRoot.GetXml() & vbCrLf
' Get the Base64-encoded content and display it: ' Get the Base64-encoded content and display it:
Text1.Text = Text1.Text & pdfNode.Content & vbCrLf Text1.Text = Text1.Text & pdfNode.Content & vbCrLf
' Extract the binary content from XML: ' Extract the binary content from XML:
Dim unzipContent As Long Dim unzipContent As Long
unzipContent = 0 unzipContent = 0
Dim decryptContent As Long Dim decryptContent As Long
decryptContent = 0 decryptContent = 0
Dim decryptPassword As String Dim decryptPassword As String
decryptPassword = "" decryptPassword = ""
success = pdfNode.SaveBinaryContent("out.pdf",unzipContent,decryptContent,decryptPassword) success = pdfNode.SaveBinaryContent("out.pdf",unzipContent,decryptContent,decryptPassword)
If (success <> 1) Then If (success <> 1) Then
MsgBox pdfNode.LastErrorText MsgBox pdfNode.LastErrorText
Exit Sub Exit Sub
End If End If
MsgBox "Success!" MsgBox "Success!"

File diff suppressed because it is too large Load Diff

@ -1,161 +1,161 @@
/***************************************************************************** /*****************************************************************************
* The contents of this file are subject to the RECIPROCAL PUBLIC LICENSE * The contents of this file are subject to the RECIPROCAL PUBLIC LICENSE
* Version 1.1 ("License"); You may not use this file except in compliance * Version 1.1 ("License"); You may not use this file except in compliance
* with the License. You may obtain a copy of the License at * with the License. You may obtain a copy of the License at
* http://opensource.org/licenses/rpl.php. Software distributed under the * http://opensource.org/licenses/rpl.php. Software distributed under the
* License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, * License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,
* either express or implied. * either express or implied.
* *
* @product: phpStylist * @product: phpStylist
* @author: Mr. Milk (aka Marcelo Leite) * @author: Mr. Milk (aka Marcelo Leite)
* @email: mrmilk@anysoft.com.br * @email: mrmilk@anysoft.com.br
* @version: 1.0 * @version: 1.0
* @date: 2007-11-22 * @date: 2007-11-22
* *
*****************************************************************************/ *****************************************************************************/
CONTENTS CONTENTS
-------- --------
Below you will find instructions on how to use phpStylist: Below you will find instructions on how to use phpStylist:
- Web Server Usage - Web Server Usage
- Command Line Mode - Command Line Mode
- PSPad Integration - PSPad Integration
- Command Line Options - Command Line Options
============================================================================== ==============================================================================
WEB SERVER USAGE WEB SERVER USAGE
---------------- ----------------
phpStylist runs as a single file on you web server. You don't need any special phpStylist runs as a single file on you web server. You don't need any special
module or library. It has been tested with php from 4.4.2 to 5.2.2. module or library. It has been tested with php from 4.4.2 to 5.2.2.
Save phpStylist.php to your web server folder and start it from the browser. Save phpStylist.php to your web server folder and start it from the browser.
For example, http://localhost/phpStylist.php. For example, http://localhost/phpStylist.php.
On the left menu, you will see more than 30 options that you can use to adjust On the left menu, you will see more than 30 options that you can use to adjust
the application to your coding style. All options are sticky based on cookies. the application to your coding style. All options are sticky based on cookies.
Select one of your files or click on the button "Use Sample" and try each Select one of your files or click on the button "Use Sample" and try each
option to see what it is all about. option to see what it is all about.
If you want to type in or paste code directly into the app, first click on the If you want to type in or paste code directly into the app, first click on the
option "SHOW EDITABLE TEXT BOX". The right panel will then become editable. option "SHOW EDITABLE TEXT BOX". The right panel will then become editable.
COMMAND LINE MODE COMMAND LINE MODE
----------------- -----------------
You can also use phpStylist through the command line to automatically format You can also use phpStylist through the command line to automatically format
local files. You will still need php installed. local files. You will still need php installed.
First, find the exact location of you php.exe and the exact location where you First, find the exact location of you php.exe and the exact location where you
placed phpStylist. Let's say they are in placed phpStylist. Let's say they are in
"C:\Program Files\PHP\php.exe" and "C:\Program Files\Apache\htdocs\phpStylist.php" "C:\Program Files\PHP\php.exe" and "C:\Program Files\Apache\htdocs\phpStylist.php"
You then must run php passing phpStylist.php along with the -f argument. At You then must run php passing phpStylist.php along with the -f argument. At
this point the command line would be like this: this point the command line would be like this:
"C:\Program Files\PHP\php.exe" -f "C:\Program Files\Apache\htdocs\phpStylist.php" "C:\Program Files\PHP\php.exe" -f "C:\Program Files\Apache\htdocs\phpStylist.php"
But that's not all. You also need to add the full path of the source file you But that's not all. You also need to add the full path of the source file you
want to format and the options you want to be used. For each of those 34 options want to format and the options you want to be used. For each of those 34 options
you see on the web server usage, there will be an option on the command line. you see on the web server usage, there will be an option on the command line.
You can use the "--help" option to see a list of options. You can use the "--help" option to see a list of options.
Use the --help switch to see all options (full list at the end of this file): Use the --help switch to see all options (full list at the end of this file):
"C:\Program Files\PHP\php.exe" -f "C:\Program Files\Apache\htdocs\phpStylist.php" --help "C:\Program Files\PHP\php.exe" -f "C:\Program Files\Apache\htdocs\phpStylist.php" --help
The first phpStylist paramenter MUST be the source file name you want to The first phpStylist paramenter MUST be the source file name you want to
format. After the file name, you can add as many options as you want, in any format. After the file name, you can add as many options as you want, in any
order. It can get pretty big, but it works. Another example: order. It can get pretty big, but it works. Another example:
"C:\Program Files\PHP\php.exe" -f "C:\Program Files\Apache\htdocs\phpStylist.php" "C:\Program Files\PHP\php.exe" -f "C:\Program Files\Apache\htdocs\phpStylist.php"
"C:\Program Files\Apache\htdocs\source_file_to_format.php" --space_after_if "C:\Program Files\Apache\htdocs\source_file_to_format.php" --space_after_if
--indent_case --indent_size 4 --space_after_comma --line_before_function --indent_case --indent_size 4 --space_after_comma --line_before_function
Output will be to STDOUT, so if you want to send it to a file, append "> filename" Output will be to STDOUT, so if you want to send it to a file, append "> filename"
at the end of the command line. In our above example: at the end of the command line. In our above example:
"C:\Program Files\PHP\php.exe" -f "C:\Program Files\Apache\htdocs\phpStylist.php" "C:\Program Files\PHP\php.exe" -f "C:\Program Files\Apache\htdocs\phpStylist.php"
"C:\Program Files\Apache\htdocs\source_file_to_format.php" --space_after_if "C:\Program Files\Apache\htdocs\source_file_to_format.php" --space_after_if
--indent_case --indent_size 4 --line_before_comment_multi --vertical_array --indent_case --indent_size 4 --line_before_comment_multi --vertical_array
--line_before_function > "C:\Code Library\Formatted Code\destination_file.php" --line_before_function > "C:\Code Library\Formatted Code\destination_file.php"
Don't forget the quotes around long file names. Don't forget the quotes around long file names.
PSPAD INTEGRATION PSPAD INTEGRATION
----------------- -----------------
PSPad is a popular, powerful and free code editor. It can be extended through PSPad is a popular, powerful and free code editor. It can be extended through
scripting. I have also created a script that will automatically format php code scripting. I have also created a script that will automatically format php code
from inside the editor. In fact, the script runs phpStylist in command line from inside the editor. In fact, the script runs phpStylist in command line
mode, sending the current editor file name. It then get the results and replace mode, sending the current editor file name. It then get the results and replace
the code in the editor. the code in the editor.
Save the file phpStylist.js to your PSPad javascript folder, usually Save the file phpStylist.js to your PSPad javascript folder, usually
C:\Program Files\PSPad\Script\JScript. C:\Program Files\PSPad\Script\JScript.
Open the phpStylist.js file and edit the first two variables: Open the phpStylist.js file and edit the first two variables:
php_path = "C:\\Program Files\\xampp\\php\\php.exe"; php_path = "C:\\Program Files\\xampp\\php\\php.exe";
stylist_path = "C:\\Program Files\\xampp\\htdocs\\phpStylist.php"; stylist_path = "C:\\Program Files\\xampp\\htdocs\\phpStylist.php";
Replace the paths with the appropriate for your system. Don't forget to double Replace the paths with the appropriate for your system. Don't forget to double
backslashes. backslashes.
You will also see all the options, some are commented out, some are active (the You will also see all the options, some are commented out, some are active (the
current setup is the one I use). Simply comment out or uncomment the options current setup is the one I use). Simply comment out or uncomment the options
you want to use and save the file. Restart PSPad or use the the option Scripts, you want to use and save the file. Restart PSPad or use the the option Scripts,
Recompile Scripts. Recompile Scripts.
Now, just open a php file on the editor and select phpStylist from the menu. Now, just open a php file on the editor and select phpStylist from the menu.
That's all. You can also select some block of code before using the option so That's all. You can also select some block of code before using the option so
you can reformat only that portion. Of course, try to select a full block such you can reformat only that portion. Of course, try to select a full block such
as a function. as a function.
If you don't use PSPad or don't want the integration you don't need the file If you don't use PSPad or don't want the integration you don't need the file
phpStylist.js. phpStylist.js.
FULL LIST OF OPTIONS FULL LIST OF OPTIONS
-------------------- --------------------
Indentation and General Formatting: Indentation and General Formatting:
--indent_size n n characters per indentation level --indent_size n n characters per indentation level
--indent_with_tabs Indent with tabs instead of spaces --indent_with_tabs Indent with tabs instead of spaces
--keep_redundant_lines Keep redundant lines --keep_redundant_lines Keep redundant lines
--space_inside_parentheses Space inside parentheses --space_inside_parentheses Space inside parentheses
--space_outside_parentheses Space outside parentheses --space_outside_parentheses Space outside parentheses
--space_after_comma Space after comma --space_after_comma Space after comma
Operators: Operators:
--space_around_assignment Space around = .= += -= *= /= <<< --space_around_assignment Space around = .= += -= *= /= <<<
--align_var_assignment Align block +3 assigned variables --align_var_assignment Align block +3 assigned variables
--space_around_comparison Space around == === != !== > >= < <= --space_around_comparison Space around == === != !== > >= < <=
--space_around_arithmetic Space around - + * / % --space_around_arithmetic Space around - + * / %
--space_around_logical Space around && || AND OR XOR << >> --space_around_logical Space around && || AND OR XOR << >>
--space_around_colon_question Space around ? : --space_around_colon_question Space around ? :
Functions, Classes and Objects: Functions, Classes and Objects:
--line_before_function Blank line before keyword --line_before_function Blank line before keyword
--line_before_curly_function Opening bracket on next line --line_before_curly_function Opening bracket on next line
--line_after_curly_function Blank line below opening bracket --line_after_curly_function Blank line below opening bracket
--space_around_obj_operator Space around -> --space_around_obj_operator Space around ->
--space_around_double_colon Space around :: --space_around_double_colon Space around ::
Control Structures: Control Structures:
--space_after_if Space between keyword and opening parentheses --space_after_if Space between keyword and opening parentheses
--else_along_curly Keep else/elseif along with bracket --else_along_curly Keep else/elseif along with bracket
--line_before_curly Opening bracket on next line --line_before_curly Opening bracket on next line
--add_missing_braces Add missing brackets to single line structs --add_missing_braces Add missing brackets to single line structs
--line_after_break Blank line after case "break" --line_after_break Blank line after case "break"
--space_inside_for Space between "for" elements --space_inside_for Space between "for" elements
--indent_case Extra indent for "Case" and "Default" --indent_case Extra indent for "Case" and "Default"
Arrays and Concatenation: Arrays and Concatenation:
--line_before_array Opening array parentheses on next line --line_before_array Opening array parentheses on next line
--vertical_array Non-empty arrays as vertical block --vertical_array Non-empty arrays as vertical block
--align_array_assignment Align block +3 assigned array elements --align_array_assignment Align block +3 assigned array elements
--space_around_double_arrow Space around double arrow --space_around_double_arrow Space around double arrow
--vertical_concat Concatenation as vertical block --vertical_concat Concatenation as vertical block
--space_around_concat Space around concat elements --space_around_concat Space around concat elements
Comments: Comments:
--line_before_comment_multi Blank line before multi-line comment (/*) --line_before_comment_multi Blank line before multi-line comment (/*)
--line_after_comment_multi Blank line after multi-line comment (/*) --line_after_comment_multi Blank line after multi-line comment (/*)
--line_before_comment Blank line before single line comments (//) --line_before_comment Blank line before single line comments (//)
--line_after_comment Blank line after single line comments (//) --line_after_comment Blank line after single line comments (//)

@ -1,75 +1,75 @@
# This file contains a class and a main program that perform three # This file contains a class and a main program that perform three
# related (though complimentary) formatting operations on Python # related (though complimentary) formatting operations on Python
# programs. When called as "pindent -c", it takes a valid Python # programs. When called as "pindent -c", it takes a valid Python
# program as input and outputs a version augmented with block-closing # program as input and outputs a version augmented with block-closing
# comments. When called as "pindent -d", it assumes its input is a # comments. When called as "pindent -d", it assumes its input is a
# Python program with block-closing comments and outputs a commentless # Python program with block-closing comments and outputs a commentless
# version. When called as "pindent -r" it assumes its input is a # version. When called as "pindent -r" it assumes its input is a
# Python program with block-closing comments but with its indentation # Python program with block-closing comments but with its indentation
# messed up, and outputs a properly indented version. # messed up, and outputs a properly indented version.
# A "block-closing comment" is a comment of the form '# end <keyword>' # A "block-closing comment" is a comment of the form '# end <keyword>'
# where <keyword> is the keyword that opened the block. If the # where <keyword> is the keyword that opened the block. If the
# opening keyword is 'def' or 'class', the function or class name may # opening keyword is 'def' or 'class', the function or class name may
# be repeated in the block-closing comment as well. Here is an # be repeated in the block-closing comment as well. Here is an
# example of a program fully augmented with block-closing comments: # example of a program fully augmented with block-closing comments:
# def foobar(a, b): # def foobar(a, b):
# if a == b: # if a == b:
# a = a+1 # a = a+1
# elif a < b: # elif a < b:
# b = b-1 # b = b-1
# if b > a: a = a-1 # if b > a: a = a-1
# # end if # # end if
# else: # else:
# print 'oops!' # print 'oops!'
# # end if # # end if
# # end def foobar # # end def foobar
# Note that only the last part of an if...elif...else... block needs a # Note that only the last part of an if...elif...else... block needs a
# block-closing comment; the same is true for other compound # block-closing comment; the same is true for other compound
# statements (e.g. try...except). Also note that "short-form" blocks # statements (e.g. try...except). Also note that "short-form" blocks
# like the second 'if' in the example must be closed as well; # like the second 'if' in the example must be closed as well;
# otherwise the 'else' in the example would be ambiguous (remember # otherwise the 'else' in the example would be ambiguous (remember
# that indentation is not significant when interpreting block-closing # that indentation is not significant when interpreting block-closing
# comments). # comments).
# The operations are idempotent (i.e. applied to their own output # The operations are idempotent (i.e. applied to their own output
# they yield an identical result). Running first "pindent -c" and # they yield an identical result). Running first "pindent -c" and
# then "pindent -r" on a valid Python program produces a program that # then "pindent -r" on a valid Python program produces a program that
# is semantically identical to the input (though its indentation may # is semantically identical to the input (though its indentation may
# be different). Running "pindent -e" on that output produces a # be different). Running "pindent -e" on that output produces a
# program that only differs from the original in indentation. # program that only differs from the original in indentation.
# Other options: # Other options:
# -s stepsize: set the indentation step size (default 8) # -s stepsize: set the indentation step size (default 8)
# -t tabsize : set the number of spaces a tab character is worth (default 8) # -t tabsize : set the number of spaces a tab character is worth (default 8)
# -e : expand TABs into spaces # -e : expand TABs into spaces
# file ... : input file(s) (default standard input) # file ... : input file(s) (default standard input)
# The results always go to standard output # The results always go to standard output
# Caveats: # Caveats:
# - comments ending in a backslash will be mistaken for continued lines # - comments ending in a backslash will be mistaken for continued lines
# - continuations using backslash are always left unchanged # - continuations using backslash are always left unchanged
# - continuations inside parentheses are not extra indented by -r # - continuations inside parentheses are not extra indented by -r
# but must be indented for -c to work correctly (this breaks # but must be indented for -c to work correctly (this breaks
# idempotency!) # idempotency!)
# - continued lines inside triple-quoted strings are totally garbled # - continued lines inside triple-quoted strings are totally garbled
# Secret feature: # Secret feature:
# - On input, a block may also be closed with an "end statement" -- # - On input, a block may also be closed with an "end statement" --
# this is a block-closing comment without the '#' sign. # this is a block-closing comment without the '#' sign.
# Possible improvements: # Possible improvements:
# - check syntax based on transitions in 'next' table # - check syntax based on transitions in 'next' table
# - better error reporting # - better error reporting
# - better error recovery # - better error recovery
# - check identifier after class/def # - check identifier after class/def
# The following wishes need a more complete tokenization of the source: # The following wishes need a more complete tokenization of the source:
# - Don't get fooled by comments ending in backslash # - Don't get fooled by comments ending in backslash
# - reindent continuation lines indicated by backslash # - reindent continuation lines indicated by backslash
# - handle continuation lines inside parentheses/braces/brackets # - handle continuation lines inside parentheses/braces/brackets
# - handle triple quoted strings spanning lines # - handle triple quoted strings spanning lines
# - realign comments # - realign comments
# - optionally do much more thorough reformatting, a la C indent # - optionally do much more thorough reformatting, a la C indent

File diff suppressed because it is too large Load Diff

@ -1,81 +1,81 @@
[header] [header]
categories=General options categories=General options
cfgFileParameterEnding=" " cfgFileParameterEnding=" "
configFilename= configFilename=
fileTypes=*.jsp|*.html|*.xml fileTypes=*.jsp|*.html|*.xml
indenterFileName=jsppp indenterFileName=jsppp
indenterName=JSPPP (JSP) indenterName=JSPPP (JSP)
inputFileName=indentinput inputFileName=indentinput
inputFileParameter= inputFileParameter=
manual=http://jsppp.sourceforge.net/ manual=http://jsppp.sourceforge.net/
outputFileName=indentinput outputFileName=indentinput
outputFileParameter=none outputFileParameter=none
stringparaminquotes=false stringparaminquotes=false
parameterOrder=pio parameterOrder=pio
showHelpParameter=-h showHelpParameter=-h
stringparaminquotes=false stringparaminquotes=false
useCfgFileParameter= useCfgFileParameter=
version=0.5.2a version=0.5.2a
[Spaces] [Spaces]
Category=0 Category=0
Description="<html>If spaces is true, spaces, not tabs, will be used to indent the lines.</html>" Description="<html>If spaces is true, spaces, not tabs, will be used to indent the lines.</html>"
EditorType=boolean EditorType=boolean
TrueFalse=|--tabs TrueFalse=|--tabs
ValueDefault=1 ValueDefault=1
[Number of spaces] [Number of spaces]
Category=0 Category=0
Description="<html>If spaces are used for indenting, NUMSPACES is the number of spaces to use per indent level.</html>" Description="<html>If spaces are used for indenting, NUMSPACES is the number of spaces to use per indent level.</html>"
Enabled=true Enabled=true
EditorType=numeric EditorType=numeric
CallName="--spaces=" CallName="--spaces="
MinVal=0 MinVal=0
MaxVal=999 MaxVal=999
ValueDefault=2 ValueDefault=2
[Line length] [Line length]
Category=0 Category=0
Description="<html>The length, in bytes (JSPPP does not yet support Unicode input, no one has asked for it yet) of the soft line length limit. JavaScript, long element names, attributes, etc., that cannot be broken up will end up over the limit if they have already been indented too far.</html>" Description="<html>The length, in bytes (JSPPP does not yet support Unicode input, no one has asked for it yet) of the soft line length limit. JavaScript, long element names, attributes, etc., that cannot be broken up will end up over the limit if they have already been indented too far.</html>"
Enabled=false Enabled=false
EditorType=numeric EditorType=numeric
CallName="--length=" CallName="--length="
MinVal=1 MinVal=1
MaxVal=9999 MaxVal=9999
ValueDefault=120 ValueDefault=120
[Tabsize] [Tabsize]
Category=0 Category=0
Description="<html>The default number of spaces per tab is 8. This number is used to determine how much of the line has been used by a tab.</html>" Description="<html>The default number of spaces per tab is 8. This number is used to determine how much of the line has been used by a tab.</html>"
Enabled=false Enabled=false
EditorType=numeric EditorType=numeric
CallName="--tab-size=" CallName="--tab-size="
MinVal=0 MinVal=0
MaxVal=999 MaxVal=999
ValueDefault=8 ValueDefault=8
[Punctuation] [Punctuation]
Category=0 Category=0
Description="<html>PUNCTUATION is a list of characters which should be handled specially after an anchor tag. If there is whitespace after a link tag but before one of these characters then the whitespace is removed. To have no special characters, use the line "PUNCTUATION=".</html>" Description="<html>PUNCTUATION is a list of characters which should be handled specially after an anchor tag. If there is whitespace after a link tag but before one of these characters then the whitespace is removed. To have no special characters, use the line "PUNCTUATION=".</html>"
Enabled=false Enabled=false
CallName=PUNCTUATION= CallName=PUNCTUATION=
EditorType=string EditorType=string
ValueDefault=",.!?" ValueDefault=",.!?"
[Loose or tight spacing] [Loose or tight spacing]
Category=0 Category=0
Description="<html>Use loose or tight spacing.</html>" Description="<html>Use loose or tight spacing.</html>"
Enabled=true Enabled=true
EditorType=multiple EditorType=multiple
Choices="--loose-spacing|--tight-spacing" Choices="--loose-spacing|--tight-spacing"
ChoicesReadable="Loose spacing|Tight spacing" ChoicesReadable="Loose spacing|Tight spacing"
ValueDefault=0 ValueDefault=0
[Backup file] [Backup file]
Category=0 Category=0
Description="<html>Leave a backup file, which will be overwritten on a second run, or leave no backup file at all.</html>" Description="<html>Leave a backup file, which will be overwritten on a second run, or leave no backup file at all.</html>"
Enabled=true Enabled=true
EditorType=multiple EditorType=multiple
Choices="--engage-safety|--disengage-safety" Choices="--engage-safety|--disengage-safety"
ChoicesReadable="Leave backup file|Leave NO backup file" ChoicesReadable="Leave backup file|Leave NO backup file"
ValueDefault=1 ValueDefault=1

@ -1,258 +1,258 @@
[header] [header]
categories="General|Operators|Functions, Classes and Objects|Control Structures|Arrays and Concatenation|Comments" categories="General|Operators|Functions, Classes and Objects|Control Structures|Arrays and Concatenation|Comments"
cfgFileParameterEnding=" " cfgFileParameterEnding=" "
configFilename= configFilename=
fileTypes=*.php|*.phpt|*.phps fileTypes=*.php|*.phpt|*.phps
indenterFileName=phpStylist.php indenterFileName=phpStylist.php
indenterName=phpStylist (PHP) indenterName=phpStylist (PHP)
inputFileName=indentinput inputFileName=indentinput
inputFileParameter=" " inputFileParameter=" "
manual=http://sourceforge.net/projects/phpstylist/ manual=http://sourceforge.net/projects/phpstylist/
outputFileName= outputFileName=
outputFileParameter=stdout outputFileParameter=stdout
parameterOrder=ipo parameterOrder=ipo
showHelpParameter="-- --help" showHelpParameter="-- --help"
stringparaminquotes=false stringparaminquotes=false
useCfgFileParameter= useCfgFileParameter=
version=1.0 version=1.0
[Indent size] [Indent size]
CallName="--indent_size " CallName="--indent_size "
Category=0 Category=0
Description="<html>Indent the code with the set number of spaces.</html>" Description="<html>Indent the code with the set number of spaces.</html>"
EditorType=numeric EditorType=numeric
Enabled=true Enabled=true
MaxVal=99 MaxVal=99
MinVal=0 MinVal=0
ValueDefault=4 ValueDefault=4
[Indent with tabs] [Indent with tabs]
Category=0 Category=0
Description="<html>Indent with tabs instead of spaces</html>" Description="<html>Indent with tabs instead of spaces</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--indent_with_tabs|" TrueFalse="--indent_with_tabs|"
ValueDefault=0 ValueDefault=0
[Keep redundant lines] [Keep redundant lines]
Category=0 Category=0
Description="<html>Keep redundant lines</html>" Description="<html>Keep redundant lines</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--keep_redundant_lines|" TrueFalse="--keep_redundant_lines|"
ValueDefault=0 ValueDefault=0
[Space inside parentheses] [Space inside parentheses]
Category=0 Category=0
Description="<html>Space inside parentheses</html>" Description="<html>Space inside parentheses</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_inside_parentheses|" TrueFalse="--space_inside_parentheses|"
ValueDefault=0 ValueDefault=0
[Space outside parentheses] [Space outside parentheses]
Category=0 Category=0
Description="<html>Space outside parentheses</html>" Description="<html>Space outside parentheses</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_outside_parentheses|" TrueFalse="--space_outside_parentheses|"
ValueDefault=0 ValueDefault=0
[Space after comma] [Space after comma]
Category=0 Category=0
Description="<html>Space after comma</html>" Description="<html>Space after comma</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_after_comma|" TrueFalse="--space_after_comma|"
ValueDefault=0 ValueDefault=0
[Space around assignment] [Space around assignment]
Category=1 Category=1
Description="<html>Space around = .= += -= *= /= <<<</html>" Description="<html>Space around = .= += -= *= /= <<<</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_around_assignment|" TrueFalse="--space_around_assignment|"
ValueDefault=0 ValueDefault=0
[Align block +3 assigned variables] [Align block +3 assigned variables]
Category=1 Category=1
Description="<html>Align block +3 assigned variables</html>" Description="<html>Align block +3 assigned variables</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--align_var_assignment|" TrueFalse="--align_var_assignment|"
ValueDefault=0 ValueDefault=0
[Space around comparison] [Space around comparison]
Category=1 Category=1
Description="<html>Space around == === != !== > >= < <=</html>" Description="<html>Space around == === != !== > >= < <=</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_around_comparison|" TrueFalse="--space_around_comparison|"
ValueDefault=0 ValueDefault=0
[Space around arithmetic] [Space around arithmetic]
Category=1 Category=1
Description="<html>Space around - + * / %</html>" Description="<html>Space around - + * / %</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_around_arithmetic|" TrueFalse="--space_around_arithmetic|"
ValueDefault=0 ValueDefault=0
[Space around logical] [Space around logical]
Category=1 Category=1
Description="<html>Space around && || AND OR XOR << >></html>" Description="<html>Space around && || AND OR XOR << >></html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_around_logical|" TrueFalse="--space_around_logical|"
ValueDefault=0 ValueDefault=0
[Space around colon and question] [Space around colon and question]
Category=1 Category=1
Description="<html>Space around ? :</html>" Description="<html>Space around ? :</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_around_colon_question|" TrueFalse="--space_around_colon_question|"
ValueDefault=0 ValueDefault=0
[Blank line before keyword] [Blank line before keyword]
Category=2 Category=2
Description="<html>Blank line before keyword</html>" Description="<html>Blank line before keyword</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--line_before_function|" TrueFalse="--line_before_function|"
ValueDefault=0 ValueDefault=0
[Opening bracket on next line] [Opening bracket on next line]
Category=2 Category=2
Description="<html>Opening bracket on next line</html>" Description="<html>Opening bracket on next line</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--line_before_curly_function|" TrueFalse="--line_before_curly_function|"
ValueDefault=0 ValueDefault=0
[Blank line below opening bracket] [Blank line below opening bracket]
Category=2 Category=2
Description="<html>Blank line below opening bracket</html>" Description="<html>Blank line below opening bracket</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--line_after_curly_function|" TrueFalse="--line_after_curly_function|"
ValueDefault=0 ValueDefault=0
[Space around ->] [Space around ->]
Category=2 Category=2
Description="<html>Space around -></html>" Description="<html>Space around -></html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_around_obj_operator|" TrueFalse="--space_around_obj_operator|"
ValueDefault=0 ValueDefault=0
[Space around ::] [Space around ::]
Category=2 Category=2
Description="<html>Space around ::</html>" Description="<html>Space around ::</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_around_double_colon|" TrueFalse="--space_around_double_colon|"
ValueDefault=0 ValueDefault=0
[Space before parentheses] [Space before parentheses]
Category=3 Category=3
Description="<html>Space between keyword and opening parentheses</html>" Description="<html>Space between keyword and opening parentheses</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_after_if|" TrueFalse="--space_after_if|"
ValueDefault=0 ValueDefault=0
[Keep else/elseif along with bracket] [Keep else/elseif along with bracket]
Category=3 Category=3
Description="<html>Keep else/elseif along with bracket</html>" Description="<html>Keep else/elseif along with bracket</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--else_along_curly|" TrueFalse="--else_along_curly|"
ValueDefault=0 ValueDefault=0
[Opening bracket on next line] [Opening bracket on next line]
Category=3 Category=3
Description="<html>Opening bracket on next line</html>" Description="<html>Opening bracket on next line</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--line_before_curly|" TrueFalse="--line_before_curly|"
ValueDefault=0 ValueDefault=0
[Add missing brackets] [Add missing brackets]
Category=3 Category=3
Description="<html>Add missing brackets to single line structs</html>" Description="<html>Add missing brackets to single line structs</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--add_missing_braces|" TrueFalse="--add_missing_braces|"
ValueDefault=0 ValueDefault=0
[Blank line after case "break"] [Blank line after case "break"]
Category=3 Category=3
Description="<html>Blank line after case 'break'</html>" Description="<html>Blank line after case 'break'</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--line_after_break|" TrueFalse="--line_after_break|"
ValueDefault=0 ValueDefault=0
[Space between "for" elements] [Space between "for" elements]
Category=3 Category=3
Description="<html>Space between 'for' elements</html>" Description="<html>Space between 'for' elements</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_inside_for|" TrueFalse="--space_inside_for|"
ValueDefault=0 ValueDefault=0
[Extra indent for "Case" and "Default"] [Extra indent for "Case" and "Default"]
Category=3 Category=3
Description="<html>Extra indent for 'Case' and 'Default'</html>" Description="<html>Extra indent for 'Case' and 'Default'</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--indent_case|" TrueFalse="--indent_case|"
ValueDefault=0 ValueDefault=0
[Opening array parentheses on next line] [Opening array parentheses on next line]
Category=4 Category=4
Description="<html>Opening array parentheses on next line</html>" Description="<html>Opening array parentheses on next line</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--line_before_array|" TrueFalse="--line_before_array|"
ValueDefault=0 ValueDefault=0
[Non-empty arrays as vertical block] [Non-empty arrays as vertical block]
Category=4 Category=4
Description="<html>Non-empty arrays as vertical block</html>" Description="<html>Non-empty arrays as vertical block</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--vertical_array|" TrueFalse="--vertical_array|"
ValueDefault=0 ValueDefault=0
[Align block +3 assigned array elements] [Align block +3 assigned array elements]
Category=4 Category=4
Description="<html>Align block +3 assigned array elements</html>" Description="<html>Align block +3 assigned array elements</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--align_array_assignment|" TrueFalse="--align_array_assignment|"
ValueDefault=0 ValueDefault=0
[Space around double arrow] [Space around double arrow]
Category=4 Category=4
Description="<html>Space around double arrow</html>" Description="<html>Space around double arrow</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_around_double_arrow|" TrueFalse="--space_around_double_arrow|"
ValueDefault=0 ValueDefault=0
[Concatenation as vertical block] [Concatenation as vertical block]
Category=4 Category=4
Description="<html>Concatenation as vertical block</html>" Description="<html>Concatenation as vertical block</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--vertical_concat|" TrueFalse="--vertical_concat|"
ValueDefault=0 ValueDefault=0
[Space around concat elements] [Space around concat elements]
Category=4 Category=4
Description="<html>Space around concat elements</html>" Description="<html>Space around concat elements</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--space_around_concat|" TrueFalse="--space_around_concat|"
ValueDefault=0 ValueDefault=0
[Blank line before multi-line comment] [Blank line before multi-line comment]
Category=5 Category=5
Description="<html>Blank line before multi-line comment (/*)</html>" Description="<html>Blank line before multi-line comment (/*)</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--line_before_comment_multi|" TrueFalse="--line_before_comment_multi|"
ValueDefault=0 ValueDefault=0
[Blank line after multi-line comment] [Blank line after multi-line comment]
Category=5 Category=5
Description="<html>Blank line after multi-line comment (/*)</html>" Description="<html>Blank line after multi-line comment (/*)</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--line_after_comment_multi|" TrueFalse="--line_after_comment_multi|"
ValueDefault=0 ValueDefault=0
[Blank line before single line comments] [Blank line before single line comments]
Category=5 Category=5
Description="<html>Blank line before single line comments (//)</html>" Description="<html>Blank line before single line comments (//)</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--line_before_comment|" TrueFalse="--line_before_comment|"
ValueDefault=0 ValueDefault=0
[Blank line after single line comments] [Blank line after single line comments]
Category=5 Category=5
Description="<html>Blank line after single line comments (//)</html>" Description="<html>Blank line after single line comments (//)</html>"
EditorType=boolean EditorType=boolean
TrueFalse="--line_after_comment|" TrueFalse="--line_after_comment|"
ValueDefault=0 ValueDefault=0

@ -1,108 +1,108 @@
[header] [header]
categories=General categories=General
cfgFileParameterEnding=" " cfgFileParameterEnding=" "
configFilename= configFilename=
fileTypes=*.php|*.phpt|*.phps fileTypes=*.php|*.phpt|*.phps
indenterFileName=php_beautifier indenterFileName=php_beautifier
indenterName=PHP_Beautifier (PHP) indenterName=PHP_Beautifier (PHP)
inputFileName=indentinput inputFileName=indentinput
inputFileParameter="-f " inputFileParameter="-f "
manual=http://beautifyphp.sourceforge.net/docs/PHP_Beautifier/tutorial_PHP_Beautifier.howtouse.commandline.pkg.html manual=http://beautifyphp.sourceforge.net/docs/PHP_Beautifier/tutorial_PHP_Beautifier.howtouse.commandline.pkg.html
outputFileName=indentoutput outputFileName=indentoutput
outputFileParameter="-o " outputFileParameter="-o "
parameterOrder=iop parameterOrder=iop
showHelpParameter=--help showHelpParameter=--help
stringparaminquotes=false stringparaminquotes=false
useCfgFileParameter= useCfgFileParameter=
version=0.1.13 version=0.1.13
[Indent With Spaces] [Indent With Spaces]
CallName="-s" CallName="-s"
Category=1 Category=1
Description=<html>Indent the code with the set number of spaces.</html> Description=<html>Indent the code with the set number of spaces.</html>
EditorType=numeric EditorType=numeric
Enabled=true Enabled=true
MaxVal=99 MaxVal=99
MinVal=0 MinVal=0
ValueDefault=4 ValueDefault=4
[Indent With Tabs] [Indent With Tabs]
CallName="-t" CallName="-t"
Category=1 Category=1
Description=<html>Indent the code with the set number of tabs.</html> Description=<html>Indent the code with the set number of tabs.</html>
EditorType=numeric EditorType=numeric
Enabled=false Enabled=false
MaxVal=99 MaxVal=99
MinVal=0 MinVal=0
ValueDefault=1 ValueDefault=1
[Add Header] [Add Header]
Category=0 Category=0
Choices="-l \"Pear(add_header=php)\"|-l \"Pear(add_header=bsd)\"|-l \"Pear(add_header=apache)\"|-l \"Pear(add_header=lgpl)\"|-l \"Pear(add_header=pear)\"" Choices="-l \"Pear(add_header=php)\"|-l \"Pear(add_header=bsd)\"|-l \"Pear(add_header=apache)\"|-l \"Pear(add_header=lgpl)\"|-l \"Pear(add_header=pear)\""
ChoicesReadable="PHP|BSD|Apache|LGPL|PEAR" ChoicesReadable="PHP|BSD|Apache|LGPL|PEAR"
Description="<html>Adds header information to a file. These can be Php, BSD, Apache, LGPL or Pear license info.</html>" Description="<html>Adds header information to a file. These can be Php, BSD, Apache, LGPL or Pear license info.</html>"
EditorType=multiple EditorType=multiple
Enabled=true Enabled=true
ValueDefault=0 ValueDefault=0
[Newline Class] [Newline Class]
Category=0 Category=0
Description=<html>Add a new line after class before opening brace.</html> Description=<html>Add a new line after class before opening brace.</html>
EditorType=boolean EditorType=boolean
TrueFalse="-l \"Pear(newline_class=true)\"|-l \"Pear(newline_class=false)\"" TrueFalse="-l \"Pear(newline_class=true)\"|-l \"Pear(newline_class=false)\""
ValueDefault=1 ValueDefault=1
[Newline Function] [Newline Function]
Category=0 Category=0
Description=<html>Add a new line after function before opening brace.</html> Description=<html>Add a new line after function before opening brace.</html>
EditorType=boolean EditorType=boolean
TrueFalse="-l \"Pear(newline_function=true)\"|-l \"Pear(newline_function=false)\"" TrueFalse="-l \"Pear(newline_function=true)\"|-l \"Pear(newline_function=false)\""
ValueDefault=1 ValueDefault=1
[New Lines Before] [New Lines Before]
CallName="-l \"NewLines(before=" CallName="-l \"NewLines(before="
Category=0 Category=0
Description="<html>Add new lines before specific keywords. Keywords are separated by a single colon. Example: if:switch:T_CLASS<br />The string MUST end with a closing brace and an escaped double quote.</html>" Description="<html>Add new lines before specific keywords. Keywords are separated by a single colon. Example: if:switch:T_CLASS<br />The string MUST end with a closing brace and an escaped double quote.</html>"
EditorType=string EditorType=string
Enabled=false Enabled=false
ValueDefault="if:switch:T_CLASS)\"" ValueDefault="if:switch:T_CLASS)\""
[New Lines After] [New Lines After]
CallName="-l \"NewLines(after=" CallName="-l \"NewLines(after="
Category=0 Category=0
Description="<html>Add new lines after specific keywords. Keywords are separated by a single colon. Example: T_COMMENT:function<br />The string MUST end with a closing brace and an escaped double quote.</html>" Description="<html>Add new lines after specific keywords. Keywords are separated by a single colon. Example: T_COMMENT:function<br />The string MUST end with a closing brace and an escaped double quote.</html>"
EditorType=string EditorType=string
Enabled=false Enabled=false
ValueDefault="T_COMMENT:function)\"" ValueDefault="T_COMMENT:function)\""
[Arrays Nested] [Arrays Nested]
Category=0 Category=0
Description=<html></html> Description=<html></html>
EditorType=boolean EditorType=boolean
TrueFalse="-l \"ArrayNested()\"|" TrueFalse="-l \"ArrayNested()\"|"
ValueDefault=0 ValueDefault=0
[Lowercase] [Lowercase]
Category=0 Category=0
Description=<html>Lowercases all control structures.</html> Description=<html>Lowercases all control structures.</html>
EditorType=boolean EditorType=boolean
TrueFalse="-l \"Lowercase()\"|" TrueFalse="-l \"Lowercase()\"|"
ValueDefault=0 ValueDefault=0
[List Class And Functions] [List Class And Functions]
Category=0 Category=0
Choices="-l \"ListClassFunction(list_classes=true)\"|-l \"ListClassFunction(list_functions=true)\"|-l \"ListClassFunction()\"" Choices="-l \"ListClassFunction(list_classes=true)\"|-l \"ListClassFunction(list_functions=true)\"|-l \"ListClassFunction()\""
ChoicesReadable="List Classes|List Functions|List Classes And Functions" ChoicesReadable="List Classes|List Functions|List Classes And Functions"
Description=<html>Create a list of functions and classes in the script By default, this Filter puts the list at the beggining of the script. If you want it in another position, put a comment like that <pre> // Class and Function List </pre> The script lookup for the string 'Class and Function List' in a comment and replace the entire comment with the list.</html> Description=<html>Create a list of functions and classes in the script By default, this Filter puts the list at the beggining of the script. If you want it in another position, put a comment like that <pre> // Class and Function List </pre> The script lookup for the string 'Class and Function List' in a comment and replace the entire comment with the list.</html>
EditorType=multiple EditorType=multiple
Enabled=false Enabled=false
ValueDefault=0 ValueDefault=0
[Indent Styles] [Indent Styles]
Category=0 Category=0
Choices="-l \"IndentStyles(style=k&r)\"|-l \"IndentStyles(style=allman)\"|-l \"IndentStyles(style=whitesmiths)\"|-l \"IndentStyles(style=gnu)\"" Choices="-l \"IndentStyles(style=k&r)\"|-l \"IndentStyles(style=allman)\"|-l \"IndentStyles(style=whitesmiths)\"|-l \"IndentStyles(style=gnu)\""
ChoicesReadable="K&R|Allman|Whitesmiths|GNU" ChoicesReadable="K&R|Allman|Whitesmiths|GNU"
Description=<html></html> Description=<html></html>
EditorType=multiple EditorType=multiple
Enabled=false Enabled=false
ValueDefault=0 ValueDefault=0

@ -1,54 +1,54 @@
[header] [header]
categories=General options categories=General options
cfgFileParameterEnding=" " cfgFileParameterEnding=" "
configFilename= configFilename=
fileTypes=*.py fileTypes=*.py
indenterFileName=pindent.py indenterFileName=pindent.py
indenterName=PIndent (Python) indenterName=PIndent (Python)
inputFileName=indentinput inputFileName=indentinput
inputFileParameter= inputFileParameter=
manual=http://coverage.livinglogic.de/Tools/scripts/pindent.py.html manual=http://coverage.livinglogic.de/Tools/scripts/pindent.py.html
outputFileName=indentinput outputFileName=indentinput
outputFileParameter=none outputFileParameter=none
stringparaminquotes=false stringparaminquotes=false
parameterOrder=pio parameterOrder=pio
showHelpParameter= showHelpParameter=
stringparaminquotes=false stringparaminquotes=false
useCfgFileParameter= useCfgFileParameter=
version="from Python 2.5.1 package" version="from Python 2.5.1 package"
[End directives] [End directives]
Category=0 Category=0
Description="<html>Complete takes a valid Python program as input and outputs a version augmented with block-closing comments (add #end directives).<br />Or Delete assumes its input is a Python program with block-closing comments and outputs a commentless version(delete #end directives).<br />Or Reformat assumes its input is a Python program with block-closing comments but with its indentation messed up, and outputs a properly indented version (use #end directives).</html>" Description="<html>Complete takes a valid Python program as input and outputs a version augmented with block-closing comments (add #end directives).<br />Or Delete assumes its input is a Python program with block-closing comments and outputs a commentless version(delete #end directives).<br />Or Reformat assumes its input is a Python program with block-closing comments but with its indentation messed up, and outputs a properly indented version (use #end directives).</html>"
Enabled=true Enabled=true
EditorType=multiple EditorType=multiple
Choices="-c|-d|-r" Choices="-c|-d|-r"
ChoicesReadable="Complete|Delete|Reformat" ChoicesReadable="Complete|Delete|Reformat"
ValueDefault=0 ValueDefault=0
[Step size] [Step size]
Category=0 Category=0
Description="<html>Sets the indentation step size.</html>" Description="<html>Sets the indentation step size.</html>"
Enabled=true Enabled=true
EditorType=numeric EditorType=numeric
CallName="-s " CallName="-s "
MinVal=0 MinVal=0
MaxVal=999 MaxVal=999
ValueDefault=8 ValueDefault=8
[Tab size] [Tab size]
Category=0 Category=0
Description="<html>Sets the number of spaces a tab character is worth.</html>" Description="<html>Sets the number of spaces a tab character is worth.</html>"
Enabled=true Enabled=true
EditorType=numeric EditorType=numeric
CallName="-t " CallName="-t "
MinVal=0 MinVal=0
MaxVal=999 MaxVal=999
ValueDefault=8 ValueDefault=8
[Convert Tabs] [Convert Tabs]
Category=0 Category=0
Description="<html>Expand TABs into spaces.</html>" Description="<html>Expand TABs into spaces.</html>"
EditorType=boolean EditorType=boolean
TrueFalse=-e| TrueFalse=-e|
ValueDefault=0 ValueDefault=0

@ -1,196 +1,196 @@
[header] [header]
categories=General options|Spaces|Indentation|Alignments categories=General options|Spaces|Indentation|Alignments
cfgFileParameterEnding=cr cfgFileParameterEnding=cr
configFilename=psti.cfg configFilename=psti.cfg
fileTypes=*.sql fileTypes=*.sql
indenterFileName=psti.exe indenterFileName=psti.exe
indenterName=Pl/Sql tidy (Pl/Sql) indenterName=Pl/Sql tidy (Pl/Sql)
inputFileName=indentinput inputFileName=indentinput
inputFileParameter="-i " inputFileParameter="-i "
manual=http://psti.equinoxbase.com/manual.html manual=http://psti.equinoxbase.com/manual.html
outputFileName=indentoutput outputFileName=indentoutput
outputFileParameter="-o " outputFileParameter="-o "
stringparaminquotes=false stringparaminquotes=false
parameterOrder=iop parameterOrder=iop
showHelpParameter=-h showHelpParameter=-h
stringparaminquotes=false stringparaminquotes=false
useCfgFileParameter="-ls " useCfgFileParameter="-ls "
version=1.2 version=1.2
[Disable all switches] [Disable all switches]
Category=0 Category=0
Description="<html>Sets all switches to off.</html>" Description="<html>Sets all switches to off.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-0| TrueFalse=-0|
ValueDefault=0 ValueDefault=0
[Uppercase Keywords] [Uppercase Keywords]
Category=0 Category=0
Description="<html>Uppercase Keywords.</html>" Description="<html>Uppercase Keywords.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-uk+|-uk- TrueFalse=-uk+|-uk-
ValueDefault=0 ValueDefault=0
[Capitalized Keywords] [Capitalized Keywords]
Category=0 Category=0
Description="<html>Capitalized Keywords.</html>" Description="<html>Capitalized Keywords.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-ck+|-ck- TrueFalse=-ck+|-ck-
ValueDefault=0 ValueDefault=0
[Lowercase Keywords] [Lowercase Keywords]
Category=0 Category=0
Description="<html>Lowercase Keywords.</html>" Description="<html>Lowercase Keywords.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-lk+|-lk- TrueFalse=-lk+|-lk-
ValueDefault=0 ValueDefault=0
[Uppercase Identifiers] [Uppercase Identifiers]
Category=0 Category=0
Description="<html>Uppercase Identifiers.</html>" Description="<html>Uppercase Identifiers.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-ui+|-ui- TrueFalse=-ui+|-ui-
ValueDefault=0 ValueDefault=0
[Lowercase Identifiers] [Lowercase Identifiers]
Category=0 Category=0
Description="<html>Lowercase Identifiers.</html>" Description="<html>Lowercase Identifiers.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-li+|-li- TrueFalse=-li+|-li-
ValueDefault=0 ValueDefault=0
[Capitalized Identifiers] [Capitalized Identifiers]
Category=0 Category=0
Description="<html>Capitalized Identifiers.</html>" Description="<html>Capitalized Identifiers.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-ci+|-ci- TrueFalse=-ci+|-ci-
ValueDefault=0 ValueDefault=0
[Compactify] [Compactify]
Category=1 Category=1
Description="<html>Compactify, remove redundant spaces/keep.</html>" Description="<html>Compactify, remove redundant spaces/keep.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-c+|-c- TrueFalse=-c+|-c-
ValueDefault=0 ValueDefault=0
[Remove Operation Spaces] [Remove Operation Spaces]
Category=1 Category=1
Description="<html>Remove spaces around operations (+,- etcdo nothing/).</html>" Description="<html>Remove spaces around operations (+,- etcdo nothing/).</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-co+|-co- TrueFalse=-co+|-co-
ValueDefault=0 ValueDefault=0
[Add Operation Spaces] [Add Operation Spaces]
Category=1 Category=1
Description="<html>Add space around operations/do nothing.</html>" Description="<html>Add space around operations/do nothing.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-sao+|-sao- TrueFalse=-sao+|-sao-
ValueDefault=0 ValueDefault=0
[Remove Space Open Bracket] [Remove Space Open Bracket]
Category=1 Category=1
Description="<html>Remove spaces after opening brackets/keep.</html>" Description="<html>Remove spaces after opening brackets/keep.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-rsaob+|-rsaob- TrueFalse=-rsaob+|-rsaob-
ValueDefault=0 ValueDefault=0
[Don't Remove Bracket Space] [Don't Remove Bracket Space]
Category=1 Category=1
Description="<html>Don't remove spaces around brackets/do nothing.</html>" Description="<html>Don't remove spaces around brackets/do nothing.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-ncb+|-ncb- TrueFalse=-ncb+|-ncb-
ValueDefault=0 ValueDefault=0
[Indent Size] [Indent Size]
Category=2 Category=2
Description="<html>Indent size in spaces or in tabs (generally).</html>" Description="<html>Indent size in spaces or in tabs (generally).</html>"
Enabled=true Enabled=true
EditorType=numeric EditorType=numeric
CallName="-is " CallName="-is "
MinVal=0 MinVal=0
MaxVal=1024 MaxVal=1024
ValueDefault=4 ValueDefault=4
[Indent Lines] [Indent Lines]
Category=2 Category=2
Description="<html>Whether to indent strings lines.</html>" Description="<html>Whether to indent strings lines.</html>"
Enabled=true Enabled=true
EditorType=boolean EditorType=boolean
TrueFalse=-in+|-in- TrueFalse=-in+|-in-
ValueDefault=1 ValueDefault=1
[Keep relative indentation] [Keep relative indentation]
Category=2 Category=2
Description="<html>Keep the relative identation of an allowed sql/do nothing.</html>" Description="<html>Keep the relative identation of an allowed sql/do nothing.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-rs+|-rs- TrueFalse=-rs+|-rs-
ValueDefault=0 ValueDefault=0
[Indent after exception] [Indent after exception]
Category=2 Category=2
Description="<html>Extra indentation after exception when yes/no.</html>" Description="<html>Extra indentation after exception when yes/no.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-iaew+|-iaew- TrueFalse=-iaew+|-iaew-
ValueDefault=0 ValueDefault=0
[Indent after case] [Indent after case]
Category=2 Category=2
Description="<html>Extra indentation after case when yes/no.</html>" Description="<html>Extra indentation after case when yes/no.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-iacw+|-iacw- TrueFalse=-iacw+|-iacw-
ValueDefault=0 ValueDefault=0
[Indent after cursor] [Indent after cursor]
Category=2 Category=2
Description="<html>Extra indentation after cursor yes/no.</html>" Description="<html>Extra indentation after cursor yes/no.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-iac+|-iac- TrueFalse=-iac+|-iac-
ValueDefault=0 ValueDefault=0
[Indent comments] [Indent comments]
Category=2 Category=2
Description="<html>Indent standalone comments.</html>" Description="<html>Indent standalone comments.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-isc+|-isc- TrueFalse=-isc+|-isc-
ValueDefault=0 ValueDefault=0
[Indent comments special] [Indent comments special]
Category=2 Category=2
Description="<html>Indent standalone comments in some special cases too.</html>" Description="<html>Indent standalone comments in some special cases too.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-isc2+|-isc2- TrueFalse=-isc2+|-isc2-
ValueDefault=0 ValueDefault=0
[Indent inside comments] [Indent inside comments]
Category=2 Category=2
Description="<html>Indent inside comments/do nothing.</html>" Description="<html>Indent inside comments/do nothing.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-iic+|-iic- TrueFalse=-iic+|-iic-
ValueDefault=0 ValueDefault=0
[Column alignment] [Column alignment]
Category=3 Category=3
Description="<html>Column like lists inside brackets.</html>" Description="<html>Column like lists inside brackets.</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=-clb+|-clb- TrueFalse=-clb+|-clb-
ValueDefault=0 ValueDefault=0

@ -1,27 +1,27 @@
[header] [header]
categories=General categories=General
cfgFileParameterEnding=" " cfgFileParameterEnding=" "
configFilename= configFilename=
fileTypes=*.rb fileTypes=*.rb
indenterFileName=ruby_formatter.rb indenterFileName=ruby_formatter.rb
indenterName=Simple Ruby Formatter (Ruby) indenterName=Simple Ruby Formatter (Ruby)
inputFileName=indentinput inputFileName=indentinput
inputFileParameter= inputFileParameter=
manual=http://raa.ruby-lang.org/project/ruby_formatter/ manual=http://raa.ruby-lang.org/project/ruby_formatter/
outputFileName=indentinput outputFileName=indentinput
outputFileParameter=none outputFileParameter=none
parameterOrder=pio parameterOrder=pio
showHelpParameter= showHelpParameter=
stringparaminquotes=false stringparaminquotes=false
useCfgFileParameter= useCfgFileParameter=
version=Rev 0.6.1 version=Rev 0.6.1
[indent spaces] [indent spaces]
CallName="-s " CallName="-s "
Category=0 Category=0
Description=<html>Indent using # spaces per indent</html> Description=<html>Indent using # spaces per indent</html>
EditorType=numeric EditorType=numeric
Enabled=false Enabled=false
MaxVal=20 MaxVal=20
MinVal=2 MinVal=2
ValueDefault=4 ValueDefault=4

@ -1,17 +1,17 @@
[header] [header]
categories= categories=
cfgFileParameterEnding=" " cfgFileParameterEnding=" "
configFilename= configFilename=
fileTypes=*.sh fileTypes=*.sh
indenterFileName=shellindent.awk indenterFileName=shellindent.awk
indenterName=Shell Code Indent (sh) indenterName=Shell Code Indent (sh)
inputFileName=indentinput inputFileName=indentinput
inputFileParameter= inputFileParameter=
manual=http://www.bolthole.com/AWK.html manual=http://www.bolthole.com/AWK.html
outputFileName= outputFileName=
outputFileParameter=stdout outputFileParameter=stdout
parameterOrder=pio parameterOrder=pio
showHelpParameter= showHelpParameter=
stringparaminquotes=false stringparaminquotes=false
useCfgFileParameter= useCfgFileParameter=
version=2008-01-10 version=2008-01-10

File diff suppressed because it is too large Load Diff

@ -1,45 +1,45 @@
[header] [header]
categories=General categories=General
cfgFileParameterEnding=cr cfgFileParameterEnding=cr
configFilename= configFilename=
fileTypes=*.vb fileTypes=*.vb
indenterFileName=vbsbeaut.bat indenterFileName=vbsbeaut.bat
indenterName=VBSBeautifier (VB) indenterName=VBSBeautifier (VB)
inputFileName=indentinput inputFileName=indentinput
inputFileParameter=" " inputFileParameter=" "
manual=http://www.daansystems.com/vbsbeaut/ manual=http://www.daansystems.com/vbsbeaut/
outputFileName=indentinput outputFileName=indentinput
outputFileParameter=none outputFileParameter=none
parameterOrder=pio parameterOrder=pio
showHelpParameter= showHelpParameter=
stringparaminquotes=false stringparaminquotes=false
useCfgFileParameter= useCfgFileParameter=
version=1.10 version=1.10
[Spaces] [Spaces]
Category=0 Category=0
Description="<html>Replace tabs by this number of spaces</html>" Description="<html>Replace tabs by this number of spaces</html>"
Enabled=false Enabled=false
EditorType=numeric EditorType=numeric
CallName="-s" CallName="-s"
MinVal=0 MinVal=0
MaxVal=1024 MaxVal=1024
ValueDefault=4 ValueDefault=4
[Keywords] [Keywords]
Category=0 Category=0
Description="<html>Change keywords</html>" Description="<html>Change keywords</html>"
Enabled=false Enabled=false
EditorType=multiple EditorType=multiple
Choices="|-u|-l|-n" Choices="|-u|-l|-n"
ChoicesReadable="Properize keywords|Make keywords uppercase|Make keywords lowercase|Don't change keywords" ChoicesReadable="Properize keywords|Make keywords uppercase|Make keywords lowercase|Don't change keywords"
ValueDefault=0 ValueDefault=0
[Split Dim] [Split Dim]
Category=0 Category=0
Description="<html>Split Dim statements</html>" Description="<html>Split Dim statements</html>"
Enabled=false Enabled=false
EditorType=boolean EditorType=boolean
TrueFalse=|-d TrueFalse=|-d
ValueDefault=0 ValueDefault=0

@ -1,61 +1,61 @@
[header] [header]
categories=General categories=General
cfgFileParameterEnding=cr cfgFileParameterEnding=cr
configFilename= configFilename=
fileTypes=*.xml|*.xslt fileTypes=*.xml|*.xslt
indenterFileName=xmlindent indenterFileName=xmlindent
indenterName=XML Indent (XML, XSL) indenterName=XML Indent (XML, XSL)
inputFileName=indentinput inputFileName=indentinput
inputFileParameter= inputFileParameter=
manual=http://universalindent.sf.net/indentermanuals/xmlindent.txt manual=http://universalindent.sf.net/indentermanuals/xmlindent.txt
outputFileName=indentoutput outputFileName=indentoutput
outputFileParameter="-o " outputFileParameter="-o "
parameterOrder=poi parameterOrder=poi
showHelpParameter=-h showHelpParameter=-h
stringparaminquotes=false stringparaminquotes=false
useCfgFileParameter=none useCfgFileParameter=none
version=0.2.17 version=0.2.17
[Indent level] [Indent level]
CallName="-i " CallName="-i "
Category=0 Category=0
Description=<html>Indent using n spaces or tabs.</html> Description=<html>Indent using n spaces or tabs.</html>
EditorType=numeric EditorType=numeric
Enabled=false Enabled=false
MaxVal=120 MaxVal=120
MinVal=0 MinVal=0
ValueDefault=4 ValueDefault=4
[Use tabs] [Use tabs]
Category=0 Category=0
Description=<html>Use tabs instead of spaces for indent.</html> Description=<html>Use tabs instead of spaces for indent.</html>
EditorType=boolean EditorType=boolean
TrueFalse=-t| TrueFalse=-t|
ValueDefault=0 ValueDefault=0
[Maximum wrap columns] [Maximum wrap columns]
CallName="-l " CallName="-l "
Category=0 Category=0
Description=<html>Maximum columns for line wrapping.</html> Description=<html>Maximum columns for line wrapping.</html>
EditorType=numeric EditorType=numeric
Enabled=false Enabled=false
MaxVal=120 MaxVal=120
MinVal=0 MinVal=0
ValueDefault=80 ValueDefault=80
[Suppress newline at pos] [Suppress newline at pos]
CallName="-n " CallName="-n "
Category=0 Category=0
Description=<html>Suppress newline at position.</html> Description=<html>Suppress newline at position.</html>
EditorType=numeric EditorType=numeric
Enabled=false Enabled=false
MaxVal=120 MaxVal=120
MinVal=0 MinVal=0
ValueDefault=80 ValueDefault=80
[Force newline] [Force newline]
Category=0 Category=0
Description=<html>Force newline on elements without children.</html> Description=<html>Force newline on elements without children.</html>
EditorType=boolean EditorType=boolean
TrueFalse=-f| TrueFalse=-f|
ValueDefault=0 ValueDefault=0

@ -22,11 +22,11 @@
#include "UiGuiVersion.h" #include "UiGuiVersion.h"
#include <QUrl> #include <tqurl.h>
#include <QDesktopServices> #include <tqdesktopservices.h>
#include <QScrollBar> #include <tqscrollbar.h>
#include <QTimer> #include <tqtimer.h>
#include <QLocale> #include <tqlocale.h>
/*! /*!
\class AboutDialog \class AboutDialog

@ -20,7 +20,7 @@
#ifndef ABOUTDIALOG_H #ifndef ABOUTDIALOG_H
#define ABOUTDIALOG_H #define ABOUTDIALOG_H
#include <QDialog> #include <tqdialog.h>
namespace Ui { namespace Ui {
class AboutDialog; class AboutDialog;

@ -21,11 +21,11 @@
#include "AboutDialog.h" #include "AboutDialog.h"
#include <QtGui> #include <tqtgui.h>
#include <QDesktopWidget> #include <tqdesktopwidget.h>
#include <QDate> #include <tqdate.h>
#include <QTimeLine> #include <tqtimeline.h>
#include <QSplashScreen> #include <tqsplashscreen.h>
/*! /*!
\class AboutDialogGraphicsView \class AboutDialogGraphicsView

@ -19,7 +19,7 @@
#ifndef ABOUTDIALOGGRAPHICSVIEW_H #ifndef ABOUTDIALOGGRAPHICSVIEW_H
#define ABOUTDIALOGGRAPHICSVIEW_H #define ABOUTDIALOGGRAPHICSVIEW_H
#include <QGraphicsView> #include <tqgraphicsview.h>
class AboutDialog; class AboutDialog;

@ -1,121 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>FindDialog</class> <class>FindDialog</class>
<widget class="QDialog" name="FindDialog"> <widget class="QDialog" name="FindDialog">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>347</width> <width>347</width>
<height>227</height> <height>227</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Find</string> <string>Find</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum"> <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="text"> <property name="text">
<string>Find what:</string> <string>Find what:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QComboBox" name="comboBox"> <widget class="QComboBox" name="comboBox">
<property name="editable"> <property name="editable">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding"> <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="title"> <property name="title">
<string>Find options</string> <string>Find options</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
<item> <item>
<widget class="QCheckBox" name="checkBox"> <widget class="QCheckBox" name="checkBox">
<property name="text"> <property name="text">
<string>Match case</string> <string>Match case</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="checkBox_2"> <widget class="QCheckBox" name="checkBox_2">
<property name="text"> <property name="text">
<string>Match whole word</string> <string>Match whole word</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="checkBox_3"> <widget class="QCheckBox" name="checkBox_3">
<property name="text"> <property name="text">
<string>Search forward</string> <string>Search forward</string>
</property> </property>
<property name="checked"> <property name="checked">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="checkBox_4"> <widget class="QCheckBox" name="checkBox_4">
<property name="text"> <property name="text">
<string>Use Regular Expressions</string> <string>Use Regular Expressions</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item> <item>
<spacer name="verticalSpacer"> <spacer name="verticalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>40</height> <height>40</height>
</size> </size>
</property> </property>
</spacer> </spacer>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<property name="sizeConstraint"> <property name="sizeConstraint">
<enum>QLayout::SetMaximumSize</enum> <enum>QLayout::SetMaximumSize</enum>
</property> </property>
<item> <item>
<widget class="QPushButton" name="pushButton"> <widget class="QPushButton" name="pushButton">
<property name="text"> <property name="text">
<string>Find Next</string> <string>Find Next</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="pushButton_2"> <widget class="QPushButton" name="pushButton_2">
<property name="text"> <property name="text">
<string>Close</string> <string>Close</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</item> </item>
</layout> </layout>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>

@ -25,32 +25,32 @@
#include "UiGuiIniFileParser.h" #include "UiGuiIniFileParser.h"
#include "SettingsPaths.h" #include "SettingsPaths.h"
#include <QToolBox> #include <tqtoolbox.h>
#include <QVBoxLayout> #include <tqvboxlayout.h>
#include <QApplication> #include <tqapplication.h>
#include <QCheckBox> #include <tqcheckbox.h>
#include <QComboBox> #include <tqcombobox.h>
#include <QToolButton> #include <tqtoolbutton.h>
#include <QFile> #include <tqfile.h>
#include <QProcess> #include <tqprocess.h>
#include <QSettings> #include <tqsettings.h>
#include <QStringList> #include <tqstringlist.h>
#include <QLineEdit> #include <tqlineedit.h>
#include <QSpinBox> #include <tqspinbox.h>
#include <QLabel> #include <tqlabel.h>
#include <QByteArray> #include <tqbytearray.h>
#include <QDir> #include <tqdir.h>
#include <QMessageBox> #include <tqmessagebox.h>
#include <QMainWindow> #include <tqmainwindow.h>
#include <QTextStream> #include <tqtextstream.h>
#include <QTextCodec> #include <tqtextcodec.h>
#include <QtScript> #include <tqtscript.h>
#include <QDesktopServices> #include <tqdesktopservices.h>
#include <QMenu> #include <tqmenu.h>
#include <QAction> #include <tqaction.h>
#include <QContextMenuEvent> #include <tqcontextmenuevent.h>
#include <QFileDialog> #include <tqfiledialog.h>
#include <QtDebug> #include <tqtdebug.h>
#ifdef Q_OS_WIN32 #ifdef Q_OS_WIN32
#include <Windows.h> #include <Windows.h>

@ -20,7 +20,7 @@
#ifndef INDENTHANDLER_H #ifndef INDENTHANDLER_H
#define INDENTHANDLER_H #define INDENTHANDLER_H
#include <QWidget> #include <tqwidget.h>
class UiGuiErrorMessage; class UiGuiErrorMessage;
class UiGuiIniFileParser; class UiGuiIniFileParser;

@ -33,26 +33,26 @@
#include "IndentHandler.h" #include "IndentHandler.h"
#include "UpdateCheckDialog.h" #include "UpdateCheckDialog.h"
#include <QWidget> #include <tqwidget.h>
#include <QLabel> #include <tqlabel.h>
#include <QString> #include <tqstring.h>
#include <QScrollBar> #include <tqscrollbar.h>
#include <QTextCursor> #include <tqtextcursor.h>
#include <QFileDialog> #include <tqfiledialog.h>
#include <QTextStream> #include <tqtextstream.h>
#include <QTextDocument> #include <tqtextdocument.h>
#include <QPrinter> #include <tqprinter.h>
#include <QPrintDialog> #include <tqprintdialog.h>
#include <QCloseEvent> #include <tqcloseevent.h>
#include <QHelpEvent> #include <tqhelpevent.h>
#include <QToolTip> #include <tqtooltip.h>
#include <QTranslator> #include <tqtranslator.h>
#include <QLocale> #include <tqlocale.h>
#include <QTextCodec> #include <tqtextcodec.h>
#include <QDate> #include <tqdate.h>
#include <QUrl> #include <tqurl.h>
#include <QMessageBox> #include <tqmessagebox.h>
#include <QtDebug> #include <tqtdebug.h>
#include <Qsci/qsciscintilla.h> #include <Qsci/qsciscintilla.h>
#include <Qsci/qsciprinter.h> #include <Qsci/qsciprinter.h>

@ -20,7 +20,7 @@
#ifndef MAINWINDOW_H #ifndef MAINWINDOW_H
#define MAINWINDOW_H #define MAINWINDOW_H
#include <QMainWindow> #include <tqmainwindow.h>
#include "UiGuiSettings.h" #include "UiGuiSettings.h"

@ -1,275 +1,275 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#include "SettingsPaths.h" #include "SettingsPaths.h"
#include <QCoreApplication> #include <tqcoreapplication.h>
#include <QFile> #include <tqfile.h>
#include <QDir> #include <tqdir.h>
#include <QDirIterator> #include <tqdiriterator.h>
#include <QStack> #include <tqstack.h>
#include <QtDebug> #include <tqtdebug.h>
#include <stdlib.h> #include <stdlib.h>
//! \defgroup grp_Settings All concerning applications settings. //! \defgroup grp_Settings All concerning applications settings.
/*! /*!
\class SettingsPaths \class SettingsPaths
\ingroup grp_Settings \ingroup grp_Settings
\brief SettingsPaths is a pure static functions class from which info about the \brief SettingsPaths is a pure static functions class from which info about the
paths needed for settings can be retrieved. paths needed for settings can be retrieved.
*/ */
bool SettingsPaths::_alreadyInitialized = false; bool SettingsPaths::_alreadyInitialized = false;
QString SettingsPaths::_applicationBinaryPath = ""; QString SettingsPaths::_applicationBinaryPath = "";
QString SettingsPaths::_settingsPath = ""; QString SettingsPaths::_settingsPath = "";
QString SettingsPaths::_globalFilesPath = ""; QString SettingsPaths::_globalFilesPath = "";
QString SettingsPaths::_indenterPath = ""; QString SettingsPaths::_indenterPath = "";
QString SettingsPaths::_tempPath = ""; QString SettingsPaths::_tempPath = "";
bool SettingsPaths::_portableMode = false; bool SettingsPaths::_portableMode = false;
/*! /*!
\brief Initializes all available information about the paths. \brief Initializes all available information about the paths.
Mainly during this init it is detected whether to start in portable mode or not. This is Mainly during this init it is detected whether to start in portable mode or not. This is
done by testing whether the directory "config" is in the same directory as this done by testing whether the directory "config" is in the same directory as this
applications executable file. applications executable file.
In portable mode all data is ONLY written to subdirectories of the applications executable file. In portable mode all data is ONLY written to subdirectories of the applications executable file.
Means also that the directory "indenters" has to be there. Means also that the directory "indenters" has to be there.
In not portable mode (multiuser mode) only users home directory is used for writing config data. In not portable mode (multiuser mode) only users home directory is used for writing config data.
*/ */
void SettingsPaths::init() { void SettingsPaths::init() {
_alreadyInitialized = true; _alreadyInitialized = true;
qDebug() << __LINE__ << " " << __FUNCTION__ << ": Initializing application paths."; qDebug() << __LINE__ << " " << __FUNCTION__ << ": Initializing application paths.";
// Get the applications binary path, with respect to MacOSXs use of the .app folder. // Get the applications binary path, with respect to MacOSXs use of the .app folder.
_applicationBinaryPath = QCoreApplication::applicationDirPath(); _applicationBinaryPath = QCoreApplication::applicationDirPath();
// Remove any trailing slashes // Remove any trailing slashes
while ( _applicationBinaryPath.right(1) == "/" ) { while ( _applicationBinaryPath.right(1) == "/" ) {
_applicationBinaryPath.chop(1); _applicationBinaryPath.chop(1);
} }
#ifdef UNIVERSALINDENTGUI_NPP_EXPORTS #ifdef UNIVERSALINDENTGUI_NPP_EXPORTS
_applicationBinaryPath += "/plugins/uigui"; _applicationBinaryPath += "/plugins/uigui";
#endif #endif
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
// Because on Mac universal binaries are used, the binary path is not equal // Because on Mac universal binaries are used, the binary path is not equal
// to the applications (.app) path. So get the .apps path here. // to the applications (.app) path. So get the .apps path here.
int indexOfDotApp = _applicationBinaryPath.indexOf(".app"); int indexOfDotApp = _applicationBinaryPath.indexOf(".app");
if ( indexOfDotApp != -1 ) { if ( indexOfDotApp != -1 ) {
// Cut off after the dot of ".app". // Cut off after the dot of ".app".
_applicationBinaryPath = _applicationBinaryPath.left( indexOfDotApp-1 ); _applicationBinaryPath = _applicationBinaryPath.left( indexOfDotApp-1 );
// Cut off after the first slash that was in front of ".app" (normally this is the word "UniversalIndentGUI") // Cut off after the first slash that was in front of ".app" (normally this is the word "UniversalIndentGUI")
_applicationBinaryPath = _applicationBinaryPath.left( _applicationBinaryPath.lastIndexOf("/") ); _applicationBinaryPath = _applicationBinaryPath.left( _applicationBinaryPath.lastIndexOf("/") );
} }
#endif #endif
// If the "config" directory is a subdir of the applications binary path, use this one (portable mode) // If the "config" directory is a subdir of the applications binary path, use this one (portable mode)
_settingsPath = _applicationBinaryPath + "/config"; _settingsPath = _applicationBinaryPath + "/config";
if ( QFile::exists( _settingsPath ) ) { if ( QFile::exists( _settingsPath ) ) {
_portableMode = true; _portableMode = true;
QDir dirCreator; QDir dirCreator;
_globalFilesPath = _applicationBinaryPath; _globalFilesPath = _applicationBinaryPath;
_indenterPath = _applicationBinaryPath + "/indenters"; _indenterPath = _applicationBinaryPath + "/indenters";
dirCreator.mkpath( _settingsPath ); dirCreator.mkpath( _settingsPath );
_tempPath = _applicationBinaryPath + "/temp"; _tempPath = _applicationBinaryPath + "/temp";
//TODO: If the portable drive has write protection, use local temp path and clean it up on exit. //TODO: If the portable drive has write protection, use local temp path and clean it up on exit.
dirCreator.mkpath( _tempPath ); dirCreator.mkpath( _tempPath );
} }
// ... otherwise use the system specific global application data path. // ... otherwise use the system specific global application data path.
else { else {
_portableMode = false; _portableMode = false;
QDir dirCreator; QDir dirCreator;
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
// Get the local users application settings directory. // Get the local users application settings directory.
// Remove any trailing slashes. // Remove any trailing slashes.
_settingsPath = QDir::fromNativeSeparators( qgetenv("APPDATA") ); _settingsPath = QDir::fromNativeSeparators( qgetenv("APPDATA") );
while ( _settingsPath.right(1) == "/" ) { while ( _settingsPath.right(1) == "/" ) {
_settingsPath.chop(1); _settingsPath.chop(1);
} }
_settingsPath = _settingsPath + "/UniversalIndentGUI"; _settingsPath = _settingsPath + "/UniversalIndentGUI";
// On windows systems the directories "indenters", "translations" are subdirs of the _applicationBinaryPath. // On windows systems the directories "indenters", "translations" are subdirs of the _applicationBinaryPath.
_globalFilesPath = _applicationBinaryPath; _globalFilesPath = _applicationBinaryPath;
#else #else
// Remove any trailing slashes. // Remove any trailing slashes.
_settingsPath = QDir::homePath(); _settingsPath = QDir::homePath();
while ( _settingsPath.right(1) == "/" ) { while ( _settingsPath.right(1) == "/" ) {
_settingsPath.chop(1); _settingsPath.chop(1);
} }
_settingsPath = _settingsPath + "/.universalindentgui"; _settingsPath = _settingsPath + "/.universalindentgui";
_globalFilesPath = "/usr/share/universalindentgui"; _globalFilesPath = "/usr/share/universalindentgui";
#endif #endif
dirCreator.mkpath( _settingsPath ); dirCreator.mkpath( _settingsPath );
// If a highlighter config file does not exist in the users home config dir // If a highlighter config file does not exist in the users home config dir
// copy the default config file over there. // copy the default config file over there.
if ( !QFile::exists(_settingsPath+"/UiGuiSyntaxHighlightConfig.ini") ) { if ( !QFile::exists(_settingsPath+"/UiGuiSyntaxHighlightConfig.ini") ) {
QFile::copy( _globalFilesPath+"/config/UiGuiSyntaxHighlightConfig.ini", _settingsPath+"/UiGuiSyntaxHighlightConfig.ini" ); QFile::copy( _globalFilesPath+"/config/UiGuiSyntaxHighlightConfig.ini", _settingsPath+"/UiGuiSyntaxHighlightConfig.ini" );
} }
_indenterPath = _globalFilesPath + "/indenters"; _indenterPath = _globalFilesPath + "/indenters";
// On different systems it may be that "QDir::tempPath()" ends with a "/" or not. So check this. // On different systems it may be that "QDir::tempPath()" ends with a "/" or not. So check this.
// Remove any trailing slashes. // Remove any trailing slashes.
_tempPath = QDir::tempPath(); _tempPath = QDir::tempPath();
while ( _tempPath.right(1) == "/" ) { while ( _tempPath.right(1) == "/" ) {
_tempPath.chop(1); _tempPath.chop(1);
} }
_tempPath = _tempPath + "/UniversalIndentGUI"; _tempPath = _tempPath + "/UniversalIndentGUI";
#if defined(Q_OS_WIN32) #if defined(Q_OS_WIN32)
dirCreator.mkpath( _tempPath ); dirCreator.mkpath( _tempPath );
#else #else
// On Unix based systems create a random temporary directory for security // On Unix based systems create a random temporary directory for security
// reasons. Otherwise an evil human being could create a symbolic link // reasons. Otherwise an evil human being could create a symbolic link
// to an important existing file which gets overwritten when UiGUI writes // to an important existing file which gets overwritten when UiGUI writes
// into this normally temporary but linked file. // into this normally temporary but linked file.
char *pathTemplate = new char[_tempPath.length()+8]; char *pathTemplate = new char[_tempPath.length()+8];
QByteArray pathTemplateQBA = QString(_tempPath + "-XXXXXX").toAscii(); QByteArray pathTemplateQBA = QString(_tempPath + "-XXXXXX").toAscii();
delete [] pathTemplate; delete [] pathTemplate;
pathTemplate = pathTemplateQBA.data(); pathTemplate = pathTemplateQBA.data();
pathTemplate = mkdtemp( pathTemplate ); pathTemplate = mkdtemp( pathTemplate );
_tempPath = pathTemplate; _tempPath = pathTemplate;
#endif #endif
} }
qDebug() << __LINE__ << " " << __FUNCTION__ << ": Paths are:" \ qDebug() << __LINE__ << " " << __FUNCTION__ << ": Paths are:" \
"<ul><li>_applicationBinaryPath=" << _applicationBinaryPath \ "<ul><li>_applicationBinaryPath=" << _applicationBinaryPath \
<< "</li><li>_settingsPath=" << _settingsPath \ << "</li><li>_settingsPath=" << _settingsPath \
<< "</li><li>_globalFilesPath=" << _globalFilesPath \ << "</li><li>_globalFilesPath=" << _globalFilesPath \
<< "</li><li>_indenterPath=" << _indenterPath \ << "</li><li>_indenterPath=" << _indenterPath \
<< "</li><li>_tempPath=" << _tempPath \ << "</li><li>_tempPath=" << _tempPath \
<< "</li><li>Running in portable mode=" << _portableMode << "</li></ul>"; << "</li><li>Running in portable mode=" << _portableMode << "</li></ul>";
} }
/*! /*!
\brief Returns the path of the applications executable. \brief Returns the path of the applications executable.
*/ */
const QString SettingsPaths::getApplicationBinaryPath() { const QString SettingsPaths::getApplicationBinaryPath() {
if ( !_alreadyInitialized ) { if ( !_alreadyInitialized ) {
SettingsPaths::init(); SettingsPaths::init();
} }
return _applicationBinaryPath; return _applicationBinaryPath;
} }
/*! /*!
\brief Returns the path where all settings are being/should be written to. \brief Returns the path where all settings are being/should be written to.
*/ */
const QString SettingsPaths::getSettingsPath() { const QString SettingsPaths::getSettingsPath() {
if ( !_alreadyInitialized ) { if ( !_alreadyInitialized ) {
SettingsPaths::init(); SettingsPaths::init();
} }
return _settingsPath; return _settingsPath;
} }
/*! /*!
\brief Returns the path where the files concerning all users reside. For example translations. \brief Returns the path where the files concerning all users reside. For example translations.
*/ */
const QString SettingsPaths::getGlobalFilesPath() { const QString SettingsPaths::getGlobalFilesPath() {
if ( !_alreadyInitialized ) { if ( !_alreadyInitialized ) {
SettingsPaths::init(); SettingsPaths::init();
} }
return _globalFilesPath; return _globalFilesPath;
} }
/*! /*!
\brief Returns the path where the indenter executables reside. \brief Returns the path where the indenter executables reside.
*/ */
const QString SettingsPaths::getIndenterPath() { const QString SettingsPaths::getIndenterPath() {
if ( !_alreadyInitialized ) { if ( !_alreadyInitialized ) {
SettingsPaths::init(); SettingsPaths::init();
} }
return _indenterPath; return _indenterPath;
} }
/*! /*!
\brief Returns the path where the where all temporary data should be written to. \brief Returns the path where the where all temporary data should be written to.
*/ */
const QString SettingsPaths::getTempPath() { const QString SettingsPaths::getTempPath() {
if ( !_alreadyInitialized ) { if ( !_alreadyInitialized ) {
SettingsPaths::init(); SettingsPaths::init();
} }
return _tempPath; return _tempPath;
} }
/*! /*!
\brief Returns true if portable mode shall be used. \brief Returns true if portable mode shall be used.
*/ */
bool SettingsPaths::getPortableMode() { bool SettingsPaths::getPortableMode() {
if ( !_alreadyInitialized ) { if ( !_alreadyInitialized ) {
SettingsPaths::init(); SettingsPaths::init();
} }
return _portableMode; return _portableMode;
} }
/*! /*!
\brief Completely deletes the created temporary directory with all of its content. \brief Completely deletes the created temporary directory with all of its content.
*/ */
void SettingsPaths::cleanAndRemoveTempDir() { void SettingsPaths::cleanAndRemoveTempDir() {
QDirIterator dirIterator(_tempPath, QDirIterator::Subdirectories); QDirIterator dirIterator(_tempPath, QDirIterator::Subdirectories);
QStack<QString> directoryStack; QStack<QString> directoryStack;
bool noErrorsOccurred = true; bool noErrorsOccurred = true;
while ( dirIterator.hasNext() ) { while ( dirIterator.hasNext() ) {
QString currentDirOrFile = dirIterator.next(); QString currentDirOrFile = dirIterator.next();
// If this dummy call isn't done here, calling "dirIterator.fileInfo().isDir()" later somehow fails. // If this dummy call isn't done here, calling "dirIterator.fileInfo().isDir()" later somehow fails.
dirIterator.fileInfo(); dirIterator.fileInfo();
if ( !currentDirOrFile.isEmpty() && dirIterator.fileName() != "." && dirIterator.fileName() != ".." ) { if ( !currentDirOrFile.isEmpty() && dirIterator.fileName() != "." && dirIterator.fileName() != ".." ) {
// There is a path on the stack but the current path doesn't start with that path. // There is a path on the stack but the current path doesn't start with that path.
// So we changed into another parent directory and the one on the stack can be deleted // So we changed into another parent directory and the one on the stack can be deleted
// since it must be empty. // since it must be empty.
if ( !directoryStack.isEmpty() && !currentDirOrFile.startsWith(directoryStack.top()) ) { if ( !directoryStack.isEmpty() && !currentDirOrFile.startsWith(directoryStack.top()) ) {
QString dirToBeRemoved = directoryStack.pop(); QString dirToBeRemoved = directoryStack.pop();
bool couldRemoveDir = QDir(dirToBeRemoved).rmdir(dirToBeRemoved); bool couldRemoveDir = QDir(dirToBeRemoved).rmdir(dirToBeRemoved);
noErrorsOccurred &= couldRemoveDir; noErrorsOccurred &= couldRemoveDir;
if ( couldRemoveDir == false ) if ( couldRemoveDir == false )
qWarning() << __LINE__ << " " << __FUNCTION__ << "Could not remove the directory: " << dirToBeRemoved; qWarning() << __LINE__ << " " << __FUNCTION__ << "Could not remove the directory: " << dirToBeRemoved;
//qDebug() << "Removing Dir " << directoryStack.pop(); //qDebug() << "Removing Dir " << directoryStack.pop();
} }
// If the iterator currently points to a directory push it onto the stack. // If the iterator currently points to a directory push it onto the stack.
if ( dirIterator.fileInfo().isDir() ) { if ( dirIterator.fileInfo().isDir() ) {
directoryStack.push( currentDirOrFile ); directoryStack.push( currentDirOrFile );
//qDebug() << "Pushing onto Stack " << currentDirOrFile; //qDebug() << "Pushing onto Stack " << currentDirOrFile;
} }
// otherwise it must be a file, so delete it. // otherwise it must be a file, so delete it.
else { else {
bool couldRemoveFile = QFile::remove( currentDirOrFile ); bool couldRemoveFile = QFile::remove( currentDirOrFile );
noErrorsOccurred &= couldRemoveFile; noErrorsOccurred &= couldRemoveFile;
if ( couldRemoveFile == false ) if ( couldRemoveFile == false )
qWarning() << __LINE__ << " " << __FUNCTION__ << "Could not remove the file: " << currentDirOrFile; qWarning() << __LINE__ << " " << __FUNCTION__ << "Could not remove the file: " << currentDirOrFile;
//qDebug() << "Removing File " << currentDirOrFile; //qDebug() << "Removing File " << currentDirOrFile;
} }
} }
} }
noErrorsOccurred &= QDir(_tempPath).rmdir(_tempPath); noErrorsOccurred &= QDir(_tempPath).rmdir(_tempPath);
if ( noErrorsOccurred == false ) if ( noErrorsOccurred == false )
qWarning() << __LINE__ << " " << __FUNCTION__ << "While cleaning up the temp dir an error occurred."; qWarning() << __LINE__ << " " << __FUNCTION__ << "While cleaning up the temp dir an error occurred.";
} }

@ -1,50 +1,50 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#ifndef SETTINGSPATHS_H #ifndef SETTINGSPATHS_H
#define SETTINGSPATHS_H #define SETTINGSPATHS_H
class QString; class QString;
class SettingsPaths class SettingsPaths
{ {
public: public:
static void init(); static void init();
static const QString getApplicationBinaryPath(); static const QString getApplicationBinaryPath();
static const QString getSettingsPath(); static const QString getSettingsPath();
static const QString getGlobalFilesPath(); static const QString getGlobalFilesPath();
static const QString getIndenterPath(); static const QString getIndenterPath();
static const QString getTempPath(); static const QString getTempPath();
static bool getPortableMode(); static bool getPortableMode();
static void cleanAndRemoveTempDir(); static void cleanAndRemoveTempDir();
private: private:
SettingsPaths(); SettingsPaths();
static bool _alreadyInitialized; static bool _alreadyInitialized;
static QString _applicationBinaryPath; static QString _applicationBinaryPath;
static QString _settingsPath; static QString _settingsPath;
static QString _globalFilesPath; static QString _globalFilesPath;
static QString _indenterPath; static QString _indenterPath;
static QString _tempPath; static QString _tempPath;
static bool _portableMode; static bool _portableMode;
}; };
#endif // SETTINGSPATHS_H #endif // SETTINGSPATHS_H

@ -20,7 +20,7 @@
#include "TemplateBatchScript.h" #include "TemplateBatchScript.h"
// Need to include QObject here so that platform specific defines like Q_OS_WIN32 are set. // Need to include QObject here so that platform specific defines like Q_OS_WIN32 are set.
#include <QObject> #include <tqobject.h>
/*! /*!
\brief The only and static function of this class returns a batch or shell script \brief The only and static function of this class returns a batch or shell script

@ -1,31 +1,31 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#ifndef TEMPLATEBATCHSCRIPT_H #ifndef TEMPLATEBATCHSCRIPT_H
#define TEMPLATEBATCHSCRIPT_H #define TEMPLATEBATCHSCRIPT_H
class TemplateBatchScript class TemplateBatchScript
{ {
private: private:
TemplateBatchScript(); TemplateBatchScript();
public: public:
static const char* getTemplateBatchScript(); static const char* getTemplateBatchScript();
}; };
#endif // TEMPLATEBATCHSCRIPT_H #endif // TEMPLATEBATCHSCRIPT_H

@ -19,7 +19,7 @@
#include "UiGuiErrorMessage.h" #include "UiGuiErrorMessage.h"
#include <QCheckBox> #include <tqcheckbox.h>
/*! /*!
\class UiGuiErrorMessage \class UiGuiErrorMessage

@ -1,43 +1,43 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#ifndef UIGUIERRORMESSAGE_H #ifndef UIGUIERRORMESSAGE_H
#define UIGUIERRORMESSAGE_H #define UIGUIERRORMESSAGE_H
#include <QErrorMessage> #include <tqerrormessage.h>
class QCheckBox; class QCheckBox;
class UiGuiErrorMessage : public QErrorMessage class UiGuiErrorMessage : public QErrorMessage
{ {
Q_OBJECT Q_OBJECT
public: public:
UiGuiErrorMessage(QWidget *parent = 0); UiGuiErrorMessage(QWidget *parent = 0);
~UiGuiErrorMessage(void); ~UiGuiErrorMessage(void);
void showMessage( const QString &message ); void showMessage( const QString &message );
void showMessage( const QString &title, const QString &message ); void showMessage( const QString &title, const QString &message );
private: private:
QCheckBox *_showAgainCheckBox; QCheckBox *_showAgainCheckBox;
QStringList _errorMessageList; QStringList _errorMessageList;
}; };
#endif // UIGUIERRORMESSAGE_H #endif // UIGUIERRORMESSAGE_H

@ -21,10 +21,10 @@
#include "SettingsPaths.h" #include "SettingsPaths.h"
#include <QSettings> #include <tqsettings.h>
#include <QMenu> #include <tqmenu.h>
#include <QScrollBar> #include <tqscrollbar.h>
#include <QCoreApplication> #include <tqcoreapplication.h>
#include <Qsci/qsciscintilla.h> #include <Qsci/qsciscintilla.h>
#include <Qsci/qscilexer.h> #include <Qsci/qscilexer.h>

@ -20,10 +20,10 @@
#ifndef UIGUIHIGHLIGHTER_H #ifndef UIGUIHIGHLIGHTER_H
#define UIGUIHIGHLIGHTER_H #define UIGUIHIGHLIGHTER_H
#include <QObject> #include <tqobject.h>
#include <QMap> #include <tqmap.h>
#include <QFont> #include <tqfont.h>
#include <QColor> #include <tqcolor.h>
class QAction; class QAction;
class QSettings; class QSettings;

@ -19,10 +19,10 @@
#include "UiGuiIndentServer.h" #include "UiGuiIndentServer.h"
#include <QTcpServer> #include <tqtcpserver.h>
#include <QTcpSocket> #include <tqtcpsocket.h>
#include <QMessageBox> #include <tqmessagebox.h>
#include <QtDebug> #include <tqtdebug.h>
//! \defgroup grp_Server All concerning the server component. //! \defgroup grp_Server All concerning the server component.

@ -1,55 +1,55 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#ifndef UIGUIINDENTSERVER_H #ifndef UIGUIINDENTSERVER_H
#define UIGUIINDENTSERVER_H #define UIGUIINDENTSERVER_H
#include <QObject> #include <tqobject.h>
class QTcpServer; class QTcpServer;
class QTcpSocket; class QTcpSocket;
class UiGuiIndentServer : public QObject class UiGuiIndentServer : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
UiGuiIndentServer(void); UiGuiIndentServer(void);
~UiGuiIndentServer(void); ~UiGuiIndentServer(void);
public slots: public slots:
void startServer(); void startServer();
void stopServer(); void stopServer();
private slots: private slots:
void handleNewConnection(); void handleNewConnection();
void handleReceivedData(); void handleReceivedData();
void sendMessage(const QString &message); void sendMessage(const QString &message);
void checkIfReadyForHandleRequest(); void checkIfReadyForHandleRequest();
private: private:
QTcpServer *_tcpServer; QTcpServer *_tcpServer;
QByteArray _dataToSend; QByteArray _dataToSend;
bool _readyForHandleRequest; bool _readyForHandleRequest;
QTcpSocket *_currentClientConnection; QTcpSocket *_currentClientConnection;
quint32 _blockSize; quint32 _blockSize;
}; };
#endif // UIGUIINDENTSERVER_H #endif // UIGUIINDENTSERVER_H

@ -19,10 +19,10 @@
#include "UiGuiIniFileParser.h" #include "UiGuiIniFileParser.h"
#include <QFile> #include <tqfile.h>
#include <QStringList> #include <tqstringlist.h>
#include <QVariant> #include <tqvariant.h>
#include <QTextStream> #include <tqtextstream.h>
//! \defgroup grp_Settings All concerning applications settings. //! \defgroup grp_Settings All concerning applications settings.

@ -1,52 +1,52 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#ifndef UIGUIINIFILEPARSER_H #ifndef UIGUIINIFILEPARSER_H
#define UIGUIINIFILEPARSER_H #define UIGUIINIFILEPARSER_H
#include <QMap> #include <tqmap.h>
#include <QString> #include <tqstring.h>
#include <vector> #include <vector>
class QStringList; class QStringList;
class QVariant; class QVariant;
class UiGuiIniFileParser class UiGuiIniFileParser
{ {
public: public:
UiGuiIniFileParser(void); UiGuiIniFileParser(void);
UiGuiIniFileParser(const QString &iniFileName); UiGuiIniFileParser(const QString &iniFileName);
~UiGuiIniFileParser(void); ~UiGuiIniFileParser(void);
QVariant value(const QString &keyName, const QString &defaultValue = ""); QVariant value(const QString &keyName, const QString &defaultValue = "");
QStringList childGroups(); QStringList childGroups();
protected: protected:
void init(); void init();
private: private:
void parseIniFile(); void parseIniFile();
QString _iniFileName; QString _iniFileName;
std::vector<QString> _sections; std::vector<QString> _sections;
QMap<QString, QVariant> _keyValueMap; QMap<QString, QVariant> _keyValueMap;
}; };
#endif // UIGUIINIFILEPARSER_H #endif // UIGUIINIFILEPARSER_H

File diff suppressed because it is too large Load Diff

@ -1,83 +1,83 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#ifndef UIGUISETTINGS_H #ifndef UIGUISETTINGS_H
#define UIGUISETTINGS_H #define UIGUISETTINGS_H
#include <QObject> #include <tqobject.h>
#include <QStringList> #include <tqstringlist.h>
#include <QMultiMap> #include <tqmultimap.h>
#include <QSharedPointer> #include <tqsharedpointer.h>
class QSettings; class QSettings;
class UiGuiSettings : public QObject class UiGuiSettings : public QObject
{ {
Q_OBJECT Q_OBJECT
private: private:
UiGuiSettings(); UiGuiSettings();
static QWeakPointer<UiGuiSettings> _instance; static QWeakPointer<UiGuiSettings> _instance;
public: public:
static QSharedPointer<UiGuiSettings> getInstance(); static QSharedPointer<UiGuiSettings> getInstance();
~UiGuiSettings(); ~UiGuiSettings();
bool registerObjectProperty(QObject *obj, const QString &propertyName, const QString &settingName); bool registerObjectProperty(QObject *obj, const QString &propertyName, const QString &settingName);
bool registerObjectPropertyRecursive(QObject *obj); bool registerObjectPropertyRecursive(QObject *obj);
bool setObjectPropertyToSettingValue(QObject *obj, const QString &propertyName, const QString &settingName); bool setObjectPropertyToSettingValue(QObject *obj, const QString &propertyName, const QString &settingName);
bool setObjectPropertyToSettingValueRecursive(QObject *obj); bool setObjectPropertyToSettingValueRecursive(QObject *obj);
bool setSettingToObjectPropertyValue(QObject *obj, const QString &propertyName, const QString &settingName); bool setSettingToObjectPropertyValue(QObject *obj, const QString &propertyName, const QString &settingName);
bool setSettingToObjectPropertyValueRecursive(QObject *obj); bool setSettingToObjectPropertyValueRecursive(QObject *obj);
bool registerObjectSlot(QObject *obj, const QString &slotName, const QString &settingName); bool registerObjectSlot(QObject *obj, const QString &slotName, const QString &settingName);
QVariant getValueByName(QString settingName); QVariant getValueByName(QString settingName);
QStringList getAvailableTranslations(); QStringList getAvailableTranslations();
public slots: public slots:
void setValueByName(const QString &settingName, const QVariant &value); void setValueByName(const QString &settingName, const QVariant &value);
void unregisterObjectProperty(QObject *obj); void unregisterObjectProperty(QObject *obj);
void unregisterObjectSlot(QObject *obj, const QString &slotName = "", const QString &settingName = ""); void unregisterObjectSlot(QObject *obj, const QString &slotName = "", const QString &settingName = "");
protected: protected:
bool initSettings(); bool initSettings();
bool invokeMethodWithValue(QObject *obj, QMetaMethod mMethod, QVariant value); bool invokeMethodWithValue(QObject *obj, QMetaMethod mMethod, QVariant value);
bool checkCustomPropertiesAndCallFunction(QObject *obj, bool (UiGuiSettings::*callBackFunc)(QObject *obj, const QString &propertyName, const QString &settingName)); bool checkCustomPropertiesAndCallFunction(QObject *obj, bool (UiGuiSettings::*callBackFunc)(QObject *obj, const QString &propertyName, const QString &settingName));
private slots: private slots:
void handleObjectPropertyChange(); void handleObjectPropertyChange();
private: private:
void readAvailableTranslations(); void readAvailableTranslations();
//! Stores the mnemonics of the available translations. //! Stores the mnemonics of the available translations.
QStringList _availableTranslations; QStringList _availableTranslations;
//! The settings file. //! The settings file.
QSettings *_qsettings; QSettings *_qsettings;
//! Maps an QObject to a string list containing the property name and the associated setting name. //! Maps an QObject to a string list containing the property name and the associated setting name.
QMap<QObject*, QStringList> _registeredObjectProperties; QMap<QObject*, QStringList> _registeredObjectProperties;
//! Maps QObjects to a string list containing the method name and the associated setting name. //! Maps QObjects to a string list containing the method name and the associated setting name.
QMultiMap<QObject*, QStringList> _registeredObjectSlots; QMultiMap<QObject*, QStringList> _registeredObjectSlots;
QString _indenterDirctoryStr; QString _indenterDirctoryStr;
}; };
#endif // UIGUISETTINGS_H #endif // UIGUISETTINGS_H

@ -20,7 +20,7 @@
#ifndef UIGUISETTINGSDIALOG_H #ifndef UIGUISETTINGSDIALOG_H
#define UIGUISETTINGSDIALOG_H #define UIGUISETTINGSDIALOG_H
#include <QDialog> #include <tqdialog.h>
#include "UiGuiSettings.h" #include "UiGuiSettings.h"

@ -1,227 +1,227 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#include "UiGuiSystemInfo.h" #include "UiGuiSystemInfo.h"
#include <QString> #include <tqstring.h>
#include <QSysInfo> #include <tqsysinfo.h>
#include <QProcess> #include <tqprocess.h>
#include <QFile> #include <tqfile.h>
UiGuiSystemInfo::UiGuiSystemInfo() { UiGuiSystemInfo::UiGuiSystemInfo() {
} }
/*! /*!
\brief Returns the operating system UiGUI is currently running on as one string. \brief Returns the operating system UiGUI is currently running on as one string.
The String contains name and version of the os. E.g. Linux Ubuntu 9.04. The String contains name and version of the os. E.g. Linux Ubuntu 9.04.
*/ */
QString UiGuiSystemInfo::getOperatingSystem() { QString UiGuiSystemInfo::getOperatingSystem() {
QString operatingSystemString = ""; QString operatingSystemString = "";
#if defined(Q_WS_WIN) #if defined(Q_WS_WIN)
switch ( QSysInfo::WindowsVersion ) { switch ( QSysInfo::WindowsVersion ) {
case QSysInfo::WV_32s : case QSysInfo::WV_32s :
operatingSystemString = "Windows 3.1 with Win 32s"; operatingSystemString = "Windows 3.1 with Win 32s";
break; break;
case QSysInfo::WV_95 : case QSysInfo::WV_95 :
operatingSystemString = "Windows 95"; operatingSystemString = "Windows 95";
break; break;
case QSysInfo::WV_98 : case QSysInfo::WV_98 :
operatingSystemString = "Windows 98"; operatingSystemString = "Windows 98";
break; break;
case QSysInfo::WV_Me : case QSysInfo::WV_Me :
operatingSystemString = "Windows Me"; operatingSystemString = "Windows Me";
break; break;
case QSysInfo::WV_NT : case QSysInfo::WV_NT :
operatingSystemString = "Windows NT (operating system version 4.0)"; operatingSystemString = "Windows NT (operating system version 4.0)";
break; break;
case QSysInfo::WV_2000 : case QSysInfo::WV_2000 :
operatingSystemString = "Windows 2000 (operating system version 5.0)"; operatingSystemString = "Windows 2000 (operating system version 5.0)";
break; break;
case QSysInfo::WV_XP : case QSysInfo::WV_XP :
operatingSystemString = "Windows XP (operating system version 5.1)"; operatingSystemString = "Windows XP (operating system version 5.1)";
break; break;
case QSysInfo::WV_2003 : case QSysInfo::WV_2003 :
operatingSystemString = "Windows Server 2003, Windows Server 2003 R2, Windows Home Server, Windows XP Professional x64 Edition (operating system version 5.2)"; operatingSystemString = "Windows Server 2003, Windows Server 2003 R2, Windows Home Server, Windows XP Professional x64 Edition (operating system version 5.2)";
break; break;
case QSysInfo::WV_VISTA : case QSysInfo::WV_VISTA :
operatingSystemString = "Windows Vista, Windows Server 2008 (operating system version 6.0)"; operatingSystemString = "Windows Vista, Windows Server 2008 (operating system version 6.0)";
break; break;
case QSysInfo::WV_WINDOWS7 : case QSysInfo::WV_WINDOWS7 :
operatingSystemString = "Windows 7 (operating system version 6.1)"; operatingSystemString = "Windows 7 (operating system version 6.1)";
break; break;
case QSysInfo::WV_CE : case QSysInfo::WV_CE :
operatingSystemString = "Windows CE"; operatingSystemString = "Windows CE";
break; break;
case QSysInfo::WV_CENET : case QSysInfo::WV_CENET :
operatingSystemString = "Windows CE .NET"; operatingSystemString = "Windows CE .NET";
break; break;
case QSysInfo::WV_CE_5 : case QSysInfo::WV_CE_5 :
operatingSystemString = "Windows CE 5.x"; operatingSystemString = "Windows CE 5.x";
break; break;
case QSysInfo::WV_CE_6 : case QSysInfo::WV_CE_6 :
operatingSystemString = "Windows CE 6.x"; operatingSystemString = "Windows CE 6.x";
break; break;
default : default :
operatingSystemString = "Unknown Windows operating system."; operatingSystemString = "Unknown Windows operating system.";
break; break;
} }
#elif defined(Q_WS_MAC) #elif defined(Q_WS_MAC)
switch ( QSysInfo::MacintoshVersion ) { switch ( QSysInfo::MacintoshVersion ) {
case QSysInfo::MV_9 : case QSysInfo::MV_9 :
operatingSystemString = "Mac OS 9 (unsupported)"; operatingSystemString = "Mac OS 9 (unsupported)";
break; break;
case QSysInfo::MV_10_0 : case QSysInfo::MV_10_0 :
operatingSystemString = "Mac OS X 10.0 Cheetah (unsupported)"; operatingSystemString = "Mac OS X 10.0 Cheetah (unsupported)";
break; break;
case QSysInfo::MV_10_1 : case QSysInfo::MV_10_1 :
operatingSystemString = "Mac OS X 10.1 Puma (unsupported)"; operatingSystemString = "Mac OS X 10.1 Puma (unsupported)";
break; break;
case QSysInfo::MV_10_2 : case QSysInfo::MV_10_2 :
operatingSystemString = "Mac OS X 10.2 Jaguar (unsupported)"; operatingSystemString = "Mac OS X 10.2 Jaguar (unsupported)";
break; break;
case QSysInfo::MV_10_3 : case QSysInfo::MV_10_3 :
operatingSystemString = "Mac OS X 10.3 Panther"; operatingSystemString = "Mac OS X 10.3 Panther";
break; break;
case QSysInfo::MV_10_4 : case QSysInfo::MV_10_4 :
operatingSystemString = "Mac OS X 10.4 Tiger"; operatingSystemString = "Mac OS X 10.4 Tiger";
break; break;
case QSysInfo::MV_10_5 : case QSysInfo::MV_10_5 :
operatingSystemString = "Mac OS X 10.5 Leopard"; operatingSystemString = "Mac OS X 10.5 Leopard";
break; break;
case QSysInfo::MV_10_6 : case QSysInfo::MV_10_6 :
operatingSystemString = "Mac OS X 10.6 Snow Leopard"; operatingSystemString = "Mac OS X 10.6 Snow Leopard";
break; break;
case QSysInfo::MV_Unknown : case QSysInfo::MV_Unknown :
operatingSystemString = "An unknown and currently unsupported platform"; operatingSystemString = "An unknown and currently unsupported platform";
break; break;
default : default :
operatingSystemString = "Unknown Mac operating system."; operatingSystemString = "Unknown Mac operating system.";
break; break;
} }
#else #else
//TODO: Detect Unix, Linux etc. distro as described on http://www.novell.com/coolsolutions/feature/11251.html //TODO: Detect Unix, Linux etc. distro as described on http://www.novell.com/coolsolutions/feature/11251.html
operatingSystemString = "Linux"; operatingSystemString = "Linux";
QProcess process; QProcess process;
process.start("uname -s"); process.start("uname -s");
bool result = process.waitForFinished(1000); bool result = process.waitForFinished(1000);
QString os = process.readAllStandardOutput().trimmed(); QString os = process.readAllStandardOutput().trimmed();
process.start("uname -r"); process.start("uname -r");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
QString rev = process.readAllStandardOutput().trimmed(); QString rev = process.readAllStandardOutput().trimmed();
process.start("uname -m"); process.start("uname -m");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
QString mach = process.readAllStandardOutput().trimmed(); QString mach = process.readAllStandardOutput().trimmed();
if ( os == "SunOS" ) { if ( os == "SunOS" ) {
os = "Solaris"; os = "Solaris";
process.start("uname -p"); process.start("uname -p");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
QString arch = process.readAllStandardOutput().trimmed(); QString arch = process.readAllStandardOutput().trimmed();
process.start("uname -v"); process.start("uname -v");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
QString timestamp = process.readAllStandardOutput().trimmed(); QString timestamp = process.readAllStandardOutput().trimmed();
operatingSystemString = os + " " + rev + " (" + arch + " " + timestamp + ")"; operatingSystemString = os + " " + rev + " (" + arch + " " + timestamp + ")";
} }
else if ( os == "AIX" ) { else if ( os == "AIX" ) {
process.start("oslevel -r"); process.start("oslevel -r");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
QString oslevel = process.readAllStandardOutput().trimmed(); QString oslevel = process.readAllStandardOutput().trimmed();
operatingSystemString = os + "oslevel " + oslevel; operatingSystemString = os + "oslevel " + oslevel;
} }
else if ( os == "Linux" ) { else if ( os == "Linux" ) {
QString dist; QString dist;
QString pseudoname; QString pseudoname;
QString kernel = rev; QString kernel = rev;
if ( QFile::exists("/etc/redhat-release") ) { if ( QFile::exists("/etc/redhat-release") ) {
dist = "RedHat"; dist = "RedHat";
process.start("sh -c \"cat /etc/redhat-release | sed s/.*\\(// | sed s/\\)//\""); process.start("sh -c \"cat /etc/redhat-release | sed s/.*\\(// | sed s/\\)//\"");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
pseudoname = process.readAllStandardOutput().trimmed(); pseudoname = process.readAllStandardOutput().trimmed();
process.start("sh -c \"cat /etc/redhat-release | sed s/.*release\\ // | sed s/\\ .*//\""); process.start("sh -c \"cat /etc/redhat-release | sed s/.*release\\ // | sed s/\\ .*//\"");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
rev = process.readAllStandardOutput().trimmed(); rev = process.readAllStandardOutput().trimmed();
} }
else if ( QFile::exists("/etc/SUSE-release") ) { else if ( QFile::exists("/etc/SUSE-release") ) {
process.start("sh -c \"cat /etc/SUSE-release | tr '\\n' ' '| sed s/VERSION.*//\""); process.start("sh -c \"cat /etc/SUSE-release | tr '\\n' ' '| sed s/VERSION.*//\"");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
dist = process.readAllStandardOutput().trimmed(); dist = process.readAllStandardOutput().trimmed();
process.start("sh -c \"cat /etc/SUSE-release | tr '\\n' ' ' | sed s/.*=\\ //\""); process.start("sh -c \"cat /etc/SUSE-release | tr '\\n' ' ' | sed s/.*=\\ //\"");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
rev = process.readAllStandardOutput().trimmed(); rev = process.readAllStandardOutput().trimmed();
} }
else if ( QFile::exists("/etc/mandrake-release") ) { else if ( QFile::exists("/etc/mandrake-release") ) {
dist = "Mandrake"; dist = "Mandrake";
process.start("sh -c \"cat /etc/mandrake-release | sed s/.*\\(// | sed s/\\)//\""); process.start("sh -c \"cat /etc/mandrake-release | sed s/.*\\(// | sed s/\\)//\"");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
pseudoname = process.readAllStandardOutput().trimmed(); pseudoname = process.readAllStandardOutput().trimmed();
process.start("sh -c \"cat /etc/mandrake-release | sed s/.*release\\ // | sed s/\\ .*//\""); process.start("sh -c \"cat /etc/mandrake-release | sed s/.*release\\ // | sed s/\\ .*//\"");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
rev = process.readAllStandardOutput().trimmed(); rev = process.readAllStandardOutput().trimmed();
} }
else if ( QFile::exists("/etc/lsb-release") ) { else if ( QFile::exists("/etc/lsb-release") ) {
dist = "Ubuntu"; dist = "Ubuntu";
QString processCall = "sh -c \"cat /etc/lsb-release | tr '\\n' ' ' | sed s/.*DISTRIB_RELEASE=// | sed s/\\ .*//\""; QString processCall = "sh -c \"cat /etc/lsb-release | tr '\\n' ' ' | sed s/.*DISTRIB_RELEASE=// | sed s/\\ .*//\"";
process.start( processCall ); process.start( processCall );
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
rev = process.readAllStandardOutput().trimmed(); rev = process.readAllStandardOutput().trimmed();
QString errorStr = process.readAllStandardError(); QString errorStr = process.readAllStandardError();
process.start("sh -c \"cat /etc/lsb-release | tr '\\n' ' ' | sed s/.*DISTRIB_CODENAME=// | sed s/\\ .*//\""); process.start("sh -c \"cat /etc/lsb-release | tr '\\n' ' ' | sed s/.*DISTRIB_CODENAME=// | sed s/\\ .*//\"");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
pseudoname = process.readAllStandardOutput().trimmed(); pseudoname = process.readAllStandardOutput().trimmed();
} }
else if ( QFile::exists("/etc/debian_version") ) { else if ( QFile::exists("/etc/debian_version") ) {
dist = "Debian"; dist = "Debian";
process.start("cat /etc/debian_version"); process.start("cat /etc/debian_version");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
dist += process.readAllStandardOutput().trimmed(); dist += process.readAllStandardOutput().trimmed();
rev = ""; rev = "";
} }
if ( QFile::exists("/etc/UnitedLinux-release") ) { if ( QFile::exists("/etc/UnitedLinux-release") ) {
process.start("sh -c \"cat /etc/UnitedLinux-release | tr '\\n' ' ' | sed s/VERSION.*//\""); process.start("sh -c \"cat /etc/UnitedLinux-release | tr '\\n' ' ' | sed s/VERSION.*//\"");
result = process.waitForFinished(1000); result = process.waitForFinished(1000);
dist += process.readAllStandardOutput().trimmed(); dist += process.readAllStandardOutput().trimmed();
} }
operatingSystemString = os + " " + dist + " " + rev + " (" + pseudoname + " " + kernel + " " + mach + ")"; operatingSystemString = os + " " + dist + " " + rev + " (" + pseudoname + " " + kernel + " " + mach + ")";
} }
#endif #endif
return operatingSystemString; return operatingSystemString;
} }

@ -1,35 +1,35 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#ifndef UIGUISYSTEMINFO_H #ifndef UIGUISYSTEMINFO_H
#define UIGUISYSTEMINFO_H #define UIGUISYSTEMINFO_H
class QString; class QString;
class UiGuiSystemInfo class UiGuiSystemInfo
{ {
public: public:
static QString getOperatingSystem(); static QString getOperatingSystem();
private: private:
UiGuiSystemInfo(); UiGuiSystemInfo();
}; };
#endif // UIGUISYSTEMINFO_H #endif // UIGUISYSTEMINFO_H

@ -1,61 +1,61 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#include "UiGuiVersion.h" #include "UiGuiVersion.h"
#include <QString> #include <tqstring.h>
#include <QStringList> #include <tqstringlist.h>
#include <QDate> #include <tqdate.h>
namespace UiGuiVersion { namespace UiGuiVersion {
/*! /*!
\brief Returns the build date as a localized string, e.g. "9. Februar 2009". If \brief Returns the build date as a localized string, e.g. "9. Februar 2009". If
there was some kind of error, the returned string is empty. there was some kind of error, the returned string is empty.
*/ */
QString getBuildDate() { QString getBuildDate() {
QStringList monthNames; QStringList monthNames;
QString buildDateString = ""; QString buildDateString = "";
monthNames << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun" << "Jul" << "Aug" << "Sep" << "Oct" << "Nov" << "Dez"; monthNames << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun" << "Jul" << "Aug" << "Sep" << "Oct" << "Nov" << "Dez";
QStringList buildDateStringList = QString(__DATE__).simplified().split(' '); // __DATE__ returns eg "Feb 4 2009" QStringList buildDateStringList = QString(__DATE__).simplified().split(' '); // __DATE__ returns eg "Feb 4 2009"
if ( buildDateStringList.count() == 3 ) { if ( buildDateStringList.count() == 3 ) {
QDate buildDate(buildDateStringList.last().toInt(), monthNames.indexOf( buildDateStringList.first() )+1, buildDateStringList.at(1).toInt()); QDate buildDate(buildDateStringList.last().toInt(), monthNames.indexOf( buildDateStringList.first() )+1, buildDateStringList.at(1).toInt());
buildDateString = buildDate.toString("d. MMMM yyyy"); buildDateString = buildDate.toString("d. MMMM yyyy");
} }
return buildDateString; return buildDateString;
} }
/*! /*!
\brief Returns the revision number, that the current build is based on, as string. If \brief Returns the revision number, that the current build is based on, as string. If
there was some kind of error, the returned string is empty. there was some kind of error, the returned string is empty.
*/ */
QString getBuildRevision() { QString getBuildRevision() {
QString buildRevision = ""; QString buildRevision = "";
QStringList buildRevisionStringList = QString(PROGRAM_REVISION).simplified().split(' '); QStringList buildRevisionStringList = QString(PROGRAM_REVISION).simplified().split(' ');
if ( buildRevisionStringList.count() == 3 ) { if ( buildRevisionStringList.count() == 3 ) {
buildRevision = buildRevisionStringList.at(1); // PROGRAM_REVISION is eg "$Revision: 907 $" buildRevision = buildRevisionStringList.at(1); // PROGRAM_REVISION is eg "$Revision: 907 $"
} }
return buildRevision; return buildRevision;
} }
} // namespace UiGuiVersion } // namespace UiGuiVersion

@ -1,39 +1,39 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#ifndef UIGUIVERSION_H #ifndef UIGUIVERSION_H
#define UIGUIVERSION_H #define UIGUIVERSION_H
class QString; class QString;
// Define the version number here. Update this as the last file before a release. // Define the version number here. Update this as the last file before a release.
#define PROGRAM_VERSION 1.2.0 #define PROGRAM_VERSION 1.2.0
#define PROGRAM_VERSION_STRING "1.2.0" #define PROGRAM_VERSION_STRING "1.2.0"
#define RESOURCE_VERSION 1,2,0,0 #define RESOURCE_VERSION 1,2,0,0
#define RESOURCE_VERSION_STRING "1,2,0,0\0" #define RESOURCE_VERSION_STRING "1,2,0,0\0"
#define PROGRAM_REVISION "$Revision: 1070 $" #define PROGRAM_REVISION "$Revision: 1070 $"
namespace UiGuiVersion { namespace UiGuiVersion {
QString getBuildDate(); QString getBuildDate();
QString getBuildRevision(); QString getBuildRevision();
} }
#endif // UIGUIVERSION_H #endif // UIGUIVERSION_H

@ -23,16 +23,16 @@
#include "UiGuiSettings.h" #include "UiGuiSettings.h"
#include "UiGuiVersion.h" #include "UiGuiVersion.h"
#include <QMessageBox> #include <tqmessagebox.h>
#include <QDesktopServices> #include <tqdesktopservices.h>
#include <QNetworkAccessManager> #include <tqnetworkaccessmanager.h>
#include <QTimer> #include <tqtimer.h>
#include <QDate> #include <tqdate.h>
#include <QUrl> #include <tqurl.h>
#include <QRegExpValidator> #include <tqregexpvalidator.h>
#include <QNetworkRequest> #include <tqnetworkrequest.h>
#include <QNetworkReply> #include <tqnetworkreply.h>
#include <QNetworkProxy> #include <tqnetworkproxy.h>
/*! /*!
\class UpdateCheckDialog \class UpdateCheckDialog

@ -1,73 +1,73 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#ifndef UPDATECHECKDIALOG_H #ifndef UPDATECHECKDIALOG_H
#define UPDATECHECKDIALOG_H #define UPDATECHECKDIALOG_H
#include <QDialog> #include <tqdialog.h>
#include <QDialogButtonBox> #include <tqdialogbuttonbox.h>
class UiGuiSettings; class UiGuiSettings;
namespace Ui { namespace Ui {
class UpdateCheckDialog; class UpdateCheckDialog;
} }
class QTimer; class QTimer;
class QDesktopServices; class QDesktopServices;
class QNetworkAccessManager; class QNetworkAccessManager;
class QNetworkReply; class QNetworkReply;
class UpdateCheckDialog : public QDialog class UpdateCheckDialog : public QDialog
{ {
Q_OBJECT Q_OBJECT
public: public:
UpdateCheckDialog(QSharedPointer<UiGuiSettings> settings, QWidget *parent = NULL); UpdateCheckDialog(QSharedPointer<UiGuiSettings> settings, QWidget *parent = NULL);
~UpdateCheckDialog(); ~UpdateCheckDialog();
public slots: public slots:
void checkForUpdateAndShowDialog(); void checkForUpdateAndShowDialog();
void checkForUpdate(); void checkForUpdate();
private slots: private slots:
void checkResultsOfFetchedPadXMLFile(QNetworkReply *networkReply); void checkResultsOfFetchedPadXMLFile(QNetworkReply *networkReply);
void handleUpdateCheckDialogButtonClicked(QAbstractButton *clickedButton); void handleUpdateCheckDialogButtonClicked(QAbstractButton *clickedButton);
void updateUpdateCheckProgressBar(); void updateUpdateCheckProgressBar();
void initProxySettings(); void initProxySettings();
private: private:
Ui::UpdateCheckDialog *_updateCheckDialogForm; Ui::UpdateCheckDialog *_updateCheckDialogForm;
void getPadXMLFile(); void getPadXMLFile();
void showCheckingForUpdateDialog(); void showCheckingForUpdateDialog();
void showNewVersionAvailableDialog(QString newVersion); void showNewVersionAvailableDialog(QString newVersion);
void showNoNewVersionAvailableDialog(); void showNoNewVersionAvailableDialog();
int convertVersionStringToNumber(QString versionString); int convertVersionStringToNumber(QString versionString);
QSharedPointer<UiGuiSettings> _settings; QSharedPointer<UiGuiSettings> _settings;
bool _manualUpdateRequested; bool _manualUpdateRequested;
QNetworkAccessManager *_networkAccessManager; QNetworkAccessManager *_networkAccessManager;
QNetworkReply *_currentNetworkReply; QNetworkReply *_currentNetworkReply;
QDialogButtonBox::ButtonRole _roleOfClickedButton; QDialogButtonBox::ButtonRole _roleOfClickedButton;
QTimer *_updateCheckProgressTimer; QTimer *_updateCheckProgressTimer;
int _updateCheckProgressCounter; int _updateCheckProgressCounter;
}; };
#endif // UPDATECHECKDIALOG_H #endif // UPDATECHECKDIALOG_H

@ -1,251 +1,251 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 2006-2012 by Thomas Schweitzer * * Copyright (C) 2006-2012 by Thomas Schweitzer *
* thomas-schweitzer(at)arcor.de * * thomas-schweitzer(at)arcor.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2.0 as * * it under the terms of the GNU General Public License version 2.0 as *
* published by the Free Software Foundation. * * published by the Free Software Foundation. *
* * * *
* This program is distributed in the hope that it will be useful, * * This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of * * but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. * * GNU General Public License for more details. *
* * * *
* You should have received a copy of the GNU General Public License * * You should have received a copy of the GNU General Public License *
* along with this program in the file LICENSE.GPL; if not, write to the * * along with this program in the file LICENSE.GPL; if not, write to the *
* Free Software Foundation, Inc., * * Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/ ***************************************************************************/
#include "TSLogger.h" #include "TSLogger.h"
#include "ui_TSLoggerDialog.h" #include "ui_TSLoggerDialog.h"
#include "SettingsPaths.h" #include "SettingsPaths.h"
#include <QDateTime> #include <tqdatetime.h>
#include <QFile> #include <tqfile.h>
#include <QFileInfo> #include <tqfileinfo.h>
#include <QUrl> #include <tqurl.h>
#include <QTextStream> #include <tqtextstream.h>
#include <QDesktopServices> #include <tqdesktopservices.h>
#include <QMessageBox> #include <tqmessagebox.h>
#include <ctime> #include <ctime>
using namespace tschweitzer; using namespace tschweitzer;
using namespace tschweitzer::debugging; using namespace tschweitzer::debugging;
TSLogger* TSLogger::_instance = NULL; TSLogger* TSLogger::_instance = NULL;
/*! /*!
\class TSLogger \class TSLogger
\brief This class handles any kind of data logging, for debugging and whatever purpose. \brief This class handles any kind of data logging, for debugging and whatever purpose.
Beneath being able of displaying a dialog window containing all log messages of the Beneath being able of displaying a dialog window containing all log messages of the
current session, a log file in the systems temporary directory is used. Its name current session, a log file in the systems temporary directory is used. Its name
is "UiGUI_log.html". is "UiGUI_log.html".
Setting a verbose level allows to only write messages that have the selected minimum Setting a verbose level allows to only write messages that have the selected minimum
priority to the log. priority to the log.
*/ */
/*! /*!
\brief Returns the only existing instance of TSLogger. If the instance doesn't exist, it will be created. \brief Returns the only existing instance of TSLogger. If the instance doesn't exist, it will be created.
*/ */
TSLogger* TSLogger::getInstance(int verboseLevel) { TSLogger* TSLogger::getInstance(int verboseLevel) {
if ( _instance == NULL ) if ( _instance == NULL )
_instance = new TSLogger(verboseLevel); _instance = new TSLogger(verboseLevel);
return _instance; return _instance;
} }
/*! /*!
\brief Returns the only existing instance of TSLogger. If the instance doesn't exist, it will be created. \brief Returns the only existing instance of TSLogger. If the instance doesn't exist, it will be created.
*/ */
TSLogger* TSLogger::getInstance() { TSLogger* TSLogger::getInstance() {
#ifdef _DEBUG #ifdef _DEBUG
return TSLogger::getInstance(QtDebugMsg); return TSLogger::getInstance(QtDebugMsg);
#else #else
return TSLogger::getInstance(QtWarningMsg); return TSLogger::getInstance(QtWarningMsg);
#endif #endif
} }
/*! /*!
\brief Initializes the dialog and sets the path to the log file in the systems temporary directory. \brief Initializes the dialog and sets the path to the log file in the systems temporary directory.
Sets the default verbose level to warning level. Sets the default verbose level to warning level.
*/ */
TSLogger::TSLogger(int verboseLevel) : QDialog() { TSLogger::TSLogger(int verboseLevel) : QDialog() {
_TSLoggerDialogForm = new Ui::TSLoggerDialog(); _TSLoggerDialogForm = new Ui::TSLoggerDialog();
_TSLoggerDialogForm->setupUi(this); _TSLoggerDialogForm->setupUi(this);
#ifdef _DEBUG #ifdef _DEBUG
_verboseLevel = QtDebugMsg; _verboseLevel = QtDebugMsg;
#else #else
_verboseLevel = QtMsgType(verboseLevel); _verboseLevel = QtMsgType(verboseLevel);
#endif #endif
_logFileInitState = NOTINITIALZED; _logFileInitState = NOTINITIALZED;
connect( _TSLoggerDialogForm->openLogFileFolderToolButton, SIGNAL(clicked()), this, SLOT(openLogFileFolder()) ); connect( _TSLoggerDialogForm->openLogFileFolderToolButton, SIGNAL(clicked()), this, SLOT(openLogFileFolder()) );
// Make the main application not to wait for the logging window to close. // Make the main application not to wait for the logging window to close.
setAttribute(Qt::WA_QuitOnClose, false); setAttribute(Qt::WA_QuitOnClose, false);
} }
/*! /*!
\brief Logs all incoming messages \a msg to the dialogs text edit and to the log file. \brief Logs all incoming messages \a msg to the dialogs text edit and to the log file.
Only messages whos \a type have a higher priority than the set verbose level are logged. Only messages whos \a type have a higher priority than the set verbose level are logged.
*/ */
void TSLogger::messageHandler(QtMsgType type, const char *msg) { void TSLogger::messageHandler(QtMsgType type, const char *msg) {
if ( _instance == NULL ) if ( _instance == NULL )
_instance = TSLogger::getInstance(); _instance = TSLogger::getInstance();
/* /*
QMessageBox messageBox; QMessageBox messageBox;
QString messageBoxText = QString::fromUtf8( msg ); QString messageBoxText = QString::fromUtf8( msg );
messageBox.setText( messageBoxText ); messageBox.setText( messageBoxText );
messageBox.setWindowModality( Qt::ApplicationModal ); messageBox.setWindowModality( Qt::ApplicationModal );
messageBox.exec(); messageBox.exec();
*/ */
// Only log messages that have a higher or equal priority than set with the verbose level. // Only log messages that have a higher or equal priority than set with the verbose level.
if ( type < _instance->_verboseLevel ) if ( type < _instance->_verboseLevel )
return; return;
// Init log message with prepended date and time. // Init log message with prepended date and time.
QString message = QDateTime::currentDateTime().toString(); QString message = QDateTime::currentDateTime().toString();
// Depending on the QtMsgType prepend a different colored Debug, Warning, Critical or Fatal. // Depending on the QtMsgType prepend a different colored Debug, Warning, Critical or Fatal.
switch (type) { switch (type) {
case QtDebugMsg : case QtDebugMsg :
message += " <span style=\"font-weight:bold; color:black;\">Debug:</span> "; message += " <span style=\"font-weight:bold; color:black;\">Debug:</span> ";
break; break;
case QtWarningMsg : case QtWarningMsg :
message += " <span style=\"font-weight:bold; color:gold;\">Warning:</span> "; message += " <span style=\"font-weight:bold; color:gold;\">Warning:</span> ";
break; break;
case QtCriticalMsg : case QtCriticalMsg :
message += "<span style=\"font-weight:bold; color:red;\">Critical:</span> "; message += "<span style=\"font-weight:bold; color:red;\">Critical:</span> ";
break; break;
case QtFatalMsg : case QtFatalMsg :
message += " <span style=\"font-weight:bold; color:#D60000;\">Fatal:</span> "; message += " <span style=\"font-weight:bold; color:#D60000;\">Fatal:</span> ";
// This one is no Qt message type, but can be used to send info messages to the log // This one is no Qt message type, but can be used to send info messages to the log
// by calling TSLogger::messageHandler() directly. // by calling TSLogger::messageHandler() directly.
case TSLoggerInfoMsg : case TSLoggerInfoMsg :
message += " <span style=\"font-weight:bold; color:darkgray;\">Info:</span> "; message += " <span style=\"font-weight:bold; color:darkgray;\">Info:</span> ";
break; break;
} }
// Append the to UTF-8 back converted message parameter. // Append the to UTF-8 back converted message parameter.
message += QString::fromUtf8( msg ) + "<br/>\n"; message += QString::fromUtf8( msg ) + "<br/>\n";
// Write the message to the log windows text edit. // Write the message to the log windows text edit.
_instance->_TSLoggerDialogForm->logTextEdit->append( message ); _instance->_TSLoggerDialogForm->logTextEdit->append( message );
// Write/append the log message to the log file. // Write/append the log message to the log file.
_instance->writeToLogFile( message ); _instance->writeToLogFile( message );
// In case of a fatal error abort the application. // In case of a fatal error abort the application.
if ( type == QtFatalMsg ) if ( type == QtFatalMsg )
abort(); abort();
} }
/*! /*!
\brief Calling this the verbose level can be set in a range from 0 to 3 \brief Calling this the verbose level can be set in a range from 0 to 3
which is equal to debug, warning, critical and fatal priority. which is equal to debug, warning, critical and fatal priority.
*/ */
void TSLogger::setVerboseLevel(int level) { void TSLogger::setVerboseLevel(int level) {
if ( level < 0 ) if ( level < 0 )
_verboseLevel = QtDebugMsg; _verboseLevel = QtDebugMsg;
if ( level > 3 ) if ( level > 3 )
_verboseLevel = QtFatalMsg; _verboseLevel = QtFatalMsg;
else else
_verboseLevel = QtMsgType(level); _verboseLevel = QtMsgType(level);
} }
/*! /*!
\brief Deletes the existing _instance of TSLogger. \brief Deletes the existing _instance of TSLogger.
*/ */
void TSLogger::deleteInstance() { void TSLogger::deleteInstance() {
if ( _instance != NULL ) { if ( _instance != NULL ) {
delete _instance; delete _instance;
_instance = NULL; _instance = NULL;
} }
} }
/*! /*!
\brief Opens the folder that contains the created log file with the name "UiGUI_log.html". \brief Opens the folder that contains the created log file with the name "UiGUI_log.html".
*/ */
void TSLogger::openLogFileFolder() { void TSLogger::openLogFileFolder() {
QDesktopServices::openUrl( QFileInfo( _logFile ).absolutePath() ); QDesktopServices::openUrl( QFileInfo( _logFile ).absolutePath() );
} }
/*! /*!
\brief Writes the \a message to the used log file. \brief Writes the \a message to the used log file.
*/ */
void TSLogger::writeToLogFile(const QString &message) { void TSLogger::writeToLogFile(const QString &message) {
// If the file where all logging messages should go to isn't initilized yet, do that now. // If the file where all logging messages should go to isn't initilized yet, do that now.
if ( _logFileInitState == NOTINITIALZED ) { if ( _logFileInitState == NOTINITIALZED ) {
_logFileInitState = INITIALIZING; _logFileInitState = INITIALIZING;
// On different systems it may be that "QDir::tempPath()" ends with a "/" or not. So check this. // On different systems it may be that "QDir::tempPath()" ends with a "/" or not. So check this.
// Remove any trailing slashes. // Remove any trailing slashes.
QString tempPath = QFileInfo( SettingsPaths::getTempPath() ).absolutePath(); QString tempPath = QFileInfo( SettingsPaths::getTempPath() ).absolutePath();
while ( tempPath.right(1) == "/" ) { while ( tempPath.right(1) == "/" ) {
tempPath.chop(1); tempPath.chop(1);
} }
// To make the temporary log file invulnerable against file symbolic link hacks // To make the temporary log file invulnerable against file symbolic link hacks
// append the current date and time up to milliseconds to its name and a random character. // append the current date and time up to milliseconds to its name and a random character.
QString logFileName = "UiGUI_log_" + QDateTime::currentDateTime().toString("yyyyMMdd"); QString logFileName = "UiGUI_log_" + QDateTime::currentDateTime().toString("yyyyMMdd");
logFileName += "-" + QDateTime::currentDateTime().toString("hhmmsszzz"); logFileName += "-" + QDateTime::currentDateTime().toString("hhmmsszzz");
// By random decide whether to append a number or an upper or lower case character. // By random decide whether to append a number or an upper or lower case character.
qsrand( time(NULL) ); qsrand( time(NULL) );
unsigned char randomChar; unsigned char randomChar;
switch ( qrand() % 3 ) { switch ( qrand() % 3 ) {
// Append a number from 0 to 9. // Append a number from 0 to 9.
case 0 : case 0 :
randomChar = qrand() % 10 + '0'; randomChar = qrand() % 10 + '0';
break; break;
// Append a upper case characer between A and Z. // Append a upper case characer between A and Z.
case 1 : case 1 :
randomChar = qrand() % 26 + 'A'; randomChar = qrand() % 26 + 'A';
break; break;
// Append a lower case characer between a and z. // Append a lower case characer between a and z.
default : default :
randomChar = qrand() % 26 + 'a'; randomChar = qrand() % 26 + 'a';
break; break;
} }
logFileName += "_" + QString(randomChar) + ".html"; logFileName += "_" + QString(randomChar) + ".html";
_logFile.setFileName( tempPath + "/" + logFileName ); _logFile.setFileName( tempPath + "/" + logFileName );
// Set the tooltip of the open log file folder button to show the unique name of the log file. // Set the tooltip of the open log file folder button to show the unique name of the log file.
_TSLoggerDialogForm->openLogFileFolderToolButton->setToolTip( _TSLoggerDialogForm->openLogFileFolderToolButton->toolTip() + " (" + logFileName + ")" ); _TSLoggerDialogForm->openLogFileFolderToolButton->setToolTip( _TSLoggerDialogForm->openLogFileFolderToolButton->toolTip() + " (" + logFileName + ")" );
_logFileInitState = INITIALZED; _logFileInitState = INITIALZED;
} }
// Add the message to the message queue. // Add the message to the message queue.
_messageQueue << message; _messageQueue << message;
// If the logging file is initialzed, write all messages contained in the message queue into the file. // If the logging file is initialzed, write all messages contained in the message queue into the file.
if ( _logFileInitState == INITIALZED ) { if ( _logFileInitState == INITIALZED ) {
// Write/append the log message to the log file. // Write/append the log message to the log file.
if ( _logFile.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append) ) { if ( _logFile.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append) ) {
QTextStream out(&_logFile); QTextStream out(&_logFile);
while ( !_messageQueue.isEmpty() ) { while ( !_messageQueue.isEmpty() ) {
out << _messageQueue.takeFirst() << "\n"; out << _messageQueue.takeFirst() << "\n";
} }
_logFile.close(); _logFile.close();
} }
} }
} }

@ -20,8 +20,8 @@
#ifndef TSLogger_H #ifndef TSLogger_H
#define TSLogger_H #define TSLogger_H
#include <QDialog> #include <tqdialog.h>
#include <QFile> #include <tqfile.h>
namespace Ui { namespace Ui {
class TSLoggerDialog; class TSLoggerDialog;

@ -28,9 +28,9 @@
#include "IndentHandler.h" #include "IndentHandler.h"
#include "SettingsPaths.h" #include "SettingsPaths.h"
#include <QApplication> #include <tqapplication.h>
#include <QTextCodec> #include <tqtextcodec.h>
#include <QDebug> #include <tqdebug.h>
#include <string> #include <string>
#include <iostream> #include <iostream>

Loading…
Cancel
Save